- Optional Dependencies
-
Economics - https://umod.org/plugins/economics
Server Rewards - https://umod.org/plugins/server-rewards
Custom Cargo Ship Tiers - https://chaoscode.io/resources/custom-cargo-ship-tiers.326
Contents
Take full control of the patrol helicopter and customize each of its aspects to your liking, creating an unlimited number of tiers with different difficulties. A great addition to both PVE and PVP servers.
Discord server for support:
Permissions
Understanding the Weighting System
1. Assigning Weights to Rarities
In this system, items are divided into different rarities: Common, Uncommon, Rare, and VeryRare. Each rarity is assigned a specific weight that determines how likely it is to be selected when loot is populated. Here's an example of how these weights are assigned:
"Common" has a weight of 5.
"Uncommon" has a weight of 3.
Both "Rare" and "VeryRare" have weights of 1.
When you add up these weights, you get a total of 10 (5 + 3 + 1 + 1 = 10). This means that out of these 10 items, if you were to randomly pick an item to spawn, you would have:
- 5 out of 10 (50%) chance of picking a "Common" item.
- 3 out of 10 (30%) chance of picking an "Uncommon" item.
- 1 out of 10 (10%) chance of picking a "Rare" item.
- 1 out of 10 (10%) chance of picking a "VeryRare" item.
2. Choosing Items Based on Rarity
Once a rarity is chosen based on its weight, a specific item from that rarity pool is randomly selected. This means that not only is the rarity randomized, but also the specific item within that rarity. Here's an example of how it works:
If the "Common" rarity is chosen, any item marked as "Common" in the loot table (e.g., "ammo.rocket.basic") can be found in the crate. Each item within the same rarity category has an equal chance of spawning.
Note:
- No item will spawn multiple times in a single crate.
Chat Commands
Console Commands
Global Configuration
The above configs can't be set individually for each tier and changing them will affect all of the created helicopters.
Damage dealt by other players will be nullified as well.
This option only works if
Set to
Create a custom loot table by using the command
A crate will spawn in front of you which you can drop the wished items in to create the loot table. Afterwards, the items and their amounts will be saved automatically into the config.
The maximum amount you dropped in the crate will be used as the maximum amount.
If you had already a pre-created loot table, then its items will also appear in the spawned crate, allowing you to modify them easily.
You can create the loot table manually as well by duplicating the items configs.
Short names and IDs of items can be found here
Keep in mind that you can't have both
Create custom spawn locations by using the
You can add as many custom spawn locations as you want to each tier, and for each time the helicopter spawns, it'll choose one of them randomly.
Allow your players to receive Money and Reward Points by taking down the helicopter.
Rewards are given based on the total damage dealt to the helicopter.
Statistics are broadcasted in a chat message upon destroying the helicopter, and they include
To add custom limits assigned to permission, head to the
This will result in
In case a player has 2 permissions with different limits, he'll be automatically using the best available limits from each of them.
Monuments spawn locations of monuments are auto-generated on plugin load and they get added automatically to the
Discord server for support:
Join the Dana Discord Server!
Check out the Dana community on Discord - hang out with 305 other members and enjoy free voice and text chat.
discord.gg
Permissions
CustomHelicopterTiers uses Oxides permission system
To assign a user permission use oxide.grant user "username|steam id" "permission" in console.
To assign a group permission use oxide.grant group "groupname" "permission" in console.
You can read more about how to use the permission system here : uMod - Permissions
To assign a user permission use oxide.grant user "username|steam id" "permission" in console.
To assign a group permission use oxide.grant group "groupname" "permission" in console.
You can read more about how to use the permission system here : uMod - Permissions
customhelicoptertiers.call.<Tier>
- Allows using the heli.call chat commands for a specific helicoptercustomhelicoptertiers.call.all
- Allows using the heli.call chat commands for all helicopterscustomhelicoptertiers.limits.<Name>
- Assigns a set of command limits.customhelicoptertiers.admin
- Allows using the admin commands
Understanding the Weighting System
1. Assigning Weights to Rarities
In this system, items are divided into different rarities: Common, Uncommon, Rare, and VeryRare. Each rarity is assigned a specific weight that determines how likely it is to be selected when loot is populated. Here's an example of how these weights are assigned:
JSON:
"Rarity Weights": {
"Common": 5,
"Uncommon": 3,
"Rare": 1,
"VeryRare": 1
}
"Uncommon" has a weight of 3.
Both "Rare" and "VeryRare" have weights of 1.
When you add up these weights, you get a total of 10 (5 + 3 + 1 + 1 = 10). This means that out of these 10 items, if you were to randomly pick an item to spawn, you would have:
- 5 out of 10 (50%) chance of picking a "Common" item.
- 3 out of 10 (30%) chance of picking an "Uncommon" item.
- 1 out of 10 (10%) chance of picking a "Rare" item.
- 1 out of 10 (10%) chance of picking a "VeryRare" item.
2. Choosing Items Based on Rarity
Once a rarity is chosen based on its weight, a specific item from that rarity pool is randomly selected. This means that not only is the rarity randomized, but also the specific item within that rarity. Here's an example of how it works:
JSON:
"Custom Loot Table": [
{
"Shortname": "ammo.rocket.basic",
"Rarity": "Common"
},
{
"Shortname": "explosives",
"Rarity": "VeryRare"
}
]
Note:
- No item will spawn multiple times in a single crate.
Chat Commands
heli.help
- Prints all commands and their usageheli.call <Tier>
- Spawns the helicopter from a random locationheli.call <Tier> here
- Calls the helicopter to your locationheli.kill <Tier>
- Kills the helicopterheli.kill all
- Kills all active helicopters on the mapheli.loot set <Tier>
- Sets the loot table of the helicopterheli.spawn set <Spawn Point Name> <Position>
- Sets a custom spawn point based on the coordinatesheli.spawn set <Spawn Point Name> here
- Sets a custom spawn point at your locationheli.spawn delete <Spawn Point Name>
- Deletes a custom spawn pointheli.spawn show
- Shows all created custom spawn pointsheli.delete <Tier>
- Deletes a helicopterheli.add <Tier>
- Adds a helicopterheli.list
- Lists all created helicopters
Console Commands
heli.call <Tier>
- Spawns the helicopter from a random locationheli.call <Tier> <Steam ID>
- Calls the helicopter to the player's locationheli.kill <Tier>
- Kills the helicopterheli.kill all
- Kills all active helicopters on the mapheli.report
- Prints a report of the helicopters
Global Configuration
JSON:
"Global Helicopter Config": {
"Turrets Bullet Accuracy": 2,
"Disable Rust Default Helicopter": true,
"Maximum Helicopter Life Time In Minutes": 15.0
},
The above configs can't be set individually for each tier and changing them will affect all of the created helicopters.
PVP Configuration
JSON:
"PVP": {
"Lock To The Invoker": true,
"Team Included On Invoker Lock": false,
"Invoker Has Priority In The Team": true,
"Do Not Allow Others To Trigger The Helicopter Until Reaching The Invoker": false,
"Lock To First Attacker": false
},
Lock To The Invoker
If enabled, the helicopter will not attack anyone but the player who called it, and it can't be interrupted by other players.Damage dealt by other players will be nullified as well.
Team Included On Invoker Lock
Team and clan members of the invoker will be added to the hostility list of the helicopter.Invoker Has Priority In The Team
If enabled, the player who called the helicopter will have top priority among his teammates, but if he isn't alive or visible, then it'll target one of his team members.This option only works if
Team Included On Invoker Lock
is enabled.Do Not Allow Others To Trigger The Helicopter Until Reaching The Invoker
Stops the called helicopter from moving to its destination to the invoker and tries to attack the player who interrupted it instead.Lock To First Attacker
This works as a reservation system. The helicopter will be locked to the first player who attacks itPVE
JSON:
"PVE": {
"Prevent Damage To Other Players Properties": false
},
Prevent Damage To Other Players Properties
This works perfectly for PVE servers as it prevents any attempt to raid or destroy structures of other players while attacking the helicopter.Rockets and Turrets
JSON:
"Damage": {
"Rockets - Blunt Damage": 175,
"Rockets - Explosion Damage": 100,
"Rockets - Explosion Radius": 6,
"Rockets - Max Launched Rockets": 12,
"Rockets - Time Between Each Rocket In Seconds": 1,
"Turrets - Bullet Damage": 20.0,
"Turrets - Max Bullet Range": 300.0,
"Turrets - Bullet Speed": 250,
"Turrets - Interval Between Bursts In Seconds": 3,
"Turrets - Duration of Burst In Seconds": 3,
"Turrets - Fire Rate In Seconds": 12
},
Rockets Blunt Damage
Modifies the blunt damage caused by a single rocket.Rockets Explosion Damage
Modifies the explosion damage caused by a single rocket.Rockets Explosion Radius
Modifies the radius of an explosion caused by a single rocket.Rockets Max Launched Rockets
Sets the maximum rockets launched per attack.Rockets Time Between Each Rocket In Seconds
Adjusts the launch time between each rocket.Turrets Bullet Damage
Adjusts the damage a single bullet from helicopter machine guns can deal (Default 20)Turrets Max Bullet Range
Adjusts the maximum range of the machine guns (Default 300)Turrets Bullet Accuracy
Adjusts the accuracy of the machine guns (Default 2)Turrets Bullet Speed
Adjusts the travel speed of the bullet (Default 250)Turrets Interval Between Bursts In Seconds
Adjusts the cooldown between each burst of machine guns (Default 3)Turrets Duration of Burst In Seconds
Adjusts the fire duration of the machine guns (Default 3)Turrets Fire Rate In Seconds
Adjusts the fire speed of the machine guns (Default 0.125)Health
JSON:
"Health": {
"Body": 10000.0,
"Main Rotor": 750.0,
"Tail Rotor": 375.0
},
Body
The base health of the helicopter (Default 10000)Main Rotor
The health of the top rotor (Default 750)Tail Rotor
The health of the tail rotor (Default 375)Speed
JSON:
"Speed": {
"Maximum Helicopter Speed": 25.0,
"Helicopter Startup Length In Seconds": 0.0,
"Initial Helicopter Startup Speed": 25.0
},
Maximum Helicopter Speed
The maximum flight speed of the helicopter (Default 25)Helicopter Startup Length In Seconds
The time needed for the helicopter to change its initial speed to the maximum speed (Default 0)Initial Helicopter Startup Speed
The initial speed of the helicopter before reaching that maximum speed (Default 25)Chat Broadcast Configuration
JSON:
"Chat Broadcast": {
"Manual Spawn": false,
"Custom Spawn": false,
"Random Spawn": false
},
Manual Spawn
Broadcasts a message in chat when the helicopter is spawned by using the heli.call command.Custom Spawn
Broadcasts a message in chat when the helicopter is spawned by the server from one of the predefined custom spawn points.Random Spawn
Broadcasts a message in chat when the helicopter is spawned by the server from any location randomly.Loot
JSON:
"Debris": {
"Spawn After Crash": true,
"Harvestable Hit Points": 500.0,
"Cooling Period Seconds": 480.0
},
"Loot": {
"Maximum Crates To Spawn": 10,
"Burn Crates": false,
"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
},
"Delay Before Crates Become Lootable Minutes": 10.0,
"Always Lootable By Admins": true,
"Can Be Opened Only By Summoner": false,
"Can Be Opened By Summoner Team": false,
"Use Custom Loot Table": true,
"Minimum Loot Spawn Slots": 2,
"Maximum Loot Spawn Slots": 3,
"Rarity Weights Preset": {
"Common": 70,
"Uncommon": 30,
"Rare": 3,
"VeryRare": 1
},
"Custom Loot Table": [
{
"Shortname": "ammo.rocket.basic",
"Skin Id": 0,
"Minimum Spawn Amount": 3,
"Maximum Spawn Amount": 3,
"Spawn As Blueprint": false,
"Rarity": "Common"
},
{
"Shortname": "ammo.rocket.fire",
"Skin Id": 0,
"Minimum Spawn Amount": 3,
"Maximum Spawn Amount": 5,
"Spawn As Blueprint": false,
"Rarity": "Common"
}
]
},
Gibs Health
The health of the harvestable fallen parts of the helicopter after it gets destroyed (Default 500)Gibs Harvest Cooldown In Seconds
The wait time required before the debris can be harvested (Default 480)Crates Amount
The number of dropped crates after the helicopter gets destroyed (Default 4)Crates Prevent Drop When Force Kill
If enabled, the helicopter will not drop any loot crates if it gets destroyed using the heli.kill command.Crates Unlock Cooldown In Minutes
The wait time required before the crates can be accessed and looted.Set to
-1
for no cooldown.Crates Vanilla Slots
Determines the minimum and maximum available slots in a single loot crate.Lock To Invoker
Only allow the player who called the helicopter to loot the crates.Include Team
Allow team and clan members of the invoker to loot the crates.Admin Bypass Crates Cooldown
Allows admins to bypass the firelock of loot crates.Creating Custom Loot Table
JSON:
"Custom Loot Table - Enabled": true,
"Custom Loot Table": [
{
"Item ID": -742865266,
"Item Short Name": "ammo.rocket.basic",
"Skin ID": 0,
"Minimum Amount": 2,
"Maximum Amount": 3,
"Blueprint": false
},
Create a custom loot table by using the command
heli.loot set <Tier>
.A crate will spawn in front of you which you can drop the wished items in to create the loot table. Afterwards, the items and their amounts will be saved automatically into the config.
The maximum amount you dropped in the crate will be used as the maximum amount.
If you had already a pre-created loot table, then its items will also appear in the spawned crate, allowing you to modify them easily.
You can create the loot table manually as well by duplicating the items configs.
Short names and IDs of items can be found here
Spawn
JSON:
"Spawn": {
"Spawn Chance (Default = 100)": 100.0,
"Minimum Spawn Time In Minutes": 60.0,
"Maximum Spawn Time In Minutes": 120.0,
"Randomized Spawn - Enabled (Vanilla)": true,
"Custom Spawn - Enabled": false,
"Custom Spawn - Locations": [
"Airfield"
]
},
Spawn Chance
The probability of the helicopter to spawnSpawn Time In Minutes
The maximum and minimum time for spawning the helicopter.Randomized Spawn
If enabled, the helicopter will spawn from any location randomly.Custom Spawn
If enabled, the helicopter will spawn from predefined custom spawn locations.Keep in mind that you can't have both
Randomized Spawn
and Custom Spawned
enabled.Create custom spawn locations by using the
heli.spawn set <Spawn Point Name> <Position>
command- The
Position
can be replaced either with a coordinateX, Y, Z
or withhere
- You can get the player coordinate by using the server command server.printpos
Custom Spawn Locations
config, add the name of the spawn location you created.You can add as many custom spawn locations as you want to each tier, and for each time the helicopter spawns, it'll choose one of them randomly.
Reward Points and Money
JSON:
"Kill Rewards": {
"Reward Points": 1000,
"Economics": 1000
},
Allow your players to receive Money and Reward Points by taking down the helicopter.
Rewards are given based on the total damage dealt to the helicopter.
Statistics
Statistics are broadcasted in a chat message upon destroying the helicopter, and they include
- Accuracy of hitting the rotors
- Total damage dealt
- Time spent to take down the helicopter
Summon Profiles
JSON:
"Call Command": {
"Default Cooldown In Minutes": 0.0,
"Default Daily Limit": 0,
"Custom Limits": {
"VIP": {
"Cooldown Minutes": 60.0,
"Daily Limit": 3
}
}
}
Call Command Cooldown In Minutes
The default time required in order to use theheli.call
command again.Call Command Daily Limit
The default number of times a player can use theheli.call
command per day.Custom Limits
Provides dynamic permissions which allow infinite customization for each tier.To add custom limits assigned to permission, head to the
Custom Limits
config and create one with the name VIP
. Now, replace <Name>
in customhelicoptertiers.limits.<Name>
permission with VIP
.This will result in
customhelicoptertiers.limits.VIP
, which when granted will have a cooldown of 60 minutes and 3 limited uses per dayIn case a player has 2 permissions with different limits, he'll be automatically using the best available limits from each of them.
Monuments Spawn Locations
JSON:
"Monuments Spawn Locations": {
"Large Fishing Village": {
"Position": {
"x": -454.068848,
"y": 0.0,
"z": -1019.226
}
},
"Fishing Village": {
"Position": {
"x": 612.134949,
"y": 0.0,
"z": 489.8864
}
}
}
Monuments spawn locations of monuments are auto-generated on plugin load and they get added automatically to the
Monuments Spawn Locations
list.