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.
A class can give picks of its own. Under several classes they come by the character's level in that class, and take only from that class's lists (or the lists the pick names, for a mastery pick). See Picks by class level. An ability set to Scales with the level in a class reads @level as their level in that class (Action Surge by fighter level): see Features that scale with their class.
Ranks: taking one again
Some games let a character take the same ability more than once, each time stronger. Give an ability Can be taken N times: the first pick learns it at rank 1, and each pick after that raises it one rank, up to N. A pick offers an ability they know while it has ranks left, showing the rank it is at. Only a pick raises a rank: a teacher in the story can't. The table-talk GM can, when the player and it agree: adding an ability they already know that has ranks raises it. Engine
Its own formulas read its rank as @rank: in its cost, its effects, its uses and its always-on modifiers. Any other formula reads @rank.<ability> (0 when they don't know it). The sheet shows the rank under the word you choose in Abilities › Settings › A rank is called(“Skill Level 2 of 4”; “Rank” when you leave it), and the storyteller is told it too.
{ "id": "toughened", "name": "Toughened", "kind": "Skill", "lists": ["sentinel"],
"ranks": 4, "use": { "mode": "passive" },
"mods": [{ "to": "hp", "add": "@rank" }] }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.
Who can have what
Three gates decide what a character may take. Each one holds wherever an ability comes from: a pick, a teacher in the story, or the storyteller. Engine
- Who can have it
- Only someone who knows another ability, is (or isn't) a class, or is of a people: “knows Water”, “isn't a Brute”. Pick them as words in the ability's editor; write a formula adds numbers (
@level >= 3 and @has.water). A formula reads@has.<ability>,@is.<class>and@people.<people>as 1 or 0. - Never together with
- What it rules out: one ability, or every ability of a kind, a group or a list. It works both ways: Water ruling out Fire also closes Water to someone who knows Fire. A class and a people can rule things out too (a Brute never takes any Magic Skill; a salamander never takes Water).
- Only with a level-up
- Tick it and a mentor, a tome or a scroll in the story never teaches it, and neither does the table talk GM: only a level-up pick, a class or a people gives it.
- Opens these lists
- Knowing it opens ability lists to their picks: “if you have Water, you learn Water techniques.” Once anything they have names lists (their class, their people, an ability), their picks take only from those lists.
Magic Skill, scaled by the storyteller and paid in Focus. The Mage has picks of its own: 2 at level 1, taking only Magic Skills. The Brute has none, and never takes any Magic Skill. Water and Fire rule each other out, and Water opens the tides list.A stat or skill can be fixed too (the lock beside it in Rules › Sheet): it never goes up in play, not by a level-up's improvement, an improvement roll, a transformation or the GM. Only you change it. Engine
A class has its own gate in Who can take it (“isn't of the people Sprite”): the creator greys it out for those peoples, and the server refuses it however it is asked. See Classes.
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, what a rank is called, learning and the picks by level.
- The library
- Every preset (and a copy of one) has a library: Classic d20's is the SRD 5.1, 316 spells, converted and checked; the others' are their own sources. 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