About Custom Event Manager
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!
NEW in v2.3.0: Take full control of Rust's vanilla events! Disable automatic spawns of patrol helicopters, cargo planes, cargo ships, CH47s, Bradley APCs, and supply drops. Then optionally schedule them manually through the plugin's rotation system for complete server event control.
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
- Vanilla event control - Enable/disable individual vanilla Rust events Manual vanilla event scheduling - Schedule vanilla events through the rotation system when disabled
- Admin commands to start, stop, and check the rotation status
- Simple JSON configuration for adding your own events
- Full permission system support Configuration
Configuration
The config file will be generated at: oxide/config/CustomEventManager.json
Example:
{
"EnableOnServerStart": true,
"PreventDuplicateEvents": true,
"MaxRerollAttempts": 5,
"EventCooldownSeconds": 60,
"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
},
"VanillaEventSettings": {
"EnablePatrolHelicopter": true,
"EnableCargoPlane": true,
"EnableCargoShip": true,
"EnableCH47": true,
"EnableBradleyAPC": true,
"EnableSupplyDrop": 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
}
]
},
{
"Name": "VanillaEvents",
"IntervalMinutes": 60,
"RandomizeOrder": true,
"DelayAfterMainEvent (minutes)": 0,
"Enabled": false,
"Events": [
{
"Name": "PatrolHelicopter",
"Command": "spawnheli",
"Enabled": true
},
{
"Name": "CargoPlane",
"Command": "spawnplane",
"Enabled": true
},
{
"Name": "CargoShip",
"Command": "spawncargoship",
"Enabled": true
},
{
"Name": "CH47",
"Command": "spawnch47",
"Enabled": true
}
]
}
]
}
Options
General Settings
- EnableOnServerStart → Automatically start event rotation when the server starts. Default: true
- PreventDuplicateEvents → Prevents the same event from running across different event lists simultaneously. Default: true
- MaxRerollAttempts → Number of attempts to find a non-duplicate event before giving up. Default: 5
- EventCooldownSeconds → Time (in seconds) before an event is removed from the global active list. Default: 60
- 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
Vanilla Event Settings
Control whether vanilla Rust events spawn automatically:
- EnablePatrolHelicopter → Allow automatic patrol helicopter spawns. Default: true
- EnableCargoPlane → Allow automatic cargo plane spawns. Default: true
- EnableCargoShip → Allow automatic cargo ship spawns. Default: true
- EnableCH47 → Allow automatic CH47 spawns. Default: true
- EnableBradleyAPC → Allow automatic Bradley APC spawns. Default: true
- EnableSupplyDrop → Allow automatic supply drop spawns. Default: true
Important: When you disable a vanilla event (set to false), the plugin will block its automatic spawns. To schedule these events manually, enable the "VanillaEvents" list in your EventLists configuration and customize the interval and events as needed.
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
- /cem active - Shows currently active events globally
- /cem vanilla - shows the status of vanilla event settings
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
- cem active
- cem vanilla
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
- Duplicate Prevention: Prevents the same event from running simultaneously across different lists
- Vanilla Event Control: Block automatic vanilla event spawns and optionally schedule them through the plugin's rotation system
Vanilla Event Scheduliing
To take full control of vanilla Rust events:
-
Disable automatic spawns by setting the vanilla events to false in VanillaEventSettings:
"VanillaEventSettings": { "EnablePatrolHelicopter": false, "EnableCargoPlane": false, "EnableCargoShip": false, "EnableCH47": false, "EnableBradleyAPC": false, "EnableSupplyDrop": false }2. Enable manual scheduling by setting the VanillaEvents list to true
{ "Name": "VanillaEvents", "IntervalMinutes": 60, "RandomizeOrder": true, "DelayAfterMainEvent (minutes)": 0, "Enabled": true, "Events": [...] }3. Customize the schedule by adjusting IntervalMinutes, adding/removing events, or changing the order
This gives you complete control over when and how often vanilla events occur on your server!
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
- Use PreventDuplicateEvents to avoid the same event running twice at once across different lists
- Disable vanilla events and use the VanillaEvents list for complete control over server events
- Use /cem vanilla to quickly check which vanilla events are enabled or disabled
