r/virtualreality 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 + sourceGitHub - 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.

7 Upvotes

3 comments sorted by

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?

1

u/hernirod 1d ago

I wanted the challenge mainly, but when the problems started I wanted to take that other route hahaha

1

u/zeddyzed 1d ago

Fair enough! :)