---
title: "Project Zomboid Admin Commands: Full List & Access Levels"
description: "Grant admin with setaccesslevel, then run every Project Zomboid server command — player moderation, spawning, weather, safehouses and XP, with Build 42 accuracy."
url: "https://www.gameserverkings.com/knowledge-base/project-zomboid/how-to-add-admins-and-common-commands/"
category: "Project Zomboid"
category_url: "https://www.gameserverkings.com/knowledge-base/project-zomboid/"
published: "2026-07-02T03:50:43.691Z"
updated: "2026-08-19T04:28:05.805Z"
source_format: "markdown"
site: "GameServerKings"
---

# Project Zomboid Admin Commands: Full List & Access Levels

Project Zomboid admin commands let you moderate players, spawn items and vehicles, teleport, control the weather, drop hordes, and reconfigure the server without restarting it. This guide covers how admin access works, where each command can be typed, and the full command set for Build 42 — the stable branch since 29 July 2026, currently 42.20.3 — plus the two commands that only exist on the older `legacy41` branch.

## 1. Access Levels

Project Zomboid has five named access levels plus `none`. You set them with `/setaccesslevel`. If you are working out which of your staff belongs on which level, our [game server moderation guide](/blog/game-server-moderation-tips/) covers the trade-offs:

| Level | Set with | Notes |
|---|---|---|
| `admin` | `/setaccesslevel "user" "admin"` | Full access to every command and the in-game admin panel |
| `moderator` | `/setaccesslevel "user" "moderator"` | Moderation-focused staff role |
| `overseer` | `/setaccesslevel "user" "overseer"` | Staff role below admin |
| `gm` | `/setaccesslevel "user" "gm"` | Game-master role, event and spawn oriented |
| `observer` | `/setaccesslevel "user" "observer"` | Watch-only staff role |
| `none` | `/setaccesslevel "user" "none"` | Strips the access level and returns the account to a normal player |

Build 42 gates individual actions behind **capabilities** rather than a fixed per-role command list — the 42.16.0 changelog references named capabilities such as `Capability.EditMapSymbols` and `Capability.ChangeAccessLevel`. Which capabilities each role holds is edited in the in-game admin panel, not in a config file, and no full role-to-command matrix is published. The reliable rule is: **`admin` can run everything below; anything else depends on how your server's capabilities are configured.**

The one place `SERVERNAME.ini` distinguishes levels by name is radio transmissions — `DisableRadioAdmin`, `DisableRadioGM`, `DisableRadioOverseer`, `DisableRadioModerator`, plus `DisableRadioStaff` for anyone holding an access level at all.

## 2. How to Set Admin with /setaccesslevel

A dedicated server creates a single default admin account the first time it boots and prompts you for its password on the console. That account is your way in — everyone else is promoted from it with `/setaccesslevel`.

You can skip the interactive prompt with launch arguments:

``` title="start-server.sh — non-interactive admin setup"
bash start-server.sh -adminusername BobTheAdmin75 -adminpassword ReallySecurePassword
```

- `-adminusername <name>` uses a different username for the default admin account. It does **not** remove an existing default admin.
- `-adminpassword <pass>` sets the default admin password automatically, bypassing the prompt — but only if no default admin user exists yet.
- `-coop` runs a co-op server instead of a dedicated one and disables the default admin account entirely.

To promote a second person once you are in, use `/setaccesslevel "PlayerName" "admin"` — or `"moderator"`, `"overseer"`, `"gm"`, `"observer"`, or `"none"` to demote.

> [!WARNING] `/grantadmin` and `/removeadmin` no longer exist
> Both commands were **removed in Build 35**. Guides that still tell you to type `/grantadmin "Username"` are years out of date and the command will simply fail. Use `/setaccesslevel "username" "admin"` to promote and `/setaccesslevel "username" "none"` to demote.

> [!TIP] Use the panel Console tab for the first login
> On your [Project Zomboid game server](/games/project-zomboid/) you do not need SSH to reach the server console. Open the **Console** tab in your panel and type commands there **without** a leading slash — that is the fastest route for `setaccesslevel`, `adduser` and `banid`, all of which you may need before you can get in-game.

