Skip to content
Current coupon:10% offUse it in your order

Oxide (uMod) and Carbon: what they are, how to choose and install

What a modding framework for Rust is, how Oxide and Carbon differ, which to choose, how to install and verify it, and what to do after every Rust update.

  • beginner
  • ~20 min
  • Updated 1 Oct 2026

A vanilla Rust server can't run plugins on its own. It needs a modding framework: either Oxide or Carbon. This guide explains what a framework does, how the two differ, which one to pick, how to install it and what to do after every monthly Rust update.

What you'll need

  • A Rust server that starts normally without a framework
  • Access to the server files (file manager, SFTP, or SSH on your own VPS)
  • The ability to stop and start the server
  • About 20 minutes

Rust at StormHost

We're still preparing Rust servers. This guide also applies to a Rust server on your own VPS (installation guide).

What a modding framework is#

A framework is a server add-on that loads together with Rust and opens the door to plugins. A plugin is a plain text file containing C# source code, with the .cs extension. The framework compiles it when it loads and then runs it. You only upload the .cs file; you don't compile anything yourself.

What a framework provides:

  • Hooks – points in the game that plugins attach to (a player connected, something was built, someone mined a rock…). Through them a plugin can change almost anything.
  • A permission system – player groups and permissions such as kits.admin. See Permissions on a Rust server.
  • Plugin configuration, data and translations – each plugin creates its own settings file (JSON) that you edit.

Players don't install anything. Everything runs on the server only, and players connect with the same Rust client they use for any other server.

The Modded tab in the server browser

By default, both Oxide and Carbon mark the server as modded. Players then find it in the Modded tab and see an Oxide or Carbon label in the server details. If your plugins change gameplay (faster gathering, kits, teleports), keep the server in Modded – that's where players look for servers like that.

Oxide and uMod: why two names#

Oxide has long been the most widely used framework for Rust. The project was renamed uMod at one point, and the plugin site umod.org (opens in a new window) still runs under that name. The Rust framework itself is still called Oxide, though: the downloads are named Oxide.Rust.zip, commands start with oxide. and the server browser shows an “Oxide” label. The informal “oxymod” or “oxide mod” means the same thing.

Download Oxide from the official OxideMod/Oxide.Rust repository on GitHub (opens in a new window). New versions come out often, typically several times a month and always after a Rust update.

Carbon#

Carbon is a newer framework (it appeared in 2022). It's designed to run plugins written for Oxide without any changes. You download plugins from the same places, and they use the same .cs files.

How it differs from Oxide, according to the Carbon developers:

  • It doesn't modify game files. Oxide overwrites files in the RustDedicated_Data/Managed folder; Carbon keeps everything in its own carbon folder.
  • It updates itself. When the server starts, it downloads the version that matches the installed Rust.
  • Hooks only when needed. It only calls hooks that some plugin actually uses, which saves performance.
  • Built-in tools. An in-game admin panel (the /cpanel command), optional modules (gather multipliers, stack sizes, admin invisibility, whitelist, automatic wipe) and a profiler.

Carbon comes in two builds: Release (full, with modules and the panel) and Minimal (plugin loading only). Start with Release.

Comparison#

OxideCarbon
Plugins from umod.orgYes, nativelyYes, most Oxide plugins work unchanged
Where it installsOverwrites game files in RustDedicated_Data/ManagedIts own carbon folder in the server root; game files stay untouched
After a Rust updateYou have to upload a new Oxide version (the game update overwrites it)Updates itself on start; you only update Rust
Performance (according to the Carbon developers)All hooks activeHooks are enabled only when a plugin needs them
Built-in toolsNone, plugins handle everythingAdmin panel, modules, profiler, web panel
Plugin folderoxide/pluginscarbon/plugins
Plugin configurationoxide/configcarbon/configs (note the plural)
Data, translations, logsoxide/data, oxide/lang, oxide/logscarbon/data, carbon/lang, carbon/logs
Command prefixoxide. or the short o.c.
Default permission groupsdefault, admindefault, admin, moderator
Server browser labelOxideCarbon

How to choose#

  • Choose Oxide if you want the most widespread standard. Plugin authors test against it first, and most guides online assume it. The price is a manual update after every Rust update.
  • Choose Carbon if you want as little update work as possible, a built-in admin panel and modules. If a plugin doesn't work on Carbon, let the plugin author or the Carbon community know.

Only one framework can run on a server. Oxide and Carbon together will break it.

Installation#

Before you start:

  • Update the Rust server to the latest version. The framework version has to match the game version.
  • Make a backup if the server already has a world. See Game server backups.
  • Find out which operating system the server runs. Your own VPS and most game hosts run Linux. Windows and Linux use different downloads.

