I have managed to get splitscreen working through multiplayer, the only drawback I have is the Create Session node only limits the amount of connections per server. Meaning say you have a limit of 8 people and 7 clients are connected already, you can pass that limit if you have 2 local players. I have a create players function which happens once all local players have succesfully joined the session.
There’s alot of stuff like casting to the player character and playerstate which is stuff for me that I need for future stuff so ignore that. You can get the playerstate directly from the create playernode if you need it.
This solution does give each local player a proper playerstate but the same name for everyone. For that I did what most games do and created a new string variable and added a (#) behind the name to differentiate the players and use that variable for my widgets.
Controller assignment is a pain as always but that’s also for games without networking. What also sucks is the field of view not scaling with the viewport. But that’s an issue not unique to splitscreen. The same applies to widgets. If there’s splitscreen I have to scale down the hud for it to fit properly. What I have noticed too is pretty sure scenetexture nodes in materials always output player 1’s viewport.
For now I’m doing the fov and HUD resizing manually.
I do not know if this method causes any issues so use it with caution. Ideally there would be a plugin or a feature that exposes splitscreen settings to blueprints properly.
Also not how the sniper rifle’s screen is for both top and bottom left the same because it automatically uses player 1’s.
But for the time being it works. As you can see there’s 3 local players and 1 player(Cobby) connected to me. All of them can kill and get points etc.