KINBARROW modding reference
v0.2.0+main.c05ef2b dataset 45d0fe274f851548

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).

FieldTypeRequiredDescription
civic_venuesVenue[]required

Civic venues with no owner-operator (the keep, the tavern, the office).

deitiesstring[]required

Deity names worshipped here — minted as Deity nodes, referenced by a character's worships.

factionsFaction[]required

The town's factions (guild, watch, cult).

folkCharacter[]required

The dockside cast that owns no venue (the player, the fisherman, ...).

idstringrequired
itemsItemDef[]required

Free-standing items (chests, the notice board, the smoke barrel).

keysKeyDef[]required

Knowledge keys (the lock lattice), created FIRST, in this order.

knowledgeKnowledgerequired

The gated knowledge layer (events, rumors, false beliefs).

namestringrequired

The settlement's display name ("Greyharbor").

powerPowerrequired

The polity that rules here — its ruler, predecessor, and laws.

productionVenue[]required

Production venues, each with its owner-operator embedded.

regionstringrequired

The campaign region this settlement is LocatedIn.

residencesVenue[]required

Residences a wage-earner keeps, created in the seats phase and owned via owned_by.

rostersRoster[]required

Seeded rosters: extra memberships beyond the seats.

sourceSourcerequired
terrainstring[]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 set_terrain; a bare authored coast leaves it UNSTAMPED (the fixture carries none — the equivalence lock).

wardsWard[]required

The settlement's wards (neighbourhoods), minted in this order.

watersVenue[]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.

FieldTypeRequiredDescription
asserts_placestringrequired

The place the believer wrongly thinks it occurred (a venue handle).

believerstringrequired

The character who holds the false belief, by handle.

dayuint64required

The day the belief took hold.

deniesstringrequired

The truth edge id (an OccurredAt.id) the believer denies.

eventstringrequired

The event whose location the believer is wrong about.

Carry

A carried tool stack, optionally with seeded training against it.

FieldTypeRequiredDescription
goodstringrequired

The carried good, by handle (a tool).

qtyint64required

The quantity carried (units).

trained_daysnumberoptional

Seeded training days against this tool — the guild fits its fixer out proficient.

CausedBy

The causal author of an event, behind its own key.

FieldTypeRequiredDescription
gatestringrequired

The key gating the causal edge (the conspiracy's secret).

whostringrequired

The causal author, by character handle (Caused edge).

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).

FieldTypeRequiredDescription
action_budgetintegeroptional

Active projects/actions the soul may pursue per cycle (ACTION_BUDGET).

carriesCarry[]optional

