Version 2.2.0
15 downloads
Description:
Custom Event Manager is a lightweight Rust plugin that automatically manages and rotates through server events. Instead of manually starting events, this plugin will periodically trigger them for you, picking randomly from multiple event lists and ensuring they don't repeat until all events have been cycled through. Disable timer starts in your plugins, and use the start command in the config, to avoid having multiple events run at the same time.
This keeps gameplay fresh and dynamic for your players without requiring constant admin attention, and now includes Discord webhook integration to notify your community when events start!
Features
Multiple event lists with independent rotation schedules
Configurable delays between different event lists to prevent overlap
Automatic event rotation at configurable intervals
Smart rotation logic ensures no event repeats until all have been used
Discord webhook integration with customizable notifications
Admin commands to start, stop, and check the rotation status
Simple JSON configuration for adding your own events
Full permission system support
Configuration
The config file will be generated at:
oxide/config/CustomEventManager.json
Example:
{
"EnableOnServerStart": true,
"DiscordWebhookUrl": "https://discord.com/api/webhooks/YOUR_WEBHOOK_URL",
"DiscordSettings": {
"EnableNotifications": true,
"BotName": "Event Manager",
"BotAvatarUrl": "",
"EmbedColor": 3447003,
"NotifyOnEventStart": true,
"NotifyOnRotationStart": true,
"NotifyOnRotationStop": true,
"NotifyOnCycleComplete": true
},
"EventLists": [
{
"Name": "MainEvents",
"IntervalMinutes": 30,
"RandomizeOrder": true,
"DelayAfterMainEvent (minutes)": 0,
"Enabled": true,
"Events": [
{
"Name": "extraevents",
"Command": "extraevents start",
"Enabled": true
},
{
"Name": "guardedcrate",
"Command": "gcrate start",
"Enabled": true
},
{
"Name": "guessthenumber",
"Command": "gtn start",
"Enabled": true
}
]
},
{
"Name": "SecondaryEvents",
"IntervalMinutes": 45,
"RandomizeOrder": true,
"DelayAfterMainEvent (minutes)": 5,
"Enabled": true,
"Events": [
{
"Name": "roamtasks",
"Command": "RoamTask start",
"Enabled": true
},
{
"Name": "skilltreexpevents",
"Command": "startxpevent",
"Enabled": true
},
{
"Name": "convoy",
"Command": "convoystart",
"Enabled": true
}
]
}
]
}
Options
General Settings
EnableOnServerStart → Automatically start event rotation when the server starts. Default: true
DiscordWebhookUrl → Your Discord webhook URL for notifications. Leave empty to disable Discord integration.
Discord Settings
EnableNotifications → Master switch for all Discord notifications. Default: true
BotName → The name displayed for the webhook bot. Default: "Event Manager"
BotAvatarUrl → URL to an avatar image for the bot (optional)
EmbedColor → Decimal color code for Discord embeds. Default: 3447003 (blue)
NotifyOnEventStart → Send notification when an event starts. Default: true
NotifyOnRotationStart → Send notification when rotation starts. Default: true
NotifyOnRotationStop → Send notification when rotation stops. Default: true
NotifyOnCycleComplete → Send notification when all events in a list complete. Default: true
Event List Settings
Each event list supports:
Name → Friendly name for the event list
IntervalMinutes → Time (in minutes) between each event in this list. Default: 30
RandomizeOrder → Whether to randomize event selection. Default: true
DelayAfterMainEvent (minutes) → Additional delay before starting this list's events (useful for preventing overlap). Default: 0
Enabled → Whether this event list is active. Default: true
Events → Array of event definitions:
Name → Friendly name for the event (used in status tracking and Discord notifications)
Command → The console command to trigger the event
Enabled → Whether this specific event is active. Default: true
Permissions
customeventmanager.admin
Required to use the admin commands.
Commands
/cem start - Starts the event rotation
/cem stop - Stops the event rotation
/cem status - Shows current status, how many events have run, and when the next one is scheduled
/cem reload - Reloads the configuration and restarts rotation
/cem list - Lists all configured event lists and their events
Console Commands
All chat commands can also be used from the F1 console by replacing /cem with cem:
cem start
cem stop
cem status
cem reload
cem list
How it works
Multiple Event Lists: You can configure multiple independent event lists (e.g., "MainEvents" and "SecondaryEvents") that run on their own schedules
Smart Scheduling: Each list tracks its interval and optional delay to prevent events from overlapping
No Repeats: Events won't repeat until all events in that list have been triggered
Discord Integration: Get real-time notifications in your Discord server when events start, cycles complete, or rotation status changes
Tips
Disable built-in timers in your event plugins to prevent conflicts
Use the DelayAfterMainEvent setting to stagger different event lists
Set RandomizeOrder to false if you want events to run in a specific sequence
Customize Discord notifications to match your server's style with the EmbedColor and BotAvatarUrl settings