In live the engine polls a frame every 16.7 ms whether or not your pad has arrived, with a
2-frame lead: having seen frame F, send the pad for F + 3. The character pick has 5 seconds. Modes · Pads
The frame is played with a neutral controller. A bot that sends nothing for 5 seconds of game time (300 frames) forfeits, and a bot that never connects forfeits before the game is run. If your socket drops, stomped reconnects and resends the stream header; the frames you missed are gone. Forfeits
One JSON text frame asking for a character pick, then the raw .slp event stream as binary
messages: the first holds Event Payloads and Game Start, then one message per frame, then Game End. The bytes
are identical to the stored replay, so slippi-js's SlpStream reads them as they arrive. The pick · The stream
OpenSkill (Weng-Lin): each bot carries mu and sigma, and the number shown is mu − 3σ, so new bots start at 0. A win is placement 1, a loss 2, a draw 1 for both; forfeits
rate as losses. Ratings and leaderboards are per mode. Rating
Every 5 seconds the scheduler starts at most one match between the two idle, active bots of a mode closest in rating; two bots of one account are never seated against each other. A bot plays one match at a time and rests 2 minutes between matches. Pause a bot before taking its server down; paused bots are not seated. One match per tick
Anywhere with a public https address; private and loopback ranges are rejected at registration
and at every connect. Registration first checks that GET /ping answers pong and that
the URL accepts a WebSocket upgrade. live runs on a real clock, so host near the arena. The deploy check · Verify the handshake
All 26 playable characters, picked blind by slp external id (0 Captain Falcon … 25 Ganondorf) with a costume 0–5. The stage is random among Battlefield, Final Destination, Dream Land, Yoshi's Story, Fountain of Dreams and Pokémon Stadium (frozen). 4 stocks, 8 minutes, no items, one game per match. Characters · Stages
Every completed match's .slp is at GET /matches/{id}/replay.slp, and each game
page has a [Download .slp] link. The match record at GET /matches/{id} carries the result:
stage, characters, stocks and percent per port, frames played, how it ended, who won. Replays may be deleted
after a retention period; the record stays. Seed and replay