## 3. Using the In-Game Admin Panel

The admin panel is a UI, not a command, and there is no key to press for it. Once your account holds a role that carries the admin tool, a round **ADMIN** button appears in the strip of icons down the left edge of the screen, directly under the round **CLIENT** button. Click it to open the panel and click it again to close it. It is multiplayer-only — the button is only built when your game is connected to a server.

> [!WARNING] There is no `F1` admin panel
> In the game's own key binding list `F1` is **Toggle Survival Guide**, and that list contains no entry for the admin panel at all. Guides that tell you to press `F1` — or any other key — are wrong. The `ADMIN` button is the way in.

### What the panel does that chat commands cannot

| Panel button | Why you would use it instead of chat |
|---|---|
| **See Roles** | Open a role, tick or untick its capabilities, **Save**. This is the only place capabilities are edited |
| **See Users** | Right-click a player row for **Set Role**, teleport, kick, ban, inventory inspection and user logs. You can only set a role at or below your own |
| **Admin Power** | Toggle your own cheats: invisible, god mode, noclip, fast move, instant timed actions, unlimited carry, endurance and ammo, know all recipes, build, farming, fishing, health, mechanics, moveable and animal cheats, see all, hear all, zombies don't attack, brush tool, LootZed and the loot log |
| **Sandbox Options** | Edit the sandbox settings of the running world and hit **Apply**. `/changeoption` only reaches `SERVERNAME.ini` options — it does not touch sandbox values |
| **Item List** | Search the item list and spawn from it, so you do not need to know the `module.item` ID |
| **Zone Editor**, **Safezone**, **Non-PVP Zone**, **See Safehouses** | Draw and manage zones and safehouses on the map |
| **See Tickets** | Read and answer the tickets players send in |
| **Mini Scoreboard**, **Show Statistics**, **PVP Log Tool**, **See Server Options** | Live views of who is connected, server statistics, PVP history and the current option values |

Every button is gated on its own named capability. A button that is greyed out is not broken — your role does not hold the capability behind it.

> [!TIP] The ADMIN button is not there
> When your role carries no admin tool the button is hidden, not greyed out. Confirm the promotion actually landed, then disconnect and rejoin so your client picks up the new role.

## 4. Where Commands Are Typed

| Location | How | Slash prefix? |
|---|---|---|
| **In-game chat** | Press `T`, type the command | Yes — `/players` |
| **Server console** | The terminal window running the server, or your panel Console tab | No — `players` |
| **RCON** | Any RCON client, default port `27015` | No |
| **systemd FIFO** | `echo "save" > /opt/pzserver/zomboid.control` | No |

RCON is enabled with the `RCONPort` (default `27015`) and `RCONPassword` keys in `SERVERNAME.ini`.

> [!CAUTION] An RCON password is not optional
> `RCONPassword` ships blank and the RCON listener binds to all interfaces by default. Set a strong password before you expose the port, or restrict the listener to localhost with the `rconlo` system property (added in 41.67) and reach it over an SSH tunnel instead. On Build 42 before 42.18.0, running `players` over RCON could throw a `java.nio.BufferOverflowException` — update if you hit that.

> [!IMPORTANT] Some commands need a position, so the console cannot run them alone
> `/alarm` sounds an alarm at the admin's own position and only works if you are standing in a room, so it is in-game only. `/createhorde`, `/lightning` and `/thunder` treat the username argument as optional in-game (it defaults to you) but **require** it when run from the server console or RCON, because the console has no character to anchor to.

Run `/help` for the live command list on your build, or `/help <command>` for one command's usage string. Some things are case-sensitive: `Base.Axe` works, `base.axe` does not.

## 5. Players, Whitelist and Accounts

| Command | What it does |
|---|---|
| `/players` | List all connected players |
| `/list` | No help text shipped. Build 42 only |
| `/help` or `/help "command"` | List all commands, or show one command's help text |
| `/servermsg "My Message"` | Broadcast a message to every connected player |
| `/adduser "username" "password"` | Create an account on a whitelisted server |
| `/setpassword "username" "newpassword"` | Change an existing user's password |
| `/removeuserfromwhitelist "username"` | Remove a user from the whitelist |
| `/addsteamid "steamid"` | Add a SteamID to the server's allowed-SteamID list |
| `/removesteamid "steamid"` | Remove a SteamID from that list |

