Unable to get Enum.UserInputType.Gamepad2,3,4,... on Console

I’ve ran into a problem when working with multiple gamepads on Xbox One.
It just outright refuses to work. No matter if an account is signed in to each controller, or not.

Evidence:

local Hint = Instance.new("Hint",game.Workspace)

local UIS = game:GetService("UserInputService")
UIS.InputBegan:Connect(function(Input)
    Hint.Text = Input.UserInputType.Name .. ", " .. #UIS:GetConnectedGamepads() .. " gamepads connected"
end)
  1. run the game on PC, with 2 Xbox controllers plugged in, and fire the event
    -the Hint will show Gamepad1, Gamepad2 respectively, plus the number of detected Gamepads
  2. run the game on Mobile with two Xbox controllers plugged in, and fire the event
    -the Hint will work, just as before
  3. run the game on Console with 2 Xbox controllers plugged in, and fire the event
    -the Hint will only ever show Gamepad1, and one gamepad.

This feature has been broken for years, yet the wiki has no mention of this problem, and give no attention to the glaring issue. I had it working on mobile! but not Xbox (the platform who will benefit the most from the feature)

I couldn’t find any other posts about this issue. If you think I’m just doing it wrong, feel free to drop a suggestion.

1 Like