When using the Input Action System (IAS; InputContext / InputAction / InputBinding) with a gamepad (either connected to PC or on a game console), Thumbstick1 and ButtonA do not provide any response regardless of Priority and Sink settings on the InputContext.
I’ve tested on a completely empty baseplate with only an InputContext and 4 InputActions:
Direction2D with InputBinding set to KeyCode Thumbstick1: No response
Direction2D with InputBinding set to KeyCode Thumbstick2: Responds as expected
Bool with InputBinding set to KeyCode ButtonA: No response
Bool with InputBinding set to KeyCode ButtonB: Responds as expected
Here’s the really simple repro place: IAS_Gamepad_Repro.rbxl (60.3 KB)
It prints to the console for the changes to Thumbstick2 and ButtonB, but Thumbstick1 and ButtonA do not trigger the state change.
Expected behavior
I expect all InputBindings to work as expected, especially as the player control isn’t using IAS yet, so there shouldn’t be any other InputContexts sinking the input.
I know it says bug fixed, but I think this workaround is worth mentioning:
My solution was to create a ContextActionService port:
local function GamepadSelection(pos)
--some stuff
end
--Normally this should be used:
SomeInputAction.StateChanged:Connect(GamepadSelection)
--But instead:
CAS:BindActionAtPriority("WheelChatSelectController",function(actionName, inputState, inputObject:InputObject)
GamepadSelection(inputObject.Position)
end, false, 5200, Enum.KeyCode.Thumbstick1)
Because ContextActionService works fine with priorities. And also, in my opinion this whole InputActionSystem is a downgrade…