Systems Reference

All supported stat systems in actor.rpg.stats

Every system in the actor.rpg.stats record lives under its own top-level key — a single record can hold D&D, Cyberpunk 2020, Mage, and RPG Maker stats at the same time, without conflict. You only implement the fields you need.


This reference covers the field-level structure of every built-in system. All fields are optional unless noted. The schema is designed for forward compatibility — unknown fields are preserved on read, partial records are valid, and new systems are added without breaking existing data.


If you're building a game and want to use one of these systems, or add your own, see the Game Systems section in the Developer Guide.

KeySystem
dndD&D 5th Edition
dccDungeon Crawl Classics
cyberpunk2020Cyberpunk 2020
mageMage: The Ascension
vampireVampire: The Masquerade 5e
rmmzRPG Maker MZ
playtopiaPlaytopia Quest
reverieReverie House
customUser-Defined (legacy)

Raw lexicon files are available for direct integration:


 D&D 5th Edition

stats.dnd — Full 5e character sheet

D&D 5e is the most fully-featured system in the schema. It covers the complete official character sheet across a set of independent sub-objects — you can include only the parts your game actually uses. A record containing nothing but abilities and hp is perfectly valid; there's no obligation to store spell slots just because you have a combat block.


Sub-objects are stored under nested keys within stats.dnd. Ability modifiers and skill modifiers are not stored directly — the UI calculates them from the raw scores and proficiency bonus at read time.

Partial records work fine. Only store the sub-objects you actually need. The sheet renderer gracefully omits empty sections.

Identity dnd.identity

FieldTypeNotes
racestringmax 100 chars
classstringmax 100 chars
levelintegermin 1
backgroundstringmax 100 chars
alignmentstringmax 50 chars (e.g. "Chaotic Neutral")
xpintegermin 0
proficiencyintegermin 0 — proficiency bonus value

Abilities dnd.abilities

All six core ability scores. Modifiers are calculated by the UI (floor((score − 10) / 2)).

FieldTypeNotes
strinteger1–30
dexinteger1–30
coninteger1–30
intinteger1–30
wisinteger1–30
chainteger1–30

Hit Points dnd.hp

FieldTypeNotes
currentintegermin 0
maxintegermin 1
tempintegermin 0

Combat dnd.combat

FieldTypeNotes
acinteger ≥ 0Armor Class
speedinteger ≥ 0Movement speed in feet
initiativeintegerInitiative bonus (can be negative)
hitDicestring (20)e.g. "3d8"
hitDiceUsedinteger ≥ 0Number of hit dice already spent

Conditions dnd.conditions

FieldTypeNotes
inspirationboolean
exhaustioninteger 0–6
deathSaves.successesinteger 0–3Nested inside conditions.deathSaves
deathSaves.failuresinteger 0–3Nested inside conditions.deathSaves

Saving Throws dnd.saves

Each field stores the total modifier (ability mod + proficiency, as applicable). Values are integers and can be negative.

FieldStat
strStrength save
dexDexterity save
conConstitution save
intIntelligence save
wisWisdom save
chaCharisma save

Skills dnd.skills

All 18 skills store the total modifier (integer, can be negative). Half-proficiency, expertise, and jack-of-all-trades bonuses should be baked in before saving.

FieldBase AbilityFieldBase Ability
acrobaticsDEXmedicineWIS
animalHandlingWISnatureINT
arcanaINTperceptionWIS
athleticsSTRperformanceCHA
deceptionCHApersuasionCHA
historyINTreligionINT
insightWISsleightOfHandDEX
intimidationCHAstealthDEX
investigationINTsurvivalWIS

Passives dnd.passives

FieldTypeNotes
perceptionintegerTypically 10 + Perception modifier
investigationintegerTypically 10 + Investigation modifier
insightintegerTypically 10 + Insight modifier

Attacks dnd.attacks

An array of attack entries (max 20). Each object:

