Skip to main content

Guide

Writing a rule

Rules decide what a player sees, what they pay and what changes afterwards. They are written in plain language, not in code.

A rule is a sentence

A choice's "Règles…" button opens the builder. A rule takes the form of a fill-in-the-blank sentence there: "has the item [Brass key] in quantity at least [1]". The words are fixed, the bracketed slots open a picker or a small number field.

At the top of the panel, a summary rewrites itself on every change and hands the whole rule back as one sentence. It is the same summary that appears in miniature on the graph and in the inspector, which means there is only one way to read a rule anywhere in the editor.

The expanded rule builder: the automatic summary, the choice text, and an "all these conditions" group holding two sentences.
The arrow at the top right toggles between the narrow panel and this wide view. Both show the same thing; the wide one reads better.

A rule holds for every language at once. Only the choice's text, at the top of the panel, follows the working language.

Picking a condition

"+ Condition" opens a picker grouped by family: inventory, resources, values, events, character, progression, shop, tests, combat. Each entry reads in plain language there, and the picker offers only what the engine can genuinely evaluate.

The condition picker: a search field and the entries grouped by family.
A still-empty reference slot fills from the same picker, and offers to create the missing definition without leaving the rule.

A slot left empty shows: the sentence displays a marker in its place, and validation will remind you before publication. It is not an error while you are writing; it is one at publishing time.

Groups

Several conditions placed side by side must all be met. To say something else, you put them in a group, which is a real box on screen with its own label.

"+ Condition" in a group's header creates the row inside it. To move an existing row into a group, use its "Déplacer…" menu: that is the only path, and it refuses any move that would create a loop.
Group True when Used for
ALL OF THESE Every row it holds is met. "the key and the lantern"
AT LEAST ONE A single row is enough. "the key or the lockpicking ability"
UNLESS Its single row is not met. "unless the bridge is destroyed"

Costs, effects, tests, destination

Below the conditions, the panel goes down in the order things actually happen to a player.

  • Costs are paid the moment the player chooses, before anything else, and they are shown. A cost takes a fixed number: a rolled amount would make a choice visible without being payable.
  • Effects apply once the choice resolves, in the order you arrange them. An effect may roll dice.
  • A test transforms the choice: the destination leaves it and moves into the outcomes, one per result, each with its own effects.
  • The destination closes the panel, and it is the same control as in the inspector: five possibilities, one at a time.

No JSON, anywhere

There is no field in the editor for typing a condition, an effect or a destination by hand. No advanced mode, no source view, no temporary escape hatch. A "Détails techniques" disclosure shows a rule's compiled form, read only, for those who are curious.

The consequence is simple: until a rule is in the picker, it cannot be written. That is a constraint, and it is also what guarantees that a saved rule will be understood by the engine the day somebody plays it.