with one click
Schema and rules for creating traits
npx skills add https://github.com/nikolaj-lat/World-Puppeteer --skill traitsCopy and paste this command into Claude Code to install the skill
Schema and rules for creating traits
npx skills add https://github.com/nikolaj-lat/World-Puppeteer --skill traitsCopy and paste this command into Claude Code to install the skill
Schema and rules for creating abilities
Schema and rules for editing AI instructions
Check character counts and limits for Voyage World config files. Use when checking how much space is used, before adding large content, or when approaching size limits.
Schema and rules for creating locations
Schema and rules for creating NPCs
Schema and rules for creating regions
| name | traits |
| description | Schema and rules for creating traits |
| context | fork |
| agent | traits |
Edit tabs/traits.json.
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:
maxSelections: 1maxSelections: 1maxSelections: 3| Field | Requirement |
|---|---|
name | Must match object key exactly |
description | What this trait mechanically does (3 sentences, effect-focused) |
quirk | The AI narrator's primary reference for this trait's effects |
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 |
For non-species traits (Perception, Attributes, Expertise):
description and quirk must be identical (same text)quirk is the AI narrator's primary reference for mechanical effects during playFor species traits, see the Species Traits section below.
| 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 |
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.
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:
isHealth resource should be set at roughly 100.{ item: string, quantity: number }
The item must reference a valid item key from tabs/items.json.
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[]
}
When creating a trait that represents a species (playable race):
description contains lore paragraphs + skill blocks separated by \n\nquirk contains lore paragraphs only (no skills)description, Trait description, and Trait quirkSee Species Consistency Rules for the full requirements.
For detailed documentation, see traits-reference.md.