Shift keys are not detected properly

Whenever i press and hold left shift and then press right shift no input will be detected from right shift, the same thing happens when you hold right shift and press left shift.

This prevents me from implementing an easy to activate keybind while also having the likelyhood of the keys being pressed by accident really low.

This also prevents users in my game from binding both shift keys to seperate mechanical blocks and the blocks not being activated properly when both shift keys are pressed at the same time.

for i,h in UserInputService:GetKeysPressed() do
	print(h.KeyCode)
end

image

Expected behavior

Both shift keys should be detectable when one of the shift keys is already being held down.

4 Likes

I am fairly certain this has to do with how the keyboard works, if you search up “keyboard tester/keyboard checker” if you hold one of the shifts and press the other one it won’t always register when the input of the one you press is ended.

1 Like

That is true for most cases, but wouldn’t it still be possible to somehow seperate the keys for the engineers?

Roblox does distinguish right and left shift from each other right?

Yes they do, i can press them seperately and detect them seperately, just not whenever they’re pressed together.
However though sometimes they glitch into being pressed at the same time somehow and it shows both inputs are pressed.

I’ll check soon, give me a minute.
EDIT: This also seems to happen with keyboard testing sites. Probably a 23H2 issue because 23H2 broke everything.

1 Like

Thanks for the report! We’ll investigate and follow up with updates.

1 Like

Note that even if you could detect both shift keys, a third key might not work anymore due to a hardware limitation called ghosting : Keyboard matrix circuit - Wikipedia Key rollover - Wikipedia

1 Like

Did you encounter this problem in Studio?
Have you tried the client?

I have only tested this in studio, did it work ingame for you?

Yes, the same place detected both shift keys correctly in client, but not in Studio.