name: traits description: Schema and rules for creating traits context: fork agent: traits
Traits
Edit tabs/traits.json.
Trait Categories
Traits must be organized into categories in tabs/traits.json under traitCategories.
| Field | Description |
|---|---|
name |
Display name for the category |
maxSelections |
How many traits player can pick (0 = unlimited) |
traits |
Array of trait keys in this category |
Category patterns:
- Single selection (class/background):
maxSelections: 1 - Single selection (species):
maxSelections: 1 - Multiple selection (miscellaneous):
maxSelections: 3
Required Fields
| Field | Requirement |
|---|---|
name |
Must match object key exactly |
description |
What the trait is — shown to players at character creation (full paragraph) |
quirk |
The narrator's reference for portraying the trait. Usually the same as description; elaborate further or add hidden aspects the player shouldn't see |
attributes |
Array of attribute modifiers (can be empty []) |
skills |
Array of skill modifiers (can be empty []) |
resources |
Array of resource modifiers (can be empty []) |
startingItems |
Array of items granted (can be empty []) |
abilities |
Array of ability names granted (can be empty []) |
unlockedBy |
Leave empty [] - NOT YET IMPLEMENTED IN UI |
excludedBy |
Leave empty [] - NOT YET IMPLEMENTED IN UI |
description and quirk
For non-species traits:
- By default,
descriptionandquirkcarry the same content — write both as full paragraphs. descriptionis shown to players at character creation.quirkis the narrator's reference during play.- Let them diverge only when: (a) the quirk holds hidden aspects the player shouldn't know, or (b) the description is a shorter summary and the quirk is the elaborated, fuller version.
For species traits, see the Species Traits section below.
Conditional Fields
| Field | When to Include |
|---|---|
attributes (non-empty) |
Class/background traits that affect core stats |
skills (non-empty) |
Traits that grant expertise or training |
resources (non-empty) |
Traits that affect resource pools |
startingItems (non-empty) |
Class/background traits with signature equipment |
abilities (non-empty) |
Traits that unlock special perks or powers |
TraitModifier Format
All modifiers use the same structure:
{ attribute: string, modifier: number } // For attributes
{ skill: string, modifier: number } // For skills
{ resource: string, modifier: number } // For resources
The modifier is an additive value (positive or negative). Multiple traits stack.
Point Cost Guidelines
Traits should be balanced around a point budget. Use these guidelines:
| Modifier Type | Point Cost |
|---|---|
| Attribute | 1 point |
| Skill at modifier 0 | 1 point |
| Resource per 10 | 1 point |
| Starting item | 1 point |
| Ability | 1 points |
Every trait within a single traitCategory should be roughly equal.
Target values:
- The
isHealthresource should be set at roughly 100. - Attributes should be at an average of 12, ranging from 0-20.
startingItems Format
{ item: string, quantity: number }
The item must reference a valid item key from tabs/items.json.
Schema
interface TraitCategory {
name: string
maxSelections: number
traits: string[]
}
interface Trait {
name: string
description: string
quirk: string
attributes: Array<{attribute: string, modifier: number}>
skills: Array<{skill: string, modifier: number}>
resources: Array<{resource: string, modifier: number}>
startingItems: Array<{item: string, quantity: number}>
abilities: string[]
unlockedBy: string[]
excludedBy: string[]
}
Species Traits
When creating a trait that represents a species (playable race):
- Must have corresponding NPC Type and World Lore entries
- The
descriptioncontains lore paragraphs + skill blocks separated by\n\n - The
quirkcontains lore paragraphs only (no skills) - Lore paragraphs are identical across NPC Type
description, Traitdescription, and Traitquirk - Must include exactly 3 skills that work as both player skills AND NPC abilities
- Skills should reflect innate species abilities or cultural training
See Species Consistency Rules for the full requirements.
Reference
For detailed documentation, see traits-reference.md.