Rust Custom Event Scheduler

EXCLUSIVE RUST PLUGIN Rust Custom Event Scheduler 1.0.5

Upgrade or register to download

Rust Custom Event Scheduler​

Automated, randomized, and fully customizable premium event scheduling for your Rust server โ€” with Discord integration and live player visibility.


โœจ Features​

  • ๐ŸŽฒ Randomized Event Queue โ€” Events fire in a different order every cycle to keep gameplay fresh and unpredictable
  • โฑ๏ธ Smart Buffer Timing โ€” Configurable random delay (min/max minutes) between every event keeps spawn timing varied
  • ๐Ÿ” Auto-Cycling โ€” When all events have run, the list re-randomizes automatically and starts a new cycle
  • โšก Max Active Events โ€” Control how many events can run simultaneously; prevents event stacking
  • ๐Ÿ“ข Discord Notifications โ€” Rich embed messages for every scheduler action (load, queue, start, end, delay, cycle reset)
  • ๐Ÿ–ฅ๏ธ Console Logging โ€” Full console output for every scheduler action with local server time
  • ๐Ÿ’ฌ Player Command โ€” Players type !events or /events โ€” both are silent (not shown in chat), and the result broadcasts to all players so everyone benefits from the cooldown
  • ๐Ÿ”ง Dynamic Config โ€” Add your own events by editing the config file โ€” no code, no reload required on first load
  • ๐Ÿ• Local Server Time โ€” All times display in your server's local timezone, auto-detected and abbreviated (e.g. CST, PST, EDT)
  • ๐Ÿ›‘ Self-Managed Events โ€” Events without a stop command (convoys, trains, etc.) are tracked by run time with no stop needed
  • ๐Ÿ‘น Managed Events โ€” Events like boss monsters get an automatic stop command fired after their run time expires



๐Ÿ“ฆ Installation​

  1. Download rCEventScheduler.cs
  2. Place it in your oxide/plugins/ directory
  3. Restart the server or run: oxide.reload rCEventScheduler
  4. Edit the config at oxide/config/rCEventScheduler.json
  5. Set your Discord webhook URL for admin notifications (optional)



โš™๏ธ Configuration​

