A collection of various community Godot Engine C++ modules curated by the Goost project.
If available, you can download nighty builds of the modules listed below for Linux, macOS, Windows integrated into Godot editor builds for testing purposes:
Otherwise you'll have to build Godot with custom modules yourself, see Building section.
The goal of this repository is to collect C++ modules for the purpose of accessibility and the ease of discovery. This allows to try out various modules conveniently from within a single, centralized place. Note that only editor builds are provided via build artifacts.
Each module represents a git
submodule versioned as part of this repository.
It's recommended that you manually clone modules of interest which you intend to use in your project, it's not recommended to use this repository in production as it may not be actively updated.
Note that some modules may not be able to be built properly, or they are temporarily disabled due to other reasons as denoted in "Build status" column:
- 🟢 Build success in latest stable version of Godot.
- 🟡 Can build only for some editor platforms, or require certain workarounds.
- 🔴 Cannot build due to direct compilation errors. Please report such bugs upstream.
Module name | Short description | Build status |
---|---|---|
anl | Accidental Noise Library in Godot. | 🟢 |
box2d | Integrates Box2D physics library in Godot. | 🟡 |
goost | A general-purpose C++ extension for Godot. | 🟢 |
json | Import JSON files as resources. | 🟢 |
llightmap | Soft shadows with high performance at runtime. | 🔴 |
lua | Adds external Lua support via GDScript. | 🟢 |
luascript | Lua language support for Godot Engine. | 🟡 |
qurobullet | Design 2D projectile system. | 🔴 |
smooth | Fixed timestep interpolation helper nodes. | 🔴 |
sqlite | SQLite for Godot based on gdsqlite-native. | 🟢 |
tabletop_club | Import resources at run-time. | 🔴 |
terrain_generator | Create planet meshes with OpenSimplexNoise terrain. | 🟢 |
voronoi | Compute Voronoi diagrams. | 🟢 |
voxel | Create volumetric worlds. | 🟡 |
There are two ways to build all modules listed above.
git clone https://github.com/goostengine/godot-modules --recurse-submodules
cd godot-modules
scons
The process is similar to compiling the Goost Godot Engine extension. This will clone the Godot Engine repository to compile all modules as part of it.
Alternatively, you can compile all the modules by using the
custom_modules
build options directly from within the existing engine source code:
git clone https://github.com/goostengine/godot-modules --recurse-submodules
cd godot
scons custom_modules="../godot-modules/modules"
Some modules may not compile on some platforms and/or targets as seen in the
list above, so using scons
is preferable in those cases as it automatically
disables modules which cannot be compiled.
To update submodules, run:
git submodule update --remote
Only add modules which don't require manual installation of additional external dependencies (various software development kits etc.)
The following command must be used from within the root of this repository:
git submodule add --name <NAME> --branch <BRANCH> <URL> modules/<NAME>
Make sure that the added modules do compile, commit the changes and then feel free to open a pull request.
Also, consider supporting this Godot proposal:
Unless otherwise specified, all files in this repository are released under the
terms of the MIT license, except for the modules which may have a
license not compatible with the MIT license, see .gitmodules
file for a complete list of modules with respective URL pointing to other
projects.