Advanced fireworks show system plugin for Rust game servers - Customizable scheduling, loot drops, and intelligent spawn placement.
The plugin auto-generates a configuration file at
{
"Minimum online players required to spawn a show (0 = disabled)": 0,
"EnableMapMarkers": true,
"EnableStaggeredFireMode": true,
"EnableLootDrops": false,
"LootDropChance": 50.0,
"LootDropItems": {
"gunpowder": { "min": 3, "max": 5 },
"cloth": { "min": 3, "max": 5 },
"charcoal": { "min": 3, "max": 5 },
"metal.fragments": { "min": 3, "max": 5 }
},
"SpawnAtRandomPlayersMapLocation": false,
"OnlySpawnOnLand": true,
"AllowWaterMonuments": true,
"OnlySpawnAtMonuments": false,
"SpreadRadius": 30.0,
"HeightOffset": 30.0,
"PlayerSelectionRadius": 500.0,
"AutomaticShowsEnabled": false,
"AutomaticShowsIntervalMinSeconds": 3600.0,
"AutomaticShowsIntervalMaxSeconds": 7200.0,
"AutomaticShowsFireworksMin": 1,
"AutomaticShowsFireworksMax": 6,
"AutomaticShowsDiceRollChancePercent": 50,
"TimeBasedShowsEnabled": true,
"TimeBasedShowsFireworksMin": 6,
"TimeBasedShowsFireworksMax": 60,
"TimeBasedStartHour": 19.50,
"TimeBasedShowEndHour": 7.50,
"TimedShowIntervalMinSeconds": 15.0,
"TimedShowIntervalMaxSeconds": 30.0,
"TimeBasedShowsDiceRollChancePercent": 75
}
The plugin randomly selects one color per firework from:
Admin-Only - All commands and features require server admin status (IsAdmin check).
When
When
The plugin determines spawn locations based on these settings (in order):
The plugin logs all shows to server console with helpful information:
Technical Details:
How It Works:
Conservative (rare drops):
"LootDropChance": 25.0,
"LootDropItems": {
"gunpowder": { "min": 1, "max": 2 },
"cloth": { "min": 1, "max": 2 }
}
Generous (common drops):
"LootDropChance": 100.0,
"LootDropItems": {
"gunpowder": { "min": 5, "max": 10 },
"cloth": { "min": 5, "max": 10 },
"charcoal": { "min": 5, "max": 10 },
"metal.fragments": { "min": 10, "max": 20 }
}
Staggered Mode (Enabled by Default):
Whitelisted Safe Monuments (29 total):
Water Monuments: The following monuments are on water and require
When
Time values use decimal HH.MM format:
Overnight Windows: The plugin correctly handles overnight time windows (e.g., 19:50-7:50 spans across midnight):
Darktidia Solo Only - See Rust Fireworks Show 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.
Rust Fireworks Show
Features
Core Functionality
Two Independent Schedulers - Time-based shows (specific hours) + Automatic shows (fixed intervals)
Random Colors - Each firework randomly selects from 5 vibrant colors (Champagne, Green, Blue, Violet, Red)
Smart Spawn Placement - Spawn near players, at monuments, or fully random map locations
Monument Support - 29 whitelisted safe, above-ground monuments (airfield, harbor, radtown, etc.)
Flexible Positioning - Manual player location, specific coordinates, or automatic placement
Loot Drops - Configurable probability and item quantities that fall from explosions
Visual Feedback - Green map markers show show locations in real-time
Dual Firing Modes - Cumulative staggered delays (natural) or independent random (chaotic)
Advanced Options
Water Detection - Prevent spawning in water bodies (optional)
Time Window Support - Overnight time windows (e.g., 7:50 PM to 7:50 AM)
Probability Control - Independent dice roll chances for each scheduler type
Player Proximity - Shows can spawn around active players or completely random
Grid References - Console logging with Rust map grid coordinates
Server Time - Uses server game time (not local machine time)
Installation
Installation Steps
- Download
rFireworkShow.csfrom the latest release - Place in your Rust server's
oxide/plugins/directory - Reload the plugin or restart your server
- Configure settings in the generated
oxide/config/rFireworksShow.json
Configuration
The plugin auto-generates a configuration file at oxide/config/rFireworksShow.json. Below is the complete default config:{
"Minimum online players required to spawn a show (0 = disabled)": 0,
"EnableMapMarkers": true,
"EnableStaggeredFireMode": true,
"EnableLootDrops": false,
"LootDropChance": 50.0,
"LootDropItems": {
"gunpowder": { "min": 3, "max": 5 },
"cloth": { "min": 3, "max": 5 },
"charcoal": { "min": 3, "max": 5 },
"metal.fragments": { "min": 3, "max": 5 }
},
"SpawnAtRandomPlayersMapLocation": false,
"OnlySpawnOnLand": true,
"AllowWaterMonuments": true,
"OnlySpawnAtMonuments": false,
"SpreadRadius": 30.0,
"HeightOffset": 30.0,
"PlayerSelectionRadius": 500.0,
"AutomaticShowsEnabled": false,
"AutomaticShowsIntervalMinSeconds": 3600.0,
"AutomaticShowsIntervalMaxSeconds": 7200.0,
"AutomaticShowsFireworksMin": 1,
"AutomaticShowsFireworksMax": 6,
"AutomaticShowsDiceRollChancePercent": 50,
"TimeBasedShowsEnabled": true,
"TimeBasedShowsFireworksMin": 6,
"TimeBasedShowsFireworksMax": 60,
"TimeBasedStartHour": 19.50,
"TimeBasedShowEndHour": 7.50,
"TimedShowIntervalMinSeconds": 15.0,
"TimedShowIntervalMaxSeconds": 30.0,
"TimeBasedShowsDiceRollChancePercent": 75
}
Display & Effect Settings
| Option | Default | Description |
|---|---|---|
Minimum online players required to spawn a show (0 = disabled) | 0 | Skip shows if online player count is below this threshold; 0 disables the check (applies to both schedulers) |
EnableMapMarkers | true | Display green map markers at firework show locations |
EnableStaggeredFireMode | true | Cumulative staggered delays (natural) vs independent random delays (chaotic) |
EnableLootDrops | false | Drop loot items when fireworks explode |
LootDropChance | 50.0 | Percentage chance (0-100) for loot per firework |
LootDropItems | See JSON | Dictionary of item names with min/max quantities |
SpawnAtRandomPlayersMapLocation | false | Spawn near random players (true) or fully random map (false) |
OnlySpawnOnLand | true | Prevent spawning in water bodies |
AllowWaterMonuments | true | Allow water monuments (oil rigs, fishing villages) to spawn - 50% chance in random mode |
OnlySpawnAtMonuments | false | Only spawn at whitelisted monuments |
SpreadRadius | 30.0 | Radius around center point for firework spread |
HeightOffset | 30.0 | Height above ground to spawn fireworks |
PlayerSelectionRadius | 500.0 | Radius around player to center show |
Automatic Show Settings
| Option | Default | Description |
|---|---|---|
AutomaticShowsEnabled | false | Enable traditional scheduled shows |
AutomaticShowsIntervalMinSeconds | 3600.0 | Minimum seconds between automatic shows (1 hour) |
AutomaticShowsIntervalMaxSeconds | 7200.0 | Maximum seconds between automatic shows (2 hours) |
AutomaticShowsFireworksMin | 1 | Minimum fireworks per show |
AutomaticShowsFireworksMax | 6 | Maximum fireworks per show |
AutomaticShowsDiceRollChancePercent | 50 | Spawn probability (0-100%) |
Time-Based Show Settings
| Option | Default | Description |
|---|---|---|
TimeBasedShowsEnabled | true | Enable time-based shows |
TimeBasedShowsFireworksMin | 6 | Minimum fireworks per show |
TimeBasedShowsFireworksMax | 60 | Maximum fireworks per show |
TimeBasedStartHour | 19.50 | Start time (19:50 = 7:50 PM) - format: HH.MM |
TimeBasedShowEndHour | 7.50 | End time (07:50 = 7:50 AM) - format: HH.MM |
TimedShowIntervalMinSeconds | 15.0 | Minimum seconds between attempts |
TimedShowIntervalMaxSeconds | 30.0 | Maximum seconds between attempts |
TimeBasedShowsDiceRollChancePercent | 75 | Spawn probability during time window (0-100%) |
Available Firework Colors
The plugin randomly selects one color per firework from:| Color | Prefab |
|---|---|
mortarchampagne.prefab | |
mortargreen.prefab | |
mortarblue.prefab | |
mortarviolet.prefab | |
mortarred.prefab |
Commands
Chat Commands
/fs [count] - Manual Show Trigger
Code:
Spawn fireworks at your player location
Requires: Admin
Optional: Firework count (default: config value)
Example: /fs 10 โ Spawns 10 fireworks
/fs x y z [count] - Show at Coordinates
Code:
Spawn fireworks at specific map coordinates
Requires: Admin
Example: /fs 1000 100 2000 15 โ Spawns 15 fireworks at those coords
/fsrand - Random Show (Test Mode)
Code:
Test automatic show behavior with random center point
Requires: Admin
Uses same logic as scheduled automatic shows
Picks random player proximity or random map location
/fsrand local - Show at Your Feet
Code:
Spawn fireworks at your current location (for testing)
Requires: Admin
Useful for testing effects and positioning
/fsrand x y z - Random Show at Coordinates
Code:
Spawn fireworks with show logic at specific coordinates
Requires: Admin
Example: /fsrand 1000 100 2000 โ Random show at those coords
/fstoggle - Toggle Automatic Shows
Code:
Enable/disable automatic scheduled shows on-the-fly
Requires: Admin
Toggles: AutomaticShowsEnabled setting
Messages: "automatic shows are now ENABLED" or "DISABLED"
Saves config and restarts scheduler
Console Commands
rf.reload - Reload Configuration
Code:
Reload plugin settings without restarting server
Usage: Can be run from server console or by admins in-game
Effect: Restarts show scheduler with new settings
Permissions
Admin-Only - All commands and features require server admin status (IsAdmin check).
How It Works
Time-Based Shows
When TimeBasedShowsEnabled is enabled:- Check Time Window - Continuously monitors if current time is between
TimeBasedStartHourandTimeBasedShowEndHour - Wait Outside Window - If outside time range, scheduler pauses and checks again
- Roll Dice Inside Window - When inside time window, rolls dice with
TimeBasedShowsDiceRollChancePercentchance - Spawn Show - If dice succeeds, spawns show at configured location type
- Repeat - Tries again every
TimedShowIntervalMinSecondstoTimedShowIntervalMaxSeconds(randomized)
- Between 7:50 PM and 7:50 AM: attempts every 15-30 seconds with 75% success rate
- Between 7:50 AM and 7:50 PM: scheduler sleeps (no attempts)
Automatic Shows
When AutomaticShowsEnabled is enabled:- Check Players - If
Minimum online players required to spawn a showis > 0, skips if online count is below threshold - Wait Interval - Pauses for
AutomaticShowsIntervalMinSecondstoAutomaticShowsIntervalMaxSeconds(randomized) - Roll Dice - Rolls dice with
AutomaticShowsDiceRollChancePercentchance - Spawn Show - If dice succeeds, spawns show at configured location type
- Repeat - Cycle continues indefinitely
Spawn Location Logic
The plugin determines spawn locations based on these settings (in order):- Monument Spawning - If
OnlySpawnAtMonumentsis true, randomly picks one of 29 whitelisted monuments - Player Proximity - If
SpawnAtRandomPlayersMapLocationis true, spawns near a random active player - Random Map - Falls back to random map location
- Water Check - If
OnlySpawnOnLandis true, validates location isn't in water (retries up to 40 times) - Final Fallback - Uses center of map if all else fails
Console Output
The plugin logs all shows to server console with helpful information:
Code:
Local Show[21.82]: Grid(R13) - Location(782.99, 51.10, 168.09) with 6 fireworks.[/FONT][/COLOR][/FONT][/FONT][/COLOR][/FONT][/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][FONT=Mona Sans VF][COLOR=rgb(240, 246, 252)][FONT=Monaspace Neon][FONT=Mona Sans VF][COLOR=rgb(240, 246, 252)][FONT=Monaspace Neon]Random Show: Grid(H5) - Monument(Airfield) with 15 fireworks.
AutomaticShow: Grid(A1) - Location(50.00, 80.00, 120.00) with 3 fireworks.
TimeBasedShow[19.50]: Monument(Harbor) - Grid(M8) with 12 fireworks.
Format Breakdown
| Component | Description |
|---|---|
| Show Type | Local Show, Random Show, AutomaticShow, or TimeBasedShow |
| [Time] | Server game time in brackets (TimeBasedShow only) |
| Grid(XY) | Rust map grid reference (A-Z columns, 0-25+ rows) |
| Monument(Name) | Monument name (only when OnlySpawnAtMonuments enabled) |
| Location(x,y,z) | Precise coordinates (only when monuments disabled) |
| Fireworks | Total fireworks in this show |
Technical Details:
- Grid calculations use Rust's
MapHelperAPI for accuracy - Times use server game time (
TOD_Sky.Instance.Cycle.Hour) not local machine time - Times match the in-game time shown to players for precise scheduling
Tips & Configuration Guide
Loot Drop System
How It Works:- Each firework has an independent
LootDropChanceroll - On success, randomly picks one item type from
LootDropItemsdictionary - Rolls quantity between min/max for that item
- Loot spawns 200 feet above firework location and falls naturally to ground
Conservative (rare drops):
"LootDropChance": 25.0,
"LootDropItems": {
"gunpowder": { "min": 1, "max": 2 },
"cloth": { "min": 1, "max": 2 }
}
Generous (common drops):
"LootDropChance": 100.0,
"LootDropItems": {
"gunpowder": { "min": 5, "max": 10 },
"cloth": { "min": 5, "max": 10 },
"charcoal": { "min": 5, "max": 10 },
"metal.fragments": { "min": 10, "max": 20 }
}
Firing Modes
Staggered Mode (Enabled by Default):- Fireworks fire with cumulative delays of 0.1-1.5 seconds between each
- Creates natural, chaotic rhythm (more realistic)
- Show duration varies based on cumulative delays
- Better for immersion and visual appeal
- Each firework fires with independent random delay (0-2 seconds)
- Creates unpredictable pattern
- All fireworks complete in ~2 seconds
- Better for rapid-fire effects
Monument Spawning
Whitelisted Safe Monuments (29 total):- Large: airfield_1, excavator_1, launch_site_1, military_tunnel_1, powerplant_1, trainyard_1, water_treatment_plant_1
- Medium: bandit_town, compound, junkyard_1, nuclear_missile_silo, radtown_small_3
- Small: fishing_village_a/b/c, gas_station_1, harbor_1/2, lighthouse, mining_quarry_a/b/c, oilrig_1/2, satellite_dish, sphere_tank, stables_a/b, supermarket_1, warehouse
- Special: arctic_research_base_a, desert_military_base_a/b/c/d, ferry_terminal_1
Water Monuments: The following monuments are on water and require
AllowWaterMonuments: true to spawn (default: true):fishing_village_a,fishing_village_b,fishing_village_c(coastal villages)oilrig_1,oilrig_2(oil platforms)- During random spawning (
/fsrand), water monuments have a 50% chance to be selected when enabled
Player Proximity Spawning
When SpawnAtRandomPlayersMapLocation is enabled:- Randomly picks one active player
- Generates random angle around player (0-360ยฐ)
- Random distance from player (0 to
PlayerSelectionRadiusunits) - Creates shows near players for better engagement
Time Format
Time values use decimal HH.MM format:| Time | Value |
|---|---|
| 7:50 AM | 7.50 |
| 12:00 PM | 12.00 |
| 7:50 PM | 19.50 |
| 11:59 PM | 23.59 |
Overnight Windows: The plugin correctly handles overnight time windows (e.g., 19:50-7:50 spans across midnight):
- 7:50 PM to midnight โ
- Midnight to 7:50 AM โ
Support & Community
Discord Support - Join our community for help and discussions
Development & Testing Server
Darktidia Solo Only - See Rust Fireworks Show 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