From a finish to a record
What a finish produces#
When a stop gate fires, the game emits a result:
| Field | |
|---|---|
| map hash, route, rule set, run type, style | which board |
| time (exact and UrT) | clock.md |
| splits | time at each checkpoint, stage times |
| leets made | names / ids |
| loads used | practice runs only |
| flags | practice tools, style, paused |
| replay | the inputs from the start (with a keyframe) to the stop |
Personal bests (local)#
- Per map hash × route × board: the best time, its splits, its replay, and the **best split per checkpoint** (for "best possible time").
- Stored on the player's machine. Survives map updates only if the hash stays the same.
- Used for the PB ghost, the live delta and the medals shown.
To the board (online)#
- The finish is uploaded with its replay (or the online server already has the inputs).
- The server verifies it (../replay.md): same map hash, allowed rule set, simulation gives the same time and splits.
- It is placed on the board. Only the player's best per board is listed; better runs replace it. The server keeps the replays of records and of each player's best.
- Notifications: "new record", "you lost your medal / your place to …".
Splits shown in the game#
- At each checkpoint: the split, plus the delta to your PB and to the race ghost (green ahead, red behind).
- At the finish: all splits in a list with deltas, the best possible time, and the medal earned.
- Between runs: the full timetable (gameplay/runs.md), like the speedrunners' LiveSplit.
Medals#
- Per route: finished (no time: you reached the stop once, loads allowed), then bronze, silver, gold and author times from the map data (../map.md).
- The author time is a verified run by the author (required to publish).
- If no medals are set, they are derived from the board once enough people have finished.
Imported UrT records#
- Times from UJM demos: UrT time (50 ms steps), not verified by re-simulation (a demo holds snapshots, not inputs). Shown in their own list, marked "UrT server".