DPB1Class · Navigation

ExilePather

Query routes and path distances in the current area. Route calculation and issuing movement commands are separate operations.

Namespace: DreamPoeBot.Loki.Bot.Pathfinding

public static class ExilePatherView DPB2 version →

Examples

Imports used by these examples
using System;
using System.Linq;
using DreamPoeBot.Loki.Game;
using DreamPoeBot.Loki.Game.Objects;
using DreamPoeBot.Loki.Bot;
using DreamPoeBot.Loki.Bot.Pathfinding;
using DreamPoeBot.Loki.Common;

Measure the route to a transition

if (!LokiPoe.IsInGame)
    return;

var target = LokiPoe.ObjectManager.GetObjectsByType<AreaTransition>()
    .FirstOrDefault(obj => obj.IsTargetable);
if (target != null)
{
    var distance = ExilePather.PathDistance(LokiPoe.MyPosition, target.Position);
}

A path measurement is not a movement command. Recheck the target before moving.

Members and overloads

41 results

OnExilePatherReload

EventLink ↗
public static ExilePather.ExilePatherReloadEvent ExilePather.OnExilePatherReload

Raised for on exile pather reload. Subscribe with the callback type shown in the signature.

OnObstacleUpdate

EventLink ↗
public static ExilePather.ObstacleUpdateEvent ExilePather.OnObstacleUpdate

Raised for on obstacle update. Subscribe with the callback type shown in the signature.

IsReady

FieldLink ↗
public static bool ExilePather.IsReady

Whether this exile pather is ready.

JumpableTgt

FieldLink ↗
public static List<string> ExilePather.JumpableTgt

Gets or sets the jumpable tgt collection. Its element types are linked below.

CanObjectSee

MethodLink ↗
public static bool ExilePather.CanObjectSee(Vector2i start, Vector2i end, bool dontLeaveFrame = false, bool shouldUseRangedMap = false)

Checks whether it can object see using the supplied arguments.

startVector2i
Specifies start.
endVector2i
Specifies end.
dontLeaveFramebool
Specifies dont leave frame. Optional; the default is shown in the signature.
shouldUseRangedMapbool
Specifies should use ranged map. Optional; the default is shown in the signature.

Returns: A Boolean result. The member description explains the condition being checked.

CanObjectSee

MethodLink ↗
public static bool ExilePather.CanObjectSee(NetworkObject obj, Vector2i position, out Vector2i hitPoint, bool dontLeaveFrame = false, bool shouldUseRangedMap = false)

Checks whether it can object see using the supplied arguments.

objNetworkObject
Specifies obj.
positionVector2i
Specifies position.
hitPointVector2i
Receives hit point.
dontLeaveFramebool
Specifies dont leave frame. Optional; the default is shown in the signature.
shouldUseRangedMapbool
Specifies should use ranged map. Optional; the default is shown in the signature.

Returns: A Boolean result. The member description explains the condition being checked.

CanObjectSee

MethodLink ↗
public static bool ExilePather.CanObjectSee(NetworkObject obj, Vector2i position, bool dontLeaveFrame = false, bool shouldUseRangedMap = false)

Checks whether it can object see using the supplied arguments.

objNetworkObject
Specifies obj.
positionVector2i
Specifies position.
dontLeaveFramebool
Specifies dont leave frame. Optional; the default is shown in the signature.
shouldUseRangedMapbool
Specifies should use ranged map. Optional; the default is shown in the signature.

Returns: A Boolean result. The member description explains the condition being checked.

CanObjectSee

MethodLink ↗
public static bool ExilePather.CanObjectSee(NetworkObject obj, NetworkObject other, out Vector2i hitPoint, bool dontLeaveFrame = false, bool shouldUseRangedMap = false)

Checks whether it can object see using the supplied arguments.

objNetworkObject
Specifies obj.
otherNetworkObject
Specifies other.
hitPointVector2i
Receives hit point.
dontLeaveFramebool
Specifies dont leave frame. Optional; the default is shown in the signature.
shouldUseRangedMapbool
Specifies should use ranged map. Optional; the default is shown in the signature.

Returns: A Boolean result. The member description explains the condition being checked.

CanObjectSee

MethodLink ↗
public static bool ExilePather.CanObjectSee(NetworkObject obj, NetworkObject other, bool dontLeaveFrame = false, bool shouldUseRangedMap = false)

Checks whether it can object see using the supplied arguments.

objNetworkObject
Specifies obj.
otherNetworkObject
Specifies other.
dontLeaveFramebool
Specifies dont leave frame. Optional; the default is shown in the signature.
shouldUseRangedMapbool
Specifies should use ranged map. Optional; the default is shown in the signature.

