How to implement COD:WWII style join-in-progress lobby?

If you want clients to be aware of state from the server that happened via RPCs at some point in the past before they joined in progress. Then you need to inform those clients in some way. Either by sending RPCs to those clients at some defined point after they join, or by storing that state in replicated variables.

Personally the way I’d do this is to store each player’s customisation state in their PlayerState as replicated variables. Preferably in some kind of format that’s really cheap to replicate (like, for example a set of string hashes that other machines can then use to lookup and reconstruct the set of assets on their side).

I’d stick a RepNotify on the replicated variables so that whenever we receive a new set of customisation data from the server, we can load assets and rebuild customisation for the relevant character locally.

The reason I’d store it in the PlayerState specifically, is that since you’re likely to want to load and possibly build a more optimised representation of that descriptor, you probably don’t want to have to redo that work every time your character respawns.