I recently came across a problem where O and I are not being recognised in userinputservice. I am not sure if its a scripting problem or a studio bug since other keys are being detected using the same code.
UserInputService.InputBegan:Connect(function(input)
print(input.KeyCode) -- priting every input type but O and I
end)
Edit:
I have tried using GameProcessed and it still does not work.
Sorry if my english is not the best, its not my native language.
Keys O and I are used for zooming out (I is to zoom in, O is to zoom out). The script may not be working due to O and I being already set to those 2 functions
Because I and O are bound to Studio shortcuts, you need to hold Shift to bypass them. You can also uncheck “Respect Studio shortcuts when game has focus” to disable Studio shortcuts while playing.
This will bypass the shortcut, but won’t unbind the action, if im understanding you correctly. The OP wishes to bind new actions to those keys, and the output shows that the binding is sinking. Although I did read if you use InputEnded instead of InputBegan, it recognizes the bind. Must be some bug.
Again, Studio-exclusive. OP should be able to uncheck “Respect Studio shortcuts when game has focus” and handle InputBegan for keys usually bound to shortcuts. This is not a bug, just default Studio behavior which can be disabled by unchecking the setting mentioned above. The default in-game bindings for I and O are handled by the camera module and can be replaced by other scripts with higher priority using ContextActionService:BindActionAtPriority.
I have tried both ContextActionService and the respect studio shortcut option but none of them solved the problem. Fortunately i discovered that the game actually works, just not in studio. But thanks for the help anyway