Project Zomboid Server Admin & RCON Commands: Server Admin Reference
Every Project Zomboid admin command an operator needs: enable RCON in servertest.ini, set access levels, kick and ban by username/SteamID/IP, broadcast and save, change live server options, spawn items and vehicles, and trigger weather and events - plus the headless-RCON gotchas (no-slash syntax, commands that need an online target, and /alarm needing an in-world admin).
Project Zomboid runs a dedicated server that exposes the standard Source RCON protocol, so the same admin verbs you type in the in-game admin chat can be run remotely over RCON. This reference covers enabling RCON, access levels, moderation, server control, spawning, and the events - and flags the commands that behave differently from a headless console.
How Project Zomboid RCON works
Project Zomboid's dedicated server implements the standard Valve Source RCON protocol (TCP), so any standard RCON client works. RCON is configured by two keys in the server config file <servername>.ini (default servertest.ini, found in the Zomboid/Server/ folder):
RCONPort=27015
RCONPassword=your_strong_password
RCON is disabled until RCONPassword is non-empty. Set RCONPort explicitly: it is a separate TCP port from the game's UDP port (default 16261), and the stock config commonly ships it as 27015.
Slash prefix: in the in-game admin chat you type commands with a leading / (e.g. /servermsg "text"). Over RCON or the server console you send the same verb without the slash (servermsg "text"). The tables below use the in-game form; drop the / for RCON.
Access levels
Project Zomboid has a graded admin hierarchy. Promote a player with setaccesslevel:
setaccesslevel "username" "moderator"
| Level | What it can do |
|---|---|
admin | Full control - every command, including server settings, bans, and spawning. |
moderator | Kick, ban, teleport, view player info, manage safehouses. Cannot change server settings. |
overseer | View player info and teleport. Cannot kick or ban. |
gm | Event/game-master tools: teleport, invisibility, spawning. No general moderation. |
observer | Invisible spectator - watch players, no world interaction. |
none | Removes elevated access (back to a normal player). |
grantadmin "username" is shorthand for setaccesslevel "username" "admin"; removeadmin "username" strips it.
Listing players
| Command | What it does |
|---|---|
players | Lists every currently connected player by username. |
Run players immediately before a kick/ban - the target must be spelled exactly as listed (quote usernames with spaces).
Moderation
| Command | Syntax | Notes |
|---|---|---|
kickuser | kickuser "username" -r "reason" | -r "reason" optional; reason is shown to the player and logged. |
banuser | banuser "username" -ip -r "reason" | -ip also bans the player's IP; -r optional. Without flags, bans the username only. |
unbanuser | unbanuser "username" | Lifts a username ban. |
banid | banid SteamID64 | Ban by Steam ID - survives a name change. |
unbanid | unbanid SteamID64 | |
banip | banip IPAddress | |
unbanip | unbanip IPAddress | |
voiceban | voiceban "username" -true / -false | Blocks or restores the player's voice chat. |
kickuser "Bob" -r "AFK on a full server"
banuser "Cheater" -ip -r "aimbot"
banid 76561198000000000
A username ban is the weakest: a player can rejoin under a new name. Prefer banid (SteamID) for repeat offenders, and add -ip for ban-evasion resistance.
Whitelist & accounts
| Command | Syntax | Notes |
|---|---|---|
adduser | adduser "username" "password" | Creates a whitelisted account (whitelist-mode servers). |
setpassword | setpassword "username" "newpassword" | Resets an account password. |
removeuserfromwhitelist | removeuserfromwhitelist "username" | |
addSteamID | addSteamID SteamID64 | Adds a Steam ID to the allowlist. |
removeSteamID | removeSteamID SteamID64 |
Server control
| Command | Syntax | Notes |
|---|---|---|
save | save | Forces an immediate world save. |
quit | quit | Saves, then shuts the server down. |
servermsg | servermsg "message" | Broadcasts a message to everyone. |
showoptions | showoptions | Prints the current server options. |
changeoption | changeoption optionName "newValue" | Changes one live server setting. |
reloadoptions | reloadoptions | Reloads server options and pushes them to clients. |
reloadalllua | reloadalllua | Reloads all server-side Lua. |
reloadlua | reloadlua "filename" | Reloads one server-side Lua file. |
checkModsNeedUpdate | checkModsNeedUpdate | Checks whether subscribed mods have updates. |
stats | stats none/file/console/all period | Sets where periodic server stats are written. |
help | help or help "command" | Lists commands, or shows help for one. |
servermsg "Server restarting in 5 minutes - find shelter."
changeoption PVP "false"
reloadoptions
save
Spawning & gameplay
These are game-master tools (admin / gm). The target player must be online.
| Command | Syntax | Notes |
|---|---|---|
additem | additem "username" "Module.Item" count | e.g. additem "Bob" Base.Axe 2. Count optional (defaults 1). |
removeitem | removeitem "Module.Item" count | Removes an item from the target. |
addxp | addxp "username" Perk=amount | Raw XP, not levels. e.g. addxp "Bob" Woodwork=2. |
addvehicle | addvehicle "ScriptName" "username or x,y,z" | Needs open space at the destination. |
addkey | addkey "username" "keyId" "name" | Gives a key to a player. |
godmode | godmode "username" | Toggles damage immunity. (Note: it is godmode, not godmod.) |
invisible | invisible "username" | Invisible to zombies. |
noclip | noclip "username" -true/-false | Walk through walls; omit the value to toggle. |
teleport | teleport "player1" "player2" | Moves player1 to player2 (one arg = move yourself there). |
teleportto | teleportto x,y,z | Teleport to coordinates (z = floor level). |
removemapsymbolsforuser | removemapsymbolsforuser "username" | Clears that player's map annotations. |
releasesafehouse | releasesafehouse | Releases your claimed safehouse. |
Weather & events
| Command | Syntax | Notes |
|---|---|---|
startrain | startrain intensity | Intensity 1-100; argument optional. |
stoprain | stoprain | |
startstorm | startstorm duration | Duration in game-hours. |
stopweather | stopweather | Ends all active weather. |
chopper | chopper | Helicopter event on a random player. |
gunshot | gunshot | Gunshot sound near a random player. |
lightning | lightning "username" | Username optional (random if omitted). |
thunder | thunder "username" | Username optional. |
createhorde | createhorde count "username" | e.g. createhorde 150 "Bob". |
alarm | alarm | Sounds a building alarm. |
Headless RCON gotchas
Some commands assume an admin player is in the world, so they behave differently from a remote RCON console:
alarmrequires the admin to be physically inside a room in-game - it does nothing from a headless RCON session with no in-world admin.createhorderequires the"username"argument over RCON - there is no "self" to default to like there is in-game.chopper,gunshot,lightning,thundertarget a random connected player; on an empty server they have nothing to act on.teleport,additem,addxp,addvehicleneed the target username to be online - they fail against a disconnected player.
MantaScope's web RCON connects to your Project Zomboid server from the browser - send these admin commands, read who is online, and manage bans without a desktop RCON tool - alongside player tracking, ban management, scheduled restarts, and chat alerts.