-
0.11 Stable
released this
2026-09-28 09:50:10 +02:00 | 0 commits to master since this releaseAuto-walk mostly stops getting stuck. Across one long log, walks spent 25
minutes not gaining a metre, nearly all of it the walker trying the same bit of
wall over and over. Now a body that has not moved in four seconds marks that
patch as blocked and plans round it, breakable rocks are walls on the map until
someone breaks them, a glide that cannot reach its edge gives up in seconds
rather than twenty, and a walk cut off by a battle or a cutscene picks itself
back up once you can move again.It also finds people indoors. A quest that sends you to someone inside a
building only marks the patch of map their door is on, so Hoylake - in the Town
Hall - was never on offer from outside. The door that leads to the person the
quest names now stands in for them, and walking to it takes you through it.And it tells you about the way off ground that goes nowhere: the lift on the
lower Outskirts is named wherever you are on that ground, not only when it
happens to be loaded, and a step onto roomier ground is no longer refused as a
trap.Hoylake had not disappeared - he was indoors
"On The Hunt" in its return stage marks the whole Harbourtown chunk -
HoylakeQuest.gdhands the game's mapHOYLAKE_CHUNKand nothing finer - and
Hoylake is not in that chunk. He is in the Town Hall, an interior, which is not
in the world at all while you are outside. So the list offered "Quest area
(Harbourtown)", aimed at the middle of the chunk, and never him; and once you
were inside with him, the quest marker said its area was out on the overworld.The quest's own description names who to go to - "Return to Hoylake to show
him" - and the door that leads to him is in the chunk it marks. So now:Outside, a marked chunk with a door whose interior holds the person the
description names becomes that door, named for them: "Hoylake, in Town Hall -
On The Hunt". Who is inside is read off the interior's scene state without
instancing it, and only the recurring NPCs count - they are the characters
quests are written about; the townsfolk have no name a quest could use. The walk
is aimed through the door rather than at it, because a door only fires for a
body moving through it, and the door itself is no longer switched off for the
walk that is going to it.Inside, or anywhere the person is actually present, they get a second entry
under Markers named for the quest, alongside their usual one under People.Names are matched as whole words, longest first, so "Ian" is not found in
"Ianthe" and "Ranger Wilma" wins over "Wilma".Picked a walk back up after a battle
Overworld monsters chase you, and being caught is a scene transition into a
battle - which ended the walk for good. 26 quest-area walks in the log were
killed that way with 100 to 420 metres still to go, and 47 more by a cutscene or
dialogue taking control; every one left you to find the target and start again.A walk interrupted like that now says "Walk paused", and resumes on its own a
moment and a half after you have control back - "Resuming walk to ...". Not when
the interruption was the arrival (walking to a door, an encounter, a cutscene
trigger, or already within a few metres), not if you move or press one of the
mod's keys first, not in a different level or more than 40 metres from where it
stopped (a lost battle sends you off to be healed), and not after four minutes.Stopped trying the same wall for a minute
The log's stall hotspots add up to 1,471 seconds of walks that did not gain a
metre, and nearly all of it is one shape: hop fails, hop assist, reroute, hop
fails, on one spot. Every recovery the walker has judges itself by its own
progress toward its own aiming point and hands over to the next with a fresh
budget, so against something the map cannot see they take turns failing.A blunter question now overrules them: has the body stayed within 0.75 metres
for four seconds while following a route? Then the route runs through
something. The graph closes the ground between you and the waypoint you could
not reach - the columns either side as well, since obstacles are rarely one
tile wide - and the walk plans round it. Up to four times per walk, and the
closures expire after three minutes.A closure can never be the reason for a refusal: your own ground is never
closed, a closure does not make the ground MEASURE smaller (so no stranded
warning can start off one), and if the plan round it fails the closure is lifted
and you are told what is in the way instead - "a breakable rock" when the map
knows there is one there.Breakable rocks are walls until they are broken
The walk that could not go south from (364, -82) in the Outskirts was up against
a breakable rock. They are RigidBodies on their own collision layer, held still
until something hits them hard enough; the player collides with that layer and
every nav reader ignored it. The map graph routed straight through two of them,
and every obstruction probe reported "clear" at every height into the rock the
player was pinned against. Walking eight metres west by hand found the gap
between them, and the same walk routed first time.The map read treats an intact breakable rock as solid now, so routes go round.
One whose save flag says it is already broken is not read, since the game
destroys those as the area loads. One broken this session without a flag - they
come back on the next load - still reads as solid, which costs a detour round a
hole and is the right way round to be wrong.The two live probes that are about the body rather than the terrain - which way
is clear to steer, and what is in the way - use the body's own collision mask
now, so the log names what stopped it ("- hit DestructibleRock2") and the local
detour stops steering back into it.A way off the ground, read off the map instead of the scene tree
The refusal could name the lift only when the lift was streamed in. Remembering
what had been near the player once helped, but it cannot help somebody who has
never been near it - loading a save onto the far side of a patch and walking
until the ground runs out is exactly that case, and the log has it: the refusal
at 111,523ms had nothing to offer, and the lift first appeared in the registry
at 115,019ms, three and a half seconds later.TileTerrainalready reads every chunk's authored scene for its terrain, and
already collects the doors off that same pass. It collects the lifts now too, so
a way off is known from the moment the map read lands, whatever is in the tree.
Three sources, each covering the one before: the live registry, the memory, and
the map.A lift is duck-typed the way the doors are -
movement_offsetwith
movement_durationandprogressisWiredElevatorand nothing else in the
game. Naming its script here would preload it, and whatever its own chain pulls
in, at parse time; that is the trap every check intests/is written around.Off-tree,
_ready()has never run, so a lift's authoredtranslationis still
the BOTTOM of its travel - which is exactly the boarding point TargetRegistry
computes at runtime with_lift_boarding_point. Read live it would be wherever
the platform happens to be in its cycle.Only the raw facts are recorded. What a door or a lift is CALLED stays a naming
question, and the namer is pure and autoload-free so a check can call it - which
is why the index lives onTileTerrainrather than onTargetRegistry, which
hangs the harness outright. A door is named for where it LEADS rather than its
own node name, since the scenes are authored "WarpRegion", "Cafe Warp",
"Entrance Warp" - the thing that once listed six of them as "Door (Warp
Region)".Against the real Outskirts chunks with nothing in the tree: 13 ways off, the
lift found at (177, 5.87791, -69), on the right patch, named "Lift (Elevator)",
and picked at 64.6m - the live path said 64.9m in the field. 9 of the doors are
named for their destination.Stood still for twenty-seven seconds behind a lamppost
A glide leg planned as "3.1m out and 0m down, 0.34s aloft" ran from 300,605ms to
327,634ms. Twenty-seven seconds, never once airborne, the player standing on the
spot hearing "Quest area (Autumn Hill), 345 meters away" seven times over.GLIDE_MAX_SECONDSis 20s and it was the ONLY way out. That is a fair backstop
for a flight genuinely still in the air, where the physics engine is in charge -
but the ground phase, walking out to the lip before the jump, had no check on it
at all. So a pawn pushing into something on the approach held the whole walk for
the full twenty seconds and then some.What was in the way is in the log, a second and a half after the leg was finally
abandoned and the ordinary machinery got a look at the same spot:contacts: on_floor=False ... is_on_wall=True ... slides=1: lamppost_world_1 at (53.07, 11.177, -13.72)A lamppost. The walk has had
MAX_NO_PROGRESSfor exactly this since the
reactive-steering days; the glide leg simply never got it.It is timed from the last real PROGRESS now, not from the start of the leg,
which is the property that matters and the one a fixed cap cannot express - a
long approach has to stay free. Replayed against that leg's real geometry, the
lamppost gives up in 3.6 seconds, while an uninterrupted 14m approach and a
27.6-second slow-but-closing one are never abandoned at all.Only while grounded and not yet airborne. Once the pawn is in the air
GLIDE_MAX_SECONDSis still the backstop, and the stamina wait - which stands
still deliberately, waiting for the bar to refill - returns before any of this
and is untouched.Remembered the lift on the tick, not at the refusal
The fix above was right about the cause and wrong about where to record it. It
remembered only what_way_off_this_grounditself found - and that function
runs ONLY when a refusal or a stranded watch asks it, which is precisely when
the player is furthest from the way off and it has streamed out. So the memory
was empty exactly when it was needed.The next session showed it plainly. The lift was in the registry and read out
loud, and the refusal came 84 seconds later with nothing recorded in between:97392 "Lift (Elevator), 56 meters away" 181028 "...no walking route off it"The sighting is taken on the tick now, walking or idle, from whatever the
registry happens to hold - and it costs no graph work at all, just the
positions. It runs before the walking/idle split, because the lift is almost
always passed DURING a walk and the refusal that needs it comes after that walk
has run out of ground. The graph question - is it on THIS ground - is still
asked once, at the refusal, against the flood that is being taken anyway.Up to 16 are kept. The nearest one STILL on this ground wins, rather than simply
the nearest: a door remembered in the town above would otherwise be named to
somebody standing under it.Said the ground went nowhere while standing on the lift out
"I got as close as the ground I can reach allows, about 181 meters short:
there's about 129 by 109 meters of ground here and no walking route off it."
There is a way off it. The tutorial lift is standing on that very patch, and the
mod had said so itself twenty-three seconds earlier:150868 at (131, 8, -37) "There's a Lift (Elevator) on this ground, 56 meters away" 173536 at (233.7, 8.1, -38.1) "...no walking route off it" - nothing offered at allSame patch, same lift, same session. What changed in between was a hundred
metres of walking:_way_off_this_groundlooks the lift up inTargetRegistry,
which holds what is STREAMED IN, so walking away from the lift takes it out of
the list. The sentence that most needs it is the one said furthest from it,
after a walk across the patch has run out of ground.Neither the lift nor the ground under it can move while the player is standing
on that ground, so the spot is remembered and re-tested against the current
flood with the sameground_holdsit was found by - which answers "is it still
on this ground" without the node existing. The memory is dropped as soon as a
flood no longer holds it.Worth writing down, because it looks like a counterexample and is not: the top
of the sea wall is NOT in this patch's flood, but flooding from up there does
reach the lift. The graph is directed, the drop is an edge one way, and a player
on the wall really can get down to that lift - so the memory rightly survives
there.check_navwayoff.gdpins all of it against the real chunks, including
that the lift remembered at (131, 8, -37) still reads as on this ground from
102.7m away.Refused to walk onto roomier ground, seven times
The other half of the same walk, and the reason the player was down there at
all. Seven refusals in thirty-eight seconds, every one of them this:route refused: it ends at (126.4, 8, -50.6) on ground of 2387 nodes (the bar is 10118), which does not reach back to (79.2, 10, -27.4) (itself on ground of 1442 nodes)1,442 nodes, refusing a move onto 2,387 - ground 65% bigger, and the piece with
the lift on it. The guard exists to stop good ground being traded for a trap,
and it cannot do that job from inside a trap; the mod had already announced that
pocket as stranding before the first refusal.Node count is the mod's own measure of how trapped a piece of ground is -
_stranded_bar,boxed_inandway_out_ofall read it - so more of it is the
mod's own definition of better. A route onto strictly roomier ground is not
refused now. STRICTLY, so a sideways move still is: the pinned case is a 49-node
shelf onto a 49-node pocket, nothing traded for nothing.This is deliberately not the bar Control plus End uses.
way_out_ofPICKS
somewhere to send you and must only promise real improvement - "four better, out
of eighty thousand" was that bug. This one FORBIDS a move the player asked for,
and the honest default when it cannot show the far side is worse is to let them
go.Said it five times because the game was frozen when you asked
The log has 487 bursts of one sentence requested again and again inside a few
milliseconds, each read out in full. The worst runs five deep: "Quest area
(Autumn Hill), 352 meters away" at 53,724ms and again at 53,729, 53,734, 53,739
and 53,743. Nobody presses a key five times in nineteen milliseconds.They came from two unrelated places, which is why the guard is in
TTS.speak
rather than at either source:Input that piled up during a freeze. A NavRegion build is synchronous, and
in this log they run to a median of 960ms and a p90 of 2,956ms - 334 of 683 over
a second. A player who presses Home again because nothing answered is not asking
twice. Godot hands the whole backlog over in one frame once it unblocks, so five
presses become five identical reads, all with the same distance in them because
the player has not moved between them.A signal the game fires more than once.
tracked_quest_changedarrives two
and three times for a single change, and the quest readout went out each time.The guard is keyed on the TEXT, and that is the whole safety argument. Cycling
targets with Page Down, or moving down a menu, produces a different sentence
every time and is never touched - collapsing those would eat presses and leave
the selection somewhere the player was not told about. Only a verbatim repeat
inside 150ms goes, and at 150ms the first sentence has barely started speaking.
The window is a duration rather than a frame count because the "Teleported to"
burst spans 49ms, wider than one frame at 60fps._last_atdeliberately does not move when a call is collapsed, so suppression
can never outlast one window however long the backlog is - a held key cannot
mute a line indefinitely.This is the symptom rather than the cause. The builds still freeze the game; see
check_ttsrepeat.gdfor the numbers.The refusal did not say how big the ground you were standing on was
"it ends at (126.4, 8, -50.6) on ground of 2387 nodes (the bar is 10118)" reads
as a trap either way, and it is only a trap if the ground being LEFT is roomier
than that. In the same session, six seconds later, the stranded watch put the
player on 1,442 nodes - so that refusal was turning down a move onto ground half
again bigger than the ground it was protecting, and nothing in the line said so.
Both sizes are logged now. The verdict is unchanged; it is the reading of it
that was impossible.Walked down somewhere it could not walk back from
The refusal that named the lift was the second mistake in that walk. The first
was fifty seconds earlier and put the player where the refusal happened.The walk set off from a 1,332-node pocket and at roughly (126.5, -40) hopped
down onto a different one - 2,387 nodes, the lower Outskirts - withjump=True
and no edge in the tile graph coming back. NavRegion planned that descent
happily, and correctly by its own lights: its region is a corridor drawn round
the straight line to the goal, the drop is insideMAX_FALL, and nothing in it
asks whether the ground on the far side goes anywhere. Neither pocket holds
Autumn Hill. So the walk traded one trap for another and then refused from
inside the second, having spent the intervening minute making the situation
worse.The graph could have said so before a step was taken. It is directed - a drop
is an edge one way - so "can I get back" is just "is where I am standing inside
the ground I would be flooding from down there".A route is refused now when its end cannot reach back to where the player is
standing. Three ways that is fine and must stay fine, which is most of the
design:The far side is well connected. Stepping off a ledge onto the map is not a
trap, it is how you get down. Judged by the same share of the map that the two
stranded watches and Control plus End already use, so the four cannot disagree
about one piece of ground.You can walk back. A ramp, a slope, a staircase - the ordinary case, and the
flood answers it directly.The goal is down there. Then going is the whole point, and not being able to
return is the player's business rather than the mod's.It is costed to be free when it does not apply. A route with no real drop in it
cannot strand anybody and never floods at all. When it does flood, it floods
once, from the route's END, capped at that bar - so the common case, a drop onto
the main map, stops at the cap and never pays for the rest. The one flood
answers all three questions.That gate is where the first version of this went wrong, and the field log shows
it losing the exact walk it was written for. It borrowed the landing watch's
ONE_WAY_DROP_MIN, on the reasoning that "a drop worth the name" should mean
one thing in the mod rather than two - but the two watches are not asking the
same question. The landing watch measures a fall that has already happened, from
the last floor the player stood on before leaving it, and 2.5m is a sensible
floor for "a real plummet rather than a kerb". A route is asked something else
entirely: is any planned step down one the body could not climb back up? In the
log, waypoint 11 sat at y=8 and waypoint 12 at y=6 - exactly two metres, half a
metre under the borrowed gate - so the guard returned before it ever looked at
where the route ended. It ended on the 2,387-node lower Outskirts, which does
not reach back. The guard was installed, correct, and never ran.The route's gate is
MAX_STEP_UPnow: the most the body can climb is the
smallest step down that might not be undoable, and "might not" is the right bar
for something whose only job is deciding whether to ask. ExactlyMAX_STEP_UP
is borderline on height alone and routinely refused for other reasons anyway -
what the body would land on, what it would have to sweep through - which is this
walk exactly. Below it a descent is comfortably reversible, so the ramps and
staircases that make up almost every route still pay nothing.Glide legs deliberately do not come this way. A glide is the player asking to
cross a gap and GlidePlan picks where it lands; refusing one on these grounds
would be second-guessing an explicit choice.The refusal says what it found - "the only way on I can find drops onto ground I
couldn't walk back off, and X isn't on it" - and, since it is describing ground,
names a lift or doorway standing on it the same way every other refusal now
does.One caller was reaching past the planner's own reason for a generic height
diagnosis._resume_after_glidewas the only one of four doing that, and after
a glide the planner's measurement is almost always the better answer.check_navnoreturn.gdpins the rule on plateaus built to be separate components,
including all three escape valves - the case that must fire, and the three that
must not - and pins the gate on the waypoint heights out of the log, since every
one of those cases is dead code behind it.check_navwayoff.gdpins the field
descent itself on the real chunks: the landing cannot walk back to where the walk
set off, and Autumn Hill is not on it either, so the drop bought nothing.Told there was no way off ground with a lift standing on it
The map read now lands mid-walk, so the walk that used to stop 231m short of
Autumn Hill gets 50m further and stops for a better reason. The new one is
measured correctly and says something false:there's about 129 by 109 meters of ground here and no walking route off it. Shift plus End teleports you there. Control plus End puts you back on open ground.Rebuilding the graph off the same chunks reproduces that to the node - 2,387 of
them, 129.1m by 109.1m, and the only thing bounding it is a four-metre rise it
takes 156 refused adjacencies to describe. There is genuinely no walking route
off. What is standing on it is the lower Outskirts tutorial elevator, and the
floor button that drives it twenty-one metres from that. The mod was reading the
lift out loud in the same breath:131534 "Interactable (Lever), 50 meters away" 131800 "Door to Outskirts Pipe Cave, 50 meters away" 135900 "Lift (Elevator), 51 meters away" 132482 "...no walking route off. Control plus End puts you back on..."The mod had already worked this out once. The note over TargetRegistry's
_lift_switch_effectnames this plate and this lift and says outright that the
lift "is the only way up out of the lower Outskirts" - it was written to fix
what stepping on the plate says, and stepping on the plate is not where somebody
who cannot see the lift start moving asks the question. The refusal is.So the graph's silence is not evidence on its own. It has no concept of a lift
or a doorway, and a patch with either standing on it is not a trap whatever its
walking edges say. Both the refusal and the stranded watch ask now, and name
what they find - "There's a Lift (Elevator) on this ground, 51 meters away" -
in place of a teleport hint the ground did not need.Named rather than routed to. Riding a lift is standing on a moving platform and
waiting, which the walker has no idea how to do; a player told the lift is fifty
metres away can go and take it, and a player told the ground goes nowhere
cannot.That needed one question the graph could not previously answer.
reachable_extent_from
measures the ground and throws away which nodes it was, which is right for "how
big is this" and useless for "is that lift over there on it" - one flood with
several answers.ground_underhands the flood back andground_holdsasks
about a spot for the price of a cell lookup, at the same reach the endpoint
linking uses, because a boarding point or a threshold is never a tile centre.check_navwayoff.gdpins it on the real chunks: the lift and its plate are on
the patch, and the top of the sea wall four metres up - the spot Control plus
End offers, precisely because it is NOT on the patch - is not. That pair has to
come out differently or the clause would fire on anything at all.A walk that starved the map read that would have finished it
Autumn Hill again, and this time nothing about the marker was wrong - the mod
simply never got to look at the map. From the field log, the last two lines of
a sixty-second walk:2804906 walk ended: reason="...about 231 meters short..." 2808435 TileMapper: map read in 72441ms ... 80947 nodes, 295986 edgesTwenty-eight milliseconds between giving up and having the answer. The read had
been one tick from done for the whole minute.The read only ever ran between walks.
_processticked it inside its idle
branch and returned, so pressing Shift+Home stopped it dead until the walk was
over - and a walk is exactly when the map is wanted. The player had warped into
the overworld twelve seconds earlier and ordered a quest area 340m off; the read
made no progress at all from that moment until the refusal. "72441ms" is
wall-clock, not work: 12.2 seconds of reading, 60.2 frozen, one tick. It is also
why the read times across the log run from 8 seconds to 206 for the same 128
deterministic chunks - they were measuring how long the player stood still.Two things were missing for that whole walk, and either alone loses it. The
quest marker stayed at the flat fallback height - every line readsground guessed at y=8, and the walk ran at (384, 8, -192) where the ground is really
y=20, so the goal sat twelve metres inside a hill and no complete route to it
could exist. And NavGraph had no map at all, so every leg was planned by the
near-field region alone and every one came backpartial - goal was clamped. It
glided three times, walked to the shoreline, found the ground stops one cell on,
and refused. The graph that routes there in 161 waypoints, not partial, arrived
three and a half seconds later.So the read runs during a walk now, before the glide and hop-assist branches
that would otherwise starve it across a three-leg glide just as effectively. It
still outranks the column-at-a-time warmer for the frame, mid-walk as when idle.
The cost is seven or eight seconds of low frame rate at the start of the first
long journey on a map, which is the trade the deadlock was hiding.And landing mid-walk is worth acting on rather than waiting out: the walk is
re-aimed and re-planned on the finished map the moment the controls are its own
again - not mid-glide, where pulling the route out from under a leg in the air
is how a glide becomes a swim. Re-aimed as well as re-planned, because a quest
area and a map-screen mark are both re-grounded on every scan, and until the
read lands the only answer available for a chunk nobody is near is the guess.One diagnostic gap went with it. A marker's aim was logged when the marker was
created and never again, so the log showed the guess and never the correction -
which reads exactly like a correction that never happened. It is logged whenever
the answer changes now.A quest area aimed at a height nobody measured
Autumn Hill, attempted across two sessions and never reached, on foot or by
teleport. The marker was in the wrong place the whole time:quest chunk marker: key=(6, -3) probe=empty (chunk likely not streamed in) pos=(384, 8, -192)That y=8 is a guess, not a measurement. A quest area names a 64m chunk and its
height has to be asked for, so the mod fires twenty-five ground probes across
it - and this game loads world geometry by proximity, so a chunk nobody is near
has no collision in it at all. Every probe comes back empty and the marker gets
parked at the chunk's centre at a generic overworld height. The note on that
fallback said it "self-corrects once real terrain streams in as the player gets
closer", which is true and worth nothing when the reason you want the marker is
that you cannot get closer.The real ground over that spot is y=20. Twelve metres is not a rounding error,
because of what the planner does with it: a route has to END somewhere the map
joins up, and the nearest walkable ground to a marker buried twelve metres under
a hill is too far off to join. So no complete route to Autumn Hill could exist -
only a partial, which is the weakest answer the planner has. It loses to any
fresher one, gets thrown away when it cannot close enough ground to be worth
walking, and turns arriving into "about 215 meters short". Measured over the
whole map from one of the spots the walk kept turning round at: 173 waypoints to
the marker, flagged partial; 161 waypoints to the ground the marker names, not
partial at all. The same journey, one of them unusable.The mod already reads all 128 chunks of the overworld straight off the scene
files, with no physics and no streaming - which is exactly the blind spot the
probes have. So when the probes find nothing, it asks the map instead, and only
falls back to the flat guess for a map nothing has read yet. Waypoints marked
from the map screen are aimed the same way, for the same reason.It waits for that read to finish before trusting it, which is not a detail: a
column's headroom is worked out in the pass that runs once all 128 chunks are
in, and until then there is nothing there to read. Asking sooner crashed the
game outright on the next target rescan. The reader now refuses a map that has
not been finalised, whoever asks it - so the marker is corrected about a minute
and a half into a session rather than instantly, and the target list picks it up
on its own the next time it scans.Two things that went wrong downstream of it are fixed as well, because both
outlive this particular marker:A walk that went round in a circle. Where a goal genuinely cannot be routed
to exactly, both planners can only offer partial routes, and the near-field one
won on nothing but being fresher - even when it was heading back the way the
player had just come while the map's own graph had a way round. Now the one that
ends nearer the target wins, and only when it is decisively nearer, so the
near-field planner still keeps every close call and goes on profiling ground
nobody has walked yet.A teleport that put you back where you started. Shift+End aimed at the
target's own position. Where that is not somewhere a body can be, the player was
put down inside the scenery, fell out of the world, and the game returned them to
the last ground they stood on - the exact spot the key was pressed to leave -
while the mod announced "Teleported to" each time. The destination's column is
checked for a floor now, and when there isn't one at that height it aims at the
nearest surface there is.A patch measured with the wrong ruler. "Everything I can walk to from here
is about 24 by 25 meters" was measured by the near-field planner, whose region
is a box drawn around the straight line to the target - so the flood stops at
the box, not at the edge of the ground. The same 24-by-25 turned up at two
unrelated spots in two sessions, which is the tell: it was reporting the ruler.
The real patch at one of them is about 130m by 110m. There was already a guard
against a patch that reads too big; one that reads too small passed every test
and stated a falsehood confidently.It asks the map's own graph now, which has no box around it, and stops counting
once the ground is plainly not a trap. That opens a third case which had no
wording: ground too roomy to call a pocket that still goes nowhere - 2,387 nodes
of an 80,947 node map, with no walking route off it. It says exactly that, in
the same words the stranded watch already uses for somebody who loads a save on
such a patch, and it offers Control plus End like the other dead ends rather
than describing a kerb one step away.An escape hatch that moved you thirteen metres onto ground just as stuck.
Control plus End looks for "somewhere better", and the rule was "more ground
than here" - which a single node satisfies. Stranded on 2,387 nodes of an 80,947
node map, it offered a spot 13.8m away that walks out to 2,391. Four better, out
of eighty thousand, and every refusal in the session recommended that key. It
now has to clear the same share of the map that the mod uses to decide you are
stranded in the first place, so the key and the reason for pressing it finally
agree. On that same patch there is genuinely well-connected ground 16.4m away -
it reaches 41,586 nodes - which is what the key finds now.And when there is nothing better within reach it says so and stops offering the
key, rather than promising a way out it cannot deliver. Describing the ground
and knowing what to do about it are two separate questions now, which is why
one sentence could previously get the first right and the second wrong.Being told you are stranded, rather than told about a kerb
Quest area after quest area refusing to be walked to, and once "no route to
Harbourtown" - from a spot with plenty of ground in every direction.The refusals were right. The player had dropped onto a plateau east of the park
and could not walk off it: reading the whole map analytically, everything
reachable from there is 446 nodes across 44 by 52 metres, with no walking route
to town at all. What was wrong was the sentence. "The ground carries on but
there is no way onto it from here" describes the first thing in the way, which
is the right answer at a wall and a hopeless one when the problem is that there
is nowhere to go - it sounds local, and it sounds like walking a bit further
round would fix it.When the ground you can reach is small, it now says how small: "everything I can
walk to from here is about 24 by 32 meters - this ground doesn't join the rest
of the map". Roomier than that and the obstacle really is the story, so the
older wording stands.A party member says which tape they are carrying
"patricus, Lv 14" and no sign of what he was holding. The two tapes each of you
actually fights as are drawn inside the party member buttons, and a tape's name
sits six levels down inside one of those - which is why a reserve slot reads
fine on its own and these two did not: inside a member button it is seven, one
past how deep the reader goes. So the two tapes that matter most were the two
that could not be heard.They read as "patricus, Lv 14, Sirenade" now.
Tapes say who is carrying them
A tape belongs to a person - you and your partner each hold your own, six
between the two of you - but the party screen only shows that by position. The
two buttons along the top are a member and their lead tape; every other tape is
one flat list with nothing attached saying whose it is. So a reserve read as a
bare "Dominoth".That matters because there is no way to hand a tape over. The only move is a
swap: two tapes trade places, and each of you keeps the same number. Choosing
which pair to swap without knowing who holds what was guesswork.They read as "Dominoth, Kayleigh's" now. The party member buttons are unchanged,
having said the name already, and a tape in storage belongs to nobody and says
nothing.Both of those names come out of the game as raw localisation keys - the game
itself never translates them either, it assigns them to a Label and lets Godot
do it on the way to the screen - so reading the property straight off announced
"Kayleigh, Lv 13, SIRENADE_NAME". They go through the translator now, which
leaves a tape you have renamed yourself alone.Downloads
-
Source code (ZIP)
1 download
-
Source code (TAR.GZ)
0 downloads
-
Source code (ZIP)
-
0.10 Stable
released this
2026-09-02 17:04:33 +02:00 | 13 commits to master since this release0.10
The map speaks. It was the last whole screen in the game with nothing readable
on it - 128 identical buttons and a cursor somewhere in them - and now every
square reads out its name, what is in it, whether you can fast-travel there,
and where it sits relative to your own square. Ctrl+P marks a square, or the
ground under your feet, and auto-walk will take you to either.Also in this one: the buttons you cannot tab to are named as a menu opens, your
turn says when fusion is ready, auto-walk stops climbing the thing it was sent
to, a wall fifty metres off no longer means there is no way round it, and a
quest area you cannot head for from indoors says so.The map is readable, and you can mark a square and walk to it
The map in the pause menu said nothing. It is a grid of 128 buttons with no
label, no icon and nothing else in them - all named "MapChunkButton" - and
everything a sighted player reads about the square under the cursor is in a
panel underneath the map rather than in the button. So the focus readout found
the node name, said "Map Chunk Button" once, and then never spoke again, because
all 128 of them say the same thing. The map was a grid of silence with a cursor
somewhere in it.The panel is the answer rather than a reimplementation of it: it is already the
game's own account of the square, it already handles one not yet revealed, it
already folds in quest markers and "your location", and it is already up to date
by the time the focus poll runs. What it cannot give is where the square IS -
a sighted player reads the cursor against the shape of the map - so that comes
from the square's own position in the grid, as an offset in compass directions.
"Town West. Chemist and Museum. 2 south and 1 west of you." A square you have
not explored yet says so instead of going quiet, which is what makes an
unexplored map something you can still feel the shape of.Then Ctrl+P on a square marks it, and marking it selects it - so close the
map, press Shift+Home, and auto-walk sets off. It joins a Waypoints category
next to People and Doors, and Ctrl+P on an already-marked square unmarks it. Out
in the world the same key marks the ground under your feet, which is the other
half of the same idea: mark where you were working, go elsewhere, walk back.
Ctrl+Shift+P drops the selected one, eight at a time.A square is 64 metres of world with no known height, so it is aimed at exactly
the way a tracked quest's area is - ground-probed across the chunk, at whichever
standable, non-water point is nearest - and arrived at with the same tolerance,
because being anywhere in it is the point. And a mark is only offered where its
coordinates mean something: a spot on the overworld is not walkable from inside
a shop, and telling the two apart is not obvious, because an interior carries
the overworld's own map metadata. That is how the game knows where to draw "you
are here"; the pinned chunk is the only thing that distinguishes them.Ctrl+P also has to be swallowed rather than merely handled. Plain P is the base
game's party menu, and Godot treats an action's modifiers as a minimum, so
Ctrl+P matches it perfectly well - marking a point would otherwise throw the
party screen up over the announcement.The buttons you cannot tab to are read out
"I can't access the multiplayer menu using keyboard." R was always the answer -
there was just nothing anywhere that said so.Some buttons switch their own focus off on purpose. They are prompts for a key
you press while the menu is open rather than things you move onto, and a sighted
player reads them along the bottom of the screen: "[R] Go Online". Arrow keys
never reach them, so there was no way to learn one was there.A menu now names them as it opens, alongside the other things about it that no
focus move will ever announce - "Map Pause Menu. Use Space or E to select -
Enter will close this menu instead. Also Go Online on R."Knowing that fusion is available
Fusion looked broken because there was no sign of it. The Fuse button on the
order wheel switches its own focus off until the meter is full, so left and
right skip straight past it and nothing ever mentioned it - while a sighted
player has been watching the meter fill and the button glow for several turns.Your turn now ends with "Fusion ready" on the turn it becomes usable. Once,
because a thing you already know is not news and that line lands on every turn
of every battle.Auto-walk stops climbing the thing it was sent to
Three attempts at an Office Cabinet in the Landkeeper office, each ending "it's
about 3 meters below the nearest ground I could path to" - from on top of the
cabinet.One cause, and it explains the shopkeeper too. The walk stops 1.25m from its
target and the pawn's own body is 0.9 wide, so anything wider than 0.35 has to
be stood INSIDE before it counts as arrived - and walking into something is
exactly what makes the walker jump. It clears 2.2m, so it lands on top. Every
NPC is 0.9 wide like the player, which is why Clemence always ended up
underfoot; a cabinet is simply taller than you can reach down from.It stops beside things now, by however wide they actually measure, capped well
inside arm's reach. Floor buttons still get stood on and lifts still get ridden.A wall 50 metres off no longer means there is no way round
A walk to an NPC 66m away gave up after 14 of them: "it looks like it needs
climbing, which you haven't unlocked yet", about a 4m rise the player then
walked round unaided, arriving on foot a minute later.The wall that verdict reads is found in a corridor drawn around the straight
line to the target, so it is the nearest local barrier and not a fact about the
map. Close to a target that corridor covers every approach worth the name; fifty
metres out it does not. Past that range the answer is the shortfall instead,
which names the rise rather than blaming an ability you do not have.A quest area you cannot head for from indoors says so
"Acting On Your Best Behaviour, press Enter to Untrack or View Map" - and no
marker. Tracked from a table in the Gramophone Cafe, for a quest whose area is
perfectly real, out at chunk (4, -1).A quest area is a chunk of the overworld, and the scan that turns one into a
marker only runs out there - rightly, because a point 256 metres east means
nothing inside a building, whose scene has its own coordinates entirely. So
indoors the Markers category simply is not offered, and 0.9 said nothing about
it: the note added there only covered a quest with no area at all, not one whose
area is outside.Tracking now says which it is - "Its area is out on the overworld - step outside
before heading for it."Downloads
-
Source code (ZIP)
0 downloads
-
Source code (TAR.GZ)
0 downloads
-
Source code (ZIP)
-
0.9 Stable
released this
2026-09-01 12:13:43 +02:00 | 18 commits to master since this release0.9
Conversations behave. A line is read once, when it has finished appearing,
without the box announcing itself over the top of it and without the whole thing
being echoed back at you a few seconds after you dismiss it.Auto-walk stops declaring failure over things that worked. Landing on the
shopkeeper you walked to is arriving, not "she is about two metres below you and
may need stairs" - it asks what the interact key is actually pointing at rather
than guessing from heights. When something really is out of reach it says so,
and when the ground runs out it names what it ran out at instead of advising you
to go and find somewhere more open. Long walks also stopped freezing every
fifteen seconds: the ground ahead is mapped while you walk it, which is roughly
four times quicker per leg.The list of things to walk to is more honest. An emptied chest leaves it, a
floor button names the machinery it works and how far off that is, lifts are
somewhere you can be sent - which in the Outskirts is the only way onward - and
a tracked quest with nowhere to send you says as much rather than silently
dropping its whole category.Saying when a quest has nowhere to send you
Tracking a quest with no map marker made the Markers category vanish from the
cycle entirely, with nothing said about why - and from inside that there is no
telling "this quest has no marker" apart from "the mod is broken"."Land of Confusion" is exactly that quest. It only puts a chunk on the map once
you have visited the region that reveals that Archangel, so at nought of eight
song parts it points nowhere at all, by the game's own design - a sighted player
sees an empty map and knows where they stand.Tracking one now says so: "Quest tracked: Land of Confusion. Collected 0 of 8
song parts. No area on the map for this one - nothing to navigate to." Not "not
yet", because plenty of quests never have a place at all, being satisfied by a
counter or a conversation, and promising one would be worse than saying nothing.Conversations stop echoing their own last line
Every conversation ended by repeating the line it had just finished on, three to
seven seconds later - long enough to sound like a second speaker rather than a
stutter.The message box slides in on a child Control of its own, and dismissing a line
leaves the keyboard focus sitting on that Control with the box itself hidden.
The dialogue reader bows out there, correctly - a hidden box has nothing to read- and the general-purpose focus reader took over, found the line still sitting
in the label underneath, and said it again. The repeat guard could not catch it,
because moving the focus is meant to re-read: an option list changes its value
under a focus that never moves, so the same control saying the same words has to
stay readable.
Dialogue has one reader and it has already had its turn. While the focus is
anywhere inside that box - shown or hidden - the general reader now says
nothing.Being told when you have arrived at something you still cannot touch
"Arrived at Wood" three times over, a teleport in the middle, and not once did
anything get picked up. The player was finishing each attempt about a metre
ABOVE the item, stood on whatever was beside it - inside the arrival radius,
inside the height gate, and out of the interact key's reach the whole time. The
arrival was true and useless, and the item stayed in the list, which read as the
list being wrong.The game already answers this: the interactor picks the closest overlapping
thing every frame, and that is exactly what the interact key acts on. So it gets
asked. A moment after arriving - long enough for the last of the deceleration,
which is often what brings something into range - anything still out of reach
says so, with the height when the height is the reason:"Wood is out of reach from here - it's about 1 meter below you."
Only for things you actually interact with, and only when the question can be
answered at all. A door is walked through, a floor button is stood on, and an
interactor switched off for a cutscene knows nothing about anything - none of
those get a sentence.An emptied chest stops being offered as its own contents
Take the wood and the wood is still in the list. The chest was the wood.
A chest is found by the same test a dropped item is - it carries an
item
resource - so one holding Wood lists as "Wood", which is fine right up until you
open it. Dropped items leave the list properly: the first thing picking one up
does is setdisabled, which the scan already looked at. A chest has no
disabledon it at all. The flag that says its contents are gone isopened,
which nothing was reading, so an emptied chest went on being offered - under the
name of the item it no longer had - for the rest of the session, and after a
reload too, since that flag is restored from the save.A chest that is merely shut still lists. Locked is not empty, and "there is a
chest here I cannot open yet" is worth knowing.Switches say what they switch, and lifts are somewhere you can go
Stepping on a floor button got you "Switch (Floor Button) activated" and nothing
else - not what it did, not where the thing it did it to was. The plate in the
Harbourtown Outskirts powers a lift twenty-one metres away, and that lift is the
only way up out of the lower Outskirts and onward to New Wirral Park. From the
logs: stand on the plate, hear it activate, ask to walk to the quest area, get
told the ground stops. Nothing anywhere joined those three facts up.The game's wiring turns out to be readable, so it is read now. A switch names
the machinery it drives and how far off it is - "Floor Button activated. It
works the Elevator, 21 meters away." - following the wires through the relays in
between to whatever has a body on the end.Those relays have also stopped talking. "Switch (Wire) activated" was two lines
in every three this used to say, about a node with no position worth reading.And lifts are navigable. A
WiredElevatorhad been filed with the relay icons,
which was wrong in the way that mattered: it is a platform you stand on, and
often the only way onto the storey above. It lists under Switches and the walk
aims at the bottom of its travel, since its own position is wherever the
platform happens to be in its cycle.Long walks stop freezing at every staging post
A walk across the map is planned a leg at a time - the goal is pulled in to keep
the search local, you walk to it, and the next leg is planned from there. That
part was fine. What was not is that the mapper which fills the ground cache was
switched off for the whole of every walk, so each re-plan profiled its ground
from cold after fifteen seconds of walking in which nothing had looked at it.
From the logs, three legs of one walk:leg 1 (planned standing still) 23 cache misses 416ms leg 2 (planned mid-walk) 5385 cache misses 1806ms leg 3 (planned mid-walk) 5770 cache misses 1759msThe mapper now runs during a walk too, on a smaller slice of the frame, and aims
at where the walk is going rather than circling where it is - the next leg's
search is a box drawn on the line to the goal, and a ring around the player only
ever covered its first twenty metres. Measured on a 58m leg: 1382ms cold, 947ms
after the old ring, 330ms after the aimed one, with not a single ground probe
left for the build to pay and the same route out of it either way.Landing on somebody's head still counts as arriving
The other half of the Clemence walk, and the half that survived the first fix.
Told to hold while airborne, the pawn duly waited - and then landed on top of
her. Feet down, horizontally aligned, target two and a half metres below: from
the inside that is indistinguishable from standing on the rim of a hole, so the
mod said she needed "stairs, a ramp, or a path around the edge" and offered the
teleport. You could talk to her perfectly well from up there.The height check was only ever a proxy - it exists for the front door six metres
up a balcony, where standing in the street underneath is not arriving. There is
no need to guess from geometry when the game answers directly, so it asks now:
if the interact key is aimed at the thing that was walked to, the walk is over,
whatever the heights say. Nothing extra is announced, because nothing went
wrong.Doors, markers and floor buttons are not interacted with at all, so those still
rest on the height check. And when the target really is out of reach up there,
the route is planned again from where the pawn stands - two and a half metres is
an ordinary step down - rather than the walk simply ending.Walking to somebody no longer stops a metre short of them
Three walks to Clemence in a row ended "she is unreachable on foot - it's about
2 meters below the nearest ground I could path to", from 1.8m away on the same
floor she was standing on, and offered the teleport for a shop counter.The last step to a target is very often a hop - the walker jumps at anything it
bumps into, and a counter, a kerb or the person themselves is enough - and the
jump clears 2.2m. Arrival is decided on horizontal distance, so it fired on the
way up, and the check that verifies the target is not on some other storey
measured the height of the JUMP and reported it as the height of the ground.
Being in the air is now no answer at all: the walk holds, waits for the landing,
and asks again with the player's feet down.Being told what the ground actually stopped at
A walk to the New Wirral Park quest area ended at the south end of the
Outskirts with "I got as close as the ground I can reach allows, about 173
meters short", and then, from that same spot, "the ground I can reach doesn't
connect to it. Try moving somewhere more open first."The second is bad advice. Every column a metre north of there sits 6m higher -
that pocket's entire northern boundary is one sheer step, with no ramp in it
anywhere - so no amount of moving about opens a route. The mod had that in its
own lattice and threw it away.It now describes the lip it stopped at: a step so many metres up, a drop so many
metres down, an edge with nothing beyond it, or ground it can see but cannot get
onto. Both the shortfall and the outright refusal carry it, and both now point
at Shift+End, which is the answer when the ground genuinely does not go there.Dialogue boxes stop cutting off what was being said
"Message Dialog menu". "Menu Dialog menu". "Spooky Dialog menu". None of those
tell you anything - the line inside the box is the whole content, and it is read
on its own. Worse, a menu name is announced over the top of whatever is being
spoken, so these arrived mid-sentence and took the line with them. A conversation
flips between the message box and the list of things you can say back at every
turn, so it happened constantly: one line from the logs was 78 characters long
and got cut off 3.7 seconds in, leaving nothing to go on.The boxes are no longer announced by name. What they do keep is the pause that
made the announcement half-useful in the first place, so the line or the option
that lands next waits for the current one to finish instead of wiping it.A line of dialogue really is read once now
Two ways it was still doubling up.
A menu opening on top of the message box - the full-screen shaking one an
Archangel speaks through is the case that showed it - left the box still holding
the keyboard focus underneath. The reader that knows about dialogue only looked
at whichever box was on top, so the line came through the general-purpose reader
as well, in different words, which is exactly what the "have I already said
this?" check cannot catch. It now asks who has the focus rather than what is on
top.And coming back to the message box after picking something from a choice list
re-read the line you had already heard, just before the new one arrived. That was
a fault in 0.8's own dialogue change: the check for "already said" was sharing a
note with every other readout, and the option you had just chosen had overwritten
it. Dialogue keeps its own note now.Related: the shaking Archangel box types its words out a character at a time like
every other, and was being read the instant it appeared rather than when the
words had arrived. It now waits, as the message box does.Bestiary rows you have not met are told apart
Moving down a run of unrecorded species read the same sentence over and over -
"???, Bio 2, Raise this monster's tape to 5 stars to unlock more information" -
with nothing to say you had moved, or where you were. The info panel hides its
number for a species you have not seen, but the row in the list still shows one,
so the number is read from there. A recorded species is unchanged.Downloads
-
Source code (ZIP)
0 downloads
-
Source code (TAR.GZ)
0 downloads
- and the general-purpose focus reader took over, found the line still sitting
-
0.8 Stable
released this
2026-08-31 12:36:09 +02:00 | 23 commits to master since this releaseThree things that could not be heard at all can be heard now: the menu that
stops a fight to ask which tape a downed party member should use next, which was
completely silent and cannot be cancelled; a bestiary entry, which read as a name
and a page number with the whole entry left unspoken; and dialogue, which was
being read three times over instead of once.Auto-walk stops making things worse when it cannot get somewhere - no more
wading into the sea, no more wandering in circles at the foot of a wall, no more
spending every retry standing still in the same spot, and a word when the ground
you just dropped onto has no way back up. It also reaches more places than it
did: a ledge above you, or a quest area a few metres overhead. Planning a route
got quicker too.The menu that asks for a downed party member's next tape can be heard
When a fighter's beast form is destroyed, the game stops and asks you which tape
they should use next - and it asks that for your PARTNER as well as for you,
since picking their next tape is your call even though the AI takes their turns.
That menu was completely silent: no name, no list, nothing. It cannot be
cancelled either, so the fight simply stopped there.A battle keeps its own layer of UI, and a couple of menus are hung straight off
it rather than off the menu system the rest of the game uses. Anything put there
was invisible to this mod - not misread, not read badly, just never looked at.
Those menus are now found and read like any other. The battle order menu still
reads exactly as it did.Dialogue is read once, when it has finished appearing
Every line of dialogue in the game was being spoken three times. Once the
instant the text was handed to the box - the whole line is there from the start,
it is only revealed a letter at a time, so there was no way to tell from the text
alone that it was still appearing. Once more when it had genuinely finished. And
a third time because the two readings worded the speaker's name differently
("Kayleigh, ..." against "Kayleigh: ...") and the guard against repeats could not
tell they were the same sentence.Now there is one reader and one wording, and nothing is said until the line is
actually all there.The bestiary reads the entry, not just the name
An entry is a species name, its number, its elemental types, and one of five
info pages - two bios, where it lives, its bootleg tapes, and how many you have
met. None of that is reachable by moving around: the pages are turned with Left
and Right on a pager that never takes focus, and the panel it all sits in is not
focusable at all. So the whole entry went unread. Moving down the list read a
bare species name; opening the bestiary on a species you had just recorded read
its name, its number, and "1 / 5".The whole entry is read now, including whichever page is currently up, and it is
re-read when you turn the page. The types are named ("Plastic / Beast") - on
screen they are nothing but two icons. And the bestiary says once, when it opens,
that Left and Right turn the page.Auto-walk stops making the same failed attempt three times
When the game's own path follower cannot hop to the next point on a route,
auto-walk takes the controls and walks there itself. It gets three tries. The
logs showed all three being spent in the same place, on the same point, from a
position identical to six decimal places - four and a half seconds of standing
perfectly still, and the whole allowance gone before the code that steps around
an unreachable point got a turn.Two things were wrong. Walking at a point from the exact spot where the last
attempt gave up produces the same nothing, so that is refused now and the failure
is handed straight to the detour logic. And the assist walks - it deliberately
never jumps, because jumping is what the path follower had just failed with - so
a point two metres up over half a metre of ground was never reachable by
steering. Anything steeper than a 45-degree slope is left alone. Ramps, kerbs and
every downhill hop are untouched; those are what the assist is for.The log is quieter too: while the assist was running it wrote a line every frame
about standing on the wrong storey, hundreds at a time, which buried everything
else that happened.Auto-walk will float up to a quest area that is right above you
With the flight ability on, standing under a quest area that sits a few metres
overhead now gets you a lift rather than a shrug. Auto-walk rises to the top of
what the wings climb, and settles back onto the ground it left if nothing comes
of it.This is a bet, and worth saying so: a quest marker points at a 64-metre chunk
rather than a spot, and what a quest usually wants is for you to BE in its area
rather than stood somewhere exact. Being up there may be enough. If it is not,
you have lost a couple of seconds and gone nowhere.It only rises when you are essentially already underneath it. Going up is safe -
you come down where you went up - but drifting is not, and the leg is flown by
the same code that flies a glide, which steers at its aiming point the whole way.
A marker across a gap would fly you out over the gap. That is how an earlier
version of giving up ended in the bay, so the distance it will drift is kept
short on purpose.Auto-walk uses the whole of the climb, not all but the last metre and a half
Gliding to a ledge ABOVE you already worked with flight unlocked - the wings
climb four metres and anything under that was fair game. But a landing had to be
at least a metre and a half below the top of the climb, because a glide needs
real air under it before the game will start one.That is not a flier's problem. With flight on you can leave the ground and glide
with solid floor right under you, so the last metre and a half of the climb was
being thrown away for a reason that does not apply. A ledge two metres up, one
metre under the top of the climb, was refused before and is reached now.Quest areas get the benefit of the doubt
A quest marker is not a place. It is a 64-metre chunk of map, and the spot
auto-walk aims at is only a coarse guess at somewhere inside it - whichever
sample of that chunk landed nearest you, picked without ever asking whether it
can be walked to. Being anywhere in the area is the actual goal.So a wall between you and that guessed spot no longer stops the walk when the
target is a quest area. It goes and tries, because the part of the area it can
reach may well be the part that matters. Every other kind of target names a real
spot that somebody chose, and a wall in front of one of those still means what
it says.Being told about Shift+End at the moment you need it
When auto-walk gives up on somewhere above or below you, it now finishes by
mentioning that Shift plus End will teleport you there.Teleporting is still never automatic and never part of a route - walking is the
point of this mod. But the reason that key exists at all applies hardest exactly
here: someone who can see auto-walk stop at a wall can go and find the way round
it, and someone who cannot see it has no way to know there is one. Being told the
hatch is there at the moment you are stranded is what it was for.Worth saying plainly, since it comes up: gliding cannot get you UP to something.
The game gives a glide a ceiling of four metres over the floor it launched from,
and only with the flight ability - without it a glide only ever descends. Auto-
walk already uses that four metres when it is enough to reach a ledge. When the
target is higher than that, no amount of gliding reaches it, and the teleport is
the answer.A heads-up when a drop you just took was one-way
Some ground in this game only goes one way. Walking off a ledge onto a lower
shelf can put you somewhere with no way back up on foot, and nothing used to
mention it - you would find out much later, when auto-walk announced it could
not get anywhere from where you were standing.Land a real drop now and the map gets asked whether the way back exists. If it
does not, you hear so straight away.It only speaks when it is sure. The map is built from ground that has actually
been read, so "no route back up" could equally mean "nobody has looked yet" - so
before trusting that, it asks the map to route the descent you just made. If it
cannot even do that, it knows too little about where you are landed to have an
opinion, and says nothing. A warning needs the way down to work and the way back
to fail, which is exactly the thing being warned about.Auto-walk gives up at a wall instead of wandering into the sea
Tracking a quest area that sits on top of a 6m wall used to end badly. Nothing
could route there, gliding could not help - a glide only ever goes down, and the
target was six metres up - and with no route left, auto-walk fell back on
steering straight at it. That meant seventeen seconds of doubling back through
seven reroutes, a walk off a ledge, a glide out over the bay and a swim, ending
up further from the quest marker than it started before finally saying the thing
it could have said at the outset: that area needs climbing, which you have not
unlocked yet.It now says that first. The route planner already worked out that the only place
the ground came close to the target was a rise it could not make and would
survive coming back down - a wall - and it was only writing that to the log.
It acts on it now, and stops, as long as there is no partial route left worth
walking.The log has stopped misdirecting too. A glide refused for a target overhead used
to report "nothing to land on along the line to the target", which reads as a
statement about the ground under the flight path and sent me looking in entirely
the wrong place. It now says what is actually wrong: how far above the launch
the target sits, and that a glide only descends.A shorter pause before auto-walk sets off
Ordering a walk somewhere new stops to work out the route first, and that pause
got shorter — about a tenth off the whole build, and near a fifth off the part
that goes and looks at the ground.Nothing about the route changed. Working out where you can stand means asking
the game hundreds of thousands of small questions about the world, and every one
of them was rebuilding the same little bundle of arguments to ask it with. That
bundle is now built once. The questions asked, and the answers they give, are
the same ones — the regression checks compare the resulting map node for node
and edge for edge, and it is identical.Auto-walk no longer walks you into the sea
Walking to anything across the bay went into the water and stayed there. The
route it picked had waypoints nearly two and a half metres under the waterline,
so auto-walk waded in, the game washed you back to the beach, and it set off
again — fifty seconds of that on the way to the tutorial marker before there was
anything to do but give up and teleport.The map is read by asking what is solid, and water is not solid: the sea is a
volume the game keeps on a layer of its own, and the seabed underneath it is
ordinary ground, flat and gently sloped. It read exactly like a beach. So the
whole bay went into the map as walkable, and crossing it was simply the shortest
way to the other side.Both halves of the map reader now know where the water is, and ground under it
is not somewhere to walk or somewhere to fall to. The water's edge still is —
the game lets you walk through ankle-deep water, and the beach you arrive on is
exactly that, so the line is drawn a little under the surface rather than at it.Downloads
-
Source code (ZIP)
0 downloads
-
Source code (TAR.GZ)
0 downloads
-
Source code (ZIP)
-
0.7.1 Stable
released this
2026-08-30 23:59:57 +02:00 | 39 commits to master since this releaseSomewhere to walk to on the first screen of the game, and quest markers that
point at the place they name.The first thing the game asks of you now has a marker
A new game drops you on a beach and waits for you to walk west and meet
Kayleigh. Nothing about that is a quest yet — the quest only starts once you
have done it — and Kayleigh is not standing anywhere in the world to be found
either, because the scene spawns her. So the scanner had nothing to offer: an
empty target list and ninety metres of beach to guess at, on the first screen
of the game."Tutorial quest (Meet Kayleigh)" now appears under Markers until you have met
her, and auto-walk takes you into the spot that starts the scene. It aims at the
middle of that trigger rather than at its edge, which is the difference between
arriving and arriving just outside it.Quest markers pointed at the wrong chunk
A tracked quest that names an area rather than a person put its "Quest area"
marker 32 metres diagonally off, into the chunk next door — and the search for
walkable ground inside the area spent 21 of its 25 probes over there too, so
what you walked to could be someone else's neighbourhood entirely.The map is laid out in 64-metre chunks numbered from their middles, and the mod
was numbering them from a corner. It now reads them the way the game's own map
screen and the mod's own terrain reader already did.Downloads
-
Source code (ZIP)
0 downloads
-
Source code (TAR.GZ)
0 downloads
-
Source code (ZIP)
-
0.7 Stable
released this
2026-08-29 21:15:00 +02:00 | 41 commits to master since this releaseTwo things you could not do before: reach somewhere the ground does not go, and
tell what had just happened when the mod was talking.Auto-walk uses your wings
A door on a shelf across a chasm was "unreachable" while gliding sat unlocked
and unused. Every planner in the mod routes over ground, so when the floor the
target sits on has no walking connection to the floor you are standing on, all
of them said the same thing and stopped — and the fallback then steered
straight off the edge into the water, four times running, respawning each time.Auto-walk now asks the question none of them could: is the gap something you
could glide across? If it is, it walks to the lip of the drop, jumps, and flies
the rest, announcing "Gliding to " as it sets off and planning the rest
of the walk from wherever it lands. The reach comes from the game's own glide —
twelve metres of ground per second in the air, five metres of height per second
spent, and a stamina bar that decides how long that can go on — so it only
commits to a flight it can finish, and it will not aim at water, a hazard, or a
spot with something in the way.With the flight ability unlocked, the four metres of climb that grants counts
towards the reach as well, so a shelf slightly above where you set off from is
also fair game.Walking stays the default when the ground can get there, because a glide leaves
you somewhere the ground may not lead back from. The exception is a route that
walks more than twice as far as the target is away: that is the long way round
something you have wings for, and if a glide can close half the distance it is
taken instead.Two smaller things fell out of the same work: an ordinary fall during a walk is
now glided rather than dropped, which is the difference between crossing a gap
and landing at the bottom of it; and abilities are read the way the game reads
them, so a scene that switches gliding or climbing off is respected instead of
planned around.Recording a monster no longer reads out gibberish
Spending a tape in battle announced "patricus uses @@11540." rather than naming
the tape. Battle item events carry anItemNode— a node wrapping the item —
and the narrator was asking that wrapper for its name, getting back the engine's
own placeholder for a node nobody named. It reads the item now.Downloads
-
Source code (ZIP)
0 downloads
-
Source code (TAR.GZ)
0 downloads
-
Source code (ZIP)
-
0.6 Stable
released this
2026-08-29 14:06:14 +02:00 | 46 commits to master since this releaseChangelog
0.6
Auto-walk release. Everything here is about getting you where you asked to go.
Auto-walk knows the whole map again
The mod reads the entire overworld up front — all 128 chunks, without needing
them loaded around you. It has done that for a while; what it did not do was
keep the result. The map it built was being thrown away a fraction of a second
later, every single session, leaving auto-walk to feel its way around using only
the few hundred square metres right next to you.That was behind most of the "I can't find a route from here" and "I got as close
as the ground I can reach allows, about 260 meters short" failures on longer
walks. The map now survives, so a route across town is planned across town.It no longer walks you off balconies
Routes could step off an upper floor straight down onto ground six metres below
— through the floor you were standing on. The clearest case was the flat above
the Gramophone Cafe: asking to walk to the cafe door from upstairs planned a
route that fell through the balcony, then spent twenty seconds failing to follow
it before announcing the door was "about 6 meters below the nearest ground I
could path to".Routes now check that a drop actually lands where it claims, so it goes and
finds the stairs instead. About 3% of all the connections on the map were this
kind of lie.The map no longer switches itself off mid-session
There is a self-check that compares the map the mod read against what the game's
physics says, and disables the map if the two disagree too much. It was counting
every crate, fence and barrel you walked past as a disagreement, and after about
eight minutes of play it would give up on the whole map. From that point on,
every walk in that session was worse — and nothing said so out loud.It now knows what a prop is, wants a lot more evidence before condemning
anything, and writes down what it actually saw when it does disagree.A third more of the map is walkable
Anywhere a cliff face, house wall or fence stands on the ground beside you, the
mod used to treat that ground as unwalkable — it could not tell a wall next to
you from a ceiling on top of you. That was about a third of the walkable ground
in a typical chunk.It can tell them apart now. It also checks that recovered ground is somewhere you
could actually reach on foot, so the insides of buildings don't quietly become
walk destinations.Shift+End goes to the door
Teleporting to a door used to leave you standing a metre or so short of it.
It now puts you in the doorway itself. Doors only trigger for someone already
walking through them, so you still take the step through yourself — you just
don't have to find the door first.Still true
Some places genuinely need an ability you may not have yet. If auto-walk says a
target is unreachable and mentions climbing, it usually means it: campsites and
lookouts on raised terraces are often meant to be climbed to, and no amount of
pathfinding gets you up a four-metre wall on footDownloads
-
Source code (ZIP)
1 download
-
Source code (TAR.GZ)
0 downloads
-
Source code (ZIP)
-
0.3 Stable
released this
2026-08-26 11:19:56 +02:00 | 58 commits to master since this releasefixed: quest markers.
fixed: now when you press h in overworld you'll hear health of your party/beasts, the same in combat.
fixed: general nav assist bugs.Downloads
-
Source code (ZIP)
0 downloads
-
Source code (TAR.GZ)
0 downloads
-
Source code (ZIP)
-
0.2 Stable
released this
2026-08-25 21:47:28 +02:00 | 59 commits to master since this releasefixes multiple bugss with NPC's, and doors, removes your house door marker as it's redundant with dors working.
Downloads
-
Source code (ZIP)
0 downloads
-
Source code (TAR.GZ)
0 downloads
-
Source code (ZIP)
-
0.1 Stable
released this
2026-08-25 19:49:55 +02:00 | 60 commits to master since this releasea first version
Downloads
-
Source code (ZIP)
0 downloads
-
Source code (TAR.GZ)
0 downloads
-
Source code (ZIP)