How to Install Oxide on a Rust Dedicated Server (Windows and Linux)
To install Oxide, stop your Rust dedicated server, download the Oxide.Rust build for your operating system, extract it over the server root so its files land in RustDedicated_Data/Managed, then start the server and run oxide.version to confirm. Oxide must be reinstalled after every Rust update that replaces the game files, and the Oxide build must match the installed Rust build.
7 min readUpdated Oct 26, 2026
To install Oxide on a Rust dedicated server, stop the server, download the Oxide.Rust package for your operating system (Windows or Linux), extract it into the server root so it overwrites the files in RustDedicated_Data/Managed, start the server, and run oxide.version in the console to confirm the install. Oxide only works when its build matches the Rust build on the server, so repeat the process after every Rust update that replaces game files.
What the installer actually does
Oxide is not a separate program. The release archive contains modified and additional .NET assemblies (DLL files) that go into RustDedicated_Data/Managed, next to the game's own assemblies. The patched game assemblies call into Oxide at the points where hooks fire, for example inside StorageContainer.PlayerOpenLoot for CanLootEntity. On first start Oxide creates its oxide folder tree in the server root.
Consequences:
- Oxide is installed per server, not per player. Clients need nothing.
- Oxide depends on the game version. A new Rust build with a stock Oxide from the previous build will usually fail or run without hooks.
- Updating the game files can overwrite the patched assemblies, which silently turns the server back into a vanilla one.
Before you start
- A working Rust dedicated server, installed with SteamCMD (app ID 258550) or through your host's panel, that has been started at least once.
- Access to the server files (remote desktop, SFTP/SSH, or the hosting file manager).
- The server fully stopped. Extracting over a running server can leave locked or half-written files.
- A backup of the server folder, or at least of the
oxidefolder if you already have one.
Check which Rust build the server runs. The console prints it on start, and the Oxide download page lists the Rust version each build targets. Use the release built for that version.
Install on Windows
- Stop the server and close the console window.
- Download the Oxide.Rust Windows archive from the official Oxide (uMod) downloads page. Pick the release that matches your Rust build. Avoid unofficial mirrors, since you are putting executable code on your server.
- Open the server root, the folder that contains
RustDedicated.exe. - Extract the archive into that folder with "overwrite existing files" enabled. The archive is laid out so its
RustDedicated_Datafolder merges into the existing one. - Confirm that
RustDedicated_Data\Managednow contains files whose names start withOxide.(such asOxide.Core.dllandOxide.Rust.dll). - Start the server with your usual launch script.
Install on Linux
- Stop the server process.
- Change to the server root, the directory containing the
RustDedicatedexecutable. - Download the Oxide.Rust Linux archive, either on your PC and uploaded over SFTP, or directly on the machine with
wgetorcurlusing the link from the downloads page. - Extract it over the server root, for example:
cd /home/rust/server
unzip -o Oxide.Rust-linux.zipThe exact file name depends on the release, and the Linux build is normally a zip. Use -o so existing files are overwritten without prompts.
- Make sure the files belong to the same user that runs the server. If you extracted as root, fix ownership:
chown -R rust:rust /home/rust/server- Start the server as usual.
Windows and Linux builds are different packages. Using the Windows archive on a Linux server, or the reverse, is a common reason for an install that appears complete but does nothing.
What you should see after the first start
On the first successful start Oxide creates these folders in the server root:
| Folder | Purpose |
|---|---|
oxide/plugins | Plugin .cs files. Saving a file here loads or reloads it automatically. |
oxide/config | One <PluginName>.json per plugin. |
oxide/data | Plugin data files and the permission data. |
oxide/lang | Translation files per language. |
oxide/logs | Log files, including compile errors with CS codes. |
Next, install your first plugin by following how to install Rust plugins.
Verify the installation
Open the server console (or RCON) and run:
oxide.versionA working install answers with the Oxide version and the Rust version. If the command is unknown, Oxide is not active. Two more checks:
oxide.plugins
oxide.show groupsoxide.plugins lists loaded plugins (empty on a fresh install). oxide.show groups should list the default groups default and admin. A full list of commands is in Oxide console commands.
To confirm that plugins really compile and load, drop a small plugin into oxide/plugins. Oxide prints Loaded plugin <Title> v<Version> by <Author> on success. There is no separate "compiled successfully" line. If compilation fails you get Error while compiling <PluginName>: followed by numbered messages, and the file is skipped while others still load. See debugging Rust plugins for reading these.
Set up your first admin permissions
Oxide permissions are separate from the in-game owner/moderator status. To grant a permission to a player or group:
oxide.grant user <name|steamid> <permission>
oxide.grant group admin <permission>
oxide.usergroup add <player> adminDetails are in Oxide permissions and groups.
Updating Oxide after a Rust update
Rust updates monthly (force wipe) and in between with smaller patches. Each update that changes the game's assemblies can break the matching Oxide build.
A safe routine:
- Update the server files with SteamCMD or your host's panel.
- Before starting, download the Oxide.Rust release for the new Rust build.
- Extract it over the server root with overwrite.
- Start the server and run
oxide.version. - Check the console for plugin errors; some hooks change between builds. See fix Rust plugins after an update and the monthly hook change reports.
If a Rust update ships and no matching Oxide build exists yet, wait for the Oxide release rather than forcing an older one. Running a mismatched build is the most frequent cause of broken servers right after a patch day.
For a wipe-day sequence that includes this step, see the wipe day plugin checklist.
Common failures
Version mismatch
Symptoms: the server crashes at startup, the console shows exceptions about missing methods or types, oxide.version is unknown, or plugins never load. Cause: the Oxide build targets a different Rust build than the one installed. Fix: update Rust, then extract the Oxide release for that build. If you intentionally run an older Rust branch, use the Oxide release for that branch.
Partial or failed extract
Symptoms: errors about missing Oxide.* assemblies, no oxide folder after the first start, or Oxide loads but some features are missing. Causes:
- The server was running while you extracted, so some files were locked.
- The archive was extracted into a subfolder (for example
Oxide.Rust/RustDedicated_Data) instead of the server root. - Extraction was interrupted, or antivirus quarantined a DLL.
Fix: stop the server, delete the wrongly placed folder, extract again into the root with overwrite, and check that the Oxide.* DLLs exist in RustDedicated_Data/Managed.
Wrong platform package
Symptoms: nothing changes after installing. Check that the Windows archive was used on Windows and the Linux archive on Linux.
Permissions on Linux
If the server user cannot write to the oxide folder, the folders may be missing or configs fail to save. Set ownership to the server user as shown above.
Plugin errors that are not install problems
Once oxide.version works, the install is fine. Messages like Error while compiling or Failed to call hook are plugin problems. Start with failed to initialize plugin or could not load plugin: no plugin found. A plugin built for a different framework can also fail, see is a uMod plugin, not an Oxide plugin.
Switching between Oxide and Carbon
A server runs either Oxide or Carbon, not both, because both patch the game assemblies. Carbon loads Oxide plugins and accepts the oxide.* console commands, so most plugins keep working after a switch. Carbon uses its own folders: carbon/plugins, carbon/configs, carbon/data, carbon/lang and carbon/logs. For a comparison, read Oxide vs Carbon.
Oxide to Carbon
- Stop the server and back up the
oxidefolder. - Restore clean game files, for example by validating the server install with SteamCMD, so the Oxide-patched assemblies are replaced by vanilla ones.
- Extract the Carbon release for your platform over the server root, following Carbon's own instructions.
- Copy plugins to
carbon/plugins, and move configs and data to the corresponding Carbon folders if they are not picked up automatically. - Start the server and check
oxide.versionand the plugin list.
Carbon to Oxide
- Stop the server and back up the
carbonfolder. - Validate the server files to restore vanilla assemblies.
- Extract the Oxide.Rust release over the server root.
- Copy plugins into
oxide/pluginsand configs and data intooxide/configandoxide/data. - Start and verify with
oxide.version.
Skipping the validation step leaves the old framework's patches in the assemblies, which is a typical source of startup errors after switching.
Quick checklist
- Server stopped before extracting.
- Correct OS package, matching the installed Rust build.
- Extracted into the server root with overwrite, not a subfolder.
- Files owned by the server user on Linux.
oxide.versionanswers after start.- Reinstall Oxide after any update that replaces game files.
When the framework is running, you can write your own plugins. How to make a Rust plugin walks through the first one, or you can create one with the plugin generator.
FAQ
Do I need to install Oxide again after every wipe?
No. A map wipe only resets map and player data, and Oxide stays in place. You only reinstall Oxide when the Rust server files are updated (for example via SteamCMD), because the update can overwrite the patched game assemblies. Your oxide/plugins, config, data and lang folders are not touched by a normal wipe.
Will updating Rust with SteamCMD delete my plugins?
Validating or updating the game files replaces the game's own files, not the oxide folder, so plugins, configs and data normally survive. What is lost is the patched Oxide state of the game assemblies. Until you extract a current Oxide build again, the server runs as vanilla and plugins do not load.
Can I run Oxide and Carbon on the same server at once?
No. Both frameworks patch the same game assemblies, so a server runs one of them. Install only one per server. Carbon can load Oxide plugins, so you can usually switch frameworks without rewriting plugins, but you must remove one framework's files before installing the other.
How do I know the install worked if nothing prints a success message?
Run oxide.version in the server console. If it prints the Oxide version and the Rust version it was built for, the framework is active. You can also run oxide.plugins, which lists loaded plugins, and check that an oxide folder was created next to the server executable.
Do I need to install Oxide on my own game client?
No. Oxide is server-side only. Players join with the normal, unmodified Rust client, and no client files are changed. Install it only on the dedicated server machine or hosting instance that runs RustDedicated.
More guides
Skip the C#: describe your plugin
Open generator