Order in which components load, communication between components.

If the Actor is replicated, it will be the same yes, Replication works such that everything present in the level is loaded by all clients including ServerClient if doing a listen server

The Server then has the one true version after that and any changes made that replicate are then sent over to the client

Ex All clients spawn Characters with 100 health… Game starts, Client A takes some damage(20), All other clients get this info… so when accessing their copy it’ll have the same 80 Health

Network Compendium

There’s certain things that are better to be done in the PlayerState or Controller, etc rather than the Character and vice versa ( Essentially Loading in the correct order ) ( This is another part of why Multiplayer is “Hard” )

When you run in Editor it all sorta runs on one thread, there is a setting in there somewhere for “launch server in background” or something like that that you could try and use to make your results between PIE and Standalone be the same

If Standalone Vs PIE is not what you meant and Standalone Vs Listen Server is..
Then all your observing is the Server now has it’s own set of Objects

Ex

Server:
-Game Instance
-GameMode
-Controllers

Client:
-Game Instance
-Controller

Notice how the server has more stuff to load up, so while when you played Standalone it went

-Game Instance
-Game Mode
-Controller

as your essentially playing as Server, or in other words you have it all under one thread
vs Listen would be “Two Threads”

Standalone and Packaged should be the same with the exception of performance

To say it in the blender guys voice, This is not Optimal

Not sure exactly what you may be trying to do but there’s usually a better way Than Hard Referencing everything and Linking/Chaining it all together

Ex You load the Character but the Character has a reference to GameMode Which has A reference to Some Hud Which has a reference to some Object, Well now every time you load Character you load all that other stuff as well ( or will do soonly if it’s on Begin play )

This can get out of control rather fast.. one of your goals as a Dev is to try and minimize these References in order to use less Memory

Rather Than “Wait until it’s loaded” approaches, It’s best Where possible to use an event dispatcher or Interface

Tho if that’s not possible you don’t want your

If your gonna do this, i suggest using the later so if it Always fails it’ll at least give up eventually and not just be a loop that forever runs in the background


Sources and Tons more detail:

From Epic themselves
-Myth Busting ( Common Misconceptions )
-Blueprint Communication ( Why And Where BPs should pass data )
-BPs In-Depth

UnOffical but solid:
-Network Compendium ( Everything Multiplayer )

The Server Will exist and likely finish all of it’s stuff before a client ever joins

1 Like