# Quests without code

You can build a full multi-stage quest without writing a single expression.

## Stages

A quest is a list of **stages**. Each one completes, and the next begins.

A stage with **no condition** is judged by the model — it completes when the story says it
did. That is the one that makes quests feel like stories rather than checklists:

> Convince the harbourmaster to look the other way

There is no flag for "convinced". The narrator decides, in context, whether the
conversation actually got there.

A stage **with a condition** completes the moment that condition holds — *has the relic*,
*is at the lighthouse*, *the harbour is closed*. Precise and instant.

**Mix them.** Most good quests do: hard gates where precision matters, judgment where it
does not.

> **Image: `docs/quest-stages.png`**
> A quest in the character editor's Quests tab with three stages — one judged, one gated on
> an item, one gated on world state.

## Rewards

Each stage can carry rewards that fire as it completes, and the quest itself has a final
payoff.

The **reward text** is player-visible — the NPC offering the quest has to be able to mention
it, so write it as something they would say.

## Making stages remember things

The durable way to build a long quest is to have earlier stages **write world state**, and
later stages read it. The editor offers this as a reward action; no code needed.

State written that way survives across sessions and every other system can see it — so a
location's description, an NPC's mood and a quest stage can all react to the same fact.

## A worked quest

*The lighthouse keeper's silence*

1. **Talk to the keeper** — no condition. Judged.
2. **Find the logbook** — condition: has item *Logbook*. Reward: set world state
   `knows_about_tides`.
3. **Confront the harbourmaster** — no condition. Judged, and the narrator knows the player
   has the logbook because stage 2 wrote a flag.
4. **Reward** — experience and an item.

Nothing above is code.

## When you outgrow this

If a quest needs arithmetic, or needs to react to something that has no editor control,
that is [Quests](/docs/quests) on the rules side.

## Next

- [Shops and loadouts](/docs/shops)
- [Publishing](/docs/publishing)
