# 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.
