Campaigns
A campaign is a folder with a campaign.toml and the map folders it plays, one after another or by choice. The campaign page edits that file. Open it from the command palette (Ctrl+K): New campaign… makes a campaign in a folder you pick, Open campaign… opens a folder that already has one. Put the map folders inside the campaign folder first; the campaign refers to them by their path inside it.
The graph
The page draws the campaign as columns of cards, left to right by how many steps each node is from the start (the first node). Each card shows the node's id, its title and where each outcome leads (for example victory → briefing). A warning mark on a card means the checks found something wrong with it. Click a card to select it.
There are five kinds of node:
| Kind | What it is |
|---|---|
| Map | A mission. Win and lose say where the player goes next; with no lose target the mission is played again. |
| Cinematic | A scene with no play; leads to one next node. |
| Interlude | A briefing or camp screen; leads to one next node. |
| Choice | A question with answers, each leading to a node. Pick an answer in the node panel to change its text and where it leads; Add answer and Remove answer change the list. |
| End | The credits. |
The buttons at the top add nodes: Add map… asks for a map folder inside the campaign folder, and Cinematic, Interlude and End add the others. The side panel edits the selected node: its title, and the chooser for where a win, a loss or "then" leads. Delete node asks twice and removes every edge that led to it. Every change is saved at once.
Checks
The Checks list under the node panel is the campaign's validation: there must be a name and a start; every map node has a map and a win target; every target exists; every node can be reached from the start; every node has a way to an ending (a loop with no exit is refused); and every map folder is really in the campaign folder. Each line names its node, and a click on it selects that node. "The campaign is valid" shows when nothing is wrong.
Party
The strip under the graph is the campaign's party rules, saved in the [party] table: whether heroes and items travel from mission to mission, how much gold and lumber goes with them (none, half or all), the most heroes that travel, whether heroes start whole in the next mission, and whether a fallen hero returns or is lost for the rest of the campaign.
Briefing lines: objectives and bonus
A map node can carry two short lists in campaign.toml that the chapter screen shows before the player starts the mission: objectives (what the chapter asks) and bonus (optional extras, marked BONUS). They are plain words for the player; the game does not check them (the map's script decides victory).
[[node]]
id = "two"
kind = "map"
map = "maps/two"
title = "The Hero Arrives"
subtitle = "The same hero, now with the road behind them."
objectives = ["Hold the bridge until dawn", "Keep Mira Vale alive"]
bonus = ["Rescue the grain barges before the tide turns"]The campaign page keeps these lines when it saves, but does not edit them yet: change them in the file. A W4 from before they existed simply leaves them out of the briefing (they were added without a new campaign format number, because nothing breaks without them).
Drawing edges by dragging is not on the page yet.