How to install oxide
How to Install Oxide
Oxide (now branded as uMod for Rust) is the modding framework that almost every Rust plugin depends on. Without Oxide, you cannot load any of the kits, teleport, anti-cheat, or economy plugins from umod.org or Codefling.
This guide installs Oxide cleanly on the GSK panel, then verifies it loaded correctly.
What Oxide Actually Does
Oxide injects itself into the Rust dedicated server at startup and exposes hooks that plugins listen to. When a player connects, places a building block, dies, or chats, Oxide fires an event, and any subscribed plugin can react.
It also creates a set of folders inside your server root:
oxide/plugins/is where you drop.csplugin files.oxide/config/holds the per-plugin JSON config files.oxide/data/stores plugin databases (kits, homes, player stats). Plugins keep their data here even when unloaded.oxide/logs/holds Oxide's log files, your first stop when a plugin misbehaves.oxide/lang/contains the translatable message files plugins use.
The entire oxide/ folder survives map wipes and framework switches, so your plugins, configs, and data stay put unless you delete them yourself.
Step 1: Stop the Server
Before switching frameworks on an established server, take a quick snapshot through the Backups tab first. See Backups. On a fresh server you can skip this.
Always stop the server before swapping framework files. From the panel Console tab, click the red Stop button. Wait until the status shows "Offline."
Step 2: Change the Modding Framework in the Startup Tab
Our Rust servers ship with a Startup variable that controls which modding framework is loaded. Go to the Startup tab and find the field labeled Modding Framework (sometimes shown as FRAMEWORK or MODDING).
Set the value to:
oxide
Other valid values you may see:
vanilla(no framework, pure Rust)carbon(Carbon, a faster Oxide alternative, see How to Install Carbon)
While you are in the Startup tab, make sure the Validate Steam Files toggle is switched on if your server has one. Validation ensures Oxide installs cleanly alongside the game files on the next boot.
Save the Startup change.
Step 3: Start the Server
Hit Start. On boot, the egg will:
- Download the latest Oxide build from the uMod GitHub release.
- Extract it on top of your Rust install (replacing
RustDedicated_Data/Managed/*.dllfiles where Oxide overrides them). - Boot Rust as normal.
In the console you should see a line near the top similar to:
[Oxide] Loaded extension Rust v2.0.xxxx by Oxide and Contributors
If you see that, Oxide is installed and ready.
Step 4: Confirm With a Console Command
From the panel Console, run:
oxide.versionThe server should reply with the loaded Oxide version. If you instead see "Unknown command," Oxide did not load. Common reasons:
- The Startup variable is still set to
vanillaor empty - The server failed to download Oxide due to a temporary network issue (restart again)
- Rust just pushed a forced wipe update and Oxide has not yet released a compatible build (this happens roughly on the first Thursday of each month, see Wipe Management)
Step 5: Install Your First Plugin
A small, safe plugin makes the best first test. We will use NoGiveNotices, which hides the chat broadcast that appears when an admin spawns items with F1 give. It needs no configuration, no permissions, and you can verify it works in seconds:
- Download
NoGiveNotices.csfrom umod.org/plugins/no-give-notices. - Open the File Manager in the panel, navigate to
oxide/plugins/. - Click Upload at the top and drag in
NoGiveNotices.cs.
Within a few seconds, the Console will print:
[Oxide] Loaded plugin No Give Notices v0.3.0 by Wulf
Plugins hot-load. You do not need to restart. To see it working, give yourself an item from the F1 console in-game. The usual "gave themselves" broadcast no longer appears in chat.
Two upload rules that save a lot of head-scratching:
- Do not rename the file. The filename must exactly match the plugin's internal class name, including capitalization.
nogivenotices.cswill not load. - Watch the extension. Some browsers and editors save plugins as
NoGiveNotices.cs.txt. Oxide ignores anything that is not exactly.cs. Rename in the File Manager if this happens.
Step 6: Editing Plugin Configs
NoGiveNotices is unusual in that it has no settings at all, which is part of what makes it a clean first test. Almost every other plugin generates a config file in oxide/config/ on first load. BetterChat, a popular chat formatting plugin, creates oxide/config/BetterChat.json. Edit a config through the File Manager (right-click, Edit), make your changes, then reload that plugin from console:
oxide.reload BetterChat
oxide.reload re-applies the new config without restarting the server.
Troubleshooting a Plugin That Will Not Load
- Nothing happens after upload: Confirm the file landed in
oxide/plugins/, not the server root, and that the extension is exactly.cs. - Console shows a compile error: The plugin is incompatible with the current Rust or Oxide version. Check the plugin's page for an update, and read the full error in
oxide/logs/for the failing line. - Plugin loads but commands do nothing: Most plugins lock features behind permissions. Grant yourself the permission node listed on the plugin's page, see Oxide Permissions 101.
- Everything broke after a forced wipe: Wait for the uMod team to publish the updated Oxide build, restart, then update any plugins that still error. See Wipe Management.
Common Oxide Console Commands
| Command | What it does |
|---|---|
oxide.version | Show the Oxide version |
oxide.plugins | List every loaded plugin |
oxide.load PluginName | Load a plugin file |
oxide.unload PluginName | Unload a plugin |
oxide.reload PluginName | Reload a plugin (re-reads config) |
oxide.grant <user|group> <name|id> <perm> | Grant a permission |
oxide.revoke <user|group> <name|id> <perm> | Revoke a permission |
oxide.usergroup add <user> <group> | Add a user to a group |
See Oxide Permissions 101 for the full breakdown.
Updating Oxide
When Facepunch pushes a forced wipe (first Thursday of the month), Oxide gets recompiled by the uMod team, usually within a few hours. Our Rust egg pulls the latest Oxide build on every startup, so a simple restart after the new Oxide release updates you automatically.
If you want to force the update sooner, restart the server. Do not manually download Oxide and upload it through SFTP unless you specifically need a pre-release build.
Switching Away From Oxide
If you decide to try Carbon (which is faster and largely plugin-compatible), see How to Install Carbon. Switching frameworks does not delete your plugins or configs; they live in different folders.
What to Read Next
- Popular Plugins is the natural follow-up.
- Oxide Permissions 101 is essential once you have more than two plugins.