PreyVR 0.4.0 preview
Pre-releaseA research preview, not a finished mod. It runs in a real headset on a real level, and it has known defects listed below with the same weight as the features. If you are here to evaluate whether this accelerates your own work, read the open list first.
What works, confirmed in a headset
- Stereo submission and 6DoF head tracking, with native per-eye projection.
- Motion controls — left stick moves, right stick turns, trigger fires.
- Controller-driven hands through the engine's own IK solver. Writing the controller's wrist into the rig's animation-driven-IK target makes Prey's own two-bone solver bend the arm. Wrist rotation, finger travel and elbow bend are the engine's, not the mod's.
- A floating native HUD, plus controller-driven menus and inventory with a pointer beam.
- The reticle follows the controller, corrected for Prey's HUD canvas — it draws into a 16:9 canvas scaled to cover the frame, so a naive viewport coordinate is right at the centre and up to 271 px wrong at the edge.
Known defects
- The right controller drags the left hand. Both hands track their own controllers correctly, and the left is additionally carried by the right. Three hypotheses have been refuted, including two of our own. Leading candidate: the IK's shared world anchor is not a head position — it holds the native cached reticle ray origin, which the mod's own reticle write moves.
- Barrel alignment is unproved. Aim follows the controller, but shots still converge from the weapon's authored muzzle helper toward the reticle ray.
- Performance is below the display rate — roughly 78 fps against 90 Hz, so the compositor reprojects. Measured: cutting pixel count by 44% bought 2.7% of the frame, so this is not pixel-bound and upscaling or foveation would not fix it. What that leaves is not yet established, and there is no vanilla baseline.
- Stability. The most recent hologram session crashed. The weapon-wheel binding in this build is unverified live.
Requirements
- Prey (2017) on Steam.
PreyDll.dllmust be SHA-2567d6e322f61b28331095a400f0ba5f09bd9a39c57bf993602285dd6acb05311a7. The mod refuses to run against an unrecognised build rather than guessing. Epic build addresses do not transfer. - An OpenXR runtime and headset. Developed against Quest 3 over VirtualDesktopXR.
- This package contains no game content. Prey is the property of Bethesda and Arkane; bring your own legally obtained copy.
Running it
Unzip anywhere and run Start Prey VR.cmd. Controls, settings and validation limits are in README.md and VALIDATION.md inside the package. manifest.json carries a SHA-256 for every file.
For developers
The repository is MIT licensed. The most reusable parts are probably the instruments rather than the features — runtime-switchable frame-stage timing, per-eye frustum coverage, a per-hand IK trace, and a viewmodel-FOV assertion that writes where the renderer actually reads.
Several of those exist because a plausible number turned out to mean something other than its name: a profiler that summarised a 512-sample window while its report called it a 30-second sample, and a "missed frames" counter that never consulted a compositor. Both were caught by audit and are documented rather than quietly fixed. docs/FAILURE_REGISTRY.md is the fastest way to avoid repeating a trap that has already cost someone a session.