Oxide

  1. Stop the server. Uploading files into a running server can corrupt data.
  2. Open the Oxide.Rust – Releases (opens in a new window) page and, for the latest release that is not marked “Pre-release”, expand the Assets section.
  3. Download the file for your server's system:
    • Oxide.Rust-linux.zip for Linux,
    • Oxide.Rust.zip for Windows.
  4. Extract the archive on your computer. It contains a single folder, RustDedicated_Data.
  5. Upload the RustDedicated_Data folder from the archive to the server root folder, i.e. where the RustDedicated file (on Windows RustDedicated.exe) and the original RustDedicated_Data folder are. When prompted, confirm overwriting the existing files.
  6. Start the server. On the first start, Oxide creates an oxide folder in the server root with the subfolders plugins, config, data, lang and logs.

On your own Linux VPS, you can do it with these commands (the paths match the Your own Rust server on a VPS guide):

bash
curl -fL -o /opt/rust/oxide.zip https://github.com/OxideMod/Oxide.Rust/releases/latest/download/Oxide.Rust-linux.zip
unzip -o /opt/rust/oxide.zip -d /opt/rust/server
  • curl -fL -o /opt/rust/oxide.zip … – downloads the latest stable Linux build of Oxide to the home folder of the rust user. -f makes the command fail if the file doesn't exist, -L follows GitHub's redirect to the actual file.
  • unzip -o … -d /opt/rust/server – extracts the archive into the server root; -o overwrites existing files without asking.

Run this as the user the server runs under (rust in the guide; switch to it from root with su - rust) so that the new files belong to that user. The unzip program has to be installed (apt install unzip).

The file manager can't extract archives

If your host's file manager can't extract archives, upload the extracted files over SFTP (FileZilla, WinSCP). Folders are uploaded with their structure intact.

Carbon

  1. Stop the server.
  2. Open the Carbon – Releases (opens in a new window) page and find the Production Build release (the stable version for regular Rust).
  3. Download the file for your server's system:
    • Carbon.Linux.Release.tar.gz for Linux,
    • Carbon.Windows.Release.zip for Windows.
  4. Extract the archive into the server root folder (where RustDedicated or RustDedicated.exe is). The carbon folder from the archive has to end up directly in the server root, and so do the files from the root of the archive: on Linux libdoorstop.so and carbon.sh, on Windows winhttp.dll and doorstop_config.ini.
  5. Linux only: Carbon is loaded through environment variables. In the server's start script, source the carbon/tools/environment.sh file before starting RustDedicated (details in the VPS guide). On a game host, the provider takes care of this; if they don't support Carbon, it won't load.
  6. Start the server. On start, Carbon downloads updates for your Rust version and creates subfolders for plugins, configs and logs inside the carbon folder.

On your own Linux VPS:

bash
curl -fL -o /opt/rust/carbon.tar.gz https://github.com/CarbonCommunity/Carbon/releases/download/production_build/Carbon.Linux.Release.tar.gz
tar -xzf /opt/rust/carbon.tar.gz -C /opt/rust/server
  • curl -fL -o /opt/rust/carbon.tar.gz … – downloads the stable (production) Carbon build for Linux.
  • tar -xzf … -C /opt/rust/server – extracts (-x) the gzip-compressed (-z) archive from the file (-f) into the server folder (-C).

Verification#

Oxide

  1. Watch the console during startup. You'll see lines about Oxide and its extensions loading.

  2. Enter this in the server console:

    text
    oxide.version

    You'll see the version and branch, for example:

    Outputtext
    Oxide.Rust Version: 2.0.<VERSION_NUMBER>
    Oxide.Rust Branch: master

    In the in-game F1 console, the output looks different: Server is running Oxide … and Rust ….

  3. Check that an oxide folder with a plugins subfolder has appeared in the server root.

Carbon

  1. Watch the console during startup. Carbon prints its loading progress and any update download.

  2. Enter this in the server console:

    text
    c.version

    The command prints the Carbon version and the Rust version it's running on.

  3. Check that the carbon folder contains the plugins, configs and logs subfolders and a config.json file.

Where to enter commands: in the server console (on a game host, the Console tab), over RCON (see Admin and RCON), or in the in-game F1 console if you're an admin on the server.

After every Rust update#

