Rule systems
Spells and abilities
Spells, features and techniques a character knows: what they cost in your system's own meters, how they resolve in and out of a fight, learning them, and abilities of a character's own.
One shape for every power
Under a rule system, a character's powers are abilities: a spell, a class feature, a technique a teacher showed them, a move. They are all the same thing to the engine, with different words. Each one names what it costs, how it resolves, who it touches and what it does, in the system's own terms. Engine
The rule is the one every roll follows: the storyteller picks the words, code picks the numbers. The rules judge reads what the player wrote and says which of their abilities it is (and how big, for one with a size). Code checks they know it and can pay, takes the cost, rolls, and applies what it does. The storyteller narrates the result it is handed.
| Game | Abilities | What they cost |
|---|---|---|
| Classic d20 | Spells by level (cantrips are free), class features | Spell slots by level; features once per rest |
| Hope and Fear | Abilities paid in Hope | Hope |
| Forged in the Dark | Special abilities | Stress, marked up |
| Your own | Whatever you call them: Workings, Techniques, Oaths | Any track you made: Blood Oath, Mana, Nerve |
What an ability holds
- Name, kind, group, level
- “Fireball”, a Spell of the Evocation group, level 3. Level 0 is a cantrip. Learning reads the level; the sheet groups by kind.
- Description
- What it looks like and does. The player reads it on their sheet; the storyteller reads it when it is used.
- When
- For the rules judge: when this is the ability being used (“Hurling a ball of fire that bursts into a roaring explosion”). Written like a check's when, and just as important.
- Cost
- Payments from the system's own tracks (
2 Blood Oath,Stress +2), or a spell slot. Paid before anything else. - Uses
- A limit that refills: once per rest (Second Wind), twice per fight, three times a day.
- Scale
- Optional. A word the storyteller picks for how big (a spark, one foe, a crowd); the cost and effects read it as @scale.
- Target
- Themself, one foe, an ally, or an area with a reach (how many foes at most).
- How it resolves
- It just happens; a check the user rolls; an attack roll against a defence; or a saving throw each target makes against a DC.
- Effects
- On a hit, a failed save or a passed check; and on a miss, a made save or a failed check. The same effects as rule cards, plus damage, and effects that land on the target.
- Action
- Which of the fight's actions it takes: an Action, a Bonus action.
- Needs
- A formula that must hold:
@level >= 5, a condition, a thing owned.

