# Class TOML Reference Each file in `world/classes/` defines one class. The filename (without `.toml`) becomes the class ID with prefix `class:` (e.g. `warrior.toml` → `class:warrior`). ## Top-level fields | Field | Type | Required | Default | Description | |-------|------|----------|---------|-------------| | `name` | string | Yes | — | Display name of the class. | | `description` | string | Yes | — | Short description shown in chargen. | | `hidden` | boolean | No | `false` | If `true`, the class does not appear in character creation. Use for NPC-only classes (e.g. Peasant, Creature). | | `guild` | string | No | — | Guild ID (e.g. `"guild:warriors_guild"`). If set, new characters who choose this class automatically join this guild at level 1 and receive that guild’s base mana/endurance. | ## `[base_stats]` — Starting stats at level 1 | Field | Type | Required | Default | Description | |-------|------|----------|---------|-------------| | `max_hp` | integer | No | `0` | Base maximum HP before race/stat modifiers. | | `attack` | integer | No | `0` | Base attack before modifiers. | | `defense` | integer | No | `0` | Base defense before modifiers. | ## `[growth]` — Per-level gains | Field | Type | Required | Default | Description | |-------|------|----------|---------|-------------| | `hp_per_level` | integer | No | `0` | HP added each level. | | `attack_per_level` | integer | No | `0` | Attack added each level. | | `defense_per_level` | integer | No | `0` | Defense added each level. | ## Minimal example (hidden NPC class) ```toml name = "Peasant" description = "A common folk with no particular training." hidden = true [base_stats] max_hp = 50 attack = 4 defense = 4 [growth] hp_per_level = 5 attack_per_level = 1 defense_per_level = 1 ``` ## Example with guild (playable class) ```toml name = "Warrior" description = "Masters of arms and armor." guild = "guild:warriors_guild" [base_stats] max_hp = 120 attack = 14 defense = 12 [growth] hp_per_level = 15 attack_per_level = 3 defense_per_level = 2 ```