GangstaPichu's Wishlist
-
Server Wipe System
🔥🔥🔥 SAVE 13% WHEN BUYING THE BUNDLE
📣 NOW SUPPORTING PROCGEN AND CUSTOM URL BASED MAPS !
This plugin will allow you to setup automatic server wipes without requiring external scripts.
This plugin is very useful for any server owner but I'm positive that it will be really useful for those hosting providers running panel based game instances where you do not have full access to customize the server or the provided wipe tool is very limited. You should have a look at the suggested plugins for Oxidation's Scheduler which is a perfect fit for a fully in-game automatic wipe process.
The plugin also allows you to set a list of seeds that will be used at server wipe to select the new map seed.
You can define as many different wipe types as you'd like on the config file like so:
This example is for a "forced" wipe. In order to execute the wipe type on the rcon console "wipe forced".
"Forced": { "Restart": 120, "Message": "A server wipe is being executed, we'll be back shortly", "Game": { "Blueprints": true, "Logs": true, "Map": true, "PlayerDeaths": true, "PlayerIdentities": true, "PlayerStates": true, "PlayerTokens": true }, "Plugins": { "Convalence": true, "Data": true, "Groups": true, "Language": true, "Logs": true, "Users": true }, "Files": [ "my/custom/path/this_file_will_be_deleted.json" ], "Blacklist": [ "carbon/data/this_file_will_never_be_deleted.json" ] } This example is for a "weekly" wipe. In order to execute the wipe type on the rcon console "wipe weekly".
"Weekly": { "Restart": 120, "Message": "A server wipe is being executed, we'll be back shortly", "Game": { "Blueprints": false, "Logs": true, "Map": true, "PlayerDeaths": true, "PlayerIdentities": false, "PlayerStates": true, "PlayerTokens": false }, "Plugins": { "Convalence": false, "Data": true, "Groups": false, "Language": true, "Logs": true, "Users": false }, "Files": [ "my/custom/path/this_file_will_be_deleted.json" ], "Blacklist": [ "carbon/data/this_file_will_never_be_deleted.json" ] }
This is a standalone Harmony patch, Oxide installation is optional.
Copy the Oxidation.Wiper.X.dll file into your HarmonyMods folder and restart your server.
At the first server start after installing the patch a new configuration file Oxidation.Wiper.json will be created at the HarmonyMods folder.
What is Harmony ?
Harmony is a library for patching .NET code during runtime, it directly manipulates game code (CIL) without any additional abstraction layer such as Oxide. The direct patching of the game's byte code allows more performant modding as developers no longer need to rely on third party code, events or hooks to build custom functionality.
-
GridTP
By Steenamaroo in Plugins
Grid based teleportation plugin with daily limits, cooldowns, and permissions.
Also has useful admin features.
Note - GridTP is accurate right to the lines in both axis.
Permissions.
gridtp.admin gridtp.clickmap gridtp.precisemap gridtp.tomiddle gridtp.tocorner gridtp.whereis gridtp.back gridtp.toplayer gridtp.vip (for VIP cooldowns and daily limits) With 'precise' perm, players can TP to the precise spot they clicked on the map, or the nearest safe spot.
With 'middle' or 'corner' perms, players can use map right-click or chat commands to TP to a safe spot in the middle of the grid, or the top left corner of the grid.
Config.
Hour at which daily limits reset : 22 Log details of successful Tps : false Disable map use for regular players : true Disable map use for everybody : true Prevent TP into building-blocked : true* Prevent TP from within building-blocked : true* Prevent TP into monuments : true* Prevent TP from within monuments : true* Prevent TP from whilst swimming : true* Disable TP whilst mounted : true* Maintain admin height when TPing in noclip : true Player should be sleeping after TP : true* Custom Chat Command : "gridtp"
Config also includes daily limits, (0 means disabled) and cooldown times for precise/middle/corner TPs
Notes.
Holders of admin permission are not subject to the options marked '*'
Map right-click takes 'admins' precisely where they clicked when in noclip,
and to the closest safe spot when not in noclip, regardless of other perms.
Data.
If logging is enabled, the data file stores steamID, username, time and TP type for each successful TP.
Data file also stores a date for reference when resetting daily limits.
Manual editing of the data file is never required.
Chat Commands.
/gridtp <letters> <numbers> - Attempt to TP to the specified grid.
/gridtp back - Attempt to TP back to previous location (one use per TP)
Admin or back permission required.
/gridtp limits - Display your remaining daily Tps.
/gridtp whereis <playername> - Displays player grid coordinates.
Admin or whereis permission required.
/nomap - Toggles right click map to TP.
Admin perm only.
/gridtp wipelogs - Wipes all data file TP logs.
/gridtp toplayer <playername> - Tps close to specified player.
/gridtp reveal <playername> - Publishes player grid coordinates to the server.
/gridtp trackpublic <playername> - Toggles publishing player grid to the server every time it changes.
/gridtp trackprivate <playername> - Toggles displaying player grid to you every time it changes.
- #admin tool
- #teleport
-
(and 5 more)
Tagged with:
-
XStatistics
XStatistics - statistics for your server.
- Optimization of the interface for different monitor resolutions.
- Storing player data in - oxide/data/XDataSystem/XStatistics or MySQL or SQLite.
- There is a lang ru/en/uk/es.
- Sound effects when interacting with the menu.
- UI settings in the configuration.
- Display TOPs in game chat.
- Ability to customize the privacy of the default statistics.
- Ability to delete a player's stats after they have been banned.
- Ability to customize grades of building blocks. [ To be recorded in statistics. ]
- Ability to add a player to the blacklist. [ Player's statistics will not be displayed in the TOPs and will not be available to other players. ]
- Ability to use MySQL or SQLite database.
- Ability to automatically give awards and clear data after a WIPE. [ Settings in the configuration. ]
[ Plugin economics or any other. Also [ RU ] GameStores. ]
- A player can hide/open his statistics. [ Need permission. ]
- A player can view the statistics of other players. [ Need permission. ]
- A player can reset their statistics to zero. [ Need permission. ]
- The player can view the entire list of players and search. [ Need permission. ]
- Creating an unlimited number of categories, subcategories and pages.
- Creating custom TOPs, coefficients and awards. [ Unlimited number. ]
- Various admin commands to manage player statistics.
- Support and compatibility with many plugins.
- Server events (Bradley, Chinook, and Patrol Helicopter) count as stats for the player who did the most damage.
- Checking OwnerID of Building blocks, Constructions and other entities.
- Ability to create a Global TOP of your project. [ For this purpose it is enough to enter MySQL data and server name into the configuration.]
[ This TOP can be disabled in the configuration and only the TOP players of the server can be used. Or you can use two TOPs at the same time! ]
- Ability to use pages for categories with subcategories.
- Administrator Mode. [ View hidden player stats, open player search and more ].
- Automatic deletion of statistics of players who have not logged connection the server for N days.
- Ability for players to disable messages with the TOP players in chat.
If your server is visited by more than 500 players, it is recommended to use SQLite or MySQL.
Statistics were tested on a server with 120 online and 5000 players in the database. Excellent result on optimization.
To display player avatars you need to customize the configuration of the ImageLibrary plugin!
What are the statistics at this point?
Global TOP data is manually deleted from the MySQL database. [ It is important that the servers are turned off so that online players data is not written to the database ].
Or after all servers are wiped, run the command - player_stats_reset globaldata null - on one of the servers.
[ Also take into account the servers parameters, for a fair TOP they should be the same! ]
Shortnames to customize statistics
Permissions
xstatistics.use - access to the statistics menu. xstatistics.top - access to the TOPs of subcategories. xstatistics.coefficients - access to view the coefficients. xstatistics.player - access to view player statistics, player list and player search. xstatistics.resetwipe - access to the ability for a player to reset his statistics - WIPE. xstatistics.resetall - access to the ability for a player to reset his statistics - ALL TIME. xstatistics.shstats - access to the ability to hide/open your statistics. [ If the permission has been revoked, the statistics privacy will automatically change to default. ] xstatistics.admin - access to admin mode. Commands
/stat, /stats, /statistic, /statistics - to open the statistics menu. [ Commands can be changed in the config. ] Server console --- Admin commands. stats_ct <customTopName> - to see the top players. [ Custom TOP. ] stats_t <subcategoryName> - to see the top players. [ TOP subcategory. ] player_stats_reset statswipe <steamID> - to reset a player stats to zero - WIPE. player_stats_reset statsall <steamID> - to reset a player stats to zero - ALL TIME. player_stats_reset all <steamID> - to reset a player stats to zero - WIPE and ALL TIME. player_stats_reset global <steamID> - delete a player from the database Global TOP. [ Player must be offline! ] player_stats_reset globaldata null - Delete data from a table in a MySQL database - Global TOP. [ Use this command after all of your servers have been wiped. ] [ The command can be used on any of the Global TOP servers. ] player_actstats global true/false - change statistics privacy for all players. player_actstats <steamID> true/false - change statistics privacy for a player. stats_give_award - start giving out awards for TOPs. stats_clear_data_wipe - to clear all statistics - WIPE. [ Same as after a server wipe ] API
- void API_AddSubcategoryValue(BasePlayer player, string subcategoryName, long amount) - Add a value for the subcategory. player - must be online and not equal to null. - void API_SetSubcategoryValue(BasePlayer player, string subcategoryName, long amount) - Set a value for the subcategory. player - must be online and not equal to null. - bool API_CheckForSubcategory(ulong userID, string subcategoryName) - Check if a subcategory exists. - long API_GetSubcategoryValue(ulong userID, string subcategoryName) - Get the subcategory value. Config
-
Geodes
Geodes
Looking to add another layer of gameplay for your players?
Or just to keep them a little busier gathering geodes and having "Rockhound" crack them open for some "Fair Trades"?
Now you can add your own Customizable Geodes to your Server.
When a player mines a node, you can configure drop rate and loot content.
When a player picks up ore, you can enable or disable a chance of them finding a geode, based on your geodes spawn rate.
You can also configure for a chance for the geode to be empty like in the "Real World"
Jackhammer harvest is also configurable.
You can blacklist tools as needed.
Spawn the Geode Shed Via Copy Paste, MarkerManager & ZoneManager Or AutoSpawn at Outpost Automatically with Copy Paste to handle paste, ZoneManager to handle decay and looting prevention etc.
MarkerManager via Umod can be used to mark the NPCS Location on the map.
NPC SETUP
Use /SpawnRockhound to set the NPC Trader Position
To remove
Use /RemoveRockhound
On new save, the data will clear to prevent any floaters.
NPC clothing is configurable, I set it up with some basic clothing with Skins as an Example, You can also use Kits to Set up your NPC as you wish.
NPC SHED SETUP
Use /pastegeodes to set the npc shed. Relies on Copypaste, and ZoneManager to handle decay and other flags.
OTHER COMMANDS
Use /givegeodes to spawn all custom geode items in your inventory, good for testing trade and crack open item pulls.
Demo Vid for Paste Instructions
Lang
{ "RockhoundCooldownMessage": "[<color=#70b8db>Rockhound</color>] Give me <color=#9370db>{0}</color> seconds, Let me rest my swinging arm...", "EmptyGeodeMessage": "[<color=#9370db>Geodes</color>] Your <color=#db9370>{0}</color> was empty!", "NoPerms": "[<color=#9370db>Geodes</color>] You don't have permission to run this command!", "GeodeInteractionNoGeodes": "[<color=#70b8db>Rockhound</color>] :nervous: \n\nCome back when you have enough <color=#db9370>Geodes</color>.\n\n Until then! \n\n:happy:", "GeodeInteractionTradeMessage1": "[<color=#70b8db>Rockhound</color>] :nervous: \n\nI can give you...", "GeodeInteractionTradeMessage2": "\nin exchange for your <color=#db9370>Geode(s)</color>.\n\nSeems like a fair trade to me! \n\n:happy:", "GeodeHarvestMessage": "[<color=#9370db>Geodes</color>] <color=#db9370>{0}</color> Harvested!", "GeodeHarvestMessage1": "[<color=#9370db>Geodes</color>] A <color=#db9370>{0}</color> was found on the <color=#db9370>ground</color>!", "GeodeInteractionFullInventory": "[<color=#70b8db>Rockhound</color>] Your <color=#9370db>Inventory</color> is full, I'll place the Item(s) on the <color=#db9370>ground</color>.", "GeodesSpawned": "[<color=#9370db>Geodes</color>] All Custom <color=#db9370>Geode</color> Items sent to your Inventory." }
Config
{ "Discord Webhook URL": "INSERTURLHERE", "Chat Icon": 0, "Position of Building for Outpost Spawn": { "x": -80.45, "y": 0, "z": -35.73 }, "Rotation Correction of The Building": -77, "NPC Positioning If using Outpost Spawn": { "x": -80.3, "y": 0.2, "z": -34.34 }, "Rotation Correction of The NPC": 90, "Dynamic (Outpost) Spawn Of The NPC Building and NPC Enabled?(CopyPaste Req. MarkerManager & Zone Manager Recommended)": true, "Enable Harvest Message?": true, "Enable Harvest On Collectable Pickup(Stone, Sulfur, Metal Ore)?": true, "Tool Blacklist": [ "icepick.salvaged", "knife.bone" ], "Ability To Harvest With Jackhammer?": true, "Maximum Amount of Like Geodes Traded at a Time": 3, "NPC Interaction Cooldown (seconds)": 3, "Enable Marker Manager from UMOD, To Mark Rockhound Location?": true, "Enable NPC Kit": false, "NPC Kit Name": "", "Geode Types": [ { "Geode Name": "Magnetite Geode", "Geode SkinID": 3157464677, "Geode Harvest Probability - 100 = 100%": 5, "Minimum Items on Trade": 1, "Maximum Items on Trade": 2, "Geode Loot Table on Crack": [ { "Shortname": "lowgradefuel", "Skin": 0, "Custom Name": "", "Amount Min": 10, "Amount Max": 20, "Chance to be given this Item upon Cracking (1.0 = 100%)": 0.5 }, { "Shortname": "hq.metal.ore", "Skin": 0, "Custom Name": "", "Amount Min": 5, "Amount Max": 20, "Chance to be given this Item upon Cracking (1.0 = 100%)": 0.5 } ], "Geode Loot Table on Trade": [ { "Shortname": "scrap", "Skin": 0, "Custom Name": "", "Amount Min": 50, "Amount Max": 100, "Chance to be given this Item on Trade (1.0 = 100%)": 0.5 }, { "Shortname": "ammo.pistol.fire", "Skin": 0, "Custom Name": "", "Amount Min": 2, "Amount Max": 4, "Chance to be given this Item on Trade (1.0 = 100%)": 0.5 } ] }, { "Geode Name": "Septarian Geode", "Geode SkinID": 3157464875, "Geode Harvest Probability - 100 = 100%": 5, "Minimum Items on Trade": 1, "Maximum Items on Trade": 2, "Geode Loot Table on Crack": [ { "Shortname": "scrap", "Skin": 0, "Custom Name": "", "Amount Min": 10, "Amount Max": 20, "Chance to be given this Item upon Cracking (1.0 = 100%)": 0.5 }, { "Shortname": "metal.fragments", "Skin": 0, "Custom Name": "", "Amount Min": 6, "Amount Max": 15, "Chance to be given this Item upon Cracking (1.0 = 100%)": 0.5 } ], "Geode Loot Table on Trade": [ { "Shortname": "metalspring", "Skin": 0, "Custom Name": "", "Amount Min": 1, "Amount Max": 2, "Chance to be given this Item on Trade (1.0 = 100%)": 0.5 }, { "Shortname": "roadsigns", "Skin": 0, "Custom Name": "", "Amount Min": 1, "Amount Max": 3, "Chance to be given this Item on Trade (1.0 = 100%)": 0.5 } ] }, { "Geode Name": "Irradiated Geode", "Geode SkinID": 3157465353, "Geode Harvest Probability - 100 = 100%": 3, "Minimum Items on Trade": 1, "Maximum Items on Trade": 2, "Geode Loot Table on Crack": [ { "Shortname": "lowgradefuel", "Skin": 0, "Custom Name": "", "Amount Min": 10, "Amount Max": 20, "Chance to be given this Item upon Cracking (1.0 = 100%)": 0.5 }, { "Shortname": "hq.metal.ore", "Skin": 0, "Custom Name": "", "Amount Min": 4, "Amount Max": 12, "Chance to be given this Item upon Cracking (1.0 = 100%)": 0.5 } ], "Geode Loot Table on Trade": [ { "Shortname": "ammo.rocket.hv", "Skin": 0, "Custom Name": "", "Amount Min": 1, "Amount Max": 2, "Chance to be given this Item on Trade (1.0 = 100%)": 0.5 }, { "Shortname": "ammo.pistol.hv", "Skin": 0, "Custom Name": "", "Amount Min": 1, "Amount Max": 3, "Chance to be given this Item on Trade (1.0 = 100%)": 0.5 } ] } ], "NPC Clothing Options": [ { "Shortname": "pants", "Skin": 2919986425 }, { "Shortname": "tshirt", "Skin": 844217778 }, { "Shortname": "shoes.boots", "Skin": 2090776132 }, { "Shortname": "hat.cap", "Skin": 812550226 }, { "Shortname": "metal.facemask", "Skin": 905114071 } ] }
Thanks for viewing! - Wrecks
Thanks to @imthenewguy for the tips!
& to @Luuxen for the help testing.
-
Surprise Trap
This plugin give the possibility to spawn a bunch of trap randomly across the map to make it a bit hard for your players. The selected numbers of traps are consistent through the server life, so as soon as 1 is activated, a new will spawn somewhere else. Traps set up after 30 sec after restart/reload. It can work with and without TruePVE . It handle separably the trap trigger and trap damage, what is configurable. The traps can't be picked up, only activated or disarmed.
With the base setup it check for free location outside of monuments, radiation zones and ZoneManger zones. The traps dmg 50hp, can cause wounded effect with 50% for 5 second and TruePVE selected as to be used.
Permissions
surprisetrap.admin - To use the 3 command surprisetrap.trapdetect - Too be able to use a geiger counter to find traps on the map
Commands
Chat: /show - Show all possible found spawn location (use it with care, it can cause lag until the floating numbers present on the map, see screenshots) /trap - Show all active trap on the map (use it with care, it can cause lag until the floating numbers present on the map, see screenshots) /setup <mine|bear> - set up a trap where the character look, only for test purpose. (the new position will behave as a new spawn location, but only until the next restart) Console: show - information about the additional free spawn locations trap - information about the available amount of traps setup - manually start trap setup in case of not enough trap on the map (compared to the configured amount)
Configuration
"Bypass the distance limtiation on the trap and spawn location show command": false, "Enable/Disable Chat notification about player Death by any \"Random Trap\"": false, "If all originally set location occupied, then look for new position": true, "Minimum Distance From Building": 20.0, "Number of traps on the map": 500, "Prevent Traps To Be Respawn At Monuments": true, "Prevent Traps To Be Respawn At RadiationZone": true, "Prevent Traps To Be Respawn At ZoneManager": true, "Random knowdown duration": 5.0, "Retry to get a new location(the bigger the number, bigger the resource consumption to try a new free position)": 200, "The distance on the trap and spawn location show command (only if not bypassed)": 150, "Trap activation randomly knowdown": true, "Trapdamage default 50": 50.0, "Try to look free location this many times on server init (Not necesseary mean it will find this many free spot, bigger the number, bigger the resource consumption to try a new free position)": 2000, "Usage of Beartrap": true, "Usage of Landmine": true, "Usage of TruePVE": true, "Traps can be detected by players with Geiger detector": true, "The distance to detect by the player with Geiger detector": 50.0
API
TrapDestroyedByPalyer(BaseTrap trap, BasePlayer player) can be used to catch triggen, when a player killed a trap (for example events or quest to destroy specificly spawned traps)