{ "format": "ttrpg-system", "formatVersion": 1, "id": "dnd5e-srd", "name": "D&D 5e (SRD scaffold)", "description": "Fan mechanical scaffold inspired by D&D 5e SRD. Spell compendium filled separately from open sources / user import.", "edition": "5e", "schemaVersion": 1, "revision": 1, "bricks": { "attributes": [ { "key": "str", "label": "Strength", "scale": "numeric", "min": 8, "max": 15, "default": 10, "category": "physical" }, { "key": "dex", "label": "Dexterity", "scale": "numeric", "min": 8, "max": 15, "default": 10, "category": "physical" }, { "key": "con", "label": "Constitution", "scale": "numeric", "min": 8, "max": 15, "default": 10, "category": "physical" }, { "key": "int", "label": "Intelligence", "scale": "numeric", "min": 8, "max": 15, "default": 10, "category": "mental" }, { "key": "wis", "label": "Wisdom", "scale": "numeric", "min": 8, "max": 15, "default": 10, "category": "mental" }, { "key": "cha", "label": "Charisma", "scale": "numeric", "min": 8, "max": 15, "default": 10, "category": "social" } ], "skills": [ { "key": "athletics", "label": "Athletics", "linkedAttribute": "str", "scale": "numeric", "default": 0 }, { "key": "acrobatics", "label": "Acrobatics", "linkedAttribute": "dex", "scale": "numeric", "default": 0 }, { "key": "stealth", "label": "Stealth", "linkedAttribute": "dex", "scale": "numeric", "default": 0 }, { "key": "arcana", "label": "Arcana", "linkedAttribute": "int", "scale": "numeric", "default": 0 }, { "key": "perception", "label": "Perception", "linkedAttribute": "wis", "scale": "numeric", "default": 0 }, { "key": "persuasion", "label": "Persuasion", "linkedAttribute": "cha", "scale": "numeric", "default": 0 } ], "resources": [ { "key": "hp", "label": "Hit Points", "min": 0, "default": 10, "track": true }, { "key": "hpMax", "label": "HP Max", "min": 1, "default": 10 }, { "key": "hitDice", "label": "Hit Dice", "min": 0, "default": 1 } ], "derived": [ { "key": "strMod", "label": "STR Mod", "formula": "floor((attr.str - 10) / 2)", "dependsOn": ["attr.str"] }, { "key": "dexMod", "label": "DEX Mod", "formula": "floor((attr.dex - 10) / 2)", "dependsOn": ["attr.dex"] }, { "key": "conMod", "label": "CON Mod", "formula": "floor((attr.con - 10) / 2)", "dependsOn": ["attr.con"] }, { "key": "intMod", "label": "INT Mod", "formula": "floor((attr.int - 10) / 2)", "dependsOn": ["attr.int"] }, { "key": "wisMod", "label": "WIS Mod", "formula": "floor((attr.wis - 10) / 2)", "dependsOn": ["attr.wis"] }, { "key": "chaMod", "label": "CHA Mod", "formula": "floor((attr.cha - 10) / 2)", "dependsOn": ["attr.cha"] }, { "key": "initiative", "label": "Initiative", "formula": "derived.dexMod", "dependsOn": ["derived.dexMod"] } ], "traits": [ { "key": "race", "label": "Species" }, { "key": "class", "label": "Class" }, { "key": "background", "label": "Background" } ], "progression": { "label": "Class features", "graph": { "nodes": [ { "id": "l1", "label": "Level 1 Feature", "kind": "feat", "position": { "x": 0, "y": 0 } }, { "id": "l2", "label": "Level 2 Feature", "kind": "feat", "position": { "x": 220, "y": 0 } } ], "edges": [{ "id": "e1", "source": "l1", "target": "l2", "kind": "prerequisite" }] } } }, "creationRules": [ { "id": "pb", "type": "point_buy", "appliesTo": "attribute", "params": { "budget": 27, "keys": ["str", "dex", "con", "int", "wis", "cha"], "costs": { "8": 0, "9": 1, "10": 2, "11": 3, "12": 4, "13": 5, "14": 7, "15": 9 } } }, { "id": "roll", "type": "roll", "appliesTo": "attribute", "params": { "expr": "4d6dl", "keys": ["str", "dex", "con", "int", "wis", "cha"], "min": 3, "max": 18 } } ], "sheetLayout": { "pageSize": "fluid", "grid": { "size": 8 }, "pages": [ { "id": "main", "label": "Main", "widgets": [ { "id": "title", "type": "section", "frame": { "x": 16, "y": 16, "w": 320, "h": 36 }, "props": { "title": "D&D 5e Character" } }, { "id": "str", "type": "number", "bind": "attr.str", "frame": { "x": 16, "y": 64, "w": 90, "h": 70 }, "props": { "label": "STR" } }, { "id": "strMod", "type": "modBadge", "bind": "derived.strMod", "frame": { "x": 16, "y": 140, "w": 90, "h": 56 }, "props": { "label": "Mod" } }, { "id": "dex", "type": "number", "bind": "attr.dex", "frame": { "x": 116, "y": 64, "w": 90, "h": 70 }, "props": { "label": "DEX" } }, { "id": "con", "type": "number", "bind": "attr.con", "frame": { "x": 216, "y": 64, "w": 90, "h": 70 }, "props": { "label": "CON" } }, { "id": "int", "type": "number", "bind": "attr.int", "frame": { "x": 316, "y": 64, "w": 90, "h": 70 }, "props": { "label": "INT" } }, { "id": "wis", "type": "number", "bind": "attr.wis", "frame": { "x": 416, "y": 64, "w": 90, "h": 70 }, "props": { "label": "WIS" } }, { "id": "cha", "type": "number", "bind": "attr.cha", "frame": { "x": 516, "y": 64, "w": 90, "h": 70 }, "props": { "label": "CHA" } }, { "id": "hp", "type": "track", "bind": "resource.hp", "frame": { "x": 16, "y": 220, "w": 240, "h": 80 }, "props": { "label": "HP", "max": 30 } }, { "id": "skills", "type": "skillList", "frame": { "x": 280, "y": 220, "w": 320, "h": 260 } }, { "id": "notes", "type": "notes", "bind": "meta.notes", "frame": { "x": 16, "y": 320, "w": 240, "h": 160 } } ] } ] }, "compendium": { "spells": [ { "id": "light", "name": "Light", "level": 0, "school": "evocation", "source": "SRD", "description": "Placeholder SRD cantrip stub — replace via dnd.su PHB import pipeline." }, { "id": "mage-armor", "name": "Mage Armor", "level": 1, "school": "abjuration", "source": "SRD", "description": "Placeholder SRD spell stub." } ] } }