Xbox One controller does not work properly on mobile

I posted about much of the same problem in the UWP app 10 months ago (See #2):

I posted the UWP app bugs here in Mobile Bugs as Mobile and UWP seem more similar to each other
than the normal Desktop app, even though the UWP app runs on the PC desktop.

  • What works w/ Gamepad controls:
    (L) Thumbstick1: directionals only
    (R) Thumbstick2: directionals only
    (L) Trigger (ButtonL2): perfect
    (R) Trigger (ButtonR2): perfect
    Back (ButtonSelect): perfect

  • What is broken:
    (L) Bumper (ButtonL1): gamepad bug*
    (R) Bumper (ButtonR1): gamepad bug*
    (L) Thumbstick1 (ButtonL3): gamepad bug*
    (R) Thumbstick2 (ButtonR3): gamepad bug*
    Start (ButtonStart): gamepad bug*
    A (ButtonA): gamepad bug*
    B (ButtonB): gamepad bug*
    X (ButtonX): gamepad bug*
    Y (ButtonY): gamepad bug*
    DPadLeft: Instead of UserInputState.Begin, sends .Change (bound Action) coupled w/ .End
    DPadDown: Instead of UserInputState.Begin, sends .Change (bound Action) coupled w/ .End
    DPadRight: Instead of Enum.KeyCode.DPadRight, sends Enum.KeyCode.DPadLeft (bound Action)
    DPadUp: Instead of Enum.KeyCode.DPadUp, sends Enum.KeyCode.DPadDown (bound Action)

  • *gamepad bug:
    UserInputService.InputEnded event fired w/ UserInputType.Keyboard AND KeyCode.Unknown
    Notice that it is UserInputType.Keyboard and not what it should be: UserInputType.Gamepad1
    Notice that the KeyCode is KeyCode.Unknown, so you can’t distinguish the buttons.

Additional info:

  • These input bugs are seen on Android devices.
  • These input bugs are seen on USB-connected controllers as well (not just Bluetooth.)
  • UserInputService:GetGamepadState() does not work for the broken inputs.
  • UserInputService:IsGamepadButtonDown() does not work for the broken inputs.
  • Happens 100% of the time.
1 Like