Trait Categories
traitCategoriesCategories 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.
"Trait categories"
- Editor location
- Files → Mechanics → Trait Categories
- Editor type
- Edit in Studio + View JSON
- Size limits
traitCategories(entire section) — 100,000- Trait category
maxSelections— 40 selections
Schema
{
"traitCategories": {
"<key>": {
"name": "string",
"maxSelections": "number",
"traits": [
"string"
],
"description": "string",
"subcategories": [
{
"name": "string",
"traits": [
"string"
],
"description": "string"
}
]
}
}
}Example
{
"traitCategories": {
"Race": {
"name": "Race",
"maxSelections": 1,
"traits": [
"Human",
"Elf",
"Dwarf",
"Halfling"
]
},
"Class": {
"name": "Class",
"maxSelections": 1,
"traits": [
"Soldier",
"Scholar",
"Scout",
"Healer",
"Merchant"
]
},
"Background": {
"name": "Background",
"maxSelections": 1,
"traits": [
"Noble Household",
"Working Family",
"Frontier Town",
"Coastal Port"
]
},
"Perks": {
"name": "Perks",
"description": "Optional -- choose any that fit your character concept.",
"maxSelections": 2,
"traits": [
"Iron Stomach",
"Light Sleeper",
"Sharp-Eyed",
"Quick Learner",
"Bookish",
"Patient",
"Cool Head",
"Lucky"
],
"subcategories": [
{
"name": "Physical",
"description": "Traits rooted in the body and the senses.",
"traits": [
"Iron Stomach",
"Light Sleeper",
"Sharp-Eyed"
]
},
{
"name": "Mental",
"traits": [
"Quick Learner",
"Bookish",
"Patient",
"Cool Head"
]
},
{
"name": "Fortune",
"traits": [
"Lucky"
]
}
]
}
}
}Order matters for trait gates
Categories are offered at character creation in the order they appear here, and a trait's unlockedBy / excludedBy are checked only against traits chosen in earlier categories. Put the categories other traits depend on, a race or an origin for instance, before the categories that depend on them. See traits for how the two gates read.
Fields
name
Display name of the trait category, shown to players during character creation. Required, and the outer key must match it exactly: Voyage rejects a world whose key and name differ.
description
Text shown to players above the category during character creation. Use it to explain what the choice means, or that picking from the category is optional.
maxSelections
How many traits the player can choose from this category, counted across the whole category including its subcategories. Players may pick anywhere from none up to this number. Set 1 for a single choice. 0 blocks every trait in the category from being picked.
traits
Required list of trait keys in this category. Entries that name no defined trait raise a warning. Traits already placed in a subcategory don't need repeating here.
Note:
name,maxSelections, andtraitsare required on every category.
See Traits > Hiding trigger-only traits for the pattern on hiding trigger-only system traits from the character creator.
subcategories
Splits the category's traits into collapsible sections during selection. Each entry sets a name, an optional description shown with the heading, and a traits list naming which traits belong to it. Subcategories render first, each claiming its own traits, and whatever the category's traits list still holds afterwards follows under a heading of Other. A trait named in a subcategory and again at the root is only drawn once, so repeating it changes nothing; a subcategory whose traits are all claimed elsewhere is skipped entirely, and one with a blank name also falls back to Other.