Character field guide
Index fields → SRD
| Field | Type / convention |
|---|---|
speciesIndex | SRD species dataset index |
subspeciesIndex | Subspecies index when applicable |
backgroundIndex | SRD backgrounds index |
classes[].index | SRD classes index |
classes[].subclassIndex | Subclass index |
identity.alignmentIndex | AlignmentIndex or string fallback |
skillProficiencies | Skill index strings (often skill-*) |
feats[].featIndex | SRD feats index |
equipment.*Ids | Equipment item indices |
spells.*SpellIds | Spell indices |
Minimal example
json
{
"identity": {
"characterName": "Aldric",
"playerName": "Player",
"alignmentIndex": "lg",
"age": 30,
"physicalDescription": "",
"backstory": ""
},
"speciesIndex": "human",
"classes": [{ "index": "fighter", "level": 1 }],
"abilityScores": { "str": 15, "dex": 14, "con": 13, "int": 12, "wis": 10, "cha": 8 },
"abilityScoreMethod": "standardArray",
"backgroundIndex": "soldier",
"personality": { "personalityTraits": "", "ideals": "", "bonds": "", "flaws": "" },
"skillProficiencies": [],
"skillExpertise": [],
"toolProficiencies": [],
"languages": ["common"],
"feats": [],
"equipment": {
"armorIds": [],
"weaponIds": [],
"inventory": [],
"currency": { "pp": 0, "gp": 10, "ep": 0, "sp": 0, "cp": 0 }
},
"derived": {
"maxHp": 12,
"currentHp": 12,
"tempHp": 0,
"ac": 16,
"initiative": 2,
"speed": 30,
"proficiencyBonus": 2,
"inspiration": false
}
}Derived stats are stored on the pivot; calculation rules live in consumer apps.