Each one reads as a sentence in the Studio, written from its data, so what you read is what runs:
Fireball Costs a 3rd-level spell slot. Action. Everyone in the area (up to 6) makes a Dexterity
Saving throw against their Spell save DC; 8d6 (more from a higher slot) fire damage, half on a save.
Second Wind Once per rest. Bonus action. → Hit points +1d10 + level.
Blood strike Costs 2 Blood Oath. Roll a Check with Might; on a success: 1d8 damage; Blood Debt +1.Costs
Paid from your own meters
A cost names a track and an amount. A spend (-) needs that much left, or the ability is refused; a mark (+, Stress-like) always goes on, and fills toward whatever the track does when full. An amount can be a formula: @scale for a power priced by its size. Engine
Spell slots
A cost of {"slot": 3} pays the lowest spell slot at or above 3rd level the character has left. Paying a higher one is upcasting: formulas read which was paid as @slot, so Fireball's damage is (@slot + 5)d6, 8d6 from a 3rd-level slot and 9d6 from a 4th. Slots are tracks (slot_1 to slot_9) that refill on a rest.
| Character level | 1 | 3 | 5 | 7 | 9 | 11 | 13 | 15 | 17 |
|---|---|---|---|---|---|---|---|---|---|
| Highest slot | 1st | 2nd | 3rd | 4th | 5th | 6th | 7th | 8th | 9th |
| Spell save DC (Int 16) | 13 | 13 | 14 | 14 | 15 | 15 | 16 | 16 | 17 |
Refused, in words
When an ability can't be used, nothing is paid, nothing happens, and the storyteller is told exactly why. The roll chip says it too:
- “no 3rd-level spell slot or higher left”
- “not enough Blood Oath (2 needed, 1 left)”
- “Second Wind is spent until the next rest”
- “Fireball is not one of their spells and features”
Known or nothing, or try anything
A system decides what happens when a character reaches for a power that isn't theirs. Engine
| Strict | Loose | |
|---|---|---|
| Their own abilities | Work as written | Work as written |
| Anything else | Nothing supernatural happens. The storyteller shows ordinary effort, or the attempt coming to nothing | An improvised working: the storyteller picks its size, and code takes the cost from the system's meter |
| Good for | Fifth-edition-style games, where spells are known and counted | Freer magic: a blood mage who can try anything, at a price |
A loose system names the track a working is paid from, a cost formula (@scale), and the sizes to pick from. A working does no more than its size; what it does is the storyteller's to show. Storyteller
Using one in a scene
- 1The judge reads the actionBeside the usual questions, it is asked which of their abilities this is (by each one's when), a power they don't have, or none. Only a clear read counts. For one with a size, it picks the size too.
- 2Code checks and paysKnown, needs met, uses left, the cost affordable. Then it takes the cost from the sheet.
- 3It resolvesOne that rolls a check rolls it (the player can throw it, as with any check). An attack or a save outside a fight is rolled against a typical foe of the character's tier, so the storyteller is handed results, not left to decide them.
- 4Effects landOn themself at once (a heal, a ward). Damage and conditions for others go to the storyteller as numbers, or to the fight.
- 5The storyteller tells itIts check_result says what it was, what it cost, what it rolled and what it did, and that it does no more.
Cure Wounds · Used · 1st-level slots −1, Hit points +11.Every use leaves a roll chip with a spark instead of a die: the ability's name, its size, what it cost, and, opened, its dice and damage, each target's save, or why it was refused. Undoing the turn gives the cost back. Using an ability again after undo uses the same dice.
In a fight
An ability aimed at foes takes over the character's first blow of the turn. Engine
| It resolves by | What code does in the fight |
|---|---|
| An attack roll | Rolls the ability's own check with the caster's best stat of its list (Fire Bolt: Intelligence, Wisdom or Charisma) against the target's defence. Its own dice on a hit, twice on a critical. |
| A saving throw | Rolls the harm once, for every target. Each target rolls its own save against the DC (a chip each): full damage on a failure, half or none on a success. Its conditions land on those who fail. |
| Just happening | Its harm lands on the target: Magic Missile never misses. |
| A check | Rolled as the turn begins; it lands only if it passed. |
The fight is told which ability the turn uses, so an area one strikes every foe it reaches (Fireball: up to six). One ability a turn: a second attack in the same turn is an ordinary one, and the ability's blow counts against the turn's actions like any other (a bonus-action spell leaves the Action free). Damage types meet the foe's nature: a creature that resists fire takes half, one that fears it takes double. See the bestiary.
| A foe's Dexterity save | DC 13 | DC 15 |
|---|---|---|
| Minion or standard, tier 1 | 40% make it | 30% |
| Elite, tier 1-2 | 44% | 35% |
| Boss, tier 2-3 | 50% | 40% |
Heals in a fight move the fight's own hit points, not only the sheet's. Uses limited per fight come back when it ends. In a fight run by consequences (Forged, Moves), an ability that rolls no check of its own is used first, and then the fight's roll is made as usual.
Learning them
Picks by level
A system gives picks: how many abilities a character takes at which levels (level 1 is creation), and the highest ability level they can reach for their level. Classic d20 gives three to start (cantrips, 1st-level spells or features), one more each level, up to min(9, ceil(level / 2)). Engine
Picks wait on the character's Sheet tab, in a panel that lists what the next one may take, grouped by level and searchable, each with a Learn button. A level 1 character sees Fire Bolt and Magic Missile, never Fireball.
From a teacher, a tome, a scroll
The story can teach one too. When a scene has actually taught the character (a lesson, a tome studied, a power that answered), the storyteller calls learn_ability with the ability's name and who taught it. Code decides: one of the world's own, at a level they can have, needs met. Until code adds it, they can't use it. Storyteller
Things that carry them
- A wand (gear with charges) lends its spell while carried: each cast spends a charge instead of a slot, at the spell's own level; at no charges it lends nothing until they come back. See Gear.
- Worn gear lends an ability while it is equipped. It uses the caster's own costs.
- A consumable lends one while carried and is used up by the cast: a scroll, a potion. The item is the cost, so no slot is paid; a scroll casts at the spell's own level.
- An item the storyteller hands over named for one of the world's spells or gear (“Scroll of Fireball”, “Wand of Magic Missiles”) carries it automatically.
An ability of their own
A character can make one of their own: on a pick (Make one of your own on the sheet), or worked out in a scene (the storyteller's learn_ability with invent). The player names it and says what it does; the model writes it in the system's own terms, measured against three of the system's abilities near that level, and code checks it like any edit. A draft that doesn't hold gets one more try with the problems; then it is refused, in words.
Action. The target makes a Dexterity Saving throw against their Spell save DC; d4 × Cantrip dice + Spellcasting modifier fire damage; on a failed save: “The fiery coils haul the target 5 feet closer”. Saved into the world's rules as theirs.It goes into the world's catalog marked as that character's own. Nobody else can learn it unless you, the builder, mark it shared. You can turn invented abilities off for a world.
Building them
- The Studio
- Studio › Rules › Abilities (named after what your world calls them): a list grouped by kind and level, one line each with how it lands and what it costs. Search it, filter it by level, kind or a character's own, and sort it by level, name or newest; pick one to edit it beside the list. Settings above the list holds strict or loose, what they're called, learning and the picks by level.
- The library
- Classic d20 (and copies of it) can add from the SRD 5.1: 316 spells, converted and checked. Library opens it beside the list: search by words, filter by level, read one whole, tick several and add them at once.
- Hob
- “Give the world the classic wizard spells up to 3rd level” searches the library and adds them; “a blood magic paid in Blood Oath” writes new ones. See Building rules with Hob.
- Your own system
- The composer can start a system with powers: what they're called, the track that pays, strict or loose. See Making your own system.


{ "id": "blood_strike", "name": "Blood strike", "kind": "Technique", "group": "Blood",
"description": "A blow driven by the oath: harder, and the debt grows.",
"cost": [{ "track": "blood_oath", "op": "-", "amount": "2" }],
"target": "one",
"use": { "mode": "check", "check": "check", "stat": "might" },
"onHit": [{ "kind": "damage", "amount": "1d8", "to": "target" },
{ "kind": "track", "track": "blood_debt", "op": "+", "amount": "1" }] }In a party fight
Each hero's declared action in a round is read the way a solo turn is: an ability is paid when the round resolves, one aimed at foes takes that hero's first blow, and a heal or a boon for an ally lands on the hero the action names (“I shout a word of healing to Brann”). The creatures' own abilities are rolled in the same round, and what everything did is told to the storyteller as rulings. Engine