Character Sheets & References
The character sheet is where everything you build finally comes to life. A character is not a type that holds all the facts in itself — it is the junction box that pulls facts from races, classes, abilities, and gear through its references. Understanding how a sheet is assembled is the difference between adding content that plays and adding content that collects dust.
The sheet is a bundle of references
Read any entry in the Characters folder and note what it holds by reference rather than by copying. A character names its race and its classes, and its inventory points at equipment — it does not paste those entries' text in. This is the system working as designed: one true copy of the dwarf lives in Races, and every dwarven sheet points at it. When you build a sheet, point at real, existing entries — a race and classes that are actually in the compendium — rather than inventing inline summaries.
The fields the sheet carries itself
Alongside its references, a character carries the lived facts that no other entry owns:
- abilityScores — the six personal scores, and the
abilityModifiersthat flow from them. - Combat —
hp/hpMax,thac0, and the Armour Class broken into its parts:acNatural,acArmor,acShield, andacDexBonus. This decomposition is deliberate — it lets the sheet (and any computed totals) add armour, shield, and dexterity honestly rather than hiding them. - Defenses and skills —
savingThrows,proficiencies, and for rogues thethiefSkills. - Magic —
spellcasterType,spellbook,spellsPrepared, andspellSlotsfor those who cast. - The person —
alignment,appearance,background,personality,mannerisms, andstatus, so the numbers have someone wearing them. - Wealth and equipment —
goldGpand the worn/carriedinventorywith what is equipped.
The role of computed fields
Some of the most useful fields on a sheet are computed — derived by an expression from other fields rather than typed by hand. For example, a sheet can figure a hero's Armour Class from their acArmor, acShield, and acDexBonus, or derive their abilityModifiers from their scores. The rule when you work with these is: you never write a computed value; you change its sources. To make a hero's Armour Class better, improve the armour or the dexterity — the computed total follows. If you find yourself typing the same derived number by hand onto many sheets, that number probably wants to be a computed expression on the type, so there is exactly one true way it is figured.
Keeping references healthy
The whole web works only while its references resolve. When you build a sheet, verify the chain end to end: the race points at a real race, the classes at real classes, the inventory at real gear, the spellbook and spellsPrepared at spells the caster's class can actually learn. A reference to anything that does not exist breaks the sheet and the rendering with it. If you rename or move an entry, update the references that point at it — a sheet pointing at thin air is a hero with a hole in their story.
The intent: a sheet you can hand to a player
The purpose of a character is not to be a complete database record — it is to be playable at a glance. When you build a sheet, read it the way a player would at the top of a session: here are my hit points, my Armour Class, my THAC0, my saves, my spells prepared, what I'm carrying. If every decision the player faces tonight — fight or flee, cast or conserve, push on or fall back — can be answered from the sheet, and everything on it points back to real compendium entries, then you have built a hero, not just a file.
When you finish
Open the sheet the way the table will: check that the numbers add up (hit points match the class and race and constitution, armour matches what's worn, THAC0 matches the class table), that the references resolve to real entries, and that the person on the sheet reads as somebody you could play for twenty sessions. The best test of all the content you have built — races, classes, spells, gear — is the sheet that combines them into a hero you genuinely want to sit down with.