Facepunch releases a major Rust update once a month, usually on the evening of the first Thursday of the month (the wipe timer's default time is 19:00 London time, which is 20:00 in Prague). Smaller fixes come out in between. After every game update, a matching framework version has to follow.

Oxide

  1. Wait until a new Oxide version is out on GitHub (opens in a new window) (usually shortly after the Rust update).
  2. Stop the server.
  3. Update Rust (on a game host by updating or reinstalling the game, on a VPS with SteamCMD).
  4. Upload Oxide again the same way as during installation. The game update overwrites the files in RustDedicated_Data/Managed with clean copies, which removes Oxide.
  5. Start the server and check oxide.version.

The oxide folder with plugins, configuration and data stays; the game update doesn't delete it.

Carbon

  1. Stop the server.
  2. Update Rust.
  3. Start the server. On start, Carbon compares its version with the Rust version and downloads the right build by itself. The developers publish a stable version for the monthly update roughly an hour before the Rust release.
  4. Check c.version.

Major updates can break plugins too

A monthly update can change the game code a plugin works with. If a plugin reports a compilation error, check its page for a new version. A monthly update also usually means a new world (force wipe), see Rust server wipe.

Switching from Oxide to Carbon#

Carbon can take over configs, data, translations and permissions from Oxide. The steps, according to the Carbon documentation:

  1. Stop the server.
  2. Turn off anything that would install or update Oxide automatically (for example an “install Oxide” option at your provider or a step in your own start script).
  3. Return the game files to a clean state: verify the game files (SteamCMD with the validate parameter, “verify files” on a game host, or reinstalling the game without deleting data). This removes the files Oxide overwrote.
  4. Install Carbon as described above.
  5. Start the server. On its first start, Carbon finds the Oxide leftovers and automatically copies configs, data, translations, users and groups into its own folder. It moves Oxide extensions (the Oxide.Ext.*.dll files in RustDedicated_Data/Managed) to carbon/extensions.
  6. Check c.version and use c.plugins to make sure the plugins have loaded.

If the automatic conversion didn't happen (it only runs once), convert the data by hand:

  • copy the contents of the oxide folder to carbon, except the config folder,
  • copy the contents of oxide/config to carbon/configs,
  • move the Oxide.Ext.*.dll files from RustDedicated_Data/Managed to carbon/extensions.

After the conversion, you no longer need the oxide folder. Commands with the oxide. and o. prefixes don't work in Carbon; use c. instead (for example c.grant instead of oxide.grant).

Troubleshooting#

The server doesn't recognize the oxide.version command#

Oxide didn't load. The most common causes:

  • The files are one level off: you uploaded the whole archive folder and ended up with something like Oxide.Rust/RustDedicated_Data/…. The RustDedicated_Data folder from the archive has to overwrite the original one in the server root.
  • You uploaded the Windows version (Oxide.Rust.zip) to a Linux server, or the other way round.
  • A game update ran after you uploaded Oxide and overwrote the files (see the next section).

Oxide disappeared after a restart#

The start script or your host updates and verifies the game files on every start. Verification returns the files to a clean state and removes Oxide from them. Turn off the automatic update on start, or upload Oxide again after every update.

The server crashes on start after installing the framework#

The framework version doesn't match the game version. Update both Rust and the framework to the latest versions. For Oxide, download a release published after the latest Rust update. You'll find details in the server log and in the oxide/logs or carbon/logs folder.

Carbon doesn't load on Linux, the server runs as vanilla#

The start script doesn't source carbon/tools/environment.sh before starting RustDedicated. Add the source line as described in the VPS guide. The Carbon documentation notes that some environments (mainly Docker) also need export TERM=xterm.

I have both Oxide and Carbon installed#

The two frameworks can't work together. Stop the server, verify the game files (validate), keep only one of them and follow the Switching from Oxide to Carbon section.

A plugin works on Oxide but not on Carbon#

Make sure you have the latest version of both the plugin and Carbon. You'll find the error output in the console and in carbon/logs. If the error persists, report it to the plugin author or the Carbon community and include the output.

I don't want the server in the Modded tab#

In Carbon, c.whymodded prints why the server is marked as modded, and c.gocommunity makes the changes needed for the Community tab. In Oxide, the flag is controlled by the "Modded" option in oxide/oxide.config.json. If your plugins change gameplay, though, keep the server in Modded.

Summary

  • A framework (Oxide or Carbon) is required for plugins. Players don't install anything.
  • Oxide is the most widespread; Carbon runs the same plugins, updates itself and has built-in tools.
  • Only one framework can be on a server.
  • Oxide goes into the server root via the RustDedicated_Data folder, Carbon as the carbon folder (plus environment.sh on Linux).
  • Verification: oxide.version or c.version.
  • Upload Oxide again after every Rust update; Carbon updates itself.

Search the guides