No description
  • C++ 83.3%
  • Python 16.4%
  • C 0.2%
  • Just 0.1%
Find a file
2026-03-22 10:54:33 +03:00
.claude Update .gitignore and move local paths out of fnvdump skill 2026-03-22 10:52:04 +03:00
cmake Integrate SRAL and speak hello message on plugin load 2026-02-03 18:46:10 +03:00
docs Add road network routing, new menu handlers, HUD hooks, and tools 2026-02-16 03:38:31 +03:00
lib Use NVSE as git submodule, install to MO2 mods dir 2026-02-03 16:50:09 +03:00
src Fix AutoWalk road routing in interiors and update data path 2026-03-22 10:54:18 +03:00
tools Add road network routing, new menu handlers, HUD hooks, and tools 2026-02-16 03:38:31 +03:00
.gitignore Add MIT license and update README license section 2026-03-22 10:42:51 +03:00
.gitmodules Use NVSE as git submodule, install to MO2 mods dir 2026-02-03 16:50:09 +03:00
CLAUDE.md Add Container, Barter, Inventory, Map, VATS, and crafting menu accessibility 2026-02-14 16:16:27 +03:00
exports.def Add xNVSE plugin skeleton with working build 2026-02-03 16:41:20 +03:00
FalloutNVAccess.sln Add xNVSE plugin skeleton with working build 2026-02-03 16:41:20 +03:00
FalloutNVAccess.vcxproj Add SearchBarMonitor to vcxproj and TTW install target 2026-03-22 10:54:33 +03:00
justfile Integrate SRAL and speak hello message on plugin load 2026-02-03 18:46:10 +03:00
LICENSE Add MIT license and update README license section 2026-03-22 10:42:51 +03:00
README.md Add MIT license and update README license section 2026-03-22 10:42:51 +03:00

FalloutNV Access

An xNVSE plugin that makes Fallout: New Vegas playable for blind and visually impaired users. It provides screen reader support through SRAL (Screen Reader Abstraction Library), working with NVDA, JAWS, or Windows SAPI.

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

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
  • HUD — Subtitle reading, notification announcements, compass info
  • 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
  • Stewie Tweaks
  • Text Input — Name entry and other text fields

Press H in most menus to hear detailed item card information (stats, effects, weight, value).

Object Scanner

Scan the world around you to find and navigate to nearby objects. Activated from the gameplay HUD (no menu open).

Key Action
Numpad 5 Scan nearby objects
Page Up / Page Down Cycle through scan results
Home Look at selected object
End Walk to selected object (starts AutoWalk)
Ctrl+Shift+Home Announce detailed object info

Categories — Cycle through scan filters with repeated Numpad 5 presses: 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 location hands-free.

  • Uses the game's native navmesh pathfinding system
  • Smooth rotation and movement with walk/run speed matching
  • Stuck detection with automatic re-pathing
  • Road network routing for long-distance outdoor travel — follows roads between distant locations
  • Cancel anytime with WASD, Escape, or Space
  • Press R to repeat the destination name while walking

HUD Notifications

Automatically speaks HUD notifications as they appear, including:

  • XP gains, quest updates, location discovery
  • Subtitle text from NPC dialogue and ambient speech

Requirements

Installation

  1. Install xNVSE if you haven't already
  2. Copy FalloutNVAccess.dll to Data\NVSE\Plugins\
  3. Launch the game — you should hear "FalloutNV Access loaded" at the main menu

If using Mod Organizer 2, place the DLL under your mod folder at NVSE\Plugins\FalloutNVAccess.dll.

Building from Source

Prerequisites

  • Visual Studio 2022 (Build Tools v143)
  • CMake
  • just command runner

Build

just sral    # Build SRAL static library
just build   # Build Release DLL

The output DLL is at Release/FalloutNVAccess.dll.

Set the XSE_FONV_MODS_PATH environment variable to your MO2 mods directory and the post-build step will auto-install the DLL.

Other build commands:

just build Debug    # Debug build
just rebuild        # Clean + build
just clean          # Clean build artifacts

Architecture

FalloutNV Access is a 32-bit xNVSE plugin DLL. It hooks into 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 smooth rotation and road network routing
  • RoadNetwork — Graph of road waypoints for long-distance outdoor navigation
  • HUD Notification Hooks — Intercepts subtitle and notification display for TTS

Dependencies

  • xNVSE — Script extender API and reverse-engineered game class headers
  • SRAL — Screen reader abstraction library (built as static lib)

License

This project is licensed under the MIT License. SRAL is licensed under its own terms (see lib/SRAL/LICENSE).