FieldTypeNotes
namestring (100)Weapon or ability name
bonusstring (20)Attack roll bonus, e.g. "+5"
damagestring (20)Damage dice, e.g. "1d8"
damageBonusintegerFlat damage bonus added to roll
damageTypestring (30)e.g. "piercing", "fire"

Equipment dnd.equipment

FieldTypeMax
weaponsstring500 chars
armorstring200 chars
gearstring2000 chars
treasurestring1000 chars

Coinage dnd.coinage

FieldDenomination
cpCopper pieces (integer ≥ 0)
spSilver pieces
epElectrum pieces
gpGold pieces
ppPlatinum pieces

Personality dnd.personality

FieldTypeMax
traitsstring1000 chars
idealsstring500 chars
bondsstring500 chars
flawsstring500 chars
backstorystring5000 chars

Text Fields dnd.*

FieldTypeNotes
proficienciesstringArmor, weapon, and tool proficiency list (free text)
languagesstringLanguages known (free text)
featuresstringClass features, racial traits, and feats (free text)

Spellcasting dnd.spellcasting

FieldTypeNotes
abilitystring (3)Spellcasting ability abbreviation: INT, WIS, or CHA
dcinteger ≥ 1Spell save DC
attackintegerSpell attack bonus
slotsarray (max 9)Each entry: { level: integer 1–9, total: integer, used: integer }
spells.cantripsarray of string (max 20)Cantrip names
spells.l1spells.l9array of stringPrepared spell names per level (l1–l5 max 30, l6–l9 max 20)

 Dungeon Crawl Classics

stats.dcc — 0-level funnel through 10th level

DCC has the most specialized schema in the collection — deed dice, mercurial magic, spellburn, a 0-level funnel, and probabilistic thief skills that scale with level rather than proficiency. It reflects a deliberately different mechanical philosophy from 5e.


Level 0 funnel characters are fully supported — identity.level starts at 0. Class feature blocks are conditional: populate only the block matching your character's class, and the sheet renderer will show only that section.

Demihuman classes: Dwarves use the warrior block; Elves use the wizard block. This matches how their abilities are structured mechanically in the rulebook.

Identity dcc.identity

FieldTypeNotes
occupationstring (100)0-level occupation (e.g. "Rutabaga Farmer")
classstring (100)Character class — determines which class section renders
titlestring (100)Class title for current level (e.g. "Evoker" at Wizard 3)
levelinteger 0–100 = funnel character
xpinteger ≥ 0
alignmentstring (20)Lawful, Neutral, or Chaotic

Abilities dcc.abilities

DCC uses its own modifier table (3=−3, 4–5=−2, 6–8=−1, 9–12=0, 13–15=+1, 16–17=+2, 18–24=+3), not the 5e formula. Modifiers are calculated by the UI. The *Base fields track pre-spellburn values so spellburn can be recovered incrementally.

FieldTypeNotes
strinteger 1–24Current Strength (may be reduced by spellburn)
agiinteger 1–24Agility
stainteger 1–24Stamina (may be reduced by spellburn)
intinteger 1–24Intelligence
perinteger 1–24Personality
lukinteger 1–24Luck
strBaseinteger 1–24Pre-spellburn Strength (for recovery tracking)
agiBaseinteger 1–24Pre-spellburn Agility
staBaseinteger 1–24Pre-spellburn Stamina

Luck dcc.luck

FieldTypeNotes
birthAugurstring (100)Birth augur table result name
birthAugurEffectstring (200)Description of the augur's mechanical effect
startingLuckinteger 1–24Luck score at character creation (used by some augur effects)
luckyWeaponstring (100)Halfling and some Warrior lucky weapon type

Hit Points dcc.hp

FieldType
currentinteger ≥ 0
maxinteger ≥ 1

Combat dcc.combat

FieldTypeNotes
acinteger ≥ 0Armor Class
speedinteger ≥ 0Movement speed in feet
initiativeintegerInitiative modifier
actionDiestring (20)Action die expression, e.g. "d20" or "d20+d14"
attackModintegerBase attack modifier
critDiestring (10)Critical hit die, e.g. "d8"
critTablestring (20)Critical hit table reference, e.g. "III"
fumbleDiestring (10)Fumble die, e.g. "d6"

