A native stereo OpenXR VR mod for Hitman: Absolution, with first-person and third-person views, headset tracking and motion-controller aiming. The game renders both eyes in the same frame through its native stereo renderer, using a modified wiz3D base.
v0.0.50 is an experimental prerelease. The main VR features and held-item walking correction have been tested in the headset. Earlier builds had rare crashes; this version changes attachment-update timing to address a repeated crash, but long-session stability is not confirmed.
- Windows and an active OpenXR headset runtime. Testing used Meta Quest Link; other runtime/headset combinations are unverified.
- GOG version 1.0.447.0, the 32-bit DirectX 11
HMA.exe. Other builds are rejected by the installer. - Microsoft Visual C++ runtime installed for both x86 and x64.
- A legitimate game installation. No game executable or game assets are included.
Supported executable SHA-256:
5B93E0060C100197F658B7FC9D2F39323E3148396F7DE7CFF4496AAF4029952D
- Download HitmanAbsolutionVR-0.0.50.zip from Releases and extract it into a permanent folder outside the game installation.
- Close Hitman and run Install Hitman VR.cmd. Enter the game folder or its
retailsubfolder when prompted. - Connect the headset and start its OpenXR runtime.
- Run Launch Hitman VR.cmd from the extracted mod folder. Keep the launcher window open until you finish playing.
- Keep Stereoscopic 3D enabled in Hitman's settings. Gameplay starts in tracked first person; look straight ahead and press F9 to recenter.
Installation verifies the executable, backs up replaced files and preserves an existing HitmanAbsolutionVR.ini. Keep the extracted folder: it contains the launcher and rollback backups. Close the game before updating.
The launcher selects the runtime's recommended per-eye resolution and enables fullscreen/exclusive fullscreen for the session. It restores display values on exit if they still match the values it applied; deliberate setting changes are retained.
Command-line installation is also supported:
.\install.ps1 -GameDirectory 'D:\Games\Hitman Absolution'Firearms aim with the right controller. With two distinct guns equipped, each follows its own controller and each trigger fires its corresponding gun. Release both triggers after equipping weapons or regaining focus. The laser dot is the normal aiming reference; the native gameplay crosshair is hidden by default.
Melee and throwable items follow the controller while retaining normal button-driven attacks/throws. Physical swing-based melee and full-body inverse kinematics are not implemented.
Main/pause menus and Point Shooting use the stereo screen automatically. Point Shooting restores its marking crosshair and native mouse/right-stick targeting, then returns to tracked VR when it ends.
Controller buttons follow the game's normal gamepad bindings, with these additions:
| Controller input | Action |
|---|---|
| Left stick | Movement |
| Right stick | Turning |
| Right trigger | Fire / normal attack |
| Left trigger with dual guns | Fire the left gun |
| Hold right stick-click + X | Recenter |
| Hold right stick-click + Y | Toggle first/third person |
| Tap left Menu | Pause |
| Hold left Menu for 1.5 seconds | Gamepad Back action |
| Hold right stick-click + left-stick direction | Gamepad D-pad action |
| Short right stick-click alone | Native scope/stick-click action |
Release the modifier and face button before using their ordinary actions.
| Key | Action |
|---|---|
| F2 | Toggle laser dot |
| F3 | Toggle motion/native item aiming |
| F4 | Hide/show Agent 47's body in first person |
| F5 | Toggle first/third person |
| F6 | Toggle tracked VR/stereo screen |
| F7 | Optional workaround for artifacts with global illumination off |
| F8 | Save support captures and diagnostics |
| F9 | Recenter |
| F10 | Toggle first-person world visibility correction |
| F11 | Toggle filtering of identified flat tree billboards |
| F12 | Toggle the rendered camera's horizon lock |
NumPad1–4 and NumPad6 compare rendering/tracking corrections; leave them enabled during normal play. NumPad5 records a bounded diagnostic for the identified wrench draw path.
Edit HitmanAbsolutionVR.ini in the game's retail folder, then restart. Keyboard toggles affect the current run.
| Setting | Default | Purpose |
|---|---|---|
UseHeadsetResolution |
1 |
Use the OpenXR runtime's recommended resolution |
FirstPerson |
1 |
Start gameplay in first person |
HideBody |
0 |
Hide the body in first person; held items remain visible |
LockVerticalCamera |
1 |
Keep the rendered camera level under mouse/stick input |
LaserSight |
1 |
Show the firearm aiming dot |
LaserMinPixelRadius |
4 |
Minimum visible dot size |
MotionAimAllGuns |
1 |
Enable the common firearm motion-aim path |
MotionDualWield |
1 |
Enable independent dual-gun tracking/firing |
MotionHeldItems |
1 |
Track melee/throwable attachments |
UIScale |
1.0 |
Scale the stereo HUD plane |
SyncCameraMetadata |
0 |
Optional global-illumination-off workaround |
Headset pitch and controller aiming remain active with the camera horizon locked. The INI comments cover the remaining options. Leave FramePoseSync, LockHeldRenderPose and DeferRenderAttachmentWrites enabled for normal play.
- Rare crashes remain under investigation. The 0.0.50 mitigation passed native-routine and lifecycle checks; extended gameplay stability is unconfirmed.
- Some fog/effects can look wrong in stereo. The menu mouse cursor can be invisible; gamepad menu navigation remains available.
- Identified distant flat tree billboards are filtered out rather than replaced with 3D models. Other billboard families may remain.
- Not every weapon, outfit, level or cutscene has been tested. Pistols, dual pistols, the Police Revolver and several held items received gameplay checks. Other firearm classes also have native adapter/transform checks, which do not establish full campaign compatibility.
- Native sniper scopes, two-hand support grips and collision-aware roomscale locomotion are not validated VR features.
- Native headset resolution can be demanding. Performance depends on the runtime's render-resolution recommendation and game settings.
With global illumination enabled, keep SyncCameraMetadata=0. If GI is disabled and shadow/ground artifacts appear, F7 offers an optional workaround that can also change shadow detail/range.
Close the game and run Rollback Hitman VR.cmd to restore files from the latest installation backup. Changed binaries cause rollback to stop; edited INI preferences are kept. Backups and logs are retained.
For issues, include the mod version, level, equipped item and triggering action. F8 captures are saved in retail/HitmanAbsolutionVR-captures. Relevant logs include HitmanAbsolutionVR-weapon.log, HitmanAbsolutionVR-camera.log, HitmanAbsolutionVR-transport.log and HitmanAbsolutionVR.log. Review diagnostics before sharing: they can contain local paths and machine information.
Requires Visual Studio 2022 C++ tools, CMake, Git and Python:
.\build.ps1This builds an x86 game proxy and x64 OpenXR host. Dependencies are pinned in CMakeLists.txt. For offline builds, -DependencyRoot may point to a folder containing openxr-src and minhook-src checkouts. Installable binaries are placed in dist/.
Release ZIPs include compiled binaries, install/launch/rollback scripts, default configuration, licenses and SHA-256 checksums. Matching source is available at the release tag.
- effcol/wiz3D, commit
058e60fc46c1969b6379579ea0d50c75b69acb39: native stereo wrapper base. - farmerarmor/TombRaiderVR: OpenXR host/transport architecture, adapted to Hitman's own ABI and renderer.
- Khronos OpenXR SDK, MinHook, and the original iZ3D wrapper contributors.
- pavledev/HitmanAbsolutionSDK2, commit
241697c493a38bcb3c45fca6e0c8df035e3e733a: camera research reference. Retail hooks were independently checked against the supported executable.
Distributed under LGPL-2.1, with individual third-party notices retained in THIRD_PARTY_NOTICES.md and licenses/. This is an unofficial mod, unaffiliated with the game's developers or publishers.