Rust ยท Server setup

How to set up a Rust server from scratch

Full setup walkthrough for a Rust dedicated server: deploy via SteamCMD, configure startup parameters (world size, seed, max players), generate procedural or load a custom map (RustMaps.com, .map files), install Oxide (uMod) or Carbon for plugins, set up ownerid/moderatorid admin auth, tune gather / craft / loot rates, schedule weekly wipes, and fix the common Rust server errors.

What you need first

  • An active Rust plan on Fatality Servers. See our Rust hosting plans.
  • A Steam copy of Rust for each player (the server itself is free).
  • Enough RAM โ€” Rust is hungry. A 100-slot 3500-world-size server wants 10-16 GB; a 200-slot modded server wants 24+ GB; popular wipe-day servers at 300+ players can push past 32 GB.
  • A basic SFTP client (FileZilla, WinSCP) and a plain text editor.
  • Your Steam64 ID โ€” for setting yourself as server owner. Find it at steamid.io by pasting your profile URL.
๐Ÿ’ก

Sizing note: Rust's server is very CPU-hungry on wipe day (everyone online, everything spawning, all tiles getting loaded) and lighter by mid-wipe. Size for peak: a 100-slot server running 3500 map size wants a solid 4 dedicated cores + 10 GB RAM. Cheaping out on the CPU means frame hitching and delayed entity updates โ€” deal-breaker for competitive Rust.

Deploy the server (1-click)

Our Rust template runs SteamCMD to pull the dedicated server (App ID 258550), generates a procedural map, writes a starter server.cfg, and opens UDP 28015 + TCP 28016 (RCON) on your plan's IP.

  1. Pick the Rust template at checkout

    On the Rust hosting page, pick a plan sized for your slot count + map size.

  2. Wait for SteamCMD

    Rust server is ~8 GB. First install takes 8-15 minutes depending on source speed. Forced Facepunch updates happen Thursdays around 18:00 UTC (Rust "Force Wipe" day once a month).

  3. Wait for map generation

    On first boot, the server generates the procedural world. A worldsize 3500 map takes 3-8 minutes; worldsize 5000 takes 10-20 minutes. Console shows Saving complete once ready.

  4. Confirm the server is listening

    Loading Prefabs 100%
    Loading World
    > Init: (connected to steam)
    > server.cfg executed
    > rcon.ip: 0.0.0.0
    > rcon.port: 28016
    > app.port: 28017
    > Server startup complete
    > Listening on port 28015
    > Assigned anonymous Steam ID: [A:1:12345:6789]

File layout & where things go

/
โ”œโ”€โ”€ RustDedicated                     โ€” Linux server binary
โ”œโ”€โ”€ RustDedicated.exe                 โ€” Windows server binary
โ”œโ”€โ”€ server/
โ”‚   โ””โ”€โ”€ my_server_identity/           โ€” matches +server.identity
โ”‚       โ”œโ”€โ”€ cfg/
โ”‚       โ”‚   โ”œโ”€โ”€ server.cfg            โ€” main config (console commands, one per line)
โ”‚       โ”‚   โ”œโ”€โ”€ users.cfg             โ€” ownerid / moderatorid persistence
โ”‚       โ”‚   โ””โ”€โ”€ bans.cfg              โ€” banid persistence
โ”‚       โ”œโ”€โ”€ logs/
โ”‚       โ””โ”€โ”€ save.*.sav                โ€” world + player data
โ””โ”€โ”€ (Oxide / Carbon install adds dirs here โ€” see below)
โš ๏ธ

Your server identity IS your save directory. The +server.identity startup parameter determines which subfolder under server/ holds all your data. Don't change this after your first boot โ€” it effectively wipes your server by pointing at a fresh directory. Our panel sets this automatically.

Startup parameters & server.cfg

Rust reads settings from two places:

  1. Startup command-line arguments โ€” +cvar value, set once at boot. Covers things that can't change at runtime (world size, seed, server identity, RCON port).
  2. server.cfg โ€” a flat list of console commands, one per line. Re-read on each server restart. Covers runtime-tunable things (gather rates, PVP, messages, admin commands).

A typical startup line (our panel configures this in the Startup tab):

