Trait Categories

traitCategories

Categories group traits together and control how many the player can pick from each group. Each category must be defined before traits can be assigned to it - the traits array lists which trait names belong to this category.

In the editor

"Trait categories"

Editor location
Mechanics → Trait Categories
Editor type
JSON + ADD ITEM
Size limits
  • traitCategories (entire section) 100,000 chars
Last updated

Schema

json
{
  "traitCategories": {
    "<key>": {
      "name": "string",
      "maxSelections": "number",
      "traits": [
        "string"
      ]
    }
  }
}

Example

json
{
  "Race": {
    "name": "Race",
    "description": "Your ancestral heritage. Shapes base capabilities and how the world sees you.",
    "maxSelections": 1,
    "traits": ["Human", "Elf", "Dwarf", "Halfling"]
  },
  "Class": {
    "name": "Class",
    "description": "Your trained vocation. Determines starting equipment and which abilities are most readily available.",
    "maxSelections": 1,
    "traits": ["Soldier", "Scholar", "Scout", "Healer", "Merchant"]
  },
  "Background": {
    "name": "Background",
    "description": "Where you come from and what shaped you before adventuring. Adjusts base skills and gives one starting item.",
    "maxSelections": 1,
    "traits": ["Noble Household", "Working Family", "Frontier Town", "Coastal Port"]
  },
  "Perks": {
    "name": "Perks",
    "description": "Edge traits — small advantages from biology, habit, or hard-won experience. Pick up to two.",
    "maxSelections": 2,
    "traits": ["Iron Stomach", "Light Sleeper", "Sharp-Eyed", "Quick Learner", "Bookish", "Patient", "Cool Head", "Lucky"]
  }
}

Fields

maxSelections

how many traits from this category the player can choose. Set to 1 for mutually exclusive categories or to the desired multi-select cap. 0 is empirically broken in the live UI — the category renders ‘Selected 0/0’ and no traits can be picked. For “pick everything that applies” categories, set maxSelections equal to the number of traits in the category. Typical values: 1 (single-pick), 3-N (multi-select).

traits

required Array<string>. Lists all trait names in this category. Validator errors if absent.

Note: The validator checks name, maxSelections, and traits on traitCategory entries.

See Authoring Guide > Traits for the pattern on hiding trigger-only system traits from the character creator.