Campaigns

A campaign is the top-level container for everything you build — NPCs, encounter templates, zones, locations, parties. This page walks the two screens that handle it: the list and the editor.

What a campaign holds

One campaign collects all the moving parts of one game world:

  • NPC catalog — the cast of named characters and creatures.
  • Encounter templates — reusable bundles of NPCs.
  • Zones & locations — the map graph the party will move through.
  • Parties — the players' characters once they hand you their JSON.

Everything sits inside the campaign. Deleting a campaign deletes all of it; exporting a zone or NPC list creates an independent JSON copy you can paste into another campaign.

The Campaigns list

Campaigns (/Campaign/List) is the index of every campaign saved on this device. Each row shows:

  • Name — the campaign's display name.
  • Actions — the three buttons below.

Per-row actions, left to right:

  • Edit (pencil) — loads this campaign and opens the editor.
  • Play (green play icon) — loads this campaign and opens Play campaign at the table. Tooltip: "Run this campaign at the table." Full walkthrough on At the table.
  • Delete (bin) — removes the campaign after a confirmation dialog that calls out that NPCs, zones, parties and the rest are removed with it.

The footer holds list-level actions (same pattern as the character roster):

  • Edit current campaign — returns to the editor for the campaign already loaded in memory. Disabled when none is active. Use this after Back to list to resume mid-edit.
  • Create new campaign — starts an empty draft and lands you on the editor with the General panel focused. Disabled while a campaign is already active; use Stop editing (no save) on the editor first if you need a clean slate. After naming the draft, leave Include default NPCs on and save — see NPCs.

The Game Master nav mirrors the player campaign pattern: List, Create new / Edit (opens /Campaign/Edit for the active campaign, or starts an empty draft when none is loaded), and Active campaign (opens /Campaign/Play for the loaded campaign — same destination as the list Play icon; shows a warning if nothing is loaded).

The list shows the campaigns saved on this device. There is no central server — see How it works.

The campaign editor

Edit campaign (/Campaign/Edit) is a single page with five collapsible panels. They mirror the way the character editor is built — one section per concern, collapsible so you can focus on the part you're working on.

The five panels, in order:

  1. GeneralName (required) and Description. The collapsed header shows the campaign's name so you can fold this away once it's set.
  2. NPCs — the catalog. Header shows the NPC count when collapsed. Full coverage on NPCs.
  3. Encounter Templates — bundles of NPCs that locations can reference. Header shows the template count. Full coverage on Encounter templates.
  4. Zones — the campaign's maps. Adding or editing a zone leaves the campaign edit page and opens the dedicated zone editor. Full coverage on Zones & locations.
  5. Parties — the player rosters you'll run with. Full coverage on Parties.

Panels remember their expanded / collapsed state during a session. Collapsing the ones you aren't using right now makes the page much friendlier on a phone.

Saving a campaign

Two things to know:

  • The footer's Save campaign writes the whole campaign — including any in-memory NPC / template / party / zone changes — to local storage. A snackbar confirms with "Campaign 'Name' saved."
  • Sub-editor save buttons (Save NPC, Save party, etc.) also persist the campaign as part of saving the sub-item. That's deliberate — if you save an NPC, you expect "saved" to mean it survives a refresh, not that it sits in memory waiting for a second click.

In short: when you want to commit work, hit the Save button that's closest to it. The footer's Save campaign is your "catch-everything" button when you've been moving between panels.

Back to list leaves the editor without clearing the active campaign — your in-memory work stays loaded for the session, and Edit current campaign (or nav Create new / Edit) brings you back. Stop editing (no save) clears the in-memory campaign without writing to local storage (saved roster entries are untouched) and returns to the list so Create new campaign is available again. A browser refresh still drops anything you never saved.

Renaming a campaign

The campaign name lives in the General panel. Typing into the Name field updates it immediately; Save campaign writes it through. The Campaigns list re-sorts alphabetically the next time it loads.

Names must be unique across your campaigns. If you save a rename onto a name that already exists, you'll see a validation error and the rename won't go through.

Deleting a campaign

The bin icon on a campaign row opens a confirmation dialog — "Are you sure you want to delete 'Name'? All parties, NPCs, zones and locations in this campaign will be removed." Confirm and the entire campaign is gone from this device.

Player character data is the exception: imported player characters live in per-character storage so they survive a campaign delete. They become orphans (no party referencing them) until you import them into another campaign. There's no UI cleanup for those orphans yet — they sit harmlessly in storage.

What you can't (yet) do here

  • Duplicate a campaign. The closest workflow today is to export each zone and the NPC list, then create a new campaign and paste them back in. See Zones and NPCs for the import / export details.

See also

  • Quick start — the shortest path through this page.
  • How it works — local storage, the clipboard, and what doesn't leave your device.
  • Parties — how players hand you their characters.
  • At the table — running Play mode during a session.

Ready to build

Open Campaigns →

← Back to Campaign Guide