InputBinding / InputAction broken for gamepad Thumbstick1 and ButtonA

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.

3 Likes

It turns out I missed the game-breaking announcement in post #178 here:

The only workaround for now is to have the place filtered out of the change until the new PlayerScripts are completed.

Staff member runitbackrolfo kindly made that change for us, so this bug is closed.

4 Likes

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…