an accessibility mod for cassette beasts
  • GDScript 99.7%
  • Batchfile 0.3%
Find a file
Repository files (latest commit first)
Filename Latest commit message Latest commit date
patricus 06a344ec1a Say how much ground there is when the answer is none
Quest areas refusing to be walked to, and once "no route to Harbourtown", from
a spot with 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 over 44 by
52 metres, with no route to town.

The sentence was the problem. The lip describes the FIRST thing in the way,
which is the right answer at a wall and hopeless when there is nowhere to go at
all - "the ground carries on but there is no way onto it from here" sounds
local and sounds fixable by walking further round. NavRegion measures the
reachable patch now, and when it is small the refusal says how small. Above
BOXED_IN_SPAN the obstacle really is the story and the lip wording stands.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-09-02 21:07:57 +02:00
decompiled Say how much ground there is when the answer is none 2026-09-02 21:07:57 +02:00
.gitignore pathfinder fixes 2026-08-28 15:20:34 +02:00
BUILDING.md Read the map out loud, and let a square be marked and walked to 2026-09-02 17:04:08 +02:00
CHANGELOG.md Say how much ground there is when the answer is none 2026-09-02 21:07:57 +02:00
package.bat Add a changelog and ship it in the release zip 2026-08-29 14:11:24 +02:00
README.md Read the map out loud, and let a square be marked and walked to 2026-09-02 17:04:08 +02:00

Cassette Beasts Accessibility Mod

An accessibility mod for Cassette Beasts (built and tested against game version 1.8.2) that adds screen reader support for blind and low-vision players:

  • Menu narration - menus, dialogue, and pop-ups are read aloud automatically as you navigate them, via Tolk (NVDA, JAWS, System Access, ZoomText, SAPI, and other supported screen readers).
  • Map/object scanner - periodically scans the currently loaded area for people, items, interactables, doors, wired switches, monsters, and quest/rumor markers, grouped into categories you can cycle through. The opening tutorial gets a marker of its own - meeting Kayleigh is not a quest yet and she is not in the world to be found, so a new game would otherwise start with nothing to head toward at all.
  • Readable map - the pause menu's map is a grid of 128 identical, textless buttons, so moving the cursor around it used to say nothing at all. Each square now reads out its name, what is in it, whether it can be fast-travelled to, and where it sits relative to your own square. One key marks a square as a waypoint, and auto-walk will take you there.
  • Auto-walk - pathfinds and walks the player to the currently selected target, using the game's own terrain/collision data. Where the ground runs out and gliding is unlocked, it will walk to the edge of the drop and glide across rather than declaring the target unreachable.
  • Battle narration - each move's AP cost, power, accuracy and effect are read out as you browse them (all of which is normally shown only in an on-screen panel), your action points are announced at the start of every turn, and unaffordable moves say so.
  • Battle commentary - a running account of the fight itself, which is otherwise conveyed entirely through animation, floating damage numbers, shrinking bars and status icons: who used what, how much damage landed and how much health is left, criticals, misses, healing, elemental reactions, status effects gained and worn off, tape switches, fusions, recording attempts, knockouts, and how the fight ended.
  • Experience and level-ups - the post-battle experience screen runs itself with nothing focusable on it, so it used to be a couple of seconds of chiming and then silence. It now reads out the experience gained, and every level and tape grade it pushes anyone over.
  • Status readout - one key reads your health, beast form, stamina, partner, location and tracked quest out in the world, or everyone's health and your action points during a battle.

This is a third-party fan mod, not affiliated with Bytten Studio or the Cassette Beasts developers.

Requirements

  • Windows (the native screen-reader bridge and mod-loading approach used here are Windows-specific).
  • A legally-owned copy of Cassette Beasts, Steam or standalone/GOG.
  • NVDA (recommended, free) or another Tolk-supported screen reader, running before you launch the game.
  • To build the mod from this source, see BUILDING.md - you do not need any of that just to play with a prebuilt .pck.

Installing

  1. Get cassette_beasts_access.pck - either from this repo's Releases page (if a prebuilt one is published there) or by building it yourself (see below).
  2. Find your game's install folder:
    • Steam: right-click Cassette Beasts in your Library -> Manage -> Browse local files.
    • Standalone/GOG: wherever you installed it.
  3. Inside that folder, create a mods subfolder if one doesn't already exist, and copy cassette_beasts_access.pck into it.
  4. Mods only load with the -load-mods command-line flag - the game does not read this on its own, and there's no in-game toggle:
    • Steam: right-click the game -> Properties -> General -> Launch Options -> add -load-mods.
    • Standalone/GOG: make a shortcut to CassetteBeasts.exe, right-click it -> Properties, and append -load-mods to the end of the Target field (after the closing quote of the exe path). Launch the game from this shortcut.
  5. Make sure your screen reader (e.g. NVDA) is already running, then launch the game via the method above.
  6. The very first launch with mods enabled shows a one-time, unnarrated "Enable mods?" confirmation dialog. Its default-focused option is Enable - press Enter once to accept it. After that first time, the game remembers your choice and this prompt won't appear again.

