📚 Oxide / uMod Guide

Universal modding framework for Rust, 7 Days to Die, and more

Quick Info

Supported Games:Rust, 7 Days to Die, Hurtworld, Reign of Kings, The Forest
Languages:C# (primary), Lua (limited support)
Plugin Repository:umod.org (formerly oxidemod.org)
Current Version:uMod 2.x (successor to Oxide 2.0)
Permissions System:Built-in group and user permissions
Website:umod.org

Navigation

Overview

Oxide (now uMod) is a modding framework that provides a universal API for creating plugins across multiple games. It allows server owners to add custom functionality without modifying game files.

Key Features

Supported Games

Game Support Level Popular Plugins
Rust ★★★★★ Full Kits, Economics, Clans, TP, Vote
7 Days to Die ★★★★★ Full Admin Tools, Teleport, Bloodmoon
Hurtworld ★★★★☆ Good Admin Tools, Kits, Economy
Reign of Kings ★★★☆☆ Fair Admin Tools, Custom Commands
The Forest ★★★☆☆ Fair Limited plugin support

📥 Installation

Rust Installation

Windows

# Stop your Rust server first

# Download uMod for Rust from umod.org
# Extract Oxide.Rust.zip to your server directory
# Files extract to: RustDedicated_Data/Managed/

# Start server - Oxide will create directories:
# oxide/plugins/      (place plugins here)
# oxide/config/       (plugin configs)
# oxide/data/         (plugin data)
# oxide/logs/         (Oxide logs)

Linux

# Stop Rust server
cd /home/rustserver

# Download and extract Oxide
wget https://umod.org/games/rust/download
unzip -o Oxide.Rust.zip

# Set permissions
chmod +x RustDedicated

# Start server
./RustDedicated -batchmode +server.port 28015 +server.level "Procedural Map" +server.seed 12345 +server.worldsize 4000 +server.maxplayers 100 +server.hostname "My Rust Server" +server.description "Powered by Oxide" +server.identity "server1"

7 Days to Die Installation

Windows

# Stop 7 Days to Die server

# Download uMod for 7 Days to Die from umod.org
# Extract to 7DaysToDieServer directory
# Files go to: 7DaysToDieServer_Data/Managed/

# Start server - Oxide directories created in:
# 7DaysToDieServer_Data/oxide/

Linux

# Stop server
cd /home/7daysserver

# Download and extract
wget https://umod.org/games/7-days-to-die/download
unzip -o Oxide.7DaysToDie.zip

# Start server
./7DaysToDieServer.sh

🔌 Plugin System

Installing Plugins

Method 1: Manual Installation

# Download plugin .cs file from umod.org
# Example: AdminPanel.cs

# Place in oxide/plugins/ directory
oxide/
└── plugins/
    └── AdminPanel.cs

# Oxide automatically compiles and loads the plugin
# Check oxide/logs/oxide.log for any errors

Method 2: In-Game Commands (if supported)

# Some admin tools allow downloading plugins in-game
oxide.load PluginName
oxide.reload PluginName
oxide.unload PluginName

Popular Rust Plugins

Essential Administration Plugins

Player Features

Server Enhancement

Plugin Configuration

After first load, plugins create config files in oxide/config/:

# Example: oxide/config/Kits.json
{
  "Kits": {
    "starter": {
      "items": [
        {"shortname": "stones", "amount": 3000},
        {"shortname": "wood", "amount": 5000},
        {"shortname": "bandage", "amount": 5}
      ],
      "cooldown": 3600
    }
  }
}

# Edit configs and use: oxide.reload Kits

👤 Permissions & Groups

Permission System Overview

Oxide uses a hierarchical permission system with groups and individual user permissions.

Basic Permission Commands

# Grant permission to user (use Steam64 ID)
oxide.grant user 76561198012345678 pluginname.permission

# Grant permission to group
oxide.grant group admin adminradar.allowed

# Revoke permission
oxide.revoke user 76561198012345678 pluginname.permission

# Show user permissions
oxide.show user 76561198012345678

# Show group permissions
oxide.show group admin

Group Management

# Create group
oxide.group add vip "VIP Members" 1

# Add user to group
oxide.usergroup add 76561198012345678 vip

# Remove user from group
oxide.usergroup remove 76561198012345678 vip

# List all groups
oxide.show groups

# Set parent group (inheritance)
oxide.group parent vip default

Default Groups

Group Rank Purpose
admin 0 (highest) Full permissions
moderator 1 Moderate permissions
vip 2 VIP player perks
default 3 (lowest) Regular players

Finding Steam64 ID

💻 Plugin Development

Basic Plugin Structure

using Oxide.Core;
using Oxide.Core.Libraries.Covalence;

namespace Oxide.Plugins
{
    [Info("HelloWorld", "YourName", "1.0.0")]
    [Description("Simple hello world plugin")]
    class HelloWorld : RustPlugin
    {
        // Called when plugin is loaded
        void Init()
        {
            Puts("HelloWorld plugin loaded!");
        }

        // Chat command: /hello
        [Command("hello")]
        void HelloCommand(IPlayer player, string command, string[] args)
        {
            player.Reply("Hello, " + player.Name + "!");
        }

        // Hook: Called when player connects
        void OnPlayerConnected(BasePlayer player)
        {
            PrintToChat($"{player.displayName} has joined the server!");
        }
    }
}

Common Hooks (Rust)

Hook Purpose
Init() Plugin initialization
OnServerInitialized() Server fully loaded
OnPlayerConnected(BasePlayer) Player joins server
OnPlayerDisconnected(BasePlayer) Player leaves server
OnPlayerChat(BasePlayer, string) Player sends chat message
OnEntityDeath(BaseCombatEntity) Entity (player/NPC) dies
OnEntitySpawned(BaseNetworkable) Entity spawns

Data Storage Example

// Store player data in JSON file
class PlayerData
{
    public string Name;
    public int Points;
    public DateTime LastSeen;
}

class MyPlugin : RustPlugin
{
    Dictionary playerData = new Dictionary();

    void LoadData()
    {
        playerData = Interface.Oxide.DataFileSystem.ReadObject>("MyPlugin_Data");
    }

    void SaveData()
    {
        Interface.Oxide.DataFileSystem.WriteObject("MyPlugin_Data", playerData);
    }
}

🎮 Game-Specific Setup

Rust

# Server startup with Oxide
./RustDedicated -batchmode \
  +server.port 28015 \
  +server.level "Procedural Map" \
  +server.hostname "My Oxide Server" \
  +rcon.port 28016 \
  +rcon.password "your_rcon_password"

# Essential first plugins:
# 1. BetterChat (chat enhancement)
# 2. AdminRadar (admin tool)
# 3. Vanish (admin invisibility)

7 Days to Die

# Oxide config location:
# 7DaysToDieServer_Data/oxide/config/

# Essential plugins:
# 1. Admin Tools
# 2. Teleport System
# 3. Player Info

# Check oxide/logs/ for plugin errors

🔧 Troubleshooting

Plugin Not Loading

# Check oxide/logs/oxide.log for errors
tail -f oxide/logs/oxide.log

# Common issues:
# 1. Syntax errors in plugin code
# 2. Missing dependencies
# 3. Outdated plugin version
# 4. Permission denied (file permissions)

# Reload plugin manually
oxide.reload PluginName

Permissions Not Working

Plugin Conflicts

# Disable plugins one by one to find conflict
oxide.unload PluginName

# Check oxide/logs/ for conflict errors
# Some plugins modify same hooks - may conflict

High CPU Usage

Pro Tips

Resources