Level Streaming load order

This was an interesting case for me to discover.

There seems to be some degree of inconsistency when loading a level Async via streaming with the ORDER in which objects are created (and more importantly, their construction scripts execute).

Sometimes, my level loads fine. Other times, support beams and crossbars extend out to infinity because the actors which generate them (using a trace in the construction script to find the nearest wall/floor) load BEFORE the level geometry itself. Sometimes an actor which runs a “get all actors of class” node in its construction script (to avoid the runtime cost of executing that command) will return an incomplete reference list because it was loaded before all actors of that class had been streamed in.

Is there a way, short of duplicating every actor’s construction script at its BeginPlay node, to force certain actors to wait until the level is fully loaded to execute their own construction scripts…? If not, there really should be.

I know that there are tick dependencies, to make sure some actors tick before others. I am not sure if this carries over to construction scripts though. What you ought to do in any case is check in your BeginPlay whether or not a trace was successful and re-trace if not.