Returns: A Boolean result. The member description explains the condition being checked.

ConvertToRadians

MethodLink ↗
public static double ExilePather.ConvertToRadians(double angle)

Converts to radians using the supplied arguments.

angledouble
Specifies angle.

Returns: The double result.

EditTriggerableBlockages

MethodLink ↗
public static void ExilePather.EditTriggerableBlockages(Func<NetworkObject, bool> shouldBlock, List<NetworkObject> obj)

Edit the walk map, by adding or removing the object Navmap from the current map. Is mandatory to call Reload() to apply the change.

shouldBlockFunc<NetworkObject, bool>
A function that evaluate if a object Navmap has to be blocked in the current map.
objList<NetworkObject>
List of NetworkObjects to analize.

FastWalkablePositionFor

MethodLink ↗
public static Vector2i ExilePather.FastWalkablePositionFor(Vector2i pos, int range = 30, bool cache = true)

Executes the fast walkable position for operation with the supplied arguments.

posVector2i
Specifies pos.
rangeint
Specifies range. Optional; the default is shown in the signature.
cachebool
Specifies cache. Optional; the default is shown in the signature.

Returns: The Vector2i result.

FastWalkablePositionFor

MethodLink ↗
public static Vector2i ExilePather.FastWalkablePositionFor(NetworkObject obj, int range = 30, bool cache = true)

Executes the fast walkable position for operation with the supplied arguments.

objNetworkObject
Specifies obj.
rangeint
Specifies range. Optional; the default is shown in the signature.
cachebool
Specifies cache. Optional; the default is shown in the signature.

Returns: The Vector2i result.

FindPartialPath

MethodLink ↗
public static bool ExilePather.FindPartialPath(ref PathfindingCommand command, bool dontLeaveFrame = false)

Finds partial path using the supplied arguments.

commandPathfindingCommand
Supplies and may update command.
dontLeaveFramebool
Not read by this overload in the reviewed source. Do not rely on this argument to change its behavior.

Returns: A Boolean result. The member description explains the condition being checked.

FindPath

MethodLink ↗
public static bool ExilePather.FindPath(ref PathfindingCommand command, bool dontLeaveFrame = false)

Finds path using the supplied arguments.

commandPathfindingCommand
Supplies and may update command.
dontLeaveFramebool
Not read by this overload in the reviewed source. Do not rely on this argument to change its behavior.

Returns: A Boolean result. The member description explains the condition being checked.

FindPathWithObstacle

MethodLink ↗
public static bool ExilePather.FindPathWithObstacle(ref PathfindingCommand command, List<ExilePather.Obstacle> obstacles, bool dontLeaveFrame = false)

Finds path with obstacle using the supplied arguments.

commandPathfindingCommand
Supplies and may update command.
obstaclesList<Obstacle>
Specifies obstacles.
dontLeaveFramebool
Not read by this overload in the reviewed source. Do not rely on this argument to change its behavior.

Returns: A Boolean result. The member description explains the condition being checked.

GetPointOnCircle

MethodLink ↗
public static Vector2i ExilePather.GetPointOnCircle(Vector2i center, double radian, double radius)

Returns point on circle using the supplied arguments.

centerVector2i
Specifies center.
radiandouble
Specifies radian.
radiusdouble
Specifies radius.

Returns: The Vector2i result.

GetPointsOnSegment

MethodLink ↗Deprecated
public static List<Vector2i> ExilePather.GetPointsOnSegment(Vector2i start, Vector2i end, bool dontLeaveFrame)

Returns points on segment using the supplied arguments.

startVector2i
Specifies start.
endVector2i
Specifies end.
dontLeaveFramebool
Not read by this overload in the reviewed source. Do not rely on this argument to change its behavior.

Returns: The List<Vector2i> result.

IsWalkable

MethodLink ↗
public static bool ExilePather.IsWalkable(Vector2i arg)

Checks whether walkable using the supplied arguments.

argVector2i
Specifies arg.

Returns: A Boolean result. The member description explains the condition being checked.

IsWalkable

MethodLink ↗
public static bool ExilePather.IsWalkable(int x, int y)

Checks whether walkable using the supplied arguments.

xint
Specifies x.
yint
Specifies y.

Returns: A Boolean result. The member description explains the condition being checked.

PathDistance

MethodLink ↗
public static float ExilePather.PathDistance(Vector2i start, Vector2i end, bool avoidWallHugging = false, bool dontLeaveFrame = false)

Executes the path distance operation with the supplied arguments.

