Godot Modules

July 28, 2021 ยท View on GitHub

๐Ÿง Linux ๐ŸŽ macOS ๐ŸŽจ Windows

A collection of various community Godot Engine C++ modules curated by the Goost project.

Trying out

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.

Purpose

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.

List of modules

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 nameShort descriptionBuild status
anlAccidental Noise Library in Godot.๐ŸŸข
box2dIntegrates Box2D physics library in Godot.๐ŸŸก
goostA general-purpose C++ extension for Godot.๐ŸŸข
jsonImport JSON files as resources.๐ŸŸข
llightmapSoft shadows with high performance at runtime.๐Ÿ”ด
luaAdds external Lua support via GDScript.๐ŸŸข
luascriptLua language support for Godot Engine.๐ŸŸก
qurobulletDesign 2D projectile system.๐Ÿ”ด
smoothFixed timestep interpolation helper nodes.๐Ÿ”ด
sqliteSQLite for Godot based on gdsqlite-native.๐ŸŸข
tabletop_clubImport resources at run-time.๐Ÿ”ด
terrain_generatorCreate planet meshes with OpenSimplexNoise terrain.๐ŸŸข
voronoiCompute Voronoi diagrams.๐ŸŸข
voxelCreate volumetric worlds.๐ŸŸก

Building

There are two ways to build all modules listed above.

Using scons command:

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.

Using custom_modules build option

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

Contributing

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:

License

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.