Multiplayer premature blueprint execution problems

I don’t know if this is a rant, a cry for help or a bug issue report, but I’m starting to become really frustrated with how multiplayer things are handled in UE4 and wish someone could help me not lose my mind completely. I’ll try to explain…

I’m trying to achieve a very basic and straightforward multiplayer match. Think deathmatch.
What I want is that when all players have connected, there’s a countdown and then the match begins.

Here are just some of the problems I’m facing:

  1. There’s no way to know when all players have connected and are absolutely, completely ready. Like, even when doing something on OnPostLogin, there will be issues. The only way I’ve found to solve this is to delay by a second or two before doing ANYTHING. Seriously, the delay node solves 90% of all the strange multiplayer issues that are so hard to track down. But it feels incredibly hacky.
  2. Weirdness in various nodes, like the GetIsServer node returns true in PlayerState for clients.
  3. Issues getting events that originate in GameMode to replicate to clients. Like whenever a player joins, OnPostLogin I want everyone to update a playerlist, but I don’t understand how to get to it. Feels like I have to take such detours through the GameState or such to do it, and even then it usually just doesn’t work, unless I add a bunch of delays.
  4. Difficulty understanding which playercontroller goes to who when dealing when listen and dedicated servers.

I don’t know, I can’t even describe some of the issues I’m facing, but it just feels like the system is so convoluted and unrobust. I just can’t fathom how some people seem to get stable multiplayer games working in UE. Sorry for the rant. Just needed to get my frustration with UE4s MP stuff out there and heard.

I have succeeded in solving most of these problems after months of trial and error, but in the end I kept thinking, “I bet there’s some built-in way to do this I just didn’t know about.” Still need help with this issue?