Multiplayer device number confusion

Godot Version

4.3

Question

I am working on a local multiplayer game with gamepad support. I’m using Input.joy_connection_changed to get the device number and connection status for gamepad controllers. However, as soon as more than one controller connects I am noticing the device number in Godot is not matching the controller’s displayed player number light.

Trial 1 - Single controller
Player 1 light = Device 0

Trial 2 - Two controllers in player order
Player 1 light = Device 1
Player 2 light = Device 0

Trial 3 - Disconnect Player 1, have P2 connect, then reconnect P1
Player 2 light = Device 0
Player 1 light = Device 1

Is this normal? I would have assumed there’d be an easy way to get a controller’s own player number but I’m having a hard time finding a solution.

1 Like