Periferal input on Local multiplayer blueprint limitations

I have a local multiplayer game than can be player with up to 4 players, the game is intended to be played with gamepads, but keyboard+mouse should be an option too.

Right now there is no “easy” way of doing this. As the “skip assigning gamepad to player 1” can’t be changed at runtime in blueprints. And you can’t create a 5th player controller in blueprints either.

So my problem here is that UE4 only allows for either keyboard+mouse and 3 gamepads, or 4 gamepads with no keyboard+mouse, as they would both be controlled by player 0, which is pointless.

Changing “skip assing to player 1” would allow me to toggle between one configuration and the other, and being able to create a 5th player controller would simply allow me to assign arbitrary id as players press a key to enter the game.

Is this a BP only problem? can C++ work around these limitation?

Please help =)

I have the exact same issue and the only work around in Blueprint I have found is to uncheck the “skip assigning gamepad to player 1” and then use keyboard button events on your pawn blueprint to manually map keyboard presses to actions on one pawn and let the controller map to another, with a switch statement that is tracking a variable as to which player it supposed to be.

It’s really messy, but it can be done.

I would much much rather do it the way that you are describing in your post, though.