How can I detect button inputs from different Gamepads (Gamepad1-button1, Gamepad2-button1, etc.)

Is there a way to basically set up 2 of the exact same input systems, but have one be for the “first” gamepad plugged in, and others be for the “second” and “third”, etc. Kind of like how Joy2Key does this like “Joystick1, Joystick2”?

Hi! If you’re using the new input system, you should just be able to check the device ID of whatever button is being pressed with the callback context via CallbackContext.control.device.deviceId .

That might look something like this:

public InputAction fireAction;

void Awake()
{
    fireAction.performed += Fire;
}

void Fire(CallbackContext ctx)
{
    Debug.Log(ctx.control.device.deviceId)
}

Since all IDs are only used once per unity session, you can then simply map the Ids to each of your players.

Mind you, you’ll need to set up all the standard other new input system things for this to work. See the docs if you’re not familiar: Quick start guide | Input System | 1.0.2

Hope this helps!