The engine

What runs your world. Read this when you want to know the order things happen in.

The engine has no attributes, damage types, conditions, dice convention, or level curve of its own. It reads all of them from your world.

Actions and events

An action is a request: walk north, attack that, buy this. It says what you want, not what happens. Actions cover movement, combat, trade, items, talking, searching, the party, quests, and time.

An event is a fact that has already happened. Events carry their numbers, so a roll arrives with its notation, every die, the natural result, the modifier, the total, the number it needed, and whether it landed. Interfaces show the arithmetic from this.

The engine never produces a sentence. It names a message and hands over the facts. Your systemText supplies the words.

A turn

  1. Mods may block the action or replace it.
  2. The action resolves.
  3. The dice used are recorded into the save.
  4. The world settles.
  5. Anything your content emitted is handled, and anything that emits, four rounds deep.

Settling always runs in this order:

  1. Everyone perceives.
  2. Anything noticed is acted on.
  3. Party passives run.
  4. A finished fight ends. A started fight begins. Anyone new joins it.
  5. Combat start and end triggers fire.
  6. Reactions fire.
  7. Creatures take their turns.
  8. Arc endings, then your victoryWhen and defeatWhen.

Your effects do not write state. They produce a list of intents and the engine decides each one. The dead take no damage. Resources stop at their limits. An immune creature shrugs off a condition. An id that does not exist is refused, not crashed on.

What a save holds

Which world and version, the dice mid sequence, the time, every creature, the party, where you are, generated maps, the current fight, fired triggers, what each person remembers, the open conversation, flags, known lore, the purse, faction standing, quest progress, deeds, and whether you have won.

Only base facts are stored. Attributes and current resource values are kept. Maxima, guard, and initiative are recalculated on every read.

Characters, monsters, and townspeople are one kind of thing. Any of them can fight or talk.

Replay

A starting number plus the choices made reproduces a run move for move.

Checks

Every uncertain outcome is one check: roll, add a modifier, compare against a difficulty. Your world sets what a check rolls, what advantage and disadvantage roll instead, which results are critical, and how fractions round.

The natural roll decides criticals. A rolled 1 with a bonus of nine is still a fumble.

Stats

Worked out in four steps. Each step sees the ones before it and nothing after.

  1. Attributes. Stored.
  2. Modifiers. Each sees only its own attribute value.
  3. Resource limits. See attributes, modifiers, level.
  4. Derived stats. See all of the above, plus resources, equipment, conditions.

A resource limit cannot reference a derived stat.

Death
Hitting a resource floor runs that resource's onDepleted effects. Death follows only if the creature is still at the floor afterwards and the resource is the one named vitalResource. Heal one and apply a downed condition means stabilised.

Combat

Using an ability runs in this order:

  1. Whether it can be used at all: conditions, requires, when, cooldown.
  2. Spell slot.
  3. Other costs, calculated once and reused for both the check and the payment.
  4. Targets.
  5. Payment.
  6. Concentration and cooldown.
  7. Result against each target.

The result is one of three:

Attack rollAgainst a stat on the target, plus its cover.
Saving throwTarget rolls. Success is worth nothing, half, all, or effects you name.
NeitherThe effects happen.

The world

Each step of movement, in order:

is it your turn  ->  is the tile adjacent  ->  is the terrain passable
->  is anything standing there  ->  can you afford it
->  parting blows, and did you survive them  ->  you move
->  mark what you can now see  ->  leave scent and sound
->  terrain effects  ->  enter the room  ->  spring any trap
->  advance the clock, outside combat  ->  followers catch up

Quests

Prose

No language model
Nothing here uses one, and nothing calls a network. Variety comes from your weighted text pools and the conditions on them. A description that repeats needs another variant.

Every engine sentence comes from a systemText key. There is no English fallback. A missing required fragment stops the world loading.

Saves across edits

A save records the world, the version, and a fingerprint of the contents.

Different worldRefused.
Same world, contents changedRefused unless you accept the drift.
Different mods installedWarning.

Every edit changes the fingerprint, so saves made while building will ask before loading.

Playing