What problem does it solve?
Writing performance-critical code or wrapping existing C/C++ libraries in Godot requires native extensions, but the GDExtension setup — godot-cpp submodules, SCons builds, class binding, and .gdextension configuration — is error-prone and version-sensitive. This Skill guides the full workflow so the extension compiles, loads, and interoperates with GDScript and C# correctly.
Core Features & Use Cases
- Class Binding in C++: Register native classes with GDCLASS, ClassDB::bind_method, ADD_PROPERTY, and ADD_SIGNAL so they appear as normal Godot node types with Inspector properties and signals.
- Build & Configuration: Set up the godot-cpp submodule on the correct engine branch, build with SCons, and author the .gdextension file with matching entry_symbol, compatibility_minimum, and per-platform library paths.
- Rust Alternative & Debugging: Use the community gdext crate for Rust extensions, hot-reload debug builds, and attach native debuggers or sanitizers to the running engine.
- Use Case: You profiled a hot path that GDScript cannot keep up with. Follow this Skill to wrap the logic in a C++ GDExtension class, expose it to GDScript, and ship debug and release binaries for Windows, macOS, and Linux.
Quick Start
Help me create a GDExtension in C++ for Godot 4.3 that exposes a custom Sprite2D node with bindable properties and signals.