
An unofficial decoupled look+aim head tracking mod for Subnautica 2, look around naturally with your head while your mouse or controller controls your aim, with no VR headset required.
This mod is hosted on Nexus Mods by itsloopyo. Clicking below will open the official mod page in a new tab.
Download on Nexus ModsYou will leave this site. Downloads and installs are handled by Nexus Mods.
Head Tracking for Subnautica 2
An unofficial decoupled look+aim head tracking mod for Subnautica 2, look around naturally with your head while your mouse or controller controls your aim, with no VR headset required.
Features
- Decoupled look + aim - Look around freely with your head while your mouse or controller aim stays independent
- 6DOF tracking - Full rotation (yaw, pitch, roll) and positional tracking (lean, peek, duck), with asymmetric forward/back limits to prevent clipping through the player
- Works with any OpenTrack-compatible source - VR headset, webcam, smartphone app, TrackIR, or anything that speaks OpenTrack UDP
Requirements
- A purchased copy of Subnautica 2 on Steam
- Windows 10 / 11, 64-bit
- An OpenTrack-compatible head tracker (VR headset, webcam, or phone app)
Installation
1. Install OpenTrack (or your preferred OpenTrack-compatible tracker). See Dependencies.
2. Download this mod's zip from the Files tab on this NexusMods page and extract the contents of the zip into your Subnautica 2 install root. The zip's internal layout is `Subnautica2/Binaries/Win64/` (Steam build) and `Subnautica2/Binaries/WinGDK/` (Game Pass / Xbox app build), so extracting "into the install root" lands the files in the right `Binaries` folder automatically. The unused build's folder is harmless and can be left in place.
- Steam: extract into `<Steam library>/steamapps/common/Subnautica2/` so that `dxgi.dll` ends up at `<Steam library>/steamapps/common/Subnautica2/Subnautica2/Binaries/Win64/dxgi.dll`.
- Game Pass / Xbox app: extract into `C:/XboxGames/Subnautica 2/Content/` so that `dxgi.dll` ends up at `C:/XboxGames/Subnautica 2/Content/Subnautica2/Binaries/WinGDK/dxgi.dll`. The `Content` folder is normally writable even though the parent `C:/XboxGames/Subnautica 2/` is locked. If Windows refuses, close the Xbox app first, then re-run the extract from an archive tool running as administrator. Do not extract into `C:/XboxGames/Subnautica 2/` itself; extract into `Content`.
- If you have both Steam and Game Pass installed, repeat the extract for both install roots (or extract once into each). Each build needs its own copy of the mod files.
4. Copy your system DXGI to the matching `Binaries` folder as `dxgi_orig.dll`. Open an administrator Command Prompt and run the line for your build (run both if you installed the mod into both):
:: Steam
copy "C: Windows System32 dxgi.dll" "<Steam library> steamapps common Subnautica2 Subnautica2 Binaries Win64 dxgi_orig.dll"
:: Game Pass / Xbox app
copy "C: Windows System32 dxgi.dll" "C: XboxGames Subnautica 2 Content Subnautica2 Binaries WinGDK dxgi_orig.dll"
5. Launch Subnautica 2 normally (Steam or the Xbox app). A `Subnautica2HeadTracking.log` file will appear in the same `Binaries` folder. The first few lines should contain `build-check: PASS - matched profile ...`. If the log appears, the mod loaded successfully; if it does not, the proxy did not load and `dxgi_orig.dll` is almost certainly missing or misnamed.
Setup / Configuration
Configuring OpenTrack using a VR headset:
- Connect your headset (Air Link, Virtual Desktop, Link cable, etc.) and start SteamVR.
- In OpenTrack, choose the SteamVR input plugin so it reads your headset pose.
- Set Output to "UDP over network", Host `127.0.0.1`, Port `4242`.
- Click Start, then launch the game.
Configuring OpenTrack using a webcam:
- In OpenTrack, set Input to "neuralnet tracker" (webcam) or another input of your choice.
- Set Output to "UDP over network", Host `127.0.0.1`, Port `4242`.
- Click Start, then launch the game.
Using a phone app:
- Install an OpenTrack-compatible head tracking app on your phone.
- Set it to send to your PC's IP address (run `ipconfig` to find it) on port `4242`.
- Start tracking on the phone, then launch the game.
- Note: phone apps usually benefit from being smoothed through OpenTrack. If tracking is jittery, send from the phone to OpenTrack on e.g. port `5252` (ensure it is open in your firewall), then send from OpenTrack to the mod on `127.0.0.1:4242`.
Mod configuration (`HeadTracking.ini`)
A self-documenting `HeadTracking.ini` ships in the mod zip and lands next to `dxgi.dll` in the `Binaries` folder. Edit it and restart the game to apply changes. If both Steam and Game Pass builds are installed, each has its own copy of the file.
Key settings:
[Network]
Port = 4242 ; OpenTrack UDP port
[Tracking]
EnableOnStartup = true ; start with tracking active
YawSensitivity = 1.0 ; multiplier for left/right look
PitchSensitivity = 1.0 ; multiplier for up/down look
RollSensitivity = 1.0 ; multiplier for head tilt
InvertYaw = false
InvertPitch = false
InvertRoll = false
Smoothing = 0.0 ; 0.0 = responsive, 1.0 = heavy (0.15 floor applied internally)
AimDecoupling = true ; head moves view, mouse/controller still aims
ShowReticle = true ; draw the aim-compensated reticle
WorldSpaceYaw = true ; true = horizon-locked yaw (default), false = camera-local
[Position]
Enabled = true ; 6DOF head position tracking
InvertX = true ; sideways lean direction
InvertY = false ; vertical move direction
InvertZ = true ; forward/back lean direction
LimitX = 0.30 ; max sideways lean in meters
LimitY = 0.20 ; max vertical move in meters
; With InvertZ = true the Z bounds map backwards: forward lean uses
; LimitZBack (generous 0.40) and backward lean uses LimitZ (restricted
; 0.10, avoids clipping through the player).
LimitZ = 0.10 ; backward lean limit in meters
LimitZBack = 0.40 ; forward lean limit in meters
Smoothing = 0.15
On the Xbox app build, Windows ACLs may block a normal Notepad save under the game folder. Open Notepad as administrator, then open `C:/XboxGames/Subnautica 2/Content/Subnautica2/Binaries/WinGDK/HeadTracking.ini`.
Controls
Two equivalent binding sets - use whichever your keyboard has:
| Action | Nav-cluster | Chord |
|---------------------------------|-------------|----------------|
| Recenter | `Home` | `Ctrl+Shift+T` |
| Toggle tracking | `End` | `Ctrl+Shift+Y` |
| Cycle tracking mode | `Page Up` | `Ctrl+Shift+G` |
| Toggle yaw mode (world / local) | `Page Down` | `Ctrl+Shift+H` |
`Page Up` / `Ctrl+Shift+G` cycles tracking mode:
1. Normal head-tracked gameplay.
2. Positional tracking disabled, rotational tracking enabled.
3. Rotational tracking disabled, positional tracking enabled.
4. Back to normal.
`Page Down` / `Ctrl+Shift+H` toggles yaw mode between world-locked (default, horizon-stable) and camera-local.
Troubleshooting
Logs live next to `dxgi.dll` in the `Binaries` folder:
- Steam: `<Steam library>/steamapps/common/Subnautica2/Subnautica2/Binaries/Win64/Subnautica2HeadTracking.log`
- Game Pass: `C:/XboxGames/Subnautica 2/Content/Subnautica2/Binaries/WinGDK/Subnautica2HeadTracking.log`
Mod not loading (no log file appears after launch):
- Confirm `dxgi.dll`, `dxgi_orig.dll`, and `HeadTracking.ini` are all in the correct `Binaries` folder for your build (`Binaries Win64 ` for Steam, `Binaries WinGDK ` for Game Pass). Missing `dxgi_orig.dll` is by far the most common cause: the proxy forwards every DXGI export there, so without it the game cannot start.
- Windows may have blocked the downloaded DLL. Right-click `dxgi.dll`, choose Properties, tick Unblock, and apply.
- If another mod (ReShade, SpecialK, etc.) already ships its own `dxgi.dll` in the same folder, that is a conflict. Only one `dxgi.dll` can win.
Game launches but no head tracking:
- Check the log for `build-check: PASS - matched profile ...`. If it instead says the build is unrecognised, the game has been patched to a build the mod does not know about yet; check the mod's Files tab for an update.
- Make sure OpenTrack (or your tracker) is running and Output is set to UDP `127.0.0.1:4242`.
- Press `End` (or `Ctrl+Shift+Y`) to toggle tracking on.
- Press `Home` (or `Ctrl+Shift+T`) to recenter.
- Check your firewall is not blocking UDP port `4242`.
Config changes not taking effect:
- The ini is only read at game launch. Fully quit the game and relaunch after editing.
- On Game Pass, Windows may have silently rejected your save. Reopen the file and confirm your changes are still there; if not, edit it with Notepad running as administrator.
- Confirm you edited the ini next to the `dxgi.dll` that is actually loaded (Steam uses `Binaries Win64 HeadTracking.ini`; Game Pass uses `Binaries WinGDK HeadTracking.ini`).
Wrong rotation axis:
- If a look axis goes the wrong way, set the matching Invert flag (`InvertYaw` / `InvertPitch` / `InvertRoll`) to `true` in `HeadTracking.ini` and relaunch.
Yaw feels wrong at extreme up/down angles:
- Toggle between world-locked and camera-local yaw with `Page Down` / `Ctrl+Shift+H`. World-locked (default) keeps the horizon stable; camera-local follows the camera's current up-axis.
Camera jittering:
- Raise `Smoothing` in `[Tracking]` toward 0.3 to 0.5, or increase smoothing in your tracking source (OpenTrack has a Smoothing filter).
- If using a phone app over WiFi, some jitter is expected. Route through OpenTrack for smoothing.
- Improve lighting for webcam-based tracking.
Game crashes on launch after install:
- This is almost always a bad or missing `dxgi_orig.dll`. Re-copy it from `C: Windows System32 dxgi.dll` to the `Binaries` folder using the exact line in Installation step 4. The file must be named `dxgi_orig.dll`, not `dxgi.dll` or `dxgi_original.dll`.
Uninstalling
Delete the following files from the `Binaries` folder you installed into (`Binaries Win64 ` for Steam, `Binaries WinGDK ` for Game Pass; do both if you installed into both):
- `dxgi.dll`
- `dxgi_orig.dll`
- `HeadTracking.ini`
- `Subnautica2HeadTracking.marks.txt`
- `Subnautica2HeadTracking.log` (if present)
The game is fully vanilla after that. If you had a different `dxgi.dll` shim there before the mod (ReShade, SpecialK, etc.), restore it from your own backup; this manual install does not keep one.
OpenTrack is independent of the mod and can stay installed or be uninstalled separately via its own uninstaller.
Credits
- Unknown Worlds, developers of Subnautica 2.
- OpenTrack- head tracking protocol and software.
- cameraunlock-core- shared head-tracking processing pipeline used across our mods.
Source Code
https://github.com/itsloopyo/subnautica-2-headtracking - MIT License.
Disclaimer
This mod is not affiliated with, endorsed by, or supported by Unknown Worlds Entertainment. Use at your own risk.
No bugs reported yet. If you hit a problem, let the author know.
Be the first to rate this mod.
Sign in to leave a rating.
You might also like
No comments yet. Be the first to share your thoughts.