Gameplay content

Game modes

The modes New Game offers (sandbox, story, your own), and the rules each one sets.

Each mode is one New … Game row in the main menu. The player picks a mode once, when they start a life, and the save keeps it. The base game ships two modes:

  • sandbox: everything is open. The player can furnish any building, set any stat in the creator and use the cheat tools.
  • story: the player starts with the bare minimum, can only furnish their own home, with furniture they bought, and has no cheats. The Cheats mod (ul_Cheats) opens all of it again.

Modes live in PlayModes/*.json in any mod. A later mod overrides a mode field by field, so a file that gives only start_stats changes the start and leaves every other rule as it was. A new id adds a new row to the menu.

json{
  "modes": {
    "story": {
      "start_stats": { "money": 40 }
    },
    "outbreak": {
      "label": "New Outbreak Game",
      "subtitle": "The city is sick. Get through it.",
      "order": 2,
      "edit_any_building": false,
      "choose_stats": false,
      "cheats": false,
      "free_furniture": false,
      "start_stats": { "money": 300 }
    }
  }
}

Fields

Field Default Meaning
label the id The row's text in the main menu.
subtitle The line under it.
order 0 Position in the menu, lowest first.
edit_any_building true Furnish is offered in every building. When false, it is offered only in the player's home.
choose_stats true The creator's Skills page has sliders. When false, the life starts on each stat's DEFAULT_VALUE plus start_stats. The Preferences page (attraction) can always be edited.
cheats true Edit Character in the pause menu, and editing any person's character and look from their sheet.
free_furniture true Build mode's free PIECES and SETS catalogue. When false, the player furnishes only with what they bought (the OWNED tab, filled by a furniture shop).
start_stats stat id → value, applied when the creator finishes, only if choose_stats is false.
teaser false The row is a hint: a dimmed silhouette with the label and no subtitle. Still playable; use it for the stories after the first, with a numeral as the label.

A save made before game modes existed loads as sandbox. So does a save whose mode came from a mod that has since been removed.

When start_stats fixes age, the creator shows that age and offers no slider: a story's protagonist has the story's age.

Lua reads the mode with Game:getPlayMode() ("sandbox", "story", your own id). A mode cannot run scripts of its own yet: start one from the newGame event instead.

luaEvents:on(M, "newGame", function()
  if Game:getPlayMode() ~= "my_story" then return end
  Game:startQuest("my_story_main")
end)

A cheat mod

Because a later mod's PlayModes/*.json changes a mode field by field, a mod can open the story mode without touching anything else. The base game's Cheats mod (ul_Cheats) is only this file:

json{ "modes": { "story": { "edit_any_building": true, "cheats": true, "free_furniture": true } } }

The story's start (money, stats) stays as it is; turn the mod off to play the story as written.