Every mandatory Rust patch on the first Thursday of the month or emergency client hotfix requires updating your dedicated server files. After running SteamCMD, administrators often discover that their server boots as a pure vanilla instance with all custom plugin commands missing. Crucially, your configs and player data are not lost: SteamCMD simply restored original unpatched game engine libraries.
This walkthrough targets Linux Rust administrators running Oxide (uMod) or Carbon mod frameworks. As of October 27, 2026, both frameworks keep user configurations entirely isolated from core engine binaries.
Why SteamCMD updates reset modded frameworks#
Both Oxide and Carbon work by injecting hooks into compiled Unity assemblies (RustDedicated_Data/Managed/Assembly-CSharp.dll and related assemblies).
When you run an update through SteamCMD (app_update 258550 validate), the Steam client verifies checksums against Valve's official repository. Every modified or patched library is replaced with Facepunch's clean vanilla file.
However, framework data folders remain untouched:
- Oxide: plugin source files live in
oxide/plugins/, configuration files inoxide/config/, and persistent data stores inoxide/data/. - Carbon: plugins reside in
carbon/plugins/, configurations incarbon/configs/, and data incarbon/data/.
SteamCMD never deletes these folders. Restoring modded capability requires only re-applying the framework build compiled specifically for the new game patch.
Creating a pre-update backup#
Before making filesystem changes, save world state and mod directories. Issue a graceful shutdown in the server console:
save
quit
Archive configuration directories and active world identity data:
set -eu
BACKUP_DIR="/srv/rust-backups/$(date +%Y-%m-%d-%H%M)"
mkdir -p "$BACKUP_DIR"
tar -czf "$BACKUP_DIR/oxide-backup.tar.gz" -C /srv/rust oxide 2>/dev/null || true
tar -czf "$BACKUP_DIR/carbon-backup.tar.gz" -C /srv/rust carbon 2>/dev/null || true
tar -czf "$BACKUP_DIR/server-identity.tar.gz" -C /srv/rust/server my_server_identity
This ensures you can roll back instantly if an unmaintained third-party plugin corrupts a data file on startup under the new protocol.
Updating vanilla Rust files via SteamCMD#
Execute the base server update:
/usr/games/steamcmd +force_install_dir /srv/rust \
+login anonymous \
+app_update 258550 validate \
+quit
The server is now completely vanilla. Do not expose it to players yet: without Oxide or Carbon loaded, authentication, protection, economy, and permission systems will not execute.
Installing the updated Oxide or Carbon release#
Download the updated framework build matched to the new Rust patch version.
For Oxide (uMod):
cd /srv/rust
curl -fL -o Oxidelinux.zip https://umod.org/games/rust/download
unzip -o Oxidelinux.zip
rm Oxidelinux.zip
chown -R rust:rust /srv/rust
chmod +x /srv/rust/RustDedicated
For Carbon (using the official installation script):
cd /srv/rust
curl -sL https://carbonmod.gg/download/linux -o carbon-install.sh
bash carbon-install.sh
chown -R rust:rust /srv/rust
The -o flag in unzip overwrites the vanilla assemblies in RustDedicated_Data/Managed/ with patched versions while preserving your existing files in oxide/config/.
Starting the server and verifying plugin status#
Start the server process under its standard service user and inspect framework status in the console:
oxide.version
plugins
The output of oxide.version should confirm both the Oxide build and the underlying Rust Dedicated version. The plugins command displays all loaded extensions and their operational status. If a specific plugin produces compiler errors (CS0246 or NullReferenceException), the game developers altered an internal API; disable that specific plugin until an author patch is published.
If you manage your dedicated server fleet using Nexardo, automate framework re-installation steps within your maintenance pipelines to eliminate human error during scheduled wipe nights.




