Skip to content

Manual-first Windows server guide

Rust Dedicated Server Setup, Ports, Wipes, and Recovery

Host Rust by treating server.identity as the durable boundary: it selects the map, save, databases, users, configuration, and Rust+ pairing that must remain synchronized through updates, wipes, imports, and recovery.

Rust separates UDP game and query traffic from TCP RCON, derives defaults when values are omitted, and has no native join password. Its monthly update rhythm also requires a precise distinction between a map wipe, a blueprint wipe, and a normal binary update. Third-party Oxide/uMod or Carbon layers must be version-matched after official validation.

Reviewed 2026-08-30Steam/PC dedicated-server ecosystem; Rust Console Edition uses separate servers and console clients cannot join this process.

Steam application

App ID 258550

Facepunch supports anonymous SteamCMD installation and validation.

Official documentation[facepunch-create]

Readiness marker

Server startup complete

A running process is not ready for joins until the server reaches this startup state.

Official documentation[facepunch-create]

Durable identity

server/<identity>

Changing server.identity selects different persistent state and can resemble a wipe.

Official documentation[facepunch-create]

Project port plan

UDP 28015 game, UDP 28016 query, TCP 28017 RCON

These are explicit Gone Wrong Servers allocations, not universal Facepunch defaults.

Hands-on verification[facepunch-create]

Vanilla join password

Not available

A private Rust server needs an understood allowlist, network boundary, or third-party approach rather than a fictional password field.

Official documentation[facepunch-create]

Protect the server first: Run server.save and native quit, then copy the entire active server/<identity> directory—including database sidecars and companion.id—before an update, wipe, plugin change, import, or restore.

Size the host before downloading

PC and capacity guidance

Facepunch publishes a 12 GB free-memory floor, more memory for 6000-size maps, and an SSD/NVMe preference; it does not promise a player count per CPU or RAM tier. The profiles above are conservative editorial starts.

Rust resource profiles
ProfilePlayersMemoryProcessorStorage
Small vanilla server
Conservative starting point
Private group on a modest procedural map16 GB RAM available to the host starting pointModern high-single-thread-performance CPUSSD/NVMe with room for identity snapshots and logs
High-entity Rust host or plugin community
Conservative starting point
Host-and-play, larger map, more entities, or plugins32 GB total system RAM or more starting pointStrong modern desktop/server CPU; measure server frame and save timeFast SSD/NVMe with several full identity and plugin snapshots
Facepunch documents 12 GB free RAM and approximately 15 GB free disk, with more memory for large maps. [facepunch-create]
The 16 GB host profile is an editorial starting point, not a player-count guarantee. [facepunch-create]
Map size, entities, population, and plugins change the workload more than a generic slot count. [facepunch-create]
Measure peak working set and storage growth before increasing the map or public population. [facepunch-create]

Vanilla baseline

Install Rust and make every identity choice explicit

An explicit identity, map, game port, query port, and RCON port make firewall rules and recovery reproducible instead of depending on derived defaults.

  1. 1

    Install official binaries

    Use anonymous SteamCMD in a dedicated server folder.

    steamcmd +login anonymous +force_install_dir D:\Servers\Rust +app_update 258550 validate +quit
  2. 2

    Record the identity and map

    Choose server.identity once, record the procedural seed/size, and store the launch definition with protected secrets.

  3. 3

    Separate game, query, and RCON

    Assign unique values with correct protocols; use a long unique RCON password and WebRCON mode.

    Never paste the live RCON password into public support or screenshots.

  4. 4

    Wait for readiness and prove persistence

    Wait for Server startup complete, join, run server.save, native quit, restart, and confirm the same identity/world.

Maintenance policy

Separate updates, map wipes, and blueprint wipes

A monthly update does not turn every maintenance window into the same destructive event. Decide which state is intentionally replaced and tell players before it happens.

  1. 1

    Read the current update notice

    Facepunch's current announcement controls whether a protocol/map change forces a wipe.

  2. 2

    Name the intended wipe

    A map wipe replaces world state; a blueprint wipe resets learned blueprint progression and is a separate choice.

  3. 3

    Preserve the old identity

    Native-save/quit and archive the complete identity and plugin data before creating a new map or reset.

