
Chat and admin commands
Every command the server registers, generated from BattleSpades' command modules, with the aliases, who may use it and practical examples. Type commands in the normal in-game chat, starting with /.
How commands work
- Open chat and type the command, e.g.
/help. Arguments are separated by spaces;<angle>arguments are required and[square]ones optional. - Player arguments match a case-insensitive name prefix (first match wins), so
/kick grifinds “Griefer”. - Admin commands require
/admin <password>first; everyone else gets “You don't have permission to use this command.” - Non-admins are rate-limited to a burst of 5 commands, then one per second.
- With
[admin] log_commands = trueevery use is written to the log asCommand: <player> used /<name> <args>(the admin password is redacted). - Invalid arguments, unknown maps or modes, and bad coordinates are refused without changing the match.
Plugins can register additional commands; those are not listed here.
Commands for everyone
Everyone10 commands
/admin <password>everyoneLogin as admin
Logs you in as admin for the rest of the connection. Disabled while the configured password is changeme, empty or shorter than 12 characters. After 3 wrong attempts ([anticheat] admin_login_attempts) from one address the player is kicked and the address banned for 10 minutes. The password is never written to the log.
- Aliases
/login- Examples
/admin my-long-admin-secret/login my-long-admin-secret- Source
- commands/admin.py
/help [command]everyoneShow available commands
Without an argument lists every player command; logged-in admins also get the admin list. With a command name shows its description, usage and aliases.
- Aliases
/?/commands- Examples
/help/help ban- Source
- commands/player.py
/killeveryoneKill yourself
Ends your life. If an enemy damaged you in the last 5 seconds, the death is credited to them, so /kill cannot deny a kill.
- Aliases
/suicide- Examples
/kill- Source
- commands/player.py
/me <action>everyoneDescribe an action
Public action line shown as Name: * waves. Ignored for muted players.
- Examples
/me waves- Source
- commands/player.py
/pingeveryoneShow your ping
Shows your current round-trip time to the server in milliseconds.
- Examples
/ping- Source
- commands/player.py
/playerseveryoneList all players
Lists connected players per team and the slot count.
- Aliases
/who/list- Examples
/players- Source
- commands/player.py
/pm <player> <message>everyoneSend a private message
Private message to one player. Muted players cannot use it. Text is cut at the 200-character chat limit.
- Aliases
/msg/whisper/w- Examples
/pm Kiko nice build/w Kiko gg- Source
- commands/player.py
/scoreeveryoneShow current scores
Shows each team's score and player count.
- Aliases
/scores- Examples
/score- Source
- commands/player.py
/stats [player]everyoneShow player stats
Kills, deaths and K/D for you or another player.
- Examples
/stats/stats Kiko- Source
- commands/player.py
/team <team1|team2|spectator>everyoneChange your team
Switches team through exactly the same checks as the in-game team menu: the 5-second change cooldown, auto_balance, spectator rules and mode team locks. Also accepts spec.
- Examples
/team team2/team spectator- Source
- commands/player.py
Admin commands
/map, /mode, /restart and /endround are refused inside the Map Creator and Tutorial sessions, which own their map and mode.
Admins (after /admin)20 commands
/acreport [player]adminAnti-cheat suspicion scores (detection only)
Anti-cheat suspicion report. Without a name shows the top 5 suspicious humans; with a name (or #id) shows that player's score and the reasons. Detection only: it never punishes anyone.
- Examples
/acreport/acreport Suspect/acreport #7- Source
- commands/anticheat_admin.py
/acstats <player>adminRaw anti-cheat counters for a player
Raw anti-cheat counters for one player: K/D, shots, hits, headshots, per-weapon accuracy, aim snaps, reaction times and logged violations.
- Examples
/acstats Suspect- Source
- commands/anticheat_admin.py
/balanceadminForce team balance
Evens the teams now using the same balancer as auto_balance: bots first, only dead players move (nobody is killed), and carriers, VIPs, last survivors and mode-locked players are never moved.
- Examples
/balance- Source
- commands/server_commands.py
/ban <player> [duration] [reason]adminBan a player from the server
Bans the player's IP address and disconnects them. Duration forms: 90 (seconds), 30m, 2h, 1d, 1w, or perma/permanent/forever. If the second word is not a duration it becomes part of the reason and the ban is permanent. Bans are stored in bans.json and survive restarts; timed bans expire by themselves. There is no unban command: stop the server, delete the entry from bans.json, and start it again.
- Aliases
/b- Examples
/ban Cheater perma aimbot/ban Spammer 2h chat spam/ban Troll being a troll- Source
- commands/admin.py
/bots status|fill <count>|add <count> [team]|remove <count|name|all>|difficulty <casual|normal|hard|mixed>|debug <on|off|name>adminManage isolated server-owned bots
status shows the bot count and worker health. fill <n> switches to backfill with that target. add <n> [team] adds up to 12 bots per command (team 1/blue/team1 or 2/green/team2) and switches to admin-managed population. remove <n|name|all> removes bots (objective carriers are kept). difficulty <casual|normal|hard|mixed> applies to newly created bots. debug <on|off|name> shows a bot's current goal and path when debug visualisation is on. Changes last until restart.
- Examples
/bots status/bots fill 12/bots add 2 blue/bots remove all/bots difficulty hard- Source
- commands/server_commands.py
/endround [team]adminForce the current round to end (victory audio → stats screen → restart)
Forces the normal end-of-round sequence (victory audio, scoreboard, next round). 1 or 2 picks the winner; without it the current leader wins.
- Aliases
/endgame/forceend- Examples
/endround/endround 2- Source
- commands/server_commands.py
/fog <r> <g> <b>adminSet fog color
Sets the fog colour for everyone until the next map change (values 0–255).
- Examples
/fog 12 13 11- Source
- commands/server_commands.py
/god [player]adminToggle god mode
Toggles invulnerability for you or a named player.
- Examples
/god/god Kiko- Source
- commands/admin.py
/infiniteblocks <1|2|all> [on|off]adminGive a team an unlimited block wallet (TeamInfiniteBlocks)
Gives a team an unlimited block wallet (the retail TeamInfiniteBlocks rule). Without on/off shows the current state.
- Aliases
/infblocks- Examples
/infiniteblocks 2 on/infblocks all off- Source
- commands/hud_admin.py
/kick <player> [reason]adminKick a player from the server
Disconnects a player and announces <name> was kicked: <reason> to everyone. Default reason: “Kicked by admin”. They can reconnect; use /ban to keep them out.
- Aliases
/k- Examples
/kick Griefer/kick Griefer spawn camping teammates- Source
- commands/admin.py
/lockscore <1|2|all> [on|off]adminFreeze a team's score (TeamLockScore)
Freezes a team's score (the retail TeamLockScore rule). Without on/off shows the current state.
- Examples
/lockscore all on/lockscore 1 off- Source
- commands/hud_admin.py
/map <mapname>adminChange the current map
Changes map through the crash-safe reconnect flow (every client reloads). Without an argument shows the current map. Refused in the Map Creator and Tutorial sessions.
- Aliases
/changemap- Examples
/map/map CastleWars- Source
- commands/server_commands.py
/mode <tdm|ctf|cctf|zom|vip|mh|tc|dia|dem|oc|arena>adminChange the game mode
Changes game mode through the same reconnect flow. Accepts the short codes and aliases such as zombie. Without an argument shows the current mode.
- Aliases
/gamemode- Examples
/mode ctf/mode zombie- Source
- commands/server_commands.py
/mute <player>adminMute a player
Blocks the player's chat, /pm and /me. Mutes are not persistent: they end when the player reconnects.
- Examples
/mute Spammer- Source
- commands/admin.py
/netcode [selfrow on|off] [offset <n>] [interval <n>]adminLive-tune WorldUpdate self-row reconciliation (no restart)
Diagnostics only: shows or live-changes the WorldUpdate self-row settings from [debug]. Not needed for normal hosting.
- Aliases
/nc- Examples
/netcode- Source
- commands/server_commands.py
/restartadminRestart the current round/match
Restarts the round on the same map immediately, skipping the end-of-round screen, and announces “Match restarted!”.
- Aliases
/reset- Examples
/restart- Source
- commands/server_commands.py
/say <message>adminSend a server announcement
Broadcasts [SERVER] <message> on everyone's screen (up to 256 characters).
- Examples
/say Server restarts in 5 minutes- Source
- commands/server_commands.py
/time [seconds]adminShow or set remaining time
Without an argument shows the remaining round time. With a number, restarts the clock with that many seconds left.
- Examples
/time/time 300- Source
- commands/server_commands.py
/tp <player> [target] or /tp <x> <y> <z>adminTeleport a player
/tp <player> moves you to a player; /tp <player> <target> moves the first player to the second; /tp <x> <y> <z> moves you to coordinates inside the 512 × 512 × 240 map.
- Aliases
/teleport- Examples
/tp Kiko/tp Kiko Bob/tp 256 256 30- Source
- commands/admin.py
/unmute <player>adminUnmute a player
Lifts a mute.
- Examples
/unmute Spammer- Source
- commands/admin.py
Common questions
Can I run commands from the server console?+
No. Commands are typed in the in-game chat by a logged-in admin. The server console only shows logs; stop the server with Ctrl+C.
A command says “Player not found”.+
Names match by prefix from the start of the name. Use /players to see exact names, then type enough of the beginning to be unique.


