Rule systems
Classes
Packages a character takes on: hit die and casting the rules read, trained saves, features by level, the spell lists they learn from, a starting kit, and subclasses. The SRD's twelve classes to start from.
A class is a package
A class (a playbook, a calling: you name it) is a package of rules a character takes on. It isn't d20 code: any system can have classes, and every part of one is data you can change. A class can say:
- Numbers the rules read: a fighter's hit die is 10, a wizard casts at their full level, a paladin at half. Your system's formulas read them as
@class.hit_die,@class.caster. - Formulas it replaces: a wizard's spellcasting modifier is Intelligence, a cleric's Wisdom.
- What it is trained in: a fighter's Strength and Constitution saves. A roll reads it as
@trained. - Skills to pick: at creation, two of the fighter's skills among the character's trained picks.
- Features by level: abilities it grants as the character levels. Always-on ones change numbers (Unarmoured Defence sets Armour Class); others are used like any ability (Rage, Second Wind).
- What it learns from: the spell lists its picks may take (the wizard list), and how high.
- What it starts with: its kit, by item name, worn where it says. See Gear.
- Subclasses: classes of its own, chosen at a level (a fighter becomes a Champion at 3).
A character's people brings its own part beside the class: adjustments, traits, and for some, no magic (a wizard of a people that can't use magic casts nothing). See Peoples under your rules.
A system can also run classless: then the defaults hold (Classic d20: a d8, a full caster's slots, Extra Attack at 5), and a character learns anything the rules allow. Engine
In play
| When | What happens |
|---|---|
| Creation | The creator offers the classes, each with what it gives. The server checks the pick, and the class's skills among the trained picks. The character starts with its features and its kit, worn. |
| A character with no class | Their sheet offers the classes: pick one and its numbers and features come at once, hit points following the new hit die (the share of health they had is kept). They choose once. |
| A level comes | The features of that level appear on the sheet, marked as the class's. When a subclass opens, the sheet offers it. |
| Learning | A pick offers only what the class may take: the wizard list, up to the level they can reach. |
| The story | The storyteller is told their class and subclass with the rest of the sheet, and plays them as one. |
| Mistakes | The table-talk GM can set a class or subclass the player and it agreed (sheet_class). |

Classic d20's classes
The SRD 5.1's twelve classes, each with its subclass: Barbarian (Berserker), Bard (Lore), Cleric (Life), Druid (Land), Fighter (Champion), Monk (Open Hand), Paladin (Devotion), Ranger (Hunter), Rogue (Thief), Sorcerer (Draconic), Warlock (Fiend) and Wizard (Evocation). Each has its hit die, saves, skills, Extra Attack where it has one, its casting (full, half or none) and spell list, a starting kit, and two to five of its features. The spells in the library carry the lists they are on.
{ "id": "fighter", "name": "Fighter",
"values": { "hit_die": "10", "caster": "0",
"attacks": "if @level >= 20 then 4 else if @level >= 11 then 3 else if @level >= 5 then 2 else 1" },
"trained": { "save": ["str", "con"] },
"skills": { "from": ["acrobatics", "animal_handling", "athletics", "history", "insight", "intimidation", "perception", "survival"], "count": 2 },
"features": [{ "level": 1, "abilities": ["second_wind", "fighting_style_defence"] },
{ "level": 2, "abilities": ["action_surge"] }],
"gear": [{ "name": "Chain Mail", "equipped": true }, { "name": "Longsword", "equipped": true },
{ "name": "Shield", "equipped": true }, { "name": "Light crossbow" }] }
{ "id": "champion", "name": "Champion", "parent": "fighter", "atLevel": 3,
"features": [{ "level": 3, "abilities": ["improved_critical"] }] }How Classic d20 reads them
- Hit points:
@class.hit_die + @con.mod + (@level - 1) * (floor(@class.hit_die / 2) + 1 + @con.mod). - Spell slots: the full caster's table by
@class.caster, for anyone who knows a spell. - Saving throws add
@trained * @proficiency; attacks a turn are@class.attacks.
Building classes
- The Studio
- Studio › Rules › Classes: the classes with their subclasses, one line each saying what it gives; open one to change any of it. Class settings holds what a class is called, whether one is required, and the defaults when classless.
- Hob
- “A Hexblade: d8 hit die, half caster with Charisma, trained in Wisdom and Charisma saves, starts with a longsword” writes one. “Make classes required” changes the settings.
- Any system
- A PbtA world's playbooks are classes: their moves are features, their stat lines are values. A Forged world's playbooks give special abilities and starting gear. A d100 world's careers can train skills and grant talents.
Features change the numbers when they can: Action Surge gives one more Action that turn (its attacks are rolled), Improved Critical makes a 19 on an attack roll a critical, Disciple of Life adds 2 + the slot's level to healing spells, Rage halves cuts, blows and stabs. A feature is any of the pieces an ability has: an extra action (an effect), a wider critical or more healing (an always-on ability's modifiers), resistances (a condition's or a modifier's). See Fights under your rules.