Skip to main content

Rust plugin management

uMod and Oxide basic usage

Once uMod is installed, running plugins comes down to three folders and about six commands. Learn the reload command in particular: it is the difference between testing a change in five seconds and restarting your server every time.

  • Rust guides
  • Updated
  • 6 min read
  • 3 folders
  • 6 core commands
  • Permission groups
OXIDE COMMANDSRCON consoleoxide.reload BetterChatoxide.unload BetterChatoxide.reload *oxide.usergroup add VIPsoxide.grant group Admins noclip.use# reload beats restart, every time

The short answer

Upload .cs plugin files to oxide/plugins. Their settings appear in oxide/config after the first run. Use oxide.reload PluginName to apply changes without restarting, and grant permissions to groups with oxide.grant group (GROUP) (PERMISSION) rather than to individuals.

Key points

  • Three folders: plugins, config, data. Each has one job.
  • Config files only appear after the plugin has run once. Do not create them by hand.
  • oxide.reload beats restarting for almost every plugin change.
  • Grant to groups, not people. It scales and it is auditable.
  • Every plugin's own documentation lists its permissions. Read it before guessing.

The three folders

uMod creates three folders on your server, and knowing which does what saves a lot of confusion later.

oxide/plugins
The plugin files themselves, as .cs. Dropping a file in here loads it automatically.
oxide/config
Configuration files for most plugins. These are generated by the plugin on first run, not supplied by you.
oxide/data
Stored data some plugins keep between restarts, such as player records or economy balances. Treat this as the plugin's memory rather than something to edit casually.

A missing config file is not a problem to fix. If you have just uploaded a plugin and oxide/config has nothing for it, that is because the plugin has not run yet. Start the server, let it load, and the file will be there.

Uploading plugins

  1. Get the plugin file

    Download the .cs file from the uMod plugin library or wherever the author distributes it.

  2. Upload it to oxide/plugins

    Through the file manager or over FTP. Upload the .cs file itself, not a zip of it.

  3. Let it load

    uMod picks up new files automatically. Watch the console for a load confirmation or an error.

  4. Configure it

    Its config file will now exist in oxide/config. Edit it, then run oxide.reload PluginName to apply.

Every plugin on the uMod website comes with a description covering its setup, its configuration options and the permissions it defines. Read that page before you start guessing at settings, because most of the questions you are about to have are answered on it.

The commands you need

Core Oxide plugin management commands.
CommandWhat it does
oxide.reload (PLUGIN NAME)Reloads the specified plugin.
oxide.unload (PLUGIN NAME)Unloads the specified plugin.
oxide.reload *Reloads all plugins at once.
oxide.usergroup add (GROUP NAME)Creates a new Oxide user group.
oxide.grant group (GROUP NAME) (PERMISSION)Grants a permission to a group.
oxide.grant user (USERNAME/STEAM64 ID) (PERMISSION)Grants a permission to a single user.

oxide.reload is the one that changes how you work. Editing a config and reloading a single plugin takes seconds and does not disconnect anybody. Restarting the server to achieve the same thing costs your players a map load and, if the seed changed, up to ten minutes.

Permission groups in practice

Oxide permissions can be granted to an individual user or to a group. Both work. Use groups.

The reason is maintenance. Grant ten permissions directly to five VIPs and you have fifty grants to track, and when someone stops being a VIP you have to remember all ten. Grant the ten permissions to a VIPs group and adding or removing a person is one command.

  1. Create the group

    oxide.usergroup add VIPs
  2. Grant the group its permissions

    oxide.grant group VIPs kits.vip
  3. Add people to the group

    Rather than granting them permissions individually. Their access then follows the group definition.

Worked examples

Reload a plugin you just updated
You replaced the BetterChat file, so run oxide.reload BetterChat. No restart needed.
Give admins noclip
oxide.grant group Admins noclip.use gives everyone in the Admins group that permission.
Create a VIP tier
oxide.usergroup add VIPs, then grant it whatever the paid tier should include.
Grant one person something temporarily
oxide.grant user 76561198000000000 kits.event. Use this sparingly, and remember you granted it.
Turn a misbehaving plugin off right now
oxide.unload PluginName. Faster and less disruptive than a restart, and it tells you immediately whether that plugin was the problem.

Habits worth having

Back up before you change plugins
Take a copy of oxide/ before adding or removing anything. Restoring a folder is quicker than reconstructing a configuration from memory.
Add one plugin at a time
Add, reload, watch the console and the server FPS, then move on. Adding six at once and finding the server unhappy leaves you with six suspects.
Watch performance as you go
Plugins are the main influence on Rust server performance, and a plugin that looks trivial can still cost you every tick.
Keep plugins updated
Check uMod after each Rust update. An out-of-date plugin fails compilation and the error names it, which is at least easy to diagnose.
Read the console
uMod is unusually good at telling you what went wrong. Most plugin problems are already explained in the output you have not scrolled up to read.

For more depth on the framework itself, the official uMod documentation is the authoritative source. If you have not installed it yet, start with our guide on installing uMod on a Rust server.

More guides for people running their own Rust server.

Quick answers

Common questions

Upload the .cs plugin files to the oxide/plugins folder on your server. Configuration files for most plugins appear in oxide/config after they have run once, and some plugins also use oxide/data for stored information.

Run oxide.reload PluginName in the console. That reloads just that plugin, picking up any changes to its file or config. oxide.reload * reloads everything at once.

Use oxide.grant group (GROUP NAME) (PERMISSION). For example oxide.grant group Admins noclip.use gives everyone in the Admins group the noclip.use permission. Permissions are defined by the plugin, and its documentation lists them.

oxide.usergroup add (GROUP NAME), for example oxide.usergroup add VIPs. Then grant permissions to the group rather than to individuals, so adding a new VIP later is one command instead of ten.

No. Edit the file in oxide/config, then run oxide.reload PluginName and the plugin picks up the new settings. A full server restart is rarely necessary for plugin work.

Usually the file is in the wrong place, it is not a .cs file, or it is written for a different Rust or uMod version. The console prints an error naming the plugin when it fails to compile, so read that rather than guessing.

Rust hosting with full file access

File manager, FTP and console access on every Rust server we host, so uploading and reloading plugins is a two minute job.

  • UK data centre
  • File manager and FTP
  • Support by ticket and Discord