-
Posts
168 -
Joined
-
Last visited
Content Type
Profiles
Downloads
Forums
Store
Support
DOWNLOADS EXTRA
Services
Everything posted by HunterZ
-
Update - KpucTaJl responded with the following information regarding his/her plugins: AirEvent and WaterEvent provide event start hook signatures that look like this: void OnAirEventStart(HashSet<BaseEntity> entities, Vector3 pos, float radius) All others provide ones that look like this: void OnSupermarketEventStart(Vector3 pos, float radius) And they all provide event end signatures that look like this: void OnSupermarketEventEnd() I should be able to make this work, but it will take some effort due to being an approach that I haven't encountered yet. It will require things like persisting event records in my data file in case SuperPVxInfo gets reloaded while an event is active.
-
Nivex: Something is wrong with `AddZone()`'s matching on Zone Manager zone names against `Instance.config.Settings.Inclusions`. I've added logging to show that it's blocking zones with names in the inclusion list in the config file in order to produce the attached screenshots. Edit: it looks like "*" doesn't work either.
-
Looked through the descriptions of all of these, and their APIs/hooks don't provide enough info for me to add support. I'll reach out to the two authors and see if they're willing to work something out. Edit: I have sent them each a DM on Discord and will report back if I hear anything.
-
I wish it were possible to either edit automatically generated routes, or to blacklist them from the list of routes that Bradley can randomly spawn on (I don't use the purchase feature on my server). My current procedural map has a bad road that runs through a building at Harbor, and Bradley keeps getting stuck on it. Alternatively, it would be nice if the un-stick feature could detect if Bradley hasn't moved for a couple of minutes regardless of reason. Edit: Also verified that enabling the obstacle check config options doesn't help. Check out the Q11 end of `4_Edited` on procedural map with seed 775103760, size 2800.
-
I was hoping someone would make this, because I just started leaning into smaller maps for our low pop casual server. Thanks for creating and publishing it - and for free, no less! I noticed that this seems to implement custom logic that simply stops every once in a while in lieu of the vanilla behavior of pulling over when a player approaches. I wonder if it's possible to activate or replicate more of the vanilla logic. I'm also super-impressed that this seems to be able to cobble together a path that spawns multiple roads. I purchased Road Bradley for my server because my players missed the vanilla Launch Site one on smaller maps, and that plugin seems to confine the Bradley to single road spans unless you create custom paths for it.
- 6 comments
-
- 1
-
-
- #trader
- #travelvendor
- (and 11 more)
-
Do you run custom maps? Do you run procedural maps that are too small to have ring roads? If your answer to either question is "yes", then this plugin is worth checking out as a way to provide your players with access to this otherwise-inaccessible content added by Facepunch. The spawned vendor seems to be able to navigate across connections between multiple roads in order to drive a significant distance across the map, which is quite impressive since conceptually similar plugins like Road Bradley don't currently manage to do this on their own. On the other hand, version 1.0.0 seems to be missing the vanilla behavior of pulling over when a player approaches. To make up for this, it stops at configurable intervals for a configurable amount of time. I also noticed that the vendor's turrets attack scarecrows (Halloween zombies). This is probably vanilla behavior, but I figured some folks might be interested to know. By default this plugin also unloads itself if a ring road is detected, in order to work seamlessly on servers that alternate between large maps and small/custom ones. This behavior is also configurable. Verified working with Carbon as well.
- 6 comments
-
- 1
-
-
- #trader
- #travelvendor
- (and 11 more)
-
@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.6.0
194 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.1.0
191 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: 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.