Saving Throws dcc.saves

FieldSave
refReflex (integer, can be negative)
fortFortitude
willWill

Attacks dcc.attacks

Array of weapon attacks (max 10). Each entry:

FieldTypeNotes
namestring (100)Weapon name
typestring (20)e.g. "melee", "ranged"
attackModstring (30)Attack modifier expression, e.g. "+3" or "+d3+1"
damagestring (30)Damage dice, e.g. "1d8"
damageBonusstring (30)Flat damage bonus
rangestring (30)Range if applicable
notesstring (200)Special properties, crit effects, etc.

Class Sections (conditional)

Only populate the block matching the character's class. The sheet renders each section only when identity.class matches the relevant class name, or when the block already contains data. Setting data in a class block without a matching class name will still display.

Warrior / Dwarf  dcc.warrior

FieldTypeNotes
deedDiestring (10)Current deed die size, e.g. "d3", "d7"
mightyDeedsarray of string (max 20)Named mighty deeds the character has learned
luckyWeaponstring (100)Lucky weapon type (Warriors)
shieldBashbooleanDwarf shield bash ability
infravisioninteger ≥ 0Dwarf infravision range in feet
undergroundSkillsinteger ≥ 0Dwarf underground stone-sense bonus
smellGoldbooleanDwarf smell gold ability

Wizard / Elf  dcc.wizard

FieldTypeNotes
spellCheckModintegerSpell check modifier
maxSpellLevelinteger 1–5Highest spell level accessible
patronstring (100)Patron name if any
patronBondstring (500)Patron bond description / taints
knownSpellsarray (max 50)Each entry: { name, level 1–5, mercurialMagic string(500), mercurialRoll integer 1–100, lost boolean, notes string(500) }
corruptionarray (max 20)Each entry: { type string(20), effect string(500), source string(100), permanent boolean }
corruptionTextstring (2000)Free-text corruption notes
spellburn.strBurnedinteger ≥ 0Strength currently burned
spellburn.agiBurnedinteger ≥ 0Agility currently burned
spellburn.staBurnedinteger ≥ 0Stamina currently burned
spellburn.recoveryRateinteger ≥ 0Points recovered per night's rest

Cleric  dcc.cleric

FieldTypeNotes
deitystring (100)Deity name
spellCheckModintegerSpell check modifier
maxSpellLevelinteger 1–5Highest spell level accessible
disapprovalRangeinteger 1–20Natural rolls at or below this trigger disapproval
disapprovalTablestring (100)Custom disapproval table reference if applicable
turnUnholyDiestring (10)Turn unholy die expression, e.g. "d10"
layOnHandsDiestring (10)Lay on hands die, e.g. "d3"
holySymbolstring (100)Holy symbol description
unholybooleanTrue for Chaotic clerics
knownSpellsarray (max 50)Each entry: { name, level 1–5, sinful boolean, notes string(500) }

Thief  dcc.thief

Thief skills store the raw die modifier for a d20 roll — e.g. +3 means roll d20+3 against a static target number. This is not a 5e DC system; the modifier scales as the thief levels up.

FieldType
backstabinteger ≥ 0 — Backstab attack bonus (not a skill check)
luckyWeaponstring (100)
alignmentstring (20)
skills.sneakSilentlyinteger
skills.hideInShadowsinteger
skills.pickPocketinteger
skills.climbSheerSurfacesinteger
skills.pickLockinteger
skills.findTrapinteger
skills.disableTrapinteger
skills.forgeDocumentinteger
skills.disguiseSelfinteger
skills.readLanguagesinteger
skills.handlePoisoninteger
skills.castSpellFromScrollinteger

Halfling  dcc.halfling

