Quickstart
Create mods/<mod_id>/mod.json, mirror data or asset paths, validate with WardenModKit, then enable the mod from the in-game Mods page.
The modding section is generated from approved public modding docs. It does not read keys, packaged clients, build folders, SDK binaries, or local save contents.
Create mods/<mod_id>/mod.json, mirror data or asset paths, validate with WardenModKit, then enable the mod from the in-game Mods page.
Hook-based runtime scripting actions and event surfaces.
C ABI plugin requirements, callbacks, validation, and sample SDK location.
| Mod type | Where files go | Creation path |
|---|---|---|
| Data mod | mods/<id>/data/... | Create mod.json, mirror the base data path, edit JSON, run WardenModKit validate, enable the mod in-game. |
| Asset mod | mods/<id>/assets/... | Place replacement PNG, GIF, TMX, or other approved assets under the same relative path; validate asset references before enabling. |
| RPG item mod | mods/<id>/data/rpg/loot.json plus assets/Sprites/Equipment/... | Add merge loot data, reference iconSheet by file name, validate duplicate IDs, then test drops or shop offers. |
| JSON script mod | mods/<id>/scripts/runtime.json | Declare entrypoints in mod.json, add hooks such as OnRunStart or OnWaveStart, and use supported restricted actions only. |
| Lua mod | No public Lua runtime in this build | Use JSON hook entrypoints or native plugins instead until a Lua host is added and documented. |
| Native C++ mod | mods/<id>/native/win64, native/linux64, native/macos | Build against the native SDK, declare nativePlugins and permissions, enable unsafe_native_mods, then validate ABI/API compatibility. |
Mods are opt-in during normal play. The in-game Mods page can enable or disable mods, reorder load order, open the mods folder, and toggle unsafe native mods.
Enabled mods, Workshop roots, and base game roots are resolved with dependency and load-before/load-after constraints.
Loading runtime mods switches play to the shared modded profile and disables Steam achievements and leaderboard submissions for that session.
Modded multiplayer requires matching build ID, active mod-set hash, and active mod-list digest across host and clients.