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)
- Only
import melee(plusmath,random) is allowed — any other import is rejected. eval,exec,compile,open,__import__and similar are banned.- Dunder tricks like
().__class__.__bases__are rejected. - A top-level
Botclass with anactmethod is required.