This plugin aims to replicate the UX of developping in Unreal with Cpp. This is very experimental and will scale with time, for now I just aim to add basic things such as adding a GDExtension module and classes
The project contains on the main branch the entire project environment and the plugin itself, another branch release will contain the addons only and you can still download the plugin only in the release section.
- A Godot 4.x minimum
- Python installed
- Scons installed
- A C++ compiler (MSVC, Clang)
Download latest version of the plugin and extract it in res://addons/ of your godot project. If it do not exist create it!
go in Project Settings > Plugins and activate the plugin
Add this to your project's root .gitignore:
modules//.sconsign.dblite modules//src/.obj modules//src/.o bin/.dll bin/.lib bin/.pdb bin/.exp bin/.so bin/*.dylib addons/gdext_wizard/wizard_state.cfg .godot/ compile_commands.json
Go to Tools > C++ > Create Module, name your module
You should get some error such as:
ERROR: platform/windows/os_windows.cpp:483 - Condition "!FileAccess::exists(path)" is true. Returning: ERR_FILE_NOT_FOUND
ERROR: GDExtension dynamic library not found: 'res://bin/core.gdextension'.
This is normal, you have to compile the module in order to fix this error, then go to Tools > C++ > Recompile all modules
your godot window should freeze, this is normal: Scons is recompiling and placing the binaries in res://bin.
[!warning] The first compilation can be much slower Do not close Godot in case the windows is freezing.
If there is no error godot should restart automatically. Since there you can create any new class you want.
All the feature are available in the toolbar Tools > C++
- Create modules
- Open modules folder
- Recompile all Module
- Add new C++ class in the desired module
- Remove existing C++ class in the desired module
Recompile all module when you want to apply your modification in Godot.
By default the plugin has the godot-cpp header files in the plugin directly, there is no way to specify a custom path for now this is a known limitation.
Unlike adding or removing classes, module removal is intentionally not exposed as a menu action in the plugin. Deleting a module means deleting compiled binaries that Windows may have locked while the editor had them loaded, so doing it by hand (with the editor closed) is actually simpler and safer than automating it through the UI.
To remove a module:
- Close the Godot editor. This releases any lock on the module's compiled
.dll/.lib/.pdbfiles. - Delete the module's source folder:
modules/<ModuleName>/(e.g.modules/DialogueSystem/). - Delete the module's build output in
res://bin/:<snake_name>.gdextension- Any file starting with
lib<snake_name>.(e.g.libdialogue_system.windows.template_debug.x86_64.dll,.lib,.pdb)
Reopen the editor — the module will no longer be detected. If it was set as the current module, addons/gdext_wizard/wizard_state.cfg may still reference its name; this is harmless and purely cosmetic (attempting to recompile it will simply fail with a clear "no metadata for module" error). You can optionally clear the current_module value in that file by hand if you'd like a clean state.