The Manual
Everything the world knows about itself.
The world in one paragraph
Interval is a deterministic world: fixed rules, integer numbers,
time in 600ms intervals. Every player's node computes the same next
state from the same inputs, so the network needs no referee: a state
that disagrees with the rules simply doesn't match anyone else's hash
and is ignored. The rules live in SPEC.md, the constitution.
Changing them creates a new world; nobody is ever force-updated.
Skills
| Skill | Kind | How it trains |
|---|---|---|
| Woodcutting | Gathering | Chop trees → logs (25 xp) |
| Mining | Gathering | Mine rocks → ore (35 xp) |
| Fishing | Gathering | Fish spots → raw fish (30 xp) |
| Smithing | Processing | Forge tools and weapons at an anvil from ore + logs (30 xp per ore). Bronze sword: +2 max hit. Bronze hatchet/pickaxe: gather faster. |
| Firemaking | Processing | Light logs where you stand (40 xp): a fire that cooks and glows for a minute. Success rises with level. |
| Cooking | Processing | Cook raw fish at a campfire (30 xp on success; failures burn: the fish is consumed either way) |
| Attack | Combat | 4 xp per damage dealt |
| Defence | Combat | 4 xp per enemy blow you avoid |
| Hitpoints | Combat | 1 xp per damage dealt; starts at level 10; max HP equals its level |
Levels run 1–99 on the classic exponential curve (level 99 = 13,034,431 xp). Reaching it is meant to take a very long time.
Ways to play
node serve.mjs yourname,
open localhost:8787. Click-to-everything. This is the
reference window: the founding aesthetic, not the required one.
node play.mjs yourname.
WASD, g, x, f, e. The whole world in ASCII, because it can be.
Write your own hands. sdk.mjs
exposes the world as data and actions; a script and a human use the
identical interface, by design.
Run infrastructure as a way of playing. Nodes gossip inputs, enforce the constitution, serve checkpoints to newcomers and history to the stalled.
The bank
Stand at a bank and tap items to deposit; tap the vault to withdraw. One item per interval: patience is the fee. The bank survives death. What you carry can burn; what you vault endures.
Trade
Walk up to someone (adjacent tiles), offer an item for an item, they accept, and the swap settles atomically in a single interval: whole or not at all. Trade deliberately requires being there.
Death
At 0 HP you respawn at the spawn point with your inventory destroyed. Skills, XP, and your name survive. The constitution itself labels this rule provisional: a softer death is an expected fork, and the fork will be legitimate.
Names
Names are in-world objects: first valid claim wins, one per character, forever (v0.x has no transfer). Lowercase letters, digits, hyphens, up to 12 characters.
Worlds and forks
A world is identified by the hash of its constitution. Change a rule and you have created a different world on a different network: one that shares history up to the fork and welcomes whoever prefers it. Updates don't happen to you; they compete for you.
Bots, plainly
The rules cannot tell a click from a script and refuse to pretend otherwise. What keeps the world human is design, not detection: resources deplete and are shared, processing destroys supply, trade and (eventually) fleeting events reward being present. A bot can grind all night; it cannot be there.
And the irony cuts the right way. Traditional games hunt bots because bots consume a world someone else pays to run. In Interval a bot cannot consume the world without computing it: every automated citizen with its own node is unpaid infrastructure, another machine checking every hash, another witness that makes the history harder to fake. The criminal class of every other MMO is, here, the police and the power grid at once. Run a bot; you are holding a lantern.
The readable world (API)
Every serving node exposes the world as JSON: hiscores sites, clan pages, and market trackers are all just windows:
GET /api/world → { tick, worldId, players, mobs }
GET /api/hiscores → { players: [{ name, levels, total, xp }] }
GET /api/player/:name → one citizen, full public record
For the systems-minded
The full constitution is SPEC.md in the repository,
state machine, XP tables, combat math, checkpoint and catch-up
protocols, the works. The engine is ~400 lines of dependency-light
JavaScript that runs identically in Node and browsers. Reimplement it
in any language: if your hashes match, you're a citizen.