{"id":50909219,"url":"https://github.com/itsloopyo/fallout-new-vegas-headtracking","last_synced_at":"2026-06-16T08:30:56.766Z","repository":{"id":363164190,"uuid":"1165067646","full_name":"itsloopyo/fallout-new-vegas-headtracking","owner":"itsloopyo","description":"An OpenTrack compatible head tracking mod for Fallout New Vegas","archived":false,"fork":false,"pushed_at":"2026-06-07T18:12:38.000Z","size":105,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-06-07T19:06:50.474Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"C++","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/itsloopyo.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2026-02-23T19:41:39.000Z","updated_at":"2026-06-07T18:12:42.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/itsloopyo/fallout-new-vegas-headtracking","commit_stats":null,"previous_names":["itsloopyo/fallout-new-vegas-headtracking"],"tags_count":1,"template":false,"template_full_name":null,"purl":"pkg:github/itsloopyo/fallout-new-vegas-headtracking","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/itsloopyo%2Ffallout-new-vegas-headtracking","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/itsloopyo%2Ffallout-new-vegas-headtracking/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/itsloopyo%2Ffallout-new-vegas-headtracking/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/itsloopyo%2Ffallout-new-vegas-headtracking/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/itsloopyo","download_url":"https://codeload.github.com/itsloopyo/fallout-new-vegas-headtracking/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/itsloopyo%2Ffallout-new-vegas-headtracking/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":34398405,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-06-16T02:00:06.860Z","response_time":126,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2026-06-16T08:30:55.961Z","updated_at":"2026-06-16T08:30:56.756Z","avatar_url":"https://github.com/itsloopyo.png","language":"C++","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Fallout: New Vegas Head Tracking\n\nAn NVSE plugin that adds head tracking to Fallout: New Vegas, letting you look around the Mojave naturally while your weapon aim stays on your mouse or controller, with no VR headset required.\n\n\u003c!-- ![Mod GIF](https://raw.githubusercontent.com/itsloopyo/fallout-new-vegas-headtracking/main/assets/readme-clip.gif) --\u003e\n\n## Features\n\n- **Decoupled look and aim** - head tracking moves the camera; aim stays on your mouse/controller\n- **6DOF positional tracking** - lean and peek with head position\n\n## Requirements\n\n- [Fallout: New Vegas](https://store.steampowered.com/app/22380/Fallout_New_Vegas/) (Steam or GOG)\n- [xNVSE](https://github.com/xNVSE/NVSE) 6.4.1 or newer (auto-installed if missing)\n- [OpenTrack](https://github.com/opentrack/opentrack) or a compatible head tracking app (smartphone, webcam, or dedicated hardware)\n- Windows (x86)\n\n[NVTF (New Vegas Tick Fix)](https://www.nexusmods.com/newvegas/mods/66537) is strongly recommended for smooth camera movement.\n\n## Installation\n\n1. Download the latest release from the [Releases page](https://github.com/itsloopyo/fallout-new-vegas-headtracking/releases)\n2. Extract the ZIP anywhere\n3. Double-click `install.cmd`\n4. Configure OpenTrack to output UDP to `127.0.0.1:4242`\n5. Launch the game via `nvse_loader.exe`\n\nThe installer automatically finds your game by checking the Windows registry for your Steam/GOG installation. If xNVSE is not already present, `install.cmd` downloads a pinned version from the official [xNVSE GitHub release](https://github.com/xNVSE/NVSE/releases) and verifies its SHA-256 before installing it. xNVSE has no redistributable license, so it is fetched at install time rather than bundled in the release ZIP; an existing xNVSE install is detected and left untouched.\n\nIf it can't find the game, either:\n- Set the `FalloutNVPath` environment variable to your game folder\n- Run from command prompt: `install.cmd \"D:\\Games\\Fallout New Vegas\"`\n\n### Manual Installation\n\nIf you prefer to place files by hand, or you are extracting the Nexus ZIP (which contains only the mod files):\n\n1. Install [xNVSE](https://github.com/xNVSE/NVSE/releases) by extracting its archive into your game folder (next to `FalloutNV.exe`).\n2. Copy the mod DLL (`HeadTracking.dll`) and `HeadTracking.ini` into `Data/NVSE/Plugins/` inside your game folder. Create the folder if it does not exist.\n3. Launch the game via `nvse_loader.exe`.\n\n## Setting Up OpenTrack\n\n1. Download and install [OpenTrack](https://github.com/opentrack/opentrack/releases)\n2. Configure your tracker as input\n3. Set output to **UDP over network**\n4. Host: `127.0.0.1`, Port: `4242`\n5. Start tracking before launching the game\n6. Launch Fallout: New Vegas via `nvse_loader.exe`\n\n### VR Headset Setup\n\nA VR headset makes an excellent high-precision tracker.\n\n1. Connect your headset to the PC via Air Link (Quest) or Virtual Desktop.\n2. Start SteamVR.\n3. In OpenTrack, set the input to **SteamVR**.\n4. Set output to **UDP over network** (`127.0.0.1:4242`).\n5. Start tracking before launching the game.\n\n### Webcam Setup\n\nNo special hardware needed. OpenTrack's built-in **neuralnet tracker** uses any webcam for 6DOF face tracking.\n\n1. In OpenTrack, set the input to **neuralnet tracker**\n2. Select your webcam in the tracker settings\n3. Set output to **UDP over network** (`127.0.0.1:4242`)\n4. Start tracking before launching the game\n5. Recenter in OpenTrack via its hotkey, and press **Home** in-game to recenter the mod as needed\n\n### Phone App Setup\n\nThis mod includes built-in smoothing to handle network jitter, so if your tracking app already provides a filtered signal, you can send directly from your phone to the mod on port 4242 without needing OpenTrack on PC.\n\n1. Install an OpenTrack-compatible head tracking app from your phone's app store\n2. Configure your phone app to send to your PC's IP address on port 4242 (run `ipconfig` to find it, e.g. `192.168.1.100`)\n3. Set the protocol to OpenTrack/UDP\n4. Start tracking\n\n**With OpenTrack (optional):** If you experience jerky motion, want curve mapping, or want a visual preview, route through OpenTrack instead. The mod already listens on port 4242, so OpenTrack's input must use a different port:\n1. In OpenTrack, set Input to **UDP over network** on port **5252** (or any port other than 4242)\n2. Set Output to **UDP over network** at `127.0.0.1:4242`\n3. In your phone app, send to your PC's IP on port **5252** (matching OpenTrack's input port)\n4. Make sure port 5252 is open in your PC's firewall for incoming UDP traffic\n\n## Controls\n\nTwo equivalent binding sets - use whichever your keyboard has:\n\n| Action              | Nav-cluster | Chord           |\n|---------------------|-------------|-----------------|\n| Recenter            | `Home`      | `Ctrl+Shift+T`  |\n| Toggle tracking     | `End`       | `Ctrl+Shift+Y`  |\n| Cycle tracking mode | `Page Up`   | `Ctrl+Shift+G`  |\n| Toggle reticle      | `Page Down` | `Ctrl+Shift+H`  |\n| Toggle yaw mode     | `Insert`    | `Ctrl+Shift+U`  |\n\nThe yaw-mode toggle uses `Insert` / `Ctrl+Shift+U` rather than the catalogue-standard\n`Page Down` / `Ctrl+Shift+H`, because those are already the reticle toggle in this mod.\nThe nav-cluster key is configurable via `YawModeKey` in `HeadTracking.ini`.\n\n`Page Up` / `Ctrl+Shift+G` cycles tracking mode:\n\n1. Normal head-tracked gameplay\n2. Positional tracking disabled, rotational tracking enabled\n3. Rotational tracking disabled, positional tracking enabled\n4. Back to normal\n\n## Configuration\n\nThe plugin is configured via `HeadTracking.ini` in `Data/NVSE/Plugins/`. A default config is created on first run. The mod auto-reloads the config file when changes are detected.\n\n```ini\n[Network]\n; UDP port for OpenTrack data (default: 4242)\nPort=4242\n\n[Sensitivity]\n; Multipliers for each axis (0.1-5.0)\nYaw=1.0\nPitch=1.0\nRoll=1.0\n\n[Smoothing]\n; Smoothing amount (0.0 = instant, 0.99 = maximum smoothing)\nAmount=0\n\n[Deadzone]\n; Deadzone thresholds in degrees (0.0-30.0)\nYaw=0.0\nPitch=0.0\nRoll=0.0\n\n[Hotkeys]\n; Nav-cluster virtual key codes (hex). Each action also accepts a fixed\n; Ctrl+Shift+\u003cletter\u003e chord (T/Y/G/H/U) which is not configurable.\n; Home=0x24, End=0x23, PageUp=0x21, PageDown=0x22, Insert=0x2D\nRecenter=0x24\nToggle=0x23\nCycleTrackingMode=0x21\nReticleToggle=0x22\n; Insert (Page Down is taken by ReticleToggle in this mod)\nYawModeKey=0x2D\nDebounceMs=200\n\n[Camera]\n; Mode: 0=Coupled (affects aim), 1=Decoupled (free-look), 2=BodyTracking\nMode=1\n; WorldSpaceYaw: 1 = horizon-locked yaw (default), 0 = camera-local\nWorldSpaceYaw=1\n\n[GameState]\n; InputBlockMode: 0=Never, 1=MenusOnly, 2=AllDialogue, 3=AllOverlays\nInputBlockMode=0\nTrackInThirdPerson=1\nTrackInVATS=0\nPauseDuringCombat=0\n\n[Feedback]\nShowMessages=1\n```\n\n## Troubleshooting\n\n**Plugin not loading:**\n- Verify xNVSE is installed correctly (`nvse_loader.exe` exists in game folder)\n- Launch via `nvse_loader.exe`, **not** `FalloutNV.exe` directly\n- Check `HeadTracking_debug.log` in the game folder for errors\n\n**No tracking response:**\n- Verify OpenTrack is running and tracking is active\n- Check that OpenTrack output is set to UDP `127.0.0.1:4242`\n- Press **End** to make sure tracking is enabled\n- Press **Home** to recenter\n- Ensure no firewall is blocking UDP port 4242\n\n**Camera stutters or jumps:**\n- Install [NVTF (New Vegas Tick Fix)](https://www.nexusmods.com/newvegas/mods/66537)\n- Increase smoothing in `HeadTracking.ini`\n- Add small deadzones to filter tracker noise\n\n**View rotates the wrong way:**\n- Set the appropriate invert option in OpenTrack's output mapping, or adjust the axis curves\n- Confirm OpenTrack's output axes match your tracker orientation\n- Recenter with **Home** while looking straight ahead\n\n**Yaw feels wrong when looking up or down at extreme angles:**\n- Try toggling between world-locked and camera-local yaw with **Insert** (or `Ctrl+Shift+U`). World-locked (default) is horizon-stable; camera-local follows the camera's current up-axis.\n\n## Known Limitations\n\n**Sky drifts slightly with positional (6DOF) leaning:** the sky is rendered as\na backdrop centered on the un-offset camera eye, so leaning your head shifts the\nview relative to it and the sky appears to slide a little. Rotational tracking is\nunaffected. The effect scales with positional movement; lowering position\nsensitivity reduces it.\n\n## Updating\n\nDownload the new release and run `install.cmd` again. Your config is preserved.\n\n## Uninstalling\n\nRun `uninstall.cmd` from the release folder. This removes the mod DLL and INI. xNVSE is only removed if the installer put it there; it is left intact otherwise since other mods may depend on it. To force-remove xNVSE as well:\n\n```powershell\nuninstall.cmd /force\n```\n\n## Building from Source\n\n### Prerequisites\n\n- Visual Studio 2019 or newer (with C++ desktop workload)\n- CMake 3.20 or newer\n- [pixi](https://pixi.sh) task runner\n\n### Build\n\n```bash\ngit clone --recurse-submodules https://github.com/itsloopyo/fallout-new-vegas-headtracking.git\ncd fallout-new-vegas-headtracking\n\n# Build and install to game directory\npixi run install\n\n# Or just build\npixi run build-release\n\n# Package for release\npixi run package\n```\n\n## License\n\nMIT. See [LICENSE](LICENSE).\n\n## Credits\n\n- [Obsidian Entertainment](https://www.obsidian.net/) - Fallout: New Vegas\n- [Bethesda Softworks](https://bethesda.net/) - publisher\n- [xNVSE Team](https://github.com/xNVSE/NVSE) - script extender\n- [OpenTrack](https://github.com/opentrack/opentrack) - head tracking software\n- [cameraunlock-core](https://github.com/itsloopyo/cameraunlock-core) - shared head tracking library\n\n## Disclaimer\n\nThis mod is not affiliated with, endorsed by, or supported by Obsidian Entertainment or Bethesda Softworks. \"Fallout: New Vegas\" is a trademark of Bethesda Softworks LLC. Use this mod at your own risk; no warranty is provided. Back up your save files before installing any mods.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fitsloopyo%2Ffallout-new-vegas-headtracking","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fitsloopyo%2Ffallout-new-vegas-headtracking","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fitsloopyo%2Ffallout-new-vegas-headtracking/lists"}