Good
goods/<id>.ron — OURS (source: Original), one material/tool per file.
| Field | Type | Required | Description |
|---|---|---|---|
| acquisition | string | optional | A non-crafting source (future loot/quest goods); absent everywhere today. |
| demand_target | integer | optional | Authored scarcity |
| fuel_nights | integer | optional | Nights one unit lights a venue; absent = not fuel. Genesis stamps this on the concept ( |
| furnishing | FurnishingInfo | optional | Furnishings dress owned venues at genesis and, when bulky, stand as board cover. Absent = not a furnishing. |
| id | string | required | Authored id. |
| maker_mark | boolean | default false | Each produced unit is an intact object bearing its maker's physical mark. Defaults to false (loose goods). A recipe is required; consuming or cutting the object destroys its recognition. A mark records its maker, never stolen status or the identity of an offender. |
| material | MaterialInfo | optional | Per-material deviations, present only on constructive materials; absent = not a material. |
| name | string | required | Authored name. |
| quality_class | string | optional | A |
| quality_overrides | TierEffects[] | optional | Deviations from the item's class profile; empty by default. |
| recipes | Recipe[] | required | The good's recipes — craftable IS having recipes (there is no craftable flag). |
| sacred | boolean | default false | The shrine's flag ( |
| satisfies | string | optional | The need this good satisfies: |
| source | Source | required | Authored source. |
| spoilage_days | integer | optional | Days before it rots (raw hide, fish, bread); absent = imperishable. |
| weight_lb | double | required | Weight in pounds — feeds cart loads. |
Nested shapes
Every shape Good closes over, so this page stands alone.
Ability
An open, validated Ability id interned from authored data.
CraftTier
The tool-proficiency ladder — one ladder, two homes (this IS the engine's TradeTier).
Apprentice
Select the apprentice behavior.
Journeyman
Select the journeyman behavior.
Master
Select the master behavior.
FurnishingAnchor
Where a bulky furnishing stands: hugging a wall, or free in the room's middle.
Wall
Against a wall — the bench, the rack, the bin.
Center
Free-standing mid-room — the millstone, the great table.
FurnishingInfo
A furnishing's light, room roles, anchor, and physical cells. Worth stays the good's own derivation (never duplicated); weight stays weight_lb.
| Field | Type | Required | Description |
|---|---|---|---|
| anchor | FurnishingAnchor | optional | How a bulky piece stands in its room; a closed set. |
| art | string | required | The picture the board draws for this piece: a path inside an |
| footprint | GridFootprint | optional | The piece's mechanical rectangle. Orientation is chosen cardinally when the deterministic board dressing places the individual piece. |
| rooms | string[] | default [] | Room ROLES this piece dresses, validated against building programs. Empty = a trinket that casts no shadow. |
| sheds_light | boolean | default false | Does the piece LIGHT its room? The lamp does; the mug does not. |
GridFootprint
A furnishing's rectangular physical space in integer 5-foot cells. The default is one cell; both dimensions must be at least one.
| Field | Type | Required | Description |
|---|---|---|---|
| length_cells | uint8 | required | Length from the furnishing's front to its back. |
| width_cells | uint8 | required | Width across the furnishing's front. |
MaterialInfo
Present only on CONSTRUCTIVE materials (iron/mithral ingot, timber, leather, wool cloth). Family baselines live on the material-class registry; these are the per-material deviations.
| Field | Type | Required | Description |
|---|---|---|---|
| class | string | required | A |
| integrity_factor | double | required | Object-hp multiplier (mithral 4.0). |
| min_tier | CraftTier | required | The CraftTier floor to work it at all (mithral: Expert). |
| quality_bias | int32 | required | Lifts the craft check that ROLLS the tier (mithral +4): better stock, better odds. |
| rarity | Rarity | required | Worldgen rarity hint for the material. |
| strength_note | string | required | Durability/strength as prose; a later engine consumer reads it. |
| toughness_bonus | int32 | required | Bonus over the class hardness (mithral +3). |
| value_factor | double | required | Value multiplier on constructed items (mithral 10.0). |
| weight_factor | double | required | Weight vs the class baseline (mithral 0.5). |
| work_difficulty | int32 | required | Extra labour, pairs with |
QualityTier
The seven quality tiers (semantic — engine code branches on it).
Trash
Select the trash behavior.
Poor
Select the poor behavior.
Normal
Select the normal behavior.
Good
Select the good behavior.
Excellent
Select the excellent behavior.
Masterwork
Select the masterwork behavior.
Legendary
Select the legendary behavior.
Rarity
Worldgen rarity hint.
Common
Select the common behavior.
Uncommon
Select the uncommon behavior.
RareRegional
Select the rare regional behavior.
Recipe
A recipe embedded on a good/weapon/armor. Craftable IS having recipes — there is no craftable flag (data/README.md).
| Field | Type | Required | Description |
|---|---|---|---|
| ability | Ability | optional | The ability whose mod feeds output; absent = untrained extraction. |
| building | string | required | The building TYPE that produces this good (a |
| forbids_terrain | string[] | default [] | The exclusion half of the terrain GATE (see |
| hours | uint32 | required | Labour hours one batch takes. |
| inputs | [RecipeInput, uint32][] | required | The (input, qty) pairs consumed per batch — boot-resolved. EMPTY = raw extraction (nature's own yield): such a recipe names WHERE and HOW FAST a raw is won, carries no |
| rate | double | required | Units per worked hour, before the work multiplier. The recipe carries it, so production truth lives in one place. |
| requires_terrain | string[] | default [] | Terrain GATE: this recipe is wired only at venues whose town bears every |
| strike | Strike | optional | The face's RARE find: each produced unit has |
| terrain_mods | [string, double][] | default [] | Terrain-tag rate MODIFIERS: the effective production rate at a venue is |
| tier | CraftTier | required | The tool-proficiency floor to run this recipe. |
| tool | string | optional | A goods/ id (e.g. "smiths_tools"); absent = bare hands. |
| yield | uint32 | required | Units the batch yields: one run of |
RecipeInput
A recipe input: a SPECIFIC good (process inputs) or ANY material of a class (constructive inputs — the family wall).
Good
A SPECIFIC good by id — the exact material a process consumes.
Carries string.
Class
ANY good of a material CLASS by id — the constructive input (the family wall): whichever member of the class is on hand.
Carries string.
Source
Every file's top-level value carries source.
Srd51
SRD 5.1 — retained nonconflicting catalogue material.
Srd52
SRD 5.2.1 — the 2024-revision System Reference Document, the same CC-BY-4.0 grant as 5.1 and the current rules chassis. Its files carry the .srd52.ron suffix so provenance reads off the path; see data/README.md for which document rules a given value.
Original
Original content authored for this game (not from the SRD).
Phb2024
Material transcribed from the 2024 Player's Handbook. This source is not redistributable by this project and belongs in a phb2024 mod.
Dmg2024
Material transcribed from the 2024 Dungeon Master's Guide. This source is not redistributable by this project and belongs in a dmg2024 mod.
Mm2024
Material transcribed from the 2024 Monster Manual. This source is not redistributable by this project and belongs in an mm2024 mod.
Tce
Material transcribed from Tasha's Cauldron of Everything. This source is not redistributable by this project and belongs in a tce mod.
Xge
Material transcribed from Xanathar's Guide to Everything. This source is not redistributable by this project and belongs in an xge mod.
Strike
A strike table entry: the rare good and its per-unit odds.
| Field | Type | Required | Description |
|---|---|---|---|
| good | string | required | The rare good struck — a goods/ id, boot-resolved. |
| mods | [string, double][] | default [] | Terrain-tag odds MODIFIERS, the |
| odds | double | required | Per-unit chance (0..1) of striking |
TierEffects
One rung of the seven-tier quality ladder: what an item of this tier is worth and how it performs, as deltas off the Normal baseline. A class-wide row in a QualityProfile, or a single item's override of one.
| Field | Type | Required | Description |
|---|---|---|---|
| ac_delta | integer | optional | AC delta at this tier (armor); absent = n/a. |
| attack_delta | integer | optional | Attack-roll delta at this tier (weapons); absent = n/a. |
| damage_delta | integer | optional | Damage delta at this tier (weapons); absent = n/a. |
| dc_delta | integer | optional | Lock DC delta vs the Normal DC 10 base at this tier (locks); absent = n/a. |
| integrity_factor | number | optional | Max-integrity multiplier (the |
| tier | QualityTier | required | The quality tier this row describes. |
| value_factor | double | required | Worth multiplier at this tier (every class). |
| work_factor | number | optional | Work-output multiplier at this tier (tools); absent = n/a. |