FieldTypeNotes
twoWeaponFightingbooleanTwo-weapon fighting ability unlocked
infravisioninteger ≥ 0Infravision range in feet (typically 30)
sneakAndHideintegerCombined sneak/hide modifier
luckyWeaponstring (100)Luck-bound weapon type
goodLuckCharmbooleanGood luck charm ability
luckSpentOnAlliesinteger ≥ 0Luck points spent on behalf of allies (tracked separately)

Equipment & Coinage dcc.equipment / dcc.coinage

FieldTypeNotes
equipment.weaponsstring (500)Weapon list (free text)
equipment.armorstring (200)Armor worn
equipment.armorCheckPenaltyinteger ≥ 0ACP for skills requiring movement
equipment.shieldstring (100)Shield description
equipment.tradeGoodsstring (500)Trade goods (important for 0-level funnel characters)
equipment.gearstring (2000)General gear
equipment.treasurestring (1000)Treasure and valuables
coinage.cpinteger ≥ 0Copper pieces
coinage.spinteger ≥ 0Silver pieces
coinage.gpinteger ≥ 0Gold pieces

Text Fields dcc.*

FieldNotes
languagesLanguages known (string, free text)
notesCharacter biography, backstory, and general notes (string)
abilitiesNotesSpecial ability notes beyond the class section fields (string)

 Cyberpunk 2020

stats.cyberpunk2020 — Full CP2020 character sheet

A full Cyberpunk 2020 sheet for Night City operators. It covers all nine STAT scores, every skill across the attribute groups, the wound track by severity level, armor by hit location zone, weapons, a ten-slot cyberware roster, and a notes field.


Stats are stored as integers (0–10). Humanity is a string rather than an integer to support the current/base format common in CP2020 sheets (e.g. "38/40"). Skills that derive from an attribute base display as a ratio in the UI but are stored independently.

Identity & Derived cyberpunk2020.*

FieldTypeNotes
handlestringStreet name
rolestringCharacter role (Solo, Netrunner, Rockerboy, etc.)
campaignstringCampaign name
nationalitystringNationality
agestringAge
genderstringGender
reputationstringStreet reputation label
currentIPstringCurrent Improvement Points
humanitystringHumanity score (may be formatted as "38/40")
saveintegerSave value (equals Body Type)
btwcintegerBody Type Modifier (BTM; negative values allowed)
totalHp / currentHpintegerHit points

Stats cyberpunk2020.* (0–10 each)

FieldStatNotes
intIntelligence
ref / refBaseReflexesref is modified (after cyberware); refBase is unmodified
techTechnical Ability
coolCool
attrAttractiveness
luckLuck
maMovement Allowance
bodyBody Type
emp / empBaseEmpathyemp is modified; empBase is unmodified

Role Ability cyberpunk2020.roleSkill1

FieldTypeNotes
roleSkill1objectPrimary role ability — { title: string, base: string, value: integer 0–10 }

Skills cyberpunk2020.* (all integer 0–10)

AttributeSkills
ATTRpersonalGrooming, wardrobeStyle
BODYendurance, strengthFeat, swimming
COOL/WILLinterrogation, intimidate, oratory, resistTortDrug, streetwise
EMPhumanPerception, interview, leadership, seduction, socialEmp, persuasion, perform
INTaccounting, anthropology, awarenessNotice, biology, botany, chemistry, composition, diagnoseIllness, education, expertiseInt, gamble, geology, hideEvade, historyGen, language1, language2, library, mathematics, physics, stockMarket, systemKnowledge, teaching, wilderness, zoology
REFarchery, athletics, brawling, dance, dodge, driving, fencing, handgun, heavyWeapons, martialArts, melee, motorcycle, pilotFixed, pilotRotor, pilotVectored, rifle, stealth, submachinegun
TECHaeroTech, avTech, basicTech, cryotankOp, cybertechTech, demolitions, disguise, electronics2, electroSec, firstAid, forgery, gyroTech, paintDraw, paramedic, photography, pickLock, pickPocket, playInstrument, weaponsSmith

