Game Servers
How to Install Oxide (uMod) Plugins on a Rust Server
Applies to: Rust server hosting
Vanilla Rust servers cannot run plugins at all — first you install Oxide (the framework hosted at uMod), then you drop plugin .cs files into a folder and wire up permissions. This guide covers the whole flow, plus the update-day breakage every Rust server owner eventually meets.
01Stop the server and install Oxide
Download the latest Oxide.Rust build from uMod (umod.org). It ships as a zip containing patched versions of the server's managed assemblies. With the server stopped, extract the zip into the server's root so its contents merge into RustDedicated_Data/Managed, overwriting the vanilla files. On a hosted panel this is usually a one-click “Modding framework: Oxide” toggle instead.
One thing to know up front: Oxide is server-side only. Players connect with the normal Rust client and need to install nothing — modded and community servers just appear under different server-browser tabs.
02Start the server and confirm Oxide loaded
Boot the server, open the console (or RCON), and run:
oxide.versionIf it prints a version string, Oxide is live and you will find a new oxide folder next to the server files containing plugins, config, data, and logs subfolders. If the console says the command is unknown, the extraction went to the wrong place — check that the Oxide files actually replaced the ones in RustDedicated_Data/Managed.
03Download plugins from uMod
Plugins are distributed as single C# source files — Kits.cs, GatherManager.cs and so on — mostly from umod.org, with paid plugins on marketplaces like Codefling. Before installing one, read its uMod page for dependencies: many plugins require a shared library plugin such as ImageLibrary or Economics, which you install the same way and ideally first.
04Upload plugins to oxide/plugins
Copy the .cs files into oxide/plugins. Oxide watches this folder: within a few seconds it compiles each file and loads it live — no restart required. Watch the console for a line like Loaded plugin Kits v1.4.6 or a compiler error naming the file. On first load each plugin writes a default JSON config to oxide/config.
05Grant permissions to players and groups
Most plugins do nothing for ordinary players until you grant their permissions. Oxide has two built-in groups — default (everyone) and admin — and a simple grant syntax:
oxide.grant group default kits.use
oxide.grant user "PlayerNameOrSteamID" kits.admin
oxide.group add vip
oxide.usergroup add "PlayerName" vipEach plugin's uMod page lists the permissions it registers, and oxide.show perms prints every permission currently registered on your server. Revoke with oxide.revoke using the same shape.
06Configure and reload plugins
Tune behaviour by editing the plugin's JSON file in oxide/config, then apply it without a restart:
oxide.reload Kitsoxide.unload and oxide.load work the same way, and oxide.reload * reloads everything. Keep a copy of any config you have heavily customised — some plugin updates regenerate configs with new defaults.
Run it on HostPanel: our Rust server hosting plans include one-click Oxide installation that re-applies the framework automatically after every Rust update.
Troubleshooting
Every plugin stopped working after a Rust update
Rust's monthly forced update overwrites the patched assemblies, silently removing Oxide. Wait for the matching Oxide.Rust build (it usually follows within hours of a Facepunch update), reinstall it over the server, and your plugins, configs, and data all come back — nothing else is lost.
A plugin fails to compile with red errors in the console
Either the plugin is outdated for the current Rust/Oxide version, or a dependency is missing. Check the plugin's uMod page for an update and for required libraries, and make sure you uploaded the raw .cs file, not a renamed .txt or a zip.
The plugin loads but players say it does nothing
Almost always missing permissions. Run oxide.show group default to see what everyone actually has, and grant the plugin's *.use-style permission to the default group as shown in step 5.