./RustDedicated -batchmode -nographics
  +server.identity "myserver"
  +server.hostname "My Rust Server [EU] 2x Vanilla"
  +server.port 28015
  +rcon.port 28016
  +rcon.password "change-me-rcon"
  +rcon.web 1
  +app.port 28017
  +server.maxplayers 100
  +server.worldsize 3500
  +server.seed 12345
  +server.saveinterval 600
  +server.tickrate 30
  +server.description "Weekly wipe, 2x rates, active admins"
  +server.url "https://your-community.com"
  +server.headerimage "https://your-community.com/header.jpg"
  +server.logoimage "https://your-community.com/logo.jpg"
  +server.level "Procedural Map"
  +server.secure 1
  +server.encryption 2
  -logfile gamelogs/output.txt

Key startup params:

  • +server.identity โ€” subfolder name under server/. Pick something stable; don't change.
  • +server.hostname โ€” server browser name. 60 chars.
  • +server.maxplayers โ€” slot count. Match your plan.
  • +server.worldsize โ€” map size. 3000 (small), 3500 (standard), 4000, 4500 (big), up to 6000. Bigger = more memory.
  • +server.seed โ€” procedural seed. 1-99999999. Same seed = same map. Use rustmaps.com to preview before committing.
  • +server.saveinterval โ€” seconds between saves. 600 (10 min) is standard; 300 on high-stakes PVP.
  • +server.tickrate โ€” internal tick. 30 is standard; higher burns CPU, not generally needed.
  • +rcon.web 1 โ€” enables WebRCON (websocket). Our panel uses this for the in-browser console.

Example server.cfg

Edit server/myserver/cfg/server.cfg:

# Identity (some commands can only be set via CFG)
server.hostname "My Rust Server [EU] 2x Vanilla"
server.description "Weekly wipe, 2x gather, active admins. Discord: discord.gg/yours"
server.url "https://your-community.com"

# Gameplay tags for server browser (maxpop, nudity, pve, vanilla, etc.)
server.tags "monthly,vanilla,eu"

# Vanilla-ish tuning
server.pve false
server.officialserver false
craftingspeedmultiplier 1
smeltingspeedmultiplier 1

# Anti-cheat
antihack.enabled true
server.secure 1

# Decay / upkeep
decay.scale 1
upkeep.scale 1

# Chat throttle
chat.enabled true

# Queue / slot behaviour
queuedplayerslimit 15
server.queuedplayers 0

# Connection limits
server.globalchat true

# Preload save on start to cut boot time
server.savecache 1

Maps โ€” procedural, seeds, custom .map files

Procedural (default)

Let Rust generate a map from a seed + world size. Set +server.level "Procedural Map" + +server.worldsize 3500 + +server.seed 123456.

Preview any seed before committing at rustmaps.com โ€” enter world size + seed, get a full-map preview with monument locations.

Barren

Like procedural but no monuments โ€” pure landscape. Niche competitive use. +server.level "Barren".

Custom maps (.map files)

Rust supports externally-hosted .map files. Community map builders publish on sites like rustedit.io and lone.design.

  1. Host the .map file on HTTPS

    Upload the .map to any static HTTPS server โ€” R2, S3, Cloudflare, GitHub releases. Our panel includes a built-in map-hosting slot, or you can use your own.

  2. Swap the level params

    +server.level "Barren"
    +server.levelurl "https://your-cdn.com/maps/my-custom-map.map"

    Yes โ€” the level name stays "Barren" for custom maps; the URL is what actually matters.

  3. Restart

    First boot downloads the .map. Expect 1-3 minutes longer than procedural for the download + cache.

Admins: ownerid & moderatorid

Rust has two admin tiers:

  • owner โ€” full server control, can bypass admin anti-cheat checks, kick/ban/give.
  • moderator โ€” can kick/ban, teleport, but can't use some owner-only console commands.

Grant admin via RCON or server.cfg

In RCON or server.cfg:

ownerid 76561198012345678 "YourName" "Owner"
moderatorid 76561199876543210 "AdminJohn" "Community admin"
writecfg

The writecfg flushes the change to users.cfg so it persists across restarts.

Remove admin

removeowner 76561198012345678
removemoderator 76561199876543210
writecfg
๐Ÿ’ก

Use Steam64 IDs, not nicknames. Rust stores and checks admin status by Steam64 โ€” the player's display name is just a label in users.cfg. Impossible to spoof. Find your Steam64 at steamid.io or in-game by typing status in F1 console.

Oxide (uMod) vs Carbon

Vanilla Rust has no plugin support. Two community mod frameworks exist:

