Concrete attribute values for a specific character or item.
attributeProfile#
Assigns specific values for the attributes defined in attributeDefinitions to a character, class, or item.
Why it matters#
Definitions say "HP, ATK, and DEF exist". Profiles say "the Dark Mage has HP=80, ATK=15, DEF=3". Without profiles you'd have to copy the stat structure into every page, and any change to the definition (renaming atk to attack) would break everything.
Where it usually lives#
- A page of type
👤 Characters(comes with profile + xpBalance + progressionTable). - Blank pages when you need standalone stats (e.g. a generic NPC, an enemy base).
Singleton — 1 profile per page. For multiple characters, create multiple pages.
Schema#
| Campo | Tipo | Padrão | Descrição |
|---|---|---|---|
idYes | string | Internal addon ID. | |
nameYes | string | Friendly name (e.g. Dark Mage). | |
definitionsRef | string (sectionId) | Points to the section that has the attributeDefinitions addon. Defines which keys the profile accepts. | |
valuesYes | AttributeProfileValueEntry[] | List of (attributeKey, value) pairs. |
AttributeProfileValueEntry#
| Campo | Tipo | Padrão | Descrição |
|---|---|---|---|
idYes | string | Internal ID. | |
attributeKeyYes | string | An existing key from attributeDefinitions.attributes[].key. | |
valueYes | number | boolean | Concrete value. The type must match the valueType from the definition. |
Example#
Profile for a character:
{
"id": "profile-mage",
"name": "Dark Mage",
"definitionsRef": "section-attrs-base",
"values": [
{ "id": "v1", "attributeKey": "hp", "value": 80 },
{ "id": "v2", "attributeKey": "atk", "value": 15 },
{ "id": "v3", "attributeKey": "def", "value": 3 }
]
}
The definitionsRef points to the section that holds attributeDefinitions. The panel only lets you pick keys that exist there — you can't accidentally add a value for a non-existent attribute.
Cross-ref validation#
If you rename or delete a key in attributeDefinitions, any profiles that used that key:
- remain visible in the panel with an "orphan key" warning
- must be fixed manually (choose a new key or remove the entry)
- do not break rendering — the addon degrades gracefully
Wizard#
The 👤 Characters page type automatically creates:
- This
attributeProfile(empty, withdefinitionsRefalready filled in) - An
xpBalance(XP curve) - A
progressionTable(values per level) - An
attributeModifiers(character-specific effects)
All linked to the same attributeDefinitions you picked in the wizard dialog.