Host migration

Move a Rust identity without creating an accidental wipe

The destination must launch the same identity, seed, world size, and save protocol while receiving safe new network/admin values.

  1. 1

    Freeze and inventory the source

    Run server.save and quit; record identity, build, map, ports, plugin framework, and Rust+ status.

  2. 2

    Install clean official files

    Use App ID 258550 on the destination rather than importing host binaries.

  3. 3

    Restore the complete identity

    Copy map/save/databases/config/users/companion state together and restore plugins only after version matching.

    If a fresh map appears, stop before saving and compare identity, seed, map size, and save protocol.

Keep every layer consistent

Ports, firewall, and router setup

Open only the services your Rust server actually uses. The game process, Windows Firewall rule, router forward, and player join address must all agree on the same port and protocol.

Rust dedicated server ports
PortProtocolPurposeExposureNotes
28015UDPGone Wrong Servers default game/player port via server.portInternet playersRequired for this useAlso the Facepunch default when server.port is not changed.[facepunch-create]
28016UDPGone Wrong Servers explicit Steam query port via server.queryportInternet playersRequired for this useRust can derive a query value when omitted; explicit unique assignment avoids ambiguity.[facepunch-create]
28017TCPGone Wrong Servers private WebRCON port via rcon.portOptional administrationOptionalProtect with a unique password and private firewall/VPN scope; many generic guides assume a different RCON port.[facepunch-create]
Configured app.port (often derived well above game/RCON)TCPOptional Rust+ companion serviceInternet playersOptionalConfigure and test separately; preserve companion.id and do not expose an assumed port.[rust-companion]

Never expose an administration or RCON port merely so players can join. Keep remote administration private whenever possible, use a strong unique credential, and confirm the game's own security model before forwarding it.

Know what must survive a reinstall

Files, worlds, and configuration

