[C++] Client Controller Spawn, but Take Long Time to Call BeginPlay

Hello, I want to develop a simple multiplayer network for my project.

For now, it’s only like:

  1. The server hosts a local listening server (localhost)
  2. The clients join the server

The scene contains only 1 cube and a PlayerSpawn. I tested it out, and for the first 2 clients, it worked nicely, but after the 3rd client onward, when a new client joined, the controller spawned, but it took like 2 to 3 minutes to call the Controller BeginPlay.

Is this the expected behavior?

Edit: Upon further inspection, I noticed that it might have happened because I (have to) replicate the position and rotation of multiple components (around 50) for each tick.

Edit: More questions, I have another project with the same behavior. In that project, I have multiple VR clients. When the 4th VR client joined, the client did not call the BeginPlay. Also, when I printed out the display name of the client’s controller, it displayed blank. Does anyone have any idea about this situation? This is weird for me since there is not much replication occurring in this project (for each VR pawn, there are 3 components that I have to replicate the position and rotation every tick).

Why are you replicating components locations. Spawn them on the server proxy and attach them. They’ll stick with the pawn.