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

SkillKindHow it trains
WoodcuttingGatheringChop trees → logs (25 xp)
MiningGatheringMine rocks → ore (35 xp)
FishingGatheringFish spots → raw fish (30 xp)
SmithingProcessingForge tools and weapons at an anvil from ore + logs (30 xp per ore). Bronze sword: +2 max hit. Bronze hatchet/pickaxe: gather faster.
FiremakingProcessingLight logs where you stand (40 xp): a fire that cooks and glows for a minute. Success rises with level.
CookingProcessingCook raw fish at a campfire (30 xp on success; failures burn: the fish is consumed either way)
AttackCombat4 xp per damage dealt
DefenceCombat4 xp per enemy blow you avoid
HitpointsCombat1 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

The browser window

node serve.mjs yourname, open localhost:8787. Click-to-everything. This is the reference window: the founding aesthetic, not the required one.

The terminal window

node play.mjs yourname. WASD, g, x, f, e. The whole world in ASCII, because it can be.

The SDK

Write your own hands. sdk.mjs exposes the world as data and actions; a script and a human use the identical interface, by design.

A node

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.