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

RaceDef

races/<id>.srd.ron — one per file; stem == id.

FieldTypeRequiredDescription
age_adultuint32required

Age of adulthood, in years.

age_lifespanuint32required

Typical lifespan, in years.

alignment_biasAlignmentBiasrequired

The race's alignment tendency (OURS, not the SRD's).

asiany[][]required

Fixed racial ability bumps.

asi_choiceAsiChoiceoptional

A player-assigned bump (half-elf's "two others +1"); absent = none.

blindsightintegeroptional

SRD special senses in FEET of radius — blindsight (perceive without sight), tremorsense (locate a grounded creature), truesight (see the invisible, and in darkness). Stamped onto the soul at compose (SENSE_*), read by soul::senses_of. ABSENT = none but sighted (the absent-default): no SRD playable race carries these, so per-race sense depth is LEDGERED and every composed soul reads no special sense.

creature_typestringoptional

The race's creature type: a tables/creature_types.srd.ron id, stamped onto the soul at compose (CREATURE_TYPE) — the read the hold-person gate consults. ABSENT means humanoid (the size precedent): every SRD playable race is a humanoid, so no race file carries this and every composed soul reads humanoid by default.

darkvisionbooleanrequired

SRD darkvision: the soul reads darkness as dim and dim as bright (light::seen). Stored as the trait's presence — the SRD's 60 ft range waits for the battlemap's per-square light (ledgered).

idstringrequired
immunitiesstring[]default []

SRD damage immunities — damage-kind ids, stamped at compose (IMMUNITIES); the matching kind deals ZERO. The resistance mirror; absent = none (no core race carries any yet).

languagesstring[]default []

SRD known languages — tables/languages.srd.ron ids, stamped onto the soul at compose (LANGUAGES). ABSENT MEANS COMMON (the absent-default): no SRD race file declares any, so every seeded soul reads Common by construction and soul::shares_language is true realm- wide — the sim is byte-identical. Per-race tongues (dwarf → Dwarvish) are LEDGERED depth, added as one row each where a consumer wants them.

namestringrequired
resistancesstring[]default []

SRD damage resistances (dwarf poison, tiefling fire) — damage-kind ids, stamped onto the soul at compose (RESISTANCES), halved at damage application.

sizeSizerequired

The race's creature size.

sourceSourcerequired
speeduint32required

Walking speed in feet — the composition source of NPC speed.

subracesSubraceDef[]required

The race's subraces (the SRD one-per-race picks).

traitsstring[]default []

SRD racial traits WITH an engine substrate — ids resolving against the engine's implemented registry (classes::RacialTrait), the ledger-don't-fake rule made data: a trait appears here only once combat or generation actually consumes it (darkvision keeps its own field). Absent = none (older files read unchanged).

tremorsenseintegeroptional

Tremorsense radius in feet; absent = none.

truesightintegeroptional

Truesight radius in feet; absent = none.

vulnerabilitiesstring[]default []

SRD damage vulnerabilities — damage-kind ids, stamped at compose (VULNERABILITIES); the matching kind is DOUBLED. Absent = none.

Nested shapes

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

Ability

The six ability scores (SRD 5.1). The engine's own stats::Ability is the runtime type; this is the data-layer mirror, bridged by [Ability::engine].

StrDexConIntWisCha

AlignmentBias

OURS, not the SRD's — the alignment-tendency distillation.

FieldTypeRequiredDescription
ethicdoublerequired

Law↔chaos tendency (−1..+1).

moraldoublerequired

Good↔evil tendency (−1..+1).

AsiChoice

FieldTypeRequiredDescription
amountint32required

The bump each chosen ability gets.

countuint32required

How many abilities the choice raises (half-elf's two).

Breath

A Breath Weapon's DATA: its damage KIND and the SAVE ability its area throw asks — the two axes that vary by draconic ancestry (a red dragonborn's fire on a Dex save, a silver's cold on a Con save). The area is the archetypal 15-ft cone for every ancestry (the SRD's per-ancestry line/cone split is LEDGERED — the shape reads the same to the bubble's area_targets); dice scale by level and the DC derives from Con, both at assemble, so neither rides the data.

FieldTypeRequiredDescription
kindstringrequired

A tables/damage_kinds.srd.ron id — validator-checked, and the ancestry's own resistance kind (a fire-breather resists fire).

saveAbilityrequired

The saving-throw ability every creature caught in the cone rolls.

Size

Creature size — the full SRD ladder (Tiny..Gargantuan). Races span Small/Medium; the bestiary's monsters reach the rest, and the hit die swings by it (combat::srd::hit_die).

TinySmallMediumLargeHugeGargantuan

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.

SubraceDef

One subrace of a race — the SRD's one-per-race pick (hill dwarf, high elf, lightfoot, rock gnome) and the dragonborn's draconic ancestry distilled to the same shape (a required in-race choice granting mechanics). Chosen in the character creator; generation still composes the base race only (the ledger row stands).

FieldTypeRequiredDescription
asiany[][]required

Fixed ability bumps the subrace grants.

breathBreathoptional

The draconic ancestry's Breath Weapon — the activated racial action the subrace ledgered. Absent = the subrace has none (the dwarf/elf/gnome subraces, and every base race): stamped onto the soul at compose only where present, so the sim is byte-identical without it.

idstringrequired
namestringrequired
resistancesstring[]default []

SRD damage resistances the subrace adds (draconic ancestry's acid/ lightning/fire/poison/cold) — damage-kind ids, unioned with the base race's at compose (RESISTANCES). Absent = none.