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

Armor

One piece of armor from the SRD table (tables/armor.srd52.ron): what it costs and how it contributes to AC — a base plus capped Dexterity for body armor, a flat bonus for a shield. recipes and quality_overrides are OURS, as they are for weapons.

FieldTypeRequiredDescription
acArmorClassrequired

How the piece contributes to AC (base + capped Dex, or a flat shield bonus).

categoryArmorCategoryrequired

The SRD armor category (light/medium/heavy/shield).

doffArmorEquipCostoptional

Cost to doff this armor or shield.

donArmorEquipCostoptional

Cost to don this armor or shield.

idstringrequired

Authored id.

namestringrequired

Authored name.

quality_overridesTierEffects[]optional

Per-item quality-profile overrides; absent = the class profile.

recipesRecipe[]required

The armor's crafting recipes (ORIGINAL content, not SRD).

stealth_disadvantagebooleanrequired

True = imposes disadvantage on Stealth checks.

str_minintegeroptional

Minimum Strength score to wear without a speed penalty; absent = none.

training_required_for_acbooleandefault false

A shield grants its AC bonus only to a creature trained with shields.

weight_lbdoublerequired

Weight in pounds.

Nested shapes

Every shape Armor closes over, so this page stands alone.

Ability

An open, validated Ability id interned from authored data.

ArmorCategory

The SRD armor categories — light/medium/heavy body armor and the shield.

Light

Select the light behavior.

Medium

Select the medium behavior.

Heavy

Select the heavy behavior.

Shield

Select the shield behavior.

ArmorClass

How a piece of armor contributes to AC: body armor's base + a capped Dexterity, or a flat bonus (a shield).

Base

Body armor: a base AC plus a [DexMod]-capped Dexterity contribution.

FieldTypeRequiredDescription
baseuint32required
dexDexModrequired

Bonus

A flat AC bonus added on top (a shield's +2).

Carries uint32.

ArmorEquipCost

The action economy required to put on or remove armor.

Seconds

A continuous duration in seconds.

Carries uint32.

UtilizeAction

One Utilize action.

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.

DexMod

The wearer's Dex modifier contribution.

Full

Select the full behavior.

Max2

Select the max2 behavior.

None

Select the none behavior.

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.

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.

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.