⚔ SMASH TOURNAMENT

LIVE STREAM

LOBBY — SELECT YOUR FIGHTERS

P1
PLAYER 1
CUSTOM BOT CODE (optional — default AI used if blank)
P2
PLAYER 2
CUSTOM BOT CODE (optional — default AI used if blank)
P3
PLAYER 3
CUSTOM BOT CODE (optional — default AI used if blank)
P4
PLAYER 4
CUSTOM BOT CODE (optional — default AI used if blank)
Checking OBS stream...

HOW TO WRITE A BOT

Leave the code box blank to use the built-in AI for that character. To take control, paste a Python snippet defining a Bot class with an act method. It's called once per frame (~60fps) and returns the controller inputs for that frame — or None to release everything.

Your act(gamestate, player_port) must return a dict shaped like:

{
  "stick_x": 0.5,   # 0.0 = left, 1.0 = right, 0.5 = neutral
  "stick_y": 0.5,   # 0.0 = down, 1.0 = up,    0.5 = neutral
  "buttons": {
    "BUTTON_A": False, "BUTTON_B": False,
    "BUTTON_X": False, "BUTTON_Y": False,
    "BUTTON_L": False, "BUTTON_R": False,
    "BUTTON_Z": False,
  },
}

Useful gamestate fields: gamestate.players[port].position.x / .y, .stock, .percent, .action, .character.

SAFETY RULES (enforced on submit)

EXAMPLES