KINBARROW modding reference
v0.2.0+main.e011511f4 dataset 4a103dcdb658a75a

Good

goods/<id>.ron — OURS (source: Original), one material/tool per file.

FieldTypeRequiredDescription
acquisitionstringoptional

A non-crafting source (future loot/quest goods); absent everywhere today.

demand_targetintegeroptional

Authored scarcity DEMAND_TARGET; absent = the engine default. World tail passes may still re-derive it (demand IS the eaters).

fuel_nightsintegeroptional

Nights one unit lights a venue; absent = not fuel. Genesis stamps this on the concept (FUEL_NIGHTS) for graph-only light reads.

furnishingFurnishingInfooptional

Furnishings dress owned venues at genesis and, when bulky, stand as board cover. Absent = not a furnishing.

idstringrequired

Authored id.

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

materialMaterialInfooptional

Per-material deviations, present only on constructive materials; absent = not a material.

namestringrequired

Authored name.

quality_classstringoptional

A tables/quality_profiles.ron class override where structure can't derive it; absent = derive.

quality_overridesTierEffects[]optional

Deviations from the item's class profile; empty by default.

recipesRecipe[]required

The good's recipes — craftable IS having recipes (there is no craftable flag).

sacredbooleandefault false

The shrine's flag (SACRED): the piety weight prefers pew over pint by prop, never by name match.

satisfiesstringoptional

The need this good satisfies: "hunger" or "recreation"; the validator rejects other values. This mapping belongs to the good across campaigns.

sourceSourcerequired

Authored source.

spoilage_daysintegeroptional

Days before it rots (raw hide, fish, bread); absent = imperishable.

weight_lbdoublerequired

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.

FieldTypeRequiredDescription
anchorFurnishingAnchoroptional

How a bulky piece stands in its room; a closed set.

artstringrequired

The picture the board draws for this piece: a path inside an art/ directory, e.g. "furniture/trestle-table.webp". Drawn facing north, width_cells across and length_cells down, with the back edge at the top; the board rotates it for the other facings. A mod's art/ is searched before data/art/, so shipping the same path replaces the base picture. A path that resolves nowhere fails the load.

footprintGridFootprintoptional

The piece's mechanical rectangle. Orientation is chosen cardinally when the deterministic board dressing places the individual piece.

roomsstring[]default []

Room ROLES this piece dresses, validated against building programs. Empty = a trinket that casts no shadow.

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

FieldTypeRequiredDescription
length_cellsuint8required

Length from the furnishing's front to its back.

width_cellsuint8required

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.

FieldTypeRequiredDescription
classstringrequired

A tables/material_classes.ron id (metal/wood/leather/cloth), boot-resolved.

integrity_factordoublerequired

Object-hp multiplier (mithral 4.0).

min_tierCraftTierrequired

The CraftTier floor to work it at all (mithral: Expert).

quality_biasint32required

Lifts the craft check that ROLLS the tier (mithral +4): better stock, better odds.

rarityRarityrequired

Worldgen rarity hint for the material.

strength_notestringrequired

Durability/strength as prose; a later engine consumer reads it.

toughness_bonusint32required

Bonus over the class hardness (mithral +3).

value_factordoublerequired

Value multiplier on constructed items (mithral 10.0).

weight_factordoublerequired

Weight vs the class baseline (mithral 0.5).

work_difficultyint32required

Extra labour, pairs with min_tier gating (mithral +5); never touches the quality roll.

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

FieldTypeRequiredDescription
abilityAbilityoptional

The ability whose mod feeds output; absent = untrained extraction.

buildingstringrequired

The building TYPE that produces this good (a data/buildings/ id, boot-resolved): a recipe names its building directly, and the build-time derivation mints one Produces edge at every venue of that type. Producing vs merely crafting is NOT authored: every recipe is a candidate Produces edge and the opportunity-cost engine (best_row) decides what a shift makes. The only recipes that do not derive an edge are those the 2-input edge model cannot hold (3+ distinct inputs) — a substrate limit, ledgered, not a producibility flag.

forbids_terrainstring[]default []

The exclusion half of the terrain GATE (see requires_terrain): the recipe is skipped at any venue whose town bears one of these tags.

hoursuint32required

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 CRAFTED flag, and keeps the extraction lottery. A recipe WITH inputs is a craft (sets CRAFTED).

ratedoublerequired

Units per worked hour, before the work multiplier. The recipe carries it, so production truth lives in one place.

requires_terrainstring[]default []

Terrain GATE: this recipe is wired only at venues whose town bears every requires_terrain tag and NONE of forbids_terrain. Lets a good be made two ways by place — coast/vale bread bakes flour where an arable mill stands; the mountain bakes grain direct where it does not. Empty gates = wire wherever the building stands.

strikeStrikeoptional

The face's RARE find: each produced unit has odds chance of striking this good instead of the bulk yield — the mithral vein in the stone. Absent on ordinary recipes.

terrain_mods[string, double][]default []

Terrain-tag rate MODIFIERS: the effective production rate at a venue is rate × Π(multiplier for each town terrain tag present). Regional divergence emerges from the GROUND, not hand-wired per venue — grain grows richer on arable, an ore seam runs faster in mountains. Empty = the base rate stands everywhere the recipe is wired.

tierCraftTierrequired

The tool-proficiency floor to run this recipe.

toolstringoptional

A goods/ id (e.g. "smiths_tools"); absent = bare hands.

yielduint32required

Units the batch yields: one run of inputs + hours makes this many of the good — the ammunition fix the pricing ledger named (arrows come 20 to a batch, so their per-unit worth is sane). The derivation (recipe_worth_minor) divides material + labour by it, so a per-unit anchor round-trips. Explicit in EVERY recipe — the RON key is yield; the no-serde-default contract's one exception is quality_overrides, and this is not it (1 for a single-unit craft).

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.

FieldTypeRequiredDescription
goodstringrequired

The rare good struck — a goods/ id, boot-resolved.

mods[string, double][]default []

Terrain-tag odds MODIFIERS, the terrain_mods rule applied to the strike: the effective chance at a venue is odds × Π(multiplier for each town terrain tag present), clamped to a probability. A richer vein is GROUND, not a hand-wired deposit — the same seam runs fatter where the rock says so. Empty = odds stands everywhere the recipe is wired.

oddsdoublerequired

Per-unit chance (0..1) of striking good instead of the bulk yield.

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.

FieldTypeRequiredDescription
ac_deltaintegeroptional

AC delta at this tier (armor); absent = n/a.

attack_deltaintegeroptional

Attack-roll delta at this tier (weapons); absent = n/a.

damage_deltaintegeroptional

Damage delta at this tier (weapons); absent = n/a.

dc_deltaintegeroptional

Lock DC delta vs the Normal DC 10 base at this tier (locks); absent = n/a.

integrity_factornumberoptional

Max-integrity multiplier (the structure class) — defaulted so the arms/tool/lock profiles never spell it.

tierQualityTierrequired

The quality tier this row describes.

value_factordoublerequired

Worth multiplier at this tier (every class).

work_factornumberoptional

Work-output multiplier at this tier (tools); absent = n/a.