Combat cyberpunk2020.*

FieldTypeNotes
woundLight through woundMortal3integer 0–57 wound level rows, each holding a 0–5 pip count. Rows: Light (–0), Serious (–1), Critical (–2), Mortal 0–3 (–3 to –6)
armor1sparmor7spstringStop Power per zone (Head, Body Front/Back, R/L Arm, R/L Leg)
armor1evarmor7evstringEncumbrance Value per zone
weapon1weapon5objectEach: { name, type, wa, con, avl, dmg, rng, shots, rel }

Cyberware & Notes cyberpunk2020.*

FieldTypeNotes
ware1ware10objectEach: { type, name, hl, cost } — type is the cyberware category, hl is Humanity Loss
cpNotesstring (5000)General character notes

 Mage: The Ascension

stats.mage — World of Darkness character sheet

A complete Mage: The Ascension (Revised/WoD) sheet. This is the World of Darkness version — Arete to 10, Quintessence and Paradox on a shared 20-step wheel, Willpower with separate permanent (dots) and temporary (squares) tracks, and all nine Spheres.


Attributes, Abilities, and Sphere ratings all use the standard 1–5 dot scale. Health is stored as a filled-level count (0 = Unharmed, 7 = Incapacitated) rather than individual box states. Backgrounds and Traits use named slot objects with a label and dot value.

Identity mage.*

FieldTypeNotes
naturestring (100)Psychological nature archetype
demeanorstring (100)Outward demeanor archetype
essencestring (100)Mage essence type (Dynamic, Pattern, Primordial, Questing)
affiliationstring (100)Tradition, Technocratic Convention, or Disparate
sectstring (100)Sub-group within the affiliation
conceptstring (100)One-line character concept

Attributes mage.* (all integer 0–5)

CategoryFields
Physicalstrength, dexterity, stamina
Socialcharisma, manipulation, appearance
Mentalperception, intelligence, wits

Abilities mage.* (all integer 0–5)

CategoryFields
Talentsalertness, art, athletics, awareness, brawl, empathy, expression, intimidation, leadership, streetwise, subterfuge
Skillscrafts, drive, etiquette, firearms, martialarts, meditation, melee, research, stealth, survival, technology
Knowledgesacademics, computer, cosmology, enigmas, esoterica, investigation, law, medicine, occult, politics, science

Spheres mage.* (all integer 0–5)

FieldDomain
correspondenceSpace, distance, travel
entropyChaos, decay, probability
forcesEnergy, fire, electricity, weather
lifeLiving matter, healing, shapeshifting
matterInert substances, alchemy
mindThoughts, perception, illusion
primeQuintessence, Resonance, Nodes
spiritUmbra, spirits, the Gauntlet
timeTemporal perception and manipulation

Backgrounds & Traits mage.*

Named dot-rated entries. Each stored as { title: string(50), value: integer 0–5 }.

FieldSlotsNotes
background1background55Backgrounds (Allies, Arcane, Avatar, Destiny, Fame, Library, etc.)
trait1trait55Other advantages, merits, or flaws

Ratings & Pools mage.*

FieldTypeNotes
areteinteger 0–10Arete dot rating
willpowerobject{ permanent: integer 1–10, temporary: integer 0–10 } — permanent = dots, temporary = filled squares
quintessenceinteger 0–20Quintessence pool (top half of the Wheel of Ptah)
paradoxinteger 0–20Paradox pool (bottom half of the Wheel of Ptah)
healthinteger 0–7Filled health levels: 0 = Unharmed, 7 = Incapacitated

Experience & Notes mage.*

FieldTypeNotes
experienceinteger ≥ 0Experience points
notesstring (5000)Character notes, backstory, and cabal info

 Vampire: The Masquerade 5e

stats.vampire — VTM 5th Edition character sheet

A complete Vampire: The Masquerade 5th Edition sheet. Attributes and Skills follow the standard three-category layout. Trackers — Health, Willpower, Humanity, Hunger, and Blood Potency — are stored as integer pip counts rather than sub-objects, which makes them easy to compare and do arithmetic on.


