Hello Developers!
Following up on our March post on the current state of Streaming, we wanted to give a big thank you for all the great feedback and to provide an update per those comments, critiques, and bugs that you’ve brought to our attention.
Let’s dive in.
In Development
Here are a few improvements that we hope to deliver this summer:
-
Model:GetPersistentPlayers
- You will be able to use this new call to find all players that a particular model is persistent for.
- You will be able to use this new call to find all players that a particular model is persistent for.
-
Improved Model Streaming Behavior
- We are working on improvements to how models are streamed to help reduce the need for WaitForChild and speed up joins without needing to explicitly make models atomic.
- We are working on improvements to how models are streamed to help reduce the need for WaitForChild and speed up joins without needing to explicitly make models atomic.
-
Performance and Memory Improvements
- We are hoping to see faster joins with the Improved Model Streaming from above and other improvements we’re making.
- Better memory usage for massive worlds (some of these have already shipped).
- We are hoping to see faster joins with the Improved Model Streaming from above and other improvements we’re making.
-
Bug Fixes
- Level of Detail (LOD) improvements to help with visuals. (In fact, we’ve already shipped a few terrain updates that you might’ve noticed!)
- We fixed an issue where mechanisms that used JointsService could be broken when streamed out and back in. While JointsService is still deprecated, it should work better with streaming enabled.
- We are working on a few physics issues when objects are streamed in and out.
- We are further updating our guides and Engine API to better address Streaming functionality throughout.
- Level of Detail (LOD) improvements to help with visuals. (In fact, we’ve already shipped a few terrain updates that you might’ve noticed!)
Researching
You have highlighted some important issues that we’re actively considering. However, we are still working on determining the most effective solutions for your current and future Streaming needs. In simpler terms, these areas are on our minds and under active review:
-
Excluded Mode
- The opposite of persistence, we’re exploring the idea of a mode that prevents replication, rather than requiring it.
- The opposite of persistence, we’re exploring the idea of a mode that prevents replication, rather than requiring it.
-
Advanced Level of Detail Improvements
- We are thinking hard about more seamless Level of Detail transitions so distant objects stream in more smoothly.
- We are thinking hard about more seamless Level of Detail transitions so distant objects stream in more smoothly.
-
Use Model Streaming Controls Outside of Models
- We are thinking about questions such as “What would it mean to bring streaming controls to other instance types, including folders?”
- We are thinking about questions such as “What would it mean to bring streaming controls to other instance types, including folders?”
-
More Testing and Debugging Features
- We’re considering a range of ideas, such as tools for emulating different network conditions and better tools in Studio to help you work with Streaming.
- We’re considering a range of ideas, such as tools for emulating different network conditions and better tools in Studio to help you work with Streaming.
-
Regional Streaming Controls
- We’re thinking about ways to designate an area and then stream it on demand.
- We’re thinking about ways to designate an area and then stream it on demand.
-
Per Model and/or Per Player Radius Controls
- We are discussing allowing custom stream radii for models and players. Server performance and cost are real concerns with solutions here. We are thinking about this further, but we also hope we mitigate this with improvements in other areas.
- We are discussing allowing custom stream radii for models and players. Server performance and cost are real concerns with solutions here. We are thinking about this further, but we also hope we mitigate this with improvements in other areas.
-
Per Instance Streaming Controls
- Some of you want more control over when an instance is replicated to the client. This is a tough one - we hope the need for this is reduced with other various improvements, but we are considering it.
Streaming is the Future
We believe that Streaming is a key part of Roblox’s future. This technology enables massive worlds, improves join times, and helps reduce crashes, especially on lower-end devices. We will continue to invest and improve this technology and respond to your feedback.
We will also start to turn streaming on in Studio templates with the hope that all new experiences in the future will be streaming enabled. In fact, you might check out for inspiration the new Modern City Template which has Streaming turned on - our early tests show join times for this experience to be ~1.4 seconds versus ~3 seconds with Streaming off!
Keep the Feedback Coming!
As always, we appreciate your input and feedback. Please continue sharing any feature requests, issues, complaints, or comments you may have down below!
Thank you!