Town
towns/<id>.ron — one authored settlement. id equals the file stem.
The fields are grouped by the interpreter's build PHASES (geography, power, factions, folk, knowledge, goods, professions, production, items, seats) — the order seed.rs mints its nodes in, so a campaign-built world is node-for-node the fixture's (the equivalence lock).
| Field | Type | Required | Description |
|---|---|---|---|
| civic_venues | Venue[] | required | Civic venues with no owner-operator (the keep, the tavern, the office). |
| deities | string[] | required | Deity names worshipped here — minted as |
| factions | Faction[] | required | The town's factions (guild, watch, cult). |
| folk | Character[] | required | The dockside cast that owns no venue (the player, the fisherman, ...). |
| id | string | required | |
| items | ItemDef[] | required | Free-standing items (chests, the notice board, the smoke barrel). |
| keys | KeyDef[] | required | Knowledge keys (the lock lattice), created FIRST, in this order. |
| knowledge | Knowledge | required | The gated knowledge layer (events, rumors, false beliefs). |
| name | string | required | The settlement's display name ("Greyharbor"). |
| power | Power | required | The polity that rules here — its ruler, predecessor, and laws. |
| production | Venue[] | required | Production venues, each with its owner-operator embedded. |
| region | string | required | The campaign region this settlement is |
| residences | Venue[] | required | Residences a wage-earner keeps, created in the seats phase and owned via |
| rosters | Roster[] | required | Seeded rosters: extra memberships beyond the seats. |
| source | Source | required | |
| terrain | string[] | required | Terrain tags (data/tables/terrain_tags.ron) — the ground a venue's building type is permitted on. Carried for validation and for the realm's |
| wards | Ward[] | required | The settlement's wards (neighbourhoods), minted in this order. |
| waters | Venue[] | required | Open waters — a Location adjacent to a ward, worked by anyone. |
Nested shapes
Every shape Town closes over, so this page stands alone.
BeliefDef
A false belief: a believer denies a true edge and asserts a false one.
| Field | Type | Required | Description |
|---|---|---|---|
| asserts_place | string | required | The place the believer wrongly thinks it occurred (a venue handle). |
| believer | string | required | The character who holds the false belief, by handle. |
| day | uint64 | required | The day the belief took hold. |
| denies | string | required | The truth edge id (an |
| event | string | required | The event whose location the believer is wrong about. |
Carry
A carried tool stack, optionally with seeded training against it.
| Field | Type | Required | Description |
|---|---|---|---|
| good | string | required | The carried good, by handle (a tool). |
| qty | int64 | required | The quantity carried (units). |
| trained_days | number | optional | Seeded training days against this tool — the guild fits its fixer out proficient. |
CausedBy
The causal author of an event, behind its own key.
| Field | Type | Required | Description |
|---|---|---|---|
| gate | string | required | The key gating the causal edge (the conspiracy's secret). |
| who | string | required | The causal author, by character handle ( |
Character
A character — used for folk, the ruler, venue owners, and seat-holders. Every field the fixture sets; the interpreter applies them in the phase order seed.rs uses, so props that must precede derive_traits (alignment, greed, flavour knobs) do. Only name is required — a campaign record is large, so absent optionals default (the soul is what's SET).
| Field | Type | Required | Description |
|---|---|---|---|
| action_budget | integer | optional | Active projects/actions the soul may pursue per cycle ( |
| carries | Carry[] | optional | Tool stacks carried in the pack (tackle, thieves' tools). |
| conviviality | number | optional | Conviviality dial ( |
| duty | number | optional | Duty dial ( |
| employed_by | Employment | optional | An employment ( |
| ethic | number | optional | Ethical alignment axis ( |
| goal | string | optional | A goal string ( |
| grants | string[] | default [] | Key ids the character holds (a secret keeper). |
| greed | number | optional | Greed dial ( |
| haunt | string | optional | Off-shift haunt — a ward name or venue handle (see |
| hireable | boolean | default false | A blade for hire: stamps |
| home | string | optional | Home/work/haunt — resolved by ward name or venue handle. |
| industry | number | optional | Industry dial ( |
| knows | string[] | default [] | Characters this one |
| located_at | string | optional | An explicit presence ( |
| master | boolean | default false | Trained as-if a life already worked: |
| member_of | string[] | default [] | Faction/ward handles the character is |
| moral | number | optional | Moral alignment axis ( |
| name | string | default "" | |
| owes | Debt | optional | A debt the character |
| owns | string[] | default [] | Venue/item handles the character |
| profession | string | optional | A profession handle (a library field: "fisher", "innkeeper", ...). |
| purse | integer | optional | Coin held (a purse minted last — liquidity). |
| resolve | number | optional | Resolve dial ( |
| roll_seed | integer | optional | Or a deterministic roll salt (the craft quarter rolls stats). |
| scores | array | optional | A hand-cast stat block (STR, DEX, CON, INT, WIS, CHA). |
| status | string | optional | A display status label ( |
| tier | integer | optional | Agency tier ( |
| work | string | optional | Work-shift intent — a ward name or venue handle (see |
| workplace | string | optional | The workplace the profession is assigned at (a venue handle). |
| worships | string | optional | A deity this character |
Debt
A debt (Owes edge) with its amount, due date, reason, and the law it accrues under (so fresh arrears fold into the one edge).
| Field | Type | Required | Description |
|---|---|---|---|
| amount | int64 | required | The amount owed, in minor units. |
| due_day | uint64 | required | The day the debt falls due. |
| reason | string | required | A display reason for the debt. |
| since_day | uint64 | required | The day the debt was incurred. |
| to | string | required | The creditor, by handle ( |
| under | string | required | The law the debt accrues under, by handle. |
Employment
An employment: the org that employs the character, an optional wage on the edge, and the day it began.
| Field | Type | Required | Description |
|---|---|---|---|
| by | string | required | The org that employs the character, by handle ( |
| since_day | uint64 | required | The day the employment began. |
| wage | integer | optional | The wage on the edge in minor units per payday; absent = unwaged. |
EventDef
A gated event, its participants, and where it occurred.
| Field | Type | Required | Description |
|---|---|---|---|
| caused_by | CausedBy | optional | Causal author ( |
| day | uint64 | required | The day the event occurred. |
| gate | string | required | The key gating the event node and its default edges. |
| id | string | required | Handle for belief cross-reference. |
| name | string | required | |
| occurred_at | OccurredAt | optional | Where it occurred (a venue handle), with an optional gate override. |
| participants | Participant[] | required | Participants: (who handle, role, optional edge-specific gate override). |
| succession | Succession | optional | A succession this event records ( |
Faction
A faction: its kind, keys, charter goal, hostilities, the laws it enforces, its seat, and its roster wiring.
| Field | Type | Required | Description |
|---|---|---|---|
| enforces | LawRef[] | optional | Law handles this faction |
| free_company | boolean | default false | A mercenary free company: lives by the wanted poster. |
| goal | Goal | optional | The faction's charter goal (kind + handle target), if any. |
| grants | string[] | default [] | Confidence keys this faction holds (its inner circle). |
| hostile_to | string[] | default [] | Faction handles this one is |
| id | string | required | Handle for cross-reference (goal targets, memberships, hostilities). |
| kind | FactionKind | required | Whether this mints a |
| located_in | string | optional | The ward the faction's SEAT node LOCATED_IN (its coin's physical home). |
| name | string | required | |
| org_kind | string | optional | The organization KIND: an |
| seat | Character | optional | The seat-holder (created in the seats phase). |
| seat_coffers | boolean | default false | Whether the faction's home + war chest are minted in the SEATS phase (with its seat-holder) rather than the ITEMS phase — the watch keeps its captain's ward, the guild fronts the docks earlier. Item-mint order is fixture-faithful, so this rides where the coffer lands. |
| seat_ward | string | optional | The ward the faction's seat (and coin) sits in. |
| treasury | integer | optional | The faction's treasury (coin held). |
FactionKind
Whether a faction is a Faction or a Polity node.
FactionPolityGoal
A faction goal: kind (control/suppress) and a handle target.
| Field | Type | Required | Description |
|---|---|---|---|
| kind | GoalKind | required | Whether the org wants to Control or Suppress the target. |
| target | string | required | The goal's subject, by handle ( |
GoalKind
Faction goal kind — mirrors factions::FactionGoal.
ControlSuppressItemDef
A free-standing item (a locked chest, the notice board, the smoke barrel).
| Field | Type | Required | Description |
|---|---|---|---|
| at_day | integer | optional | The day the item enters play (defaults to t0). |
| attuned_magic | string | optional | A WONDROUS magic def this item instantiates, worn ATTUNED by its |
| gate | string | optional | Gate the item node behind a key: a concealed thing, invisible until a keyholder — or a successful Investigate roll — earns the key. |
| given_to | string | optional | Given to a holder instead of resting (the player's sword). |
| in_place | string | default "" | Where it rests (a venue/ward handle). |
| is_board | boolean | default false | Marks the town notice board. |
| lock_dc | integer | optional | A lock DC fitted. |
| name | string | default "" | |
| owner | string | optional | Who owns it (a character/faction handle). |
| stocks | Stock[] | optional | Contents (stored stacks) — coin in a strongbox, dried fish in a barrel. |
KeyDef
A knowledge key: a local id handle plus the graph key NAME.
| Field | Type | Required | Description |
|---|---|---|---|
| id | string | required | |
| name | string | required |
Knowledge
The gated knowledge layer: events, the rumors that spread them, and the false belief overlays.
Law
A law: a rate, and who is subject (wards carry the subject_to edges).
| Field | Type | Required | Description |
|---|---|---|---|
| enacted_day | uint64 | required | The day the polity |
| id | string | required | |
| name | string | required | |
| rate | integer | optional | The levy the law charges ( |
LawRef
A dated reference to a law handle.
| Field | Type | Required | Description |
|---|---|---|---|
| law | string | required | The law this refers to, by handle (a |
| since_day | uint64 | required | The day the subjection/enforcement began. |
OccurredAt
Where an event occurred.
| Field | Type | Required | Description |
|---|---|---|---|
| gate | string | optional | Key gating this edge; absent = the event's own gate. |
| id | string | optional | Handle to reference this specific edge from a belief (the truth a believer denies). |
| place | string | required | Where the event occurred, by venue handle. |
Participant
One participant in an event.
| Field | Type | Required | Description |
|---|---|---|---|
| gate | string | optional | Gate override for this edge (defaults to the event's gate). |
| role | string | required | The role this participant played, a |
| who | string | required | The participant, by character handle. |
Placement
Where a venue sits relative to its ward.
In
LocatedIn the ward (a building).
Adjacent
AdjacentTo the ward (open water off the docks).
Power
The polity, its ruler, the predecessor whose death opened the campaign, and the laws.
| Field | Type | Required | Description |
|---|---|---|---|
| controls | string | required | The region the polity controls. |
| goal | Goal | optional | The polity's goal ( |
| id | string | required | Cross-reference handle for the polity ("duchy"). |
| laws | Law[] | required | The polity's laws. |
| polity | string | required | The polity's name ("Duchy of Greyharbor"). |
| polity_concept | string | required | The |
| predecessor | Predecessor | required | The dead predecessor (the assassinated duke). |
| ruler | Character | required | The regent (the living ruler) — a full character, whose |
| seat | string | required | The seat the polity's coin and household live in (a venue handle). |
| treasury | integer | optional | The polity's treasury (coin held). |
Predecessor
The assassinated predecessor: a dead character, a closed reign, a title.
| Field | Type | Required | Description |
|---|---|---|---|
| name | string | required | |
| reign_from_day | uint64 | required | The reign's start and end days (closed on the death day). |
| status | string | required | The predecessor's status label ("Deceased"). |
| title | string | required | The title held ("Duke of Greyharbor"). |
| title_from_day | uint64 | required | The day the title was assumed. |
Roster
A seeded membership: a character joins a faction (rosters).
| Field | Type | Required | Description |
|---|---|---|---|
| faction | string | required | The faction joined, by handle ( |
| who | string | required | The character joining, by handle. |
RumorDef
A spreading rumor (ADR: diffusion).
| Field | Type | Required | Description |
|---|---|---|---|
| grants | string | required | The key the rumor grants as it spreads. |
| juiciness | double | required | Spread appetite ( |
| name | string | required | |
| origin | string | required | The ward it originates from. |
| started_day | uint64 | required | The day the rumor began spreading. |
| suppression | double | required | Suppression pressure ( |
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.
Stock
A stored stack: a good handle and its opening quantity.
| Field | Type | Required | Description |
|---|---|---|---|
| good | string | required | The stored good, by handle. |
| qty | int64 | required | The opening quantity (units). |
Succession
A succession recorded on an event.
| Field | Type | Required | Description |
|---|---|---|---|
| as_what | string | required | The title/role succeeded to (the |
| day | uint64 | required | The day the succession took effect. |
| gate | string | required | The key gating the succession edge. |
| predecessor | string | required | Who is succeeded, by character handle. |
| successor | string | required | Who succeeds, by character handle ( |
Venue
A venue: a place with a name, a ward, the knobs seed.rs sets (ASSESSED, MARKUP, RATE_MOD), what it demands and produces, its opening stock, and an optional owner-operator.
| Field | Type | Required | Description |
|---|---|---|---|
| assessed | integer | optional | Assessed land/structure value in minor units — the bare-walls tax base ( |
| building | string | optional | The building TYPE (data/buildings/*.ron) this venue instances — used by the validator for the permit check ( |
| commons | boolean | default false | A natural COMMONS feature: sets the |
| handle | string | default "" | Cross-reference handle (a home/workplace target: "tavern", "forge"). |
| markup | number | optional | Retail price multiplier over base worth ( |
| name | string | default "" | |
| owned_by | string | optional | An existing owner referenced by handle/name (a wage-earner's house). |
| owner | Character | optional | An owner-operator created WITH the venue (the brewer of the mash house). |
| placement | Placement | optional | Whether the venue is |
| rate_mod | number | optional | Production-rate multiplier ( |
| requires | string[] | default [] | Good handles this venue demands beyond its production inputs ( |
| stocks | Stock[] | optional | Opening stored stacks (good handle + quantity). |
| ward | string | default "" | The ward this venue sits in, by name (placed per |
Ward
A ward: its adjacencies, the keys it grants (regional common knowledge), and the laws it is subject to.
| Field | Type | Required | Description |
|---|---|---|---|
| adjacent_to | string[] | default [] | Ward names this one is |
| grants | string[] | default [] | Key ids this ward HOLDS (its residents share the knowledge). |
| name | string | default "" | |
| subject_to | LawRef[] | optional | Laws this ward is |