Campaign
campaign.ron — the manifest. id equals the campaign folder name.
| Field | Type | Required | Description |
|---|---|---|---|
| chronicle | Note[] | required | Backdated chronicle entries the world opens with. |
| death_day | uint64 | required | The day the campaign's founding death fell (the ducal assassination). |
| default_seed | uint64 | required | Root of every deterministic roll when no seed is supplied. |
| description | string | required | A one-line blurb for the realm (flavour, not resolved). |
| id | string | required | |
| name | string | required | The realm-scale region the towns sit in ("Thornwood Vale"). |
| player_start | PlayerStart | optional | Where an admitted player character comes ashore — the creator's data. Additive: a campaign without it can still be played through the seeded pregen fast lane. |
| roads | Road[] | required | Roads laid AFTER the towns are built, resolved by node name. |
| slots | Slot[] | required | Procedural town slots (worldgen) — what makes the realm the realm: an authored coast plus a generated vale. |
| source | Source | required | |
| start_day | uint64 | required | When the campaign opens (day, and the hour the world boots at). |
| start_hour | uint64 | required | The hour of |
| towns | string[] | required | Authored towns, by file id ( |
Nested shapes
Every shape Campaign closes over, so this page stands alone.
Note
A backdated chronicle note (record_at).
| Field | Type | Required | Description |
|---|---|---|---|
| day | uint64 | required | The day the note is backdated to. |
| hour | uint64 | required | The hour of that day (0-23). |
| text | string | required | The chronicle line's text. |
PlayerStart
Where the character creator's minted PC ENTERS the world: the settlement it comes ashore in, the venue/ward it is placed LocatedIn, a starting purse, and an optional ward membership. Resolved BY NODE NAME at admit time (the interpreter has already minted these), so it reads like the campaign's roads (also name-resolved). Validated by the one campaign validator (campaign/validate.rs): the settlement, venue, and ward must name real nodes the town declares.
| Field | Type | Required | Description |
|---|---|---|---|
| purse | integer | optional | A starting purse in the coin good's minor units (silver), if any. |
| settlement | string | required | The settlement the PC enters (a town's display name — "Greyharbor"). |
| venue | string | required | The venue OR ward the PC is placed |
| ward | string | optional | A ward the PC joins on arrival ( |
Road
A road between two named nodes, carrying the ride's length in days. Resolved by node NAME after the towns exist.
| Field | Type | Required | Description |
|---|---|---|---|
| days | int64 | required | The ride's length in days. |
| from | string | required | The node the road runs FROM, by name (a settlement). |
| route | string | required | The route's display name ("the Coast Road"). |
| to | string | required | The node the road runs TO, by name (a settlement). |
Slot
A procedural town slot: worldgen builds it, and a road binds it to a settlement that already stands (authored, or rolled by an earlier slot).
SlotKind
The kind of procedural fill a slot requests.
Worldgen
A full worldgen town, landlocked farm-and-forge by default.
Mountain
The far mine-and-mithral peaks: a mountain town whose data mine instantiates the rare-regional mithral deposit — the first world where mithral flows. Booted only at three towns (RPGPT_TOWNS=3).
SlotRoad
Where a slot's road runs FROM — the settlement at the road's other end.
Two forms, because a realm's towns are not all named at the same time. An AUTHORED town has its name in the campaign's own files, so a slot can just say it. A ROLLED town's name is drawn from the realm seed at compose time and does not exist while the manifest is being read — so a road that runs from one must reference the SLOT that rolls it, by index.
That second form is what lets a wide realm CHAIN (the river town off the vale, the high pass off the river, the forest past the pass) rather than starring every road off the authored coast — which piled every route posting and traded store onto one hub and grew its menu enumeration superlinearly in town count.
Town
An authored settlement, by name: Town("Greyharbor").
Carries string.
Slot
An EARLIER slot's rolled town, by index: Slot(0). Must point strictly backwards — a slot cannot road from a town not yet placed.
Carries uint.
Source
Every file's top-level value carries source.
Srd51
SRD 5.1 — the System Reference Document, the shipped baseline.
Original
Original content authored for this game (not from the SRD).
Personal
A player's own transcription or third-party content in a mod tree — provenance stays honest without borrowing the base tree's markers. Never used by shipped files.