Pronounced "Go-doe-you-knee"
A Godot fork that brings Unity-style workflows to Godot engine.
Just for shits and giggles
Godouni adds a GameObject + Component workflow on top of Godot's node system, making the engine feel more familiar to developers coming from Unity without changing any existing Godot functionality.
When downloading new versions you may need to clear your NuGet cache:
dotnet nuget locals all --clearIn order to use the engine in C# you must either run the included IMPORTANT_SETUP.bat or run this command:
@echo off
dotnet nuget add source "%~dp0GodotSharp\Tools\nupkgs" --name "Local Godot SDK"
echo Done! You can now open Godot.
pauseA new GameObject (3D) and GameObject2D node type. They act as containers whose children are treated as Components.
When you select a GameObject, the inspector shows a dedicated Components panel:
- Lists all child nodes as components with their icons and names
- Fold/unfold each component to show or hide its properties
- Nested display - components that are auto-organized under other components show up indented to reflect the hierarchy
- Delete button on each component to remove it
- "Add Component" button opens the node picker to attach new components
- "Add Script" button lets you attach a script file as a component
When you add components, they automatically arrange themselves into the correct Godot hierarchy:
- CollisionShape3D / CollisionPolygon3D — auto-nests under the first physics body (RigidBody3D, StaticBody3D, CharacterBody3D, Area3D)
- MeshInstance3D — auto-nests under the first physics body
- VehicleWheel3D — auto-nests under VehicleBody3D
- CollisionShape2D / CollisionPolygon2D — auto-nests under the first 2D physics body
- Sprite2D — auto-nests under the first 2D physics body
It also works in reverse, when you add a physics body to a GameObject that already has loose collision shapes or meshes, those existing components get reparented under the new body automatically.
The inspector shows yellow warnings when components need attention:
- Physics body has no collision shape
- Collision shape is loose (not under a physics body)
- VehicleWheel3D without a VehicleBody3D
Right-clicking in the scene tree gives you Unity-style quick create options:
- Create Empty — empty GameObject
- Create Empty 2D — empty GameObject2D
- 3D Object — Cube, Sphere, Capsule, Cylinder, Plane, Quad (creates a GameObject with a MeshInstance3D and primitive mesh already attached)
- Light — Directional Light, Point Light, Spot Light
- Camera — GameObject with Camera3D
- Audio Source — GameObject with AudioStreamPlayer3D
- Particle System — GameObject with CPUParticles3D
Under the hood, components are just regular Godot nodes, children of the GameObject. The inspector provides a Unity-like UI layer on top of Godot's existing parent/child system. Everything is fully compatible with standard Godot features like signals, scenes, and GDScript.
GameObject (selected in scene tree)
+-- RigidBody3D <-- component
| +-- MeshInstance3D <-- auto-organized under the body
| +-- CollisionShape3D <-- auto-organized under the body
+-- MyScript <-- script component
Don't expect this to be maintained along side actual Godot but I would like to add web build support when that is added officially to .net Godot.
The GameObject system allows you to attatch multiple scripts to a GameObject, in reality this is adding these scripts as children of the GameObject node. To make this system easier to use, when you need to access the GameObject the scripts are "attatched" to:
C#
gameObject;GDScript
get_game_object()These will all return the GameObject's node.
scons platform=windows target=editor module_mono_enabled=yes -j12To use the Coding Utility you'll need to build the GodotSharp assemblies seperately:
python modules/mono/build_scripts/build_assemblies.py --godot-output-dir=binAfter that clear your NuGet cache:
dotnet nuget locals all --clearscons platform=windows target=editor -j$(nproc)Replace windows with linuxbsd or macos as needed. See the Godot docs for full build instructions.
Same as Godot Engine — MIT License.