Overview:
Folks, I’m sure many of us have experienced difficulties setting up local multiplayer with Unreal 5. It’s been broken, then fixed, then broken again, and now in 5.6 it appears to be broken again, but this time it is a different error popping up, tied directly to Enhanced Input Local Player Subsystem/Add Mapping Context.
Issue:
When adding a second local player in UE5.6, control of the second player is not possible and the following error is produced for each character controller:
Blueprint Runtime Error: “Accessed None trying to read (real) property CallFunc_GetLocalPlayerSubSystemFromPlayerController_ReturnValue in not an UClass”. Node: Add Mapping Context Graph: EventGraph Function: Execute Ubergraph BP Third Person Player Controller Blueprint: BP_ThirdPersonPlayerController
Many people, myself included, have typically assumed this was an error with ‘Skip Assigning Gamepad to Player 1’ but the error is actually unrelated.
Fix: (Tested in Third Person Template)
The issue is the input for the Enhanced Input Local Player Subsystem Node. The existing node(s) which assign the Mapping Context in the Player Controller works fine when there is only a single player, but when a second player is added, the Enhanced Input Local Player Subsystem needs a player controller input to adequately resolve without the error listed above.
My solution is to disconnect the Event Begin Play node in the BP_ThirdPersonController and thus disconnect the entire Initialize player input sequence, and instead to move this outside of the Controller.
On the BP_ThirdPersonCharacter, cast to the controller and assign the IMC, as shown in image 1.
This will function properly for Player 1, but fail for player 2
In the Level Blueprint, or Game Manager object if you prefer, create Local Player 2 via Event Begin Play or Controller button, and at the same time cast to the created player controller and also assign the desired IMC.
Make sure you are skipping assigning your gamepad to Player 1 if that is your intention, and if so, both players should now be controlled correctly and no errors will pop in your logs.
Video:
Images:

