-
Posts
186 -
Joined
-
Last visited
-
Days Won
1
Content Type
Profiles
Warranty Claims
Downloads
Forums
Store
Support
DOWNLOADS EXTRA
Services
Everything posted by HunterZ
-
@Stark okay, I've released version 1.1.0 with Simple Status support. Let me know what you think. Note that Simple Status support is disabled by default, so you will have to do the following: Load up the new version to update the config file Edit the config file to toggle UI and/or Simple Status displays on and off for each PVx status Reload the plugin for your changes to take effect
-
-
Thanks, I hope you like it! The funny thing is I'm not in it for money - running a Rust server and making plugins is a hobby for me. I created this because players on my own causal hybrid PvE/PvP server wanted me to look into plugin enforcement of our rules, and I couldn't find anything that did everything I wanted.
-
Version 1.7.0
356 downloads
Adds a highly configurable GUI to players' HUDs indicating whether they are currently in a PvE, PvP, or Safe Zone area, or are currently subject to a PvP expiration delay. Features: PvE/PvP status for Zone Manager zones Supports matching on zone name, True PVE exclusion mappings, or zone flags Tested with Dynamic PVP, but should also work with Agile Zones, Zone Manager Auto Zones, etc. PvE/PvP status detection for: Abandoned Bases (untested) Dangerous Treasures Dynamic PVP Player Base PVP Zones Raidable Bases PvP status detection for: Adem event plugins (Caravan, Convoy Reforged) (untested) KpucTaJl event plugins (Air Event, Arctic Base Event, Ferry Terminal Event, Gas Station Event, Harbor Event, Junkyard Event, Power Plant Event, Satellite Dish Event, Supermarket Event, Water Event) (untested) Cargo Train Event (untested) Player height (sky / seasonal dungeons, train tunnels, etc.) PvP expiration delay status detection for: Abandoned Bases (untested) Dynamic PVP Player Base PVP Zones Raidable Bases Safe Zone status detection Tutorial Island detection (treated as PVE) Player notification on state changes not covered by other plugins (e.g. holiday dungeon / train tunnel / safe zone entry/exit) Can be enabled in chat and/or in Popup Notifications Optional Simple Status support Commands: /pvxui (configurable) toggles the UI off and back on Configuration: { "Server Default PVx (PVP or PVE)": "PVE", "Assume PVP Below Height": -50.0, "Assume PVP Above Height": 1000.0, "Toggle UI Command (empty string to disable)": "pvxui", "Seconds Between Updates": 1.0, "Force Updates On State Change": true, "Minimum Seconds Data File Saves": 5.0, "PVE Exclusion Mapping Names (case insensitive substrings / none to disable)": [ "exclude" ], "PVE Zone Names (case insensitive substrings / none to disable)": [ "PVE" ], "PVP Zone Names (case insensitive substrings / none to disable)": [ "PVP" ], "Notification Settings": { "Chat notify enabled": false, "Chat notify prefix (empty string to disable)": "[SuperPVxInfo]: ", "PopupNotifications notify enabled": true, "PopupNotifications notify prefix (empty string to disable)": "", "Individual Notification Toggles": { "Unexpected Exit From Abandoned Or Raidable Base": true, "Unexpected Exit From Dangerous Treasures Event": true, "Safe Zone Entry": true, "Safe Zone Exit": true, "PVP Height Entry": true, "PVP Height Exit": true, "PVP Depth Entry": true, "PVP Depth Exit": true } }, "Default UI Settings": { "PVE": { "Enabled": true, "Min Anchor": "0.5 0", "Max Anchor": "0.5 0", "Min Offset": "190 30", "Max Offset": "250 60", "Layer": "Hud", "Text": "PVE", "Text Size": 14, "Text Color": "1.0 1.0 1.0 1.0", "Background Color": "0.0 1.0 0.0 0.8", "Fade In": 0.25, "Fade Out": 0.25 }, "PVP": { "Enabled": true, "Min Anchor": "0.5 0", "Max Anchor": "0.5 0", "Min Offset": "190 30", "Max Offset": "250 60", "Layer": "Hud", "Text": "PVP", "Text Size": 14, "Text Color": "1.0 1.0 1.0 1.0", "Background Color": "1.0 0.0 0.0 0.8", "Fade In": 0.25, "Fade Out": 0.25 }, "PVPDelay": { "Enabled": true, "Min Anchor": "0.5 0", "Max Anchor": "0.5 0", "Min Offset": "190 30", "Max Offset": "250 60", "Layer": "Hud", "Text": "WAIT", "Text Size": 14, "Text Color": "1.0 1.0 1.0 1.0", "Background Color": "1.0 0.5 0.0 0.8", "Fade In": 0.25, "Fade Out": 0.25 }, "SafeZone": { "Enabled": true, "Min Anchor": "0.5 0", "Max Anchor": "0.5 0", "Min Offset": "190 30", "Max Offset": "250 60", "Layer": "Hud", "Text": "SAFE", "Text Size": 14, "Text Color": "1.0 1.0 1.0 1.0", "Background Color": "0.0 0.0 1.0 0.8", "Fade In": 0.25, "Fade Out": 0.25 } }, "Simple Status UI Settings": { "PVE": { "Enabled": false, "Background Color": "0.0 0.7 0.0 0.8", "Title Text": "PVE", "Title Color": "1.0 1.0 1.0 1.0", "Status Text": "SuperPVxInfo", "Status Color": "0.0 1.0 0.0 0.2", "Icon Path": "assets/icons/resource.png", "Icon Color": "0.5 1.0 0.5 1.0" }, "PVP": { "Enabled": false, "Background Color": "0.7 0.0 0.0 0.8", "Title Text": "PVP", "Title Color": "1.0 1.0 1.0 1.0", "Status Text": "SuperPVxInfo", "Status Color": "1.0 0.0 0.0 0.2", "Icon Path": "assets/icons/warning_2.png", "Icon Color": "1.0 0.5 0.5 1.0" }, "PVPDelay": { "Enabled": false, "Background Color": "0.7 0.7 0.0 0.8", "Title Text": "WAIT", "Title Color": "1.0 1.0 1.0 1.0", "Status Text": "SuperPVxInfo", "Status Color": "1.0 1.0 0.0 0.2", "Icon Path": "assets/icons/stopwatch.png", "Icon Color": "1.0 1.0 0.5 1.0" }, "SafeZone": { "Enabled": false, "Background Color": "0.0 0.0 0.7 0.8", "Title Text": "SAFE", "Title Color": "1.0 1.0 1.0 1.0", "Status Text": "SuperPVxInfo", "Status Color": "0.0 0.0 1.0 0.2", "Icon Path": "assets/icons/peace.png", "Icon Color": "0.5 0.5 1.0 1.0" } } } Background: Super PVx Info attaches a watcher to each player on login that monitors for any changes to PvE/PvP/delay/safezone state, and updates the player's HUD. By default this is done once per second, or as soon as possible after a hook-based change has occurred - but both of these behaviors are configurable, so you can reduce server load (at the cost of reduced GUI responsiveness) by increasing "Seconds Between Updates" and/or disabling "Force Updates On State Change". This approach is needed to monitor the player's height, and for more accurate safe zone detection (Facepunch is bad at providing triggers for things like exiting Train Tunnels into Outpost). This plugin is a complete overhaul of Zone PVx Info by BuzZ[PHOQUE]/Arainrr, which I was inspired to attempt after struggling to get it to work with Zone Manager Auto Zones (since abandoned in favor of DynamicPVP). Credits: BuzZ[PHOQUE] & Arainrr for creating Zone PVx Info Bug Man & Cannabis on Carbon's Discord server for suggesting the FacepunchBehavior approach and offering examples Nivex for putting up with all of my Abandoned/Raidable Bases and TruePVE questions and fixing/enhancing/documenting those plugins KpucTaJl for providing API clarificationFree -
Version 1.2.0
319 downloads
Introduction Automatically manages PVP zones for player bases, legacy shelters and tugboats. Features Manages its own Zone Manager zones and maps them as True PVE exclusion zones (Re)creates zones on plugin load and cleans them up on unload Provides tool cupboard based zones: Configurable creation & deletion delays Automatic resizing to always encompass the base as building blocks are added/destroyed, with configurable delay Configurable minimum total base and per-building-block buffer sizes Provides legacy shelter based zones: Configurable zone size Provides tugboat based zones: Configurable zone size Zone moves with the tugboat Optional support for visible zone spheres: Configurable sphere darkness Option to globally network tugboats to prevent spheres from disappearing Optional support for language file based zone creation/deletion and entry/exit notifications Configurable PVP expiration delay on player exit from zones Compatibility Hard dependency on Zone Manager for creating zones. Should work with various PVE plugins - tested with TruePVE and SimplePVE. Configuration Default configuration: { "Zone creation delay in seconds (excludes tugboat)": 60.0, "Zone creation delay notifications (owner only, excludes tugboat)": true, "Zone deletion delay in seconds": 300.0, "Zone deletion delay notifications (all players in zone)": true, "Zone creation/deletion notification prefix": "[PBPZ] ", "Zone exit PvP delay in seconds (0 for none)": 5.0, "Zone sphere darkness (0 to disable, maximum 10)": 0, "Zone entry/exit ZoneManager messages": true, "Zone TruePVE mappings ruleset name": "exclude", "Building settings": { "Building update check delay in seconds": 5.0, "Building zone overall minimum radius": 16.0, "Building zone per-block minimum radius": 16.0 }, "Shelter settings": { "Shelter zone radius": 8.0 }, "Tugboat settings": { "Tugboat force global rendering on/off when spheres enabled (null=skip)": null, "Tugboat force enable buoyancy when forcing global rendering": false, "Tugboat zone radius": 32.0 } } NOTE: The tugboat rendering options should be left at defaults. The options are provided for the case that you are running other plugins that force global networking/rendering for tugboats, which can cause spheres to disappear when a tugboat comes back into client render range.This plugin will automatically attempt to synchronize tugboat sphere networking with each tugboat's networking type when (re)creating the spheres. Developer API Supported API calls: bool IsUsingExcludePlayer() Returns whether True PVE 2.2.3+ ExcludePlayer() PVP delay API is being used. string OnPlayerBasePvpDelayQuery(ulong playerID) Provides the ability to query whether a player has an active PVP delay Returns the triggering zone ID if the referenced player has an active PVP delay Returns an empty string If no PVP delay is active Hooks: void OnPlayerBasePvpDelayStart(ulong playerID, string zoneID) Called when PVP exit delay is applied to a player as a result of their exiting a base zone playerID is the ID of the triggering player zoneID is the Zone Manager zone ID whose exit triggered the delay void OnPlayerBasePvpDelayStop(ulong playerID, string zoneID) Called when PVP exit delay expires from a player playerID is the ID of the triggering player zoneID is the Zone Manager zone ID whose exit triggered the delay Zone Manager / PVE Plugin Integration Zone Manager zones are maintained for all bases, and are mapped to the configured True PVE ruleset (`exclude` by default). This will cause True PVE to treat them as vanilla areas by default, allowing for PVP to take place. Zone names are broken into categories in case you want other plugins to recognize them separately: `PlayerBasePVP:building` for building block bases `PlayerBasePVP:shelter` for legacy wood shelters `PlayerBasePVP:tugboat` for tugboats Developer note: Zone IDs are `PlayerBasePVP:` followed by a unique identifier. Background Player Base PVP Zones is meant for hybrid PVP servers that want to allow online raiding. It is meant to complement Dynamic PVP which only provides zones for monuments and events. Zone Manager is a hard requirement in order to implement moving zones for tugboats, as it doesn't officially support this feature. A PVE mod is required to make this useful. I only tested with True PVE for various reasons. Credits Thanks to the following folks for making this plugin possible: bmgjet (help with / code for tugboat sphere issues) CatMeat & Arainrr (moving Zone Manager zones code examples in Dynamic PVP) Karuza (help with unique entity identifiers & tugboat sphere issues) Kulltero (help with TC/building relationship) WhiteThunder (help with tugboat sphere issues) AFKBank and Mooselips whose bases I took screenshots of on my server during testingFree -
As someone who has a need for this plugin but hasn't pulled the trigger yet, this has me hesitating to purchase it. I did some experiments and found a method for calculating a 3D bounding box for a base that contains all of its building blocks, and then using that to derive a center and a radius. I think I may have to strike out on my own here, even though I'm not super experienced at Rust modding yet.
- 61 comments
-
I'm looking at adding AgileZones to the mix to create PvP zones around player bases. Does it play nice with DynamicPVP, RaidableBases, and RoadBradley? Background: I run a hybrid PvP/PvE casual server with RaidableBases and RoadBradley that currently runs on the honor system. Player bases, mid/high tier monuments, train tunnels, world events, and plugin events are all PvP, but low tier monuments and the rest of the map are PvE. I'm working on setting up plugin-based enforcement, and have ZoneManager + TruePVE + DynamicPVP + a work-in-progress extensive overhaul of Zone PVx Info (adds support for recognizing train tunnels, sky dungeons, safe zones, TruePVE/NextGenPVE exclusion zone mappings, Zone Manager pvpgod/pvegod zones, etc.). This is all working fairly well, but DynamicPVP lacks support for TC-based PvP zones. AgileZones seems like the obvious solution here. P.S. I ditched ZoneManagerAutoZones for DynamicPVP because everything about the latter is better. I also ditched ZoneDomes because (1) it doesn't clean up after itself if you reload it, resulting in duplicate domes, and (2) DynamicPVP and RaidableBases create (and clean up on reload) their own domes anyway.
- 61 comments
-
Yes, I think so: Looks like there's a hook for delay start, delay reset/restart/extend, and expired/end Hopefully there's a lower chance of weird corner cases since this is all being handled in `SetPVPDelay()` Non-conflicting signature for OnPlayerPvpDelayStart hook of same name in Abandoned Bases Question: How does the config option "PVP Delay Between Zone Hopping Persists After Despawn" fit in here? Hopefully I get an OnPlayerPvpDelayExpired hook call either way, but it will be more immediate if that config setting is false? Or am I completely misunderstanding its purpose?
-
I'm trying to overhaul a PvE/PvP status GUI plugin that wants to track whether the player is in a PVP delay state. `OnPlayerPvpDelayEntry` is what it was using, but it sounds like I should just assume PVP delay starts on `OnPlayerExitedRaidableBase` instead? What if the hook gets called because the player died and respawned? It might be good to have an explicit hook that gets called whenever you (re)set the PVP delay timer, just to avoid ambiguity. Also, are you seeing the same thing with `OnPlayerPvpDelayExpired` never getting called when the player is in a base when it despawns, regardless of "PVP Delay Between Zone Hopping Persists After Despawn"?
-
Experiencing some odd quirks in relation to PVP delays: `OnPlayerPvpDelayEntry` hook always gets called in entry to Raidable Base, even if it's a PVP base. This might be okay, except that trying to use this to trigger execution of `RaidableBases.Call("HasPVPDelay", somePlayer.userID.Get())` from my plugin results in false negatives because the PVP delay isn't actually in effect until the player leaves the base. `OnPlayerPvpDelayExpired` hook never gets called on base despawn. The "PVP Delay Between Zone Hopping Persists After Despawn" config setting doesn't seem to accomplish anything. In general, it seems like the coupling between RB's internal PVP delay states and when it calls hooks to notify other plugins might benefit from some tightening. For now, I'm still setting my internal PVP delay state on `OnPlayerPvpDelayEntry` and clearing it on `OnPlayerPvpDelayExpired` - but also calling `HasPVPDelay` whenever I get a `OnPlayerExitedRaidableBase` or `OnRaidableBaseEnded` hook, to check if the rug got pulled out from under me.
-
My server is configured for a single normal Bradley to exist, and to respawn 2700 +/- 900 seconds after being killed. Unfortunately it seems to often respawn more quickly than that - including almost instantly after the first kill of this month's force wipe. This seems to be because `OnServerInitialized()` starts a forever-repeating timer that causes a new Bradley to respawn every 10-15 minutes from server start, regardless of whatever else might be configured. Changing this `Timer.Every()` call to a `Timer.Once()` call fixes it, but it would be nice to get an official fix so that I don't have to keep remembering to reapply it on every update.
-
- 606 comments
-
- #rust
- #rust plugin
- (and 6 more)
-
Hello nivex! I'm overhauling a PvP/PvE mode UI plugin that has support for some of Abandoned Bases' hooks. I own Raidable Bases but not Abandoned Bases, so I can't get the answer to this myself by checking the code: Does Abandoned Bases call a hook on start of PvP delay, the way Raidable Bases calls "OnPlayerPvpDelayEntry"? If so, can you share enough of the signature for me to write a handler with a BasePlayer parameter? Thanks!
- 606 comments
-
- #rust
- #rust plugin
- (and 6 more)
-
Could be a red herring, as I added some code to check if `procotol` ends up null, and it doesn't. I only own your Tier 3 base pack, but here are the ones that are missing the protocol section: raideasy1.json raideasy10.json raideasy4.json raideasy5.json raideasy6.json raideasy7.json raideasy8.json raideasy9.json raidexpert1.json raidexpert10.json raidexpert2.json raidexpert3.json raidexpert4.json raidexpert5.json raidexpert6.json raidexpert7.json raidexpert8.json raidexpert9.json raidhard1.json raidhard10.json raidhard2.json raidhard3.json raidhard4.json raidhard5.json raidhard6.json raidhard7.json raidhard8.json raidhard9.json raidmed1.json raidmed10.json raidmed2.json raidmed3.json raidmed4.json raidmed5.json raidmed6.json raidmed7.json raidmed8.json raidmed9.json raidnightmare10.json raidnightmare3.json raidnightmare4.json raidnightmare5.json raidnightmare6.json raidnightmare7.json raidnightmare8.json raidnightmare9.json
-
My bad, not sure why I wasn't finding it. I'm now caught up to also experiencing the CopyPaste error with Carbon. Here is the line in CopyPaste that it's complaining about: var isItemReplace = !protocol.ContainsKey("items"); I guess RB ends up passing a null protocol dictionary? Edit: If it matters, it looks like only my custom bases, plus 4 of the bases I'm using from your Tier 3 pack have protocol data.
-
RB seems to have not migrated some of the config settings, like events - they're just completely missing from the JSON. I think I'll try starting over with a fresh config and then manually merge my desired settings back in. This has happened previously, so not unexpected (I even backed up my config just in case lol).
-
Thanks! Follow-ups: 1. Your response to the Scarecrows question seems to have got cut off. 8. Does that mean "Scientist Options - Amount Of Scientists To Spawn (might not spawn all of them)" is really a number of waves, and the number of scientists per wave is determined by base game logic? Just trying to understand what exactly turning that knob does so that I can figure out the best setting for my server. Another thing: 9. My players suggested it might be nice if each Road Bradley could jump/respawn to a different route if not taken for too long. I suspect this would be nontrivial because you'd have to maintain timers for each spawned Bradley, but thought I should pass it along.