New Improvements to Streaming Enabled

This just works for non-physical instances? That’s really powerful if so. :o


Great update.

Have you considered adding a new streaming mode similar to PersistentPerPlayer, except the model is not streamed at all to non-specified players. This would allow developers to control when entire zones are streamed in and out for specific players.

It seems like the PersistantPerPlayer fallback is Atomic for players that haven’t been added using Model:AddPersistentPlayer(Player).


Great update. However, it’s not as advanced as it could be, such as setting overrides to the distance it should stream in or out, manually replicating instances, disabling replication on certain instances, etc.


THIS. 110%.

I thought that’s what PersistentPerPlayer was going to be until I read further into it. A big let down for sure.


is Model.StreamingMode Scriptable? can it be changed during run time?

couldn’t find any documentation of that information anywhere

never mind, good job


we should have a method Model:GetPersistentPlayer(): Array<Player>


an event Model.PersistentLoaded(): Player


This is one of the more better updates out of the ones that have been getting released for a few weeks now.

This should greatly help performance, on games that have far too many models.

W Roblox Updates.

1 Like

I am making a very large world with islands, this is going to be super helpful. Thank you for continuing to update streaming enabled for bigger and better experiences!!!

1 Like

FINALLY! Streaming is actually usable now. Very happy to hear this!!!

1 Like

It’s precisely because making a Model Persistent is like disabling Streaming for that Model.

Long term we want to make further and further optimizations based around Streaming Enabled, and the more content Developers rely on making “Persistent” the less developers will benefit from those optimizations.

Imagine this scenario:

  • You are writing a local script, you need to use an object that may or may not be streamed in.
  • The correct thing to do right now would be write the script using WaitForChild or other non-persistent design patterns.
  • The wrong thing to do would be just to make that thing persistent because you don’t want to do the above.

Technically, bullet point 3 “works” for what you are trying to do, but can over time cause problems and make your game less efficient. That is why this message is so strongly worded. I know it’s a super naive scenario and not as nuanced as what will actually happen as Developers make streaming enabled games, but it illustrates the point.


This is one of the greatest updates this year, by far one of the most useful updates in recent times.

Thank you very much to everyone of the amazing engineers who worked on this.


This clears up the wording a lot. Thank you for the clarification!

Original post: I know full well about the fact that it sidesteps streaming optimizations, and I know how to write code that works under a non-persistent environment. This felt a bit harshly worded given that I had asked whether it incurred additional performance cost on top of never streaming out, implying I knew about the base cost of having it persistent.

finally oh my god, been waiting for so much time for this update…

chill man they announced it 4 hours ago

its been hell bruh
we had to either use childadded event or use streamable library

Can we use these new model streaming features, specifically atomic and per player, without using the rest of streamingEnableds features?

A replicatedAtomic for models and replicatedPerPlayer would both be very useful features for code stability, even for games that have no plans to switch to streamingEnabled :slight_smile:


This is so great, great update!

This felt a bit harshly worded given that I had asked whether it incurred additional performance cost on top of never streaming out, implying I knew about the base cost of having it persistent.

Apologies if it came off that way, was not my intent.

I was simply explaining the general rationale behind why it was so strongly worded. We really want to discourage Developers from over-using Persistent.


I see it more as future-proofing bad design decisions. Enabling streaming, making everything persistent, and then coming to the forums to complain that streaming doesn’t work. You know someone is going to do that in the near future. :rofl:

this will be HUGE! can’t wait to have this implemented in the games I work on! Keep up the great work with these W feature additions

No worries. After re-reading your post, I believe I misunderstood your intent at first, and find myself agreeing with the decisions made with wording on the docs now.

1 Like