Files
docs/modules/rust/OPERATING.md
wtclaude a305e98e05 docs(rust): stage 6 built — Guarded Crate (PROTOCOL §20.9, PLAN_REDESIGNS §14.3.19, D380)
- rust-link/PROTOCOL.md §20.9: hello's guardedCrate with npcSpawn and events,
  gc.started/ended/failed, gc.place and gc.error's reasons, guardedWon, map.live's
  guarded rows and how they are kept, POST /gc/place, and the website side.
  §17.3's world row gains guarded.
- modules/rust/PLAN_REDESIGNS.md: D380 (the kept crate's run-log note at
  placement), §14.3.19 the stage record, pointers from §9 and §14.3.5.
- modules/rust/OPERATING.md: Runic Gateway's own section on Guarded Crate and
  NpcSpawn (install, images, what it contacts at load), after the uMod mirror.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01E14m6SuuY6i1vASFeGDBeY
2026-10-15 12:26:53 -05:00

14 KiB

Running Oxide: the operator's side

What a server owner does — install the mod framework onto a game server, then install, configure and permission plugins. This is the surface our own deployment story has to sit on top of, the way installer/INSTALL.md sits on top of ServUO.

Mirrored verbatim from uMod on 2026-09-15 — 6 pages. uMod is upstream and normative. The last section, Guarded Crate and NpcSpawn, is Runic Gateway's own and is not part of the mirror.


Contents


Getting Started

Source: https://umod.org/documentation/getting-started


Installation

Server requirements

The Oxide platform requirements vary depending on the game server.

More information about Oxide support for specific games may be found on the Game Support page.

Installing Oxide

Via Direct Download

  1. Download the Oxide version specific to your game.
  2. Copy the files over your existing server installation

Plugins

Plugins are self-contained bits of code which modify game server behavior.

For more information about plugins, view the Plugins - Getting Started page.

View all available plugins

Extensions

Extensions are generally large projects which add functionality to Oxide or make substantial changes to a server.

View all available extensions


Plugins - Getting Started

Source: https://umod.org/documentation/plugins/getting-started

Plugins are self-contained bits of code which modify game server behavior.


Code files

