Skip to content

Repository files navigation

FalloutNV Access

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.

Features

Menu Accessibility

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).

Object Scanner

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.

KeyAction
Page Up / Page DownPrevious / next nearby object
Shift+Page Up / Shift+Page DownPrevious / next category
EndCycle subcategory within the current category
HomeLook at and announce the selected object
Shift+HomeWalk 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).

AutoWalk

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
KeyAction
W / A / S / D, Escape, or SpaceCancel AutoWalk
RWhile on a road route, switch to a direct (straight-line) route

AutoAim

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.

HUD Notifications

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

Keybindings

A consolidated reference. Keys are not yet remappable.

Gameplay (no menu open):

KeyAction
Page Up / Page DownPrevious / next nearby object
Shift+Page Up / Shift+Page DownPrevious / next scan category
EndCycle subcategory
HomeLook at and announce the selected object
Shift+HomeWalk 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:

KeyAction
W / A / S / D, Escape, SpaceCancel AutoWalk
RSwitch from a road route to a direct route

In most menus:

KeyAction
HAnnounce extra on-demand detail / item card

Pip-Boy Map:

KeyAction
Page Up / Page DownPrevious / next marker
HomeSelected marker's full details
Shift+HomeSet the selected marker as a reference point
EnterTravel to / AutoWalk to the selected marker

Pip-Boy Inventory:

KeyAction
HAnnounce header stats
BToggle B42 Descriptions (requires the B42 Descriptions mod)

Companion Wheel:

KeyAction
Left / RightCycle commands
EnterConfirm selection
HRe-announce the current selection

Requirements

  • Fallout: New Vegas (v1.4.0.525 or newer)

  • xNVSE 6.4.4 or newer (latest recommended)

  • Vanilla UI Plusmandatory 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:OnCornerMessage event 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.dll and 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.)

Installation

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.

Known Issues (Beta)

  • 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).

Building from Source

Prerequisites

  • Visual Studio 2022 (Build Tools v143). Specifically 2022 — the build pins the v143 toolset and asks CMake for the Visual Studio 17 2022 generator, 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 with Filename too long for any clone root beyond roughly 125 characters — Documents\GitHub\… is enough to trip it.

Build

git submodule update --init # xNVSE + Prism; NOT --recursive, see below
just prism # Build the Prism static library
just build # Build the Release DLL

Deliberately 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.

Debug keys

Not part of the user-facing key list above, and deliberately undocumented for players — scanning is automatic, so these exist only for development:

KeyAction
Numpad 5Force an immediate rescan of the current category
Ctrl+Shift+HomeSpeak the selected object's refID, base form ID, base type and distance

Architecture

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

Dependencies

  • 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:OnCornerMessage event is consumed for HUD notification capture

Credits

  • 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

License

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).

About

Screen reader accessibility for Fallout: New Vegas — an xNVSE plugin that makes the game playable for blind and visually impaired players.

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages