Attribution
This work includes material from the System Reference Document 5.1 (‘SRD 5.1’) and the System Reference Document 5.2.1 (‘SRD 5.2.1’) by Wizards of the Coast LLC, available at https://www.dndbeyond.com/srd. The SRD 5.1 and SRD 5.2.1 are licensed under the Creative Commons Attribution 4.0 International License, available at https://creativecommons.org/licenses/by/4.0/legalcode.
The SRD 5.1 material used here has been MODIFIED. CC-BY 4.0 requires that to be stated, and it is true throughout rather than in places: values are re-derived rather than transcribed where the derivation is ours, rules are encoded as engine primitives that do not map one-to-one onto the printed text, and prose is paraphrased. The itemised list below is not required by the licence — the paragraph above satisfies it — but it is how this project keeps the boundary between transcribed SRD material and original work legible, and each entry says which side of that line it falls on.
Material used: the six ability scores (Strength, Dexterity, Constitution, Intelligence, Wisdom, Charisma), the ability modifier formula, the d20 ability-check convention, and the 4d6-drop-lowest score generation method (engine/src/stats.rs); and the EXHAUSTION mechanic — the six-level penalty track and its per-level effects (disadvantage on ability checks; speed halved; disadvantage on attack rolls and saving throws; hit point maximum halved; speed 0; death) with long-rest recovery of one level (SRD 5.1 Appendix Conditions, the Exhaustion table; engine/src/exhaustion.rs); and the REACTION economy — one reaction per round refreshed at the start of your turn, the opportunity attack as a reaction, the Ready action (an action held for a trigger, spent as a reaction when it fires), and the Rogue’s Uncanny Dodge (a reaction halving one attack’s damage) (SRD 5.1 “Combat” — Reactions / Opportunity Attacks / Ready, and “Rogue” — Uncanny Dodge; engine/src/combat_bubble.rs); and the MELEE TOOLKIT (SRD 5.1 “Equipment” — the Reach weapon property; “Combat” — Two-Weapon Fighting, and the Grapple and Shove special melee attacks, with their Strength (Athletics) vs Strength (Athletics)/Dexterity (Acrobatics) contest and the grappled/prone conditions they inflict; and “Feats” — the Grappler feat’s advantage-against-the-grappled and pin-to-restrain benefits): a reach weapon’s 10-ft melee reach for the strike and the opportunity attack, the bonus-action off-hand attack (its damage-modifier rule and the Two-Weapon Fighting style that adds it), and the grapple/shove/escape/pin actions (engine/src/combat_bubble.rs, engine/src/combat_melee.rs,; the Reach property formerly sat in the 5.1 weapon table on the glaive, halberd, pike, lance, and whip); and the VARIANT ENCUMBRANCE rule (SRD 5.1 “Using Ability Scores” — Strength, “Variant: Encumbrance”): the carrying-capacity cap of Strength score × 15, and the encumbrance bands — carried weight over STR×5 is encumbered (speed −10 ft), over STR×10 is heavily encumbered (speed −20 ft and disadvantage on ability checks, attack rolls, and saving throws that use Strength, Dexterity, or Constitution) (engine/src/encumbrance.rs); and the TRAPS rules (SRD 5.1 “Traps” — the trap mechanics: detecting a trap with a Wisdom (Perception) or Intelligence (Investigation) check against a DC, disarming it with a Dexterity check using thieves’ tools against a DC, and its effect resolving as a saving throw (half damage on a success) or an attack roll, dealing damage and/or inflicting a condition) (engine/src/traps.rs); and the DISEASES rules (SRD 5.1 “Diseases”: a disease is contracted by failing a saving throw against exposure, incubates for a period, imposes effects while it holds — including levels of exhaustion, a condition, and penalties to ability checks — and is cured by succeeding on a run of Constitution saving throws at the end of long rests) (engine/src/disease.rs). Further SRD material (skills, conditions, equipment, monsters) will be attributed here as it is adopted.
Trademarks
The Creative Commons licence above grants COPYRIGHT permissions only. Its section 2(b)(2) is explicit that no trademark rights travel with it, and none are claimed here: the SRD 5.1 material is used under the copyright grant and nothing else.
Dungeons & Dragons, D&D, and Wizards of the Coast are trademarks of Wizards of the Coast LLC in the United States and other countries. Kinbarrow is not affiliated with, endorsed by, sponsored by, or approved by Wizards of the Coast. Where those marks appear in this project’s pages or copy, they appear to identify the ruleset the game is built on — a statement of fact about the SRD material attributed above, not a claim of any relationship.
data/ SRD-derived files
This work includes material taken from the System Reference Document 5.1 (“SRD 5.1”) by Wizards of the Coast LLC and available at https://dnd.wizards.com/resources/systems-reference-document. The SRD 5.1 is licensed under the Creative Commons Attribution 4.0 International License available at https://creativecommons.org/licenses/by/4.0/legalcode.
Material used, extracted from the official SRD 5.1 CC PDF
(SRD_CC_v5.1.pdf, fetched 2026-07-19) into the *.srd.ron files under
data/ — the suffix marks SRD derivation; see data/README.md for the
layout contract. The derived-from-SRD material is:
- the eighteen skills and their governing abilities
(
data/tables/skills.srd.ron); - the core races and their SRD subraces: ability score increases, age,
size, speed, and alignment-tendency prose (the numeric
alignment_biaspairs are our own distillation of that prose, not SRD values — seedata/README.md) (data/races/); - the Character Advancement table — the cumulative experience points per
level 1..20 (
data/tables/advancement.srd.ron,; the table’s Proficiency Bonus column is not transcribed — it derives from level); - the Commoner, Guard, and Bandit stat blocks from Appendix MM-B
(
data/creatures/humanoids/, stored as primitives; the same blocks’ printed composite values indata/expected/npc_blocks.srd.ronas a verification corpus); - fourteen monster stat blocks from the SRD 5.1 “Monsters” chapter, one per
non-humanoid creature type, stored as PRIMITIVES only — abilities,
hit-dice level, size, natural armor, speed, the natural-attack dice + kind,
multiattack count, and the damage/condition immunities, resistances, and
vulnerabilities the block prints; AC, HP, to-hit, and XP DERIVE (their printed
values verified in
data/expected/npc_blocks.srd.ron). The blocks: Wolf (beast), Skeleton & Zombie (undead), Black Dragon Wyrmling (dragon), Dretch (fiend), Magma Mephit (elemental), Ogre (giant), Gray Ooze (ooze), Animated Armor (construct), Worg (monstrosity), Satyr (fey), Pegasus (celestial), Gibbering Mouther (aberration), Awakened Shrub (plant) (data/creatures/). Breath weapons, legendary/lair actions, innate spellcasting, regeneration, and monster-specific traits are NOT transcribed — they are tracked in Linear until a consumer exists (docs/linear/README.md); - the monster-statistics rules used as derivation formulas — Hit Dice
by Size, Proficiency Bonus by Challenge Rating, and the skill/passive
bonus rules (SRD 5.1 pp. 254-257), documented in
data/README.md; - the racial traits with engine substrate: Dwarven
Resilience, Lucky, Relentless Endurance, Savage Attacks, Menacing,
Keen Senses, Skill Versatility, Gnome Cunning, Hellish Resistance —
as trait ids and damage resistances on the race files (
data/races/); - the Multiclassing rules (SRD 5.1 “Multiclassing”) — the ability-score
PREREQUISITES to take each class in a multiclass (Barbarian Str 13,
Fighter Str 13 or Dex 13, Monk Dex 13 and Wis 13, …), the REDUCED
proficiencies a multiclassed class grants (a subset of the initial set,
with no saving-throw proficiencies), and the Multiclass Spellcaster slot
table (combined caster level = full-caster levels + half of half-caster
levels, read off the full-caster grid; Pact Magic kept separate) — as the
multiclass_prereq/multiclass_proficienciesfields on the class files and the combined-caster-level derivation (data/classes/,crates/engine/src/classes.rs); - the full-caster Spell Slots per Spell Level grid from the cleric and
wizard class tables (
data/tables/spell_slots.srd.ron), the half-caster Spell Slots grid from the paladin and ranger class tables (data/tables/spell_slots_half.srd.ron), and the warlock’s Pact Magic Spell Slots / Slot Level grid (data/tables/pact_magic.srd.ron); - seventy-six spells from the Spell Descriptions chapter — names, levels,
schools, casting times, ranges, damage/healing dice, save abilities,
area sizes, light radii, and “At Higher Levels” scaling — each on the CLASS
LIST the SRD’s own Spell Lists section (pp. 105-110) gives it
(
data/spells/*.srd.ron,; the effect/area/upcast ENCODINGS are our interpretation, perdata/README.md). Every shipped spell file is SRD 5.1: the one that was not — a Thorn Whip whosesource: Srd51claim that document does not support ( §4), renamed rather than removed — left the tree entirely at, since every mechanical field in it was still the book’s; - the SRD 5.1 “Backgrounds” chapter’s ONE background — Acolyte (its name,
its two skill proficiencies (Insight, Religion), and its starting funds, our
silver purse’s rendering of the printed 15 gp) — as
data/backgrounds/acolyte.srd.ron. The SRD 5.1 prints exactly this one background; its Shelter of the Faithful feature is NOT transcribed (pulled at and tracked in Linear,docs/linear/README.md). The other eleven files indata/backgrounds/are ours (source: Original); - the SRD 5.1 “Feats” chapter’s ONE feat — Grappler (its name,
Strength-13 prerequisite, and rules text: advantage on attack rolls against a
creature you are grappling, and the action to pin a grappled creature so both
are restrained) — as
data/feats/grappler.srd.ron. The SRD 5.1 contains exactly this one feat; its grapple-dependent benefits are LEDGERED until the grapple action lands (docs/linear/README.md), so only its prerequisite is live substrate. No non-SRD feat is transcribed — the feat catalog is a mod surface; - four items from the SRD 5.1 “Magic Items” chapter — their names,
rarities, attunement requirements, and the mechanical primitives their entries
print: the “Weapon, +1/+2/+3” bonus (+1 attack & damage) applied to the
longsword (
data/magic_items/plus_one_longsword.srd.ron), the Ring of Protection and Cloak of Protection (+1 AC and +1 saving throws, attunement —ring_of_protection.srd.ron,cloak_of_protection.srd.ron), and the Wand of Magic Missiles (7 charges, “1 or more charges” to cast, “regains … charges daily at dawn” —wand_of_magic_missiles.srd.ron). PRIMITIVES ONLY: the bonuses/rarity/charges are transcribed; item WORTH is NOT (it DERIVES — a rarity factor over our craft worth, never the DMG’s gp values, which lie outside the CC-BY SRD corpus — the CR/object-statistics precedent). The wand’s spell EFFECT and the daily “1d4 + 1” recharge die are tracked in Linear (docs/linear/README.md); the charge accounting and a full-refill-at-dawn cadence are the live substrate. The base set is fifteen files (the four-file starter set, the +1 chain shirt and the ten Ring of Resistance gem rows); the rest of the chapter is a mod surface; - SIX further stat blocks from the SRD 5.1 “Monsters” chapter,
on the same PRIMITIVES-ONLY terms as the bestiary above: the goblin,
orc, kobold, hobgoblin and bugbear (
data/creatures/humanoids/) and the earth elemental (data/creatures/elementals/). Their per-block ledgered traits (Nimble Escape, Aggressive, Pack Tactics, Sunlight Sensitivity, Martial Advantage, Brute, Earth Glide, Siege Monster) are NOT transcribed, each noted in its own file — and the bugbear’s Surprise Attack IS now transcribed, as a per-hit rider of 2d6 on a creature that hasn’t yet taken a turn; - four further spells from the Spell Descriptions chapter — conjure
celestial, conjure elemental, conjure fey and conjure minor elementals: names,
levels, school, concentration and duration, each on the CLASS LIST the SRD’s
own Spell Lists section gives it. Their 1-MINUTE casting times and their
higher-level CR scaling are NOT transcribed (LEDGERED — no shape carries
either) — and their higher-level CR scaling IS now transcribed
: conjure elemental’s and conjure fey’s “+1 per slot level” and
conjure celestial’s single step at a 9th-level slot. A seventh stat block joins
the six above, the invisible stalker (
data/creatures/elementals/), on the same PRIMITIVES-ONLY terms — its permanent Invisibility and Faultless Tracker are NOT transcribed. EIGHT further blocks join them on the same terms, the mid-CR wave the challenge-rating budgets needed: the green hag (fey/), couatl and unicorn (celestials/), owlbear and minotaur (monstrosities/), mummy (undead/), ettin (giants/) and otyugh (aberrations/). Their per-block ledgered traits are noted in their own files — among them every innate spellcasting list, which is OMITTED rather than faked, the mummy’s necrotic rider and Mummy Rot, and the otyugh’s disease. EIGHT more join them, the CR 5-9 band: the shambling mound and treant (plants/), flesh golem and shield guardian (constructs/), vrock (fiends/), stone giant (giants/), giant ape (beasts/) and chimera (monstrosities/) — the chimera’s Fire Breath wired as the recharge action, every other named trait ledgered in its own file; - the spellcasting formulas used as derivations: spell attack bonus,
spell save DC, prepared-spell counts, and the cantrip damage steps at
character levels 5/11/17 (
crates/engine/src/spells.rs,crates/engine/src/classes.rs); - the damage-multiplier rule (SRD 5.1 “Damage and Healing” p. 97):
resistance halves damage (round down), immunity reduces it to zero, and
vulnerability doubles it, with resistance applied before vulnerability
(
crates/engine/src/combat_bubble.rs::apply_damage). The damage-kind lists a race or creature carries are data-side interpretation (no SRD race carries one; the monster blocks carry the resistances, immunities, and vulnerabilities their SRD stat blocks print); - the Cover rule (SRD 5.1 “Cover”, “The Environment”): the three degrees of
cover and their effects — half cover grants +2 to AC and Dexterity saving
throws, three-quarters cover grants +5, and total cover makes a target
impossible to target directly by an attack or a spell — and the optional
rule that a creature can grant half cover
(
crates/engine/src/combat_board.rs::Cover/cover_between,crates/engine/src/combat_bubble.rs). The corner-trace that grades the degree from the board’s blocked squares is our SIMPLIFIED interpretation of the SRD’s corner-to-corner method (documented in the ADR), not an SRD transcription; - the fourteen creature types and their gloss (SRD 5.1 “Monsters” / Monster
Statistics, the Type line, pp. 250-251): aberration, beast, celestial,
construct, dragon, elemental, fey, fiend, giant, humanoid, monstrosity,
ooze, plant, undead (
data/tables/creature_types.srd.ron) — and hold person’s “one humanoid” targeting clause it gates (data/spells/hold_person.srd.ron). The note prose paraphrases the SRD’s own examples; which soul reads which type is data-side (every SRD playable race is a humanoid); - the special senses (SRD 5.1 “Monsters” / Monster Statistics, the Senses
line, and “The Environment”: blindsight, darkvision, tremorsense,
truesight) — carried as the radius fields on the race/creature blocks and
the monster Senses lines transcribed onto
data/creatures/; darkvision keeps its field. Which combat reads a sense negates (the unseen-attacker/darkness disadvantage) is our interpretation of the SRD text, documented in the ADR; - the sixteen languages (SRD 5.1 “Languages”, the Standard and Exotic
tables, p. 63): Common, Dwarvish, Elvish, Giant, Gnomish, Goblin,
Halfling, Orc; Abyssal, Celestial, Deep Speech, Draconic, Infernal,
Primordial, Sylvan, Undercommon (
data/tables/languages.srd.ron, ) — and the monster stat-block Languages lines transcribed ontodata/creatures/. The “Typical Speakers” gloss paraphrases the SRD; which soul knows which tongue is data-side (ABSENT means Common). - three sample traps from the SRD 5.1 “Traps” chapter (Sample Traps) —
their names, detection and disarm DCs, and effects: the Poison Needle
(Investigation DC 20 to detect, DC 15 thieves’ tools to disarm, a DC 15
Constitution save or take 2d10 poison and become poisoned —
data/traps/poison_needle.srd.ron), Poison Darts (Perception DC 15, disarm DC 15, a DC 15 Dexterity save for half of 2d10 poison —poison_darts.srd.ron), and the Fire-Breathing Statue (Investigation DC 15, disarm DC 15, a DC 13 Dexterity save for half of 4d10 fire —fire_breathing_statue.srd.ron). PRIMITIVES ONLY: the DCs and dice are transcribed; the poison needle’s 1 piercing damage and the “poisoned for 1 hour” duration are tracked in Linear (docs/linear/README.md). The three device samples are all the shipped catalog; the rest of the chapter (pits, collapsing roofs, and the attack-roll traps) is a mod surface. - three sample diseases from the SRD 5.1 “Diseases” chapter (Sample Diseases,
) — their names, contraction/recovery DCs, incubation, and effects:
Sewer Plague (a DC 11 Constitution save to resist, ~1d4 days to incubate, one
level of exhaustion, a DC 11 Constitution recovery save —
data/diseases/sewer_plague.srd.ron), Sight Rot (a DC 15 Constitution save, 1 day to incubate, a sight penalty culminating in the blinded condition, a DC 15 Constitution recovery save —sight_rot.srd.ron), and Cackle Fever (a DC 13 Constitution save, hours to incubate, one level of exhaustion, a DC 13 Constitution recovery save —cackle_fever.srd.ron). PRIMITIVES ONLY: the DCs, dice, and save cadences are transcribed; the SRD nuances without an existing consumer — Sewer Plague’s rest-healing riders, Sight Rot’s −1→−5 escalation and its Eyebright/lesser-restoration cures, Cackle Fever’s shrieking combat rider and gnome immunity — are tracked in Linear (docs/linear/README.md). The three samples are the shipped catalog; the rest of the chapter is a mod surface.
Original additions (ours, NOT SRD material, marked source: Original
or documented as our interpretation in data/README.md): the
alignment_bias distillations noted above; the data/goods/ material
files and ALL crafting recipes embedded in the weapon and armor tables
(stations, tiers, input quantities, hours, material prices) — the SRD
contains no material recipes; its downtime crafting is gp-rates only.
Also original: data/professions/ (background skill proficiencies,
trade tools, workplaces; the profession set mirrors the engine’s own
library), data/buildings/ (building types, production rates, build
costs), data/tables/quality_profiles.ron (the seven-tier quality
system and its per-class effects), the vocabulary registries
(data/tables/material_classes.ron, data/tables/terrain_tags.ron),
and the constructive-material metadata on goods (classes, factors,
work difficulties, quality biases, durability properties, rarities).
The object-durability numbers (hardness, integrity) are original
derivations, NOT the DMG’s object statistics — that chapter is outside
the CC-BY SRD corpus and nothing was transcribed from it.
The WEATHER & SEASONS system (crates/engine/src/weather.rs
and Time::season) is likewise entirely original — D&D’s
weather/environment HAZARD rules (extreme cold/heat/wind, precipitation,
high altitude) live in the Dungeon Master’s Guide, which is OUTSIDE the
CC-BY SRD 5.1, so NOTHING was transcribed: the weather-state set
(clear/overcast/rain/fog/storm/snow/heat), the obscurement mapping, every
season-weighted probability, and the season lengths are our own work.
The HARD-ROAD EXHAUSTION toll (crates/engine/src/exhaustion.rs
weather_toll / weather::is_severe / weather::severe_crossing) is
likewise our OWN design: the SRD’s exhaustion CONDITION/track it drives is
SRD material (attributed above), but the SOURCE — that a SEVERE
sky (storm/snow) forces a Constitution save per crossing at a DC of 12, a
failure adding one exhaustion level — is entirely original. Nothing is
transcribed from the DMG’s environment/forced-march rules (Con DC 10
escalating per hour), which lie OUTSIDE the CC-BY SRD 5.1: our severity set,
the per-severe-crossing cadence, the DC, and the +1-per-crossing cap are all
source: Original (the “DMG numbers are never transcribed — ours
derive” doctrine).
The SQUALOR DISEASE-EXPOSURE vector (
crates/engine/src/disease.rs squalor_exposure) is likewise our OWN
design: the DISEASE it triggers is the SRD Sewer Plague (SRD material,
attributed above via — its DC 11 contraction save and long-rest
recovery are the SRD’s), but the SOURCE — that a pauper (net worth below the
poverty line) dwelling in a neglected, high-unrest ward (the rising
bar) rolls a low-rate periodic exposure (roughly monthly, a name-salt
lottery) — is entirely original. The squalor unrest bar, the poverty line,
and the exposure rate/denominator are all source: Original; the SRD’s own
“sewer plague incubates in filth” flavour is why squalor is the faithful
vector, but no number is transcribed.
SRD-aligned exceptions inside data/goods/, noted per file: the seven
tool/kit WEIGHTS (smith’s, leatherworker’s, carpenter’s, weaver’s,
brewer’s supplies, cook’s utensils, fishing tackle) and ale’s mug price
(4 cp), from the SRD equipment table. The seven tool/kit VALUES were
formerly SRD-aligned too, but (labour-rate calibration) replaced
them with worth DERIVED from recipe + labour — a smith’s kit is now
45 cp, not the SRD’s 20 gp transcription — so those values are no longer
SRD material; only the weights remain. (Ale’s 4 cp both stays SRD-aligned
and round-trips the derivation.) The material name “mithral” uses the
SRD 5.1 spelling.
data/ SRD 5.2.1-derived files
This section is the licence statement and itemised list for the SECOND document
the corpus draws on. It
was placed here BEFORE the first *.srd52.ron file landed, so that attribution
could never trail the content it covers; the material below arrived after it.
SRD 5.2.1 supplies the 2024 rules chassis; where both documents print a
conflicting rule or record, the 5.2.1 definition is authoritative.
This work includes material taken from the System Reference Document 5.2.1 (“SRD 5.2.1”) by Wizards of the Coast LLC and available at https://www.dndbeyond.com/srd. The SRD 5.2.1 is licensed under the Creative Commons Attribution 4.0 International License available at https://creativecommons.org/licenses/by/4.0/legalcode.
Any SRD 5.2.1 material used here is MODIFIED, on the same terms and for the same reasons as the SRD 5.1 material above: values are re-derived rather than transcribed where the derivation is ours, rules are encoded as engine primitives that do not map one-to-one onto the printed text, and prose is paraphrased.
The two documents are separately licensed grants of the same kind, and this file
keeps them separately stated: SRD 5.1 material is attributed to SRD 5.1 and
SRD 5.2.1 material to SRD 5.2.1, never merged into one claim. The .srd.ron and
.srd52.ron suffixes carry that split into the tree, and
data_lock::the_suffix_and_the_source_field_agree holds each file’s path and its
source field to the same answer, so this document’s index into data/ cannot
silently go wrong. The trademark disclaimer above applies unchanged: the CC
licence grants copyright permissions only, for both documents.
Material used, extracted from the official SRD 5.2.1 CC PDF
(SRD_CC_v5.2.1.pdf, fetched 2026-08-23 from
https://media.dndbeyond.com/compendium-images/srd/5.2/SRD_CC_v5.2.1.pdf) into
the *.srd52.ron files under data/:
-
the “XP Budget per Character” table (levels 1–20, Low/Moderate/High) in
data/tables/encounter_xp_budgets.srd52.ron, and the “Experience Points by Challenge Rating” table indata/tables/cr_xp.srd52.ron. Battle adds each character’s budget and pays for creatures at their CR’s listed XP, with no creature-count multiplier; -
the complete SRD 5.2.1 weapons and armor tables in
data/tables/weapons.srd52.ronanddata/tables/armor.srd52.ron, including weapon statistics and properties, ammunition kinds, Heavy thresholds, armor Strength and Stealth restrictions, don/doff costs, and the shield training rule. The Weapon Mastery column is normalized into the companiondata/tables/weapon_masteries.srd52.ronjoin. Net is adventuring gear rather than a weapon; Musket and Pistol are active weapon rows . -
TWO of the SRD 5.2.1 “Feats” chapter’s four Origin feats — their names, their category’s absence of any prerequisite or ability increase, and the one benefit apiece the engine has a mechanism for: Alert’s Initiative Proficiency (the proficiency bonus added to the initiative roll) as
data/feats/alert.srd52.ron, and Savage Attacker’s once-per-turn reroll of a weapon’s damage dice asdata/feats/savage_attacker.srd52.ron. PRIMITIVES ONLY, and in both cases a PART of the printed feat: Alert’s Initiative Swap is NOT transcribed (tracked in Linear,docs/linear/README.md— it is a player decision with no prompt in the bubble), and Savage Attacker’s “use either roll” is rendered as keeping the better, our reading of a choice the engine makes for itself. The chapter’s other fifteen feats — the remaining Origin feats, the General feats, the four Fighting Style feats and the seven Epic Boons — are NOT transcribed: each needs substrate the engine does not have, and they are ledgered rather than shipped inert (and the audit table indocs/design/substrate-opportunities.md). Grappler, which BOTH documents print, stays SRD 5.1’s above — the chassis rules ( §5). -
ONE of the SRD 5.2.1 “Feats” chapter’s seven Epic Boon feats ( §6) — Boon of Truesight: its name, its “Level 19+” prerequisite, and its 60-foot Truesight, as
data/feats/boon_of_truesight.srd52.ron. PRIMITIVES ONLY and again a PART: its ability score increase “to a maximum of 30” is NOT transcribed (LEDGERED — the engine’s scores cap at 20). The other six boons are not transcribed. -
ONE stat block from the SRD 5.2.1 “Monsters” chapter — the Swarm of Ravens (
data/creatures/beasts/swarm_of_ravens.srd52.ron), on the same PRIMITIVES-ONLY terms as the SRD 5.1 blocks above, and taken from 5.2.1 rather than 5.1 because only the 2024 revision gives it CACOPHONY — a Wisdom save that deafens, and the first monster action in this tree that inflicts a condition instead of damage. Its DC DERIVES (and differs from the printed 10 by one), the area is the archetypal cone rather than the printed single target, and Cacophony’s disadvantage rider is NOT transcribed — all three noted in the file itself. -
All twelve SRD 5.2.1 classes — Barbarian, Bard, Cleric, Druid, Fighter, Monk, Paladin, Ranger, Rogue, Sorcerer, Warlock, and Wizard — as the typed progression, training, feature, subclass, resource, and preparation rows in
data/classes/*.srd52.ron. The rows contain executable identifiers and primitives rather than descriptive rules prose. -
All fourteen named SRD 5.2.1 conditions as
data/conditions/*.srd52.ron: Blinded, Charmed, Deafened, Frightened, Grappled, Incapacitated, Invisible, Paralyzed, Petrified, Poisoned, Prone, Restrained, Stunned, and Unconscious. The five unsuffixed class-composition conditions in that directory are project-authoredOriginalrows, not SRD transcriptions. -
The SRD 5.2.1 Sorcerer class, public Draconic Sorcery subclass, Summon Dragon spell, and Draconic Spirit stat block are represented as mechanical identifiers, progression rows, typed formulas, and primitives in
data/classes/sorcerer.srd52.ron,data/spells/summon_dragon.srd52.ron, anddata/creatures/dragons/draconic_spirit.srd52.ron. No descriptive rules prose is reproduced. -
The SRD 5.2.1 Warlock class and public Fiend Patron subclass as mechanical progression identifiers in
data/classes/warlock.srd52.ron. The public record contains no descriptive rules prose and no PHB-only subclass or invocation record. -
The SRD 5.2.1 Wizard class and public Evoker subclass as mechanical progression identifiers in
data/classes/wizard.srd52.ron. Executable rules are modified engine code; no descriptive rules prose or PHB-only record is reproduced. -
The Tools table’s Poisoner’s Kit name and weight (2 lb.) on the otherwise
Originalgooddata/goods/poisoners_kit.ron, the kit the Rogue’s Cunning Strike Poison option requires on the person. Its worth derives from its recipe like every kit’s; the printed price is not transcribed.
Nothing else itemised in this work derives from SRD 5.2.1; records not named in this section retain the provenance declared by their own source field and file suffix.
data/names
The race name tables in data/names/ contain NO SRD or other licensed
material. Every name derives from public-domain historical sources
(pre-1900 editions and ancient corpora — the Dvergatal of the Poetic
Edda, Landnámabók, the Mabinogion in the Guest translation, the Bodmin
manumissions, the Cartulary of Redon, English poll-tax and subsidy
rolls, Domesday Book, pre-1900 Swiss records) or is original work
generated for this project under documented phonologies. Per-race
sources, editions, and dates are recorded in data/names/METHOD.md.
Public-domain sources impose no attribution requirement; this section
records provenance for diligence.
Fonts (vendored in crates/web/fonts/)
- Cinzel by Natanael Gama — SIL Open Font License 1.1.
- Alegreya by Juan Pablo del Peral (Huerta Tipografica) — SIL Open Font License 1.1.
Both vendored as latin woff2 subsets for the web shell’s display and narrative faces.
Methods (the tactical solver and its foundry)
The combat solver and the self-play foundry implement published algorithms.
No code, text, data or weights from any of these works is present — only the
methods, reimplemented from the papers — but the ideas are theirs and the
record belongs here (docs/design/ubfm-solver-slices.md S2.5).
- “Learning to Play Two-Player Perfect-Information Games without Knowledge” by Quentin Cohen-Solal — arXiv 2008.01188 (JAIR). The canonical source: Unbounded Best-First Minimax, Descent (an iteration runs to a terminal state, §4.1), tree learning / tree bootstrapping (§3.1), completion and resolution (§5.2), the reinforcement heuristics (§6 — the score and depth terminal evaluations), and the ordinal action distribution for self-play (§7).
- “Minimax Strikes Back” by Quentin Cohen-Solal and Tristan Cazenave — arXiv 2012.10700 (AAMAS 2023). Athénan against AlphaZero-style learners; the data-efficiency comparison, and the finding that tree learning can LOWER performance under a search that does not reach terminals (§4).
- “Learning to Play Stochastic Two-player Perfect-Information Games without Knowledge” by Quentin Cohen-Solal and Tristan Cazenave — arXiv 2302.04318. Descent Expectiminimax — the chance-node treatment, which is this game’s regime (the sim prices dice).
- “Study and improvement of search algorithms in two-players perfect information games” by Quentin Cohen-Solal and Tristan Cazenave — arXiv 2505.09639. The play-time search comparison behind the decision to keep bounded UBFM for live play while the foundry generates with Descent.
- “Deep Sets” by Manzil Zaheer et al. — arXiv 1703.06114. The permutation-invariant entity/set decomposition behind the evaluator boundary.
- “Relational inductive biases, deep learning, and graph networks” by Peter Battaglia et al. — arXiv 1806.01261, and “Relational Deep Reinforcement Learning” by Vinicius Zambaldi et al. — arXiv 1806.01830. The typed entity/relation and message-passing bias used by the v2 evaluator design for compositional combat mechanics.
- “Set Transformer” by Juho Lee et al. — PMLR 97 (2019). The richer attention-based set encoder considered for interacting combatants; the first fixed-point implementation deliberately starts with the smaller explicit relation pass.
Where this implementation knowingly departs from the papers — a per-side
value vector with max^n backup for a multi-side domain, terminal shaping kept inside a bounded
head, and a gated shipping champion beside the continuously-updated learner —
the departures and their reasons are recorded in
and measured in
crates/solver/RATCHET.md.