The tongue only detaches if the game thinks LMB was released. Because you’re still holding the button, that tells us the only thing that changed is mouse motion. So this looks exactly like button state not surviving motion events.
I suspect something in the input path is either emitting a spurious button-up on move, or answering “is LMB still down?” with false once motion has happened. If true, this narrows it away from GPU and points toward button-state lifetime across relative "mouse-move" events (in Proton 9.0-4.)
This is the same pattern as other Unity titles on Proton:
Unity can take the button state from the message/GetAsyncKeyState path and motion change from raw input. When those get out of sync under Wine, whatever button(s) is/are being held die on move. The recent Wine workaround with raw motion and NtUserSendHardwareInput is in that area (Wine 11.13). But Proton 9.0-4 (what you're using) predates a lot of these fixes.
Thank you so much for responding so fast. I didn't know about all the nitty gritty but I figured it was something about how mouse movements were being passed through to the game, along those same lines. Really good to know since I play PEAK as well, switched to Mint a few days ago. Could you tell me how I can implement the workaround and if it'll interfere with other games if I leave it on?
Edit: Figured out how to switch on my own, Proton Experimental works great! Thanks!
proton experimentalx2 2026-07proton 9.0-4x1 2026-07
Compatibility Report
System Information
I confirm:
Log
steam-3989960.log
Symptoms
When I'm holding onto something with my tongue, if I move the mouse at all, it detaches from the object. It's supposed to stay latched on so long as the LMB is held down.
Reproduction