ChristopherS's Wishlist
-
GunShips
Ever wanted to be able to rain death on your enemies while being in what is essentially a flying tank!?
The GunShip plugin allows you to spawn 16 different preconfigured customized vehicles allowing for new ways to play the game! Whether it is base raiding, pvp, or monument clearing youll always have the right tools, and the right firepower, to get the job done!
The plugin itself requires one main dependency but has a few optional ones as well. After Entity Scale Manager is installed all vehicles will be able to be spawned in and used right out of the box!
Support
Please read through this as well as the extended documentation available on my discord before flagging a ticket! 🙂
Open a support request here or join the discord and get in touch with me directly!
I may not answer right away, please allow around 24 hours for me to be able to help you with your request!
Dependency Setup
REQUIRED DEPENDENCIES:
Entity Scale Manager OPTIONAL DEPENDENCIES:
Death Notes Sign Artist Server Rewards Economics Raidable Bases
Entity Scale Manager (Required)
Once downloaded, upload the plugin to the same directory as the GunShip plugin and check console to ensure it has loaded, once it has reload the GunShip plugin (if needed).
OPTIONALLY you can change the following setting in the config file of Entity Scale Manager to make the scaling spheres disappear.
// Change the below value to true if you would like to enable it in the EntityScaleManager.json config file. { "Hide spheres after resize (performance intensive)": false }
Death Notes (Optional)
Implementing Death Notes allows players to see custom death messages when a player kills something or gets killed by something on a server. When using Death Notes with the GunShip plugin you can see additional custom death messages for when a NPC / Player is killed by a GunShip vehicle.
Near the end of the DeathNotes.json configuration file in the oxide/config directory you can add the following lines to enable the custom death messages!
"muzzlebrake.entity": "Armed Sedan", "lasersight.entity": "Heavy Technical", "smoke_grenade.weapon": "Light Technical", "hammer.entity": "Apache Attack Helicopter", "spraycan.weapon": "Huey Attack Helicopter", "flare.weapon": "Viper Attack Helicopter", "detonator.entity": "Enforcer UAV", "supplysignal.weapon": "Cargo Truck" Append the above lines to the end of the 'Weapons' section of the config. It should look like something below.
Sign Artist (Optional)
Sign artist is used to load custom images onto signs from a url. In the GunShip plugin it is used to load the specified image to all signs by default when they are initially spawned in.
Upload the the oxide/plugins directory and enjoy!
Reseller Info
As of version 1.0.5 the reseller framework has been added! This new feature allows server owners to optionally add the 'reseller' / salesman role into their servers allowing a assigned player to sell other players gunship vehicles. Additionally if enabled the assigned player can also make a comission of the configured currency for the sale depending on how much money they took off of the original price of the vehicle.
For a reseller to be able to make commission the option for enable reseller comission must be enabled. If you want the ability to allow resellers to edit the price of the vehicle within the configured discount range enable the Allow Resellers to Modify Price option in the config file. The actual comission is based off of the amount that the reseller did not take off of the sale. For example, if the reseller ran /sellgs huey 15 false they would make 5% of the total sale meaning that the comission is (sale price) * ((configured discount max) - (specified discount)) = reseller commission amount
Custom Item Info
Land / Air Vehicles Item Shortname: box.wooden
Water Vehicles Item Shortname: boogieboard
Steam Skin IDs:
Permission Info
System Permissions gunship.vip - Enables VIP perks / settings for players with this permission. gunship.spawn - Required to spawn any gunship vehicle (just to use the /gunship command). gunship.nocooldown - Players with this permission do not have a spawn command cooldown. gunship.admin - Players get admin settings / perks. gunship.target_immune - Players with this permission cannot be targeted by GunShip managed AutoTurrets (Vehicle Auto Turrets). gunship.nowipefee - Players with this permission do not pay a wipe fee for any vehicle (Start of wipe fee). gunship.norespawnfee - Players with this permission do not pay a respawn fee to spawn their vehicle after paying the wipe fee. gunship.norecallfee - Removes the cost of using the /gunship.util recall vehicle_name command gunship.nohominglock - Players that have this permission cannot be locked onto by a gunship smart missile system (what the guardian uses) gunship.reseller - Allows a player to use the reseller commands and sell vehicle items to other players and make commission (if enabled) Vehicle Permissions gunship.apache - Huey Attack Helicopter gunship.guardian - Guardian Homing AA Helicopter gunship.stinger - Agile Missile Attack Helicopter gunship.viper - Agile Gunner Attack Helicopter gunship.cobra - AA Helicopter gunship.huey - Heavy Attack Helicopter gunship.reaper - Heavy Attack Helicopter gunship.technical - Light Armoured Ground Attack Vehicle gunship.heavy_technical - Heavy Armoured Ground Attack Vehicle gunship.cargo_truck - Heavy Armoured Ground Transport Vehicle gunship.sedan - Heavy Ground Attack Vehicle gunship.fighter - Agile Attack Helicopter gunship.stallion - Heavy Cargo Transport Helicopter gunship.cougar - Light Cargo Transport Helicopter gunship.enforcer - Tactical UAV gunship.attack_rhib - Light Gun Boat Command Info
Player Commands: /gunship - USE: /gunship <vehicle_name> - The base GunShip command. Used for spawning vehicles. /gunship.help - USE: /gunship.help - Displays the help information for all vehicles. (Grey Names: No Permission, Yellow Names: Has Permission) /gunship.util - USE: /gunship.util <kill/recall/find> <vehicle_name> - Kill, recall, or find, the specified vehicle (if it is spawned) Admin Commands: /clearsave - USE: /clearsave - Wipe the save file in its entirety. /gunship.reloadconfig - USE: /gunship.reloadconfig - Reload the configuration values without reloading the plugin. /vehiclereport - USE: /vehiclereport - Get the information of the actively spawned vehicles. /checkstatus - USE: /checkstatus - View a report of the information relating to the vehicle you are looking at. /resetwf_all - USE: /resetwf_all - Reset the wipe fees of all players. /resetwf_player - USE: /resetwf_player <player_name> - Reset the wipe fees of the specified player. Debug Commands: /getlayer - USE: /getlayer - Return the layer information of the entity that you are currently looking at, prints to RCON console. /getparent - USE: /getparent - Return the information about the parent of the entity you are looking at (if any). /getname - USE: /getname - Return the name, item id, and skin id, of the currently held item. Reseller Commands (Requires gunship.reseller): /sellgs - USE: /sellgs <profile_name> <discount_percentage> <is_one_time_sale (true/false)> - Create a vehicle sale offer for the player you are facing /processsale - USE: /processsale <"confirm"/"cancel"> - Confirms or cancels the current sale offer and sends it to the customer Reseller Customer Commands: /buygs - USE: /buygs <"confirm"/"cancel"> - Confirms or cancels the given sale offer after being sent by a reseller Configuration File
{ "General Config": { "Chat Settings": { "Chat Message Icon": 0, // The default icon of all images sent by the plugin "Chat Message Prefix": "[<color=#d93d3d>GunShip</color>]" // The default chat prefix of all messages sent by the plugin }, "Sign Settings": { "Load Default Image on All Vehicle Signs": false, // Whether or not to load a default image when a vehicle is first spawned in "Sign URL Load (Requires Sign Artist)": "", // The URL of the default image to be loaded on the the sign "Load default image on vanilla vehicles": true }, "Vehicle Purchase Settings": { "Enable Wipe Fee": true, // Whether or not to enable the wipe fee "Enable Respawn Fee": true, // Whether or not to enable the respawn fee "Respawn Fee": 500.0, // The Respawn Fee amount "Recall Fee (To disable set to 0)": 200.0, // The recall fee amount "Payment Settings": { "Use Economics Plugin (Priority, will use this over SR if enabled)": false, "Use Server Rewards Plugin": false, "Use Custom Currency": true, // Whether or not to use a custom currency instead of SR or Economics "Points Name (when using SR or Economics)": "dollars", "Custom Currency Item Shortname (Specify item shortname [e.g scrap, or metal.refined])": "scrap", // Shortname of the custom currency "Custom Currency Skin (0 = Default Skin)": 0, // The Skin Id of the custom currency "Custom Currency Display Name (Leave empty for default item name)": "" // The display name of the custom currency } }, "PvP Settings": { "Enable PvE Mode (Disable all Damage between Players / Owned Entities and GunShip Vehicles)": false, // Enable the PvE Damage profile "Damage Options (Individual Settings)": { "Disable Gunship Damage to Owned Vehicles": false, "Disable Gunship Damage to Players": false, "Enable Friendly Fire": false, // Disable Friendly fire between teammates "Disable Player Damage to Gunships": false, "Disable Player Damage to All OWNED Vehicles (Global)": false, "Disable Global Fireball Damage": false, // Disable Fireball Damage to everything! "Disable Fireball Damage to GunShips": true,// Disable Fireball damage to gunships only (Above value overrides this) "Allow Fireball Damage in Raidable Base Raid Zones": true, "Disable Gunship To Building Damage": false, // Disable GunShip to OWNED player building damage "Disable GunShip Vehicle decay": true, "GunShips Override True PvE Damage Checks": false // Override the behaviour of TruePvE using the above damage settings for outgoing gunship damage "Building Damage Settings": { "Disable GunShip to Building Damage": true, "Allow Owned Building Damage (Players can damage their own buildings)": true, "Allow Friendly Fire Building Damage Between Teammates": true } } }, "Gunship System Targeting Settings": { "Allow GunShip Turrets to Target Sleepers": false, "Allow GunShip Turrets to Target Players": true, "Allow Gunship Sam Sites to target players": true, "Allow Gunship SAM Sites to target Patrol Helicopter": false, "Allow Non-GunShip SAM sites to target gunship vehicles": true, "Allow Gunship Homing Missiles to Lock onto Patrol Helicopter": true, "Allow Gunship Homing Missiles to Lock onto Bradley APC": true, "Enable Homing Lock PvP": true, // Enable the gunship smart missiles to lock onto players (Guardian Smart Missiles) "Enable Homing Lock Friendly Fire (between teammates)": false // Allow homing lock from smart missiles to friendly players (teammates) }, "Spawn Cooldown Time": 120.0, "Use Vehicle Locks Plugin to Manage Vehicle and Storage Access": false, "Drop items and fuel from GunShip vehicle on death": true, "Disable Auto Save Message": true }, "Spawn Point Config": { "Enable Spawn Point Config": false, "Spawn Point Data": { "Spawn Point List": { "default": { "Monument Prefab": "assets/bundled/prefabs/autospawn/monument/large/airfield_1.prefab", "Spawn Point Location (Local)": { "x": -87.03, "y": 0.3, "z": 37.91 }, "Spawn Point Rotation (Local)": { "x": 0.0, "y": 0.0, "z": 0.0 } } } } }, "VIP Permission Config": { "VIP Permission": "vip", "Enable VIP Cooldown Config (if false, uses default)": true, "VIP Perks Config": { "Enable VIP Perks (Set False to Disable All)": true, "VIP Vehicle Respawn Cooldown": 15, "VIP Respawn Fee Amount": 150 } }, "Permission Config": { "Spawn Permission": "spawn", "No Cooldown Permission": "nocooldown", "GunShip Turret Targeting System Immunity": "target_immune", "No Wipe Fee Permission": "nowipefee", "No Respawn Fee Permission": "norespawnfee", "No Recall Fee Permission": "norecallfee", "Administrator Permission (Enables Config from Admin Permission Config Settings)": "admin", "Homing Lock Immunity Permission": "nohominglock", "Admin Settings": { "Admin Default Minimum Permission Level -> Player Connection Level 0, 1, or 2": 2, "Admin Default Permissions (players with auth level >= configured level)": { "Auto Override Storage": true, "Auto Override Mount": true, "Admins Can be targeted by Gunship System": true, "Auto Override Spawn Cooldown": true, "Auto Overrride Wipe Fee": true, "Admin Override Respawn Fee": true, "Enable Wipe Fee Reset Commands (/resetwf_player & /resetwf_all)": true }, "Admin Permission Config (players with the gunship.admin permission)": { "Auto Override Storage": true, // Admins can open any gunship vehicle storage regardless of auth "Auto Override Mount": true, // Admins can mount any vehicle regardless of auth "Admins Can be targeted by Gunship System": true, // Allow admins to be targeted by gunship auto turrets "Auto Override Spawn Cooldown": true, "Auto Overrride Wipe Fee": true, "Admin Override Respawn Fee": true, "Enable Wipe Fee Reset Commands (/resetwf_player & /resetwf_all)": true } } }, "Vehicle Mod Config": { "Vanilla Vehicle Global Settings": { "Drop Dead Vehicle Items": true, "Scraptransport Helicopter Config": { "Add Radio to Scrap Transport Helicopter": true, "Add Sign to Scrap Transport Helicopter": true, "Add Boxes to Scrap Transport Helicopter": true, "Add Heater to Scrap Transport Helicopter": true, "Number of Boxes to Add (1-6)": 2 }, "Minicopter Config": { "Add Radio to Minicopter": true, "Add Sign to Minicopter": true, "Add Storage Box to Minicopter": true }, "Sedan Config": { "Add Radio to Sedan": true, "Add Boxes to Sedan": true }, "Attack Helicopter Config": { "Add Radio to Player Attack Helicopter": true, "Add Boxes to Player Attack Helicopter": false } } }, "Vehicle config": { "Vehicle Control Config": { "Disable remote turret control of gunship auto turrets": true }, "Apache Config": { "General Vehicle Settings": { "Vehicle Enabled": true, "Use Permission": true, "Vehicle Drops fuel": true }, "Vehicle Display Name": "Apache", "Vehicle Wipe Fee Price": 6500, "Vehicle Wipe Fee Price (VIP)": 0, "Vehicle Spawn Permission": "apache", "Infinite Machine Gun Ammo": false, "Mod Configuration": { "Add Radio to Scrap Transport Helicopter": true, "Add Sign to Scrap Transport Helicopter": true, "Add Heater to Scrap Transport Helicopter": true, "Number of Boxes to Add (1-6)": 2 }, "Engine Configuration": { "Thurst Multiplier (1 = Vanilla Default)": 1.0, "Lift Fraction Multiplier (0 = Vanilla Default)": 1.0, "Control Torque Multipler": { "x": 1.0, "y": 1.0, "z": 1.0 }, "Fuel Consumption (100 = Vanilla Default)": 1.0, "Fuel Config": { "Add Fuel to Vehicle": false, "Only add fuel on initial spawn": true, "Fuel Amount": 150, "Fuel Skin ID (0 = Default)": 0, "Fuel Custom Name (Leave blank for default)": "" } } }, "Minicopter Fighter Config": { "General Vehicle Settings": { "Vehicle Enabled": true, "Use Permission": true, "Vehicle Drops fuel": true }, "Vehicle Display Name": "Minicopter Fighter", "Vehicle Wipe Fee Price": 2800, "Vehicle Wipe Fee Price (VIP)": 0, "Vehicle Spawn Permission": "fighter", "Mod Configuration": { "Add Radio to Minicopter": true, "Add Sign to Minicopter": true, "Add Heater to Minicopter": true, "Add Back Light to Minicopter": true }, "Engine Configuration": { "Thurst Multiplier (1 = Vanilla Default)": 1.0, "Lift Fraction Multiplier (0 = Vanilla Default)": 1.0, "Control Torque Multipler": { "x": 1.0, "y": 1.0, "z": 1.0 }, "Fuel Consumption (100 = Vanilla Default)": 1.0, "Fuel Config": { "Add Fuel to Vehicle": false, "Only add fuel on initial spawn": true, "Fuel Amount": 150, "Fuel Skin ID (0 = Default)": 0, "Fuel Custom Name (Leave blank for default)": "" } } }, "Sedan Config": { "General Vehicle Settings": { "Vehicle Enabled": true, "Use Permission": true, "Vehicle Drops fuel": true }, "Vehicle Display Name": "Armed Sedan", "Vehicle Wipe Fee Price": 2000, "Vehicle Wipe Fee Price (VIP)": 0, "Vehicle Spawn Permission": "sedan", "Infinite Machine Gun Ammo": false, "Mod Configuration": { "Add Radio to Sedan": true, "Add Boxes to Sedan": true } }, "Technical Config": { "General Vehicle Settings": { "Vehicle Enabled": true, "Use Permission": true, "Vehicle Drops fuel": true }, "Vehicle Display Name": "Light Technical", "Vehicle Wipe Fee Price": 1900, "Vehicle Wipe Fee Price (VIP)": 0, "Vehicle Spawn Permission": "technical", "Mod Configuration": {}, "Engine Configuration": { "Engine Parts Config": { "Add Engine Parts": false, "Engine Parts Grade (0 = Low Quality, 1 = Medium Quality, 2 = High Quality)": 0, "Lock Engine when using added parts": true }, "Fuel Config": { "Add Fuel to Vehicle": false, "Only add fuel on initial spawn": true, "Fuel Amount": 150, "Fuel Skin ID (0 = Default)": 0, "Fuel Custom Name (Leave blank for default)": "" } } }, "Heavy Technical Config": { "General Vehicle Settings": { "Vehicle Enabled": true, "Use Permission": true, "Vehicle Drops fuel": true }, "Vehicle Display Name": "Heavy Technical", "Vehicle Wipe Fee Price": 2600, "Vehicle Wipe Fee Price (VIP)": 0, "Vehicle Spawn Permission": "heavy_technical", "Mod Configuration": {}, "Engine Configuration": { "Engine Parts Config": { "Add Engine Parts": false, "Engine Parts Grade (0 = Low Quality, 1 = Medium Quality, 2 = High Quality)": 0, "Lock Engine when using added parts": true }, "Fuel Config": { "Add Fuel to Vehicle": false, "Only add fuel on initial spawn": true, "Fuel Amount": 150, "Fuel Skin ID (0 = Default)": 0, "Fuel Custom Name (Leave blank for default)": "" } } }, "Cargo Truck Config": { "General Vehicle Settings": { "Vehicle Enabled": true, "Use Permission": true, "Vehicle Drops fuel": true }, "Vehicle Display Name": "Cargo Truck", "Vehicle Wipe Fee Price": 2800, "Vehicle Wipe Fee Price (VIP)": 0, "Vehicle Spawn Permission": "cargo_truck", "Add Default Image to Signs": true, "Mod Configuration": {}, "Engine Configuration": { "Engine Parts Config": { "Add Engine Parts": false, "Engine Parts Grade (0 = Low Quality, 1 = Medium Quality, 2 = High Quality)": 0, "Lock Engine when using added parts": true }, "Fuel Config": { "Add Fuel to Vehicle": false, "Only add fuel on initial spawn": true, "Fuel Amount": 150, "Fuel Skin ID (0 = Default)": 0, "Fuel Custom Name (Leave blank for default)": "" } } }, "Cougar Config": { "General Vehicle Settings": { "Vehicle Enabled": true, "Use Permission": true, "Vehicle Drops fuel": true }, "Vehicle Display Name": "Cougar", "Vehicle Wipe Fee Price": 4600, "Vehicle Wipe Fee Price (VIP)": 0, "Vehicle Spawn Permission": "cougar", "Mod Configuration": { "Add Radio to Scrap Transport Helicopter": true, "Add Sign to Scrap Transport Helicopter": true, "Add Heater to Scrap Transport Helicopter": true, "Number of Boxes to Add (1-6)": 2 }, "Engine Configuration": { "Thurst Multiplier (1 = Vanilla Default)": 1.0, "Lift Fraction Multiplier (0 = Vanilla Default)": 1.0, "Control Torque Multipler": { "x": 1.0, "y": 1.0, "z": 1.0 }, "Fuel Consumption (100 = Vanilla Default)": 1.0, "Fuel Config": { "Add Fuel to Vehicle": false, "Only add fuel on initial spawn": true, "Fuel Amount": 150, "Fuel Skin ID (0 = Default)": 0, "Fuel Custom Name (Leave blank for default)": "" } } }, "Stallion Config": { "General Vehicle Settings": { "Vehicle Enabled": true, "Use Permission": true, "Vehicle Drops fuel": true }, "Vehicle Display Name": "Stallion", "Vehicle Wipe Fee Price": 5200, "Vehicle Wipe Fee Price (VIP)": 0, "Vehicle Spawn Permission": "stallion", "Mod Configuration": { "Add Radio to Scrap Transport Helicopter": true, "Add Sign to Scrap Transport Helicopter": true, "Add Heater to Scrap Transport Helicopter": true, "Number of Boxes to Add (1-6)": 2 }, "Engine Configuration": { "Thurst Multiplier (1 = Vanilla Default)": 1.0, "Lift Fraction Multiplier (0 = Vanilla Default)": 1.0, "Control Torque Multipler": { "x": 1.0, "y": 1.0, "z": 1.0 }, "Fuel Consumption (100 = Vanilla Default)": 1.0, "Fuel Config": { "Add Fuel to Vehicle": false, "Only add fuel on initial spawn": true, "Fuel Amount": 150, "Fuel Skin ID (0 = Default)": 0, "Fuel Custom Name (Leave blank for default)": "" } } }, "Stinger Config": { "General Vehicle Settings": { "Vehicle Enabled": true, "Use Permission": true, "Vehicle Drops fuel": true }, "Vehicle Display Name": "Stinger Attack Minicopter", "Vehicle Wipe Fee Price": 4400, "Vehicle Wipe Fee Price (VIP)": 0, "Vehicle Spawn Permission": "stinger", "Infinite Rockets": false, "Mod Configuration": { "Add Radio to Minicopter": true, "Add Sign to Minicopter": true, "Add Heater to Minicopter": true, "Add Back Light to Minicopter": true }, "Engine Configuration": { "Thurst Multiplier (1 = Vanilla Default)": 1.0, "Lift Fraction Multiplier (0 = Vanilla Default)": 1.0, "Control Torque Multipler": { "x": 2.0, "y": 2.0, "z": 2.0 }, "Fuel Consumption (100 = Vanilla Default)": 1.0, "Fuel Config": { "Add Fuel to Vehicle": false, "Only add fuel on initial spawn": true, "Fuel Amount": 150, "Fuel Skin ID (0 = Default)": 0, "Fuel Custom Name (Leave blank for default)": "" } } }, "Huey Config": { "General Vehicle Settings": { "Vehicle Enabled": true, "Use Permission": true, "Vehicle Drops fuel": true }, "Vehicle Display Name": "Huey Attack Helicopter", "Vehicle Wipe Fee Price": 7600, "Vehicle Wipe Fee Price (VIP)": 0, "Vehicle Spawn Permission": "huey", "Infinite Rockets": false, "Infinite Machine Gun Ammo": false, "Mod Configuration": { "Add Radio to Scrap Transport Helicopter": true, "Add Sign to Scrap Transport Helicopter": true, "Add Heater to Scrap Transport Helicopter": true, "Number of Boxes to Add (1-6)": 2 }, "Engine Configuration": { "Thurst Multiplier (1 = Vanilla Default)": 1.0, "Lift Fraction Multiplier (0 = Vanilla Default)": 1.0, "Control Torque Multipler": { "x": 1.0, "y": 1.0, "z": 1.0 }, "Fuel Consumption (100 = Vanilla Default)": 1.0, "Fuel Config": { "Add Fuel to Vehicle": false, "Only add fuel on initial spawn": true, "Fuel Amount": 150, "Fuel Skin ID (0 = Default)": 0, "Fuel Custom Name (Leave blank for default)": "" } }, "Disable MiniGun Scaling (Enable No Sphere Setting in EntityScaleManager if visual issues)": false }, "Cobra Config": { "General Vehicle Settings": { "Vehicle Enabled": true, "Use Permission": true, "Vehicle Drops fuel": true }, "Vehicle Display Name": "Cobra AA Helicopter", "Vehicle Wipe Fee Price": 4600, "Vehicle Wipe Fee Price (VIP)": 0, "Vehicle Spawn Permission": "cobra", "Mod Configuration": { "Add Radio to Scrap Transport Helicopter": true, "Add Sign to Scrap Transport Helicopter": true, "Add Heater to Scrap Transport Helicopter": true, "Number of Boxes to Add (1-6)": 2 }, "Engine Configuration": { "Thurst Multiplier (1 = Vanilla Default)": 1.0, "Lift Fraction Multiplier (0 = Vanilla Default)": 1.0, "Control Torque Multipler": { "x": 1.0, "y": 1.0, "z": 1.0 }, "Fuel Consumption (100 = Vanilla Default)": 1.0, "Fuel Config": { "Add Fuel to Vehicle": false, "Only add fuel on initial spawn": true, "Fuel Amount": 150, "Fuel Skin ID (0 = Default)": 0, "Fuel Custom Name (Leave blank for default)": "" } } }, "Viper Config": { "General Vehicle Settings": { "Vehicle Enabled": true, "Use Permission": true, "Vehicle Drops fuel": true }, "Vehicle Display Name": "Viper Attack Minicopter", "Vehicle Wipe Fee Price": 4100, "Vehicle Wipe Fee Price (VIP)": 0, "Vehicle Spawn Permission": "viper", "Infinite Machine Gun Ammo": false, "Mod Configuration": { "Add Radio to Minicopter": true, "Add Sign to Minicopter": true, "Add Heater to Minicopter": true, "Add Back Light to Minicopter": true }, "Engine Configuration": { "Thurst Multiplier (1 = Vanilla Default)": 1.0, "Lift Fraction Multiplier (0 = Vanilla Default)": 1.0, "Control Torque Multipler": { "x": 1.0, "y": 1.0, "z": 1.0 }, "Fuel Consumption (100 = Vanilla Default)": 1.0, "Fuel Config": { "Add Fuel to Vehicle": false, "Only add fuel on initial spawn": true, "Fuel Amount": 150, "Fuel Skin ID (0 = Default)": 0, "Fuel Custom Name (Leave blank for default)": "" } } }, "Enforcer Config": { "General Vehicle Settings": { "Vehicle Enabled": true, "Use Permission": true, "Vehicle Drops fuel": true }, "Vehicle Display Name": "Enforcer Attack Drone", "Vehicle Wipe Fee Price": 6100, "Vehicle Wipe Fee Price (VIP)": 0, "Vehicle Spawn Permission": "enforcer" }, "Guardian Config": { "General Vehicle Settings": { "Vehicle Enabled": true, "Use Permission": true, "Vehicle Drops fuel": true }, "Vehicle Display Name": "Guardian AA Helicopter", "Vehicle Wipe Fee Price": 6100, "Vehicle Wipe Fee Price (VIP)": 0, "Vehicle Spawn Permission": "guardian", "Mod Configuration": { "Add Radio to Scrap Transport Helicopter": true, "Add Sign to Scrap Transport Helicopter": true, "Add Heater to Scrap Transport Helicopter": true, "Number of Boxes to Add (1-6)": 2 }, "Engine Configuration": { "Thurst Multiplier (1 = Vanilla Default)": 1.0, "Lift Fraction Multiplier (0 = Vanilla Default)": 1.0, "Control Torque Multipler": { "x": 1.0, "y": 1.0, "z": 1.0 }, "Fuel Consumption (100 = Vanilla Default)": 1.0, "Fuel Config": { "Add Fuel to Vehicle": false, "Only add fuel on initial spawn": true, "Fuel Amount": 150, "Fuel Skin ID (0 = Default)": 0, "Fuel Custom Name (Leave blank for default)": "" } } }, "Attack RHIB Config": { "General Vehicle Settings": { "Vehicle Enabled": true, "Use Permission": true, "Vehicle Drops fuel": true }, "Vehicle Display Name": "Attack RHIB", "Vehicle Wipe Fee Price": 3100, "Vehicle Wipe Fee Price (VIP)": 0, "Vehicle Spawn Permission": "attack_rhib" }, "Reaper Config": { "General Vehicle Settings": { "Vehicle Enabled": true, "Use Permission": true, "Vehicle Drops fuel": true }, "Vehicle Display Name": "Reaper Attack Helicopter", "Vehicle Wipe Fee Price": 6500, "Vehicle Wipe Fee Price (VIP)": 0, "Vehicle Spawn Permission": "reaper", "Mod Configuration": { "Add Radio to Scrap Transport Helicopter": true, "Add Sign to Scrap Transport Helicopter": true, "Add Heater to Scrap Transport Helicopter": true, "Number of Boxes to Add (1-6)": 2 }, "Engine Configuration": { "Thurst Multiplier (1 = Vanilla Default)": 1.0, "Lift Fraction Multiplier (0 = Vanilla Default)": 1.0, "Control Torque Multipler": { "x": 1.0, "y": 1.0, "z": 1.0 }, "Fuel Consumption (100 = Vanilla Default)": 1.0, "Fuel Config": { "Add Fuel to Vehicle": false, "Only add fuel on initial spawn": true, "Fuel Amount": 150, "Fuel Skin ID (0 = Default)": 0, "Fuel Custom Name (Leave blank for default)": "" } } } }, "Item Spawn Settings": { // For non-reseller spawn items, only for use with small wooden box spawn item "Enable Item Spawning": true, // Whether or not Item Spawning is Enabled "Require Vehicle Permission to Place Vehicle Item": false, // Require the player to have the associated permission for the vehicle to be able to spawn it with a item "Grant Vehicle Permission on Item Use (Recommended for Shop use)": true, // Grant the vehicle permission when the spawn item is deployed "Grant Vehicle Wipe fee On Use (Recommended for Shop use)": true, // Grant the vehicle wipe fee when the spawn item is deployed "Only Allow Wipe Fee to be Paid via a Reseller": false // Only allow wipe fee payments through a spawn item / reseller transaction }, "Reseller Config": { "Enable GunShip Vehicle Reselling": false, // Enable the Roleplay reselling framework "Sale Confirmation TTL (seconds)": 300, // The amount of time a transaction can take before it expires "Allow sale of a vehicle that a player already has": false, // Allow full vehicle sales even when a player already has the vehicle perm "Reseller Permission": "reseller", // The reseller pemission suffix -> gunship.reseller_permission_name "Reseller Price Editor Options": { "Allow Resellers to Modify Price": true, // Allow resellers to set a discount percentage "Enable Reseller Commission": true, // Allow resellers to be paid comission for the discount remainder percentage of the sale "Price Disount Percentage": 20.0, // The % amount the reseller can play around with in a sale "Sale Pricing Options": { "One Time Sale Price Options": { "Total Price Discount Percentage (0-99)": 40.0 // The initial % discount of a vehicle's wipe fee in a one-time-purchase sale }, "Full Sale Price Options (Grants Vehicle Permission)": { "Total Price Discount Percentage (0-99)": 0.0, // The initial % discount of a vehicle's wipe fee in a full vehicle sale "Enable item give on full sale": false } } } }, "Experimental Settings": { "Enable NoDismount on Vehicle Load Data": false, // Disable players getting dismounted from vehicles when the plugin reloads (not recommended) "Enable No Drone Sway for All modified drones": false // Enable No Sway Script for all drones w/ attatched entities (enabled for enforcer) }, "Debug Settings": { "Log Death": false, // Log Death Info "Log Vehicle Kill": false, // Log Vehicle Death Info "Log Vehicle Respawn Script": false, // Log Raw Respawn Script Output "Log Raw Save Data (Not Recommended to Turn on)": false, // Log Raw Save Messages "Log Pre-load info": false, "Enable Damage Logs": false, // Log Damage Output "Enable Gunship Item Logging": false, // Log Internal Item Logging "Enable Reseller Logging": false, // Log Internal Reseller Logging "Enable Engine Modifier Logging": false // Log info / changes related to the adjustment of vehicle's engines on spawn } } Monument Spawn Nodes (API / Command Implementation)
The monument spawn node feature allows you to set up preset spots where you can spawn vehicles via a command (intended for use with a third-party plugin).
Node Setup
Enable the spawn node config by setting "Enable Spawn Point Config" to true Goto a spot within a monument where you want to have the vehicles spawn. Execute the /getspawnpoint command in chat, this will give you the closest monument’s prefab path as well as the relative position within the monument for use within the config file. The data from this command will also be printed to RCON as well. Either copy or directly edit the entire entry of the “default” preset in the “Spawn Point List” within the GunShip.json config file and change the name from “default” to whatever name you want to use to reference this spawn point later on. Change “Monument Prefab” to the prefab given by the command you ran in step 2 Change x, y, z entries within the “Spawn Point Location (Local)” entry to that of the coordinates that were given from the command in step 2 Confirm your changes and save the changes to your config file.
Vehicle Spawning / Node Usage
To actually spawn a vehicle at a created node run the following command via RCON or a hook (within a plugin, the arguments and usage will be the same)
Command: SpawnVehicle_AtNode <node_name> <vehicle_name> <player_steam_id>
Arguments:
Node Name: The name of the node, (e.g “default”) Vehicle Name: The name of the vehicle (e.g “huey”) Player Steam Id: The steam id of the player you are spawning the vehicle for Example:
> spawnvehicle_atnode “default” “huey” “81658972110849190”
Use with a NPC Vendor
By default the command will work similar to the /gunship or /gs command in that it will try to check if a player has paid the wipe fee (if enabled) for the specified vehicle, if not, charge them, and if they don’t have enough funds it will not spawn the vehicle. Additionally if the spawn node is blocked by another vehicle the new vehicle will not be spawned. As such it is recommended to not charge the user on a sale through a third party plugin such as through an npc vendor. However if this is not possible please refer to the below message.
When using a third party plugin’s vendor it is recommended to do the following if you do not want the gunship plugin to check for a player’s purchase or for any vehicle obstructions to avoid the vehicle spawn being canceled.
Change "Disable Vehicle Payment Processing" to true Change "Check For Spawn Node Obstructions" to false
!! IMPORTANT !!
The API does not assign the vehicle’s permission, and if "Disable Vehicle Payment Processing" is set to true the player will not have their wipe fee processed. If you want to have the player get the permission for the vehicle as well as have their wipe fee paid without having the gunship plugin charge them and potentially cancel the command if they do not have funds please add the following commands to the list of commands to be ran.
> addplayervehicle <player_steam_id> <vehicle_name>
> o.grant user <player_steam_id> gunship.<vehicle_permission>
API
bool CheckIfGunShip_API(NetworkableId entId) // Returns if whether or not the specified Net ID is a GunShip Vehicle bool GiveGunShipItem(BasePlayer player, string profilename) // Give the specified player a gunship spawn item bool SpawnGunShip(string profileName, ulong playerId, Vector3 position, Quaternion rotation, bool checkFunds, bool takeFunds, bool overridePermission, bool limitCheck) // Spawn a GunShip vehicle bool AddPlayerVehicle(string player, string profileName) // Add the specified vehicle to the list of purchased vehicles for that player bool RemovePlayerVehicle(string player, string profileName) // Remove the specified vehicle from the list of purchased vehicles for that player bool SpawnVehicle(string nodeName, string profileName, string playerID) // Spawn a vehicle at the specified node
-
Grid Power
Grid Power rust plugin allows players to harness electricity directly from the Power Grid on any map by climbing Power line Poles to upgrade Transformers with components and protect their grid section, while also enhancing vanilla visuals with realistic, adjustable slack on hanging wires and lights.
Questions? Support? Join the discord: https://discord.nikhub.dev
In short
Draw electricity straight from the Power Grid in Rust - on any map, be it a procedurally generated or a custom one! Ladder up the Power line Poles to upgrade their Transformers with components like Root Combiners (to replace missing/stolen/destroyed outlets that you plug into) and Tech Trash (to permanently upgrade power output level, up to a configurable point). Maintain the service with long-lasting Fuses. But most importantly, protect your precious part of the grid from vandalism, theft and sabotage that will inevitably come from those jealous players! Whatever you do, just be careful up there... high voltage happens to be highly dangerous. Always wear protective gear (like a hazmat suit) and don't touch the wires while they're live! As a bonus, this plugin also improves vanilla visuals with realistically hanging wires / hoses / Xmas lights, the slack of which (how loose they appear to be hanging) can be adjusted while placing. And this feature is completely optional, too. Goodbye, straight lines that look like steel rods - hello, actual laws of physics!
But don't take my word for it - let the video speak for itself:
Still not convinced? Check out this in-depth, 20+ minutes long review and tutorial by srtbull!
1.0.2 UPDATE: Introducing working Street Lights for eligible poles! The lights go on between between 20:00 and 8:00 by default.
Quick start (for admins)
Upload the GridPower.cs file to your oxide/plugins folder and you should be good to go, it's all plug-and-play. No need to restart your server! If you're loading it for the first time or it's a new map wipe, the plugin will automatically locate all Power Line Prefabs on your map, randomly choose some of them (according to chances set in the default config) and attach extra electrical entities to them to make them functional. Those entities should persist throughout the wipe and will be replaced if missing, on every plugin reload/server restart. Each Power line Pole will be assigned a number and its position will be stored in the data. This will work on any map that contains at least one of the following prefabs:
assets/bundled/prefabs/autospawn/decor/powerline-small/powerline_pole_a.prefab assets/content/props/powerline_poles/powerline_pole_a.prefab
Quick start (for players)
Locating functional Transformers
Not all Power Line Poles were made equally. Only a percentage of them (by default, 33% on average) will be functional. How do you recognise a functional one? Look up - if you see a Button attached to the top of the Pole, and maybe even some pre-existing Root Combiner Outlets, that's it! [insert image here, maybe a player looking at a powerline pole with binoculars]
Laddering Up
Now that you have located a functional pole, you need to climb it. Normally you cannot deploy Ladders on Power Line Poles and many other places (but oddly enough, you CAN deploy them on the horizontal planks at the top of a Pole!). However, Grid Power re-implements all the client-sided deployment logic to allow bypassing of that arbitrary-seeming limitation. If you try to deploy a Ladder on a Power Line Pole, don't be discouraged by the fact that the "ghost guide" is red instead of blue/amber. Click anyway and it will force it through! Ignore the message in the chat saying that the deployment failed - just like the colour of the ghost guide, it's all client-sided and as such there's nothing the plugin can do about it, visually speaking. But trust me, everything works as intended, despite what the client messages are telling you. The Ladders can then be destroyed/picked up to be reused.
Maintenance
A Transformer can have up to 4 Outlets (Root Combiners). That's where the players draw the electricity from. Those Root Combiners can be damaged/destroyed/repaired/picked up with a hammer (if you have Building Privilege) any time. If there's less than 4 Outlets, right-click on a Root Combiner Item in your inventory or drag it into the Fuse Box of the Transformer. You will hear a deployment effect and the Root Combiner will be deployed on the pole. In order to be able to draw power from that Transformer, you need to put a Fuse inside. Right-click a Fuse in your inventory or drag it directly to the Fuse Box. Don't worry - inside of the Transformers, those Fuses will last for much, MUCH longer than inside regular monument Fuse Boxes. By default, a brand new Fuse inside of a Transformer Fuse Box will last you for 12000 seconds (= 200 minutes, = 3.33 hours). This value can be increased or decreased in the config. You can see how much time a fuse has left in the Transformer GUI. By default, the Power Grid will produce electricity between 8 AM and 8 PM. The power output will follow a smooth curve, being the lowest in the morning/evening, and peaking at 2 PM. Exactly how much RWs will be produced on each Outlet is determined by the Transformer's Tech Trash level. By default, each Tech Trash inserted increases the peak power output by 5 RWs (up until a certain point - by default, that level is capped at 50, which translates to 250 RWs per Outlet at peak hours). Upgrade the level by right-clicking the Tech Trash item in your inventory or dragging it directly into the Fuse Box. Inserting Root Combiners/Tech Trash is still possible even if there's already a Fuse inside of the Fuse Box. The Fuse won't be replaced as the sole Item in the slot, since Root Combiners/Tech Trash are consumed immediately.
Hooking Up & Hanging Out
Once there's at least 1 Outlet present, you have a Fuse at hand, and the Grid is currently producing power - you're all set. Take a Wire Tool, pick your favourite wire colour with the [RELOAD] button, typically R, and connect to the outputs of the Root Combiner Outlets to your own electrical devices, usually a Battery or another Root Combiner. You will notice the text on top of your screen telling you what the current Slack of your wire tool / hose tool is. You can increase it with the [DUCK] button, typically CTRL, and decrease it with the [SPRINT] button, typically SHIFT. Larger Slack value means that the wire/hose will appear to be hanging more loosely. Smaller values will make it look tighter. Values close to zero will make it look like they look in vanilla Rust - i.e. not so good in comparison 😉 The final Slack value will be applied the moment you finalise your wire/hose connection. This hanging improvement applies to anything you do with Wire Tools/Hose Tools, not just Transformer Outlet connections! For the Advanced Xmas Lights, it's even better: you can adjust the Slack of each segment individually! After you place the Advanced Xmas Lights segment down, and you're just about to place the next segment, adjust the Slack of the segment you have just placed down with [DUCK] and [SPRINT] buttons. You will see a preview of what it will make the segment look like. Placing the next segment down confirms the Slack for the segment before it.
Danger! High Voltage!
If the Grid is currently producing Power (by default, during daytime) AND a Fuse is inserted in the Transformer, all Root Combiner Outlets are considered live on that Transformer. You can tell whether a Transformer is live or not: first, check your electric devices plugged in directly to the Grid. If they're not currently receiving any charge, they're not live. Similarly, you can look at the diodes on the Root Combiner Outlets. If they're not on, the Transformer is not live either. Lastly, it's pretty clear from the Transformer GUI. If a player tries to connect/disconnect a wire to/from a live Outlet, or they're trying to pick up the Root Combiner Outlet with a hammer, and they're not wearing one of the items on a pre-approved list (see the Advanced Config section below), there is a 1.0 (100%) chance they will get electrocuted to death. Another way to guarantee electrocution is trying to clear connections named INTERNAL. Leave those alone! Wearing protective clothing reduces that chance to 1 in 10 (10%, according to the default permission profile - see below). You can set that chance to 0.0 (0%) if you want to give your players a peace of mind. Another way to guarantee 0% electrocution chance is making sure the Transformer is not live: either wait for the Grid to stop producing Power or take out the Fuse before doing anything else.
Permissions (Oxide.Grant user YourName [permission name starting with gridpower.])
By default, the plugin generates 3 permission profiles in the config - one for admins, one for normal players with no specific permissions (default) and one for VIP. More on permission profiles and config values they can handle can be found in the section Advanced Config. Unless you have added more permission profiles, only these two below are going to be used by your config:
gridpower.admin
Holders of the admin permission will also be able to run the /gp_cfg and /gp_emergency_cleanup commands
gridpower.vip1
Holders of this permission will follow settings and limits associated with with that permission profile. The permissions below are also registered, but not used by default. To use them, just create some permission profiles with those permissions as the key.
gridpower.vip2 gridpower.vip3 gridpower.vip4 gridpower.vip5
Automatic street lights
Depending on your map design, some power line poles might have lamps on them. All those lamps will now emit light, by default between 20:00 an 8:00, which just so happens to be the time when the grid production goes back to 0. You can also set the street lights to be always on, regardless of the time of day. The time settings for the street lights are independent of your power production time settings - they can overlap, one can start before midnight and end after midnight while the other one does not, etc. Those street lights will work even on non-functional power line poles, e.g those without a button on top of them. When on, the lights will flicker from time to time. How often they will flicker and how long individual flickers are going to be depends on your config - look below.
Admin F1 console/chat commands (must have ownerid/moderatorid/gridpower.admin permission)
If you're typing those commands from the F1 console or the server console, drop the preceding slash in the command name.
/gp_cfg Will allow the admins to change non-permission profile related config values on the fly (see below) /gp_emergency_cleanup Instantly kills all the plugin-related entities: fuseboxes, admin generators, root combiners and buttons. It won't remove the power line entries in your data, however. All the killed entities will be re-generated according to your current generation settings in the config next time your server restarts or the plugin reloads. If you want to permanently get rid of them, unload the plugin, delete your oxide/data/GridPower.json, and load it back in. /gp_pole [add/remove] This command will allow admins to add or remove functional power line poles at any time. Just look directly at the pole you want to modify and type the command with an argument (either "add" or "remove", depending on what you want to achieve). If you want to add a pole and it already is functional, or if you want to remove a pole, but it isn't functional - you will get a warning. Same if you try to add a pole, but the pole you're looking at is building blocked by a nearby monument. "Ent killing" (or using a plugin like Remover) the power line fusebox is the equivalent of permanently removing it from the data and it won't be re-generated any more on next reload. Wiping your save file also automatically removes all the extra components and replaces them with new ones tailored to your map, in accordance to your generation settings.
Configuration (oxide/config/GridPower.json and /gp_cfg console/chat command)
Vast majority of the settings can be configured with the /gp_cfg chat command. Typing it in the chat/console with no parameters should dump a rundown of config fields and their values. In order to run any of the config commands, you will need to have ownerid or moderatorid (or the gridpower.admin permission).
/gp_cfg GridConstantPower [logical values (true or false)] If set to true, the Grid will always produce electricity at its peak (100%), 24 hours a day (DEFAULT: false) /gp_cfg GridProductionStartAtHour [fractions (like 13.37) between 0.00 and 24.00] The hour of the day when the power production starts climbing up from 0 (DEFAULT: 8.0) /gp_cfg GridProductionEndAtHour [fractions (like 0.69, nice) between 0.00 and 24.00] The hour of the day when the power production settles back at 0 (DEFAULT: 20.0) /gp_cfg StreetlightsConstantPower [logical values (true or false)] If set to true, the Streetlights will be on 24 hours a day. (DEFAULT: FALSE) /gp_cfg StreetlightsTurnOnAtHour [fractions (like 20.4) between 0.00 and 24.00] The hour of the day when the street lights turn on (DEFAULT: 20.0) /gp_cfg StreetlightsTurnOffAtHour [fractions (like 8.2) between 0.00 and 24.00] The hour of the day when the street lights turn off (DEFAULT: 8.0) /gp_cfg StreetlightsReliability [fractions (like 0.5) between 0.00 and 1.00] The reliability of the streetlight. The less it is, the more often it will flicker. At 1, which represents 100%, it never flickers. (DEFAULT: 0.95) /gp_cfg StreetlightsFlickerLengthMin [fractions (like 1.2) between 0.00 and Positive Infinity] The minimum random length of the flicker, in seconds (DEFAULT: 0.1) /gp_cfg StreetlightsFlickerLengthMax [fractions (like 2.4) between 0.00 and Positive Infinity] The maximum random length of the flicker, in seconds (DEFAULT: 0.5) /gp_cfg GeneratorChancePowerlineFunctional [fractions (like 0.5) between 0.00 and 1.00] The chance that a valid Power Line Pole will be made functional during generation. (DEFAULT: 0.33) /gp_cfg FuseRequired [logical values (true or false)] If set to false, the Transformers won't need Fuses to produce power, just the right time of the day (if power is not 24/7) (DEFAULT: TRUE) /gp_cfg BuildingBlockPreventsButtonPress [logical values (true or false)] If set to true, if there's any Tool Cupboards in the range of the Transformer, you need to be authorised on all of them to open the Transformer GUI (DEFAULT: TRUE) /gp_cfg GeneratorInitialLevelMin [integers (like 7) between 0 and 1000] The lower limit for the random Tech Trash level of valid Power Line Poles during generation (DEFAULT: 1) /gp_cfg GeneratorInitialLevelMax [integers (like 7) between 0 and 1000] The upper limit for the random Tech Trash level of valid Power Line Poles during generation (DEFAULT: 5) /gp_cfg GeneratorInitialOutletsMin [integers (like 1) between 0 and 4] The lower limit for the random number of Outlets of valid Power Line Poles during generation (DEFAULT: 0) /gp_cfg GeneratorInitialOutletsMax [integers (like 3) between 0 and 4] The upper limit for the random number of Outlets of valid Power Line Poles during generation (DEFAULT: 4) /gp_cfg PowerlinePowerPerTechTrash [integers (like 7) between 0 and 1000] How much RWs at peak hours are provided per 1 Tech Trash Level upgrade (DEFAULT: 5) /gp_cfg PowerlineMaxTechTrashLevel [integers (like 7) between 0 and 1000] The maximum level that a Transformer can be upgraded to (DEFAULT: 50) /gp_cfg PowerlineFuseDurationSeconds [fractions (like 420.69, nice) between 0.0 and Infinity] How long (in seconds) a brand new Fuse inserted in the Transformer Fusebox will last (DEFAULT: 12000.0) /gp_cfg FuseItemShortname [strings (like "fuse")] The shortname of the item that acts as the Fuse for Transformer Fuseboxes, must be a valid Rust item shortname /gp_cfg FuseItemGuiName [strings (like "Transformer Fuse")] The custom GUI display name of the item that acts as the Fuse for Transformer Fuseboxes, can be anything, or left blank for default /gp_cfg FuseItemSkinID [positive long integers (like 2783151202)] The skin ID of the Fuse item if using custom, leave at 0 to accept any items of the shortname specified by FuseItemShortname
Protective clothing (only editable through oxide/config/GridPower.json)
"ProtectiveClothing": { "hazmatsuit": null, "scientistsuit_heavy": null, "hazmatsuit_scientist": null, "hazmatsuit_scientist_peacekeeper": null, "hazmatsuit.spacesuit": null, "boots.frog": null, "hazmatsuit.nomadsuit": null, "pants": [ 1581896222 ], "hoodie": [ 1581890527, 1582492745 ] }, Each entry has a key (the item shortname in quotes) and a value. If the value is null, it means all possible skins for that item shortname are accepted. In the example above, we're allowing all rubbery one-pieces (value is null, so any skin) and we're also allowing pants with 1 possible skin or a hoodie with 2 possible skins to be treated as protective clothing. You will see that there's no comma after the last entry on the list. BEFORE SAVING, ALWAYS VALIDATE YOUR JSON WITH A TOOL LIKE JSON LINT!
Permission profiles
Using profiles you can quickly create/edit different permissions for different players, for example, if you have more than 1 VIP tier on your server - just add some new profiles. Different players can have different limits and permissions associated with using the Power Grid. To check which permission profile the player should fall under, the plugin goes through all permission profiles and checks whether the player has that permission granted. The permissions are checked in order, meaning that if the player doesn't have the first permission, it will try the next permission on the list, etc (similar to how Auto Kits checks which kit to give to a player based on their permissions in order). If the player doesn't have any permissions from the list granted, they will fall back to the "default" profile. That's the only one that you shouldn't remove! If you remove it, a new one with default values will be created. So if you don't want your default, non-VIP players to use the power grid, don't remove the default profile, just take away privileges in that profile (like upgrading/deploying ladders/pressing the button). You don't have to use the built-in VIP permissions - any REGISTERED permission from any plugin will do just fine! By default, three permission profiles are generate in the config: default, gridpower.admin and gridpower.vip1. The default permission profile will apply to any player who doesn't have any permissions listed in the profile list - let's have a look at it:
"PermissionProfiles": { "default": { "PermissionRequired": "default", "GridCanDeployLadder": true, "GridCanDeployRootCombiners": true, "GridCanConnectDisconnect": true, "GridCanPressButton": true, "GridCanUpgrade": true, "GridDangerousWireElectricutionChance": 0.1, "HangingXmasLights": false, "HangingWiresAndHoses": false, "SubdivisionsPreview": 10, "SubdivisionsFinal": 50, "SlackMax": 5.0 },
PermissionRequired should contain an already existing permission registered by any plugin in the form of pluginname.permissionname GridCanDeployLadder allows players to deploy ladders on Power Line Poles GridCanDeployRootCombiners allows players to deploy Root Combiners on Power Line Pole transformers by inserting them into the Fuse Box GridCanConnectDisconnect allows players to use a Wire Tool to connect their own electrical devices to the Grid GridCanPressButton allows players to access the Transformer GUI GridCanUpgrade allows the players to upgrade the Transformer peak output by inserting Tech Trash into the Fuse Box GridDangerousWireElectricutionChance defines how likely it is that a player will die from electrical accidents, even while wearing protective clothing HangingXmasLights allows the players more control over how much the Advanced Xmas Lights will be hanging (purely visual) HangingWiresAndHoses allows the players more control over how much the Wires/Hoses will be hanging (purely visual) SubdivisionsPreview is the number of intermediary points used while showing the hanging Xmas Lights preview catenary curve of the last placed segment. The more points, the smoother it looks. (purely visual) SubdivisionsFinal is it the number of intermediary points used for the final catenary curve of the hanging wires/hoses/xmas lights. The more points, the smoother it looks (purely visual) SlackMax sets the maximum "looseness" of the wire/hose/xmas lights that the player is allowed. The more the slack, the longer the wire appears overall.
API hooks (for plugin developers)
All methods utilise the [HookMethod] attribute, which means you don't call them through Interface.Call, you need to first create this field in your plugin's main class...
[PluginReference] private Plugin GridPower; Then, call the hooks like so. It's pretty self-explanatory what information they will provide you with.
bool isPowerConstant = (bool) GridPower.Call("GridPowerIsConstant"); bool isGridProducing = (bool) GridPower.Call("GridIsProducing"); float productionHourStart = (float) GridPower.Call("GridGetProductionHourStart"); float productionHourEnd = (float) GridPower.Call("GridGetProductionHourEnd"); float currentGridEfficiency = (float) GridPower.Call("GridGetEfficiency"); bool areStreetlightsAlwaysOn = (bool) GridPower.Call("StreetlightsPowerIsConstant"); bool areStreetlightsOn = (bool) GridPower.Call("StreetlightsAreOn"); float streetlightsHourStart = (float) GridPower.Call("StreetlightsGetTurnOnHour"); float streetlightsHourEnd = (float) GridPower.Call("StreetlightsGetTurnOffHour");
Translation support (oxide/lang/en/GridPower.json)
Almost every string the players see, including the text displaying in the chat and the GUI, can be edited. Just load the plugin and let it generate the file - after you edit it, reload the plugin.
-
Cooking
By imthenewguy in Plugins
This plugin extends the vanilla cooking system in rust by adding a number of ingredients and advanced recipes to the game.
The ingredients are obtained from any of the 30+ different sources, from ore nodes, to trees, to collectibles such as hemp and pumpkins.
These ingredients are used to create delicious meals that will provide the player with 1 of the 46 different buffs the plugin has to offer, or your own custom buffs should you wish to create your own using permissions from other plugins.
The plugin comes standard with 47 custom recipes and 11 custom ingredients included. It also utilizes a number of rusts existing items, such as pumpkins, corn and potatoes.
There are over 47 recipes that come with the default configuration.
Each recipe allows for any number of ingredients to be added (default is up to 4), and any number of the 46 buffs to be added to each meal.
Recipes can be easily added via the config. This allows server owners to get creative by creating their own custom meals and buffs.
The above video showcases how new recipes and ingredients can be easily added to your configuration.
The plugin comes with 11 unique custom ingredients, and also utilizes 16 of the default items in rust.
Ingredients can be easily added to the configuration (see the above video).
All non-default ingredients can be found from 37 different sources including cutting trees, mining nodes, collecting hemp etc.
Each sources drop rate can be customized to suit your server, and the sources for ingredients can be changed incredible easily by simply adjusting a number in the config file.
There are 37 unique sources that ingredients can be obtained from from cutting trees to collecting pumpkins.
The chances for each ingredient drop are based on the interaction with that source.
For example, picking a pumpkin offers 1 chance, as it is 1 interaction to pick a pumpking, while cutting a tree may be 10-20 chances (depending on the tool), as it takes a number of hits to fall a tree (this can be adjusted to be based on 1 chance per tree/node etc via the config).
When a roll is successful, it then rolls through each item type and selects the item based on that items "dropWeight", allowing you to make ingredients more or less common than others on the same drop table.
The Farmers Market is an in-built market that allows players to buy and sell ingredients for scrap, server rewards or economics.
By default, the markets stocks will start at 0, and will only increase as players sell their unwanted ingredients to it.
It can be configured to allow all items, or only custom items to be bought and sold through it, and also allows for a maximum stock to be set (default 100), meaing that it cannot have more than 100 of an item type.
The buy/sell values for each ingredient can be adjusted in the config file (default $10 buy, $5 sell).
Starting quantities can also be set if you do not want the market to start at 0.
The market can be accessed by typing in /market (if config is enabled) or by speaking to an NPC that can be spawned with the plugin (addmarketnpc).
Ingredient: A useful ingredient used to make more complex meals.
Woodcutting_Yield: Increases the amount of wood received by a percentage when cutting trees and logs.
Mining_Yield: Increases the amount of ore received by a percentage when mining any ore type.
Skinning_Yield: Increases the amount of animal products received by a percentage when skinning animals.
Heal_Share: Heals those around you for a percentage of the healing you receive.
Heal: Instantly heals you for a percentage of your maximum health.
Food_Share: Shares your food with nearby players, providing them with a percentage of the calories that you consume.
Metabolism_Overload: Increases your maximum calories and hydration capacity by a percentage.
Comfort: Provides an aura of comfort around you. Each nearby player will receive a percentage comfort.
Water_Breathing: Will allow you to breath underwater for the duration.
Fire_Resist: Reduces the damage taken from all sources of fire/heat by a percentage.
Cold_Resist: Reduces the damage taken from the cold by a percentage.
Explosion_Resist: Reduces the damage taken from explosives by a percentage.
Animal_Resist: Reduces the damage taken from animals by a percentage.
Melee_Resist: Reduces the damage taken from attacks made with a melee weapon by a percentage.
Wounded_Resist: If you would enter the wounded state while this buff is active, you will instead be brought to your feet. Any negative modifiers will be removed.
Spectre: You will become invisible to auto-turrets, flame turrets and shotgun traps for the duration.
Madness: This food will make you sound strange to others.
Wealth: Provides you with a percentage find scrap/economics/points when breaking barrels.
Barrel_Smasher: Provides you with a percentage chance to instantly break a barrel with any amount of damage.
Crafting_Refund: Provides you with a percentage chance to refund components when crafting an item.
Passive_Regen: Will passively regenerate a percentage health each second.
Horse_Stats: Will increase the speed any horse you ride by a percentage.
Fall_Damage_resist: Reduces damage taken from falling by a percentage.
Condition_Loss_Reduction: Reduces the condition loss of all worn and held items by a percentage.
Ingredient_Chance: Increases the chance to obtain cooking ingredients by a percentage.
Upgrade_Refund: Provides you with a percentage chance to receive a free upgrade when upgrading your building blocks.
Research_Refund: Provides you with a percentage chance to receive a scrap refund when using a research bench.
Role_Play: This item provides no buffs as it a Roleplay item.
Anti_Bradley_Radar: Makes you invisible to the Bradley APC.
Fishing_Luck: Provides you with a percentage chance to obtain a random item while fishing.
Farming_Yield: Increases the amount of resources collected by a percentage when harvesting player-grown plants.
Component_Luck: Provides a percentage chance to receive a random component when breaking barrels.
Electronics_Luck: Provides a percentage chance to receive a random electrical item when breaking barrels.
Permission: Used for firing off custom commands such as assigning and removing permissions.
Bleed_Resist: Reduces the damage taken from bleeding by a percentage.
Radiation_Resist: Reduces the damage taken from radiation by a percentage.
Max_Repair: Any item that is repaired while this buff is active, will have its maximum condition reset.
Smelt_On_Mine: Provides you with a percentage chance to receive refined resources instead of ores, when mining sulfur and metal nodes.
Loot_Pickup: Provides you with a percentage chance for all items to be moved directly into your inventory when breaking barrels.
Reviver: Sets a players health to a percentage when bringing them up from the wounded state.
Duplicator: Provides you with a percentage chance to duplicate an item when crafting.
Harvest: Increases the amount of resources collected by a percentage> when harvesting wild entities.
Ingredient_Storage: Stores ingredients.
Extra_Calories: Instantly provides you with a percentage of your maximum calories when consumed.
Extra_Hydration: Instantly provides you with a percentage of your maximum hydration when consumed.
Max_Health: Increases your maximum health by a percentage.
Fishing_Yield: Increases the amount of fish received by a percentage.
Damage_Over_Time: This perk will damage the consumer every second for the set value.
Mining_Hotspot: The player will always hit the hot spot while mining.
Woodcutting_Hotspot: The player will always hit the marker while chopping wood.
Dehydration: Removes hydration when applied.
Damage: Damages the consumer by the value.
Radiation: Gives the consumer radiation equal to the value.
Hunger: Removes calories when applied.
Default: Default Rust item
AnyTree: Chopping any tree
ArcticTree: Chopping arctic trees
DesertTree: Chopping palm trees
TemperateTree: Chopping temperate trees
TundraTree: Chopping tundra trees
Cactus: Chopping cacti
AnyNode: Mining any node
AnyArcticNode: Mining any arctic nodes
AnyDesertNode: Mining any desert nodes
AnyTemperateNode: Mining any temperate nodes
AnyTundraNode: Mining any tundra nodes
StoneNode: Mining stone nodes
MetalNode: Mining metal nodes
SulfurNode: Mining sulfur nodes
AnyAnimal: Skinning any animal
Deer: Skinning deer
Bear: Skinning bears
Wolf: Skinning wolves
Chicken: Skinning chickens
PolarBear: Skinning polar bears
Shark: Skinning sharks
Boar: Skinning boar
horse: Skinning horses
Fishing: Catching fish
Gut: Gutting fish
Pumpkin: Harvesting pumpkins
Potato: Harvesting potatos
Corn: Harvesting corn
Mushroom: Picking mushrooms
BerryBush: Picking berries
Hemp: Harvesting hemp
CollectableSulfur: Collectable sulfur nodes
CollectableStone: Collectable stone nodes
CollectableMetal: Collectable metal nodes
Crafted: Crafted
Foodbox: Food boxes
Excavated: Digging up metal detector sites
Command: cook or recipemenu
Action: Opens the recipe menu from anywhere.
Permission: cooking.recipemenu.chat
Command: market
Action: Opens the farmers market from anywhere.
Permission: cooking.market.cmd
Command: ibag
Action: Opens the ingredient bag from anywhere.
Permission: cooking.bag.cmd
Command: addmarketnpc
Action: Creates a farmers market NPC
Permission: cooking.admin
Command: removemarketnpc
Action: Removes the targeted farmers market NPC
Permission: cooking.admin
Command: clearingredientbags
Action: Clears the contents of ingredient bags for all players
Permission: cooking.admin
Command: giverecipe <recipe>
Action: Gives the command user the specified recipe card
Permission: cooking.admin
Command: givemeal <target> <meal> <amount>
Action: Gives the specified meal to the target player.
Permission: cooking.admin
Command: giveingredient <target> <ingredient> <amount>
Action: Gives the specified ingredient to the target player.
Permission: cooking.admin
Command: setmarketquantity <ingredient> <amount>
Action: Sets the available market quantity of the specified item.
Permission: cooking.admin
// Recipe menu chat command cooking.recipemenu.chat // Using the cooking menu cooking.use // Admin related cooking comands cooking.admin // Bypass cooking time cooking.instant // Bypass ingredient requirements cooking.free // Removes ability to gather ingredients cooking.nogather // Allows the ingredient bag to be opened via CMD cooking.bag.cmd // Disables drop notifications cooking.disable.notify.drop // Disables Notify notifications cooking.disable.notify.proc // Disables menu sounds cooking.disable.sound // Allows access to the farmers market via CMD cooking.market.cmd // Allows the user to speak to the market NPC cooking.market.npc // Allows the user to gather ingredients cooking.gather // Required to find recipe cards cooking.recipecards
Economics - Used for the farmers market and the Wealth buff type.
ServerRewards - Used for the market and the Wealth buff type.
SkillTree - Will provide xp when creating meals with the Cooking plugin.
bool CanGatherIngredient(BasePlayer player, uint source) Returning a non-null value will prevent players from receiving ingredients from certain drop sources. the source is the networked ID of the entity.
void OnMealCrafted(BasePlayer player, string meal, Dictionary<string, int> ingredients, bool isIngredient) Called after a meal has been created and given to the player.
bool IsCookingMeal(Item item) Useful if you want to see if an item is from the recipe menu.
bool IsHorseBuffed(RidableHorse horse) Used to prevent stacking modifiers if a horse is buffed by the Cooking plugin.
object OnAddRecipeCardToLootContainer(BasePlayer player, LootContainer container) Returning a non-null value will prevent recipe cards from being added to the container.
object OnIngredientBagDrop(BasePlayer player) Returning a non-null value will prevent the bag from dropping.
void OnMealConsumed(BasePlayer player, Item item, int duration) Triggered when a player successfully consumes a meal. No return types.
-
Admin Map
Admin Map is an innovative plugin for the game of Rust, designed to make server administration easier and improve the quality of the gaming experience. Focused on optimization and functionality, this plugin provides admins with the tools to effectively control players, minimizing the negative impact on the server and other participants.
Main features:
Interactive map with players: Admin Map provides server admins with a detailed and user-friendly map showing the positions of all players. This allows admins to easily monitor player activity and movements, and quickly detect suspicious activity. Large variety of different admin map layers:
- Marker,
- Text ,
- Sleeper,
- TC,
- Stash,
- Sleeping Bag Quick Commands on Players: The plugin allows admins to perform quick actions on players directly from the map. Send messages, punish or help players in real time, minimizing reaction time and increasing interaction efficiency. Minimal server load: One of the key features of Admin Map is its low server load. All processing takes place solely on the client side, which means that the plugin will not slow down the server or create additional delays for players. This makes it an ideal choice even for servers with high traffic. Ease of use: The plugin's intuitive user interface provides admins with easy access to functionality. Navigating the map, sending commands and monitoring players is done with minimal effort, making server administration easy. Customization: Admin Map provides admins with the option to customize the functionality to suit their needs. Scanning area, available commands, buttons, permissions and other options. Hardcore bypass: Admins will be able to access the map on servers with the hardcore game mode installed.
After permission is granted, it is necessary to rejoin the server Support in RUST+: You will be able to view players online on the map directly in your phone without going to the server! Admin Map is an innovative solution that combines convenience, functionality and optimization. It provides administrators with tools to effectively manage players without negatively impacting gameplay and other server participants. The Admin Map plugin is an essential asset for any Rust server administrator looking to create a comfortable and safe gaming environment.
Permissions:
adminmap.allow - for use adminmap and hardcore bypass adminmap.<button perm> - any permissions specified in the button settings adminmap.teleport2marker - teleportation by marker via CTRL+RMB adminmap.invis - hide player from the player map adminmap.rust+ - enable rust+ admin map adminmap.rust+.invis - hide from rust+ admin map (recommended in case of giving the map to players)
Commands:
/amap - show sidebar /amap off - disable everything and hide the sidebar
Color designations on the cupboards map:
Default Config:
{ "Auto show sidebar panel": true, "Open the admin menu instead of the action menu": false, "Text Map Settings": { "Font size": 8.0, "Use color generation for teams?": true, "Color for team": "ffaf4d", "Color for solo player": "9bd92f", "Color for sleeper": "404040" }, "Command Buttons": [ { "Permission (adminmap.<perm>)": "", "Label": "TP", "Command": "teleport {steamid}", "Color": "1 1 1 1" }, { "Permission (adminmap.<perm>)": "", "Label": "TP2ME", "Command": "teleport {steamid} {admin.steamid}", "Color": "1 1 1 1" }, { "Permission (adminmap.<perm>)": "", "Label": "INV", "Command": "/viewinv {username}", "Color": "1 1 1 1" }, { "Permission (adminmap.<perm>)": "", "Label": "SPECTATE", "Command": "spectate {steamid}", "Color": "1 1 1 1" }, { "Permission (adminmap.<perm>)": "", "Label": "KILL", "Command": "kill {steamid}", "Color": "0.9 0.1 0.25 1" }, { "Permission (adminmap.<perm>)": "", "Label": "KICK", "Command": "kick {steamid}", "Color": "0.9 0.1 0.25 1" }, { "Permission (adminmap.<perm>)": "", "Label": "SHOW\nTEAMMATES", "Command": "adminmap.cmd show_player_teammates {steamid}", "Color": "1 1 1 1" }, { "Permission (adminmap.<perm>)": "", "Label": "SHOW\nPRIVLIDGES", "Command": "adminmap.cmd show_player_privlidges {steamid}", "Color": "1 1 1 1" }, { "Permission (adminmap.<perm>)": "", "Label": "SHOW\nSLEEPING\nBAGS", "Command": "adminmap.cmd show_player_sleepingbags {steamid}", "Color": "1 1 1 1" }, { "Permission (adminmap.<perm>)": "", "Label": "SHOW\nSTASHES", "Command": "adminmap.cmd show_player_stashes {steamid}", "Color": "1 1 1 1" } ] }
Button Library:
Give item to player for AdminMenu by k1lly0u | Minimum required version 1.0.1 { "Permission (adminmap.<perm>)": "", "Label": "GIVE", "Command": "adminmenu.callback {steamid}.4;adminmenu.callback {steamid}.4", "Color": "1 1 1 1" } Permanent ban
{ "Permission (adminmap.<perm>)": "", "Label": "BAN", "Command": "ban {steamid}", "Color": "1 0 0 1" } View backpack (for Backpack Pro)
{ "Permission (adminmap.<perm>)": "", "Label": "Backpack", "Command": "/b {steamid}", "Color": "1 1 1 1" } View backpack (for Backpacks plugin from uMod)
{ "Permission (adminmap.<perm>)": "", "Label": "Backpack", "Command": "viewbackpack {steamid}", "Color": "1 1 1 1" } Spectate
{ "Permission (adminmap.<perm>)": "", "Label": "SPECTATE", "Command": "spectate {steamid}", "Color": "1 1 1 1" }
If you want to add buttons here, message me on my discord server
-
Custom Rewards
Introduction
CustomRewards is a turnkey solution to reward player engagement. This plugin allows you to give a player any type of reward based on conditions you'll be able to configure. Whether you're a server admin aiming to boost player engagement or a developer creating complex reward systems, CustomRewards is your go-to solution.
Main Features:
Diversity of Rewards: Set up a huge variety of rewards for your players, ranging from items to special permissions, including server command execution. Reward Templates: Create different reward models for various events or scenarios, providing maximum flexibility to meet your server's needs. Award Conditions: Ensure only eligible players receive certain rewards by setting conditions based on groups, permissions, and more.
Integration with Other Plugins:
CustomRewards isn't just a standalone, it can also be seamlessly integrated with other externals plugins such as VoteSystem or PlaytimeTracker :
Vote System : By using Custom Reward with VoteSystem, your players will be able to obtain rewards by voting. PlayTime Reward (free) : By using CustomRewards with PlaytimeTracker, your players will be able to obtain rewards based on their playtime. Interface Customization
Provide your players with an appealing visual experience with a fully customizable user interface, custom reward images, and colorful themes.
Expandability for Developers
For those looking to delve deeper, CustomRewards offers a robust API, allowing you to integrate your own point system or even other plugins !
Plugin's Future:
We always listen to the community! If you have a specific plugin you'd like to see integrated with CustomRewards, please let us know. Our goal is to make CustomRewards as versatile and useful as possible for all users.
Support :
I am very often available and will respond as quickly as possible to all your questions, here or on my Discord: https://discord.gg/JJnxFgP27G.
Full Documentation :
Feel free to check out the complete documentation here.
Commands (chat) :
- /CustomRewards_Give <type> <player name or id> <quantity> : available only for administrators or with permission CustomRewards.Admin
- The commands to show the UI need to be implemented in the configuration.
Permissions :
- CustomRewards.Admin : enable admin commands if not administrator
- CustomRewards.<Type>.Use : Permission linked to the type (rewards template), users without the permission will not be able to use the command to display the UI. Therefore, it's important to add the permission to your groups once the template is created!
How To use API :
private void Give_API(string rewardType, ulong playerId, int quantity) // Add quantity points for player (for referenced rewardType) private int Get_API(string rewardType, ulong playerId) // Get quantity points for player (for referenced rewardType)
CustomRewards Configuration Tutorial
Step 1: Initial Setup :
- Ensure the CustomRewards_rewards folder is present in Oxide/Data. If not, the plugin will attempt to create it automatically, but it's good to check.
- Ensure
- For each reward type you want to configure, create a .json file in the CustomRewards_rewards folder. For instance, for a reward type called "VIP", you might have a VIP.json file.
Step 2: Basic Configuration In your .json file:
- "Enabled": Set this value to true to activate this reward type.
- "Commands for show UI": List of commands that will display the user interface for this reward type. For example: ["rewards_vip", "vip_rewards"].
Step 3: User Interface Configuration Under "UI Settings":
- Configure the appearance and layout of the user interface with properties like "Max Reward By Page", "Window Rect", etc.
- Set the theme colors under "Theme" using properties like "Colors". Each color is defined by an RGBA value.
- Configure rarity colors under "Rarity Colors".
- To modify the window title or description (above the rewards), go through the lang files (Oxide/Lang/<lang>/CustomRewards_<type>).
Example Lang file : { "Messages": { "Title": "Rewards", "Description": "Every time you earn points, you can claim your rewards here." } }
Step 4: Reward Configuration Under "Rewards Settings":
- "Rewards List": Here, you'll define each individual reward for this type.
- "Rarity (Common - Rare - Epic - Legendary)": Set the reward's rarity.
- "Quantity": If the reward is an item, set the quantity here.
- "Item Shortname (optional)": If the reward is an item, set its short name here.
- "Custom image URL (optional)": For a custom image for the reward.
- "Server command (optional)": Commands to execute when this reward is claimed.
- "Grant Permissions ": Permissions to grant when this reward is claimed.
- "Grant Groups": Groups to grant when this reward is claimed.
- "Nedded Permissions": Permissions needed to claim this reward.
- "Nedded Group ": Groups needed to claim this reward.
Step 5: Plugin Extensions Under PluginExtensions, you can configure integration with other plugins:
- For PlaytimeTracker, use properties under "PlayTimeTracker" like "Count Afk Time?", "Added points", and "Add point every (in seconds)".
Step 6: Save and Reload After completing your configuration, save the .json file and reload the plugin on your server. Here's a sample configuration file to help you get started: