scene_commit
Persist campaign scene changes so discoveries, movements, and secrets survive a restart. Use it after key events to update visible facts, hidden changes, clocks, and present characters.
Instructions
Commit a durable fictional change to the campaign files.
Call this after the party discovers an entrance, alarms a faction, moves to a new location, learns a secret, or changes the situation in a way that must survive a restart.
visible_changes records what the party knows, including the party's own secret actions: a hiding place the party made is the party's knowledge, not a game-master secret, even when the scene hides it from others. hidden_changes records only facts the party does not know. Filing a party action as hidden makes the game master unable to answer the party about their own deed.
This tool never changes hit points, Doom, inventory, or any other mechanic that belongs to a dedicated tool.
new_clocks entries take the form {"id": "tide", "name": "The tide", "segments": 6}. clock_updates maps a clock id to a signed segment change.
environment_tags replaces the scene's open-vocabulary descriptors (e.g. "natural", "urban") when passed; omit it to leave the current tags unchanged. Some backgrounds' rest-time mechanics read these -- e.g. a Herbalist's stock only replenishes on a long rest whose scene carries "natural". Tag the scene here before that rest happens, not as an argument to rest.
persons records people present who have no NPC record yet -- a clerk, a trader, someone the party only talks to. Each entry takes the form {"name": "Salt Magistrate clerk", "role": "counts barrels for the Magistrates"}; role is optional. The server allocates the id from the name, so the same name later names the same person, and npc_create on that name promotes the person to a full NPC when a fight needs one. Pass present_npcs, not persons, for anyone npc_create already created. departed_persons names persons who have left the scene, by the same name; a move to a new location_id already takes every person and every located NPC of the old scene with it.
refs optionally lists the recorded identifiers this commit's changes are about (characters, NPCs, persons, objects); unknown identifiers are dropped. retire_facts removes a fact that is no longer true from the visible record: quote the line exactly as the Visible facts list states it. The fact stays in the campaign's history; it simply stops being current.
party_secrets records knowledge the party holds that the world's people do not -- a hiding place the party made, a plan they whispered. It is the party's own knowledge: answer the party about it freely, and never treat it as a game-master secret. hidden_changes remains only for facts the party does not know.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| refs | No | ||
| exits | No | ||
| persons | No | ||
| new_hooks | No | ||
| new_clocks | No | ||
| location_id | No | ||
| scene_title | No | ||
| present_npcs | No | ||
| retire_facts | No | ||
| clock_updates | No | ||
| party_secrets | No | ||
| hidden_changes | No | ||
| public_summary | Yes | ||
| resolved_hooks | No | ||
| visible_changes | No | ||
| departed_persons | No | ||
| environment_tags | No | ||
| in_game_time_delta_minutes | No |