In my game I have a widget above the player’s head to show their name and if there are “Readied Up”. The ready-up system works fine and everything works the way I want and is shown the way I want ON THE SERVER. All the clients have blank widgets above their head.
My current setup has a custom event that runs on the owning client to see what has authority and if it does update the ready-up status then multicast an update names event to all clients. And if they don’t have authority run an update player names on the server, then multicast. But I just cant get it to work. Usually I can wrap my head replication but this one has me stumped.
First you need to ensure that the name from the Client gets to the Server which would appear you accomplished so far so ill skip that.
Secondly you need a Replicated Actor spawned by the Server with a OnRep variable callback on each client to update the widget when the variable is eventually replicated.
This is where the problem begins since you are instead using a Multicast RPC to do the replication which is easily dropped/missed by clients still busy connecting or for whatever reason is not present while the RPC is called.
“Has Authority” or “Switch has Authority” should indeed be used before setting a replicated variable to avoid overriding the local variable by accident. You should however not set the name locally if “Has Authority” is false as it serves no purpose.