[Reproduceable] Unequip Bug


#1

Sometimes when I open my quick use radial menu it immediately unequips one of my hands. Hugely frustrating. Can even be deadly if it happens to your grapple hand. I got tired of dying and spent an hour trying out button combos until I could get this bug reproduceable.

Steps to reproduce

  1. Start with your in-game hands (lol) however you normally have them. No special setup needed.
  2. Hold down your quick use menu key to open the radial menu for your hands.
  3. Press down a mouse button and drag to make a selection on one of your hands. Keep holding the mouse button down.
  4. Release your quick use menu key.
  5. Release the mouse button.
  6. [Wait for the radial close animations to finish…]
  7. Press your quick use menu key.

Expected behavior: My radial menu opens again but nothing changes. I haven’t done any mouse inputs yet.

Actual behavior: You unequip what’s in your current hand.

The most important step is to release the mouse button after you release the quick use key.

I also tried to repro on a PS4 but couldn’t repro it there. It has a different behavior than PC where tapping the quick use buttons doesn’t unequip, it mimicks mouse wheel next/prev slot behavior instead.


#2

I have noticed this too. Please fix!


#3

Just to check, could this be either the left or right mouse button that corresponds to the appropriate radial display on screen?


#4

Nice spot! Also thanks for the really good description. It makes fixing these bugs a lot easier when we know how to reproduce them.


#5

Yeah I was able to repro with either hand and even both hands at the same time!


#6

you rule @a13o


#7

The order of which buttons are released seems to be a common theme with the bugs. I have been trying to reproduce the automatic swinging arm bug but the steps I go through dont work the same on some other computers…

Hopefully fixing this one will carry over and magically fix the other release timing bugs heh


#8

Yes agreed. It’s a common style of bug in all game programming I’ve found. You enter some temporary state, set up additional async listeners for it (to handle button presses etc), and then don’t account for what happens if the listeners do or don’t fire after you’ve left that state.

I too suspect there’s still one more nasty bug out there related to opening and closing menus leading to auto swing. I’ll start looking more earnestly once this first batch is verified and fixed. Or, when it causes me to fall into lava.