GangstaPichu's Wishlist
-
Stack Everything - Stack all entities and Farm stacking
Stack Everything - Stack all entities and Farm stacking, allows you to stack all entities, such as: Stack Chest, Barricade, Large Water Catcher, Small Water Catcher, Locker, Barbeque, Water Barrel, Storage Box, Wood Box, Storage Barrel, Composter, Furnace, Legacy Furnace , Electric Furnace, Hobo Barrel, Mixing Table, Cooking Workbench, Battery, Generator, Test Generator, Water Purifier, Chippy Arcade, Boom Box, Farming entities, etc...
Allows you to add new entities to stack, set stack size limits, and limit which entities can be stacked based on player permissions. Stack as many entities as you want with just one plugin!
Oxide/Carbon compatibility
PERMISSIONS:
To be able to stack entities, the player must have the permission:
stackeverything.use - Allows to use the plugin. In addition, 4 other permissions are created (Default, VIP1, VIP2, VIP3), each of which allows you to create different configurations to assign to the various players.
stackeverything.default - Assign configurations: Default. stackeverything.vip1 - Assign configurations: VIP1. stackeverything.vip2 - Assign configurations: VIP2. stackeverything.vip3 - Assign configurations: VIP3. These are the groups that are created by default, but you can add and/or edit groups as you wish.
For example, if you change the group vip1 to vip_elite, the permission stackeverything.vip_elite will be created
If you create a new group, for example vipvanilla, the permission stackeverything.vipvanilla will be created.
If you are part of a clan/team and there are 1 more members who have the VIP/ROLE, then all members of the clan/team will benefit.
You can enable this setting from the configuration file: "Share Group With Clan/Team members. Default FALSE": false": true
CONFIGURATION:
The settings and options can be configured in the StackEverything.json under the config directory. The use of an editor and validator is recommended to avoid formatting issues and syntax errors. { "Use Clan/Team": true, "Share Group With Clan/Team members. Default FALSE": false, "Skin Blacklist": [], "Role Permission": { "default": { "Priority. (lower = higher priority)": 100, "Maximum number of stackable entities": 2, "Exclude stacking of these entities": [], "Maximum stack number per entity": {} }, "vip1": { "Priority. (lower = higher priority)": 1, "Maximum number of stackable entities": 4, "Exclude stacking of these entities": [], "Maximum stack number per entity": {} }, "vip2": { "Priority (lower = higher priority)": 2, "Maximum number of stackable entities": 6, "Exclude stacking of these entities": [], "Maximum stack number per entity": {} }, "vip3": { "Priority. (lower = higher priority)": 3, "Maximum number of stackable entities": 10, "Exclude stacking of these entities": [], "Maximum stack number per entity": {} } }, "Stackable Items": [ { "Display Name": "Concrete Barricade", "Item Name": "barricade.concrete", "Item Id": -1950721390, "Enable Stacking": true, "Prefab Name": "assets/prefabs/deployable/barricades/barricade.concrete.prefab", "Radius Check": 0.1, "Collider Height": 1.5, "YOffset": 1.24, "Effect Name": "assets/prefabs/deployable/barricades/effects/barricade-concrete-deploy.prefab" }, { "Display Name": "Stone Barricade", "Item Name": "barricade.stone", "Item Id": 15388698, "Enable Stacking": true, "Prefab Name": "assets/prefabs/deployable/barricades/barricade.stone.prefab", "Radius Check": 0.1, "Collider Height": 1.4, "YOffset": 1.24, "Effect Name": "assets/prefabs/deployable/barricades/effects/barricade-stone-deploy.prefab" }, { "Display Name": "Sandbag Barricade", "Item Name": "barricade.sandbags", "Item Id": -559599960, "Enable Stacking": true, "Prefab Name": "assets/prefabs/deployable/barricades/barricade.sandbags.prefab", "Radius Check": 0.1, "Collider Height": 1.4, "YOffset": 1.18, "Effect Name": "assets/prefabs/deployable/barricades/effects/barricade-sandbags-deploy.prefab" }, { "Display Name": "Large Water Catcher", "Item Name": "water.catcher.large", "Item Id": -1100168350, "Enable Stacking": true, "Prefab Name": "assets/prefabs/deployable/water catcher/water_catcher_large.prefab", "Radius Check": 0.1, "Collider Height": 4.168319, "YOffset": 4.1, "Effect Name": "assets/prefabs/deployable/water catcher/effects/water-catcher-large-deploy.prefab" }, { "Display Name": "Small Water Catcher", "Item Name": "water.catcher.small", "Item Id": -132247350, "Enable Stacking": true, "Prefab Name": "assets/prefabs/deployable/water catcher/water_catcher_small.prefab", "Radius Check": 0.1, "Collider Height": 2.67044, "YOffset": 2.5, "Effect Name": "assets/prefabs/deployable/water catcher/effects/water-catcher-deploy.prefab" }, { "Display Name": "Locker", "Item Name": "locker", "Item Id": -110921842, "Enable Stacking": true, "Prefab Name": "assets/prefabs/deployable/locker/locker.deployed.prefab", "Radius Check": 0.1, "Collider Height": 2.3, "YOffset": 2.238, "Effect Name": "assets/prefabs/deployable/locker/effects/locker-deploy.prefab" }, { "Display Name": "Barbeque", "Item Name": "bbq", "Item Id": 1099314009, "Enable Stacking": true, "Prefab Name": "assets/prefabs/deployable/bbq/bbq.deployed.prefab", "Radius Check": 0.1, "Collider Height": 1.2, "YOffset": 0.84, "Effect Name": "assets/prefabs/deployable/bbq/effects/barbeque-deploy.prefab" }, { "Display Name": "Water Barrel", "Item Name": "water.barrel", "Item Id": -1863559151, "Enable Stacking": true, "Prefab Name": "assets/prefabs/deployable/liquidbarrel/waterbarrel.prefab", "Radius Check": 0.1, "Collider Height": 2.67044, "YOffset": 1.594, "Effect Name": "assets/prefabs/deployable/liquidbarrel/effects/liquid-barrel-deploy.prefab" }, { "Display Name": "Wood Storage Box", "Item Name": "box.wooden", "Item Id": -180129657, "Enable Stacking": true, "Prefab Name": "assets/prefabs/deployable/woodenbox/woodbox_deployed.prefab", "Radius Check": 0.1, "Collider Height": 0.5552952, "YOffset": 0.5552952, "Effect Name": "assets/prefabs/deployable/woodenbox/effects/wooden-box-deploy.prefab" }, { "Display Name": "Large Wood Box", "Item Name": "box.wooden.large", "Item Id": 833533164, "Enable Stacking": true, "Prefab Name": "assets/prefabs/deployable/large wood storage/box.wooden.large.prefab", "Radius Check": 0.1, "Collider Height": 0.790511, "YOffset": 0.76, "Effect Name": "assets/prefabs/deployable/large wood storage/effects/large-wood-box-deploy.prefab" }, { "Display Name": "Storage Barrel Horizontal", "Item Name": "storage_barrel_c", "Item Id": -1421257350, "Enable Stacking": true, "Prefab Name": "assets/prefabs/misc/decor_dlc/storagebarrel/storage_barrel_c.prefab", "Radius Check": 0.1, "Collider Height": 0.94, "YOffset": 0.94, "Effect Name": "assets/prefabs/misc/decor_dlc/storagebarrel/effects/storage-barrel-deploy.prefab" }, { "Display Name": "Storage Barrel Vertical", "Item Name": "storage_barrel_b", "Item Id": 1307626005, "Enable Stacking": true, "Prefab Name": "assets/prefabs/misc/decor_dlc/storagebarrel/storage_barrel_b.prefab", "Radius Check": 0.1, "Collider Height": 1.3, "YOffset": 1.3, "Effect Name": "assets/prefabs/misc/decor_dlc/storagebarrel/effects/storage-barrel-deploy.prefab" }, { "Display Name": "Fridge", "Item Name": "fridge", "Item Id": 1413014235, "Enable Stacking": true, "Prefab Name": "assets/prefabs/deployable/fridge/fridge.deployed.prefab", "Radius Check": 0.1, "Collider Height": 2.0, "YOffset": 2.0, "Effect Name": "assets/prefabs/deployable/fridge/effects/fridge-deploy.prefab" }, { "Display Name": "Salvaged Shelves", "Item Name": "shelves", "Item Id": 1950721418, "Enable Stacking": true, "Prefab Name": "assets/prefabs/deployable/shelves/shelves.prefab", "Radius Check": 0.1, "Collider Height": 2.8, "YOffset": 2.8, "Effect Name": "assets/prefabs/deployable/shelves/effects/shelves-deploy.prefab" }, { "Display Name": "Stone Fireplace", "Item Name": "fireplace.stone", "Item Id": -1535621066, "Enable Stacking": true, "Prefab Name": "assets/prefabs/deployable/fireplace/fireplace.deployed.prefab", "Radius Check": 0.1, "Collider Height": 2.9, "YOffset": 2.9, "Effect Name": "assets/prefabs/deployable/campfire/effects/campfire-deploy.prefab" }, { "Display Name": "Composter", "Item Name": "composter", "Item Id": -1488398114, "Enable Stacking": true, "Prefab Name": "assets/prefabs/deployable/composter/composter.prefab", "Radius Check": 0.1, "Collider Height": 1.64, "YOffset": 1.54, "Effect Name": "assets/prefabs/deployable/furnace/effects/furnace-deploy.prefab" }, { "Display Name": "Furnace", "Item Name": "furnace", "Item Id": -1999722522, "Enable Stacking": true, "Prefab Name": "assets/prefabs/deployable/furnace/furnace.prefab", "Radius Check": 0.1, "Collider Height": 1.6, "YOffset": 1.44, "Effect Name": "assets/prefabs/deployable/furnace/effects/furnace-deploy.prefab" }, { "Display Name": "Legacy Furnace", "Item Name": "legacyfurnace", "Item Id": -1310391395, "Enable Stacking": true, "Prefab Name": "assets/prefabs/deployable/legacyfurnace/legacy_furnace.prefab", "Radius Check": 0.1, "Collider Height": 1.6, "YOffset": 1.44, "Effect Name": "assets/prefabs/deployable/furnace/effects/furnace-deploy.prefab" }, { "Display Name": "Electric Furnace", "Item Name": "electric.furnace", "Item Id": -1196547867, "Enable Stacking": true, "Prefab Name": "assets/prefabs/deployable/playerioents/electricfurnace/electricfurnace.deployed.prefab", "Radius Check": 0.1, "Collider Height": 1.2, "YOffset": 1.15, "Effect Name": "assets/prefabs/deployable/playerioents/electricfurnace/effects/electric-furnace-deploy.prefab" }, { "Display Name": "Cursed Cauldron", "Item Name": "cursedcauldron", "Item Id": 1242522330, "Enable Stacking": true, "Prefab Name": "assets/prefabs/misc/halloween/cursed_cauldron/cursedcauldron.deployed.prefab", "Radius Check": 0.1, "Collider Height": 1.1, "YOffset": 0.95, "Effect Name": "assets/prefabs/deployable/campfire/effects/campfire-deploy.prefab" }, { "Display Name": "Hobo Barrel", "Item Name": "hobobarrel", "Item Id": -1442559428, "Enable Stacking": true, "Prefab Name": "assets/prefabs/misc/twitch/hobobarrel/hobobarrel.deployed.prefab", "Radius Check": 0.1, "Collider Height": 1.2, "YOffset": 1.13, "Effect Name": "assets/prefabs/deployable/campfire/effects/campfire-deploy.prefab" }, { "Display Name": "Mixing Table", "Item Name": "mixingtable", "Item Id": 1259919256, "Enable Stacking": true, "Prefab Name": "assets/prefabs/deployable/mixingtable/mixingtable.deployed.prefab", "Radius Check": 0.1, "Collider Height": 1.64, "YOffset": 0.9, "Effect Name": "assets/prefabs/deployable/mixingtable/effects/mixing-table-deploy.prefab" }, ............................................................ ], "VersionNumber": { "Major": 1, "Minor": 1, "Patch": 5 } }
Use Clan/Team: If set to TRUE and the player is part of the clan/team, he can stack entities on entities owned by his teammates. Default: TRUE Share Group With Clan/Team members: If set to TRUE, the group assigned to a player is shared with all members of the clan/team. The group with the lowest priority is shared, then all members of the clan/team will benefit. Default FALSE Skin Blacklist: Here you can enter skins that are prohibited. When an entity is stacked, if it has one of these skins, the skin will be removed.
Configuration example:
"Skin Blacklist": [ 0123456789, 9876543210 ]
Role Permission: Here you can set the configurations for the various roles: Priority. (lower = higher priority) -- Each group has its own property, the lower this number is, the more important the group is. This is useful in the case where a player has more roles assigned. In this case, the group with the lowest priority will be assigned, the most important group. Negative numbers are also allowed.
Maximum number of stackable entities: Maximum number of entities that can be stacked. Number of entities that can be placed on top of each other in the stack. Exclude stacking of these entities: Entities that cannot be stacked even if they have been enabled in the configuration file. Here you must enter the PrefabName that you can find in the configuration file in the section: Stackable Items.
Configuration example:
"Exclude stacking of these entities": [ "assets/prefabs/deployable/bbq/bbq.deployed.prefab", "assets/prefabs/misc/decor_dlc/storagebarrel/storage_barrel_c.prefab" ]
Maximum stack number per entity: Here you can configure the maximum stack size for the single entity bypassing the base limit: Maximum number of stackable entities Also if an entity is disabled in the configuration file, if it is entered here, the entity will now be enabled for the players that are part of this configuration.
Configuration example:
"Maximum stack number per entity": { "assets/prefabs/deployable/woodenbox/woodbox_deployed.prefab": 4, "assets/prefabs/misc/decor_dlc/storagebarrel/storage_barrel_c.prefab": 3, "assets/prefabs/deployable/composter/composter.prefab": 4, "assets/prefabs/deployable/furnace/furnace.prefab": 6 }
Stackable Items: Here all the entities that can be stacked are defined. You can add new ones manually or open a support request to request a new entity to be added to the plugin. Enable Stacking: If set to TRUE, the entity can be stacked, otherwise not. If the entity is not enabled, you can always bypass the block by configuring: Maximum stack number per entity LOCALIZATION
The plugin, therefore the automatic messages and statistics, are translated into the following languages:
English Italian Spanish Russian Translation files are located in the /oxide/lang folder, here is an example of a /oxide/lang/en/StackEverything.json translation file.
You can add translations for other languages by adding them to the folder: /oxide/lang
AVAILABLE ENTITIES:
Concrete Barricade, Stone Barricade, Sandbag Barricade, Large Water Catcher, Small Water Catcher, Locker, Barbeque, Water Barrel, Wood Storage Box, Large Wood Box, Medieval Large Wood Box, Storage Barrel Horizontal, Storage Barrel Vertical, Bamboo Barrel, Wicker Barrel, Fridge, Salvaged Shelves, Bamboo Salvaged Shelves, Stone Fireplace, Composter, Furnace, Legacy Furnace, Small Oil Refinery (Available in the next plugin update), Electric Furnace, Cursed Cauldron, Hobo Barrel, Mixing Table, Cooking Workbench, Test Generator, Large Rechargeable Battery, Medium Rechargeable Battery, Small Rechargeable Battery, Large Solar Panel, Small Generator, Powered Water Purifier, RF Broadcaster, RF Receiver, Chippy Arcade Game, Strobe Light, Laser Light, Snow Machine, Fogger-3000, Audio Alarm, Spooky Speaker, Boom Box, Pookie Bear, Large Planter Box, Small Planter Box, Triangle Planter Box, Rail Road Planter, Triangle Rail Road Planter, Minecart Planter, Bath Tub Planter, Single Plant Pot, Beehive.
NEW ENTITIES:
New entities will be added with future releases.
If you want to request the addition of a specific entity, feel free to open a support request and it will be added to the plugin.
ENTITY IMAGE PREVIEW:
Concrete Barricade Stone Barricade Sandbag Barricade Large Water Catcher Small Water Catcher Locker Barbeque Water Barrel Wood Storage Box Large Wood Box Storage Barrel Horizontal Storage Barrel Vertical Bamboo Barrel Wicker Barrel Bamboo Salvaged Shelves Cooking Workbench Fridge Salvaged Shelves Stone Fireplace Composter Furnace Legacy Furnace Small Oil Refinery (Available in the next plugin update) Electric Furnace Cursed Cauldron Hobo Barrel Mixing Table Test Generator Large Rechargeable Battery Medium Rechargeable Battery Small Rechargeable Battery Large Solar Panel Small Generator Powered Water Purifier RF Broadcaster RF Receiver Chippy Arcade Game Strobe Light Laser Light Snow Machine Fogger-3000 Audio Alarm Spooky Speaker Boom Box Pookie Bear Medieval Large Wood Box Large Planter Box Small Planter Box Triangle Planter Box Rail Road Planter Triangle Rail Road Planter Minecart Planter Bath Tub Planter Single Plant Pot Beehive Propane Explosive Bomb Firebomb
- #stack everything
- #stack entity
-
(and 44 more)
Tagged with:
- #stack everything
- #stack entity
- #stack box
- #stack container
- #stack storage box
- #stack storage barrel
- #stack furnace
- #stack barricade
- #stack water catcher
- #stack locker
- #stack barbeque
- #stack barrel
- #stack composter
- #stack legacy furnace
- #stack electric furnace
- #stack cauldron
- #stack hobo barrel
- #stack mixing table
- #stack battery
- #stack solar panel
- #stack generator
- #stack test generator
- #stack water purifier
- #stack chippy arcade
- #stack boom box
- #stack light
- #stack chest
- #pookie bear
- #medieval
- #medieval large wood box
- #stack farm
- #stack farming
- #farm
- #farming
- #stack large planter box
- #stack small planter box
- #stack triangle planter box
- #stack rail road planter
- #stack triangle rail road planter
- #stack minecart planter
- #stack bath tub planter
- #stack single plant pot
- #stack beehive
- #propane explosive bomb
- #firebomb
- #cooking workbench
-
Discord Admin Panel
By AimonMurasaki in Plugins
This plugin adds extra useful commands usable in a specific discord channel with a specific discord role,
that gives access to an admin panel to do specific commands on players inside the server.
Features :
Gives access to a players list with a search interaction embedded in the buttons
Gives a list of certain commands that you can use on each player (Kick, Ban, Mute, Unban, Unmute)
Configurable to add each command's reason of command (If you're kicking a player you can put Toxicity or Warning as a reason for it)
With each command that allows timed punishments like ban and mute, you are given access to 5 durations depending on the command.
Adds a /auth command to DiscordCore that redirects to /dc join.
Gives access to a search command in-game that shows different information about players.
Optional :
Gives access to a deauth admin command to unlink players from discord.
Gives access to a link admin command to link players using their steamid and discordid.
Gives access to buttons like Economics and Timed Permissions (configurable)
Gives access to customizable buttons for commands on players (configurable)
Permissions:
DiscordAdminPanel.emberban allows player to use the /ember.ban command (Only functional with Ignore Ember set to false and Ember loaded)
DiscordAdminPanel.emberunban allows player to use the /ember.ban command (Only functional with Ignore Ember set to false and Ember loaded)
DiscordAdminPanel.auth allows player to use the /auth command
DiscordAdminPanel.deauth allows admins to use the /deauth command to unlink players (Only functional with changing certain settings in DiscordCore or using DiscordAuth)
DiscordAdminPanel.link allows admins to use the /link command to link players (Only functional with changing certain settings in DiscordCore or using DiscordAuth)
DiscordAdminPanel.search allows admins to search for players details (SteamID and DiscordID)
In-Game Commands:
/search <steamID/DiscordID> : Searches for player details like SteamID, DiscordID, and his discord name.
/auth : uses "/dc join" command from DiscordCore (Only usable if DiscordCore is loaded)
/deauth <steamID/DiscordID> : Unlinks a player from discord (Only functional with changing certain settings in DiscordCore or using DiscordAuth)
/link <steamID> <DiscordID> : Links a player with discord using their steamID and DiscordID (Only functional with changing certain settings in DiscordCore or using DiscordAuth)
Discord Commands:
/dap players : Shows a list of online players on the server
/search <steamID/SteamName/DiscordID> : Gives an extended search on players details
!deauth <steamID/DiscordID> : Unlinks a player from discord (Only functional with changing certain settings in DiscordCore or using DiscordAuth)
!link <steamID> <DiscordID> : Links a player with discord using their steamID and DiscordID (Only functional with changing certain settings in DiscordCore or using DiscordAuth)
Discord Interactions:
When using !players, a list of online players will show up as interaction buttons.
Once you use one of the buttons, an extensive search will show up and will give you more interaction buttons to use different commands on the searched player.
Kick Command shows reasons after clicking on it :
Similarly Ban Command and Mute Command shows periods then reason : (Reasons are configurable)
Timed Permissions shows the roles then the period of time: (Both configurable)
Economics shows the available commands then the amount : (amount is configurable)
Configuration :
{ "LogFileName": "DiscordAdminPanel", "Bot token": "BOTTOKEN", "Ignore Roles": false, "Discord Channel ID where the command can be used": [ "1234567891234567890" ], "Embed's color": "#ff0000", "Show Clan Tag (Make sure clans is loaded)": false, "Show Oxide Groups": false, "Show Server Armour Profile (search)": false, "Show Team Info (search)": false, "Show Last Names (search) (PlayerInformations plugin required)": false, "Timed Permissions": { "Use Timed Permissions (true/false)": false, "Oxide Groups to give": [ "VIP", "Admin" ], "Time to give (Use 'd' for days, 'h' for hours, 'm' for minutes, 'wipe' for using wipe period)": [ "24h", "7d", "30d", "Wipe" ], "Discord Role ID (Can be left empty to use the first role id)": [] }, "Economics": { "Use Economics (true/false)": false, "Economy Amount (Use '.' for decimal)": [ "1500.5", "3000.3" ], "Discord Role ID (Can be left empty to use the first role id)": [] }, "Ban": { "Time to give (Use 'd' for days, 'h' for hours, 'm' for minutes, 'wipe' for using wipe period)": [ "24h", "7d", "30d", "Wipe" ], "Ban Reasons (One Word)": [ "Cheat", "Script", "OverToxicity", "Abuse" ], "Ignore Ember": true, "Ember Global (Only usable if ember is loaded)": false, "Discord Role ID (Can be left empty to use the first role id)": [] }, "Mute": { "Time to give (Use 'd' for days,'h' for hours, 'm' for minutes, 'wipe' for using wipe period)": [ "1h", "24h", "30d", "Wipe" ], "Mute Reasons (One Word)": [ "Toxicity", "Racism" ], "Discord Role ID (Can be left empty to use the first role id)": [] }, "Kick": { "Kick Reasons (One Word)": [ "Toxicity", "Warning" ], "Discord Role ID (Can be left empty to use the first role id)": [] }, "Custom": { "Use Custom (true/false)": false, "Use Confirmation (true/false)": false, "Custom Commands (Use '{player}' for player id, 'command name' 'command to send on console')": { "dogdoo": "dog {player}", "pacifism": "pf {player}" }, "Discord Role ID (Can be left empty to use the first role id)": [] }, "Link Commands": [ "link" ], "Auth Commands": [ "auth", "authenticate" ], "Deauth Commands": [ "dapdeauth", "deauthenticate" ], "Search Commands": [ "search", "look" ], "logs": { "Log to console (true/false)": true, "Log to discord (true/false)": false, "Log Data Type (Embed/Simple)": "Embed", "Discord Extension Log Level (Verbose/Debug/Info/Warning/Error/Exception/Off)": "Info", "Delete message after command": true, "Delete message after interaction": true, "Log Discord Channel ID": "" }, "Discord Guild ID (optional if the bot is in one guild)": "", "Discord Role ID": [ "1234567891234567890" ] } How to install :
If you're using DiscordAuth as your link plugin, you can simply copy the plugin and use it as is.
If you're using DiscordCore as your link plugin, and you want to use /link and /deauth commands, Follow these steps:
1- Open DiscordCore in Notepad
2- Search and replace :
public void HandleLeave(IPlayer player, DiscordUser user, bool backup, bool message)
with
private void HandleLeave(IPlayer player, DiscordUser user, bool backup, bool message)
3- Search and replace :
public void CompletedLink(LinkActivation activation)
with
private void CompletedLink(LinkActivation activation)
4- Search and replace :
MJSU
with
Aimon
5- Save the file
You can also load the plugin without any link plugin.
Configure :
Set Bot Token, ChannelID and RoleID in config.
Reload Plugin.
To Do List :
Add logs to plugin.
Add customizable commands in config.
Add support for TimedPermissions.
Add support for Economics.
Make some infos in search command optional.
You can suggest new functionalities or plugin ideas on discord : Aimon#9899 .
-
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.
-
Motorbike Racing
By imthenewguy in Plugins
Motorbike racing is a plugin that allows you to build and host motorbike race tracks in-game.
The plugin is integrated with a track building system that gives you full control over where and how you build your race tracks.
Players can compete for prizes for winning, or compete for the fastest lap times on a map for bragging rights.
Races are associated with the .map file name that they were built on, and will automatically load when a map with the same name is loaded.
I would like to extend a special thanks to @monsterqueen for the idea and supplying the prefab. You can test out the plugin and prefab on her server: us.themonsterden.net.
Features
Map building system that is easy to use and powerful. Global scoreboard to track the amount of wins for each race track, as well as the fastest times. Seamless enrollment into the event - players will be teleported to the race when it begins, and their items will be stored safely until it's completion (or they leave). Start to finish race handling - the plugin will restrict the contestants to the configured value or the number of motorbike spawns (whatever is lower), and will handle the race, scoring and prizes. Customizable prizes based on placement - you can set customizable prices (including economics, server rewards and items), based on the position that the player finished. EventHelper support - the plugin will work with EventHelper's auto start and event vote features.
Permissions
motorbikeracing.admin - allows for the user of the buildmap command and the manual starting of races
Chat commands
buildmap <race name> - Starts the map building process. Avoid using the dash (-) symbol in the map name. buildclearspawns - removes all spawns from a map while in building mode. savemap - Only usable during the map builder. It saves the map file you are working on. startrace <race name> - Manually starts the desired race. Run the command with no parameters to see valid races for the current map. endrace <race name> - Ends the selected race. If there is only 1 race active, you don't need to use the race name parameter. rscore - Opens up the hi scores. joinrace <race name> - Joins the desired race. leaverace - Leaves the active race. racerestoreitems - restores the players items if they weren't restored automatically (ie they died somehow). raceprize - redeems any prizes that the player is owed.
Video and pictures were taken using this prefab:
-
Custom Modules
Let your players use cars in a new way! The plugin will allow cars to float, driving underwater, use jet propulsion and become a mobile turret. You can configure any number of different modules. They can combine many functions, for example, a turret can be installed on a floating or underwater module. Modules are custom items that can be added to kits or loot tables of crates, sold in a server store, or may randomly appear on modular cars.
Types of modules
Buoyancy module. Adds a buoyancy point to the car. The modules should be placed symmetrically or in the center of the machine in order to allow it to float well. For this module, the buoyancy force, the turning speed and the speed of movement on the water can be configured.
Turret module. The module works only if there is a driver in the cabin. It can contain any number of turrets. If the car is closed, then other players will not be able to authorize in its turrets.
Jet module When the shift button is pressed, the car accelerates with the help of jet propulsion. For each module of this type, the thrust force and additional fuel consumption can be configured. Any number of fire rocket launchers can be placed on the module.
Remote control module A camera is installed in this module, for which you can change the frequency. Knowing the frequency, you can connect to the car using a computer station and control it.
Underwater module Allows the car to move underwater.
Chat commands (For administrators!)
/givemodule <Custom item shortname> – give the item to yourself. /customcarspawnpoint – adds a custom spawn point of a random custom car to the monument or to the map if the point is outside the monument /customcarspawnpoint <Custom car preset name> – adds a custom spawn point of <Custom car preset name> to the monument or to the map if the point is outside the monument
Console commands (RCON)
givemodule <userId> <Custom item shortname> <amount> – give the item to player.
Config
en – example of plugin configuration in English ru – example of plugin configuration in Russian- #adem
- #autoturret
- (and 18 more)