Framework Model Plugin ecosystem Performance
Oxide (uMod) Classic โ€” patches the server binary at runtime Massive โ€” 2000+ plugins at umod.org/plugins Fine for most servers
Carbon Newer โ€” C# Harmony-based, advertised as faster + lighter Good โ€” most popular Oxide plugins auto-compat Noticeably lighter on 200+ player servers

Install Oxide (uMod)

  1. Download the latest Oxide build

    From umod.org/games/rust. Pick Linux or Windows to match your server OS. ZIP contains RustDedicated_Data/ and a few root files.

  2. Extract into the server root

    Upload via SFTP โ€” merges into existing RustDedicated_Data/Managed/. Files should overwrite.

  3. Restart

    Console prints Loaded plugin Compiler v1.0.0 and Oxide 2.0.XXXX for Rust initialized. You're on Oxide.

Install Carbon

Download from github.com/CarbonCommunity/Carbon/releases and extract to the server root. Same drop-and-restart workflow. Carbon auto-translates most Oxide plugins โ€” you can keep the same plugin library.

โš ๏ธ

Don't run both at once. They hook the same engine events and will crash the server. If you want to migrate, uninstall Oxide first (delete its files from RustDedicated_Data/Managed/), re-validate the server via SteamCMD, then install Carbon.

Popular plugins

Drop plugin .cs files into oxide/plugins/ (Oxide) or carbon/plugins/. Oxide/Carbon auto-compile on next load. Plugins create their own config files under oxide/config/ on first load.

  • RustKits โ€” daily-reward kits / starter kits
  • ServerRewards โ€” time-earned RP point economy, in-game shop
  • Copy Paste โ€” save + paste base blueprints (admin tool)
  • Zone Manager + Event Manager โ€” create safe zones, PVP arenas, scheduled events
  • Friends โ€” friend system for teamplay (auth doors, claims)
  • Sign Artist โ€” paste images onto in-game signs from URL
  • Clans โ€” clan system (essential for most community servers)
  • Better Chat โ€” chat formatting / color / tags / ranks
  • Discord Messages / Discord Extension โ€” chat bridge to Discord
  • NoEscape โ€” restrict TP / building / crafting during raid/combat
  • Skins / SkinBox โ€” access approved item skins without buying them

Rates โ€” gather / craft / loot / stack

Vanilla Rust is intentionally slow. Boosted servers are by far the more popular community format. Plugins control rate multipliers:

Gather rates

Plugin: GatherManager. Config at oxide/config/GatherManager.json:

{
  "Item": {
    "*": 2.0,
    "stones": 3.0,
    "wood": 2.0,
    "metal.ore": 3.0,
    "sulfur.ore": 3.0
  },
  "Dispenser": {
    "*": 2.0,
    "tree": 3.0
  },
  "Quarry": {
    "*": 1.0
  },
  "Pickup": {
    "*": 2.0,
    "cloth": 5.0
  }
}

Craft speed

Vanilla: craftingspeedmultiplier in server.cfg. Plugin-enhanced: FastCraft.

craftingspeedmultiplier 5     // 5x faster crafting

Stack sizes

Plugin: StackSizeController. Config lets you set per-item stack sizes:

"stones": 10000,
"wood": 10000,
"low.grade.fuel": 10000,
"gunpowder": 5000

Loot

Plugin: LootTable / BetterLoot. Full control over crate/barrel contents.

๐Ÿ’ก

Popular rate preset for a community 2x server: gather 2x, craft 2x, stack 3-5x, loot +25%, research cost -50%. Keeps progression faster than vanilla without trivialising the rust grind. 10x+ everything is party server territory; fine but expect higher churn.

Wipe schedule & BP wipes

Rust servers wipe regularly. Two types:

  • Map wipe โ€” deletes the world + bases + items; BPs (blueprints) and player stats persist. Weekly is the most common cadence.
  • BP wipe โ€” also deletes all learned blueprints. Usually monthly, usually aligned with Facepunch's Force Wipe (first Thursday of the month). Force Wipe means EVERY server must wipe because the patch forces it.

Manual wipe

Stop the server. Delete server/identity/save.*.sav and server/identity/save.*.map files. Restart. World regenerates next boot.

For a BP wipe, also delete server/identity/player.blueprints.*.db.

Automated weekly wipe

Our panel has a built-in Wipe Scheduler that does this on a cron. For manual setups, use the plugin WipeInfoAPI + a restart cron.

Seed rotation

Don't use the same seed every wipe โ€” players memorize monument layouts. Either:

  • Use rustmaps.com weekly to pick a fresh preview-approved seed
  • Set +server.seed 0 for random seed every wipe (our panel randomizes on wipe automatically)

