Contributing to godot-cpp
See also
You may also be interested in visiting godot-cpp's official documentation: C++ (godot-cpp) on the Godot docs
Thank you for your interest in contributing to godot-cpp, the official C++ GDExtension bindings maintained by the ◆ GDExtension team. We greatly appreciate help in maintaining and extending this project.
If you wish to help out, ensure you have an account on GitHub and create a "fork" of the godot-cpp repository. To contribute, please use our regular PR workflow. The code should adhere to the same code guidelines as the engine itself.
Please install clang-format and the pre-commit Python framework so formatting is done before your changes are submitted. See the code style guidelines for instructions.
Feature guidelines
godot-cpp's API is modeled after Godot's API. We want writing godot-cpp code to be as similar as possible to writing a module. This means:
The frameworks (templates, helper methods, etc.) are synchronized to Godot's frameworks regularly.
We will not add features that are not already present in Godot. If you want to add new features to godot-cpp's API, please consider proposing the feature to Godot itself first.
If you want to make changes to Godot's API, you can use one of two systems:
Core features: You can add new methods and classes to Godot's core features. This exposes the new functionality on godot-cpp as well. To get started, please see Introduction to engine contributions.
GDExtension API: You can add GDExtension lifecycle methods to the GDExtension API itself. We do not have an article for this kind of change as of yet.