Yeah it’s a bit confusing. As far as I’m aware (someone please correct me if I’m wrong), it’s something like this:
- Player enters game
- ReplicatedFirst is replicated to player & any LocalScripts there are executed
- Workspace/ReplicatedStorage is replicated to player (
game:IsLoaded()method andgame.Loadedevent)-- From ReplicatedFirst LocalScript to check when game is loaded if not game:IsLoaded() then game.Loaded:Wait() end - Character is spawned
- StarterGui contents are replicated to player’s PlayerGui
So to answer your question: No, I don’t believe the character is loaded before client is done. At least that’s what it looks like from the client’s perspective.
One caveat: If you’re using streaming, then it might act a bit differently, since the game purposefully does not load completely (in regards to objects in the workspace).