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.