- C++ 83.3%
- Python 16.4%
- C 0.2%
- Just 0.1%
|
|
||
|---|---|---|
| .claude | ||
| cmake | ||
| docs | ||
| lib | ||
| src | ||
| tools | ||
| .gitignore | ||
| .gitmodules | ||
| CLAUDE.md | ||
| exports.def | ||
| FalloutNVAccess.sln | ||
| FalloutNVAccess.vcxproj | ||
| justfile | ||
| LICENSE | ||
| README.md | ||
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
- Fallout: New Vegas (v1.4.0.525+)
- xNVSE (latest version)
- A screen reader: NVDA (recommended), JAWS, or Windows SAPI
Installation
- Install xNVSE if you haven't already
- Copy
FalloutNVAccess.dlltoData\NVSE\Plugins\ - 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).