Want to run your own Rust server with mods? This guide walks you through setting up a dedicated server from scratch and installing Oxide (uMod) with actual commands you can copy and paste.
What Do You Need to Set Up a Rust Server?
Let's start with the minimum requirements.
Hardware
| Resource | Minimum | Recommended |
|---|---|---|
| RAM | 8GB (3-5 players) | 16GB+ (10+ players) |
| CPU | 3GHz+ single-thread | 3.5GHz+, 4+ cores |
| Storage | 15GB (SSD preferred) | 20GB+ (NVMe preferred) |
| OS | Windows 10/11, Ubuntu 20.04+ | — |
RAM estimates by scale:
- 10 players / map size 3000: 8GB
- 50 players / map size 3500: 12-16GB
- 100 players / map size 4000: 16-24GB
Rust servers are heavily single-threaded, so clock speed matters more than core count.
Software
- SteamCMD — Valve's command-line tool for downloading server files
- Rust Dedicated Server — Steam App ID:
258550. Free to download via SteamCMD
How Do You Install the Server with SteamCMD?
Download SteamCMD
Windows
- Create folders (e.g.,
C:\steamcmdandC:\rust_server) - Download the ZIP from the official SteamCMD page
- Extract to
C:\steamcmdand runsteamcmd.exe. It will self-update on first launch
Linux (Ubuntu/Debian)
sudo dpkg --add-architecture i386
sudo apt-get update
sudo apt-get install -y lib32gcc-s1 lib32stdc++6 curl wget screen
mkdir ~/steamcmd && cd ~/steamcmd
curl -sqL "https://steamcdn-a.akamaihd.net/client/installer/steamcmd_linux.tar.gz" | tar zxvf -
Download the Rust Server
Windows (one-liner)
C:\steamcmd\steamcmd.exe +force_install_dir "C:\rust_server" +login anonymous +app_update 258550 validate +quit
Linux
./steamcmd.sh +force_install_dir "/home/steam/rust_server" +login anonymous +app_update 258550 validate +quit
Key points:
login anonymousworks fine — Rust Dedicated Server supports anonymous downloadvalidaterepairs corrupted files. Always use it on first install- Download size is approximately 9GB
How Do You Launch and Configure the Server?
Startup Script
Windows — start_server.bat
@echo off
:start
RustDedicated.exe -batchmode ^
+server.port 28015 ^
+server.queryport 28016 ^
+rcon.port 28017 ^
+rcon.password "CHANGE_THIS_PASSWORD" ^
+rcon.web 1 ^
+server.level "Procedural Map" ^
+server.seed 12345 ^
+server.worldsize 3500 ^
+server.maxplayers 50 ^
+server.hostname "My Rust Server" ^
+server.identity "myserver" ^
-logfile "output.log"
goto start
The goto start loop auto-restarts the server after crashes.
Linux — start_server.sh
#!/bin/bash
./RustDedicated -batchmode -nographics \
+server.port 28015 \
+server.queryport 28016 \
+rcon.port 28017 \
+rcon.password "CHANGE_THIS_PASSWORD" \
+rcon.web 1 \
+server.level "Procedural Map" \
+server.seed 12345 \
+server.worldsize 3500 \
+server.maxplayers 50 \
+server.hostname "My Rust Server" \
+server.identity "myserver" \
-logfile "output.log"
chmod +x start_server.sh
screen -S rust ./start_server.sh
Use screen to keep the server running after SSH disconnect. Reattach with screen -x rust.
Key Parameters
| Parameter | Description | Default / Notes |
|---|---|---|
server.port | Game connection port (UDP) | 28015 |
server.queryport | Steam browser query (UDP) | 28016 |
rcon.port | Remote admin (TCP) | Custom (28017 recommended) |
rcon.web | Enable web RCON | Set to 1 |
server.level | Map type | "Procedural Map" |
server.seed | Map generation seed | 0–2147483647 |
server.worldsize | Map size | 1000–6000 (recommended: 3000–4500) |
server.maxplayers | Max concurrent players | Based on specs |
server.identity | Internal server name | Becomes the world data folder name |
server.cfg
You can fine-tune settings through a config file in addition to command-line arguments.
File location: server/<server.identity>/cfg/server.cfg
Example: C:\rust_server\server\myserver\cfg\server.cfg
server.hostname "My Rust Server"
server.description "Vanilla server. Wiped monthly."
server.maxplayers 50
server.worldsize 3500
server.saveinterval 600
server.pve false
Important notes:
- No
+prefix needed in server.cfg (unlike command-line arguments) - Never manually edit
serverauto.cfg— the server overwrites it automatically - The folder is created after the first server launch, so start the server once before creating server.cfg
Port Forwarding
To allow external connections, you need router port forwarding and firewall rules.
Required Ports
| Port | Protocol | Purpose |
|---|---|---|
| 28015 | UDP | Game connections |
| 28016 | UDP | Steam server browser |
| 28017 | TCP | RCON (remote admin) |
Windows Firewall
netsh advfirewall firewall add rule name="Rust Game" dir=in action=allow protocol=UDP localport=28015
netsh advfirewall firewall add rule name="Rust Query" dir=in action=allow protocol=UDP localport=28016
netsh advfirewall firewall add rule name="Rust RCON" dir=in action=allow protocol=TCP localport=28017
Forward these ports to your server's local IP address in your router settings. The interface varies by router model — search for your router name + "port forwarding" for specific instructions.
Connection Test
Press F1 in the Rust client to open the console, then type:
client.connect localhost:28015
For external connections, use your public IP:
client.connect 203.0.113.1:28015
How Do You Install Oxide (uMod) for Mods?
What Is Oxide?
Oxide (officially rebranded as uMod) is a modding framework for Rust servers. It lets you add C# plugins that extend server functionality — from changing gather rates to adding teleportation systems.
The project started as "Oxide" and was rebranded to "uMod" in 2017 to support multiple games. Both names are still used interchangeably in the community.
Installation Steps
- Stop the server completely
- Download from umod.org/games/rust or GitHub Releases
- Windows:
Oxide.Rust.zip - Linux:
Oxide.Rust-linux.zip
- Windows:
- Extract the ZIP — you'll see a
RustDedicated_Data/folder - Copy this folder into your server root directory, overwriting existing files
- Start the server
- Type
oxide.versionin the console — if it shows a version number, you're good
Directory Structure
After first launch with Oxide, an oxide/ folder is created in your server root:
oxide/
plugins/ ← Place .cs plugin files here
config/ ← Plugin config files (auto-generated)
data/ ← Plugin data storage
logs/ ← Log files
lang/ ← Localization files
Installing Plugins
- Download
.csplugin files from umod.org/plugins - Drop them into
oxide/plugins/ - No restart needed — Oxide watches the folder and automatically compiles and loads new plugins
You'll see [Oxide] Loading plugin PluginName v1.0.0 in the console on success.
Management Commands
oxide.load PluginName Load a plugin
oxide.unload PluginName Unload a plugin
oxide.reload PluginName Reload (after config changes)
oxide.plugins List loaded plugins
Handling Rust Updates
Rust pushes updates every Thursday (Pacific Time). Each update changes Assembly-CSharp.dll, which breaks Oxide.
Update procedure:
- Update Rust server via SteamCMD
- Check Oxide.Rust GitHub Releases for a matching version
- Download and reinstall (overwrite copy)
- Restart the server
The Oxide team typically releases a compatible version within the same day. Until it's out, run vanilla or keep the server offline.
What Are the Best Plugins to Install?
Server Management
| Plugin | Description |
|---|---|
| Gather Manager | Adjust gather rates per resource. Essential for 2x/5x servers |
| Stack Size Controller | Change max stack sizes for items |
| Better Chat | Add group names, colors, and prefixes to chat |
| Admin Radar | Track player positions for moderation |
Gameplay
| Plugin | Description |
|---|---|
| Teleportation | Set homes, teleport to friends |
| Kits | Create starter kits and VIP reward sets |
| Backpacks | Expandable inventory backpacks |
| Economics | In-server currency system |
Events
| Plugin | Description |
|---|---|
| Raidable Bases | Spawn NPC bases for PvE content |
| Dangerous Treasures | Loot crate battle events |
Quality of Life
| Plugin | Description |
|---|---|
| AutoDoors | Automatically close doors after a delay |
| Rustcord | Real-time Discord integration for kills, events, and server info |
| No Escape | Block logout and teleportation during combat |
Find plugins at umod.org/plugins and codefling.com. Codefling has more paid plugins but generally higher quality.
Permission Basics
Control who can use what with Oxide's permission system:
oxide.group add vip Create a group
oxide.usergroup add PlayerName vip Add a player to a group
oxide.grant group vip teleport.use Grant permission to a group
oxide.grant user PlayerName gather.rate2x Grant directly to a player
Two groups exist by default: default (all players) and admin.
Can You Set Up a Server More Easily with a VPS?
If SteamCMD, port forwarding, and weekly Oxide updates sound like a hassle, a game-focused VPS can skip most of that work.
Game VPS services like XServer VPS for Game and ConoHa for GAME offer Rust server templates that set everything up automatically. Select the template, sign up, and you're done — no SteamCMD, no port forwarding.
Home Server vs VPS
| Home Server | VPS | |
|---|---|---|
| Cost | Electricity only | ~$12/month+ |
| Setup | Manual (this guide) | Template-based, automatic |
| Port forwarding | Required | Not needed |
| Network quality | Depends on home internet | Datacenter-grade |
| Uptime | Only while PC is on | 24/7/365 |
| Best for | 3-5 player casual | 10+ players, stable hosting |
For a casual group of 3-5 friends, a home server works fine. For 10+ players with 24/7 uptime, a VPS makes more sense overall.
Wrapping Up
Setting up a Rust server isn't hard once you know the steps:
- Download via SteamCMD using App ID
258550 - Create a startup script and open ports (UDP 28015, 28016 / TCP 28017)
- Install Oxide (uMod) by overwriting
RustDedicated_Data/ - Drop plugin
.csfiles intooxide/plugins/— that's it for mods
Just remember to reinstall Oxide after each weekly Rust update.
If the local setup feels like too much, game VPS services like ConoHa for GAME and XServer VPS for Game let you spin up a server in minutes with their Rust templates.