[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"project-84020":3},{"id":4,"name":5,"fullName":6,"owner":7,"repo":5,"description":8,"homepage":9,"htmlUrl":10,"language":11,"languages":9,"totalLinesOfCode":9,"stars":12,"forks":13,"watchers":14,"openIssues":15,"contributorsCount":9,"subscribersCount":16,"size":16,"stars1d":17,"stars7d":18,"stars30d":18,"stars90d":16,"forks30d":16,"starsTrendScore":19,"compositeScore":20,"rankGlobal":9,"rankLanguage":9,"license":9,"archived":21,"fork":21,"defaultBranch":22,"hasWiki":21,"hasPages":21,"topics":9,"createdAt":9,"pushedAt":9,"updatedAt":23,"readmeContent":24,"aiSummary":9,"trendingCount":16,"starSnapshotCount":16,"syncStatus":25,"lastSyncTime":26,"discoverSource":27},84020,"godot-cpp","godotengine\u002Fgodot-cpp","godotengine","C++ bindings for the Godot script API",null,"https:\u002F\u002Fgithub.com\u002Fgodotengine\u002Fgodot-cpp","C++",2555,775,54,293,0,6,7,19,73.87,false,"main","2026-06-12 04:01:42","# godot-cpp\n\n> [!NOTE]\n>\n> For GDNative (Godot 3.x), switch to the [`3.x`](https:\u002F\u002Fgithub.com\u002Fgodotengine\u002Fgodot-cpp\u002Ftree\u002F3.x)\n> or the [`3.6`](https:\u002F\u002Fgithub.com\u002Fgodotengine\u002Fgodot-cpp\u002Ftree\u002F3.6) branch.\n\nThis repository contains the  *C++ bindings* for the [**Godot Engine**](https:\u002F\u002Fgithub.com\u002Fgodotengine\u002Fgodot)'s GDExtensions API.\n\n- [**Versioning**](#versioning)\n- [**Compatibility**](#compatibility)\n- [**Contributing**](#contributing)\n- [**Getting started**](#getting-started)\n- [**Examples and templates**](#examples-and-templates)\n\n## Versioning\n\n> [!WARNING]\n>\n> The master branch of godot-cpp (version 10.x) is currently in Beta. You may prefer to choose a previous version to build on top of instead:\n> - [`4.5`](https:\u002F\u002Fgithub.com\u002Fgodotengine\u002Fgodot-cpp\u002Ftree\u002F4.5)\n> - [`godot-4.5-stable`](https:\u002F\u002Fgithub.com\u002Fgodotengine\u002Fgodot-cpp\u002Ftree\u002Fgodot-4.5-stable)\n> - [`3.x`](https:\u002F\u002Fgithub.com\u002Fgodotengine\u002Fgodot-cpp\u002Ftree\u002F3.x)\n\nStarting with version 10.x, godot-cpp is versioned independently from Godot.\nUsing the `api_version` parameter (see below), godot-cpp v10 can target Godot 4.3 or later (including 4.6).\n\nUntil we have a stable release branch, you can use the `master` branch (v10), or choose any of the previous\nversion branches and tags for your project.\n\n## Compatibility\n\nGDExtensions targeting an earlier version of Godot should work in later minor versions,\nbut not vice-versa. For example, a GDExtension targeting Godot 4.3 should work just fine\nin Godot 4.4, but one targeting Godot 4.4 won't work in Godot 4.3.\n\nYou can specify which version you are targeting with the `api_version` option:\n\n```\nscons api_version=4.3\n```\n\n... or by providing a custom `extension_api.json` generated by the Godot version you are\ntargeting:\n\n```\ngodot --dump-extension-api\nscons custom_api_file=extension_api.json\n```\n\nIf you don't provide `api_version` or `custom_api_file`, then, by default, godot-cpp will\ntarget the latest stable Godot version that it's aware of.\n\n## Contributing\n\nWe greatly appreciate help in maintaining and extending this project. If you\nwish to help out, please visit the [godot-cpp section of the Contributing docs](https:\u002F\u002Fcontributing.godotengine.org\u002Fen\u002Flatest\u002Fother\u002Fgodot-cpp.html).\n\n## Getting started\n\nYou need the same C++ pre-requisites installed that are required for the `godot` repository. Follow the [official build instructions for your target platform](https:\u002F\u002Fdocs.godotengine.org\u002Fen\u002Flatest\u002Fengine_details\u002Fdevelopment\u002Fcompiling\u002Findex.html).\n\nBuilding your extension will create a shared library. To use this in your Godot project you'll need a `.gdextension`\nfile, for example:\n\n```ini\n[configuration]\n\nentry_symbol = \"example_library_init\"\ncompatibility_minimum = \"4.1\"\n\n[libraries]\n\nmacos.debug = \"res:\u002F\u002Fbin\u002Flibgdexample.macos.debug.framework\"\nmacos.release = \"res:\u002F\u002Fbin\u002Flibgdexample.macos.release.framework\"\nwindows.debug.x86_64 = \"res:\u002F\u002Fbin\u002Flibgdexample.windows.debug.x86_64.dll\"\nwindows.release.x86_64 = \"res:\u002F\u002Fbin\u002Flibgdexample.windows.release.x86_64.dll\"\nlinux.debug.x86_64 = \"res:\u002F\u002Fbin\u002Flibgdexample.linux.debug.x86_64.so\"\nlinux.release.x86_64 = \"res:\u002F\u002Fbin\u002Flibgdexample.linux.release.x86_64.so\"\n# Repeat for other architectures to support arm64, rv64, etc.\n```\n\nSee the [example.gdextension](https:\u002F\u002Fgithub.com\u002Fgodotengine\u002Fgodot-cpp-template\u002Fblob\u002Fmain\u002Fdemo\u002Fbin\u002Fexample.gdextension)\nused in the template project for a complete example.\n\nThe `entry_symbol` is the name of the function that initializes your library, for example:\n\n```cpp\nextern \"C\" {\n\n\u002F\u002F Initialization.\n\nGDExtensionBool GDE_EXPORT example_library_init(GDExtensionInterfaceGetProcAddress p_get_proc_address, GDExtensionClassLibraryPtr p_library, GDExtensionInitialization *r_initialization) {\n\tgodot::GDExtensionBinding::InitObject init_obj(p_get_proc_address, p_library, r_initialization);\n\n\tinit_obj.register_initializer(initialize_example_module);\n\tinit_obj.register_terminator(uninitialize_example_module);\n\tinit_obj.set_minimum_library_initialization_level(MODULE_INITIALIZATION_LEVEL_SCENE);\n\n\treturn init_obj.init();\n}\n}\n```\n\nThe `initialize_example_module()` should register the classes in ClassDB, similar to a Godot module:\n\n```cpp\nusing namespace godot;\nvoid initialize_example_module(ModuleInitializationLevel p_level) {\n\tif (p_level != MODULE_INITIALIZATION_LEVEL_SCENE) {\n\t\treturn;\n\t}\n\tGDREGISTER_CLASS(Example);\n}\n```\n\nAny node and resource you register will be available in the corresponding `Create...` dialog.\nAny class will be available to scripting as well.\n\n## Examples and templates\n\nSee the [godot-cpp-template](https:\u002F\u002Fgithub.com\u002Fgodotengine\u002Fgodot-cpp-template) project for a\ngeneric reusable template.\n\nOr checkout the code for the [Summator example](https:\u002F\u002Fgithub.com\u002Fpaddy-exe\u002FGDExtensionSummator)\nas shown in the [official documentation](https:\u002F\u002Fdocs.godotengine.org\u002Fen\u002Flatest\u002Ftutorials\u002Fscripting\u002Fcpp\u002Fgdextension_cpp_example.html).\n",2,"2026-06-11 04:12:06","trending"]