File: oxide/config/rCEventScheduler.json
{
"Log Events to Console": true,
"Log Events to Discord": true,
"Admin Discord Webhook URL": "",
"Max Active Events": 1,
"Event Buffer Time Enabled": true,
"Event Min Buffer Time (minutes)": 5,
"Event Max Buffer Time (minutes)": 15,
"Enable Player Events Command": true,
"Show Next Event Scheduled on Event End": true,
"Events": [
{
"Event Name": "Air Event",
"Event Enabled": true,
"Required Plugin": "AirEvent",
"Event Run Time (minutes)": 60,
"Event Start Command": "airstart",
"Event Stop Command": ""
},
{
"Event Name": "Airfield Event",
"Event Enabled": true,
"Required Plugin": "AirfieldEvent",
"Event Run Time (minutes)": 60,
"Event Start Command": "afestart",
"Event Stop Command": ""
},
{
"Event Name": "Arctic Base Event",
"Event Enabled": true,
"Required Plugin": "ArcticBaseEvent",
"Event Run Time (minutes)": 45,
"Event Start Command": "abstart",
"Event Stop Command": ""
},
{
"Event Name": "Armored Train",
"Event Enabled": true,
"Required Plugin": "ArmoredTrain",
"Event Run Time (minutes)": 60,
"Event Start Command": "atrainstart",
"Event Stop Command": ""
},
{
"Event Name": "Boss Monster Clown",
"Event Enabled": true,
"Required Plugin": "BossMonster",
"Event Run Time (minutes)": 60,
"Event Start Command": "SpawnBoss Clown",
"Event Stop Command": "KillBoss Clown"
},
{
"Event Name": "Boss Monster Evil",
"Event Enabled": true,
"Required Plugin": "BossMonster",
"Event Run Time (minutes)": 60,
"Event Start Command": "SpawnBoss Evil",
"Event Stop Command": "KillBoss Evil"
},
{
"Event Name": "Boss Monster Franken",
"Event Enabled": true,
"Required Plugin": "BossMonster",
"Event Run Time (minutes)": 60,
"Event Start Command": "SpawnBoss Franken",
"Event Stop Command": "KillBoss Franken"
},
{
"Event Name": "Boss Monster Frankenstein",
"Event Enabled": true,
"Required Plugin": "BossMonster",
"Event Run Time (minutes)": 60,
"Event Start Command": "SpawnBoss Frankenstein",
"Event Stop Command": "KillBoss Frankenstein"
},
{
"Event Name": "Boss Monster Heavy",
"Event Enabled": true,
"Required Plugin": "BossMonster",
"Event Run Time (minutes)": 60,
"Event Start Command": "SpawnBoss Heavy",
"Event Stop Command": "KillBoss Heavy"
},
{
"Event Name": "Boss Monster Horror",
"Event Enabled": true,
"Required Plugin": "BossMonster",
"Event Run Time (minutes)": 60,
"Event Start Command": "SpawnBoss Horror",
"Event Stop Command": "KillBoss Horror"
},
{
"Event Name": "Boss Monster Jason",
"Event Enabled": true,
"Required Plugin": "BossMonster",
"Event Run Time (minutes)": 60,
"Event Start Command": "SpawnBoss Jason",
"Event Stop Command": "KillBoss Jason"
},
{
"Event Name": "Boss Monster King of the Night",
"Event Enabled": true,
"Required Plugin": "BossMonster",
"Event Run Time (minutes)": 60,
"Event Start Command": "SpawnBoss King of the Night",
"Event Stop Command": "KillBoss King of the Night"
},
{
"Event Name": "Boss Monster Michael Myers",
"Event Enabled": true,
"Required Plugin": "BossMonster",
"Event Run Time (minutes)": 60,
"Event Start Command": "SpawnBoss Michael Myers",
"Event Stop Command": "KillBoss Michael Myers"
},
{
"Event Name": "Boss Monster Oni",
"Event Enabled": true,
"Required Plugin": "BossMonster",
"Event Run Time (minutes)": 60,
"Event Start Command": "SpawnBoss Oni",
"Event Stop Command": "KillBoss Oni"
},
{
"Event Name": "Boss Monster Raptor",
"Event Enabled": true,
"Required Plugin": "BossMonster",
"Event Run Time (minutes)": 60,
"Event Start Command": "SpawnBoss Raptor",
"Event Stop Command": "KillBoss Raptor"
},
{
"Event Name": "Boss Monster Scary",
"Event Enabled": true,
"Required Plugin": "BossMonster",
"Event Run Time (minutes)": 60,
"Event Start Command": "SpawnBoss Scary",
"Event Stop Command": "KillBoss Scary"
},
{
"Event Name": "Celestial Barrage",
"Event Enabled": true,
"Required Plugin": "CelestialBarrage",
"Event Run Time (minutes)": 5,
"Event Start Command": "cb.random",
"Event Stop Command": ""
},
{
"Event Name": "Convoy",
"Event Enabled": true,
"Required Plugin": "Convoy",
"Event Run Time (minutes)": 60,
"Event Start Command": "convoystart",
"Event Stop Command": ""
},
{
"Event Name": "Gas Station Event",
"Event Enabled": true,
"Required Plugin": "GasStationEvent",
"Event Run Time (minutes)": 45,
"Event Start Command": "gsstart",
"Event Stop Command": ""
},
{
"Event Name": "Gun Game",
"Event Enabled": true,
"Required Plugin": "GunGame",
"Event Run Time (minutes)": 45,
"Event Start Command": "ggstart",
"Event Stop Command": ""
},
{
"Event Name": "Harbor Event",
"Event Enabled": true,
"Required Plugin": "HarborEvent",
"Event Run Time (minutes)": 60,
"Event Start Command": "harborstart",
"Event Stop Command": ""
},
{
"Event Name": "Sputnik",
"Event Enabled": false,
"Required Plugin": "Sputnik",
"Event Run Time (minutes)": 60,
"Event Start Command": "sputnikstart",
"Event Stop Command": ""
},
{
"Event Name": "Supermarket Event",
"Event Enabled": true,
"Required Plugin": "SupermarketEvent",
"Event Run Time (minutes)": 45,
"Event Start Command": "supermarketstart",
"Event Stop Command": ""
},
{
"Event Name": "Twister",
"Event Enabled": true,
"Required Plugin": "Tornado",
"Event Run Time (minutes)": 5,
"Event Start Command": "tornado start random",
"Event Stop Command": ""
},
{
"Event Name": "Water Event",
"Event Enabled": true,
"Required Plugin": "WaterEvent",
"Event Run Time (minutes)": 120,
"Event Start Command": "waterstart",
"Event Stop Command": ""
}
]
}



Global Settings​


OptionDefaultDescription
Log Events to ConsoletruePrint all scheduler events to the server console
Log Events to DiscordtrueSend Discord embed messages for all scheduler events
Admin Discord Webhook URL""Private Discord webhook URL for admin-only notifications
Max Active Events1Maximum number of events that can run at the same time
Event Buffer Time EnabledtrueEnable random delay between events
Event Min Buffer Time (minutes)5Minimum random delay (minutes) before next event fires
Event Max Buffer Time (minutes)15Maximum random delay (minutes) before next event fires
Enable Player Events CommandtrueAllow all players to use !events in chat
Show Next Event Scheduled on Event EndtrueAfter an event ends, re-send the Next Event Scheduled Discord embed as a reminder


Per-Event Options​


OptionTypeDescription
Event NamestringDisplay name of the event
Event EnabledboolSet to false to skip this event without removing it from the config
Required PluginstringOxide plugin name that must be loaded for this event to be scheduled โ€” leave "" to always include
Event Run Time (minutes)intHow long the event runs before being stopped or expired
Event Start CommandstringServer console command to start the event
Event Stop CommandstringServer console command to stop the event โ€” leave "" if self-managed

