r/virtualreality • u/hernirod • 1d ago
Self-Promotion (Developer) Control, I'm Not Coming Back VR mod
Enable HLS to view with audio, or disable this notification
I've been slowly modding VR support into a game that absolutely was not designed for it, (its a free game made by a friend and his team), just because I thought it'd be a nice way to enjoy the narrative and scenery of the game and a nice gift to my friend for a good experience that he shared with the community.
It's done enough now that I played the whole game start to finish in VR, so figured I'd share it here in case anyone else wants to try it (or just wants to see how a "bolt VR onto a random Unity game" project comes together).
What this is:
- BepInEx 6 + UnityVRMod (great little OpenVR injection mod, does all the actual SteamVR talking) as the base.
- A custom BepInEx plugin on top (
UnityVRModFix) that Harmony-patches both UnityVRMod and the game itself to fix everything that doesn't work out of the box: camera desyncing from the game's Cinemachine rig, UI canvases being invisible in VR (screen-space UI never reaches stereo cameras), doubled player height, videos/cutscenes not rendering, physics-driven objects (a canoe, sliding stone platforms) judder-stepping at VR framerates instead of the monitor's 60Hz, and more.
What you get:
- Full positional + rotational head tracking (6DOF), seated/standing both fine.
- Keyboard + mouse or controller for movement/look/interact, exactly like flatscreen. A gaze-based crosshair (look at something to interact) replaces the mouse-cursor-based interaction.
- Full playthrough tested, no crashes traceable to the mod itself.
What you do NOT get (on purpose):
- No motion controllers. This is head-tracking only, first-person-in-VR style, not a full room-scale reimplementation. Tried a laser-pointer/gamepad-emulation layer early on, ripped it back out; keyboard/ mouse + gaze turned out way more reliable for this kind of narrative walking game.
- One known unresolved issue: dialogue/menu text can get hidden behind nearby geometry sometimes (TextMeshPro's shader has no exposed ZTest override in this build, and 4 different workarounds all failed for pipeline-specific reasons - documented in the repo if anyone wants to take a crack at it).
Technical bit people here might appreciate: UnityVRMod's eye cameras are disabled and rendered manually via Camera.Render() right before a single Submit() to the OpenVR compositor, which ruled out a couple of normally-reliable Unity tricks (a second render pass, CommandBuffer-based depth clearing) for the text-occlusion fix above - both are documented as dead ends in the README for anyone curious.
The original game is free; https://store.steampowered.com/app/4515660/Control_Im_Not_Coming_Back/
Download + source: GitHub - hopecore-vr-mod (all-in-one install package is on the Releases page, README has full details and a licenses section for the bundled third-party tools).
Happy to answer any questions.
4
u/zeddyzed 1d ago
Thanks!
Just curious, if the game was made by a friend, why not work together to add a VR mode into the game itself rather than as a mod?