An xNVSE plugin that makes Fallout: New Vegas playable for blind and visually impaired users. It provides screen reader support through Prism (the Platform-agnostic Reader Interface for Speech and Messages), working with NVDA, JAWS, ZDSR, PC-Talker, BoyPCReader, Sense Reader, ZoomText, Windows OneCore voices, or SAPI.
Prism is statically linked and talks to each screen reader through its own native interface, so there is no controller DLL to install — the plugin DLL is self-contained.
This is a spiritual port of fallout4access for Fallout 4 — the design patterns and feature goals come from that project, but the implementation is a ground-up rewrite due to FNV's fundamentally different UI system (Gamebryo XML tiles vs Scaleform/Flash).
Public beta. Core menu reading and the gameplay tools below are in daily-playable shape. Long-distance AutoWalk routing is still experimental — see Known Issues.
Vanilla UI Plus is mandatory. Menu reading targets the VUI+ tile layout. Without VUI+ installed, menus will be silent — the plugin cannot detect VUI+ to warn you, so this is the first thing to check if menus don't read. See Requirements.
Every menu announces its contents via screen reader as you navigate. Supported menus:
- Start Menu — Main menu, pause menu, settings, save/load
- Pip-Boy — Inventory, Stats/Skills/Perks, Map (world + local)
- Dialog — NPC conversation topics and responses
- Container / Barter — Item lists with stats, weight, value
- Level Up / Traits / SPECIAL — Character creation and progression
- V.A.T.S. — Target selection with body part and hit chance
- Terminals — Computer menus and hacking minigame
- Crafting — Workbench, reloading bench, campfire recipes
- Repair — Self-repair and NPC repair services
- Item Mod — Weapon modification menu
- Companion Wheel — Companion command menu
- Sleep/Wait — Time selection
- Message Boxes — Confirmation dialogs
- Race/Sex — Character appearance menu
- MCM — Mod Configuration Menu (most option types; see Known Issues)
- Stewie's Tweaks menu
- Text Input — Name entry and other text fields
In most menus, press H to hear extra on-demand detail (an item's stats and effects, your caps, the relevant skill, header totals — whatever fits that menu).
Find and navigate to nearby objects. Used from normal gameplay, with no menu open. Scanning is automatic — the list refreshes as you move and whenever you change cell or worldspace, so you just page through it.
| Key | Action |
|---|---|
| Page Up / Page Down | Previous / next nearby object |
| Shift+Page Up / Shift+Page Down | Previous / next category |
| End | Cycle subcategory within the current category |
| Home | Look at and announce the selected object |
| Shift+Home | Walk to the selected object (starts AutoWalk; press again to stop) |
Categories — Cycle through scan filters with Shift+Page Up / Shift+Page Down: All, NPCs, Doors, Containers, Items, Activators, Corpses, Companions, Locations. Each category has subcategories (e.g. Containers: Non-Empty / Empty, Doors: Locked / Cell Doors, Corpses: Unlooted / Looted).
Automatic pathfinding navigation to a target. Walk to any scanned object or map marker hands-free.
- Uses the game's native navmesh pathfinding
- Smooth corridor-hugging steering with walk/run speed matching
- Stuck detection with automatic re-pathing
- Road network routing for long-distance outdoor travel — follows roads between distant locations
- Stops honestly at the closest reachable point when a target can't be pathed to, instead of orbiting
| Key | Action |
|---|---|
| W / A / S / D, Escape, or Space | Cancel AutoWalk |
| R | While on a road route, switch to a direct (straight-line) route |
A combat aim-assist for players who can't see to aim. It runs automatically — there is no separate hotkey; it engages while you hold your Aim button (whatever you've bound "Aim" to; right mouse by default).
- While aiming, it locks onto the best visible hostile and smoothly steers your aim onto them
- Audio cues tell you what's happening without sight:
- Line-of-sight ping — a soft looping tone that plays only while you have a clear shot to the locked target (requires JIP LN NVSE)
- Hit chime — plays on each of your hits, with distinct sounds for a critical hit, a sneak attack, and a kill (the kill chime fires instantly on a lethal hit)
Because it moves your aim while you hold Aim, expect aiming to feel "assisted." There is no in-game toggle yet.
Speaks heads-up information as it appears, including:
- Corner notifications — XP gains, quest updates, location discovery, item pickups (captured via itr-nvse)
- Subtitle text from NPC dialogue and ambient speech
- On-crosshair info — activation prompts and enemy health when you look at a target
A consolidated reference. Keys are not yet remappable.
Gameplay (no menu open):
| Key | Action |
|---|---|
| Page Up / Page Down | Previous / next nearby object |
| Shift+Page Up / Shift+Page Down | Previous / next scan category |
| End | Cycle subcategory |
| Home | Look at and announce the selected object |
| Shift+Home | Walk to the selected object (AutoWalk; press again to stop) |
| (hold Aim — right mouse by default) | Engage AutoAim on the best visible hostile |
While AutoWalk is active:
| Key | Action |
|---|---|
| W / A / S / D, Escape, Space | Cancel AutoWalk |
| R | Switch from a road route to a direct route |
In most menus:
| Key | Action |
|---|---|
| H | Announce extra on-demand detail / item card |
Pip-Boy Map:
| Key | Action |
|---|---|
| Page Up / Page Down | Previous / next marker |
| Home | Selected marker's full details |
| Shift+Home | Set the selected marker as a reference point |
| Enter | Travel to / AutoWalk to the selected marker |
Pip-Boy Inventory:
| Key | Action |
|---|---|
| H | Announce header stats |
| B | Toggle B42 Descriptions (requires the B42 Descriptions mod) |
Companion Wheel:
| Key | Action |
|---|---|
| Left / Right | Cycle commands |
| Enter | Confirm selection |
| H | Re-announce the current selection |
Fallout: New Vegas (v1.4.0.525 or newer)
xNVSE 6.4.4 or newer (latest recommended)
Vanilla UI Plus — mandatory for menu accessibility. Menu reading targets the VUI+ tile layout; without it, menus are silent and the plugin cannot warn you (VUI+ is a UI mod, not an NVSE plugin, so it isn't detectable at runtime).
JIP LN NVSE — required. Used for the line-of-sight raycast behind AutoAim's "target visible" ping (and is a near-universal FNV dependency).
itr-nvse — required for HUD corner notifications. FalloutNVAccess subscribes to its
ITR:OnCornerMessageevent to read item pickups, XP gains, and generic popups. Without it the plugin still loads, but at startup it announces "itr N V S E is not installed — corner notifications will not be read." Everything else keeps working. Available at itr-nvse on Nexus Mods.Windows 10 or newer. Prism, the speech layer, does not support older versions of Windows.
A screen reader — NVDA (recommended), JAWS, ZDSR, PC-Talker, BoyPCReader, Sense Reader, or ZoomText. If none is running, speech falls back to Windows OneCore voices and then to SAPI, so the plugin still talks on a bare Windows install.
Nothing extra to install for your screen reader. Prism speaks to NVDA over NVDA's own RPC interface and to JAWS through its COM API, so
nvdaControllerClient.dlland friends are not needed — do not copy any controller DLL into your game folder. Just have the screen reader running (starting it after the game is fine; the plugin picks it up within a few seconds).
Tale of Two Wastelands (TTW): supported. Road-routing data for the Capital Wasteland and the Fallout 3 DLC worldspaces ships in the same archive, so a single install works for both pure New Vegas and TTW. (Pure-FNV users simply carry a little unused road data — harmless.)
A single archive works for both New Vegas and TTW. Use a mod manager (Mod Organizer 2 or Vortex) — install the archive like any other mod and enable it.
The archive contains, relative to your game's Data folder:
NVSE\Plugins\FalloutNVAccess.dll
NVSE\Plugins\FalloutNVAccess\*.dat (road networks + navmesh bridge graph)
Sound\fx\fnvaccess\*.wav (AutoAim audio cues)
README.md, LICENSE.txt (documentation, archive root)
PRISM-LICENSE.txt, PRISM-NOTICE.txt (Prism's licence and attributions)
PRISM-LICENSES\ (third-party licences Prism links in)
There is no separate screen-reader DLL in that list, and none is needed — see Requirements.
To install manually instead, extract the archive into your game's Data folder so the paths above line up. Copy all of it — the .dat files drive road routing and the .wav files are the AutoAim cues; the DLL alone is not enough.
Launch the game — you should hear "FalloutNV Access loaded" at the main menu.
- Long-distance AutoWalk is experimental. For some cross-area destinations it stops at the closest reachable point ("Cannot reach, stopping at closest point") rather than completing the trip. Local navigation is reliable.
- Don't fast-travel while AutoWalk is moving. Starting a fast travel during an active AutoWalk can crash the game in rare cases. Cancel AutoWalk first (W/A/S/D, Escape, or Space).
- MCM option coverage is partial. Toggles, checkboxes, sliders, and dropdowns work; key-bind, RGB, and multi-slider option types can't be changed through the accessible path yet.
- Menus need Vanilla UI Plus. Without VUI+ installed, menu reading is silent (see Requirements).
- Visual Studio 2022 (Build Tools v143). Specifically 2022 — the build pins the
v143 toolset and asks CMake for the
Visual Studio 17 2022generator, and because Prism is built with link-time code generation a mismatched toolset fails to link rather than degrading. A 2026 install alongside it is fine; the build finds the 2022 one on purpose. - CMake 4.0 or newer. Prism needs the C23 dialect, which earlier CMake does not know how to enable for MSVC.
- just command runner
git config --global core.longpaths true, unless you are cloning somewhere short. Prism carries a 123-character Android test path, so with Git for Windows' default the submodule checkout fails withFilename too longfor any clone root beyond roughly 125 characters —Documents\GitHub\…is enough to trip it.
git submodule update --init # xNVSE + Prism; NOT --recursive, see below
just prism # Build the Prism static library
just build # Build the Release DLLDeliberately not--recursive: Prism's only submodule is gdextension/godot-cpp, needed just for its Godot binding, which this project does not build. Recursing clones a large repository for nothing.
just build builds Prism automatically if build/prism/<Config>/prism.lib is missing, so just prism is only needed to force a rebuild of the speech layer. Prism is C++23 and vendors its own dependencies, so the build needs no network access beyond the submodule checkout — but it does need midl.exe from the Windows SDK, which the Visual Studio C++ workload installs.
The output DLL is at Release/FalloutNVAccess.dll.
Set XSE_FONV_MODS_PATH (and optionally XSE_TTW_MODS_PATH) to your MO2 mods directory and the post-build step auto-installs the DLL, the WAV cues, and the README/license files into the mod folder, ready to zip.
Other build commands:
just build Debug # Debug build
just rebuild # Clean + build
just clean # Clean build artifacts
just package 0.1.1 # Assemble the distributable archive into dist/just package runs the same script CI does, so a locally built archive is
byte-for-byte what a release would ship. See docs/RELEASING.md
for how tagging produces a GitHub release and how that reaches Nexus Mods.
Not part of the user-facing key list above, and deliberately undocumented for players — scanning is automatic, so these exist only for development:
| Key | Action |
|---|---|
| Numpad 5 | Force an immediate rescan of the current category |
| Ctrl+Shift+Home | Speak the selected object's refID, base form ID, base type and distance |
FalloutNV Access is a 32-bit xNVSE plugin DLL. It hooks the game's main loop to poll UI state each frame, detecting menu changes and reading text from Gamebryo's XML tile tree.
Key components:
- SpeechManager — Centralized speech output with timestamped logging
- MenuAccessibilityManager — Detects active menus, dispatches to per-menu handlers
- ObjectScanner — Scans nearby world objects by category, with look-at and walk-to
- AutoWalk — Navmesh-based pathfinding with corridor-hugging steering and road-network routing
- AutoAim — Combat aim-assist with line-of-sight and hit/kill audio cues
- RoadNetwork / BridgeGraph — Long-distance outdoor routing graphs
- HUD Notification Hooks — Intercepts subtitle and notification display for TTS
- xNVSE — Script extender API and reverse-engineered game class headers
- Prism — Screen reader / TTS abstraction library (statically linked, MPL-2.0)
- itr-nvse (runtime) — its
ITR:OnCornerMessageevent is consumed for HUD notification capture
- xNVSE team — the script extender that makes all of this possible
- Prism by Ethin Probst — screen reader and TTS abstraction (bundled, MPL-2.0 — see
PRISM-LICENSE.txt) - JIP LN NVSE, itr-nvse, and JohnnyGuitar NVSE authors — extended APIs and events
- fallout4access by alex19EP — design patterns and feature inspiration
This project is licensed under the MIT License (see LICENSE.txt in the archive).
Prism is statically linked and distributed under the Mozilla Public License 2.0; its licence ships as PRISM-LICENSE.txt and its attribution notice as PRISM-NOTICE.txt, with the third-party licences it links in under PRISM-LICENSES\. The MPL is a per-file licence: linking it into this MIT-licensed plugin is permitted, and the corresponding Prism source is available unmodified in the Prism repository (this project builds it from the pinned lib/prism submodule and applies no patches).