About IQDefenderSupply
IQDefenderSupply is a plugin for RUST servers that adds new types of airdrops. These airdrops come equipped with additional protection such as armor, drones*, NPCs*, and turrets, providing more complex and engaging interactions in the game!
An excellent solution for any type of server, whether it's an automated event or a scheduled manual launch!
The video showcases all types of protection with enabled NPCs* and drone defenses*. The video demonstrates the visual presentation of protected airdrops, their deployment, and player interactions with the protected airdrops!
You can also review everything in the "Screenshots" section. Feel free to use the video link on your social media and channels as a demonstration of the update and plugin for your players.
Plugin Installation:
When you download the resource, you will receive an archive with "plugins" and "data" folders.
- Move the file from "data" to the exact path as in the archive (oxide/data/IQSystem/IQDefenderSupply).
- This folder contains pre-configured standard positions and will hold your future positions.
- Move IQDefenderSupply.cs from "plugins" to the exact path as in the archive (oxide/plugins).
Note for users who use "Web File Editors" on hosting services: Before moving the files, unpack the archive to a convenient location and then transfer the files from there.
List of Features:
Protection and Defense of Airdrops:
Easy: Features protective walls with an embedded turret. No access card required.
Medium: Features a fully enclosed dome with grates, with a door secured by an access card.
The card can be set to a specific level or randomly assigned. No turret is included in the protection.
Hard: Features a fully enclosed dome similar to the medium level, but includes two defensive turrets.
NPC and/or Drone Protection:
Each protection level can be further enhanced with NPCs* and drones* with various settings.
You can assign different outfits and weapons to NPCs* for each preset, and use custom presets for drones*.
Customizable number of NPCs* and drones* around the protected airdrop.
Turret Protection:
Turrets are used directly from the game and are minimally modified, except for certain details such as: detection radius, accuracy, health level, weapon, and ammunition.
Turrets have increased damage, so players can destroy them with any weapon. The time to destroy and the amount of ammunition depend on the turrets' health level!
Preset Configuration:
The plugin is not limited to three types of protection; you can create an unlimited number of presets using the three protection types.
You can use any type of protection in different presets with varying defense settings, loot drops, and more.
Loot Configuration:
For each preset, you can configure the loot in the protected airdrop. You can adjust the items, drop chances, and their quantities!
Similarly, you can configure the items dropped by killed NPCs*.
The plugin features its own randomization system that ensures unique and non-repeating results each time!
Automatic Start:
You can use the plugin with automatic start based on a timer!
It supports chat and GameTip notifications for players.
Discord Integration:
The plugin includes integration with Discord!
You can send beautifully formatted messages with @everyone support to your Discord chat, such as: the airdrop plane has taken off, the plane has dropped the cargo, the protected airdrop was opened by a player, or the protected airdrop was removed.
Messages are nicely formatted and configurable in the settings.
G-Map Display:
The plugin supports displaying each preset on G-Map, with customizable marker color and border settings.
Notes:
Drones* - Requires the IQDronePatrol plugin.
For drone operations and protecting the cargo with drones - an additional plugin is required.
NPCs* - Requires the NPCSpawn plugin.
For protecting the cargo with NPCs - an additional plugin is required.
List of Console and Chat Commands:
Notes:
* Administrative rights (ownerID) are required for usage.
* Commands for setting and editing positions require the administrator to be on the server and execute the command in chat or the F1 console.
* Items marked with "*" are mandatory arguments.
* You can specify presets as a list (lite_supply, middle_supply, etc.), or use just one.
iqds send.supply NamePos PresetName - send a plane to drop cargo at the specified position. iqds setup.pos NamePos* PresetName (Example: iqds setup.pos myPosName lite_supply,middle_supply) - set a position linked to a monument. iqds custom.pos NamePos* PresetName (Example: iqds custom.pos myPosName lite_supply,middle_supply) - set a custom position. iqds remove.pos NamePos* - remove a position. iqds edit.pos NamePos* PresetName (Example: iqds edit.pos myPosName lite_supply,middle_supply) - edit the coordinates of an existing monument-linked position. iqds edit.custom NamePos* (Example: iqds edit.custom myPosName lite_supply,middle_supply) - edit the coordinates of an existing custom position. iqds info.custom.pos - display all custom positions. iqds info.monument.pos - display all monument-linked positions. iqds info.all.pos - display all positions.
API :
Boolean IsValidTurret(UInt64 ownerID) // Returns true if it is a plugin turret Boolean IsValidSupplyDrop(UInt64 ownerID) // Returns true if it is a plugin drop List<String> GetAllPresetsKeys() // Returns a list of all preset keys from the configuration List<String> GetAllPositionsKeys() // Returns all position keys for drop locations List<String> GetParentPositionsKeys() // Returns all position keys for drop locations linked to monuments List<String> GetCustomPositionsKeys() // Returns all position keys for drop locations not linked to monuments void SendCargo() // Sends protected cargo to a random position with a random key void SendCargo(String keyPreset) // Sends protected cargo to a random position with the specified preset key void SendCargo(String keyPreset, String keyPosition) // Sends protected cargo to the specified position key with the specified preset key
Configuration example :
{ "Auto event settings for protected cargo plane launch": { "Use automatic launch of planes with protected cargo (true - yes/false - no)": true, "Preset list settings for automatic launch [Preset] = Chance (From 0 to 100)": { "lite_supply": 80, "middle_supply": 45, "hard_supply": 10 }, "How often the protected drop will be launched automatically (specify the time in seconds)": 3600 }, "Other settings": { "Time after which protected cargo will be removed after being fully looted": 180, "When will the protected loot be removed if players do not loot it": 1800, "Notification settings from the plugin": { "IQChat: Notification format settings": { "IQChat : Custom prefix in chat": "<color=#CD412B>[IQDefenderSupply]</color> ", "IQChat : Custom chat avatar (If required)": "0" }, "Use GameTip notification for cargo plane takeoff": true, "Use chat notification for cargo plane takeoff": true, "Use chat notification for dropped protected cargo": true, "Use chat notification when player starts looting protected cargo": true }, "Automatically clear custom drop positions on map change/server wipe (true - yes/false - no)": true, "Discord notification settings. [MessageType (CargoSpawned - Plane departure, SupplyDropped - Supply drop, SupplyDestroyed - Supply removed, SupplyOpened - Supply opened)] = Setting": { "CargoSpawned": { "WebHook (leave empty to not use this type of notification)": "", "Title": "Cargo plane launched", "Description": "A plane has launched to your island, carrying a special cargo of scientists with special protection!", "Color (Embed discord format)": 9824766, "Footer text": "", "Author name": "Scientist records intercepted", "Author avatar (use direct .png link)": "https://i.ibb.co/RjyHCbs/air-plane-New.png", "Thumbnail avatar (use direct .png link)": "https://i.ibb.co/RjyHCbs/air-plane-New.png", "Message above embed (e.g., @everyone)": "@everyone" }, "SupplyDropped": { "WebHook (leave empty to not use this type of notification)": "", "Title": "Supply dropped", "Description": "Protected cargo has been dropped on your island. You can seize it! If you can...", "Color (Embed discord format)": 9830049, "Footer text": "", "Author name": "Scientist records intercepted", "Author avatar (use direct .png link)": "https://i.ibb.co/GM1hf85/supply.png", "Thumbnail avatar (use direct .png link)": "https://i.ibb.co/GM1hf85/supply.png", "Message above embed (e.g., @everyone)": "" }, "SupplyOpened": { "WebHook (leave empty to not use this type of notification)": "", "Title": "Protected cargo opened", "Description": "Protected cargo has started being looted!", "Color (Embed discord format)": 16709013, "Footer text": "", "Author name": "Scientist records intercepted", "Author avatar (use direct .png link)": "https://i.ibb.co/GM1hf85/supply.png", "Thumbnail avatar (use direct .png link)": "https://i.ibb.co/GM1hf85/supply.png", "Message above embed (e.g., @everyone)": "" }, "SupplyDestroyed": { "WebHook (leave empty to not use this type of notification)": "", "Title": "Protected cargo removed", "Description": "Protected cargo has been completely looted!", "Color (Embed discord format)": 16684437, "Footer text": "", "Author name": "Scientist records intercepted", "Author avatar (use direct .png link)": "https://i.ibb.co/GM1hf85/supply.png", "Thumbnail avatar (use direct .png link)": "https://i.ibb.co/GM1hf85/supply.png", "Message above embed (e.g., @everyone)": "" } } }, "Protected cargo presets settings": { "lite_supply": { "Drop protection settings": { "Drop protection level: 0 - Easy, 1 - Medium, 2 - Hard": 0, "Drop protection settings with access card (for defender levels `Medium` and `Hard`)": { "Use access cards for drop (true - yes/false - no)": false, "Use random access card for drop": false, "Required access card: 1 - Green, 2 - Blue, 3 - Red": 0 }, "G-Map marker display settings": { "Display marker with protected cargo on the map (true - yes/false - no)": false, "Main marker color": "#738D45", "Outline marker color": "#C26D33", "Marker radius on the map": 0.25 }, "Additional settings": { "IQDronePatrol: Drone protection settings for the drop": { "Use defender drones in this preset": false, "Number of drones spawned to protect the drop": { "Minimum quantity": 3, "Maximum quantity": 6 }, "Number of drones that can attack one player simultaneously": 2, "Drone preset settings and selection chance [PresetFromConfig] = Chance": { "LITE_DRONE": 100 } }, "NPCSpawn: NPC protection settings for the drop": { "Use NPCSpawn in this preset": false, "Number of NPCs to spawn near the drop": { "Minimum quantity": 6, "Maximum quantity": 6 }, "Bot settings": { "Bot health": 150.0, "Damage multiplier": 1.25, "Aim cone multiplier": 1.0, "Running speed": 7.0, "NPC clothing": [ { "Shortname": "roadsign.jacket", "SkinID": 2991830202, "Mods weapon": [] }, { "Shortname": "coffeecan.helmet", "SkinID": 2991835101, "Mods weapon": [] }, { "Shortname": "roadsign.kilt", "SkinID": 2991832819, "Mods weapon": [] }, { "Shortname": "hoodie", "SkinID": 2936196960, "Mods weapon": [] }, { "Shortname": "pants", "SkinID": 2936196259, "Mods weapon": [] }, { "Shortname": "shoes.boots", "SkinID": 2980941295, "Mods weapon": [] } ], "NPC weapon variation": [ { "Shortname": "smg.mp5", "SkinID": 2873774818, "Mods weapon": [ "weapon.mod.flashlight" ] } ], "Drop loot settings from NPC": { "Use custom loot list (true - yes/false - no)": true, "Maximum loot drops": 3, "List of loot drops": [ { "Drop chance": 1, "Shortname": "smg.mp5", "SkinID": 2873774818, "Drop quantity setting": { "Minimum quantity": 1, "Maximum quantity": 1 } }, { "Drop chance": 52, "Shortname": "ammo.pistol", "SkinID": 0, "Drop quantity setting": { "Minimum quantity": 15, "Maximum quantity": 60 } }, { "Drop chance": 12, "Shortname": "metalpipe", "SkinID": 0, "Drop quantity setting": { "Minimum quantity": 3, "Maximum quantity": 5 } }, { "Drop chance": 10, "Shortname": "sheetmetal", "SkinID": 0, "Drop quantity setting": { "Minimum quantity": 1, "Maximum quantity": 3 } }, { "Drop chance": 10, "Shortname": "metalspring", "SkinID": 0, "Drop quantity setting": { "Minimum quantity": 1, "Maximum quantity": 5 } }, { "Drop chance": 10, "Shortname": "sparkplug3", "SkinID": 0, "Drop quantity setting": { "Minimum quantity": 1, "Maximum quantity": 1 } }, { "Drop chance": 20, "Shortname": "smgbody", "SkinID": 0, "Drop quantity setting": { "Minimum quantity": 1, "Maximum quantity": 1 } }, { "Drop chance": 35, "Shortname": "syringe.medical", "SkinID": 0, "Drop quantity setting": { "Minimum quantity": 1, "Maximum quantity": 3 } }, { "Drop chance": 15, "Shortname": "largemedkit", "SkinID": 0, "Drop quantity setting": { "Minimum quantity": 1, "Maximum quantity": 1 } }, { "Drop chance": 50, "Shortname": "bandage", "SkinID": 0, "Drop quantity setting": { "Minimum quantity": 1, "Maximum quantity": 3 } }, { "Drop chance": 8, "Shortname": "pickaxe", "SkinID": 0, "Drop quantity setting": { "Minimum quantity": 1, "Maximum quantity": 1 } }, { "Drop chance": 5, "Shortname": "knife.combat", "SkinID": 0, "Drop quantity setting": { "Minimum quantity": 1, "Maximum quantity": 1 } }, { "Drop chance": 20, "Shortname": "weapon.mod.simplesight", "SkinID": 0, "Drop quantity setting": { "Minimum quantity": 1, "Maximum quantity": 1 } }, { "Drop chance": 15, "Shortname": "weapon.mod.silencer", "SkinID": 0, "Drop quantity setting": { "Minimum quantity": 1, "Maximum quantity": 1 } }, { "Drop chance": 15, "Shortname": "roadsign.gloves", "SkinID": 0, "Drop quantity setting": { "Minimum quantity": 1, "Maximum quantity": 1 } }, { "Drop chance": 10, "Shortname": "roadsign.kilt", "SkinID": 2991832819, "Drop quantity setting": { "Minimum quantity": 1, "Maximum quantity": 1 } }, { "Drop chance": 20, "Shortname": "grenade.beancan", "SkinID": 0, "Drop quantity setting": { "Minimum quantity": 1, "Maximum quantity": 1 } }, { "Drop chance": 25, "Shortname": "grenade.flashbang", "SkinID": 0, "Drop quantity setting": { "Minimum quantity": 1, "Maximum quantity": 1 } }, { "Drop chance": 25, "Shortname": "grenade.f1", "SkinID": 0, "Drop quantity setting": { "Minimum quantity": 1, "Maximum quantity": 1 } }, { "Drop chance": 30, "Shortname": "grenade.molotov", "SkinID": 0, "Drop quantity setting": { "Minimum quantity": 1, "Maximum quantity": 1 } } ] } } } } }, "Turret settings for protected drop": { "Will loot drop from the turret upon destruction? (true - yes/false - no)": false, "Turret mode: true - passive / false - active": false, "Enemy detection radius (according to the standard - 30.0)": 40.0, "Turret accuracy (aimCone) (default 4)": 4.0, "Turret health level (default 1000)": 1000, "Turret weapon configuration": { "Turret weapon": { "shortname": "smg.thompson", "skinID": 0 }, "List of weapon mods in turret": [ { "shortname": "weapon.mod.silencer", "skinID": 0 } ], "List of ammo in turret": [ { "shortname": "ammo.pistol.fire", "amount": 150 }, { "shortname": "ammo.pistol.hv", "amount": 150 } ] } }, "Custom loot settings in drop": { "Use custom loot list (true - yes/false - no)": true, "Maximum loot drops": 8, "List of loot drops": [ { "Drop chance": 30, "Shortname": "keycard_green", "SkinID": 0, "Drop quantity setting": { "Minimum quantity": 1, "Maximum quantity": 1 } }, { "Drop chance": 86, "Shortname": "ammo.pistol", "SkinID": 0, "Drop quantity setting": { "Minimum quantity": 25, "Maximum quantity": 93 } }, { "Drop chance": 63, "Shortname": "ammo.shotgun", "SkinID": 0, "Drop quantity setting": { "Minimum quantity": 12, "Maximum quantity": 42 } }, { "Drop chance": 53, "Shortname": "ammo.rifle", "SkinID": 0, "Drop quantity setting": { "Minimum quantity": 25, "Maximum quantity": 128 } }, { "Drop chance": 33, "Shortname": "metal.refined", "SkinID": 0, "Drop quantity setting": { "Minimum quantity": 42, "Maximum quantity": 100 } }, { "Drop chance": 73, "Shortname": "metal.fragments", "SkinID": 0, "Drop quantity setting": { "Minimum quantity": 700, "Maximum quantity": 3000 } }, { "Drop chance": 33, "Shortname": "scrap", "SkinID": 0, "Drop quantity setting": { "Minimum quantity": 169, "Maximum quantity": 320 } }, { "Drop chance": 25, "Shortname": "hoodie", "SkinID": 0, "Drop quantity setting": { "Minimum quantity": 1, "Maximum quantity": 1 } }, { "Drop chance": 20, "Shortname": "roadsign.kilt", "SkinID": 0, "Drop quantity setting": { "Minimum quantity": 1, "Maximum quantity": 1 } }, { "Drop chance": 5, "Shortname": "metal.facemask", "SkinID": 0, "Drop quantity setting": { "Minimum quantity": 1, "Maximum quantity": 1 } }, { "Drop chance": 20, "Shortname": "pants", "SkinID": 0, "Drop quantity setting": { "Minimum quantity": 1, "Maximum quantity": 1 } }, { "Drop chance": 3, "Shortname": "metal.plate.torso", "SkinID": 0, "Drop quantity setting": { "Minimum quantity": 1, "Maximum quantity": 1 } }, { "Drop chance": 20, "Shortname": "coffeecan.helmet", "SkinID": 0, "Drop quantity setting": { "Minimum quantity": 1, "Maximum quantity": 1 } }, { "Drop chance": 21, "Shortname": "roadsign.jacket", "SkinID": 0, "Drop quantity setting": { "Minimum quantity": 1, "Maximum quantity": 1 } }, { "Drop chance": 20, "Shortname": "bucket.helmet", "SkinID": 0, "Drop quantity setting": { "Minimum quantity": 1, "Maximum quantity": 1 } }, { "Drop chance": 20, "Shortname": "jackhammer", "SkinID": 0, "Drop quantity setting": { "Minimum quantity": 1, "Maximum quantity": 1 } }, { "Drop chance": 10, "Shortname": "explosive.timed", "SkinID": 0, "Drop quantity setting": { "Minimum quantity": 1, "Maximum quantity": 1 } }, { "Drop chance": 8, "Shortname": "supply.signal", "SkinID": 0, "Drop quantity setting": { "Minimum quantity": 1, "Maximum quantity": 1 } }, { "Drop chance": 4, "Shortname": "military flamethrower", "SkinID": 0, "Drop quantity setting": { "Minimum quantity": 1, "Maximum quantity": 1 } }, { "Drop chance": 13, "Shortname": "smg.mp5", "SkinID": 0, "Drop quantity setting": { "Minimum quantity": 1, "Maximum quantity": 1 } }, { "Drop chance": 12, "Shortname": "pistol.m92", "SkinID": 0, "Drop quantity setting": { "Minimum quantity": 1, "Maximum quantity": 1 } }, { "Drop chance": 2, "Shortname": "rifle.ak", "SkinID": 0, "Drop quantity setting": { "Minimum quantity": 1, "Maximum quantity": 1 } }, { "Drop chance": 11, "Shortname": "rifle.m39", "SkinID": 0, "Drop quantity setting": { "Minimum quantity": 1, "Maximum quantity": 1 } }, { "Drop chance": 15, "Shortname": "pistol.prototype17", "SkinID": 0, "Drop quantity setting": { "Minimum quantity": 1, "Maximum quantity": 1 } }, { "Drop chance": 29, "Shortname": "grenade.f1", "SkinID": 0, "Drop quantity setting": { "Minimum quantity": 1, "Maximum quantity": 3 } }, { "Drop chance": 35, "Shortname": "explosive.satchel", "SkinID": 0, "Drop quantity setting": { "Minimum quantity": 2, "Maximum quantity": 2 } }, { "Drop chance": 25, "Shortname": "smg.thompson", "SkinID": 0, "Drop quantity setting": { "Minimum quantity": 1, "Maximum quantity": 1 } }, { "Drop chance": 25, "Shortname": "smg.2", "SkinID": 0, "Drop quantity setting": { "Minimum quantity": 1, "Maximum quantity": 1 } }, { "Drop chance": 25, "Shortname": "rifle.semiauto", "SkinID": 0, "Drop quantity setting": { "Minimum quantity": 1, "Maximum quantity": 1 } }, { "Drop chance": 12, "Shortname": "shotgun.spas12", "SkinID": 0, "Drop quantity setting": { "Minimum quantity": 1, "Maximum quantity": 1 } } ] } }, } }