Custom Helicopter Tiers

Custom Helicopter Tiers 2.5.1

Fixed NullReferenceException ᴴᵒᵖᵉᶠᵘˡˡʸ
Fallen fireballs from a destroyed tiered helicopter will no longer cause damage to structures except for those belonging to the summoner and their team (if PVE mode is enabled). This also applies to newborn (spreaded) fireballs from the main ones
- Implemented a global limit for the maximum number of active patrol helicopters at any given time MaximumActivePatrolHelicopters. This limit applies to helicopters that are automatically spawned and those summoned by players. Set to -1 to have no limit.
- Fixed current active helicopters count not updating correctly in the heli.report command
- Properly clean up all spawned tiered helicopters when the plugin is unloaded

Lang file changes:

JSON:
"Global Helicopter Limit Reached": "Cannot spawn patrol helicopter of tier {0} because the maximum limit of active helicopters has been reached.",
Config file changes:
JSON:
"Maximum Active Patrol Helicopters": 3
You must back up your current config and reset it because the new changes are not backward compatible!

What's new:
- Fixed an issue where players were receiving reward points, money, and statistics being calculated even when the patrol helicopter wasn't taken down by players. Now it accurately distinguishes between cases where patrol helicopters are forcibly killed by an admin, retired, or actually taken down by players

- You can now customize the fireballs attached to crates, and various config options have been introduced for them

JSON:
          "Fire Ball": {
            "Minimum Lifetime Seconds": 20.0,
            "Maximum Lifetime Seconds": 40.0,
            "Spread Probability Percentage": 50,
            "Elapsed Lifetime Percentage To Begin Spreading": 50,
            "Burn Damage Reach": 0.5,
            "Base Burn Damage Amount": 2.0,
            "Damage Occurrence Frequency Seconds": 0.5,
            "Water Amount To Extinguish": 200
          },

- Fixed an issue where crates could be looted immediately ignoring the delay specified in the DelayBeforeCratesBecomeLootableMinutes config. This went unnoticed because the fireballs attached to crates were the ones managing the locking mechanism. Note: now with the new ability to control the fireballs attached to crates, if a crate has a fireball attached, the fireball is the one in charge of locking and unlocking the crate. If the crate doesn't have a fireball attached, the DelayBeforeCratesBecomeLootableMinutes config takes over, and if the fireball is extinguished, it unlocks the crate, regardless of the DelayBeforeCratesBecomeLootableMinutes config.

- Expanded the loot capacity within crates, now allowing items to fill all 12 inventory slots instead of the previous limit of 6.

JVs0L4V.png


- In response to your feedback, I've completely revamped the loot spawning logic. It's no longer reliant on probability but now follows a proper rarity weighting system. This change brings it closer to the vanilla system and results in a more realistic distribution of loot. Visit Rarity Weighting System to find detailed information on how it works.
1Cy17V5.jpg


- Removed the ItemId from items in the loot table as it was unnecessary
- Restructured parts of the config and renamed options that were worded incorrectly or causing confusion



If you happen to encounter any issues with this update, please open a thread in the discussion tab or reach out to me directly on Discord.
Ensure that all items with a rarity of 100 are always selected for spawning. After that, randomly select other items to fill up the remaining slots in the crate. This should reduce the chances of spawning empty crates

Before:
After:
Increased the distance around the helicopter within which dropped crates are found and processed. This is to account for crates dropped too far from the helicopter crash site.
Patched for September 7th Rust update
Added summoning player name in the ManualSpawnBroadcastMessage language key. You can either delete the language file and reload the plugin, or simply add {1} to the message manually.
  • Patched for the July 6th Rust update
Resolved CanLootEntity hook error caused by a conflict with the LootDefender plugin