Disciplines use named slot objects, each holding a dot rating and up to five named Powers. Advantages (Backgrounds, Merits, Flaws) share a common { type, value } object structure across all their slot groups.

Identity vampire.*

FieldTypeNotes
namestring (100)Character name
conceptstring (100)Character concept
chroniclestring (100)Chronicle name
ambitionstring (200)Long-term ambition
desirestring (200)Short-term desire
predatorstring (32)Predator type (Alleycat, Bagger, Cleaver, etc.)
clanstring (32)Vampire clan
generationstring (16)Generation (e.g. "13th")
sirestring (100)Sire's name

Attributes vampire.* (all integer 0–5)

CategoryFields
Physicalstrength, dexterity, stamina
Socialcharisma, manipulation, composure
Mentalintelligence, wits, resolve

Skills vampire.* (all integer 0–5)

CategoryFields
Physicalathletics, brawl, craft, drive, firearms, larceny, melee, stealth, survival
SocialanimalKen, etiquette, insight, intimidation, leadership, performance, persuasion, streetwise, subterfuge
Mentalacademics, awareness, finance, investigation, medicine, occult, politics, science, technology

Morality vampire.*

FieldTypeNotes
tenet1tenet6string (500)Chronicle Tenets — shared moral laws of the chronicle
touchstone1touchstone6string (500)Personal Touchstones & Convictions anchoring the character to Humanity
clanBane1clanBane6string (500)Clan Bane manifestations specific to this character

Disciplines vampire.*

FieldTypeNotes
disc1disc6objectEach: { type: string(50), value: integer 0–5, power1–power5: string(100) }type is the Discipline name (e.g. Animalism), value is the dot rating, powers are named abilities

Trackers vampire.*

All tracker values are stored as integer pip counts (filled squares), not as sub-objects.

FieldRangeNotes
health0–15Damage pips filled (15 total boxes)
willpower0–15Willpower pips spent
humanity0–10Humanity level (10 = fully human, 0 = the Beast)
hunger0–5Hunger level; 5 = frenzying
bloodPotency0–10Blood Potency level

Blood Potency Details vampire.*

Text labels derived from the Blood Potency table. Store the label for the character's current potency level.

FieldTypeNotes
bloodSurgestring (50)Blood Surge bonus, e.g. "+2 dice"
powerBonusstring (50)Discipline power bonus at this potency
feedingPenaltystring (50)Feeding restriction descriptor
mendAmountstring (50)Superficial damage mended per Rouse, e.g. "1 Superficial"
rouseRerollstring (50)Rouse check re-roll threshold
baneSeveritystring (50)Bane Severity rating
resonancestring (20)Current resonance type: Choleric, Melancholy, Phlegmatic, or Sanguine
huntingstring (32)Hunting ground or style description

Advantages vampire.*

All advantage slots store { type: string(64), value: integer 0–5 } where type is the name of the background, merit, or flaw.

FieldSlotsNotes
bg1bg99Backgrounds (Allies, Contacts, Herd, Haven, etc.)
merit1merit77Merits
flaw1flaw77Flaws

Haven vampire.*

FieldTypeNotes
havenNamestring (100)Haven location name
havenNonebooleanTrue if the character has no haven
havenRatinginteger 0–5Haven dot rating
havenFeat1havenFeat4objectHaven merit/flaw features: { type: string(64), value: integer 0–5 }

Experience & Weapons vampire.*

FieldTypeNotes
expTotalinteger ≥ 0Total experience earned
expSpentinteger ≥ 0Experience spent on advancement
weapon1weapon6objectEach: { name: string(64), dmg: string(32) }

Biography vampire.*