Rust server files
File or folderPurposeBackupNotes
server/<identity>/cfg/server.cfgPersistent server console-variable configurationCriticalKeep startup-critical identity, ports, and map values auditable too.[facepunch-create]
server/<identity>/*.map and *.savProcedural map and live world save selected by identity/seed/sizeCriticalCopy only after server.save and native quit.[facepunch-create][rust-commands]
server/<identity>/*.db, *.db-wal, and *.db-shmPlayer/world auxiliary SQLite stateCriticalA live copy can split the database from its write-ahead log.[facepunch-create]
server/<identity>/companion.idRust+ pairing identityCriticalDo not share or regenerate casually during migration.[rust-companion]
oxide or carbon plugin/config/data rootsThird-party plugin framework and durable plugin dataCriticalFrameworks are third-party and must match the installed Rust build.[facepunch-create]
Rust configuration reference
Setting or fileLocationWhat it controlsRestart?
server.identitygonewrongStartup commandSelects the complete durable server directory[facepunch-create]Yes
server.port28015Startup commandSets UDP player traffic[facepunch-create]Yes
server.queryport28016Startup commandSets a unique UDP Steam query/listing port[facepunch-create]Yes
rcon.port and rcon.web28017 and 1Protected startup commandSets private TCP administration and recommended WebRCON mode[facepunch-create]Yes
server.seed and server.worldsizeA recorded seed with a measured map sizeStartup commandSelects procedural world identity and scale[facepunch-create]Yes

Avoid incompatible clients and unsafe shortcuts

Players, mods, and administration

Cross-play and editions

RustDedicated.exe serves the Steam/PC Rust ecosystem; Rust Console Edition is a different product/server network, so Xbox and PlayStation clients cannot join this server.

  • Do not label the PC server console-crossplay capable.
  • Match the PC client and dedicated-server build after updates.
  • Treat any future storefront/platform expansion as a publication-time recheck, not an assumption.

Mods and extensions

Oxide/uMod and Carbon are third-party frameworks layered on the official Rust server; updates can replace framework files and require a compatible reinstall.

  • Back up plugin code, configuration, language, and data with the vanilla identity.
  • After a Rust update, update/reapply the framework before loading plugins.
  • Use a copied identity and vanilla startup to isolate a crash; removing a data-bearing plugin from the only world can lose state.

Administration

Use private WebRCON with a strong unique password for remote control; vanilla Rust has no normal join password and should not be marketed as if it does.

  • Keep TCP RCON behind firewall/VPN or narrowly scoped management access.
  • Use server.save for world state and server.writecfg only for configuration variables.
  • Protect owner/moderator IDs, RCON secrets, logs, and companion.id.

Preserve a return path before maintenance

Updates, backups, and rollback

Update without gambling the world

Read the current wipe notice, stop cleanly, snapshot identity/plugins, update official files, then version-match the third-party framework; validation alone is not rollback.

  1. 1

    Record update and wipe intent

    Capture build, identity, map/blueprint policy, seed/size, plugin framework, and current official update notice.

  2. 2

    Save, quit, and snapshot

    Run server.save and native quit, then copy the entire identity and plugin roots.

  3. 3

    Update and reapply compatible extensions

    Validate App ID 258550, then install framework/plugins built for that Rust server version.

    steamcmd +login anonymous +app_update 258550 validate +quit
  4. 4

    Prove readiness

    Wait for Server startup complete, inspect plugin errors, save/restart/join, and only then reopen.

Back up and prove the restore path

A Rust backup is complete only when the stopped active identity, SQLite sidecars, users/config, Rust+ identity, and third-party plugin state share one timestamp.

  1. 1

    Create a clean checkpoint

    Run server.save, confirm completion, issue native quit, and wait for exit.

  2. 2

    Capture the whole identity

    Copy server/<identity> and third-party roots outside the install; include companion.id without sharing it.

  3. 3

    Restore compatible state

    Quarantine the incident state and restore binaries, identity, configuration, framework, and plugins from a compatible set.

  4. 4

    Validate before players return

    Confirm map, users, RCON, Rust+, plugin data, save/restart, and an outside query/join.

Diagnose before reinstalling

Common Rust server problems

Rust game, query, and RCON ports are confused

What players see

Players can join but the browser or RCON fails, often because a generic guide assumes TCP 28016 is RCON.

Likely cause

The live launch line assigns different explicit values; Gone Wrong Servers uses UDP 28016 for query and TCP 28017 for RCON.

  1. 1.Read server.port, server.queryport, and rcon.port from the actual launch definition.
  2. 2.Create protocol-correct narrow rules and keep RCON private.

Rust appears wiped after a startup change

What players see

The server starts a fresh procedural map while old files still exist.

Likely cause

server.identity, seed, world size, map type, or save protocol no longer selects the original state.

  1. 1.Stop before running server.save on the fresh map.
  2. 2.Compare the prior identity/map launch record and restore the matching full snapshot if needed.

Rust plugins fail after an official update

What players see

The vanilla server starts, but Oxide/uMod or Carbon plugins are absent or erroring.

Likely cause

Steam validation replaced framework files, or the framework/plugin version does not match the new Rust build.

  1. 1.Keep the production identity stopped and preserve logs/plugin data.
  2. 2.Verify a vanilla startup, then install a compatible framework and test plugins in controlled groups.

Evidence stays visible

Sources and verification

Technical behavior changes with server builds. These are the references reviewed for this guide. Official documentation wins if a later patch changes a path, port, command, or compatibility rule.

  1. [facepunch-create] Facepunch

    Creating a Rust server

    Reviewed 2026-08-30 · Official documentation

  2. [rust-commands] Facepunch

    Rust useful server commands

    Reviewed 2026-08-30 · Official documentation

  3. [rust-companion] Facepunch

    Rust+ companion server

    Reviewed 2026-08-30 · Official documentation

  4. [rust-news] Facepunch

    Rust official updates and wipe notices

    Reviewed 2026-08-30 · Official documentation

  5. [steam-store] Facepunch / Steam

    Rust Steam product page

    Reviewed 2026-08-30 · Official documentation

  6. [rust-console] Double Eleven / Rust Console Edition

    Rust Console Edition is a separate console experience

    Reviewed 2026-08-30 · Official documentation

Keep learning

Related guides

Gone Wrong Servers

Want to host your own Rust server?

Download Gone Wrong Servers for guided setup, safer updates, backups and recovery on your Windows PC.