Skip to content

Rust Oxide: How to Install Oxide (uMod) on Your Server

Rust Oxide install on GSK: set Modding Framework to oxide, confirm with oxide.version, load a first plugin, and stay updated through force wipes.

Updated September 28, 2026
Rust

Rust Oxide (now published under the uMod name) is the modding framework that most Rust plugins are written for. Kits, teleports, gather rates, PvE rules: none of them load on a vanilla server. You need Oxide, or its alternative Carbon, first.

This guide covers the procedure only: turning Oxide on for a GSK Rust server, confirming it loaded, installing a first plugin, and keeping Oxide updated through the monthly force wipe. If you are still deciding what to install, start with Rust Mods & Plugins. If you want Carbon instead, follow How to install Carbon for Rust. Run one framework or the other, never both. If you run your own box rather than a GSK server, How to Host a Rust Server covers the SteamCMD side.

How Oxide gets onto a GSK server

On a GSK server you don't download or upload Oxide. The Rust server has a Modding Framework variable on the Startup tab, with three allowed values:

Value Result
vanilla (default) No framework. Pure Rust
oxide Oxide/uMod is installed on top of the game files at startup
carbon Carbon is installed instead (Carbon guide)

On a self-hosted server you would extract the Oxide zip over your install by hand after every Rust update. Facepunch's own server wiki warns that Oxide has to be reinstalled "every time the server is updated", because updating the game puts the files back to vanilla. The panel variable does that step for you.

Step 1: Back up, then stop the server

Take a backup first on an established server

Before changing frameworks on a server with a live world, make a backup from the Backups tab. See Backups. On a fresh server you can skip this.

In the Console tab, click Stop and wait until the server shows as offline.

Step 2: Set Modding Framework to oxide

  1. Open the Startup tab.
  2. Find Modding Framework and set it to oxide.
  3. Leave Modding Framework Custom Download Link empty. It exists to pin a specific build (see "Pinning an Oxide version" below) and GSK does not support custom links.
  4. You don't need to change Validate Steam Files to install Oxide. That setting matters when you go back to vanilla.

Coming from Carbon?

Oxide and Carbon cannot run in the same install. If this server ran Carbon before, set the framework to vanilla, restart once with Validate Steam Files on to restore clean game files, then set it to oxide.

Step 3: Start the server and watch the console

Click Start. Among the first lines after startup you should see Oxide register itself, in this format:

Loaded extension Rust v2.0.xxxx by Oxide Team and Contributors
text

The first boot with Oxide creates an oxide/ folder in the server root (next to RustDedicated_Data/, not inside server/myserver/):

Folder What goes there
oxide/plugins/ Plugin .cs files. This is the only folder you upload to
oxide/config/ One JSON config per plugin, generated on first load
oxide/data/ Plugin databases: kit claims, homes, saved buildings
oxide/lang/ Plugin message text, for translating or rewording
oxide/logs/ Oxide's logs. Your first stop when a plugin fails

Oxide's own settings live in oxide/oxide.config.json. Oxide creates default and admin permission groups out of the box.

Step 4: Confirm Oxide loaded

In the panel Console, run:

oxide.version
console

You should get back the Oxide version (the short form o.version works too). If you get "Unknown command" instead, Oxide didn't load. Check these in order:

  1. Modding Framework still shows oxide on the Startup tab and you restarted after saving.
  2. The first lines of the console output show an error while fetching Oxide (usually a temporary network problem; restart again).
  3. It is force-wipe day and Rust updated before a matching Oxide build was released. Wait for the uMod release, then restart. See the wipe guide.

Step 5: Install a first plugin to prove it works

Use a plugin with no config and no permissions, so the only thing being tested is Oxide. No Give Notices ("Prevents F1 item giving notices from showing in the chat") fits:

  1. Download NoGiveNotices.cs from umod.org/plugins/no-give-notices.
  2. In the panel File Manager, open oxide/plugins/.
  3. Upload the file. Don't restart. Oxide watches this folder and compiles new plugins automatically.

Within a few seconds the console prints:

Loaded plugin No Give Notices v0.3.1 by Mr. Blue
text

To see it working, spawn yourself an item from the F1 console in-game. The usual "gave themselves" broadcast no longer appears in chat.

Two upload mistakes cause most "my plugin does nothing" tickets:

  • Renaming the file. The filename must match the plugin's class name exactly, including capitals. nogivenotices.cs fails with Unable to find main plugin class.
  • A hidden .txt extension. Some browsers save NoGiveNotices.cs.txt. Oxide ignores anything that isn't exactly .cs. Rename it in the File Manager.

Step 6: Configure plugins and grant permissions

Almost every other plugin writes oxide/config/<PluginName>.json on first load. Edit it in the File Manager, save, then reload just that plugin:

oxide.reload BetterChat
console

Most plugins also lock their features behind permissions, so a freshly loaded plugin often seems to do nothing until you grant them. StackSizeController is the classic case: every command is silent until its permission is granted. Grant to groups rather than individual players:

oxide.grant group admin stacksizecontroller.setstack
oxide.usergroup add 76561197960287930 admin
console

Oxide Permissions 101 covers groups, wildcards and auditing.

Oxide console command reference

Every command has an o. short form (o.reload, o.grant and so on).

Command What it does
oxide.version Show the loaded Oxide version
oxide.plugins List loaded plugins with versions
oxide.load <Name> Load a plugin that is in oxide/plugins/ but not running
oxide.unload <Name> Unload a plugin. Useful for finding the one causing lag
oxide.reload <Name> Reload one plugin after editing its config
oxide.reload * Reload every plugin
oxide.grant <user|group> <name|id> <perm> Grant a permission
oxide.revoke <user|group> <name|id> <perm> Revoke a permission
oxide.group add <group> Create a permission group
oxide.usergroup add <SteamID64> <group> Put a player in a group
oxide.show group <group> List a group's permissions
oxide.show perms List every registered permission (handy for finding node names)

Updating Oxide after a Rust update

Rust's monthly forced update changes the game code that Oxide hooks into, so every forced update needs a matching Oxide release. On GSK the update is a restart: with Automatic Steam Updates on, a restart brings Rust up to date, and the Modding Framework step reinstalls Oxide on top.

  • If Oxide fails to load right after a Rust update, the matching uMod build probably hasn't been published yet. Wait for the release on uMod, then restart again.
  • After Oxide itself is updated, plugins that still print compile errors need their own updates from their uMod pages.

Pinning an Oxide version

Modding Framework Custom Download Link lets you point the server at a specific Oxide build instead of the latest, e.g. a release zip from the OxideMod/Oxide.Rust GitHub releases (Linux asset: Oxide.Rust-linux.zip). GSK does not support custom links, and a pinned build stops working at the next forced update. Leave it empty unless you know why you need it.

Switching away from Oxide

Your oxide/ folder (plugins, configs, data) is not deleted by a framework change. The Oxide files that replace parts of the game are what need removing:

  • To Carbon: stop the server, delete Oxide's files from RustDedicated_Data/Managed/ (the ones named Oxide.*), set Modding Framework to carbon and start. The full migration is in How to install Carbon for Rust.
  • Back to vanilla: set Modding Framework to vanilla and restart with Validate Steam Files on. Validation restores the original game files that Oxide replaced.

Made with 💜 by GameServerKings

Need a Rust server?

Deploy an instantly-provisioned Rust server on high-clock hardware — DDoS protected, no contracts, cancel anytime.

From $13.00 /month