About Bradley Drops
About Bradley Drops.
Bradley Drops allows players with permission to call a Bradley APC to their location with a custom Supply Signal, where it will patrol a set distance for a set time, allowing players to fight it to win the valuable Bradley crates.
A cargo plane will deliver and drop the APC via parachutes. The APC can be configured in different ways and there are many config options to suit all servers.
The plugin comes with 4 default settings for Bradley Drops, Easy, Medium, Hard and Elite, each with their own custom supply signal skin. But server owners can add as many options as they like in the config by copying and pasting an existing profile within the config. This would however require the server owner to create their own custom skin for the inventory item. (I will add more custom skins in the near future for this.)
BotReSpawn compatibility, with the option to specify a BRS spawn profile at the Bradley kill site.
IMPORTANT:
Each heli profile or wave profile in the config MUST have its own unique name and skin ID, otherwise you will have issues.
NOTE ABOUT SHOPS:
The profile name in the config should match the Custom Supply Signal name which the shop gives the player. The Bradley Name is now separate and can be set independently.
Plugin default Supply Signal Skin ID's to add items to various shops, loot plugins, kits etc are:
- Bradley Drop (Easy) : 2905355269
- Bradley Drop (Medium) : 2905355312
- Bradley Drop (Hard) : 2905355296
- Bradley Drop (Elite) : 2911864795
- Bradley Drop (Expert) : 3361673979
- Bradley Drop (Nightmare) : 3361674045
Default Permissions:
- bradleydrops.admin (to use give|hsclearcd command)
- bradleydrops.buy (to use /bdbuy command)
- bradleydrops.bypasscooldown
- bradleydrops.easy
- bradleydrops.medium
- bradleydrops.hard
- bradleydrops.elite
Commands (Prefix with / to use in game):
- bdgive <Profile ShortName> <Steam64ID> <Amount>
- bdbuy <Profile Shortname>
- bdbuy list
- bdreport (list all active Bradleys and their state)
- bddespawn (Despawn all Bradleys called by a player or their team, no refunds)
- bdclearcd (clear all cooldowns)
- bdclearcd <SteamID|Name> (clear cooldown for player)
(Buy, Report and Despawn command can be customised in the config)
Please note correct use in config file for supply signal name and Bradley APC display name. These values CAN be different if you wish:
Custom Loot:
Check out the example loot items in the default config below to see how to add custom loot items to crates.
How to Add Custom Loot Table Item:
Quote{ "ShortName": "example.shortname1", "Chance (0 - 100)": 50.0, "Min amount": 1, "Max Amount": 2, "SkinID": 1234567890, "Display Name": "Example Display Name 1" },
Config:
Quote{ "General Options": { "Use Friends": false, "Use Clans": false, "Use Teams": false, "Chat Prefix": "<color=orange>[Bradley Drops]</color>", "Use Chat Prefix": true, "Supply Signal Fuse Length (Rust Default = 3.5)": 3.5, "Supply Signal Smoke Duration (Rust Default = 210)": 210.0, "Cargo Plane Speed (Rust Default = 35)": 50.0, "Cargo Plane Height Above The Heighest Point On The Map": 50.0, "Parachute Drag (Lower = Faster. eg: 0.6)": 0.5, "Strict Proximity Check (Checks for objects close to signal, prevents APC landing on objects)": true, "Strict Proximity Check Radius": 15.0, "LayerMask for Proximity Check - DO NOT EDIT UNLESS YOU KNOW WHAT YOU'RE DOING (Default Layers: Default, Construction, Tree, World, Deployed": [ "Default", "World", "Tree", "Construction", "Deployed" ], "Objects To Ignore During Proximity Check - DO NOT EDIT UNLESS YOU KNOW WHAT YOU'RE DOING": [ "driftwood", "clutter", "collectable" ], "Disable vanilla Bradley APC at Launch Site": false, "Use this plugin to control stacking/combing Bradley Drop signal items": true }, "Announce Options": { "Announce When Player Calls a Bradley Drop": false, "Announce Bradley Kill to Global Chat": false, "Announce Damage Report to Global Chat": true, "Max Number Players Displayed in Damage Report": 5 }, "Discord Options": { "Discord WebHook URL": "https://support.discordapp.com/hc/en-us/articles/228383668-Intro-to-Webhooks", "Announce to Discord when Bradley is called": false, "Announce to Discord when Bradley is killed": false, "Announce to Discord when Bradley de-spawns": false }, "Reward Options": { "Rewards Plugin (ServerRewards | Economics)": "ServerRewards", "Currency Unit Displayed e.g: RP | $": "RP", "Enable Rewards": false, "Share Reward Between Players Above Damage Threshold": false, "Enable Scrap Reward": false, "Share Scrap Between Players Above Damage Threshold": false, "Rewards multipliers by permission": { "bradleydrops.examplevip1": 1.25, "bradleydrops.examplevip2": 1.5, "bradleydrops.examplevip3": 1.75 } }, "Purchasing Options": { "Player Buy Command (Chat or F1 Console)": "bdbuy", "Purchasing Currency (ServerRewards|Economics|Custom)": "ServerRewards", "Currency Unit Displayed e.g: RP | $ (Not Used for Custom Currency)": "RP", "Custom Currency": [ { "ShortName": "scrap", "SkinID": 0, "Display Name": "Scrap" } ] }, "Bradley APC Options": { "Player Give Up and Despawn Command (Despawns All of That Players Bradleys, NO Refund Given)": "bddespawn", "Team Can Deswpan Bradleys Using the Command (Requires Use Friends/Clans/Teams option)": false, "Global Bradley Limit (0 = No Limit)": 2, "Max Distance Bradley Can Be Damaged By Any Player (0 = Disabled)": 1000.0, "Use Explosion Effect When Bradley Despawns": true, "Despawn if attacking player is building blocked, while 'Block damage to other players bases' is true": false, "Despawn warning threshold (Number of warnings allowed before despawning)": 25, "Use NoEscape": false, "Player Cooldown (seconds) Between Bradley Drop Calls (0 = no cooldown)": 3600.0, "Cooldown applies to clan/team/friends (Requires Use Friends/Use Clan/Use Teams)": true, "VIP/Custom Cooldowns": { "bradleydrops.examplevip1": 3000.0, "bradleydrops.examplevip2": 2400.0, "bradleydrops.examplevip3": 1800.0 }, "Profiles": { "Bradley Drop (Easy)": { "Bradley display name": "Bradley Drop (Easy)", "Skin ID of the custom Supply Signal": 2905355269, "Profile shortname (for use in permission and give command)": "easy", "Enable purchasing via the buy command": true, "Cost to purchase (using buy command)": 500, "Starting health": 1000.0, "Prevent damage while parachuting": true, "Range of main gun": 60.0, "Gun Damage scale (1.0 = default, 2.0 = 2x, etc)": 1.0, "Gun accuracy % (1 to 100)": 40.0, "Main cannon damage scale (1.0 = default, 2.0 = 2x, etc)": 1.0, "Search range": 60.0, "Patrol radius": 20.0, "Number of patrol points": 4, "Throttle response (1.0 = default)": 1.0, "Number of crates to spawn": 3, "Number of locked hackable crates to spawn": 0, "Hack time for locked crate (seconds)": 900.0, "Locked crate despawn time (seconds)": 7200.0, "Kill if APC goes in SafeZone": true, "Despawn timer": 1800.0, "Attack owner": true, "Target sleeping players": false, "Only owner can damage (and team if enabled) ": false, "Allow Bradley to target other players": true, "Block damage to calling players bases": false, "Block damage to other players bases": false, "Block damage to other players": false, "Disable Bradley gibs": false, "Gibs too hot to harvest time (Seconds)": 600.0, "Health of gibs (more health = more resources)": 500.0, "Lock mining gibs to owner": false, "Unlock mining gibs to others after time in seconds (0 = Never)": 300.0, "Disable fire on crates": false, "Crate fire duration (seconds)": 300.0, "Lock looting crates to owner": false, "Unlock looting crates to others after time in seconds (0 = Never)": 300.0, "Reward points issued when destroyed (if enabled)": 1000.0, "Scrap amount issued when destroyed (if enabled)": 1000, "Damage Threshold (Min damage player needs to contribute to get rewards)": 100.0, "BotReSpawn profile to spawn at Bradley kill site (leave blank for not using)": "", "Loot Options": { "Use custom loot table": false, "Minimum number loot items in crate (0 - 12)": 2, "Maximum number loot items in crate (0 - 12)": 6, "Allow duplication of loot items": false, "Custom loot table": [ { "ShortName": "example.shortname1", "Chance (0 - 100)": 50.0, "Min amount": 1, "Max Amount": 2, "SkinID": 1234567890, "Display Name": "Example Display Name 1" }, { "ShortName": "example.shortname2", "Chance (0 - 100)": 50.0, "Min amount": 1, "Max Amount": 2, "SkinID": 1234567890, "Display Name": "Example Display Name 2" } ] }, "Extra Loot Options": { "Use extra loot table (NOTE: Total of crate loot + extra items cannot exceed 12)": false, "Minimum number extra items to add to crate": 1, "Maximum number extra items to add to crate": 3, "Allow duplication of extra items": false, "Extra loot table": [ { "ShortName": "example.shortname1", "Chance (0 - 100)": 50.0, "Min amount": 1, "Max Amount": 2, "SkinID": 1234567890, "Display Name": "Example Display Name 1" }, { "ShortName": "example.shortname2", "Chance (0 - 100)": 50.0, "Min amount": 1, "Max Amount": 2, "SkinID": 1234567890, "Display Name": "Example Display Name 2" } ] }, "Locked Crate Loot Options": { "Use locked crate loot table (NOTE: Total items cannot exceed 36)": false, "Minimum number items to add to locked crate": 1, "Maximum number items to add to locked crate": 3, "Allow duplication of locked crate items": false, "Locked crate loot table": [ { "ShortName": "example.shortname1", "Chance (0 - 100)": 50.0, "Min amount": 1, "Max Amount": 2, "SkinID": 1234567890, "Display Name": "Example Display Name 1" }, { "ShortName": "example.shortname2", "Chance (0 - 100)": 50.0, "Min amount": 1, "Max Amount": 2, "SkinID": 1234567890, "Display Name": "Example Display Name 2" } ] } }, "Bradley Drop (Medium)": { "Bradley display name": "Bradley Drop (Medium)", "Skin ID of the custom Supply Signal": 2905355312, "Profile shortname (for use in permission and give command)": "medium", "Enable purchasing via the buy command": true, "Cost to purchase (using buy command)": 1000, "Starting health": 2000.0, "Prevent damage while parachuting": true, "Range of main gun": 80.0, "Gun Damage scale (1.0 = default, 2.0 = 2x, etc)": 1.0, "Gun accuracy % (1 to 100)": 60.0, "Main cannon damage scale (1.0 = default, 2.0 = 2x, etc)": 1.0, "Search range": 80.0, "Patrol radius": 20.0, "Number of patrol points": 3, "Throttle response (1.0 = default)": 1.0, "Number of crates to spawn": 6, "Number of locked hackable crates to spawn": 0, "Hack time for locked crate (seconds)": 900.0, "Locked crate despawn time (seconds)": 7200.0, "Kill if APC goes in SafeZone": true, "Despawn timer": 1800.0, "Attack owner": true, "Target sleeping players": false, "Only owner can damage (and team if enabled) ": false, "Allow Bradley to target other players": true, "Block damage to calling players bases": false, "Block damage to other players bases": false, "Block damage to other players": false, "Disable Bradley gibs": false, "Gibs too hot to harvest time (Seconds)": 600.0, "Health of gibs (more health = more resources)": 500.0, "Lock mining gibs to owner": false, "Unlock mining gibs to others after time in seconds (0 = Never)": 300.0, "Disable fire on crates": false, "Crate fire duration (seconds)": 300.0, "Lock looting crates to owner": false, "Unlock looting crates to others after time in seconds (0 = Never)": 300.0, "Reward points issued when destroyed (if enabled)": 2000.0, "Scrap amount issued when destroyed (if enabled)": 2000, "Damage Threshold (Min damage player needs to contribute to get rewards)": 150.0, "BotReSpawn profile to spawn at Bradley kill site (leave blank for not using)": "", "Loot Options": { "Use custom loot table": false, "Minimum number loot items in crate (0 - 12)": 4, "Maximum number loot items in crate (0 - 12)": 8, "Allow duplication of loot items": false, "Custom loot table": [ { "ShortName": "example.shortname1", "Chance (0 - 100)": 50.0, "Min amount": 1, "Max Amount": 2, "SkinID": 1234567890, "Display Name": "Example Display Name 1" }, { "ShortName": "example.shortname2", "Chance (0 - 100)": 50.0, "Min amount": 1, "Max Amount": 2, "SkinID": 1234567890, "Display Name": "Example Display Name 2" } ] }, "Extra Loot Options": { "Use extra loot table (NOTE: Total of crate loot + extra items cannot exceed 12)": false, "Minimum number extra items to add to crate": 1, "Maximum number extra items to add to crate": 3, "Allow duplication of extra items": false, "Extra loot table": [ { "ShortName": "example.shortname1", "Chance (0 - 100)": 50.0, "Min amount": 1, "Max Amount": 2, "SkinID": 1234567890, "Display Name": "Example Display Name 1" }, { "ShortName": "example.shortname2", "Chance (0 - 100)": 50.0, "Min amount": 1, "Max Amount": 2, "SkinID": 1234567890, "Display Name": "Example Display Name 2" } ] }, "Locked Crate Loot Options": { "Use locked crate loot table (NOTE: Total items cannot exceed 36)": false, "Minimum number items to add to locked crate": 1, "Maximum number items to add to locked crate": 3, "Allow duplication of locked crate items": false, "Locked crate loot table": [ { "ShortName": "example.shortname1", "Chance (0 - 100)": 50.0, "Min amount": 1, "Max Amount": 2, "SkinID": 1234567890, "Display Name": "Example Display Name 1" }, { "ShortName": "example.shortname2", "Chance (0 - 100)": 50.0, "Min amount": 1, "Max Amount": 2, "SkinID": 1234567890, "Display Name": "Example Display Name 2" } ] } }, "Bradley Drop (Hard)": { "Bradley display name": "Bradley Drop (Hard)", "Skin ID of the custom Supply Signal": 2905355296, "Profile shortname (for use in permission and give command)": "hard", "Enable purchasing via the buy command": true, "Cost to purchase (using buy command)": 2000, "Starting health": 4000.0, "Prevent damage while parachuting": true, "Range of main gun": 100.0, "Gun Damage scale (1.0 = default, 2.0 = 2x, etc)": 1.0, "Gun accuracy % (1 to 100)": 80.0, "Main cannon damage scale (1.0 = default, 2.0 = 2x, etc)": 1.0, "Search range": 100.0, "Patrol radius": 25.0, "Number of patrol points": 4, "Throttle response (1.0 = default)": 1.0, "Number of crates to spawn": 9, "Number of locked hackable crates to spawn": 0, "Hack time for locked crate (seconds)": 900.0, "Locked crate despawn time (seconds)": 7200.0, "Kill if APC goes in SafeZone": true, "Despawn timer": 1800.0, "Attack owner": true, "Target sleeping players": false, "Only owner can damage (and team if enabled) ": false, "Allow Bradley to target other players": true, "Block damage to calling players bases": false, "Block damage to other players bases": false, "Block damage to other players": false, "Disable Bradley gibs": false, "Gibs too hot to harvest time (Seconds)": 600.0, "Health of gibs (more health = more resources)": 500.0, "Lock mining gibs to owner": false, "Unlock mining gibs to others after time in seconds (0 = Never)": 300.0, "Disable fire on crates": false, "Crate fire duration (seconds)": 300.0, "Lock looting crates to owner": false, "Unlock looting crates to others after time in seconds (0 = Never)": 300.0, "Reward points issued when destroyed (if enabled)": 4000.0, "Scrap amount issued when destroyed (if enabled)": 4000, "Damage Threshold (Min damage player needs to contribute to get rewards)": 200.0, "BotReSpawn profile to spawn at Bradley kill site (leave blank for not using)": "", "Loot Options": { "Use custom loot table": false, "Minimum number loot items in crate (0 - 12)": 6, "Maximum number loot items in crate (0 - 12)": 10, "Allow duplication of loot items": false, "Custom loot table": [ { "ShortName": "example.shortname1", "Chance (0 - 100)": 50.0, "Min amount": 1, "Max Amount": 2, "SkinID": 1234567890, "Display Name": "Example Display Name 1" }, { "ShortName": "example.shortname2", "Chance (0 - 100)": 50.0, "Min amount": 1, "Max Amount": 2, "SkinID": 1234567890, "Display Name": "Example Display Name 2" } ] }, "Extra Loot Options": { "Use extra loot table (NOTE: Total of crate loot + extra items cannot exceed 12)": false, "Minimum number extra items to add to crate": 1, "Maximum number extra items to add to crate": 3, "Allow duplication of extra items": false, "Extra loot table": [ { "ShortName": "example.shortname1", "Chance (0 - 100)": 50.0, "Min amount": 1, "Max Amount": 2, "SkinID": 1234567890, "Display Name": "Example Display Name 1" }, { "ShortName": "example.shortname2", "Chance (0 - 100)": 50.0, "Min amount": 1, "Max Amount": 2, "SkinID": 1234567890, "Display Name": "Example Display Name 2" } ] }, "Locked Crate Loot Options": { "Use locked crate loot table (NOTE: Total items cannot exceed 36)": false, "Minimum number items to add to locked crate": 1, "Maximum number items to add to locked crate": 3, "Allow duplication of locked crate items": false, "Locked crate loot table": [ { "ShortName": "example.shortname1", "Chance (0 - 100)": 50.0, "Min amount": 1, "Max Amount": 2, "SkinID": 1234567890, "Display Name": "Example Display Name 1" }, { "ShortName": "example.shortname2", "Chance (0 - 100)": 50.0, "Min amount": 1, "Max Amount": 2, "SkinID": 1234567890, "Display Name": "Example Display Name 2" } ] } }, "Bradley Drop (Elite)": { "Bradley display name": "Bradley Drop (Elite)", "Skin ID of the custom Supply Signal": 2911864795, "Profile shortname (for use in permission and give command)": "elite", "Enable purchasing via the buy command": true, "Cost to purchase (using buy command)": 4000, "Starting health": 8000.0, "Prevent damage while parachuting": true, "Range of main gun": 150.0, "Gun Damage scale (1.0 = default, 2.0 = 2x, etc)": 2.0, "Gun accuracy % (1 to 100)": 100.0, "Main cannon damage scale (1.0 = default, 2.0 = 2x, etc)": 1.0, "Search range": 150.0, "Patrol radius": 25.0, "Number of patrol points": 3, "Throttle response (1.0 = default)": 1.0, "Number of crates to spawn": 18, "Number of locked hackable crates to spawn": 0, "Hack time for locked crate (seconds)": 900.0, "Locked crate despawn time (seconds)": 7200.0, "Kill if APC goes in SafeZone": true, "Despawn timer": 1800.0, "Attack owner": true, "Target sleeping players": false, "Only owner can damage (and team if enabled) ": false, "Allow Bradley to target other players": true, "Block damage to calling players bases": false, "Block damage to other players bases": false, "Block damage to other players": false, "Disable Bradley gibs": false, "Gibs too hot to harvest time (Seconds)": 600.0, "Health of gibs (more health = more resources)": 500.0, "Lock mining gibs to owner": false, "Unlock mining gibs to others after time in seconds (0 = Never)": 300.0, "Disable fire on crates": false, "Crate fire duration (seconds)": 300.0, "Lock looting crates to owner": false, "Unlock looting crates to others after time in seconds (0 = Never)": 300.0, "Reward points issued when destroyed (if enabled)": 8000.0, "Scrap amount issued when destroyed (if enabled)": 8000, "Damage Threshold (Min damage player needs to contribute to get rewards)": 250.0, "BotReSpawn profile to spawn at Bradley kill site (leave blank for not using)": "", "Loot Options": { "Use custom loot table": false, "Minimum number loot items in crate (0 - 12)": 8, "Maximum number loot items in crate (0 - 12)": 12, "Allow duplication of loot items": false, "Custom loot table": [ { "ShortName": "example.shortname1", "Chance (0 - 100)": 50.0, "Min amount": 1, "Max Amount": 2, "SkinID": 1234567890, "Display Name": "Example Display Name 1" }, { "ShortName": "example.shortname2", "Chance (0 - 100)": 50.0, "Min amount": 1, "Max Amount": 2, "SkinID": 1234567890, "Display Name": "Example Display Name 2" } ] }, "Extra Loot Options": { "Use extra loot table (NOTE: Total of crate loot + extra items cannot exceed 12)": false, "Minimum number extra items to add to crate": 1, "Maximum number extra items to add to crate": 3, "Allow duplication of extra items": false, "Extra loot table": [ { "ShortName": "example.shortname1", "Chance (0 - 100)": 50.0, "Min amount": 1, "Max Amount": 2, "SkinID": 1234567890, "Display Name": "Example Display Name 1" }, { "ShortName": "example.shortname2", "Chance (0 - 100)": 50.0, "Min amount": 1, "Max Amount": 2, "SkinID": 1234567890, "Display Name": "Example Display Name 2" } ] }, "Locked Crate Loot Options": { "Use locked crate loot table (NOTE: Total items cannot exceed 36)": false, "Minimum number items to add to locked crate": 1, "Maximum number items to add to locked crate": 3, "Allow duplication of locked crate items": false, "Locked crate loot table": [ { "ShortName": "example.shortname1", "Chance (0 - 100)": 50.0, "Min amount": 1, "Max Amount": 2, "SkinID": 1234567890, "Display Name": "Example Display Name 1" }, { "ShortName": "example.shortname2", "Chance (0 - 100)": 50.0, "Min amount": 1, "Max Amount": 2, "SkinID": 1234567890, "Display Name": "Example Display Name 2" } ] } } } }, "Version": { "Major": 1, "Minor": 0, "Patch": 31 } }
For Other Developers:
The following hook is available to use in your plugins to check custom Supply Signals, Cargo Planes and Supply Drops to avoid conflict with your plugins:
object IsBradleyDrop(ulong skinID)
This will return true if the item is a Bradley Drop item/entity, or null if not.
Call it directly without referencing the plugin:
if (Interface.CallHook("IsBradleyDrop", skinID) != null) return true; // IsBradleyDrop
Or reference my plugin and call like this:
[PluginReference] Plugin BradleyDrops; if (BradleyDrops.CallHook("IsBradleyDrop", skinID) != null) return true; // IsBradleyDrop