Plugins are code files distributed as CSharp (C#) files and will have a .cs file extension.

Installing a code file

More information about installing plugins may be found at Plugins - Installation.

Configuring a plugin

Many plugins generate a JSON configuration file that a server administrator may use to change how the plugin works.

More information about configuring plugins may be found at Plugins - Configuration.

Plugin permissions

Many plugins have permissions which must be assigned in order to use plugin features.

More information about access control may be found at Plugins - Permissions.

Plugin commands

Many plugins have commands that may be used by players or server administrators. Not every game will have both console commands and chat commands (check Game Support for availability of commands). By default commands should be available by console and in-game.

Console commands

A console command is a command which is run from...

  1. In-game console (if game has one)
  2. Server application window (if platform supports it)
  3. RCON console (if game supports RCON)

Chat commands

Chat commands are prefixed with a / and run by players using in-game chat.

For example: /help


Plugin installation

Source: https://umod.org/documentation/plugins/installation

Installing Oxide plugins usually only takes a few mouse clicks.


Server requirements

To install the plugin on the server, the server provider must support Oxide 2.0 or higher, else the plugins will not load or do anything.

If the server is not online, start it. Then, check that Oxide is fully installed by testing the oxide.version chat or console command.

Download the source code

Download a plugin from the plugins page;

Warning. Do not rename the plugin or change the file extension.

Remote server

If the server is not hosted locally, connect to the server via an FTP client. If unsure of the FTP details, please contact the server host.

Plugins directory

Find the plugins folder which is located by default at oxide/plugins if it has not been changed by the server host

Upload the source code

Upload the plugin file into the "plugins" folder and it will be loaded automatically if Oxide is currently installed

Continue to configuring the plugin...

Updating

If a plugin is already installed and an update is available simply overwrite the original (.cs) file and the new version will be loaded automatically.


Plugin configuration

Source: https://umod.org/documentation/plugins/configuration

Most plugins will generate a JSON configuration file once loaded. With this file, a server owner may change how a plugin works.


Config directory

Configuration files are found in the config folder which is located by default in oxide/config (unless the server host has moved it).

File name

A plugin configuration file will have the same name as the plugin itself.

For example, a plugin that is installed as MyPlugin.cs (if it is configurable) will be accompanied by a JSON file named MyPlugin.json

Warning. Do not rename the configuration file or change the file extension.

If a plugin is installed but not configurable, no configuration file will be present.

If a plugin is configurable but no configuration file is available, the plugin may be broken; in this case, check the log files under the oxide/logs directory for errors.

Valid JSON

All plugin configuration files are saved as JSON (JavaScript Object Notation). Configuration files must be valid JSON. Use a validator such as jsonlint.com to ensure the configuration is valid JSON.

Applying changes

After making changes to a plugin configuration file, reload the plugin in the server console by using the oxide.reload command. For example:

oxide.reload MyPlugin

Continue to setting permissions...


Data Files

Source: https://umod.org/documentation/plugins/data-files

Data files are JSON files that plugins may use to store arbitrary data.

Data directory

Data files may be found in the data folder which located by default in oxide/data (unless the server host has moved it).

File names

Data files do not follow any naming convention, a plugin author may specify any name when creating a data file.

It is recommended to plugin authors, when creating a large number of data files, to create them in a subdirectory specific to their plugin.

Valid JSON

All plugin data files are saved as JSON (JavaScript Object Notation). Data files must be valid JSON. If editing a data file manually, use a validator such as jsonlint.com to ensure the data file is valid JSON.


Permissions

Source: https://umod.org/documentation/plugins/permissions

Permissions allows server owners to give players unique abilities and benefits on their servers.


Administering permissions is easy; simply enter the desired command and you're done! If your server does not have a console, you can use any compatible RCON tool or remote console to send the commands to the server. Most Oxide-supported games also support the permission commands in the chat, or will soon.

For this guide, the permission epicstuff.use will be used as an example. Keep in mind that permissions only exist if provided by a plugin or Oxide itself.

By default, the groups that are created by Oxide are: admin and default. These can be changed by editing those under the oxide.config.json file. The admin group will automatically be assigned to players that are recognized as admin (via ownerid) by the server. The "default" group will automatically be assigned to ALL players that connect to the server.

Players

Grant a permission to an individual player

oxide.grant user Wulf epicstuff.use

Revoke a permission from an individual player

oxide.revoke user Wulf epicstuff.use

Show a player's permissions

oxide.show user Wulf

Showing which player or group has a permission

Sometimes this command is helpful when tracking down who has a permission.

oxide.show perm epicstuff.use

Groups

Grant a permission to an entire group

oxide.grant group admin epicstuff.use

Revoke a permission from a group

oxide.revoke group admin epicstuff.use

Adding a player to an existing group

Adding a player to a group will give them all of the permissions assigned to that group.

oxide.usergroup add Wulf admin

Removing a player from an existing group

Removing a player from a group will remove from them all of the permissions assigned to that group.

oxide.usergroup remove Wulf admin

Adding an entirely new group

oxide.group add vip
oxide.group add vip VIP 0

Removing an existing group

oxide.group remove vip

Setting the title or rank of a group

The group title is usually a short description of a group, sometimes used for chat titles. The rank is a number which sorts a group based on its importance.

oxide.group set vip "[VIP Member]"
oxide.group set vip "[VIP Member]" 1

Setting the parent group of another group

A group will inherit all permissions from its parent group.

oxide.group parent admin default

Showing a group's members and permissions

oxide.show group admin

Showing all groups or permissions

To show all of the permission groups, simple use the command below.

oxide.show groups

The show all of the registered permissions from plugins and Oxide, use the command below.

oxide.show perms

Using wildcards

A wildcard is something that covers multiple things at once time. For permissions, this is the * symbol. You can use the wildcard (*) to grant multiple permissions at one time. This can be done with all permissions or per plugin based on prefix.

oxide.grant group admin *
oxide.grant user Wulf oxide.*

Conclusion

The same commands are also available with the "o." prefix (ex. "o.grant").

That's the basics to permissions for Oxide. Permissions give you a fantastic way to manage staff without worrying about them abusing powers from the game's admin functionality (such as flight, noclip, super speed, etc.) so they can still enjoy the game but also help monitor your server at the same time.


Mirrored from uMod, 2026-09-15.


Guarded Crate and NpcSpawn

Runic Gateway's own section, not mirrored. Design: PLAN_REDESIGNS.md §14.3.5 (D361, D364); wire: PROTOCOL.md §20.9.

Bazz3l's Guarded Crate (uMod) is one of the optional plugins Runic Gateway reports and drives: a guarded crate landing and being cleared reach the site's feed, map and Warden title, and an event can place one. It needs NpcSpawn for its guards, and NpcSpawn is not on uMod. Runic Gateway never ships or modifies either (D351, D361); an operator who wants guarded crates installs both.

Installing NpcSpawn.

  1. Download NpcSpawn from Codefling (https://codefling.com/extensions/npc-spawn), a free download.
  2. Put NpcSpawn.cs in the plugins directory (oxide/plugins, or carbon/plugins on Carbon).
  3. Put the archive's data/Images/ files in the data directory's Images folder (oxide/data/Images, or carbon/data/Images). Without them NpcSpawn unloads itself.
  4. Leave data/NpcSpawn/ for NpcSpawn to create. On Carbon, a folder made by a panel's file manager may not be writable by the game, and NpcSpawn then fails until that folder is deleted and left to it.
  5. Install Guarded Crate from uMod as any other plugin.

What NpcSpawn does at load: it contacts its author's server. It calls a version server at a bare IP address (seen as 37.153.157.216:5000 in the §14.2 test) and downloads clothing images. An operator whose server may not reach the internet, or who does not want it to, should know this before installing it.

Without NpcSpawn, Guarded Crate unloads itself the next time its own schedule starts an event, and Runic Gateway's Place a guarded crate step is refused with "Guarded Crate is loaded but NpcSpawn is missing: its events cannot start". The bridge refuses that placement itself, because Guarded Crate's position command does not check and would drop a crate with no guards. Admin → Rust servers shows NpcSpawn beside Guarded Crate.

Its events are rows in Guarded Crate's data file, data/GuardedCrate.json (Easy, Medium, Hard and Elite as it ships), not its config. The site offers whatever names that file holds. A crate placed by an event is kept when the event ends (D373): Guarded Crate has no way to end one event, and gcrate stop all ends every one on the server.