Skip to content

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