No game system is included
The engine does not know what a hit point is. It does not know that gold is money, that a d20 is the usual die, that poison eventually wears off, or that zero health means death. It ships no statistics, no resources, no items, no currencies, no classes, no abilities, no damage types and no formulas.
What it does provide is three things: the vocabulary your declarations are written in, the order in which a reader's action resolves, and the guarantee that the same action on the same state always produces the same result.
An adventure that wants 2d6 under a Luck score works exactly as well as one that wants d20 plus a statistic against a target number, because neither is built into the engine.
What you declare
Everything the reader will take for "the rules" is something you will have declared. Here are the available building blocks and what each one stands for.
| You declare | What it answers | For example |
|---|---|---|
| Values | A plain number, on the character or on the run. | courage, reputation, suspicion |
| Resources | A meter, with a current value and a maximum. | breath at 8 of 10 |
| Items | What the character owns, money included. A currency is an item. | rope, brass key, coins |
| Events | A fact the run remembers, invisible to the reader: it happened, or it did not. | spoke to the chandler |
| Statuses | A current condition, which you may make visible. | soaked, poisoned, blessed |
| Abilities | What the character can do, and what it costs. | lockpicking, quick patch-up |
| Classes and traits | The archetype, and the choices made at character creation. | lighthouse keeper, harbour child |
| Formulas | The arithmetic of a test or an attack. It is composed, never typed. | 1d6 + courage |
| Tests | An uncertain action, and what each outcome triggers. | climbing a wet stairway |
| Shops | A structured place to buy, sell or obtain a service. | the chandler's shop |
| Combats | A round-based fight, with its enemies and its attack options. | the seized mechanism |
| Endings | How a run concludes, and what the player keeps from it. | "The light returns" |
The two rules everything follows from
A visible choice is a playable choice
There is no greyed-out action with a reason attached. If the reader cannot afford it, lacks the item or lacks the class, the action is simply not there. That is a product decision: the reader never reads a list of things they cannot do, and everything on screen can be played.
Every action produces exactly one outcome
Effects change the state of the run, and nothing else: they never change the scene and never end the run. Going elsewhere or finishing is the job of the destination, and there is exactly one at the end of every path. This is what makes it possible to check an adventure before anyone has played it.
What the reader sees
If your adventure declares classes (setting "Character creation" other than "No class") or a trait group that requires a choice, the start scene, whose role is "Character creation", opens on character creation: a name, and the choices you declared, each with the description you wrote for it. Without classes or choices to make, the run starts straight on the first scene.
The reader starts on a card that shows the title, your description and a single button. Nothing that follows is asked of them until they have clicked.
Next come the scenes. The reader reads your text, then chooses among the actions their character actually has available. What you see below is exactly what the engine displays, at this moment, for this character.
The character sheet opens beside the text. It shows only what you made visible: a value marked as shown, a visible status, an item in the inventory. What is hidden stays hidden, including from a curious reader.
Randomness, and why it does not move
A roll is derived from the run's seed and the action that triggered it, then stored. Refresh the page, come back tomorrow, click twice: the result is the same. A bad roll cannot be re-rolled by reloading.
You decide everything else: which formula is rolled, against which difficulty, and what a success and a failure do. The engine only guarantees that it happens once.
A test and a fight, as seen by the reader
A test and a fight are the two moments when chance shows on screen. The reader does not roll anything themselves: they choose an action, and an already-decided result appears. What that result shows depends on your settings.
A test's display setting has three values. With "Dice visible", the reader reads the formula, the dice, the total, the difficulty and the verdict. With "Result only", they read the outcome without the numbers. With "Hidden test", nothing says a test happened: they simply read what comes next.
With "Dice visible", the dice roll across the page, and the result stays hidden until they stop. The reader can skip the animation by clicking anywhere or pressing Escape, and turn it off in the run menu ("Dice animation"). The result is the same in all cases.
A fight reads on a table. If there are multiple enemies, the reader first picks their target, then an action in the "Your action" zone. The table lists the "Opponents", then "You", then "Last round", which tells what the round just produced. From the second round on, the scene text folds behind "Read the scene text again".
The last round's damage is marked on the table: a number with a minus sign (minus 6) next to the hit opponent, the same mark next to "You" for the blows taken, and "Missed" next to an opponent the blow missed.
Two fight settings decide what the reader sees. "What is visible of the enemies": "Exact hit points" shows a bar and a total (4 / 7), "General condition" shows a word (Unharmed, Visible wounds or In bad shape), "Nothing" shows no state. "Round report": "The full detail" tells each blow, "A summary" gives one sentence, "Nothing" tells nothing. The damage marks follow that report: with "A summary", only the character's mark remains, and with "Nothing", there are none. Dice only roll on screen when "Exact hit points" and "The full detail" are together.
What the engine does not do
Each of these absences is deliberate. All of them have been asked for at least once, which is why they are listed here: if nobody says so, a feature left out on purpose looks like a forgotten one.
- It is not a tactical combat engine. A fight is a resolution step: no grid, no movement, no line of sight.
- It is neither multiplayer nor a game master's tool. One reader, one run. No shared table, no shared session.
- It is not a scripting language. You compose your rules from a closed list of conditions and effects. There is no expression to write and no code to type, anywhere in the editor.
- It is not an equipment simulator. Inventory limits exist, by number of slots or by total bulk; there is no bulk penalty, no crafting, no durability and no random loot.
- It is not a generator. Content is authored. Nothing is produced automatically during a run.
- The engine does not keep track of time. There is no clock, no calendar and no day-night cycle. If your adventure needs to keep track of time, do it with a value.