Initial TTRPG character meta-builder with visual sheet editor.
Offline Electron app seeds 10 system presets, supports create-from-scratch designer with palette/drag/resize/bricks, and exports .ttrpg-system.json for the player. Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
@@ -0,0 +1,177 @@
|
||||
{
|
||||
"format": "ttrpg-system",
|
||||
"formatVersion": 1,
|
||||
"id": "alien",
|
||||
"name": "Alien RPG",
|
||||
"description": "Year Zero stress and career. Fan mechanical scaffold.",
|
||||
"edition": "fan",
|
||||
"schemaVersion": 1,
|
||||
"revision": 1,
|
||||
"bricks": {
|
||||
"attributes": [
|
||||
{
|
||||
"key": "str",
|
||||
"label": "STR",
|
||||
"scale": "numeric",
|
||||
"min": 1,
|
||||
"max": 10,
|
||||
"default": 2
|
||||
},
|
||||
{
|
||||
"key": "dex",
|
||||
"label": "DEX",
|
||||
"scale": "numeric",
|
||||
"min": 1,
|
||||
"max": 10,
|
||||
"default": 2
|
||||
},
|
||||
{
|
||||
"key": "mind",
|
||||
"label": "Mind",
|
||||
"scale": "numeric",
|
||||
"min": 1,
|
||||
"max": 10,
|
||||
"default": 2
|
||||
}
|
||||
],
|
||||
"resources": [
|
||||
{
|
||||
"key": "hp",
|
||||
"label": "HP",
|
||||
"min": 0,
|
||||
"default": 10,
|
||||
"track": true
|
||||
}
|
||||
],
|
||||
"derived": [
|
||||
{
|
||||
"key": "strMod",
|
||||
"label": "STR Mod",
|
||||
"formula": "attr.str",
|
||||
"dependsOn": [
|
||||
"attr.str"
|
||||
]
|
||||
}
|
||||
],
|
||||
"progression": {
|
||||
"label": "Features",
|
||||
"graph": {
|
||||
"nodes": [
|
||||
{
|
||||
"id": "n1",
|
||||
"label": "Start",
|
||||
"kind": "feat",
|
||||
"position": {
|
||||
"x": 0,
|
||||
"y": 0
|
||||
}
|
||||
},
|
||||
{
|
||||
"id": "n2",
|
||||
"label": "Advance",
|
||||
"kind": "feat",
|
||||
"position": {
|
||||
"x": 200,
|
||||
"y": 0
|
||||
}
|
||||
}
|
||||
],
|
||||
"edges": [
|
||||
{
|
||||
"id": "e1",
|
||||
"source": "n1",
|
||||
"target": "n2",
|
||||
"kind": "prerequisite"
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
},
|
||||
"creationRules": [
|
||||
{
|
||||
"id": "arr",
|
||||
"type": "array",
|
||||
"appliesTo": "attribute",
|
||||
"params": {
|
||||
"array": [
|
||||
3,
|
||||
2,
|
||||
2
|
||||
],
|
||||
"keys": [
|
||||
"str",
|
||||
"dex",
|
||||
"mind"
|
||||
]
|
||||
}
|
||||
}
|
||||
],
|
||||
"sheetLayout": {
|
||||
"pageSize": "fluid",
|
||||
"grid": {
|
||||
"size": 8
|
||||
},
|
||||
"pages": [
|
||||
{
|
||||
"id": "main",
|
||||
"label": "Main",
|
||||
"widgets": [
|
||||
{
|
||||
"id": "t",
|
||||
"type": "section",
|
||||
"frame": {
|
||||
"x": 16,
|
||||
"y": 16,
|
||||
"w": 280,
|
||||
"h": 36
|
||||
},
|
||||
"props": {
|
||||
"title": "Alien RPG"
|
||||
}
|
||||
},
|
||||
{
|
||||
"id": "str",
|
||||
"type": "dots",
|
||||
"bind": "attr.str",
|
||||
"frame": {
|
||||
"x": 16,
|
||||
"y": 64,
|
||||
"w": 160,
|
||||
"h": 70
|
||||
},
|
||||
"props": {
|
||||
"label": "STR",
|
||||
"max": 5
|
||||
}
|
||||
},
|
||||
{
|
||||
"id": "hp",
|
||||
"type": "track",
|
||||
"bind": "resource.hp",
|
||||
"frame": {
|
||||
"x": 200,
|
||||
"y": 64,
|
||||
"w": 200,
|
||||
"h": 80
|
||||
},
|
||||
"props": {
|
||||
"label": "HP",
|
||||
"max": 20
|
||||
}
|
||||
},
|
||||
{
|
||||
"id": "notes",
|
||||
"type": "notes",
|
||||
"bind": "meta.notes",
|
||||
"frame": {
|
||||
"x": 16,
|
||||
"y": 160,
|
||||
"w": 380,
|
||||
"h": 120
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,177 @@
|
||||
{
|
||||
"format": "ttrpg-system",
|
||||
"formatVersion": 1,
|
||||
"id": "bitd",
|
||||
"name": "Blades in the Dark",
|
||||
"description": "Action ratings, stress, harm, clocks. Fan mechanical scaffold.",
|
||||
"edition": "fan",
|
||||
"schemaVersion": 1,
|
||||
"revision": 1,
|
||||
"bricks": {
|
||||
"attributes": [
|
||||
{
|
||||
"key": "str",
|
||||
"label": "STR",
|
||||
"scale": "numeric",
|
||||
"min": 1,
|
||||
"max": 10,
|
||||
"default": 2
|
||||
},
|
||||
{
|
||||
"key": "dex",
|
||||
"label": "DEX",
|
||||
"scale": "numeric",
|
||||
"min": 1,
|
||||
"max": 10,
|
||||
"default": 2
|
||||
},
|
||||
{
|
||||
"key": "mind",
|
||||
"label": "Mind",
|
||||
"scale": "numeric",
|
||||
"min": 1,
|
||||
"max": 10,
|
||||
"default": 2
|
||||
}
|
||||
],
|
||||
"resources": [
|
||||
{
|
||||
"key": "hp",
|
||||
"label": "HP",
|
||||
"min": 0,
|
||||
"default": 10,
|
||||
"track": true
|
||||
}
|
||||
],
|
||||
"derived": [
|
||||
{
|
||||
"key": "strMod",
|
||||
"label": "STR Mod",
|
||||
"formula": "attr.str",
|
||||
"dependsOn": [
|
||||
"attr.str"
|
||||
]
|
||||
}
|
||||
],
|
||||
"progression": {
|
||||
"label": "Features",
|
||||
"graph": {
|
||||
"nodes": [
|
||||
{
|
||||
"id": "n1",
|
||||
"label": "Start",
|
||||
"kind": "feat",
|
||||
"position": {
|
||||
"x": 0,
|
||||
"y": 0
|
||||
}
|
||||
},
|
||||
{
|
||||
"id": "n2",
|
||||
"label": "Advance",
|
||||
"kind": "feat",
|
||||
"position": {
|
||||
"x": 200,
|
||||
"y": 0
|
||||
}
|
||||
}
|
||||
],
|
||||
"edges": [
|
||||
{
|
||||
"id": "e1",
|
||||
"source": "n1",
|
||||
"target": "n2",
|
||||
"kind": "prerequisite"
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
},
|
||||
"creationRules": [
|
||||
{
|
||||
"id": "arr",
|
||||
"type": "array",
|
||||
"appliesTo": "attribute",
|
||||
"params": {
|
||||
"array": [
|
||||
3,
|
||||
2,
|
||||
2
|
||||
],
|
||||
"keys": [
|
||||
"str",
|
||||
"dex",
|
||||
"mind"
|
||||
]
|
||||
}
|
||||
}
|
||||
],
|
||||
"sheetLayout": {
|
||||
"pageSize": "fluid",
|
||||
"grid": {
|
||||
"size": 8
|
||||
},
|
||||
"pages": [
|
||||
{
|
||||
"id": "main",
|
||||
"label": "Main",
|
||||
"widgets": [
|
||||
{
|
||||
"id": "t",
|
||||
"type": "section",
|
||||
"frame": {
|
||||
"x": 16,
|
||||
"y": 16,
|
||||
"w": 280,
|
||||
"h": 36
|
||||
},
|
||||
"props": {
|
||||
"title": "Blades in the Dark"
|
||||
}
|
||||
},
|
||||
{
|
||||
"id": "str",
|
||||
"type": "dots",
|
||||
"bind": "attr.str",
|
||||
"frame": {
|
||||
"x": 16,
|
||||
"y": 64,
|
||||
"w": 160,
|
||||
"h": 70
|
||||
},
|
||||
"props": {
|
||||
"label": "STR",
|
||||
"max": 5
|
||||
}
|
||||
},
|
||||
{
|
||||
"id": "hp",
|
||||
"type": "track",
|
||||
"bind": "resource.hp",
|
||||
"frame": {
|
||||
"x": 200,
|
||||
"y": 64,
|
||||
"w": 200,
|
||||
"h": 80
|
||||
},
|
||||
"props": {
|
||||
"label": "HP",
|
||||
"max": 20
|
||||
}
|
||||
},
|
||||
{
|
||||
"id": "notes",
|
||||
"type": "notes",
|
||||
"bind": "meta.notes",
|
||||
"frame": {
|
||||
"x": 16,
|
||||
"y": 160,
|
||||
"w": 380,
|
||||
"h": 120
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,177 @@
|
||||
{
|
||||
"format": "ttrpg-system",
|
||||
"formatVersion": 1,
|
||||
"id": "coc",
|
||||
"name": "Call of Cthulhu",
|
||||
"description": "Investigators, percentiles, Sanity. Fan mechanical scaffold.",
|
||||
"edition": "fan",
|
||||
"schemaVersion": 1,
|
||||
"revision": 1,
|
||||
"bricks": {
|
||||
"attributes": [
|
||||
{
|
||||
"key": "str",
|
||||
"label": "STR",
|
||||
"scale": "numeric",
|
||||
"min": 1,
|
||||
"max": 10,
|
||||
"default": 2
|
||||
},
|
||||
{
|
||||
"key": "dex",
|
||||
"label": "DEX",
|
||||
"scale": "numeric",
|
||||
"min": 1,
|
||||
"max": 10,
|
||||
"default": 2
|
||||
},
|
||||
{
|
||||
"key": "mind",
|
||||
"label": "Mind",
|
||||
"scale": "numeric",
|
||||
"min": 1,
|
||||
"max": 10,
|
||||
"default": 2
|
||||
}
|
||||
],
|
||||
"resources": [
|
||||
{
|
||||
"key": "hp",
|
||||
"label": "HP",
|
||||
"min": 0,
|
||||
"default": 10,
|
||||
"track": true
|
||||
}
|
||||
],
|
||||
"derived": [
|
||||
{
|
||||
"key": "strMod",
|
||||
"label": "STR Mod",
|
||||
"formula": "attr.str",
|
||||
"dependsOn": [
|
||||
"attr.str"
|
||||
]
|
||||
}
|
||||
],
|
||||
"progression": {
|
||||
"label": "Features",
|
||||
"graph": {
|
||||
"nodes": [
|
||||
{
|
||||
"id": "n1",
|
||||
"label": "Start",
|
||||
"kind": "feat",
|
||||
"position": {
|
||||
"x": 0,
|
||||
"y": 0
|
||||
}
|
||||
},
|
||||
{
|
||||
"id": "n2",
|
||||
"label": "Advance",
|
||||
"kind": "feat",
|
||||
"position": {
|
||||
"x": 200,
|
||||
"y": 0
|
||||
}
|
||||
}
|
||||
],
|
||||
"edges": [
|
||||
{
|
||||
"id": "e1",
|
||||
"source": "n1",
|
||||
"target": "n2",
|
||||
"kind": "prerequisite"
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
},
|
||||
"creationRules": [
|
||||
{
|
||||
"id": "arr",
|
||||
"type": "array",
|
||||
"appliesTo": "attribute",
|
||||
"params": {
|
||||
"array": [
|
||||
3,
|
||||
2,
|
||||
2
|
||||
],
|
||||
"keys": [
|
||||
"str",
|
||||
"dex",
|
||||
"mind"
|
||||
]
|
||||
}
|
||||
}
|
||||
],
|
||||
"sheetLayout": {
|
||||
"pageSize": "fluid",
|
||||
"grid": {
|
||||
"size": 8
|
||||
},
|
||||
"pages": [
|
||||
{
|
||||
"id": "main",
|
||||
"label": "Main",
|
||||
"widgets": [
|
||||
{
|
||||
"id": "t",
|
||||
"type": "section",
|
||||
"frame": {
|
||||
"x": 16,
|
||||
"y": 16,
|
||||
"w": 280,
|
||||
"h": 36
|
||||
},
|
||||
"props": {
|
||||
"title": "Call of Cthulhu"
|
||||
}
|
||||
},
|
||||
{
|
||||
"id": "str",
|
||||
"type": "dots",
|
||||
"bind": "attr.str",
|
||||
"frame": {
|
||||
"x": 16,
|
||||
"y": 64,
|
||||
"w": 160,
|
||||
"h": 70
|
||||
},
|
||||
"props": {
|
||||
"label": "STR",
|
||||
"max": 5
|
||||
}
|
||||
},
|
||||
{
|
||||
"id": "hp",
|
||||
"type": "track",
|
||||
"bind": "resource.hp",
|
||||
"frame": {
|
||||
"x": 200,
|
||||
"y": 64,
|
||||
"w": 200,
|
||||
"h": 80
|
||||
},
|
||||
"props": {
|
||||
"label": "HP",
|
||||
"max": 20
|
||||
}
|
||||
},
|
||||
{
|
||||
"id": "notes",
|
||||
"type": "notes",
|
||||
"bind": "meta.notes",
|
||||
"frame": {
|
||||
"x": 16,
|
||||
"y": 160,
|
||||
"w": 380,
|
||||
"h": 120
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,177 @@
|
||||
{
|
||||
"format": "ttrpg-system",
|
||||
"formatVersion": 1,
|
||||
"id": "cyberpunk-red",
|
||||
"name": "Cyberpunk RED",
|
||||
"description": "STATs, role, humanity, net page. Fan mechanical scaffold.",
|
||||
"edition": "fan",
|
||||
"schemaVersion": 1,
|
||||
"revision": 1,
|
||||
"bricks": {
|
||||
"attributes": [
|
||||
{
|
||||
"key": "str",
|
||||
"label": "STR",
|
||||
"scale": "numeric",
|
||||
"min": 1,
|
||||
"max": 10,
|
||||
"default": 2
|
||||
},
|
||||
{
|
||||
"key": "dex",
|
||||
"label": "DEX",
|
||||
"scale": "numeric",
|
||||
"min": 1,
|
||||
"max": 10,
|
||||
"default": 2
|
||||
},
|
||||
{
|
||||
"key": "mind",
|
||||
"label": "Mind",
|
||||
"scale": "numeric",
|
||||
"min": 1,
|
||||
"max": 10,
|
||||
"default": 2
|
||||
}
|
||||
],
|
||||
"resources": [
|
||||
{
|
||||
"key": "hp",
|
||||
"label": "HP",
|
||||
"min": 0,
|
||||
"default": 10,
|
||||
"track": true
|
||||
}
|
||||
],
|
||||
"derived": [
|
||||
{
|
||||
"key": "strMod",
|
||||
"label": "STR Mod",
|
||||
"formula": "attr.str",
|
||||
"dependsOn": [
|
||||
"attr.str"
|
||||
]
|
||||
}
|
||||
],
|
||||
"progression": {
|
||||
"label": "Features",
|
||||
"graph": {
|
||||
"nodes": [
|
||||
{
|
||||
"id": "n1",
|
||||
"label": "Start",
|
||||
"kind": "feat",
|
||||
"position": {
|
||||
"x": 0,
|
||||
"y": 0
|
||||
}
|
||||
},
|
||||
{
|
||||
"id": "n2",
|
||||
"label": "Advance",
|
||||
"kind": "feat",
|
||||
"position": {
|
||||
"x": 200,
|
||||
"y": 0
|
||||
}
|
||||
}
|
||||
],
|
||||
"edges": [
|
||||
{
|
||||
"id": "e1",
|
||||
"source": "n1",
|
||||
"target": "n2",
|
||||
"kind": "prerequisite"
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
},
|
||||
"creationRules": [
|
||||
{
|
||||
"id": "arr",
|
||||
"type": "array",
|
||||
"appliesTo": "attribute",
|
||||
"params": {
|
||||
"array": [
|
||||
3,
|
||||
2,
|
||||
2
|
||||
],
|
||||
"keys": [
|
||||
"str",
|
||||
"dex",
|
||||
"mind"
|
||||
]
|
||||
}
|
||||
}
|
||||
],
|
||||
"sheetLayout": {
|
||||
"pageSize": "fluid",
|
||||
"grid": {
|
||||
"size": 8
|
||||
},
|
||||
"pages": [
|
||||
{
|
||||
"id": "main",
|
||||
"label": "Main",
|
||||
"widgets": [
|
||||
{
|
||||
"id": "t",
|
||||
"type": "section",
|
||||
"frame": {
|
||||
"x": 16,
|
||||
"y": 16,
|
||||
"w": 280,
|
||||
"h": 36
|
||||
},
|
||||
"props": {
|
||||
"title": "Cyberpunk RED"
|
||||
}
|
||||
},
|
||||
{
|
||||
"id": "str",
|
||||
"type": "dots",
|
||||
"bind": "attr.str",
|
||||
"frame": {
|
||||
"x": 16,
|
||||
"y": 64,
|
||||
"w": 160,
|
||||
"h": 70
|
||||
},
|
||||
"props": {
|
||||
"label": "STR",
|
||||
"max": 5
|
||||
}
|
||||
},
|
||||
{
|
||||
"id": "hp",
|
||||
"type": "track",
|
||||
"bind": "resource.hp",
|
||||
"frame": {
|
||||
"x": 200,
|
||||
"y": 64,
|
||||
"w": 200,
|
||||
"h": 80
|
||||
},
|
||||
"props": {
|
||||
"label": "HP",
|
||||
"max": 20
|
||||
}
|
||||
},
|
||||
{
|
||||
"id": "notes",
|
||||
"type": "notes",
|
||||
"bind": "meta.notes",
|
||||
"frame": {
|
||||
"x": 16,
|
||||
"y": 160,
|
||||
"w": 380,
|
||||
"h": 120
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,118 @@
|
||||
{
|
||||
"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."
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,177 @@
|
||||
{
|
||||
"format": "ttrpg-system",
|
||||
"formatVersion": 1,
|
||||
"id": "pf2e",
|
||||
"name": "Pathfinder 2e",
|
||||
"description": "Proficiency ranks, feats graph. Fan mechanical scaffold.",
|
||||
"edition": "fan",
|
||||
"schemaVersion": 1,
|
||||
"revision": 1,
|
||||
"bricks": {
|
||||
"attributes": [
|
||||
{
|
||||
"key": "str",
|
||||
"label": "STR",
|
||||
"scale": "numeric",
|
||||
"min": 1,
|
||||
"max": 10,
|
||||
"default": 2
|
||||
},
|
||||
{
|
||||
"key": "dex",
|
||||
"label": "DEX",
|
||||
"scale": "numeric",
|
||||
"min": 1,
|
||||
"max": 10,
|
||||
"default": 2
|
||||
},
|
||||
{
|
||||
"key": "mind",
|
||||
"label": "Mind",
|
||||
"scale": "numeric",
|
||||
"min": 1,
|
||||
"max": 10,
|
||||
"default": 2
|
||||
}
|
||||
],
|
||||
"resources": [
|
||||
{
|
||||
"key": "hp",
|
||||
"label": "HP",
|
||||
"min": 0,
|
||||
"default": 10,
|
||||
"track": true
|
||||
}
|
||||
],
|
||||
"derived": [
|
||||
{
|
||||
"key": "strMod",
|
||||
"label": "STR Mod",
|
||||
"formula": "attr.str",
|
||||
"dependsOn": [
|
||||
"attr.str"
|
||||
]
|
||||
}
|
||||
],
|
||||
"progression": {
|
||||
"label": "Features",
|
||||
"graph": {
|
||||
"nodes": [
|
||||
{
|
||||
"id": "n1",
|
||||
"label": "Start",
|
||||
"kind": "feat",
|
||||
"position": {
|
||||
"x": 0,
|
||||
"y": 0
|
||||
}
|
||||
},
|
||||
{
|
||||
"id": "n2",
|
||||
"label": "Advance",
|
||||
"kind": "feat",
|
||||
"position": {
|
||||
"x": 200,
|
||||
"y": 0
|
||||
}
|
||||
}
|
||||
],
|
||||
"edges": [
|
||||
{
|
||||
"id": "e1",
|
||||
"source": "n1",
|
||||
"target": "n2",
|
||||
"kind": "prerequisite"
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
},
|
||||
"creationRules": [
|
||||
{
|
||||
"id": "arr",
|
||||
"type": "array",
|
||||
"appliesTo": "attribute",
|
||||
"params": {
|
||||
"array": [
|
||||
3,
|
||||
2,
|
||||
2
|
||||
],
|
||||
"keys": [
|
||||
"str",
|
||||
"dex",
|
||||
"mind"
|
||||
]
|
||||
}
|
||||
}
|
||||
],
|
||||
"sheetLayout": {
|
||||
"pageSize": "fluid",
|
||||
"grid": {
|
||||
"size": 8
|
||||
},
|
||||
"pages": [
|
||||
{
|
||||
"id": "main",
|
||||
"label": "Main",
|
||||
"widgets": [
|
||||
{
|
||||
"id": "t",
|
||||
"type": "section",
|
||||
"frame": {
|
||||
"x": 16,
|
||||
"y": 16,
|
||||
"w": 280,
|
||||
"h": 36
|
||||
},
|
||||
"props": {
|
||||
"title": "Pathfinder 2e"
|
||||
}
|
||||
},
|
||||
{
|
||||
"id": "str",
|
||||
"type": "dots",
|
||||
"bind": "attr.str",
|
||||
"frame": {
|
||||
"x": 16,
|
||||
"y": 64,
|
||||
"w": 160,
|
||||
"h": 70
|
||||
},
|
||||
"props": {
|
||||
"label": "STR",
|
||||
"max": 5
|
||||
}
|
||||
},
|
||||
{
|
||||
"id": "hp",
|
||||
"type": "track",
|
||||
"bind": "resource.hp",
|
||||
"frame": {
|
||||
"x": 200,
|
||||
"y": 64,
|
||||
"w": 200,
|
||||
"h": 80
|
||||
},
|
||||
"props": {
|
||||
"label": "HP",
|
||||
"max": 20
|
||||
}
|
||||
},
|
||||
{
|
||||
"id": "notes",
|
||||
"type": "notes",
|
||||
"bind": "meta.notes",
|
||||
"frame": {
|
||||
"x": 16,
|
||||
"y": 160,
|
||||
"w": 380,
|
||||
"h": 120
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,62 @@
|
||||
{
|
||||
"format": "ttrpg-system",
|
||||
"formatVersion": 1,
|
||||
"id": "shadowdark",
|
||||
"name": "Shadowdark RPG",
|
||||
"description": "Minimalist dark fantasy fan schema (mechanical scaffold).",
|
||||
"edition": "1e-fan",
|
||||
"schemaVersion": 1,
|
||||
"revision": 1,
|
||||
"bricks": {
|
||||
"attributes": [
|
||||
{ "key": "str", "label": "STR", "scale": "numeric", "min": 3, "max": 18, "default": 10, "category": "physical" },
|
||||
{ "key": "dex", "label": "DEX", "scale": "numeric", "min": 3, "max": 18, "default": 10, "category": "physical" },
|
||||
{ "key": "con", "label": "CON", "scale": "numeric", "min": 3, "max": 18, "default": 10, "category": "physical" },
|
||||
{ "key": "int", "label": "INT", "scale": "numeric", "min": 3, "max": 18, "default": 10, "category": "mental" },
|
||||
{ "key": "wis", "label": "WIS", "scale": "numeric", "min": 3, "max": 18, "default": 10, "category": "mental" },
|
||||
{ "key": "cha", "label": "CHA", "scale": "numeric", "min": 3, "max": 18, "default": 10, "category": "social" }
|
||||
],
|
||||
"resources": [
|
||||
{ "key": "hp", "label": "HP", "min": 0, "default": 8, "track": true },
|
||||
{ "key": "hpMax", "label": "HP Max", "min": 1, "default": 8 }
|
||||
],
|
||||
"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"] }
|
||||
],
|
||||
"traits": [
|
||||
{ "key": "ancestry", "label": "Ancestry" },
|
||||
{ "key": "class", "label": "Class" }
|
||||
]
|
||||
},
|
||||
"creationRules": [
|
||||
{
|
||||
"id": "roll",
|
||||
"type": "roll",
|
||||
"appliesTo": "attribute",
|
||||
"params": { "expr": "3d6", "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": 280, "h": 36 }, "props": { "title": "Shadowdark" } },
|
||||
{ "id": "str", "type": "number", "bind": "attr.str", "frame": { "x": 16, "y": 64, "w": 90, "h": 70 }, "props": { "label": "STR" } },
|
||||
{ "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": 16, "y": 144, "w": 90, "h": 70 }, "props": { "label": "INT" } },
|
||||
{ "id": "wis", "type": "number", "bind": "attr.wis", "frame": { "x": 116, "y": 144, "w": 90, "h": 70 }, "props": { "label": "WIS" } },
|
||||
{ "id": "cha", "type": "number", "bind": "attr.cha", "frame": { "x": 216, "y": 144, "w": 90, "h": 70 }, "props": { "label": "CHA" } },
|
||||
{ "id": "hp", "type": "track", "bind": "resource.hp", "frame": { "x": 320, "y": 64, "w": 200, "h": 80 }, "props": { "label": "HP", "max": 20 } },
|
||||
{ "id": "notes", "type": "notes", "bind": "meta.notes", "frame": { "x": 16, "y": 240, "w": 500, "h": 140 } }
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,177 @@
|
||||
{
|
||||
"format": "ttrpg-system",
|
||||
"formatVersion": 1,
|
||||
"id": "sw-d20",
|
||||
"name": "Star Wars RPG (d20)",
|
||||
"description": "d20-line abilities and powers. Fan mechanical scaffold.",
|
||||
"edition": "fan",
|
||||
"schemaVersion": 1,
|
||||
"revision": 1,
|
||||
"bricks": {
|
||||
"attributes": [
|
||||
{
|
||||
"key": "str",
|
||||
"label": "STR",
|
||||
"scale": "numeric",
|
||||
"min": 1,
|
||||
"max": 10,
|
||||
"default": 2
|
||||
},
|
||||
{
|
||||
"key": "dex",
|
||||
"label": "DEX",
|
||||
"scale": "numeric",
|
||||
"min": 1,
|
||||
"max": 10,
|
||||
"default": 2
|
||||
},
|
||||
{
|
||||
"key": "mind",
|
||||
"label": "Mind",
|
||||
"scale": "numeric",
|
||||
"min": 1,
|
||||
"max": 10,
|
||||
"default": 2
|
||||
}
|
||||
],
|
||||
"resources": [
|
||||
{
|
||||
"key": "hp",
|
||||
"label": "HP",
|
||||
"min": 0,
|
||||
"default": 10,
|
||||
"track": true
|
||||
}
|
||||
],
|
||||
"derived": [
|
||||
{
|
||||
"key": "strMod",
|
||||
"label": "STR Mod",
|
||||
"formula": "attr.str",
|
||||
"dependsOn": [
|
||||
"attr.str"
|
||||
]
|
||||
}
|
||||
],
|
||||
"progression": {
|
||||
"label": "Features",
|
||||
"graph": {
|
||||
"nodes": [
|
||||
{
|
||||
"id": "n1",
|
||||
"label": "Start",
|
||||
"kind": "feat",
|
||||
"position": {
|
||||
"x": 0,
|
||||
"y": 0
|
||||
}
|
||||
},
|
||||
{
|
||||
"id": "n2",
|
||||
"label": "Advance",
|
||||
"kind": "feat",
|
||||
"position": {
|
||||
"x": 200,
|
||||
"y": 0
|
||||
}
|
||||
}
|
||||
],
|
||||
"edges": [
|
||||
{
|
||||
"id": "e1",
|
||||
"source": "n1",
|
||||
"target": "n2",
|
||||
"kind": "prerequisite"
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
},
|
||||
"creationRules": [
|
||||
{
|
||||
"id": "arr",
|
||||
"type": "array",
|
||||
"appliesTo": "attribute",
|
||||
"params": {
|
||||
"array": [
|
||||
3,
|
||||
2,
|
||||
2
|
||||
],
|
||||
"keys": [
|
||||
"str",
|
||||
"dex",
|
||||
"mind"
|
||||
]
|
||||
}
|
||||
}
|
||||
],
|
||||
"sheetLayout": {
|
||||
"pageSize": "fluid",
|
||||
"grid": {
|
||||
"size": 8
|
||||
},
|
||||
"pages": [
|
||||
{
|
||||
"id": "main",
|
||||
"label": "Main",
|
||||
"widgets": [
|
||||
{
|
||||
"id": "t",
|
||||
"type": "section",
|
||||
"frame": {
|
||||
"x": 16,
|
||||
"y": 16,
|
||||
"w": 280,
|
||||
"h": 36
|
||||
},
|
||||
"props": {
|
||||
"title": "Star Wars RPG (d20)"
|
||||
}
|
||||
},
|
||||
{
|
||||
"id": "str",
|
||||
"type": "dots",
|
||||
"bind": "attr.str",
|
||||
"frame": {
|
||||
"x": 16,
|
||||
"y": 64,
|
||||
"w": 160,
|
||||
"h": 70
|
||||
},
|
||||
"props": {
|
||||
"label": "STR",
|
||||
"max": 5
|
||||
}
|
||||
},
|
||||
{
|
||||
"id": "hp",
|
||||
"type": "track",
|
||||
"bind": "resource.hp",
|
||||
"frame": {
|
||||
"x": 200,
|
||||
"y": 64,
|
||||
"w": 200,
|
||||
"h": 80
|
||||
},
|
||||
"props": {
|
||||
"label": "HP",
|
||||
"max": 20
|
||||
}
|
||||
},
|
||||
{
|
||||
"id": "notes",
|
||||
"type": "notes",
|
||||
"bind": "meta.notes",
|
||||
"frame": {
|
||||
"x": 16,
|
||||
"y": 160,
|
||||
"w": 380,
|
||||
"h": 120
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,177 @@
|
||||
{
|
||||
"format": "ttrpg-system",
|
||||
"formatVersion": 1,
|
||||
"id": "vtm",
|
||||
"name": "Vampire: The Masquerade",
|
||||
"description": "Dots attributes, disciplines, blood pool. Fan mechanical scaffold.",
|
||||
"edition": "fan",
|
||||
"schemaVersion": 1,
|
||||
"revision": 1,
|
||||
"bricks": {
|
||||
"attributes": [
|
||||
{
|
||||
"key": "str",
|
||||
"label": "STR",
|
||||
"scale": "numeric",
|
||||
"min": 1,
|
||||
"max": 10,
|
||||
"default": 2
|
||||
},
|
||||
{
|
||||
"key": "dex",
|
||||
"label": "DEX",
|
||||
"scale": "numeric",
|
||||
"min": 1,
|
||||
"max": 10,
|
||||
"default": 2
|
||||
},
|
||||
{
|
||||
"key": "mind",
|
||||
"label": "Mind",
|
||||
"scale": "numeric",
|
||||
"min": 1,
|
||||
"max": 10,
|
||||
"default": 2
|
||||
}
|
||||
],
|
||||
"resources": [
|
||||
{
|
||||
"key": "hp",
|
||||
"label": "HP",
|
||||
"min": 0,
|
||||
"default": 10,
|
||||
"track": true
|
||||
}
|
||||
],
|
||||
"derived": [
|
||||
{
|
||||
"key": "strMod",
|
||||
"label": "STR Mod",
|
||||
"formula": "attr.str",
|
||||
"dependsOn": [
|
||||
"attr.str"
|
||||
]
|
||||
}
|
||||
],
|
||||
"progression": {
|
||||
"label": "Features",
|
||||
"graph": {
|
||||
"nodes": [
|
||||
{
|
||||
"id": "n1",
|
||||
"label": "Start",
|
||||
"kind": "feat",
|
||||
"position": {
|
||||
"x": 0,
|
||||
"y": 0
|
||||
}
|
||||
},
|
||||
{
|
||||
"id": "n2",
|
||||
"label": "Advance",
|
||||
"kind": "feat",
|
||||
"position": {
|
||||
"x": 200,
|
||||
"y": 0
|
||||
}
|
||||
}
|
||||
],
|
||||
"edges": [
|
||||
{
|
||||
"id": "e1",
|
||||
"source": "n1",
|
||||
"target": "n2",
|
||||
"kind": "prerequisite"
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
},
|
||||
"creationRules": [
|
||||
{
|
||||
"id": "arr",
|
||||
"type": "array",
|
||||
"appliesTo": "attribute",
|
||||
"params": {
|
||||
"array": [
|
||||
3,
|
||||
2,
|
||||
2
|
||||
],
|
||||
"keys": [
|
||||
"str",
|
||||
"dex",
|
||||
"mind"
|
||||
]
|
||||
}
|
||||
}
|
||||
],
|
||||
"sheetLayout": {
|
||||
"pageSize": "fluid",
|
||||
"grid": {
|
||||
"size": 8
|
||||
},
|
||||
"pages": [
|
||||
{
|
||||
"id": "main",
|
||||
"label": "Main",
|
||||
"widgets": [
|
||||
{
|
||||
"id": "t",
|
||||
"type": "section",
|
||||
"frame": {
|
||||
"x": 16,
|
||||
"y": 16,
|
||||
"w": 280,
|
||||
"h": 36
|
||||
},
|
||||
"props": {
|
||||
"title": "Vampire: The Masquerade"
|
||||
}
|
||||
},
|
||||
{
|
||||
"id": "str",
|
||||
"type": "dots",
|
||||
"bind": "attr.str",
|
||||
"frame": {
|
||||
"x": 16,
|
||||
"y": 64,
|
||||
"w": 160,
|
||||
"h": 70
|
||||
},
|
||||
"props": {
|
||||
"label": "STR",
|
||||
"max": 5
|
||||
}
|
||||
},
|
||||
{
|
||||
"id": "hp",
|
||||
"type": "track",
|
||||
"bind": "resource.hp",
|
||||
"frame": {
|
||||
"x": 200,
|
||||
"y": 64,
|
||||
"w": 200,
|
||||
"h": 80
|
||||
},
|
||||
"props": {
|
||||
"label": "HP",
|
||||
"max": 20
|
||||
}
|
||||
},
|
||||
{
|
||||
"id": "notes",
|
||||
"type": "notes",
|
||||
"bind": "meta.notes",
|
||||
"frame": {
|
||||
"x": 16,
|
||||
"y": 160,
|
||||
"w": 380,
|
||||
"h": 120
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,177 @@
|
||||
{
|
||||
"format": "ttrpg-system",
|
||||
"formatVersion": 1,
|
||||
"id": "wfrp",
|
||||
"name": "Warhammer Fantasy Roleplay",
|
||||
"description": "Careers, % advances, wounds. Fan mechanical scaffold.",
|
||||
"edition": "fan",
|
||||
"schemaVersion": 1,
|
||||
"revision": 1,
|
||||
"bricks": {
|
||||
"attributes": [
|
||||
{
|
||||
"key": "str",
|
||||
"label": "STR",
|
||||
"scale": "numeric",
|
||||
"min": 1,
|
||||
"max": 10,
|
||||
"default": 2
|
||||
},
|
||||
{
|
||||
"key": "dex",
|
||||
"label": "DEX",
|
||||
"scale": "numeric",
|
||||
"min": 1,
|
||||
"max": 10,
|
||||
"default": 2
|
||||
},
|
||||
{
|
||||
"key": "mind",
|
||||
"label": "Mind",
|
||||
"scale": "numeric",
|
||||
"min": 1,
|
||||
"max": 10,
|
||||
"default": 2
|
||||
}
|
||||
],
|
||||
"resources": [
|
||||
{
|
||||
"key": "hp",
|
||||
"label": "HP",
|
||||
"min": 0,
|
||||
"default": 10,
|
||||
"track": true
|
||||
}
|
||||
],
|
||||
"derived": [
|
||||
{
|
||||
"key": "strMod",
|
||||
"label": "STR Mod",
|
||||
"formula": "attr.str",
|
||||
"dependsOn": [
|
||||
"attr.str"
|
||||
]
|
||||
}
|
||||
],
|
||||
"progression": {
|
||||
"label": "Features",
|
||||
"graph": {
|
||||
"nodes": [
|
||||
{
|
||||
"id": "n1",
|
||||
"label": "Start",
|
||||
"kind": "feat",
|
||||
"position": {
|
||||
"x": 0,
|
||||
"y": 0
|
||||
}
|
||||
},
|
||||
{
|
||||
"id": "n2",
|
||||
"label": "Advance",
|
||||
"kind": "feat",
|
||||
"position": {
|
||||
"x": 200,
|
||||
"y": 0
|
||||
}
|
||||
}
|
||||
],
|
||||
"edges": [
|
||||
{
|
||||
"id": "e1",
|
||||
"source": "n1",
|
||||
"target": "n2",
|
||||
"kind": "prerequisite"
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
},
|
||||
"creationRules": [
|
||||
{
|
||||
"id": "arr",
|
||||
"type": "array",
|
||||
"appliesTo": "attribute",
|
||||
"params": {
|
||||
"array": [
|
||||
3,
|
||||
2,
|
||||
2
|
||||
],
|
||||
"keys": [
|
||||
"str",
|
||||
"dex",
|
||||
"mind"
|
||||
]
|
||||
}
|
||||
}
|
||||
],
|
||||
"sheetLayout": {
|
||||
"pageSize": "fluid",
|
||||
"grid": {
|
||||
"size": 8
|
||||
},
|
||||
"pages": [
|
||||
{
|
||||
"id": "main",
|
||||
"label": "Main",
|
||||
"widgets": [
|
||||
{
|
||||
"id": "t",
|
||||
"type": "section",
|
||||
"frame": {
|
||||
"x": 16,
|
||||
"y": 16,
|
||||
"w": 280,
|
||||
"h": 36
|
||||
},
|
||||
"props": {
|
||||
"title": "Warhammer Fantasy Roleplay"
|
||||
}
|
||||
},
|
||||
{
|
||||
"id": "str",
|
||||
"type": "dots",
|
||||
"bind": "attr.str",
|
||||
"frame": {
|
||||
"x": 16,
|
||||
"y": 64,
|
||||
"w": 160,
|
||||
"h": 70
|
||||
},
|
||||
"props": {
|
||||
"label": "STR",
|
||||
"max": 5
|
||||
}
|
||||
},
|
||||
{
|
||||
"id": "hp",
|
||||
"type": "track",
|
||||
"bind": "resource.hp",
|
||||
"frame": {
|
||||
"x": 200,
|
||||
"y": 64,
|
||||
"w": 200,
|
||||
"h": 80
|
||||
},
|
||||
"props": {
|
||||
"label": "HP",
|
||||
"max": 20
|
||||
}
|
||||
},
|
||||
{
|
||||
"id": "notes",
|
||||
"type": "notes",
|
||||
"bind": "meta.notes",
|
||||
"frame": {
|
||||
"x": 16,
|
||||
"y": 160,
|
||||
"w": 380,
|
||||
"h": 120
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user