A Godot game template that is set up for mod support from the beginning
Inspired by: https://www.youtube.com/watch?v=tTdToEu6x8U and https://www.youtube.com/watch?v=K3MnEvrC8TA
Build the game as a collection of mods to ensure that your game properly supports modders upon release
- Basic version that loads a single mod and prints a hello world message. Can be used as a solid baseline for custom implementation
- (This repo)
This repository is set up as a GitHub template. To create your own project based on this template:
- Visit: Github Template Docs
- Follow the instructions to create a new repository from this template
- Each mod is a separate godot project
startup
is the main project that does loading mods. Handles global things too like Settings, Config
-
Export
start
project as an .exe (Turning on Export Console Wrapper is handy for testing)- Export folder: build
-
Export mod projects as a .zip and put it into the
- Export folder: build/mods
-
Run the
startup
executable and view the logs to see it's try to load mods, but none are found
- Update
scripts/build.bat
to match your paths - Run the build batch file to automatically create versioned builds
Info from: Stack Overflow
If you need to pull in updates from this template after creating your game, you can do so using the following Git commands:
# Add this template repository as a remote
git remote add template [URL of the template repo]
# Fetch all changes
git fetch --all
# Merge changes from the template's branch to your current branch
git merge template/[branch to merge] --allow-unrelated-histories
For more details, see: https://help.github.com/en/articles/adding-a-remote
I'm not sure if I'll be adding these features, but they are worth exploring if someone wants to tackle them
- Inside of a mod can you do this?
- Can you print out all of the resources?
- Can you print out any of the code?
- Can you overwrite / update enums in a mod?
- Add a way to for mods to add their own options to "mod settings"
- Add a UI to show the mods that are loaded, ideally load and unload mods from inside the game
- You can overwrite the
startup
project's audio buses with your own custom names