WayFinder
Wayfind to your Bed, Vehicle, Location or Marker using Roads! Great Performance and Works on All Maps!
Features
- Wayfind to your Marker using Roads
- Easily pick a destination such as your Bed, Vehicle or a Location
- Auto Wayfinding, Automatically wayfinds to an EMS Request or a Package Delivery (See Related Section)
- Minimal Setup and Rich Configuration designed to work on Any Map
- Impressive Performance enhanced by Multi-Threading
- Customize the look to suit your Server with a Rich Assortment of 51 Effects included as a Bonus
Workshop
Looking for custom-made Effects? Just get in touch, I'd love the make them!
Configuration
Configuration Explained
Default Configuration Verified To Work on ALL Vanilla Maps
( PEI | Washington | Yukon | Russia | Germany ) Looking for more or want to Share your Map Specific Configuration Files? Then join my Discord Server!
Translation
Commands
Wayfind
/Wayfind [Home|Vehicle|PersonalVehicle|GroupVehicle|Location]
- /WF
Wayfind to your Bed, Vehicle, Location or Marker!
Examples:
/Wayfind Military Base
/WF
WayfindStatic
/WayfindStatic [Home|Vehicle|PersonalVehicle|GroupVehicle|Location]
- /WFS
Statically Wayfind to your Bed, Vehicle, Location or Marker! Unlike the regular Wayfind command this command does not continuously update the Wayfinding effects and path (if needed) which may be a lot more performant on lower-end servers.
Examples:
/WayfindStatic
/WFS Home
WayfindClear
/WayfindClear
- /WFC
Clear Wayfinding and/or Effects.
Admin Commands
LookAtObject
/LookAtObject
- /LO
Display ID and GUID of the Medium or Large Object you are looking at.
FakeRoadEdit
/FakeRoadEdit
- /FREdit
Start/Stop Editing Fake Roads.
FakeRoadAdd
/FakeRoadAdd
- /FRAdd
Add a new Fake Road Joint where you're looking.
FakeRoadSelect
/FakeRoadSelect
- /FRSelect
Select/Deselect the Joint you are looking at.
FakeRoadRemove
/FakeRoadRemove
- /FRRemove
Remove your Selected Fake Road Joint.
Permissions
WayFinder.Wayfind
- Gives Access to; /Wayfind /WayfindStatic /WayfindClear
& Aliases
WayFinder.Home
- Gives Access to; Wayfind/WayfindStatic Home
WayFinder.Vehicle
- Gives Access to; Wayfind/WayfindStatic Vehicle
WayFinder.PersonalVehicle
- Gives Access to; Wayfind/WayfindStatic PersonalVehicle
WayFinder.GroupVehicle
- Gives Access to; Wayfind/WayfindStatic GroupVehicle
WayFinder.Location
- Gives Access to; Wayfind/WayfindStatic Location
WayFinder.Destination
- Gives Access to; WayFinder.Home WayFinder.Vehicle WayFinder.PersonalVehicle WayFinder.GroupVehicle WayFinder.Location
WayFinder.AutoWayfind
- Gives Access to; AutoWayfinding
WayFinder.ModifyFakeRoads
- Gives Access to; /FakeRoadEdit /FakeRoadAdd /FakeRoadSelect /FakeRoadRemove
& Aliases
Auto Wayfinding
Automatically Wayfind to your marker when one of the specified events in the Configuration file is triggered. The utmost intriguing of all the events is clearly OnOtherPluginPlaceMarker
. It allows WayFinder to function in conjunction with Any Plugin that uses the player's Marker.
Auto Wayfinding Example using BTMailing by BlazeThrower
Other Example usage of OnOtherPluginPlaceMarker
include but is absolutely not limited to: EMS as part of a Medical System plugin, Package Delivery, Policing as part of a Bank robbing plugin etc.
Fake Roads
Create your own roads or touch up on existing map pathing using Fake Roads. The super intuitive tool that lets you create your own roads basically anywhere you want. Optional of course, since WayFinder will simply use the map's roads and objects without any additional setup.
Showcase creating a simple Fake Road
Fake Roads are automatically converted into Vanilla Roads and do not suffer from any performance differences.
Performance
Great Performance I cry but what does that actually mean?
To begin, viewing the Plugin's performance is Easy! Simply enable logging of performance to console by setting it in the Configuration file. It's been setup to only log methods that may take a long time to complete, equivalent to at least a few milliseconds.
The process of Wayfinding is definitely the most expensive task. It's not hard to imagine that figuring out exactly how to get from point A to point B can get pretty complex. But still a perfect match for modern machines. Wayfinding performance is extremely variable and depends on a multitude of different factors. With the most pronounced factors being; Model, Distance and Complexity of the Area.
WayFinder is able to use two Unique Models, Closest and AStar, for Wayfinding. Other available Models are simply abstractions of these two unique ones. Closest is exceptionally speedy and its impact usually isn't even noticeable. AStar is far from slow but still slower than Closest. Implying you will probably see it taking a few milliseconds to finish its calculations. With the advantage of Guaranteed finding the path to your Marker. Distance is quite obvious, the longer the distance the more calculations will have to be done. The complexity of the area is, however, not equally clear. A lot of roads in unturned are made out of objects and finding them, especially in a large radius, is slow. That's why large cities take a long time to wayfind around.
What's the actual Data on Performance? I have never gotten wayfinding to be grossly over 100ms (0.1s) for the absolute longest distances. Usually wayfinding hovers around 0-50ms without cached road neighbours. Caching Road Neighbours however while costly on startup boosts performance with AStar significantly! All of this runs on a separate thread, meaning it causes no slow down at all!
Performance Measured using Default Configuration
About 90% of the time taken by Wayfinding with AStar is spent on getting the Neighbours of the current Road. That's why Caching all Neighbours has such an absurd performance increase. Which you can Easily do by enabling CacheRoadNeighbours
if it isn't Already! Although caching all roads is costly, taking upwards of 100ms for the more complicated maps, it's more than worth it when it can increase your wayfinding speeds by up to 50 times!
Performance Measured using Default Configuration
Do you want Perfectly spaced Effects on Roads? Then you should use the Even
Road Highlighter! However, it needs time to calculate a look-up table for a road before displaying the effects. This can be done once per road during run time or once for all roads during startup. Usually taking between 0-30ms for all roads, greatly depending on your sample distance.
Performance Measured using Default Configuration
Bridges are perfect when Road objects quite don't cut it. Although they aren't always necessary. The Vanilla map PEI for example, does not need to use Bridges at all. Using bridges may be required on some maps, but generally you should try to disable them if they aren't needed, as well as remove unused bridges from the Configuration. The default Configuration file uses all bridges found on all vanilla maps. But depending on what map you pick, removing some unused ones could improve performance quite a bit. Caching is massively important. Not caching bridge caps makes Wayfinding on average 7 times slower! So Always cache your bridge caps!
Performance Measured using Default Configuration
Emerging is a exceedingly clear conclusion that your performance truly depends a lot on how you decide to set up your Configuration file. With that said, I'd like to make it clear that there is absolutely no problem in contacting me if you're encountering performance or any other kind of problems. So please, Contact me if you need help setting up your Configuration file!
User Reviews
It seems fitting to use a plugin on the 2R Altis Rebirth server, made by someone who played on the original server.
THIS THING SHOWS YOU A FKING TRAIL TO WHEREVER YOU WANT. ISN'T THAT JUST FUCKING COOL?
but not only that, this plugin has pretty cute markers with it. the markers alone are worth $20+ in my opinion.
It also works with map markers which lets you call them from uscript or other plugins, in my case I'm abusing this thing to make custom "quest trails" so players know where they have to go to in order to complete a quest, or to give them a easy way to locate their friends / bases / bedrolls (This is using uscript to set the marker, and then WayFinder to spawn in the trails).
Haven't tried out fake roads yet, but it should allow creating trails on maps with no roads (think Yukon, or custommade maps).
Deffinitelyyy recomend this!