{"id":50415463,"url":"https://github.com/itsloopyo/skyrim-special-edition-headtracking","last_synced_at":"2026-05-31T05:31:02.238Z","repository":{"id":359899863,"uuid":"1219292001","full_name":"itsloopyo/skyrim-special-edition-headtracking","owner":"itsloopyo","description":"An OpenTrack compatible head tracking mod for Skyrim Special Edition","archived":false,"fork":false,"pushed_at":"2026-05-24T01:17:49.000Z","size":56211,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-05-24T03:19:09.897Z","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-04-23T18:18:05.000Z","updated_at":"2026-05-24T01:17:52.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/itsloopyo/skyrim-special-edition-headtracking","commit_stats":null,"previous_names":["itsloopyo/skyrim-special-edition-headtracking"],"tags_count":1,"template":false,"template_full_name":null,"purl":"pkg:github/itsloopyo/skyrim-special-edition-headtracking","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/itsloopyo%2Fskyrim-special-edition-headtracking","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/itsloopyo%2Fskyrim-special-edition-headtracking/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/itsloopyo%2Fskyrim-special-edition-headtracking/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/itsloopyo%2Fskyrim-special-edition-headtracking/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/itsloopyo","download_url":"https://codeload.github.com/itsloopyo/skyrim-special-edition-headtracking/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/itsloopyo%2Fskyrim-special-edition-headtracking/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":33720897,"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-05-31T02:00:06.040Z","response_time":95,"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-05-31T05:31:00.472Z","updated_at":"2026-05-31T05:31:02.233Z","avatar_url":"https://github.com/itsloopyo.png","language":"C++","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Skyrim SE Head Tracking\n\n![Mod GIF](https://raw.githubusercontent.com/itsloopyo/skyrim-special-edition-headtracking/main/assets/readme-clip.gif)\n\nAn unofficial head tracking mod for Skyrim Special Edition. Look around naturally with your head while your mouse and keyboard/controller still handle aim, no VR headset required.\n\n## Features\n\n- **Decoupled look and aim** - head tracking moves the view; the game's aim stays on your mouse or controller\n- **6DOF positional tracking** - lean and peek with head position\n\n## Requirements\n\n- [The Elder Scrolls V: Skyrim Special Edition](https://store.steampowered.com/app/489830/) (Steam, Anniversary Edition 1.6.x)\n- [OpenTrack](https://github.com/opentrack/opentrack) or a compatible head tracking app (smartphone, webcam, or dedicated hardware)\n- Windows 10 / 11 (64-bit)\n\n## Installation\n\n1. Download the latest `SkyrimSEHeadTracking-v\u003cversion\u003e-installer.zip` from the [Releases page](https://github.com/itsloopyo/skyrim-special-edition-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\n\nThe installer finds your Skyrim SE install via Steam registry. If it can't find the game:\n\n- Set the `SKYRIM_SE_PATH` environment variable to your game folder, or\n- Run from a command prompt: `install.cmd \"D:\\Games\\Skyrim Special Edition\"`\n\n### Manual Installation\n\nFor users on Nexus Mods or anyone who prefers to drop files in by hand:\n\n**Step 1: Install Ultimate ASI Loader**\n\n1. Download `Ultimate-ASI-Loader_x64.zip` from [ThirteenAG's releases](https://github.com/ThirteenAG/Ultimate-ASI-Loader/releases)\n2. Extract `dinput8.dll` into your Skyrim SE directory (the folder containing `SkyrimSE.exe`)\n\n**Step 2: Install the mod**\n\n1. Grab the `-nexus.zip` variant from the Releases page\n2. Copy the contents of the `Root/` folder (`SkyrimSEHeadTracking.asi`) into your Skyrim SE directory, next to `SkyrimSE.exe`\n\n`HeadTracking.ini` is written automatically next to `SkyrimSE.exe` on first launch - there's no need to copy it in, and it isn't bundled so updates never overwrite your settings.\n\n**Mod Organizer 2:** install the `-nexus.zip` as a normal mod. The `Root/` folder is handled by the Root Builder plugin, which deploys it to the game root. Without Root Builder, install manually as above - MO2's virtual file system only covers `Data/`, not the game root where `.asi` files must live.\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\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 for network jitter, so if your tracking app already sends a filtered signal you can point the phone straight at port 4242 without routing through OpenTrack on the PC.\n\n1. Install an OpenTrack-compatible head tracking app from your phone's app store\n2. Configure the phone app to send to your PC's IP address on port 4242 (run `ipconfig` on the PC 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 want curve mapping or a visual preview, route through OpenTrack. Set OpenTrack's input to \"UDP over network\" on a different port (e.g. 5252), point the phone app at that port, and set OpenTrack's output to `127.0.0.1:4242`. Make sure your firewall allows incoming UDP on the input port.\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 yaw mode     | `Page Down` | `Ctrl+Shift+H`  |\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`Page Down` / `Ctrl+Shift+H` switches between horizon-locked yaw (default) and camera-local yaw.\n\n## Configuration\n\nThe mod writes `HeadTracking.ini` next to `SkyrimSE.exe` on first launch. Edit it to customize:\n\n```ini\n[Network]\nUDPPort=4242              ; UDP port for tracker data (1024-65535)\n\n[Sensitivity]\nYawMultiplier=1.0         ; Horizontal rotation sensitivity (0.1-5.0)\nPitchMultiplier=1.0       ; Vertical rotation sensitivity (0.1-5.0)\nRollMultiplier=1.0        ; Head tilt sensitivity (0.0-2.0)\n\n[Position]\nSensitivityX=1.0          ; Lateral position sensitivity (0.1-10.0)\nSensitivityY=1.0          ; Vertical position sensitivity (0.1-10.0)\nSensitivityZ=1.0          ; Depth position sensitivity (0.1-10.0)\nLimitX=0.30               ; Max lateral offset in meters\nLimitY=0.20                ; Max vertical offset in meters\nLimitZ=0.40                ; Max forward offset in meters\nLimitZBack=0.10           ; Max backward offset (prevents camera clipping)\nSmoothing=0.15            ; Position smoothing (0.0-0.99)\nInvertX=true              ; Invert lateral axis\nInvertY=false             ; Invert vertical axis\nInvertZ=true              ; Invert depth axis\nEnabled=true              ; Enable 6DOF (set false for rotation-only 3DOF)\n\n[Hotkeys]\nToggleKey=0x23            ; End key (virtual key code in hex)\nRecenterKey=0x24          ; Home key\nPositionToggleKey=0x21    ; Page Up key\nYawModeKey=0x22           ; Page Down key - toggle world/local yaw\n\n[General]\nAutoEnable=true           ; Start tracking when the game launches\nShowNotifications=true    ; Write status messages to HeadTracking.log\nWorldSpaceYaw=true        ; true = horizon-locked yaw (default), false = camera-local\n```\n\nDelete the file to reset to defaults.\n\n## Troubleshooting\n\n**Mod not loading:**\n\n- Verify `dinput8.dll` (ASI Loader) is in your Skyrim SE directory alongside `SkyrimSE.exe`\n- Check that `SkyrimSEHeadTracking.asi` is in the same directory\n- Check `HeadTracking.log` in the game folder for error messages\n\n**No tracking response:**\n\n- Ensure your tracker is running and outputting data\n- Verify the UDP port matches in both tracker and `HeadTracking.ini`\n- Press **End** to enable tracking if `AutoEnable` is off\n- Press **Home** to recenter if the view is offset\n- Check that your firewall isn't blocking UDP port 4242\n\n**Jittery or unstable tracking:**\n\n- Increase filtering in your tracker software, or raise `Smoothing` in `HeadTracking.ini`\n- Reduce sensitivity multipliers in `HeadTracking.ini`\n- Improve lighting for webcam-based tracking\n- If you're streaming from a phone over WiFi, some jitter is expected; send via a wired hotspot or switch to webcam tracking for the smoothest signal\n\n**Wrong rotation axis (head rotates the view the wrong way):**\n\n- Invert the position axis in the `[Position]` section (`InvertX`, `InvertY`, `InvertZ`)\n- For rotation axes, flip the sign on the sensitivity multiplier (e.g. `PitchMultiplier=-1.0`)\n- Press **Home** after changing signs so the new orientation is taken as the neutral pose\n\n**Yaw feels wrong when looking up or down at extreme angles:**\n\n- Try toggling between world-locked and camera-local yaw with `Page Down`. World-locked (default) is horizon-stable; camera-local follows the camera's current up-axis.\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 DLLs. Ultimate ASI Loader (`dinput8.dll`) is only removed if the installer originally put it there. To remove it anyway:\n\n```\nuninstall.cmd /force\n```\n\nTo remove manually, delete these files from your Skyrim SE directory:\n\n- `SkyrimSEHeadTracking.asi`\n- `HeadTracking.ini`\n- `HeadTracking.log` (if present)\n- `dinput8.dll` (only if you also want to remove the ASI Loader)\n\n## Building from Source\n\n### Prerequisites\n\n- [Visual Studio 2022](https://visualstudio.microsoft.com/) with the C++ desktop development workload\n- [CMake 3.20+](https://cmake.org/)\n- [pixi](https://pixi.sh) task runner\n\n### Build\n\n```bash\ngit clone --recurse-submodules https://github.com/itsloopyo/skyrim-special-edition-headtracking.git\ncd skyrim-special-edition-headtracking\n\n# Build and install to game\npixi run install\n\n# Build only\npixi run build-release\n\n# Package for release\npixi run package\n```\n\n**Manual CMake:**\n\n```bash\ncmake -B build -G \"Visual Studio 17 2022\" -A x64\ncmake --build build --config Release\n```\n\nOutput: `bin/Release/SkyrimSEHeadTracking.asi`\n\n## License\n\nMIT. See [LICENSE](LICENSE).\n\n## Credits\n\n- [Bethesda Game Studios](https://bethesdagamestudios.com/) - Skyrim Special Edition\n- [OpenTrack](https://github.com/opentrack/opentrack) - Head tracking protocol and software\n- [Ultimate ASI Loader](https://github.com/ThirteenAG/Ultimate-ASI-Loader) - ASI plugin loading\n- [MinHook](https://github.com/TsudaKageyu/minhook) - API hooking library\n- [inih](https://github.com/benhoyt/inih) - INI file parser\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fitsloopyo%2Fskyrim-special-edition-headtracking","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fitsloopyo%2Fskyrim-special-edition-headtracking","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fitsloopyo%2Fskyrim-special-edition-headtracking/lists"}