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.
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
- Open the Startup tab.
- Find Modding Framework and set it to
oxide. - 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.
- 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 tooxide.
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 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 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:
- Modding Framework still shows
oxideon the Startup tab and you restarted after saving. - The first lines of the console output show an error while fetching Oxide (usually a temporary network problem; restart again).
- 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:
- Download
NoGiveNotices.csfrom umod.org/plugins/no-give-notices. - In the panel File Manager, open
oxide/plugins/. - 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 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.csfails withUnable to find main plugin class. - A hidden
.txtextension. Some browsers saveNoGiveNotices.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 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 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 namedOxide.*), set Modding Framework tocarbonand start. The full migration is in How to install Carbon for Rust. - Back to vanilla: set Modding Framework to
vanillaand restart with Validate Steam Files on. Validation restores the original game files that Oxide replaced.
What to read next
- Rust Mods & Plugins: what to install now that Oxide is running.
- Oxide Permissions 101: essential once you have more than a couple of plugins.
- How to configure the StackSizeController plugin: a good second plugin, with a real config file, permission nodes and an effect you can see.
- Rust RCON: run
oxide.*commands from RustAdmin or BattleMetrics instead of the panel.
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