FieldTypeNotes
trueAgeinteger ≥ 0True age in years since birth
apparentAgeinteger ≥ 0Age frozen at the Embrace
dateOfBirthstring (100)
dateOfDeathstring (100)Date of the Embrace
appearancestring (5000)Physical description
distinguishingFeaturesstring (5000)Notable features
historystring (5000)Mortal history and unlife chronicle
possessionsstring (5000)Notable possessions and havens
notesstring (5000)General notes

 RPG Maker MZ

stats.rmmz — Standard engine parameters

Maps directly to the standard RPG Maker MZ actor parameters (MHP, MMP, ATK, DEF, MAT, MDF, AGI, LUK), plus level, class name, XP, and current HP/MP/TP. Storing these in the player's PDS lets compatible games carry a character's progression forward across different sessions and titles without relying on local save files.

FieldTypeRangeDescription
levelinteger≥ 1Character level
classstringmax 100Class name
xpinteger≥ 0Total experience points
hpinteger≥ 0Current hit points
maxHpinteger≥ 1Maximum hit points
mpinteger≥ 0Current magic points
maxMpinteger≥ 0Maximum magic points
tpinteger≥ 0Current tactical points
maxTpinteger≥ 0Maximum tactical points
atkinteger≥ 1Attack power
definteger≥ 1Defense
matinteger≥ 1Magic attack
mdfinteger≥ 1Magic defense
agiinteger≥ 1Agility
lukinteger≥ 1Luck
hitinteger0–100Hit rate (%)
evainteger0–100Evasion rate (%)
criinteger0–100Critical rate (%)

 Playtopia Quest

stats.playtopia — Social RPG character sheet

The character schema for Playtopia Quest — a lightweight social RPG where your class is how you move through the world, not what spells you have. Classes run from Artist to Weirdo. Alignment is chaos-adjacent. Your bestFriend and worstEnemy are stored as AT Protocol handles.

FieldTypeValues / RangeDescription
classstringArtist, Coder, Gamer, Suit, WeirdoCharacter class
alignmentstringOrdered, Neutral, ChaoticCharacter alignment
levelinteger≥ 1Character level
healthinteger0–3Health (hearts)
bestFriendstringmax 253Best friend (AT Protocol handle)
worstEnemystringmax 253Worst enemy (AT Protocol handle)
traitsarraymax 16 itemsPersonal trait names
catchphrasestringmax 200Character catchphrase
faveColourstringmax 7Favourite colour (hex code)

 Reverie

stats.reverie — dreaming coordinates

The spectrum system used by Reverie House. Rather than the traditional good/evil and law/chaos axes, Reverie positions a character across six philosophical dimensions. The combination of values determines an octant classification, which carries narrative meaning within that world.

FieldTypeRangeDescription
octantstringsee belowOctant classification
oblivioninteger0–100Oblivion axis
entropyinteger0–100Entropy axis
authorityinteger0–100Authority axis
libertyinteger0–100Liberty axis
skepticinteger0–100Skeptic axis
receptiveinteger0–100Receptive axis

Known octants: adaptive, chaotic, prepared, intended, contented, assertive, ordered, guarded, equilibrium, singling, confused


 Custom Systems

stats.custom — Define your own

The original catch-all key from before dedicated system keys were added. The stats[] array accepts any named stat with an optional range and category grouping. It still works, but new integrations should use their own top-level key — the custom key is limited to a single system definition in one record.

Legacy format. The custom key is supported for backwards compatibility but should not be used for new systems. Use a unique top-level key like mygame instead — see the System Keys section of the Developer Guide.

Top-Level Fields

FieldTypeRangeDescription
systemNamestringmax 100Name of the custom system
systemVersionstringmax 50Version identifier
statsarrayArray of stat entries (see below)

Stat Entry Fields

FieldTypeRequiredDescription
namestringYesStat name (max 50)
valueintegerYesCurrent value
minintegerNoMinimum allowed value
maxintegerNoMaximum allowed value
categorystringNoCategory grouping (max 50)
Designing a New System: If your game becomes popular enough to warrant its own dedicated system key in the lexicon, reach out via the contact page. We're actively expanding the schema to support new systems as they find community adoption.