Multiplayer Clients can't see server's armor - due to lag in spawn of client versus server (playing as listen server)

I have a work around for this… but curious if there is another way. My armor system is set by an armor class, the class than spawns an actor, the actor has a skeletal mesh, which is what displays on the player for armor. The issue right now is, when playing on a listen server, the server player spawns first, and the clients spawn a couple seconds after. While since this event runs on begin play… it runs for the listen server player before the clients are in the game… so when the clients spawn in - the listen server player is naked. On the listen server, I can see my armor and see the clients.

I don’t think it is a replication issue, because when I put a 3 second delay off begin play, and then run the event for armor - it works. So seems to me it’s simly running to fast before clients spawn in.

My question is… is the best way to do this to do a delay like i’m doing? Or is there a better way?

If relevant, the reason I do it this way is because I want armor to be easily changed, and the armor actor has stats, so can’t just use a skeletal mesh… I need a changable actor (with all of it’s inherited stats) to give the mesh the skelatal mesh… if that makes sense.
Begin Play Load data from Save Game


Load Game - runs armor server event (this runs immediently to multicast event)

image

Update Armor Event (ran through a Server Event to a Multicast Event)


sorry, there is a lot of script in this question, appreciate any help!!

I did move the armor event to the construction script… and that seems to solve the problem. Since the armor is a class reference and attaches a Skeletal Mesh. But, for my weapon, it’s a class that spawns an actor, so that can’t run on construction script. So I have to had that by event + delay to get everyone
to see it