finds.dev← search

// the find

GodotModding/godot-mod-loader

★ 647 · GDScript · CC0-1.0 · updated Feb 2026

A general purpose mod loader for GDScript based Godot Games [3.x/4.x]

A drop-in mod loader for GDScript Godot games that lets players install mods as ZIPs without touching vanilla game files. It handles load order, dependency resolution, mod configs, and hooks into scripts/scenes at runtime. If you're building a Godot game and want Steam Workshop or Thunderstore mod support, this is the starting point — it's already proven in Brotato and Dome Keeper.

The hook/preprocessor system is the real technical meat here: it rewrites scripts at load time to inject mod extension points, which is the only sane way to do this in Godot without forking the engine. Dependency and load-order resolution is built in with manifest-declared semver constraints, so mod conflicts surface as errors rather than silent breakage. Steam Workshop and Thunderstore are both supported as first-class sources, not afterthoughts. The 'self setup' mechanism — where the mod loader can bootstrap itself into a game that doesn't ship with it — is clever and makes modding possible even when the developer hasn't opted in.

GDScript-only is a hard constraint: if your game uses C# or GDExtension for performance-sensitive code, those paths are completely unmoddable with this loader. The Godot 4 `class_name` workaround is described as a workaround and isn't a clean solution — games that use class_name heavily will hit friction. Test coverage is thin for a project this complex; the unit tests cover manifest validation and a few internal utilities but nothing that exercises the full mod loading pipeline. Last push was February 2026 and the main branch has been quiet while dev branches presumably get the work, which makes it hard to know what's actually stable without reading branch histories.

View on GitHub → Homepage ↗

// want more like this?

We dig through GitHub every week and send a few repos picked for what you actually care about — each with an honest take like this one.

Get finds in your inbox → Search again →