The short answer
Run commands from the in-game console with F1, or over RCON from your
control panel or a client like RustAdmin. The essentials are
global.ban, global.kick, admin.mutevoice,
global.say, global.status and server.save. Finish any
permission change with server.writecfg.
Key points
- The console needs admin rights. RCON does not, which is why you set the first admin over RCON.
- Ban by Steam 64 ID rather than name. Names change, IDs do not.
- AuthLevel 1 is moderator, AuthLevel 2 is owner. Only the second can manage staff.
server.writecfgpersists changes. Without it they die at the next restart.global.restartwarns players for 300 seconds. Use it instead of a hard stop.
Running commands
There are two routes into the same command set, and which one you use depends on where you are standing.
- In-game console
- Press F1, make sure the CONSOLE tab is selected, type the command and press Enter. You need admin rights on the server already.
- RCON
- Connect with your control panel console or an external client. Works from outside the game, does not require you to be playing, and is how you grant the first admin in the first place.
Many commands accept either a player name or a Steam 64 ID. Prefer the Steam ID. Display names can be changed, duplicated or made deliberately confusing, and a ban aimed at a name is a ban that can be walked around in thirty seconds.
The commands you will actually use
There are dozens below, but day to day server administration comes down to about eight of them. If you learn nothing else, learn these.
| Command | What it does |
|---|---|
global.status | Who is connected, plus server statistics. Your first look at any problem. |
global.kick "player" | Remove someone for now. They can come straight back. |
global.banid "id" "reason" | Ban by Steam 64 ID with a reason recorded against it. |
global.unban "id" | Reverse a ban. |
admin.mutevoice "player" | Voice mute. Often the proportionate response where a ban is not. |
global.say "text" | Announce something to everyone in chat. |
server.save | Force a save before you change anything risky. |
server.writecfg | Persist config changes. The one people forget. |
Full command reference
Grouped by prefix, because that is how Rust organises them and how you will remember them. An asterisk in the notes column means the command was flagged in the original reference as having a caveat worth checking against the current game version.
Player and server management
Bans, kicks, admin roles, chat and restarts. The commands you will use most.
| Syntax | Accepted values | Description | Notes |
|---|---|---|---|
global.ban "player" "reason" |
player name | Ban a player from the game | "reason" is optional |
global.banid "player" "reason" |
Steam64 ID | Ban a player from the game by Steam ID | "reason" is optional |
global.banlist |
None | Displays a list of banned users | |
global.banlistex |
None | Displays a list of banned users with reasons and usernames | |
global.kick "player" |
player name/Steam64 ID | Kick a player from the server | |
global.kickall "reason" |
None | Kick everyone from the game | "reason" is optional |
global.listid |
None | Displays a list of banned users by ID | |
global.moderatorid "id" |
Steam64 ID | Make a player a server moderator | AuthLevel 1, (Moderator) |
global.ownerid "id" |
Steam64 ID | Make a player a server owner | AuthLevel 2, (Admin) |
global.players |
None | Prints out currently connected players | |
global.quit() |
None | Leave the game | |
global.removemoderator "id" |
Steam64 ID | Remove a moderator | |
global.removeowner "id" |
Steam64 ID | Remove an owner | |
global.restart |
None | Restart the server with a 300 seconds warning at 5 second intervals | |
global.say "text" |
string | Sends a message to all players in chat | |
global.status |
None | Prints out currently connected players and server stats | Only available for admins |
global.unban "id" |
Steam64 ID | Unban a player from the game | |
global.users() |
None | Shows user info for players on server |
Muting
Voice and text chat muting, applied per player.
| Syntax | Accepted values | Description | Notes |
|---|---|---|---|
admin.mutevoice "player" |
player name/Steam64 ID | Prevent a player from speaking in-game | * |
admin.unmutevoice "player" |
player name/Steam64 ID | Allow a player to speak in-game | * |
admin.mutechat "player" |
player name/Steam64 ID | Prevent a player from sending messages via in-game chat | * |
admin.unmutechat "player" |
player name/Steam64 ID | Allow a player to send messages via in-game chat | * |
Server control
Saving, config loading, backups and start or stop.
| Syntax | Accepted values | Description | Notes |
|---|---|---|---|
server.backup |
None | Backup the server folder | |
server.readcfg |
None | Load server config | |
server.save |
None | Force a save-game | |
server.start |
None | Starts a server | |
server.stop |
None | Stops a server | |
server.writecfg |
None | Save all config changes |
Entities
Finding, debugging and spawning entities in the world.
| Syntax | Accepted values | Description | Notes |
|---|---|---|---|
entity.debug_lookat |
None | Enable debugging for the entity you are looking at | |
entity.find_entity [entity] |
Entity name | Find the position of all entities with the provided name | |
entity.find_group [entity_group] |
Entity group name | Find the position of all entity groups with the provided name | |
entity.find_id [id] |
Entity ID | Find the position of an entity with the given ID | |
entity.find_parent |
None | Find the position of all parent entities | |
entity.find_radius [radius] |
Integer | Find the position of all entities in the given radius | |
entity.find_self |
None | Find the position of the player entity | |
entity.find_status [status] |
Entity status | Find an entity with the given status | |
entity.spawn [entity] |
Entity name | Spawn an entity where you are looking | |
entity.spawnat [entity] [worldPos] |
Entity name/position | Spawn an entity at the specified position in the world | |
entity.spawnhere [entity] [distance] |
Entity name/integer | Spawn an entity nearby at the specified distance away from the player | |
entity.spawnitem [entity] |
Entity item name | Spawn an item in the world |
Crafting
Adding to and cancelling the crafting queue.
| Syntax | Accepted values | Description | Notes |
|---|---|---|---|
craft.add [id] |
Item ID | Add an item to your crafting queue | You must have the appropriate items in your inventory |
craft.cancel [id] |
Item ID | Cancel the crafting task of the specified item | |
craft.canceltask |
None | Cancel the item currently being crafted |
Weather
Rain, wind, cloud and fog control.
| Syntax | Accepted values | Description | Notes |
|---|---|---|---|
weather.rain [value] |
Value between 0 and 1.0, 0 is none, 1.0 is 100% | Set the rain factor in the server | Using anything other than a valid value will set it to auto |
Time
Fast-forwarding the in-game clock.
| Syntax | Accepted values | Description | Notes |
|---|---|---|---|
env.addtime 0-24 |
Integer between 0-24 | Fast-forward time by the specified number of hours |
Chat
Printing text to chat.
| Syntax | Accepted values | Description | Notes |
|---|---|---|---|
chat.say "text" |
string | Prints your text in the chat |
Garbage collection
Manual memory cleanup.
| Syntax | Accepted values | Description | Notes |
|---|---|---|---|
gc.collect |
None | Collect the garbage dump |
Auth levels
Rust expresses admin rights as an auth level, and the two commands that set them map onto it directly.
- AuthLevel 1, moderator
- Granted with
global.moderatorid "id". Full access to admin commands, no ability to add or remove staff. - AuthLevel 2, owner
- Granted with
global.ownerid "id". Everything a moderator can do, plus managing the staff list itself.
Give AuthLevel 2 sparingly. An owner can add another owner, or remove you. For everyone who is not a co-owner, moderator is the correct level, and it costs them nothing in day-to-day moderation ability.
The full process, including finding a Steam 64 ID and why the change does not stick without
writecfg, is in our guide on
adding an admin to your Rust server.
Running a server people want to play on
The commands are the easy part. What keeps a server populated is how the person holding them behaves, and that is not something a reference table can give you.
- Be fair and consistent
- Apply rules the same way to everyone, including people you like. Inconsistent enforcement does more damage to a community than under-enforcement.
- Communicate clearly
- Tell players about changes, rules and events before they discover them the hard way. In-game chat, Discord or a website all work, as long as one of them is the known place to look.
- Stay calm
- Including with rule breakers. A composed response defuses most situations that an annoyed one escalates.
- Ask for feedback
- Your players notice things you do not, particularly about balance and about each other.
- Be present
- An admin who is around is worth more than one with a longer ban list. Visible presence prevents most of what you would otherwise have to punish.
If the problems you are moderating are performance problems rather than people problems, our guide on improving Rust server performance covers the convars and plugin habits that actually move server FPS.