Note: Events with an empty Event Stop Command are self-managed. The scheduler tracks their run time but does not issue a stop command โ€” the event ends on its own (e.g. a convoy that despawns naturally).
Note: If Required Plugin is set and that Oxide plugin is not loaded when the server starts, the event is silently omitted from the queue. A single warning message lists all skipped events and their missing plugins.


๐Ÿ’ฌ Player Command​


CommandAccessDescription
!eventsAll PlayersSilent โ€” suppressed from chat. Broadcasts active events and next scheduled event to all players
/eventsAll PlayersSilent โ€” slash commands are suppressed by Oxide. Same result and same shared cooldown as !events

Broadcast: The result is sent to all players on the server, not just the player who typed the command. Since the cooldown is global, everyone benefits from one trigger.
Anti-spam: Both commands share a global 5-minute server-side cooldown. The player who triggers it during cooldown receives a private message showing seconds remaining โ€” other players are not notified.
Example output in chat:
Code:
[ My Rust Server Event Scheduler ][/FONT][/COLOR][/FONT][/FONT][/COLOR][/FONT]
[FONT=Mona Sans VF][COLOR=rgb(240, 246, 252)][FONT=Monaspace Neon][FONT=Mona Sans VF][COLOR=rgb(240, 246, 252)][FONT=Monaspace Neon]Active Events:
  โ— Boss Monster Oni
Next Event: Convoy
Starts at: 4:23 PM CST  (~38 min)

The header uses your server's name automatically, pulled from ConVar.Server.hostname (your server.cfg hostname).
Disable this command in config with "Enable Player Events Command": false


๐Ÿ“ฃ Discord Notifications​

When a webhook URL is configured, the plugin sends Discord embed messages for every scheduler action. All embed titles use your server's name automatically (e.g. My Rust Server Event Scheduler).
EventColorDescription
Plugin Loaded๐Ÿ”ต BlueLists all loaded events by name
Queue Randomized๐ŸŸฃ PurpleShows the new randomized event order
Next Event Scheduled๐Ÿฉต TealEvent name, scheduled time, countdown, queue position, and events until reshuffle
Event Delayed๐ŸŸ  OrangeMax active events reached โ€” shows new retry time
Event Started๐ŸŸข GreenEvent name, run time, expected end time
Event Ended๐ŸŸ  OrangeEvent name and how it ended (self-managed or stopped)
Cycle Complete๐ŸŸฃ PurpleAll events ran โ€” new randomized cycle starting



โš™๏ธ How It Works​

Code:
PLUGIN LOADS
  โ””โ”€โ”€ Counts and logs all enabled events (console + Discord)
  โ””โ”€โ”€ Randomizes the event queue and logs the order
  โ””โ”€โ”€ Calculates first buffer time (random between min/max minutes)
  โ””โ”€โ”€ Waits buffer time, then fires first event

BUFFER FIRES
  โ”œโ”€โ”€ Active events < Max Active Events?
  โ”‚     YES โ†’ Fire next event โ†’ run start command
  โ”‚           โ†’ Schedule stop command after run time (if defined)
  โ”‚           โ†’ Schedule next buffer โ†’ repeat
  โ”‚     NO  โ†’ Wait: Event Run Time + new buffer calculation โ†’ retry

ALL EVENTS IN QUEUE HAVE RUN
  โ””โ”€โ”€ Log "Cycle Complete" to console + Discord
  โ””โ”€โ”€ Re-randomize the full event list
  โ””โ”€โ”€ Log new randomized order to console + Discord
  โ””โ”€โ”€ Resume scheduling from the top



โž• Adding Custom Events​

Edit oxide/config/rCEventScheduler.json and add a new block to the "Events" array:
{
"Event Name": "My Custom Event",
"Event Enabled": true,
"Required Plugin": "MyPluginName",
"Event Run Time (minutes)": 45,
"Event Start Command": "myeventstart",
"Event Stop Command": ""
}

Then reload: oxide.reload rCEventScheduler
The event will be picked up automatically, mixed into the randomized queue, and scheduled like any other event.


๐Ÿ‘ค Author
Ftuoil Xelrash

๐Ÿ“ž Support & Community​


๐ŸŽฎ Development & Testing Server​

Darktidia Solo Only - SeeRust Custom Even Scheduler and other custom plugins in action!
All players are welcome to join our development server where plugins are tested and refined in a live environment.

  • Server: Darktidia Solo Only | Monthly | 2x | 50% Upkeep | No BP Wipes
  • Find Server: View on BattleMetrics
Experience the plugin live, test configurations, and provide feedback in a real gameplay setting.
  • Like
Reactions: Chris
Author
WzerW
First release
Last update

Ratings

0.00 star(s) 0 ratings

More downloads from WzerW

Similar resources

Rust Always Day WzerW
Rust Always Day is a lightweight Rust server plugin that automatically skips nighttime periods
Rust Raid Protection WzerW
Configurable raid protection at the cost of a resource charged periodically
Back
Top