startVector2i
Specifies start.
endVector2i
Specifies end.
avoidWallHuggingbool
Not read by this overload in the reviewed source. Do not rely on this argument to change its behavior.
dontLeaveFramebool
Not read by this overload in the reviewed source. Do not rely on this argument to change its behavior.

Returns: The float result.

PathExistsBetween

MethodLink ↗
public static bool ExilePather.PathExistsBetween(Vector2i start, Vector2i end, bool dontLeaveFrame = false)

Returns true if a path exists between start and end using the current navmesh.

startVector2i
Specifies start.
endVector2i
Specifies end.
dontLeaveFramebool
Not read by this overload in the reviewed source. Do not rely on this argument to change its behavior.

Returns: A Boolean result. The member description explains the condition being checked.

Raycast

MethodLink ↗
public static bool ExilePather.Raycast(Vector2i start, Vector2i end, out Vector2i hitPoint, bool dontLeaveFrame = false, bool shouldUseRangedMap = false)

Project a ray from start to end, if the ray encounter a non walkable location or an obstacle, it return false and out the location of the obstacle as hitpoint. This function do not consider dynamic objects (object collected with Objectmanager, like doors, chests, monsters etc). PLEASE NOTE: this function also Broadcast a message with id "Raycast_Result" and has 4 parms as input: Vector2i start, Vector2i end, bool Returnvalue, Vector2i hitPoint.

startVector2i
The start position of the ray.
endVector2i
The end Position of the ray.
hitPointVector2i
If the function return false, hitpoint is set to the first non walkable position.
dontLeaveFramebool
Not read by this overload in the reviewed source. Do not rely on this argument to change its behavior.
shouldUseRangedMapbool
Should the function evaluate the Ranged map instead of the Walk map? use this for spells or arrows.

Returns: Return true if the function do not encounter any obstacle, or false if a obstacle is encountered.

Raycast

MethodLink ↗
public static bool ExilePather.Raycast(Vector2i start, Vector2i end, List<NetworkObject> objectsToConsider, out Vector2i hitPoint, out int objectId, bool dontLeaveFrame = false, bool shouldUseRangedMap = false)

Project a ray from start to end, if the ray encounter a non walkable location or an obstacle, it return false and out the location of the obstacle as hitpoint, and Object Id in case the obstacle is an NetworkObject. This function account for a given list of NetworkObjects to include in the calculation. This function account for the interactsize of the networkobject, so the hitboz is considered.

startVector2i
The start position of the ray.
endVector2i
The end Position of the ray.
objectsToConsiderList<NetworkObject>
A List of NetworkObject to include in the calculation
hitPointVector2i
If the function return false, hitpoint is set to the first non walkable position.
objectIdint
The Id of the eventual NetworkObject hit by the ray.
dontLeaveFramebool
Not read by this overload in the reviewed source. Do not rely on this argument to change its behavior.
shouldUseRangedMapbool
Should the function evaluate the Ranged map instead of the Walk map? use this for spells or arrows.

Returns: Return true if the function do not encounter any obstacle, or false if a obstacle is encountered.

RaycastPf

MethodLink ↗
public static bool ExilePather.RaycastPf(Vector2i start, Vector2i end, out Vector2i hitPoint)

Raycast directly via navmesh wrapper. Returns true if no blocking obstacle. Only works for ground level mesh.

startVector2i
Start point of the ray
endVector2i
End point of the ray
hitPointVector2i
Hit point in case obstacle was encountered. Is DreamPoeBot.Common.Vector2i.Zero by default.

Returns: True if no obstacle was encountered.

Reload

MethodLink ↗
public static void ExilePather.Reload(bool force = false)

Executes the reload operation with the supplied arguments.

forcebool
Specifies force. Optional; the default is shown in the signature.

Reload2

MethodLink ↗
public static void ExilePather.Reload2(bool force = false)

Here for test purpose, actually mimic ReloadAsync.

forcebool
Specifies force. Optional; the default is shown in the signature.

Save

MethodLink ↗
public static void ExilePather.Save(string filePath)

Executes the save operation with the supplied arguments.

filePathstring
Not read by this overload in the reviewed source. Do not rely on this argument to change its behavior.

SignalObstacleUpdate

MethodLink ↗
public static void ExilePather.SignalObstacleUpdate()

Executes the signal obstacle update operation.

AreaHash

PropertyLink ↗
public static uint ExilePather.AreaHash { get; private set; }

Gets area hash for ExilePather.

Related types

DPB1 0.3.29.47 · Reference reviewed 2026-10-02. Descriptions use source summaries where available, otherwise concise signature-based descriptions. Examples illustrate usage; they are not a live-game test.