Skip to content

sdk.navigator

Stateful one-tile movement controller. Prevents walk queue flooding, remembers temporarily blocked tiles, and suppresses immediate direction reversals that cause left/right oscillation.

lua
local M = require("sdk.navigator")

Constants

Lua 5.4 has no enums — these are integer (or string) fields on the module.

NameValueSummary
oppositeOPPOSITEMap of each direction to its opposite.

new

function · new(opts)

Returns Navigator.

Parameters

NameTypeSummary
optstable|niltimeout_ms=1400, block_ms=3500, reverse_guard_ms=900

Returns

TypeSummary
Navigator

reset

method · reset()

Forget pending walk, blockers, and last direction.

observe

method · observe(here, now)

Call every tick before step(). Returns "moved" | "diverted" | "blocked" | "moving".

Parameters

NameTypeSummary
herePos
nownumberepoch ms

is_moving

method · is_moving()

True while a sent step has not been observed yet.

last_direction

method · last_direction()

Last direction this navigator sent.

is_blocked

method · is_blocked(p, now)

True when a tile is in the temporary block set.

blocked

method · blocked(now)

Current temporary blocked tiles.

step

method · step(me, here, dir, now, context)

Sends at most one pending walk. Same-context reverse within reverse_guard_ms is "reverse".

Parameters

NameTypeSummary
meLocalPlayer
herePos
dirstring|integer
nownumber
contextstring|nilhunt/loot/search/... — reverse guard is per context

Returns

TypeSummary
boolean|nilok
string|nilerr one of: no player, stop, moving, blocked, reverse, walk failed

Arcane SDK catalog generated from scripts/sdk