In this clip, I gave all of these things a “Preload” tag, stuck them in ReplicatedStorage, used CollectionService to throw them into PreloadAsync, and parented them all to workspace after. Most of the stuff preloaded just fine, but the characters, the trail and the beam are very obviously late to the party.
PreloadAsync is a YieldFunction, which means the script won’t continue until it’s finished. If the script got far enough to parent everything to workspace, that means it finished preloading what it was given.