`/adduser` matters only when `Open=false` in `SERVERNAME.ini` — with `Open=true` clients create their own account on first join. See [Project Zomboid Server Settings and Config Files](/knowledge-base/project-zomboid/configuration-overview/) for the rest of the whitelist options.

## 6. Kicks, Bans and Mutes

| Command | What it does |
|---|---|
| `/kickuser "username" -r "reason"` | Kick a player, with an optional reason. Also accepted as `/kick` |
| `/banuser "username" -ip -r "reason"` | Ban a player. `-ip` also bans their IP, `-r` sets a reason |
| `/unbanuser "username"` | Lift a username ban |
| `/banid <SteamID>` | Ban a SteamID — works while the player is offline |
| `/unbanid <SteamID>` | Lift a SteamID ban |
| `/banip <IP>` | Ban an IP address |
| `/unbanip <IP>` | Lift an IP ban |
| `/voiceban "username" -true` | Block a player's voice chat. `-false` unblocks |
| `/removemapsymbolsforuser "username"` | Wipe every shared map symbol a user has drawn |

The command is registered as `kick` but the usage string the game ships says `kickuser`; both forms are accepted, and `/help kick` will show the exact string your build expects.

`banip` and `unbanip` were restored for Steam servers on direct connections in Build 42.19.0 — on older Build 42 releases they may not apply to Steam-authenticated joins.

## 7. Spawning Items, Keys and Vehicles

| Command | What it does |
|---|---|
| `/additem "username" "module.item" count` | Give an item. Omit the username to give it to yourself; count is optional |
| `/removeitem "module.item" count` | Remove items from yourself. Count `0` removes all of that type |
| `/addkey "username" "keyId" "name"` | Give a key. Name is optional |
| `/addvehicle "script" "user or x,y,z"` | Spawn a vehicle on a player or at coordinates |

``` title="In-game chat — spawning"
/additem "rj" Base.Axe 5
/removeitem Base.Axe 5
/addkey "rj" "7295" "Gift Key"
/addvehicle "Base.VanAmbulance" "rj"
```

> [!IMPORTANT] Item and vehicle names are internal IDs, not display names
> `/additem` takes a `module.item` pair such as `Base.Axe`, and it is case-sensitive — `base.axe` fails. Vehicle scripts are the same: the **Chevalier Dart** is `Base.SmallCar`, the **Franklin Valuline** is `Base.Van`, the **Masterson Horizon** is `Base.SmallCar02` and the **Dash Elite** is `Base.ModernCar`. Look the ID up on the item's or vehicle's wiki page before typing it.

## 8. Granting XP

`/addxp` takes an internal perk name, not the skill's display name:

``` title="In-game chat — granting XP"
/addxp "rj" Woodwork=2
```

Fourteen perk names do not match the skill's in-game name at all. These are the ones that catch people out:

| Skill (in-game) | Perk name for `/addxp` |
|---|---|
| Carpentry | `Woodwork` |
| First Aid | `Doctor` |
| Electrical | `Electricity` |
| Foraging | `PlantScavenging` |
| Running | `Sprinting` |
| Lightfooted | `Lightfoot` |
| Sneaking | `Sneak` |
| Short Blade | `SmallBlade` |
| Short Blunt | `SmallBlunt` |
| Long Blunt | `Blunt` |
| Welding | `MetalWelding` |
| Blacksmithing | `Blacksmith` |
| Agriculture | `Farming` |
| Animal Care | `Husbandry` |

The remaining twenty use their display name with spaces removed: `Axe`, `LongBlade`, `Spear`, `Maintenance`, `Aiming`, `Reloading`, `Fitness`, `Strength`, `Nimble`, `Cooking`, `Mechanics`, `Tailoring`, `Masonry`, `Pottery`, `Glassmaking`, `Carving`, `Fishing`, `Trapping`, `Butchering` and `Tracking`.