Tool stacks carried in the pack (tackle, thieves' tools).

convivialitynumberoptional

Conviviality dial (CONVIVIALITY), clamped 0.5..1.8 (1.0 = neutral).

dutynumberoptional

Duty dial (DUTY), clamped 0.5..1.8 (1.0 = neutral).

employed_byEmploymentoptional

An employment (Employs edge FROM the org), the wage on the edge.

ethicnumberoptional

Ethical alignment axis (ETHIC), -1 (chaotic).. +1 (lawful).

goalstringoptional

A goal string (GOAL), e.g. "GOVERNS(Duchy of Greyharbor)".

grantsstring[]default []

Key ids the character holds (a secret keeper).

greednumberoptional

Greed dial (GREED), a multiplier clamped 0.5..1.8 (1.0 = neutral).

hauntstringoptional

Off-shift haunt — a ward name or venue handle (see home).

hireablebooleandefault false

A blade for hire: stamps vocab::HIREABLE, so coin — not charisma — brings this soul into a player's company.

homestringoptional

Home/work/haunt — resolved by ward name or venue handle.

industrynumberoptional

Industry dial (INDUSTRY), clamped 0.5..1.8 (1.0 = neutral).

knowsstring[]default []

Characters this one Knows (a named acquaintance edge).

located_atstringoptional

An explicit presence (LocatedIn) at the campaign start — the newly arrived stranger, placed rather than drifted from a home.

masterbooleandefault false

Trained as-if a life already worked: EXPERT_AT_DAYS + 100 against the trade tool.

member_ofstring[]default []

Faction/ward handles the character is MemberOf (t0, or the campaign start when they are a fresh arrival — see located_at).

moralnumberoptional

Moral alignment axis (MORAL), -1 (evil).. +1 (good).

namestringdefault ""
owesDebtoptional

A debt the character Owes (the innkeeper's tithe arrears).

ownsstring[]default []

Venue/item handles the character Owns at creation (targets must already exist; late-created items carry their owner on the ItemDef).

professionstringoptional

A profession handle (a library field: "fisher", "innkeeper", ...).

purseintegeroptional

Coin held (a purse minted last — liquidity).

resolvenumberoptional

Resolve dial (RESOLVE) — ruin eaten before bending; 0.5..1.8.

roll_seedintegeroptional

Or a deterministic roll salt (the craft quarter rolls stats).

scoresarrayoptional

A hand-cast stat block (STR, DEX, CON, INT, WIS, CHA).

statusstringoptional

A display status label (STATUS).

tierintegeroptional

Agency tier (TIER): how high in the decision ladder this soul sits (1 = a scheming principal).

workstringoptional

Work-shift intent — a ward name or venue handle (see home).

workplacestringoptional

The workplace the profession is assigned at (a venue handle).

worshipsstringoptional

A deity this character Worships, by name (a town deity).

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).

FieldTypeRequiredDescription
amountint64required

The amount owed, in minor units.

due_dayuint64required

The day the debt falls due.

reasonstringrequired

A display reason for the debt.

since_dayuint64required

The day the debt was incurred.

tostringrequired

The creditor, by handle (Owes edge target).

understringrequired

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.

FieldTypeRequiredDescription
bystringrequired

The org that employs the character, by handle (Employs edge source).

since_dayuint64required

The day the employment began.

wageintegeroptional

The wage on the edge in minor units per payday; absent = unwaged.

EventDef

A gated event, its participants, and where it occurred.

FieldTypeRequiredDescription
caused_byCausedByoptional

Causal author (Caused), with a gate (Morvath's web).

dayuint64required

The day the event occurred.

gatestringrequired

The key gating the event node and its default edges.

idstringrequired

Handle for belief cross-reference.

namestringrequired
occurred_atOccurredAtoptional

Where it occurred (a venue handle), with an optional gate override.

participantsParticipant[]required

Participants: (who handle, role, optional edge-specific gate override).

successionSuccessionoptional

A succession this event records (Succeeded).

Faction

A faction: its kind, keys, charter goal, hostilities, the laws it enforces, its seat, and its roster wiring.

FieldTypeRequiredDescription
enforcesLawRef[]optional

Law handles this faction Enforces, each since a day.

free_companybooleandefault false

A mercenary free company: lives by the wanted poster.

goalGoaloptional

The faction's charter goal (kind + handle target), if any.

grantsstring[]default []

Confidence keys this faction holds (its inner circle).

hostile_tostring[]default []

Faction handles this one is HostileTo.

idstringrequired

Handle for cross-reference (goal targets, memberships, hostilities).

kindFactionKindrequired

Whether this mints a Faction or a Polity node.

located_instringoptional

The ward the faction's SEAT node LOCATED_IN (its coin's physical home).

namestringrequired
org_kindstringoptional

The organization KIND: an org_kinds/ id whose muster and combat archetype this faction carries (thieves, law, temple…). Absent = an untyped faction (the polity, a plain house). The twin of the seed's orgs::install — the equivalence the isomorphism lock demands.

seatCharacteroptional

The seat-holder (created in the seats phase).

seat_coffersbooleandefault 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_wardstringoptional

The ward the faction's seat (and coin) sits in.

treasuryintegeroptional

The faction's treasury (coin held).

FactionKind

Whether a faction is a Faction or a Polity node.

FactionPolity

Goal

A faction goal: kind (control/suppress) and a handle target.

FieldTypeRequiredDescription
kindGoalKindrequired

Whether the org wants to Control or Suppress the target.

targetstringrequired

The goal's subject, by handle (GOAL_TARGET, a node the town declares).

GoalKind

Faction goal kind — mirrors factions::FactionGoal.

ControlSuppress

ItemDef

A free-standing item (a locked chest, the notice board, the smoke barrel).

FieldTypeRequiredDescription
at_dayintegeroptional

The day the item enters play (defaults to t0).

attuned_magicstringoptional

A WONDROUS magic def this item instantiates, worn ATTUNED by its given_to holder from genesis — the regent's warded ring. Ignored without a holder: an attunement needs someone to attune.

gatestringoptional

Gate the item node behind a key: a concealed thing, invisible until a keyholder — or a successful Investigate roll — earns the key.

given_tostringoptional

Given to a holder instead of resting (the player's sword).

in_placestringdefault ""

Where it rests (a venue/ward handle).

is_boardbooleandefault false

Marks the town notice board.

lock_dcintegeroptional

A lock DC fitted.

namestringdefault ""
ownerstringoptional

Who owns it (a character/faction handle).

stocksStock[]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.

FieldTypeRequiredDescription
idstringrequired
namestringrequired

Knowledge

The gated knowledge layer: events, the rumors that spread them, and the false belief overlays.

FieldTypeRequiredDescription
beliefsBeliefDef[]required

False-belief overlays a character holds.

eventsEventDef[]required

Gated historical events (the campaign's backstory).

rumorsRumorDef[]required

Rumors spreading through the wards (diffusion).

Law

A law: a rate, and who is subject (wards carry the subject_to edges).

FieldTypeRequiredDescription
enacted_dayuint64required

The day the polity Enacted it.

idstringrequired
namestringrequired
rateintegeroptional

The levy the law charges (RATE) — a flat daily figure, or a per-mille wealth rate in minor units; absent = no monetary rate.

LawRef

A dated reference to a law handle.

FieldTypeRequiredDescription
lawstringrequired

The law this refers to, by handle (a Law.id).

since_dayuint64required

The day the subjection/enforcement began.

OccurredAt

Where an event occurred.

FieldTypeRequiredDescription
gatestringoptional

Key gating this edge; absent = the event's own gate.

idstringoptional

Handle to reference this specific edge from a belief (the truth a believer denies).

placestringrequired

Where the event occurred, by venue handle.

Participant

One participant in an event.

FieldTypeRequiredDescription
gatestringoptional

Gate override for this edge (defaults to the event's gate).

rolestringrequired

The role this participant played, a ROLE edge label ("victim").

whostringrequired

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.

FieldTypeRequiredDescription
controlsstringrequired

The region the polity controls.

goalGoaloptional

The polity's goal (GOAL_KIND/GOAL_TARGET), a handle target.

idstringrequired

Cross-reference handle for the polity ("duchy").

lawsLaw[]required

The polity's laws.

politystringrequired

The polity's name ("Duchy of Greyharbor").

polity_conceptstringrequired

The Concept a polity IS_A (the ontology anchor: "Polity").

predecessorPredecessorrequired

The dead predecessor (the assassinated duke).

rulerCharacterrequired

The regent (the living ruler) — a full character, whose employed_by carries the regent's stipend.

seatstringrequired

The seat the polity's coin and household live in (a venue handle).

treasuryintegeroptional

The polity's treasury (coin held).

Predecessor

The assassinated predecessor: a dead character, a closed reign, a title.

FieldTypeRequiredDescription
namestringrequired
reign_from_dayuint64required

The reign's start and end days (closed on the death day).

statusstringrequired

The predecessor's status label ("Deceased").

titlestringrequired

The title held ("Duke of Greyharbor").

title_from_dayuint64required

The day the title was assumed.

Roster

A seeded membership: a character joins a faction (rosters).

FieldTypeRequiredDescription
factionstringrequired

The faction joined, by handle (MemberOf).

whostringrequired

The character joining, by handle.

RumorDef

A spreading rumor (ADR: diffusion).

FieldTypeRequiredDescription
grantsstringrequired

The key the rumor grants as it spreads.

juicinessdoublerequired

Spread appetite (RUMOR_JUICE): higher travels faster and farther.

namestringrequired
originstringrequired

The ward it originates from.

started_dayuint64required

The day the rumor began spreading.

suppressiondoublerequired

Suppression pressure (RUMOR_SUPP): higher damps the spread.

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.

FieldTypeRequiredDescription
goodstringrequired

The stored good, by handle.

qtyint64required

The opening quantity (units).

Succession

A succession recorded on an event.

FieldTypeRequiredDescription
as_whatstringrequired

The title/role succeeded to (the as edge prop).

dayuint64required

The day the succession took effect.

gatestringrequired

The key gating the succession edge.

predecessorstringrequired

Who is succeeded, by character handle.

successorstringrequired

Who succeeds, by character handle (Succeeded edge source).

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.

FieldTypeRequiredDescription
assessedintegeroptional

Assessed land/structure value in minor units — the bare-walls tax base (ASSESSED); absent leaves it unstamped.

buildingstringoptional

The building TYPE (data/buildings/*.ron) this venue instances — used by the validator for the permit check (requires ⊆ town terrain). An authored venue carries its own production (the coast's economy shape), so the interpreter does NOT stamp BUILDING_TYPE (that marks worldgen-DERIVED venues); this is the identity/permit ref.

commonsbooleandefault false

A natural COMMONS feature: sets the vocab::COMMONS mark, so the player work-site gate admits ANYONE to its produce (the harbor waters). Defaults false — an ordinary building is not a commons.

handlestringdefault ""

Cross-reference handle (a home/workplace target: "tavern", "forge").

markupnumberoptional

Retail price multiplier over base worth (MARKUP); absent = ×1.0.

namestringdefault ""
owned_bystringoptional

An existing owner referenced by handle/name (a wage-earner's house).

ownerCharacteroptional

An owner-operator created WITH the venue (the brewer of the mash house).

placementPlacementoptional

Whether the venue is LocatedIn the ward or AdjacentTo it.

rate_modnumberoptional

Production-rate multiplier (RATE_MOD, rich grounds > 1.0); absent = ×1.0.

requiresstring[]default []

Good handles this venue demands beyond its production inputs (Requires edges) — the keep's issue, a tavern's larder. Production and its input demands DERIVE from the building type's recipes now.

stocksStock[]optional

Opening stored stacks (good handle + quantity).

wardstringdefault ""

The ward this venue sits in, by name (placed per placement).

Ward

A ward: its adjacencies, the keys it grants (regional common knowledge), and the laws it is subject to.

FieldTypeRequiredDescription
adjacent_tostring[]default []

Ward names this one is AdjacentTo (edge minted from THIS ward).

grantsstring[]default []

Key ids this ward HOLDS (its residents share the knowledge).

namestringdefault ""
subject_toLawRef[]optional

Laws this ward is SubjectTo, each since a day.