Replication behavior in PIE vs Standalone

Hello, Thanks for your reply but I don’t think it has to do with Widgets as I’ve run some more tests:

Instead of creating/adding the widget I’ve just printed self(PlayerController)->PlayerName in the OnRep Function and I get the following results in PIE.

When the server hosts the game and loads the lobby map:

Server: playername-DB123…

Which is fine because it ran when the server should have added itself to it’s player list.

When the Client joins:

Client 0: Playername-XB721…
Client 0:
Server: playername-DB123…

Which ain’t fine cause it runs once when the server in supposed to add the new client to it’s player list then the client runs twice for some unknown reason and for the 1’st print the PC doesn’t even have a name assigned.
Moreover I added a new replicated variable to the PC, this time a simple bool that has the same print function (in OnRep function) and with the bool it seems to run fine as in:

When the server hosts the game and loads the lobby map:

Server: playername-DB123…

When the Client joins:

Client 0: Playername-XB721…
Server: playername-DB123…

which leads me to believe the functionality is somehow related to the fact that my RepNotify variable is of tipe Array of Struct.

And again, I’m not trying to find a workaround or add a mindless delay (I’ve sworn not to use simple delays when something doesn’t work, not here, not in C++ not in Java not anywhere :rofl: ) but I’m trying to understand what could cause this behavior/what I did wrong so I can go on to more complicated replication later on in the development.