v0.5.0 — The Cursor Update
Returning players: TRANSITION.md walks these changes in
learning order, quick start first.
Added
-
Shift + Tab reverse target cycling while targeting, walking, or looking —
the game's Tab cycle stepped backward, same voice and "N of M" counter. A fresh
press starts from the far end of the list, so in walk mode it jumps straight to
the rifts. Requested by Neurrone. -
Setup step required: Steam silently reserves Shift + Tab for its in-game
overlay and the game never receives the chord — even though the overlay never
visibly opens in Rift Wizard 3. Disable the overlay for this game (Rift Wizard 3
Properties, General tab, uncheck "Enable the Steam Overlay while in-game") or
reverse cycling cannot work. Every other Shift chord is unaffected. Steps in
the README. -
New setting
speak_pickup_effects(default true): set false to trim Ruby Heart
and Memory Orb cursor reads to name-only. Walk-on shrines always speak their
effect. -
Two-arrow diagonal chording. Press two orthogonal arrows as one gesture —
Up+Right is northeast — for a single diagonal step; add Shift for the 4-tile
diagonal. No modifier, both hands or one, and it follows your movement
rebinds. A lone press still steps normally (it waits one imperceptible frame
for a partner). Held arrows keep the game's native auto-walk untouched. -
Ctrl + direction: the axis jump. Skim the cursor along a line until what
you'd hear changes — across open floor to the next unit, item, wall, or
cloud, in one keypress. Speaks the landing tile, then the distance
("6 east"; "Edge" when the map ends the run). Either Ctrl, and it composes
with everything: Ctrl+arrow straight, Ctrl+pair diagonal, Ctrl+numpad free.
By default the jump stops at every unit; the newjump_coalesce_units
setting (default off) strides same-name clusters instead. Cursor modes only
— your wizard never jumps. -
Pins: the mark grows into a pin list on K. Alt+K pins or unpins the
last spoken target — or, with nothing spoken, bookmarks the tile you're on
or looking at (the deploy cursor works too, and the pin carries into the
level). K cycles your pins in category blocks — enemies, allies, landmarks,
bookmarks — nearest first within each block, with a count header on a fresh
cycle; Shift+K reverses and Ctrl+K jumps block to block. Alt+K on a
just-cycled pin unpins it. Pins live per level, follow their unit, and
announce deaths and collected landmarks. The newest or last-cycled pin is
the focused pin: it carries the per-turn guidance line ("North to Wolf,
12 HP."), and Shift+P re-announces its full path. New setting
pin_speak_all(default off) speaks every pin's update line each turn. -
Scans route the cursor. In Look mode, deploy, and pure-teleport
targeting (Blink and kin — Translocation spells with no area to aim), every
scan and pin-cycle press also parks the cursor on the result it just spoke:
the scan line is the announcement, T and D answer for that tile
immediately, and Enter acts on it — the missing mouse-flick. A cycle keeps
measuring from where it started, so repeated presses walk outward instead
of chasing the cursor. While aiming any other spell the cursor is your
tuned aim and scans leave it alone. -
J: jump to the last spoken result. From normal play, J opens Look mode
right on the last thing a scan or pin cycle spoke; while aiming, J moves
the aim there deliberately (any spell). If it died or was collected since
it spoke, J says "gone" and stays put — it never asserts stale truth.
Shift+J bounces back to where the cursor was before the jump. J and Y had
been freed by the scan-key move; J is now the bridge. -
Overlay latches: Alt+L and Alt+T. The game's hold-to-see overlays,
pinned: latch line of sight or threat and it stays active — the overlay
keeps drawing (like holding the key), and every cursor step gains a short
tag: "in sight" / "out of sight", "threatened" / "clear". Latched from
normal play, line of sight follows you as you move; latched from Look,
aiming, or deploy, it watches from that tile — a deploy latch carries
into the level with you. Examine an enemy first and Alt+T latches just
that enemy's reach ("Latched: Night Hag's threat"). One latch at a time,
same chord releases, F reports what's latched, and holding the real key
still works and takes over while held. New settinglatch_visual_overlay
(default on) controls the drawn half; the spoken tags work either way.
Changed
- The global threat query now answers "Threatened" or "Safe" — nothing
more. The old readout listed every threatening enemy with counts and
directions, but the game itself shows threat as an anonymous red zone and
gates who threatens behind examining each enemy one at a time. The old
report assembled a tactical summary no sighted player ever got in one
glance — you were overserved — and computing it was the freeze players
felt pressing T on crowded levels. The new answer reads the game's own
threat zone (built once per turn, shared with the held-T overlay), so it's
instant after the first press of a turn. Who-threatens is unchanged where
it always lived: examine an enemy and press T ("Threatens you" / "Can't
hit you") — with scans now parking the cursor, that loop is three
keypresses. The old readout survives verbatim under a new setting,
threat_enumeration_legacy(default off), as a time capsule: it will be
removed in a future release, so if you rely on it, say so. - The "From destination" scan qualifier now follows the routing rule —
spoken only for teleports whose target is truly a destination. It used to
key on the bare Translocation tag, which mislabeled Disperse's area aim as
a destination. - Alt+scan marking is now the pin toggle. The one-mark-at-a-time limit is
gone; Alt + I / N / O / U pin without replacing what you marked before, and
scan lines say "pinned" where they said "marked". If you relied on marking
to auto-replace, unpin with a second Alt+K on the old target. - Right Ctrl no longer means diagonal — Ctrl now means one thing, either
side. The RCtrl+arrow diagonal and its AltGr synonym are retired, replaced
by two-arrow chording; the mod never distinguishes left from right Ctrl
again. Bare Ctrl (either one) cancels speech; Ctrl chords are the axis jump
(see Added). Hard switch, no legacy setting. - Shift + arrow now speaks the landing tile plus a short "Crossed:" summary
of everything the cursor skimmed past — units, props, clouds, walls, chasms,
and floor, grouped with counts ("Crossed: 2 floors, web") — instead of
reading all four tiles in sequence. Floor counts so the distance never needs
arithmetic. A move stopped short by the map edge appends "Edge"; a move
pinned at the edge says "Edge" instead of nothing. Applies in Look,
targeting, walking, and deploy, straight or diagonal, arrows or numpad. - The scan keys moved onto the game's own highlight keys — the key that
lights a category on screen is now the key that speaks it. Enemy scan: J is
now I (Highlight Enemies). Ally scan: Y is now U (Highlight Allies).
Landmark scan: Q is now O (Highlight Objects). Tap to scan, hold to show
the tiles; the pairing follows your rebinds — rebind Highlight Enemies and
the enemy scan moves with it. N (spawners) and X (hazards) are unchanged;
they have no game highlight. The Alt+key toggle moved with the scans
(Alt + I / N / O / U). Q and Y are now unbound, reserved for upcoming
features; J was given its new job as the cursor jump (see Added). This is
a hard switch with no legacy-keys setting — the old letters simply stop
answering.
Fixed
- Shift + numpad now actually moves 4 tiles — when NVDA isn't running. A
Windows keyboard legacy ("fake shift") strips Shift from NumLock-on numpad
presses at the driver level, below every application — so the game's own
Shift+numpad move silently stepped one tile, for every player, screen
reader or none. The mod now recognizes the stripped chord's signature and
performs the 4-tile move itself, with the same landing-plus-crossed voice.
KNOWN LIMIT, verified by event capture: with NVDA running, NVDA's keyboard
hook consumes the numpad keypress outright and nothing reaches the game to
repair — use the arrow gestures (Shift+arrow, Shift+pair), which are
immune. NumLock stays on either way; NVDA's NumLock-off review keys are
untouched. - Ctrl speech cancel actually works now — and either Ctrl does it. A
modifier guard swallowed the press before the cancel branch could ever run —
dead code since it shipped, masked by NVDA's own control-interrupt: the
synth went quiet, but the mod's queued lines kept arriving afterward. Cancel
now also clears the mod's speech queue and pending HP announcements, and
scan cycling survives a mid-cycle cancel. - Walk-on props (Ruby Heart, Memory Orb, and the three walk-on shrines) now read
their description in Look mode and the targeting brief, matching the game's
examine panel, which shows it on mere cursor-over. Reported by Neurrone. - Units no longer hide the prop or cloud beneath them: the targeting brief, the
Tab-cycle read, and Look mode's portal branch all spoke the unit and dropped
what it stood on. All three now speak what's beneath, threat-first. Reported
by Neurrone.