Skip to main content
A fork lets an agent ask “what would happen if…” and get an exact answer, because the same systems run on the fork as on the main world. This guide walks a complete what-if end to end.
Start a local server first — see the Quickstart. All commands target http://localhost:3917 and every POST sends Content-Type: application/json.

The question

We have a mover on team 1 heading along +x and we want to know: will it pass x = 3 within 200 ticks — without advancing the real run?

1. Set up the world

2. Fork the present

The fork is a full copy of the world at tick 30. Anything you do to it from here is invisible to the main run.

3. Run the scenario on the fork

At tick 230 the mover has travelled 230 × 1/60 ≈ 3.83 units along +x — so yes, it passes x = 3. (At the parent tick 30 it was at x ≈ 0.5.)

4. Confirm the real run is untouched, then drop the fork

You answered a forward-looking question against the exact dynamics of your world and left the real run exactly where it was. That is the difference between a fork and just stepping: the fork is a throwaway copy, not the timeline.

Patterns

Compare several options

Create one fork per candidate action (one-if-left, one-if-right, …), step each, and compare the outcomes — a one-step decision tree over real dynamics.

Intervene, don't just wait

Before stepping a fork, edit it (/entities/{id}/components, /rule/create) to test a change, not just the passage of time.

List and clean up

GET /fork/list shows active forks; DELETE /fork/{id} drops one. Forks are cheap but not free — drop the ones you are done with.

Exact answer keys

For grading world models, the action-conditioned version of this is the evaluation track.