RCON & admin commands

Rust supports WebSocket RCON (not classic Source). Enable with +rcon.web 1 at startup.

Clients:

  • WebRcon (browser) โ€” facepunch's official web client at facepunch.github.io/webrcon
  • rcon-cli (Go) with --type web flag
  • Rustrcon (desktop app, Windows)
  • Our panel's built-in web console โ€” no client install needed

Essential admin commands

status                              โ€” list online players + IDs
kick <steamid> "reason"
banid <steamid> "reason" <time>     โ€” time=0 is permanent
unban <steamid>

server.save                         โ€” force a save
restart <seconds>                   โ€” graceful restart with countdown
quit                                โ€” immediate shutdown

say "message"                       โ€” server broadcast
notice.popupall "text" 5            โ€” pop up notification

teleport.topos <steamid> x y z
teleport.toplayer <steamid1> <steamid2>
inventory.giveto <steamid> "rifle.ak" 1

global.ban <steamid> "reason"
global.banlist                      โ€” list bans
global.banlistex                    โ€” with reasons

env.time 12                         โ€” set time of day
weather.rain 0.5
weather.fog 0

sleepers.wakeup                     โ€” force wake all AFK players
oxide.reload "PluginName"           โ€” reload a single plugin

Connect and test

  1. Launch Rust on your PC

    From main menu: Play Game โ†’ Community or Modded (depending on your server's server.tags).

  2. Find in browser

    Filter by name. First registration takes 2-5 minutes.

  3. Or F1 console direct connect

    Press F1 at main menu, type:

    client.connect YOUR-SERVER-IP:28015
  4. Verify admin status

    In F1 console: global.ownerid should list your Steam64. Then try fly โ€” if you lift off, admin works.

Common errors and fixes

Server not appearing in browser

  • Check all four ports are open: UDP 28015 (game), TCP 28016 (RCON), UDP 28017 (app/network), Steam ports
  • server.tags wrong category โ€” "monthly,vanilla" for Modded, "monthly,community" for Community
  • Wait 5 minutes for master-list indexing after first boot

Map generation hangs or takes 30+ minutes

  • World size too large for your plan's RAM โ€” 6000 worldsize wants 16+ GB
  • Custom map URL 404 or slow โ€” check the URL is publicly accessible
  • Seed is known-broken (rare but happens) โ€” try a different seed

"You have been kicked for running a modified client"

Our server is EAC-secured. If a player gets this, they need to:

  • Close and relaunch Rust (EAC session refresh)
  • Steam โ†’ Verify Game Files on Rust
  • Make sure they're not running suspicious overlay software

Oxide / Carbon plugin compilation errors

  • Plugin is outdated for current Rust version โ€” check the plugin's uMod/GitHub page for updates
  • Rust update broke signatures โ€” wait for Oxide/Carbon to ship a patched build (usually within 24h of Force Wipe)
  • Missing dependency plugin โ€” check the plugin's listed requirements

Server crashes after running for days

Memory leaks in plugins. Mitigations:

  • Schedule a daily restart at low-pop hours (panel โ†’ Scheduled Tasks)
  • Disable plugins one at a time to isolate the leaker โ€” oxide.unload PluginName
  • Upgrade RAM if the crash is not plugin-related

Low server FPS / "server lag"

  • Run perf 2 in console โ€” shows server FPS + memory graph top-left
  • Target: 60+ FPS server-side. Below 30 = players will feel it.
  • Entity spam from bases = biggest culprit. Use BaseRepair plugin to auto-despawn decayed structures aggressively.
  • Heavy monuments (Launch Site, Airfield, Train Yard) tick expensively โ€” larger maps reduce per-monument pressure

"Wiping failed โ€” save is corrupt"

Shut the server down FIRST, then delete save files. Deleting while running corrupts the in-flight save and cascades into broken restart. If you see this, rollback from the panel's backup tab โ€” all managed Rust plans have hourly snapshots with 30-day retention.

Force Wipe didn't wipe my server

Force Wipe is Facepunch's client-forcing update; servers choose when to wipe. Our panel's Wipe Scheduler is configured to wipe the moment the server receives the Force Wipe update. Manually trigger: stop server โ†’ delete save files โ†’ restart.


Stuck on something specific? Email support with your server IP, the last 200 lines of console, and your startup line โ€” we'll usually have an answer within the hour.