## 9. Movement, God Mode and Invisibility

| Command | What it does |
|---|---|
| `/teleport "playername"` | Teleport yourself to a player |
| `/teleport "player1" "player2"` | Teleport player1 to player2 |
| `/teleportplayer "player1" "player2"` | Teleport one player to another (Build 42) |
| `/teleportto x,y,z` | Teleport to map coordinates, e.g. `/teleportto 10000,11000,0` |
| `/noclip "username" -true` | Pass through walls and structures. Toggles if no value is given |
| `/godmode "username" -true` | Make a player invincible. Defaults to you if no username |
| `/godmodeplayer "username" -true` | Make a specific player invincible (Build 42) |
| `/invisible "username" -true` | Hide a player from zombies. Defaults to you if no username |
| `/invisibleplayer "username" -true` | Hide a specific player from zombies (Build 42) |

After a teleport, wait for the map chunk to stream in before moving — the character can appear to be stuck in a void for a second or two.

> [!NOTE] `godmod` and `godmode` are both accepted
> The command is registered internally as `godmod` (and `godmodplayer`), which is a known typo in the game. Both the misspelled and correctly spelled forms work, and the same applies to `godmodplayer` / `godmodeplayer`. This is confirmed as still present in 42.17.0.

## 10. Zombies and Events

| Command | What it does |
|---|---|
| `/createhorde count "username"` | Spawn a horde near a player, e.g. `/createhorde 150 "rj"` |
| `/createhorde2` | No help text shipped. A second horde-spawn variant by name |
| `/removezombies` | No help text shipped. Removes zombies by name |
| `/remove` | No help text shipped. Build 42 only |
| `/chopper` | Trigger the helicopter event on a random player |
| `/gunshot` | Play a gunshot sound near a random player |
| `/alarm` | Sound a building alarm at your position. You must be inside a room |

> [!WARNING] Six commands ship with no help text at all
> `/addtosafehouse`, `/kickfromsafehouse`, `/createhorde2`, `/list`, `/remove` and `/removezombies` return an untranslated placeholder such as `UI_ServerOptionDesc_RemoveZombies` instead of a description, both in `/help` and on the wiki. They exist and they run, but their arguments are undocumented by the developers. Test them on a backup world before using them on a live server.

## 11. Weather

| Command | What it does |
|---|---|
| `/startrain "intensity"` | Start rain. Optional intensity is 1-100 |
| `/stoprain` | Stop the rain |
| `/startstorm "duration"` | Start a storm. Optional duration is in in-game hours |
| `/stopweather` | Stop all weather |
| `/thunder "username"` | Thunder at a player's position |
| `/lightning "username"` | Lightning at a player's position |

`/thunder` and `/lightning` take an optional username in-game but require one from the console.

## 12. Server Configuration and Lifecycle

| Command | What it does |
|---|---|
| `/showoptions` | Print every current server option and its value |
| `/changeoption optionName "newValue"` | Change a server option live |
| `/reloadoptions` | Re-read `SERVERNAME.ini` from disk and push it to clients |
| `/save` | Force a world save |
| `/quit` | Save and shut the server down |
| `/checkModsNeedUpdate` | Check whether any Workshop mod has been updated. Writes the answer to the log |
| `/reloadlua "filename"` | Reload a single Lua file on the server |
| `/reloadalllua` | Reload every Lua script on the server (Build 42) |
| `/stats none/file/console/all period` | Set or clear server statistics output, e.g. `/stats file 10` |
| `/log "Type" "Level"` | Change the log verbosity of one subsystem |
| `/worldgen start` | Control the world generator: `start`, `recheck`, `stop`, `status` (Build 42) |

`/log` accepts these types:

``` title="Valid /log types"
General Network Multiplayer Voice Packet NetworkFileDebug Lua Mod Sound
Zombie Combat Objects Fireplace Radio MapLoading Clothing Animation Asset
Script Shader Input Recipe ActionSystem IsoRegion UniTests FileIO
Ownership Death Damage Statistic Vehicle Checksum
```

Levels are `Trace`, `Debug`, `General`, `Warning` and `Error`.

