Getting started with mods¶
This walkthrough assumes you can open the game’s Mods menu and edit files on disk. Packs are ordinary folders (or zips) shaped like LoadedContent.
1. Create a pack¶
Easiest path: use Mod Prep (scripts/mod-prep-ui.ps1) to scaffold a pack
with modinfo.json and a sample item. Or create a folder under
Documents/My Games/Signs of Life/Mods/<YourPack>/
with at least:
{
"UniqueModName": "example_mod",
"DisplayName": "Example Mod",
"Description": "My first pack"
}
UniqueModName must be stable — it prefixes every content id
(example_mod.my_sword). Do not use sol (reserved for vanilla).
2. Add content JSON¶
Content files use prefixed names (item_, structure_, flora_, …) and a
single wrapper object. Point optional behavior at a Lua file:
{
"InventoryItem": {
"UniqueIdentifier": "my_widget",
"Name": "My Widget",
"LuaScriptPath": "Items/my_widget.lua"
}
}
Paths in LuaScriptPath are relative to the pack root.
3. Write a small script¶
require("Content/Lua/HeldItem")
my_widget = HeldItem:new()
itemTable = my_widget:new{}
function my_widget:initialize()
self.item:StartNamedAnimation("idle")
end
return itemTable
Use World: helpers and self.item / self.player proxies from the
API reference. Do not call io, os, import, or World.Map.
4. Load in-game¶
Enable the pack in Mods. Single-player can use Load Now for many packs; otherwise restart. If something fails to load, check the game log and run Mod Prep Validate on the pack folder.
Next¶
- Content packs — recipes, Workshop staging
- Sandbox — security model
- Hooks — which callbacks exist per content type