Playing

Once loaded, these navigation hotkeys work while freely walking around in the overworld (they're inactive while a menu, dialogue box, or battle has focus, so they never conflict with normal menu navigation):

Key Action
Page Up / Page Down Cycle the selected target within the current category
Ctrl+Page Up / Ctrl+Page Down Cycle category (All, People, Items, Interactables, Doors, Switches, Encounters, Markers, Waypoints)
Home Announce distance to the currently selected target
Shift+Home Auto-walk to the currently selected target
Shift+End Teleport to the currently selected target
Ctrl+P Mark where you are standing as a waypoint
Ctrl+Shift+P Drop the currently selected waypoint

Shift+End is a deliberate escape hatch, not a shortcut. Auto-walk is the point of the mod and it never teleports you on its own - you walk the whole way, because that's how you learn where things are. But a hole in the walkable map strands a blind player with no way to see what the pawn is stuck on, and being stranded is worse than being spoiled a walk. So if Shift+Home gives up ("Can't reach X"), Shift+End puts you there. At a door it puts you in the opening itself - doors only trigger for someone already walking through them, so you arrive standing in the doorway and the step through is still yours to take.

Ctrl+P also works on the pause menu's map, where it marks the square under the cursor instead - see below.

This one works anywhere, and reports whatever is relevant to where you are:

Key Action
H In a battle - your beast form's health, your own health, your action points, then every ally's and enemy's health. In the overworld - the same information the on-screen HUD shows: your health and beast form, your partner's, stamina, current region, and tracked quest

Everything else - menus, dialogue, item pickups, quest tracking, battle moves - is narrated automatically as it happens; there's nothing extra to press for that.

The map

The map in the pause menu (M, or the Map button) is a grid of squares, one per chunk of world. Moving the cursor around it now reads out the square you are on: its name, everything the game knows to be in it, whether it is where you are standing, whether it can be fast-travelled to, and how far it is from your own square in compass directions - "Town West. Chemist and Museum. 2 south and 1 west of you." A square you haven't explored yet says so rather than going silent, so the shape of what is left to find is still there to feel out. None of this is new information: it is what the panel under the map has always shown a sighted player about whichever square the cursor is on.

Ctrl+P marks the square under the cursor. That mark joins a Waypoints category alongside People, Doors and the rest, and it is selected the moment you make it - so close the map, press Shift+Home, and auto-walk sets off for it like any other target. Press Ctrl+P on an already-marked square to unmark it.

Out in the world, Ctrl+P marks the ground you are standing on instead, which is the other half of the same idea: mark the corner of a town you are working through, go and do something else, and Shift+Home brings you back. Ctrl+Shift+P drops the selected waypoint; there is room for eight at a time.

A waypoint only means something in the place it was made. A square marked on the map is 64 metres of world with no known height, so it is aimed at the way a quest area is - the nearest spot in it you could actually stand - and it is not offered while you are indoors, because a spot on the overworld is not somewhere you can walk to from inside a shop. A waypoint marked where you stood is exact, and comes back when you are next in that same building or out on that same map. Waypoints last for the session and are not written into your save file.

The Doors category covers every building entrance, cave mouth and area transition, including the way back out of interiors - these are walk-into triggers with no interact prompt, so they're easy to miss otherwise. Each one is named by where it leads ("Door to Town Hall", "Door to Outskirts Pipe Cave"), since the names the game gives them internally are all variations on "Warp Region". A staircase that stays inside the same building keeps its own name instead, because there the destination would just be the building you're in.

A couple of base-game quirks worth knowing about (not bugs in this mod):

  • In the pause menu specifically, use Space or E to select an option, not Enter. Enter is bound to both "confirm" and "close the pause menu" at the same time, so pressing it there closes the whole menu instead of opening what you selected. The mod announces this reminder every time the pause menu opens.
  • Auto-walk uses the game's own physics and pathfinding heuristics. It's generally reliable, but some targets sit behind terrain, wiring puzzles, or scripted sequences no amount of pathfinding can solve on its own - if it gives up, it'll tell you why (e.g. "unreachable on foot, it's about N meters above/below the nearest ground") rather than failing silently.
  • Gliding is used where walking cannot get there: a ledge or shelf below and across a gap, within the reach the height allows and with a clear way through. It says "Gliding to " when it sets off, and picks the walk back up wherever it lands. With the flight ability unlocked it also counts the four metres of climb that gives, so a shelf slightly above can be reached too. It will also glide past a walking route that goes more than twice the long way round, but otherwise walking wins - a glide can leave you somewhere the ground doesn't lead back from.
  • A target far enough away that the world hasn't streamed in around it yet is walked in legs: the route is planned as far as the game currently knows about, and re-planned on arrival, by which time more of the map exists. This is silent and automatic - a long trek just takes a moment to think partway through.

Building from source / contributing

See BUILDING.md.