The `/changeoption` and `/reloadoptions` pair is the useful workflow: edit `SERVERNAME.ini` on disk while the server runs, then `/reloadoptions` to make the change live without a restart. `/changeoption` does the same for a single value without touching the file. For what each option means, see [Project Zomboid Server Settings and Config Files](/knowledge-base/project-zomboid/configuration-overview/).

## 13. Safehouse Commands

| Command | What it does |
|---|---|
| `/releasesafehouse` | Release a safehouse you own |
| `/addtosafehouse` | No help text shipped. Adds a player to a safehouse by name |
| `/kickfromsafehouse` | No help text shipped. Removes a player from a safehouse by name |

These are only relevant when `PlayerSafehouse=true` or `AdminSafehouse=true` in `SERVERNAME.ini`.

## 14. Build 41 vs Build 42

Build 42 added seventeen commands that Build 41 does not have: `addkey`, `addsteamid`, `addtosafehouse`, `banip`, `unbanip`, `godmodplayer`, `invisibleplayer`, `kickfromsafehouse`, `list`, `reloadalllua`, `remove`, `removeitem`, `removemapsymbolsforuser`, `removesteamid`, `setpassword`, `teleportplayer` and `worldgen`. It also added `none` as a valid `/setaccesslevel` value.

Two commands documented for Build 41 (41.78.16) are **not** in the Build 42 list:

| Command | What it does |
|---|---|
| `/clear` | Clear the server console window |
| `/replay "playername" -record/-play/-stop filename` | Record or replay a player's movement, e.g. `/replay user1 -record stadion.bin` |

On the `legacy41` branch `/replay` is a genuinely useful anti-cheat tool. Do not expect it to work on Build 42.

## 15. FAQ

### How do I make myself admin in Project Zomboid?

The dedicated server creates one admin account on first boot and prompts you for its password in the console. Log in with that username and password. To promote anyone else, run `/setaccesslevel "username" "admin"` from in-game chat, or `setaccesslevel "username" "admin"` from the server console or your panel Console tab.

### Why does `/grantadmin` not work?

Because it was removed from the game in Build 35, along with `/removeadmin`. Any guide still recommending it predates that change. Use `/setaccesslevel "username" "admin"` instead, and `/setaccesslevel "username" "none"` to demote someone back to a normal player.

### Do I type the slash or not?

In-game chat needs the leading slash: `/players`. The server console, your panel Console tab and RCON do not: `players`. Everything else about the command is identical between the two.

### How do I see every command my server actually supports?

Type `/help` in chat or `help` in the console for the full list on your exact build, and `/help <command>` for one command's usage string. That is authoritative for your version — mods can also register their own commands, which will show up there and nowhere else.

### How do I spawn an item or a car?

`/additem "username" "module.item" count` for items and `/addvehicle "script" "user or x,y,z"` for vehicles. Both take internal IDs, not display names, and both are case-sensitive: `Base.Axe` works, `base.axe` does not. The Chevalier Dart, for instance, is `Base.SmallCar`.

### How do I change a server setting without restarting?

Either run `/changeoption optionName "newValue"` for a single value, or edit `SERVERNAME.ini` on disk and then run `/reloadoptions` to push the whole file to the running server and its clients. Use `/showoptions` first to see the current values and confirm you have the option name right.

### Can I run these commands over RCON?

Yes. Set `RCONPassword` and `RCONPort` (default `27015`) in `SERVERNAME.ini` and connect with an RCON client. Commands are typed without the leading slash, and commands that depend on your character's position — `/alarm` in particular — cannot work from RCON at all.

## 16. What to Read Next

- [Getting started with your Project Zomboid server](/knowledge-base/project-zomboid/getting-started-with-your-server/) — first boot, ports and connecting
- [Project Zomboid Server Settings and Config Files](/knowledge-base/project-zomboid/configuration-overview/) — every option you can change with `/changeoption`
- [How to install mods for Project Zomboid](/knowledge-base/project-zomboid/how-to-install-mods/) — Workshop IDs, and the `/checkModsNeedUpdate` workflow

---

Made with 💜 by GameServerKings
