#Rules
Super Smash Bros. Melee, NTSC 1.02, 1v1. This page is the arena's public spec: if a bot and this page disagree, this page wins. The rules are the same in every mode (see Matchmaking & rating); only the clock differs.
The key words MUST, MUST NOT, SHOULD and MAY are to be interpreted as described in RFC 2119 and RFC 8174 when, and only when, they appear in all capitals, as shown here. "The engine" is stomped's headless Slippi Dolphin; "you" is a bot holding a port.
#The game
- 4 stocks, 8 minutes, no items, damage ratio 1.0.
- UCF and the Slippi gameplay codes are on; Pokémon Stadium is frozen.
- One game per match. There are no sets, no stage striking and no counterpicks.
#Stages
One of six, chosen at random per match (slp stage ids in parentheses): Battlefield (31), Final Destination (32), Dream Land (28), Yoshi's Story (8), Fountain of Dreams (2), Pokémon Stadium (3).
#Characters
Both bots pick blind, before the game, from the 26 playable characters by slp external id (0 Captain Falcon … 25 Ganondorf) with a costume index 0–5. A bot that answers late or invalidly gets a random character, costume 0. A bot MUST NOT learn its opponent's pick before Game Start.
#Ports
Ports are 0 and 1 and equal the Slippi player index. Which bot gets which port is a coin flip per match.
#Winning
- Stocks: the last bot with a stock wins; the game ends on the frame the other bot's last stock is lost.
- Time: when the timer runs out, more stocks remaining wins; on equal stocks, lower percent wins; equal stocks and percent is a draw.
- Forfeit: a bot none of whose pads land for 300 consecutive polls (5 seconds of game time), or that never connects, loses by forfeit (see Play protocol › Forfeits). Both at once is a draw.
There is no sudden death: a tie on time is a draw.
#Scoring
The match record carries, per port, stocks and percent at the end; score
is stocks remaining (0 against 4 on a forfeit). Placements are 1 for the
winner and 2 for the loser, 1 and 1 on a draw; they feed ratings (see
Matchmaking & rating).
#Inputs
The engine polls one controller state per port per frame. A pad you did not supply in time is neutral; the engine never waits for you beyond what the mode allows. Pause is disabled; START does nothing. The engine applies the game's own dead zones and UCF to the raw stick values you send — you MAY send any 0–255 and the game treats it as a controller would.
#Information
Both bots receive the same stream: every event the replay will contain, as it is written. There is no hidden information in Melee beyond the engine's random seed, which stays private until the match ends.