actor.rpg.stats

rpg.actor

{
  "id": "actor.rpg.stats",
  "defs": {
    "hp": {
      "type": "object",
      "properties": {
        "max": {
          "type": "integer",
          "minimum": 1,
          "description": "Maximum HP"
        },
        "temp": {
          "type": "integer",
          "minimum": 0,
          "description": "Temporary HP"
        },
        "current": {
          "type": "integer",
          "minimum": 0,
          "description": "Current HP"
        }
      },
      "description": "Hit point tracking"
    },
    "main": {
      "key": "literal:self",
      "type": "record",
      "record": {
        "type": "object",
        "required": [
          "createdAt"
        ],
        "properties": {
          "dcc": {
            "ref": "#dccStats",
            "type": "ref",
            "description": "Dungeon Crawl Classics RPG character sheet"
          },
          "dnd": {
            "ref": "#dndStats",
            "type": "ref",
            "description": "Dungeons & Dragons 5th Edition character sheet"
          },
          "rmmz": {
            "ref": "#rmmzStats",
            "type": "ref",
            "description": "RPG Maker MZ engine character parameters"
          },
          "custom": {
            "ref": "#customStats",
            "type": "ref",
            "description": "User-defined custom stat system"
          },
          "reverie": {
            "ref": "#reverieStats",
            "type": "ref",
            "description": "Reverie House philosophical alignment"
          },
          "createdAt": {
            "type": "string",
            "format": "datetime",
            "description": "Timestamp when this record was created"
          },
          "playtopia": {
            "ref": "#playtopiaStats",
            "type": "ref",
            "description": "Playtopia Quest character sheet"
          },
          "updatedAt": {
            "type": "string",
            "format": "datetime",
            "description": "Timestamp when this record was last modified"
          }
        }
      },
      "description": "A user's RPG character statistics. One record per user (rkey: self)."
    },
    "dccHp": {
      "type": "object",
      "properties": {
        "max": {
          "type": "integer",
          "minimum": 1,
          "description": "Maximum HP"
        },
        "current": {
          "type": "integer",
          "minimum": 0,
          "description": "Current HP"
        }
      },
      "description": "Hit points (0-level characters use 1d4 + STA mod)"
    },
    "saves": {
      "type": "object",
      "properties": {
        "cha": {
          "type": "integer",
          "description": "Charisma save modifier"
        },
        "con": {
          "type": "integer",
          "description": "Constitution save modifier"
        },
        "dex": {
          "type": "integer",
          "description": "Dexterity save modifier"
        },
        "int": {
          "type": "integer",
          "description": "Intelligence save modifier"
        },
        "str": {
          "type": "integer",
          "description": "Strength save modifier"
        },
        "wis": {
          "type": "integer",
          "description": "Wisdom save modifier"
        }
      },
      "description": "Saving throw modifiers (actual values, not proficiency flags)"
    },
    "attack": {
      "type": "object",
      "required": [
        "name"
      ],
      "properties": {
        "name": {
          "type": "string",
          "maxLength": 100,
          "description": "Attack name"
        },
        "bonus": {
          "type": "string",
          "maxLength": 20,
          "description": "Attack bonus (e.g., +5)"
        },
        "damage": {
          "type": "string",
          "maxLength": 20,
          "description": "Damage dice (e.g., 1d8)"
        },
        "damageType": {
          "type": "string",
          "maxLength": 30,
          "description": "Damage type"
        },
        "damageBonus": {
          "type": "integer",
          "description": "Damage bonus"
        }
      },
      "description": "An attack action"
    },
    "combat": {
      "type": "object",
      "properties": {
        "ac": {
          "type": "integer",
          "minimum": 0,
          "description": "Armor Class"
        },
        "speed": {
          "type": "integer",
          "minimum": 0,
          "description": "Speed in feet"
        },
        "hitDice": {
          "type": "string",
          "maxLength": 20,
          "description": "Hit dice (e.g., 5d10)"
        },
        "initiative": {
          "type": "integer",
          "description": "Initiative modifier"
        },
        "hitDiceUsed": {
          "type": "integer",
          "minimum": 0,
          "description": "Hit dice expended"
        }
      },
      "description": "Combat and defensive stats"
    },
    "skills": {
      "type": "object",
      "properties": {
        "arcana": {
          "type": "integer",
          "description": "Arcana (INT)"
        },
        "nature": {
          "type": "integer",
          "description": "Nature (INT)"
        },
        "history": {
          "type": "integer",
          "description": "History (INT)"
        },
        "insight": {
          "type": "integer",
          "description": "Insight (WIS)"
        },
        "stealth": {
          "type": "integer",
          "description": "Stealth (DEX)"
        },
        "medicine": {
          "type": "integer",
          "description": "Medicine (WIS)"
        },
        "religion": {
          "type": "integer",
          "description": "Religion (INT)"
        },
        "survival": {
          "type": "integer",
          "description": "Survival (WIS)"
        },
        "athletics": {
          "type": "integer",
          "description": "Athletics (STR)"
        },
        "deception": {
          "type": "integer",
          "description": "Deception (CHA)"
        },
        "acrobatics": {
          "type": "integer",
          "description": "Acrobatics (DEX)"
        },
        "perception": {
          "type": "integer",
          "description": "Perception (WIS)"
        },
        "persuasion": {
          "type": "integer",
          "description": "Persuasion (CHA)"
        },
        "performance": {
          "type": "integer",
          "description": "Performance (CHA)"
        },
        "intimidation": {
          "type": "integer",
          "description": "Intimidation (CHA)"
        },
        "investigation": {
          "type": "integer",
          "description": "Investigation (INT)"
        },
        "sleightOfHand": {
          "type": "integer",
          "description": "Sleight of Hand (DEX)"
        },
        "animalHandling": {
          "type": "integer",
          "description": "Animal Handling (WIS)"
        }
      },
      "description": "Skill modifiers (actual values, not proficiency flags)"
    },
    "coinage": {
      "type": "object",
      "properties": {
        "cp": {
          "type": "integer",
          "minimum": 0,
          "description": "Copper pieces"
        },
        "ep": {
          "type": "integer",
          "minimum": 0,
          "description": "Electrum pieces"
        },
        "gp": {
          "type": "integer",
          "minimum": 0,
          "description": "Gold pieces"
        },
        "pp": {
          "type": "integer",
          "minimum": 0,
          "description": "Platinum pieces"
        },
        "sp": {
          "type": "integer",
          "minimum": 0,
          "description": "Silver pieces"
        }
      },
      "description": "Currency"
    },
    "dccLuck": {
      "type": "object",
      "properties": {
        "birthAugur": {
          "type": "string",
          "maxLength": 100,
          "description": "Birth augur name (e.g., Harsh Winter, The Bull, Fortunate Date)"
        },
        "luckyWeapon": {
          "type": "string",
          "maxLength": 100,
          "description": "Weapon type that luck applies to (Dwarves/Halflings)"
        },
        "startingLuck": {
          "type": "integer",
          "maximum": 24,
          "minimum": 1,
          "description": "Starting luck score (for tracking burned luck)"
        },
        "birthAugurEffect": {
          "type": "string",
          "maxLength": 200,
          "description": "What the luck modifier applies to"
        }
      },
      "description": "Birth augur and luck mechanics"
    },
    "dccSaves": {
      "type": "object",
      "properties": {
        "ref": {
          "type": "integer",
          "description": "Reflex save modifier"
        },
        "fort": {
          "type": "integer",
          "description": "Fortitude save modifier"
        },
        "will": {
          "type": "integer",
          "description": "Willpower save modifier"
        }
      },
      "description": "DCC saving throws (3 saves, not 6)"
    },
    "dccStats": {
      "type": "object",
      "properties": {
        "hp": {
          "ref": "#dccHp",
          "type": "ref",
          "description": "Hit points"
        },
        "luck": {
          "ref": "#dccLuck",
          "type": "ref",
          "description": "Birth augur and luck tracking"
        },
        "notes": {
          "type": "string",
          "maxLength": 5000,
          "description": "Character notes, backstory, and special abilities"
        },
        "saves": {
          "ref": "#dccSaves",
          "type": "ref",
          "description": "Saving throws (Reflex, Fortitude, Willpower)"
        },
        "thief": {
          "ref": "#dccThief",
          "type": "ref",
          "description": "Thief skills and abilities"
        },
        "cleric": {
          "ref": "#dccCleric",
          "type": "ref",
          "description": "Cleric spellcasting (disapproval, turn unholy, lay on hands)"
        },
        "combat": {
          "ref": "#dccCombat",
          "type": "ref",
          "description": "Combat stats (AC, speed, action die, initiative, crit die/table)"
        },
        "wizard": {
          "ref": "#dccWizard",
          "type": "ref",
          "description": "Wizard/Elf spellcasting (spellburn, corruption, mercurial magic)"
        },
        "attacks": {
          "type": "array",
          "items": {
            "ref": "#dccAttack",
            "type": "ref"
          },
          "maxLength": 20,
          "description": "Weapon attacks"
        },
        "coinage": {
          "ref": "#dccCoinage",
          "type": "ref",
          "description": "Currency (cp, sp, gp)"
        },
        "warrior": {
          "ref": "#dccWarrior",
          "type": "ref",
          "description": "Warrior/Dwarf class features (deed die, mighty deeds)"
        },
        "halfling": {
          "ref": "#dccHalfling",
          "type": "ref",
          "description": "Halfling luck-sharing and dual wielding"
        },
        "identity": {
          "ref": "#dccIdentity",
          "type": "ref",
          "description": "Character identity (occupation, class, level, alignment)"
        },
        "abilities": {
          "ref": "#dccAbilities",
          "type": "ref",
          "description": "The six ability scores (STR, AGI, STA, INT, PER, LUK)"
        },
        "equipment": {
          "ref": "#dccEquipment",
          "type": "ref",
          "description": "Gear, treasure, and trade goods"
        },
        "languages": {
          "type": "string",
          "maxLength": 500,
          "description": "Languages known"
        },
        "abilitiesNotes": {
          "type": "string",
          "maxLength": 1000,
          "description": "Notes about special abilities, class features, and racial traits"
        }
      },
      "description": "Dungeon Crawl Classics RPG character sheet. Supports 0-level funnel characters through 10th level."
    },
    "dccThief": {
      "type": "object",
      "properties": {
        "skills": {
          "ref": "#dccThiefSkills",
          "type": "ref",
          "description": "Thief skill modifiers"
        },
        "backstab": {
          "type": "integer",
          "minimum": 0,
          "description": "Backstab damage die level (+1, +2, etc.)"
        },
        "alignment": {
          "type": "string",
          "maxLength": 20,
          "description": "Alignment (affects some skill targets)"
        },
        "luckyWeapon": {
          "type": "string",
          "maxLength": 100,
          "description": "Weapon type that luck applies to (one type only)"
        }
      },
      "description": "Thief class features and skills"
    },
    "dndStats": {
      "type": "object",
      "properties": {
        "hp": {
          "ref": "#hp",
          "type": "ref",
          "description": "Hit points (current, max, temp)"
        },
        "saves": {
          "ref": "#saves",
          "type": "ref",
          "description": "Saving throw modifiers"
        },
        "combat": {
          "ref": "#combat",
          "type": "ref",
          "description": "Combat stats (AC, speed, initiative, hit dice)"
        },
        "skills": {
          "ref": "#skills",
          "type": "ref",
          "description": "Skill modifiers"
        },
        "attacks": {
          "type": "array",
          "items": {
            "ref": "#attack",
            "type": "ref"
          },
          "maxLength": 20,
          "description": "Attack actions"
        },
        "coinage": {
          "ref": "#coinage",
          "type": "ref",
          "description": "Currency (cp, sp, ep, gp, pp)"
        },
        "features": {
          "type": "string",
          "maxLength": 5000,
          "description": "Class features, racial traits, and feats"
        },
        "identity": {
          "ref": "#identity",
          "type": "ref",
          "description": "Character identity (race, class, level, background)"
        },
        "passives": {
          "ref": "#passives",
          "type": "ref",
          "description": "Passive scores (Perception, Investigation, Insight)"
        },
        "abilities": {
          "ref": "#abilities",
          "type": "ref",
          "description": "The six ability scores (STR, DEX, CON, INT, WIS, CHA)"
        },
        "equipment": {
          "ref": "#equipment",
          "type": "ref",
          "description": "Gear and inventory"
        },
        "languages": {
          "type": "string",
          "maxLength": 500,
          "description": "Languages known"
        },
        "conditions": {
          "ref": "#conditions",
          "type": "ref",
          "description": "Status conditions (inspiration, exhaustion, death saves)"
        },
        "personality": {
          "ref": "#personality",
          "type": "ref",
          "description": "Traits, ideals, bonds, flaws, backstory"
        },
        "spellcasting": {
          "ref": "#spellcasting",
          "type": "ref",
          "description": "Spellcasting details (for casters)"
        },
        "proficiencies": {
          "type": "string",
          "maxLength": 1000,
          "description": "Armor, weapon, and tool proficiencies"
        }
      },
      "description": "D&D 5e character sheet. All sub-objects are optional."
    },
    "identity": {
      "type": "object",
      "properties": {
        "xp": {
          "type": "integer",
          "minimum": 0,
          "description": "Experience points"
        },
        "race": {
          "type": "string",
          "maxLength": 100,
          "description": "Race (e.g., Human, Elf, Dwarf)"
        },
        "class": {
          "type": "string",
          "maxLength": 100,
          "description": "Class and subclass (e.g., Fighter (Champion))"
        },
        "level": {
          "type": "integer",
          "minimum": 1,
          "description": "Character level"
        },
        "alignment": {
          "type": "string",
          "maxLength": 50,
          "description": "Alignment (e.g., Lawful Good)"
        },
        "background": {
          "type": "string",
          "maxLength": 100,
          "description": "Background (e.g., Soldier, Sage)"
        },
        "proficiency": {
          "type": "integer",
          "minimum": 0,
          "description": "Proficiency bonus"
        }
      },
      "description": "Character identity and progression"
    },
    "passives": {
      "type": "object",
      "properties": {
        "insight": {
          "type": "integer",
          "description": "Passive Insight"
        },
        "perception": {
          "type": "integer",
          "description": "Passive Perception"
        },
        "investigation": {
          "type": "integer",
          "description": "Passive Investigation"
        }
      },
      "description": "Passive scores (10 + skill modifier)"
    },
    "abilities": {
      "type": "object",
      "properties": {
        "cha": {
          "type": "integer",
          "maximum": 30,
          "minimum": 1,
          "description": "Charisma"
        },
        "con": {
          "type": "integer",
          "maximum": 30,
          "minimum": 1,
          "description": "Constitution"
        },
        "dex": {
          "type": "integer",
          "maximum": 30,
          "minimum": 1,
          "description": "Dexterity"
        },
        "int": {
          "type": "integer",
          "maximum": 30,
          "minimum": 1,
          "description": "Intelligence"
        },
        "str": {
          "type": "integer",
          "maximum": 30,
          "minimum": 1,
          "description": "Strength"
        },
        "wis": {
          "type": "integer",
          "maximum": 30,
          "minimum": 1,
          "description": "Wisdom"
        }
      },
      "description": "The six ability scores (1-30 per SRD)"
    },
    "dccAttack": {
      "type": "object",
      "required": [
        "name"
      ],
      "properties": {
        "name": {
          "type": "string",
          "maxLength": 100,
          "description": "Weapon name"
        },
        "type": {
          "type": "string",
          "maxLength": 20,
          "description": "Attack type (melee, ranged, etc.)"
        },
        "notes": {
          "type": "string",
          "maxLength": 200,
          "description": "Special properties (backstab, trained weapon, etc.)"
        },
        "range": {
          "type": "string",
          "maxLength": 30,
          "description": "Range (melee or distance)"
        },
        "damage": {
          "type": "string",
          "maxLength": 30,
          "description": "Damage dice (e.g., 1d8+2, 1d6+d3)"
        },
        "attackMod": {
          "type": "string",
          "maxLength": 30,
          "description": "Attack modifier (e.g., +2, d16+2 for deed die)"
        },
        "damageBonus": {
          "type": "string",
          "maxLength": 30,
          "description": "Damage bonus (e.g., +2, +d3 for deed die)"
        }
      },
      "description": "A weapon attack (includes deed die for warriors)"
    },
    "dccCleric": {
      "type": "object",
      "properties": {
        "deity": {
          "type": "string",
          "maxLength": 100,
          "description": "Deity or supernatural patron"
        },
        "unholy": {
          "type": "boolean",
          "description": "Serves a Chaotic deity (unholy instead of holy)"
        },
        "holySymbol": {
          "type": "string",
          "maxLength": 100,
          "description": "Holy symbol description"
        },
        "knownSpells": {
          "type": "array",
          "items": {
            "ref": "#dccClericSpell",
            "type": "ref"
          },
          "maxLength": 50,
          "description": "Known cleric spells"
        },
        "layOnHandsDie": {
          "type": "string",
          "maxLength": 10,
          "description": "Lay on hands die (e.g., d14, d16)"
        },
        "maxSpellLevel": {
          "type": "integer",
          "maximum": 5,
          "minimum": 1,
          "description": "Highest spell level accessible"
        },
        "spellCheckMod": {
          "type": "integer",
          "description": "Spell check modifier (PER mod + level)"
        },
        "turnUnholyDie": {
          "type": "string",
          "maxLength": 10,
          "description": "Turn unholy die (e.g., d14, d16)"
        },
        "disapprovalRange": {
          "type": "integer",
          "maximum": 20,
          "minimum": 1,
          "description": "Current disapproval range (starts at 1, accumulates)"
        },
        "disapprovalTable": {
          "type": "string",
          "maxLength": 100,
          "description": "Deity-specific disapproval table if any"
        }
      },
      "description": "Cleric spellcasting features"
    },
    "dccCombat": {
      "type": "object",
      "properties": {
        "ac": {
          "type": "integer",
          "minimum": 0,
          "description": "Armor Class (10 + armor + AGI mod + shield)"
        },
        "speed": {
          "type": "integer",
          "minimum": 0,
          "description": "Speed in feet (typically 30, Dwarves 20)"
        },
        "critDie": {
          "type": "string",
          "maxLength": 10,
          "description": "Critical hit die (e.g., d8, d12, d14)"
        },
        "actionDie": {
          "type": "string",
          "maxLength": 20,
          "description": "Primary action die (e.g., d20, d20+d14)"
        },
        "attackMod": {
          "type": "integer",
          "description": "Base attack modifier (level-based for non-warriors)"
        },
        "critTable": {
          "type": "string",
          "maxLength": 20,
          "description": "Critical hit table (I, II, III, IV, V)"
        },
        "fumbleDie": {
          "type": "string",
          "maxLength": 10,
          "description": "Fumble die (typically d4 for 0-level, varies by armor)"
        },
        "initiative": {
          "type": "integer",
          "description": "Initiative modifier (AGI mod)"
        }
      },
      "description": "Combat statistics"
    },
    "dccWizard": {
      "type": "object",
      "properties": {
        "patron": {
          "type": "string",
          "maxLength": 100,
          "description": "Supernatural patron (if any)"
        },
        "spellburn": {
          "ref": "#dccSpellburn",
          "type": "ref",
          "description": "Current spellburn status"
        },
        "corruption": {
          "type": "array",
          "items": {
            "ref": "#dccCorruption",
            "type": "ref"
          },
          "maxLength": 20,
          "description": "Corruption effects suffered (structured)"
        },
        "patronBond": {
          "type": "string",
          "maxLength": 500,
          "description": "Patron bond description and effects"
        },
        "knownSpells": {
          "type": "array",
          "items": {
            "ref": "#dccWizardSpell",
            "type": "ref"
          },
          "maxLength": 50,
          "description": "Known spells with mercurial magic effects"
        },
        "maxSpellLevel": {
          "type": "integer",
          "maximum": 5,
          "minimum": 1,
          "description": "Highest spell level accessible"
        },
        "spellCheckMod": {
          "type": "integer",
          "description": "Spell check modifier (INT mod + level)"
        },
        "corruptionText": {
          "type": "string",
          "maxLength": 2000,
          "description": "Corruption effects as free-form text"
        }
      },
      "description": "Wizard and Elf spellcasting features"
    },
    "equipment": {
      "type": "object",
      "properties": {
        "gear": {
          "type": "string",
          "maxLength": 2000,
          "description": "Other equipment"
        },
        "armor": {
          "type": "string",
          "maxLength": 200,
          "description": "Armor"
        },
        "weapons": {
          "type": "string",
          "maxLength": 500,
          "description": "Weapons"
        },
        "treasure": {
          "type": "string",
          "maxLength": 1000,
          "description": "Valuables and treasure"
        }
      },
      "description": "Gear and inventory"
    },
    "rmmzStats": {
      "type": "object",
      "properties": {
        "hp": {
          "type": "integer",
          "minimum": 0,
          "description": "Current HP"
        },
        "mp": {
          "type": "integer",
          "minimum": 0,
          "description": "Current MP"
        },
        "tp": {
          "type": "integer",
          "minimum": 0,
          "description": "Current TP"
        },
        "xp": {
          "type": "integer",
          "minimum": 0,
          "description": "Experience"
        },
        "agi": {
          "type": "integer",
          "minimum": 1,
          "description": "Agility"
        },
        "atk": {
          "type": "integer",
          "minimum": 1,
          "description": "Attack"
        },
        "cri": {
          "type": "integer",
          "maximum": 100,
          "minimum": 0,
          "description": "Critical %"
        },
        "def": {
          "type": "integer",
          "minimum": 1,
          "description": "Defense"
        },
        "eva": {
          "type": "integer",
          "maximum": 100,
          "minimum": 0,
          "description": "Evasion %"
        },
        "hit": {
          "type": "integer",
          "maximum": 100,
          "minimum": 0,
          "description": "Hit Rate %"
        },
        "luk": {
          "type": "integer",
          "minimum": 1,
          "description": "Luck"
        },
        "mat": {
          "type": "integer",
          "minimum": 1,
          "description": "Magic Attack"
        },
        "mdf": {
          "type": "integer",
          "minimum": 1,
          "description": "Magic Defense"
        },
        "class": {
          "type": "string",
          "maxLength": 100,
          "description": "Class"
        },
        "level": {
          "type": "integer",
          "minimum": 1,
          "description": "Level"
        },
        "maxHp": {
          "type": "integer",
          "minimum": 1,
          "description": "Max HP"
        },
        "maxMp": {
          "type": "integer",
          "minimum": 0,
          "description": "Max MP"
        },
        "maxTp": {
          "type": "integer",
          "minimum": 0,
          "description": "Max TP"
        }
      },
      "description": "RPG Maker MZ character parameters"
    },
    "spellList": {
      "type": "object",
      "properties": {
        "l1": {
          "type": "array",
          "items": {
            "type": "string",
            "maxLength": 100
          },
          "maxLength": 30,
          "description": "1st-level spells"
        },
        "l2": {
          "type": "array",
          "items": {
            "type": "string",
            "maxLength": 100
          },
          "maxLength": 30,
          "description": "2nd-level spells"
        },
        "l3": {
          "type": "array",
          "items": {
            "type": "string",
            "maxLength": 100
          },
          "maxLength": 30,
          "description": "3rd-level spells"
        },
        "l4": {
          "type": "array",
          "items": {
            "type": "string",
            "maxLength": 100
          },
          "maxLength": 30,
          "description": "4th-level spells"
        },
        "l5": {
          "type": "array",
          "items": {
            "type": "string",
            "maxLength": 100
          },
          "maxLength": 30,
          "description": "5th-level spells"
        },
        "l6": {
          "type": "array",
          "items": {
            "type": "string",
            "maxLength": 100
          },
          "maxLength": 20,
          "description": "6th-level spells"
        },
        "l7": {
          "type": "array",
          "items": {
            "type": "string",
            "maxLength": 100
          },
          "maxLength": 20,
          "description": "7th-level spells"
        },
        "l8": {
          "type": "array",
          "items": {
            "type": "string",
            "maxLength": 100
          },
          "maxLength": 20,
          "description": "8th-level spells"
        },
        "l9": {
          "type": "array",
          "items": {
            "type": "string",
            "maxLength": 100
          },
          "maxLength": 20,
          "description": "9th-level spells"
        },
        "cantrips": {
          "type": "array",
          "items": {
            "type": "string",
            "maxLength": 100
          },
          "maxLength": 20,
          "description": "Cantrips (at-will)"
        }
      },
      "description": "Spells organized by level"
    },
    "spellslot": {
      "type": "object",
      "required": [
        "level",
        "total"
      ],
      "properties": {
        "used": {
          "type": "integer",
          "minimum": 0,
          "description": "Slots used"
        },
        "level": {
          "type": "integer",
          "maximum": 9,
          "minimum": 1,
          "description": "Spell level"
        },
        "total": {
          "type": "integer",
          "minimum": 0,
          "description": "Total slots"
        }
      },
      "description": "Spell slot entry"
    },
    "conditions": {
      "type": "object",
      "properties": {
        "deathSaves": {
          "ref": "#deathSaves",
          "type": "ref",
          "description": "Death saving throw progress"
        },
        "exhaustion": {
          "type": "integer",
          "maximum": 6,
          "minimum": 0,
          "description": "Exhaustion level (0-6)"
        },
        "inspiration": {
          "type": "boolean",
          "description": "Has inspiration"
        }
      },
      "description": "Status conditions and effects"
    },
    "customStat": {
      "type": "object",
      "required": [
        "name",
        "value"
      ],
      "properties": {
        "max": {
          "type": "integer",
          "description": "Maximum (optional)"
        },
        "min": {
          "type": "integer",
          "description": "Minimum (optional)"
        },
        "name": {
          "type": "string",
          "maxLength": 50,
          "description": "Stat name"
        },
        "value": {
          "type": "integer",
          "description": "Value"
        },
        "category": {
          "type": "string",
          "maxLength": 50,
          "description": "Category (optional)"
        }
      },
      "description": "A custom stat"
    },
    "dccCoinage": {
      "type": "object",
      "properties": {
        "cp": {
          "type": "integer",
          "minimum": 0,
          "description": "Copper pieces"
        },
        "gp": {
          "type": "integer",
          "minimum": 0,
          "description": "Gold pieces"
        },
        "sp": {
          "type": "integer",
          "minimum": 0,
          "description": "Silver pieces"
        }
      },
      "description": "DCC uses cp, sp, gp (10cp = 1sp, 10sp = 1gp)"
    },
    "dccWarrior": {
      "type": "object",
      "properties": {
        "deedDie": {
          "type": "string",
          "maxLength": 10,
          "description": "Current deed die (d3, d4, d5, d6, d7, d8, d10+d3, etc.)"
        },
        "smellGold": {
          "type": "boolean",
          "description": "Can smell gold/gems (Dwarves)"
        },
        "shieldBash": {
          "type": "boolean",
          "description": "Can use shield bash (Dwarves)"
        },
        "infravision": {
          "type": "integer",
          "minimum": 0,
          "description": "Infravision range in feet (Dwarves: 60)"
        },
        "luckyWeapon": {
          "type": "string",
          "maxLength": 100,
          "description": "Weapon type luck modifier applies to"
        },
        "mightyDeeds": {
          "type": "array",
          "items": {
            "type": "string",
            "maxLength": 200
          },
          "maxLength": 20,
          "description": "Signature mighty deeds of arms"
        },
        "undergroundSkills": {
          "type": "integer",
          "minimum": 0,
          "description": "Underground detection bonus (Dwarves: equal to level)"
        }
      },
      "description": "Warrior and Dwarf class features"
    },
    "deathSaves": {
      "type": "object",
      "properties": {
        "failures": {
          "type": "integer",
          "maximum": 3,
          "minimum": 0,
          "description": "Failures (0-3)"
        },
        "successes": {
          "type": "integer",
          "maximum": 3,
          "minimum": 0,
          "description": "Successes (0-3)"
        }
      },
      "description": "Death saving throw successes and failures"
    },
    "customStats": {
      "type": "object",
      "properties": {
        "stats": {
          "type": "array",
          "items": {
            "ref": "#customStat",
            "type": "ref"
          },
          "description": "Custom stat entries"
        },
        "systemName": {
          "type": "string",
          "maxLength": 100,
          "description": "System name"
        },
        "systemVersion": {
          "type": "string",
          "maxLength": 50,
          "description": "Version"
        }
      },
      "description": "User-defined custom stat system"
    },
    "dccHalfling": {
      "type": "object",
      "properties": {
        "infravision": {
          "type": "integer",
          "minimum": 0,
          "description": "Infravision range in feet (30)"
        },
        "luckyWeapon": {
          "type": "string",
          "maxLength": 100,
          "description": "Weapon type luck modifier applies to"
        },
        "sneakAndHide": {
          "type": "integer",
          "description": "Bonus to sneak/hide when in natural environment"
        },
        "goodLuckCharm": {
          "type": "boolean",
          "description": "Can spend luck to aid nearby allies"
        },
        "luckSpentOnAllies": {
          "type": "integer",
          "minimum": 0,
          "description": "Total luck points spent helping allies"
        },
        "twoWeaponFighting": {
          "type": "boolean",
          "description": "Can dual-wield without penalty"
        }
      },
      "description": "Halfling class features"
    },
    "dccIdentity": {
      "type": "object",
      "properties": {
        "xp": {
          "type": "integer",
          "minimum": 0,
          "description": "Experience points"
        },
        "class": {
          "type": "string",
          "maxLength": 100,
          "description": "Class (Warrior, Wizard, Cleric, Thief, Elf, Dwarf, Halfling)"
        },
        "level": {
          "type": "integer",
          "maximum": 10,
          "minimum": 0,
          "description": "Character level (0 for funnel characters)"
        },
        "title": {
          "type": "string",
          "maxLength": 100,
          "description": "Level title (e.g., Squire, Cutpurse, Acolyte)"
        },
        "alignment": {
          "type": "string",
          "maxLength": 20,
          "description": "Alignment (Lawful, Neutral, Chaotic)"
        },
        "occupation": {
          "type": "string",
          "maxLength": 100,
          "description": "0-level occupation (e.g., Blacksmith, Farmer)"
        }
      },
      "description": "DCC character identity and progression"
    },
    "personality": {
      "type": "object",
      "properties": {
        "bonds": {
          "type": "string",
          "maxLength": 500,
          "description": "Bonds"
        },
        "flaws": {
          "type": "string",
          "maxLength": 500,
          "description": "Flaws"
        },
        "ideals": {
          "type": "string",
          "maxLength": 500,
          "description": "Ideals"
        },
        "traits": {
          "type": "string",
          "maxLength": 1000,
          "description": "Personality traits"
        },
        "backstory": {
          "type": "string",
          "maxLength": 5000,
          "description": "Backstory"
        }
      },
      "description": "Personality and backstory"
    },
    "dccAbilities": {
      "type": "object",
      "properties": {
        "agi": {
          "type": "integer",
          "maximum": 24,
          "minimum": 1,
          "description": "Agility"
        },
        "int": {
          "type": "integer",
          "maximum": 24,
          "minimum": 1,
          "description": "Intelligence"
        },
        "luk": {
          "type": "integer",
          "maximum": 24,
          "minimum": 1,
          "description": "Luck (can be permanently burned)"
        },
        "per": {
          "type": "integer",
          "maximum": 24,
          "minimum": 1,
          "description": "Personality"
        },
        "sta": {
          "type": "integer",
          "maximum": 24,
          "minimum": 1,
          "description": "Stamina"
        },
        "str": {
          "type": "integer",
          "maximum": 24,
          "minimum": 1,
          "description": "Strength"
        },
        "agiBase": {
          "type": "integer",
          "maximum": 24,
          "minimum": 1,
          "description": "Agility base (before spellburn)"
        },
        "staBase": {
          "type": "integer",
          "maximum": 24,
          "minimum": 1,
          "description": "Stamina base (before spellburn)"
        },
        "strBase": {
          "type": "integer",
          "maximum": 24,
          "minimum": 1,
          "description": "Strength base (before spellburn)"
        }
      },
      "description": "DCC ability scores (3-18 standard, can be modified by corruption/spellburn)"
    },
    "dccEquipment": {
      "type": "object",
      "properties": {
        "gear": {
          "type": "string",
          "maxLength": 2000,
          "description": "Other equipment"
        },
        "armor": {
          "type": "string",
          "maxLength": 200,
          "description": "Armor worn (affects fumble die)"
        },
        "shield": {
          "type": "string",
          "maxLength": 100,
          "description": "Shield (if any)"
        },
        "weapons": {
          "type": "string",
          "maxLength": 500,
          "description": "Weapons carried"
        },
        "treasure": {
          "type": "string",
          "maxLength": 1000,
          "description": "Valuables and treasure"
        },
        "tradeGoods": {
          "type": "string",
          "maxLength": 500,
          "description": "Trade goods from occupation"
        },
        "armorCheckPenalty": {
          "type": "integer",
          "minimum": 0,
          "description": "Armor check penalty (affects skills)"
        }
      },
      "description": "Equipment and inventory"
    },
    "dccSpellburn": {
      "type": "object",
      "properties": {
        "agiBurned": {
          "type": "integer",
          "minimum": 0,
          "description": "Agility points currently burned"
        },
        "staBurned": {
          "type": "integer",
          "minimum": 0,
          "description": "Stamina points currently burned"
        },
        "strBurned": {
          "type": "integer",
          "minimum": 0,
          "description": "Strength points currently burned"
        },
        "recoveryRate": {
          "type": "integer",
          "minimum": 0,
          "description": "Points recovered per day"
        }
      },
      "description": "Current spellburn (temporary ability score sacrifice)"
    },
    "reverieStats": {
      "type": "object",
      "properties": {
        "octant": {
          "type": "string",
          "maxLength": 50,
          "description": "Philosophical octant",
          "knownValues": [
            "adaptive",
            "chaotic",
            "prepared",
            "intended",
            "contented",
            "assertive",
            "ordered",
            "guarded",
            "equilibrium",
            "singling",
            "confused"
          ]
        },
        "entropy": {
          "type": "integer",
          "maximum": 100,
          "minimum": 0,
          "description": "Entropy (0-100)"
        },
        "liberty": {
          "type": "integer",
          "maximum": 100,
          "minimum": 0,
          "description": "Liberty (0-100)"
        },
        "skeptic": {
          "type": "integer",
          "maximum": 100,
          "minimum": 0,
          "description": "Skeptic (0-100)"
        },
        "oblivion": {
          "type": "integer",
          "maximum": 100,
          "minimum": 0,
          "description": "Oblivion (0-100)"
        },
        "authority": {
          "type": "integer",
          "maximum": 100,
          "minimum": 0,
          "description": "Authority (0-100)"
        },
        "receptive": {
          "type": "integer",
          "maximum": 100,
          "minimum": 0,
          "description": "Receptive (0-100)"
        }
      },
      "description": "Reverie House philosophical alignment"
    },
    "spellcasting": {
      "type": "object",
      "properties": {
        "dc": {
          "type": "integer",
          "minimum": 1,
          "description": "Spell save DC"
        },
        "slots": {
          "type": "array",
          "items": {
            "ref": "#spellslot",
            "type": "ref"
          },
          "maxLength": 9,
          "description": "Spell slots by level"
        },
        "attack": {
          "type": "integer",
          "description": "Spell attack bonus"
        },
        "spells": {
          "ref": "#spellList",
          "type": "ref",
          "description": "Known/prepared spells by level"
        },
        "ability": {
          "type": "string",
          "maxLength": 3,
          "description": "Spellcasting ability (INT, WIS, CHA)"
        }
      },
      "description": "Spellcasting details"
    },
    "dccCorruption": {
      "type": "object",
      "properties": {
        "type": {
          "type": "string",
          "maxLength": 20,
          "description": "Corruption severity (minor, major, greater)"
        },
        "effect": {
          "type": "string",
          "maxLength": 500,
          "description": "Description of the corruption"
        },
        "source": {
          "type": "string",
          "maxLength": 100,
          "description": "What spell caused this corruption"
        },
        "permanent": {
          "type": "boolean",
          "description": "Whether this corruption is permanent"
        }
      },
      "description": "A corruption effect from failed spell checks"
    },
    "dccClericSpell": {
      "type": "object",
      "required": [
        "name",
        "level"
      ],
      "properties": {
        "name": {
          "type": "string",
          "maxLength": 100,
          "description": "Spell name"
        },
        "level": {
          "type": "integer",
          "maximum": 5,
          "minimum": 1,
          "description": "Spell level"
        },
        "notes": {
          "type": "string",
          "maxLength": 500,
          "description": "Additional spell notes"
        },
        "sinful": {
          "type": "boolean",
          "description": "Casting may cause additional disapproval"
        }
      },
      "description": "A cleric spell"
    },
    "dccThiefSkills": {
      "type": "object",
      "properties": {
        "backstab": {
          "type": "integer",
          "description": "Backstab attack bonus"
        },
        "findTrap": {
          "type": "integer",
          "description": "Find trap bonus"
        },
        "pickLock": {
          "type": "integer",
          "description": "Pick lock bonus"
        },
        "pickPocket": {
          "type": "integer",
          "description": "Pick pocket bonus"
        },
        "disableTrap": {
          "type": "integer",
          "description": "Disable trap bonus"
        },
        "disguiseSelf": {
          "type": "integer",
          "description": "Disguise self bonus"
        },
        "handlePoison": {
          "type": "integer",
          "description": "Handle poison bonus"
        },
        "forgeDocument": {
          "type": "integer",
          "description": "Forge document bonus"
        },
        "hideInShadows": {
          "type": "integer",
          "description": "Hide in shadows bonus"
        },
        "readLanguages": {
          "type": "integer",
          "description": "Read languages bonus"
        },
        "sneakSilently": {
          "type": "integer",
          "description": "Sneak silently bonus"
        },
        "climbSheerSurfaces": {
          "type": "integer",
          "description": "Climb sheer surfaces bonus"
        },
        "castSpellFromScroll": {
          "type": "integer",
          "description": "Cast spell from scroll bonus"
        }
      },
      "description": "Thief skill bonuses (roll d20 + skill vs target)"
    },
    "dccWizardSpell": {
      "type": "object",
      "required": [
        "name",
        "level"
      ],
      "properties": {
        "lost": {
          "type": "boolean",
          "description": "Spell is currently lost (must be re-learned)"
        },
        "name": {
          "type": "string",
          "maxLength": 100,
          "description": "Spell name"
        },
        "level": {
          "type": "integer",
          "maximum": 5,
          "minimum": 1,
          "description": "Spell level"
        },
        "notes": {
          "type": "string",
          "maxLength": 500,
          "description": "Additional spell notes"
        },
        "mercurialRoll": {
          "type": "integer",
          "maximum": 100,
          "minimum": 1,
          "description": "The d100 roll for mercurial magic"
        },
        "mercurialMagic": {
          "type": "string",
          "maxLength": 500,
          "description": "Unique mercurial magic effect (d100 roll result)"
        }
      },
      "description": "A wizard spell with mercurial magic effect"
    },
    "playtopiaStats": {
      "type": "object",
      "properties": {
        "class": {
          "type": "string",
          "maxLength": 50,
          "description": "Character class",
          "knownValues": [
            "Artist",
            "Coder",
            "Gamer",
            "Suit",
            "Weirdo"
          ]
        },
        "level": {
          "type": "integer",
          "minimum": 1,
          "description": "Character level"
        },
        "health": {
          "type": "integer",
          "maximum": 3,
          "minimum": 0,
          "description": "Health (0-3 hearts)"
        },
        "traits": {
          "type": "array",
          "items": {
            "type": "string",
            "maxLength": 50
          },
          "maxLength": 16,
          "description": "Personal trait names (e.g. Empathic, Courageous, …)"
        },
        "alignment": {
          "type": "string",
          "maxLength": 20,
          "description": "Character alignment",
          "knownValues": [
            "Ordered",
            "Neutral",
            "Chaotic"
          ]
        },
        "bestFriend": {
          "type": "string",
          "maxLength": 253,
          "description": "Best friend (Bluesky handle)"
        },
        "faveColour": {
          "type": "string",
          "maxLength": 7,
          "description": "Favourite colour hex code"
        },
        "worstEnemy": {
          "type": "string",
          "maxLength": 253,
          "description": "Worst enemy (Bluesky handle)"
        },
        "catchphrase": {
          "type": "string",
          "maxLength": 200,
          "description": "Character catchphrase"
        }
      },
      "description": "Playtopia Quest character sheet"
    }
  },
  "$type": "com.atproto.lexicon.schema",
  "lexicon": 1,
  "description": "RPG character statistics for multiple game systems."
}

Validate Record

Validate a record against actor.rpg.stats

Validation Options
Treat any remaining unresolved references as valid

Metadata

DID
did:plc:kwgllf365cwmxbnxitx4pjdj
CID
bafyreibcbm7yvqdvkqoey2mqv7hztnq22wyllp5ccc4rpdk235wvk77heu
Indexed At
2026-03-23 20:16 UTC
AT-URI
at://did:plc:kwgllf365cwmxbnxitx4pjdj/com.atproto.lexicon.schema/actor.rpg.stats

Version History (3 versions)

Lexicon Garden

@