StreamingEnabled behavior with model instances

How does StreamingEnabled handle streaming Model instances (and descendants) in the following cases?

Case 1

- Workspace
  - Model
    - Part (Not streamed in)
    - Part (Not streamed in)

When is the Model instance streamed in? Are Models streamed in immediately on game join, or only when one of the child parts stream in?
(According to CollectionService and StreamingEnabled - How do they work together? Models are never streamed out, but it is undocumented when they stream in.)

Case 2

- Workspace
  - Model
    - NumberValue (or some other non-basepart instance)
    - Part (Not streamed in)
    - Part (Not streamed in)

Is the NumberValue instance here always loaded, does it stream in when one of the descendant parts load? When does the NumberValue stream in exactly? Does it ever stream out?

Case 3

- Workspace
  - Model
    - NumberValue (or some other non-basepart instance)

There are no instances here that are normally streamed (i.e., baseparts). When is the NumberValue streamed in in this case? Is it ever streamed out?

2 Likes

By not streamed out, she meant that they weren’t managed by streaming at all. The model and number value are always loaded. Streaming doesn’t have a concept of atomic models, so anything that’s not a BasePart will always be loaded (accounting for normal replication – you may still need to use WaitForChild). Note that this can cause issues where you try to access model.PrimaryPart but it hasn’t streamed in yet.

3 Likes