Locally parenting objects to the workspace from replicated locations allows them be streamed out

Reproduction Steps


With opportunistic streaming enabled:

This test place will clone and parent one model, and just parent another from ReplicatedStorage into the workspace. As you follow the steps below keep an eye one these two models as one will stream out and never stream back in (the ParentModel), and the other will never stream out (the CloneModel).

The code that runs the clone and parent operations is located in StarterPlayer.StarterPlayerScripts

  1. Open the attached reproduction file
  2. Test with a player
  3. Walk away from the spawn location until it streams out
  4. Walk back to the spawn location until it streams in

streaming bug.rbxl (37.4 KB)


Expected Behavior

I expect the ParentModel to have the same behavior as the CloneModel. My assumption was any object locally put into the workspace (from any source) would not stream out unless it was parented to a streamed in object.

Actual Behavior

The ParentModel streams out and never streams back in.

Workaround

I just have to :Clone() the model first instead of just parenting the original one.

Issue Area: Engine
Issue Type: Other
Impact: Low
Frequency: Constantly
Date First Experienced: 2022-06-16 00:06:00 (-04:00)
Date Last Experienced: 2022-06-16 00:06:00 (-04:00)

This is expected behavior, since if you reparent a replicated part into the workspace it is considered a remote part and subject to stream out. If you clone the part it is considered local, and therefore not subject to stream out.

We will make sure this is documented, since it isn’t stated in the current documentation. It was mentioned previously on devforum:

3 Likes

This topic was automatically closed after 5 days. New replies are no longer allowed.