- world/MANIFEST.md: manifest.toml and directory layout - world/races/RACES.md: race schema (stats, body, natural, resistances, etc.) - world/classes/CLASSES.md: class schema (base_stats, growth, hidden, guild) - world/guilds/GUILDS.md: guild schema and [growth] - world/spells/SPELLS.md: spell schema and types - world/town/REGION.md: region.toml - world/town/rooms/ROOMS.md: room schema and exits - world/town/npcs/NPCS.md: NPC schema, race/class resolution - world/town/objects/OBJECTS.md: object schema and [stats] Made-with: Cursor
65 lines
2.0 KiB
Markdown
65 lines
2.0 KiB
Markdown
# 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
|
||
```
|