Okabintaro / SubmersedVR

A Subnautica VR mod aiming to bring full motion controler support and common VR mechanics to the game.
MIT License
204 stars 12 forks source link

Possible to lock game in a glitched pause (looses unsaved game progress) #111

Open wulf21 opened 8 months ago

wulf21 commented 8 months ago

Hello,

I lost my first 45 minutes of progress to this. After thinking about how it happened to avoid it, I managed to reliably reproduce the issue. (So this might help get it fixed/warn others about it).

Following steps: 1) have the game in focus on Windows desktop (displays full screen) 2) open the in-game pause menu (from the tablet) 3) while your virtual in-VR pointer is pointed at an option (like back to game, setting) in the menu or pointed anywhere away from menu, press the system button on the controller (opens SteamVR overlay) 4) click into the game window (works both with a real mouse connected to desktop or clicking from the Desktop opened inside SteamVR overlay) 5) close the SteamVR overlay (System button or click with controller outside the overlay)

Depending on what was pointed at in 3) either of the following happens:

If it was something that opens another menu point, for example settings, the click in 4) will open the menu point, while SteamVR overlay is open. If it was "back to game" or pointed somewhere away from the ingame menu, then it actually closes the menu and resumes the game, while SteamVR overlay is open.

Either way, after closing the SteamVR overlay again, the game will be locked. If a menu is open, that menu will not react to any input anymore, only thing that moves are the controller models (first screenshot). If the game was resumed, it will pause again while the pause menu is closed. It's impossible to open it again to unpause. You see your hands moving, but the only input that reacts is that you can click the button to close the tablet. This closes the tablet menus (like inventory), but your hand will still be holding an empty tablet (second screenshot). Attached Log Output is from the second screenshot.

Version information: SubmersedVR: Self-built from clone of latest master commit: https://github.com/Okabintaro/SubmersedVR/commit/71ae9861796fc1f313bfb82d1bd1ae36cde9e47b Bepinex: 5.4.22-payload.2.0.1 (latest) installed via the Vortex Mod manager Subnautica: latest regular on Steam (not beta). Steam Build ID 10676206. Properties of Subnautica.exe say version 2019.4.36.870. SteamVR: 2.2.3 OS: Microsoft Windows 11 Pro Version 23H2

VR Hardware: Valve Index Headset and Motion Controllers

20240129222340_1 20240129222900_1 LogOutput.log

wulf21 commented 8 months ago

After discovering the many actions that are by the default bindings for Index not bound, I find that the issue can at least partially be mitigated if you bind the uimenu (pause menu) action. I bound it to long press of left B-button (which is same way pause menu opens in HL:Alyx so that feels natural to me).

Opening the menu while being stuck in glitched pause with menu closed, does not allow you to resume the game, but you can click the button to leave (that saves the game and returns to main menu) and then load the save again. After loading, everything is back to normal.

If you happen to be stuck in a glitched pause in a non-interactable menu, though, there is no way out except forcefully closing the game (for example with the SteamVR overlay and starting it again, which looses unsaved progress.

(Obviously, to prevent the issue in the first place don't focus the Subnautica window while playing in VR, leave it in background - which is a bummer if you want to have spectators).

Okabintaro commented 8 months ago

Thanks for the detailed report! I think you rediscovered #2. I never managed to fully fix it unfortunately and am not sure if I can get back into it.

What I ended up doing is installing an autosave mod and making sure the game was always focused.