Big Changes to StreamingEnabled

StreamingEnabled is great, but there is this problem that once you load an area with a lot of parts and your pc has alot of memory left meaning that area won’t unload will result in lag each time the player’s camera faces that area.

Could we have a property to unload everything outside of the target radius (or even have a property to unload stuff outside a certain radius) to prevent this kind of lag?

11 Likes

I’m glad we’re getting this update but there are still some things that streaming lacks that prevents some of us from being able to use it.

Agreed. Before I can use this I need to be able to define what must load in chunks or in groups together.

This is also something I’ve thought about and I wanted to voice my support because of how important this is.

In the past I have worked with places that have some models, ie trees, foliage, and small objects that can be streamed in, however larger things such as a building in the distance or vehicles need to be constantly loaded on the client.

What if I want set streaming distance to a small area and then have it only load in / unload foliage due to its detail level? It’s these types of issues that keep me from using streaming enabled.

Like I said, glad we’re getting more features, though unfortunately until streaming has at least a basic ability to define what can and what cannot be streamed, it would be impractical to use it for most of my projects.

9 Likes

As what @TheAmazeman said, and some others, streaming is too limited, I 100% agree with having a blacklist parts, for example in my lab I’m working on, the reactor core scripts are required for the other parts of the game to work, and making the game unplayable. However I fully support streamingenabled and its a great thing to have.

4 Likes

Streaming enabled has potential to be a great tool, but even with these updates I don’t think it’s quite there yet. Every time I’ve tried to enable streaming enabled on a place, some issue came up. There is also another issue that keeps me away from using Streaming enabled. For me, the two I can think of off the top of my head are:

  • Hats used to not load in on certain clients from other players for some reason. It wouldn’t even be all the hats, but just some. Why? Was this ever fixed? Did it only effect hats?
  • Can we have a way to force clients to load certain objects with all their descendants? Some objects in a game are too important to not be loaded in, and sometimes forcing a few objects to load in could be a lot easier than having to work around with behavior that considers whether or not these specific objects are loaded in or not.

We need absolute control over streaming enabled, and we need updates on when issues with it are fixed if we’re going to start using it seriously. I want to use streaming enabled, but right now I can’t, and this thread has proven I’m not alone on that.

12 Likes

You can move the ReplicationFocus before you teleport.

5 Likes

Thanks, that info might make it irrelevant that people (or possibly at least in my use-case with some hacky solutions) want a blacklist of parts to never be streamed out, going to try something like that out! Didn’t know about this until now

https://developer.roblox.com/en-us/api-reference/property/Player/ReplicationFocus

7 Likes

The need for optional atomic model streaming, as well as ability to prefetch parts of the world / instances and some way to explicitly control the streamed status for instances is known.

We are starting from a very small API surface (as you can see, the changes this post mentions are mostly about behavior / internal improvements / high level control); once all of this “just works” we will be ready to provide extra APIs for enhanced control, but the focus so far is on improving the default behavior assuming no extra scripting.

44 Likes

I am really happy to see that StreamingEnabled is getting some new features!

Unfortunately, I don’t see myself using it yet as there isn’t a way to reliably Stream In/Out specific models/parts. This is a feature that is kind of necessary for many developers to turn to StreamingEnabled.


Another thing - the paused UI.

Look - I mean it looks pretty good and has a great design and all, but I feel it’s a bit jarring and takes the player out of the game. It doesn’t feel like the game is paused, it feels like I just got disconnected. It’s backed up by the icon - the symbol known for Wifi with an exclamation point. This makes me feel like maybe it’s my internet or something.

These are two very good points - this UI is the default so many games will use it, and also a symbol that represents loading a little more would feel better.

These are all things that have been clearly voiced by the community, but I do hope to see some more improvements on things like StreamingEnabled. I can’t wait for what the future holds!

7 Likes

Is it possible to use Workspace.StreamingPauseMode to make a pause button for your game?

3 Likes

I like the pause feature! It would be great if we got more fine-grain control over the physics engine and replication.

3 Likes

Can streaming be based on the camera and not the player character position? Using streaming in conjunction with spectate buttons almost always results in script errors and/or the majority of the map not being visible. Streaming based around the player’s character also makes cutscenes and games with custom characters basically never render anything. It essentially makes this feature useless for anything that moves the camera away from the character.

Along with forcing replication of certain parts, this is my biggest gripe with streaming. Hopefully it can be addressed.

13 Likes

I haven’t read the full topic, but I can tell this is going to be a very GREAT Update! I also hope to see the features requested in this topic to be added, as well.

Instead of streaming out parts if they are taking up to much memory I hope streaming enabled will be made to stream parts out based on render distance as well, and make it so developers can configure when, how, and what parts are streamed out or into the client as well.

3 Likes

Imagine playing a FPS and this happening. Reminds me of when my batteries used to die playing call of duty.

3 Likes

I think that having a bool value (CanBeStreamed) for each part would make all the issues with streaming go away, especially with this update. Additionally, I think that having this value for models as well would be great too! For me, being able to keep spawn locations and specific parts/models from not being streamed would be a lifesaver and would allow me to actually use streaming.

5 Likes

Same problem pretty much, I have clouds which are high up, and they keep getting streamed out, also when flying aircraft there are chances that once the aircraft is streamed back in, its welds change bc of how fast it flies.

3 Likes

Like many of the other developers here, i am also concerned with the lack of instance specific control. Is this something that could be implemented in the future? If not, then i’m sure everyone here would like to know why. Good job with the improvements though!

3 Likes

StreamingEnabled + Model LOD = big worlds and big projects

3 Likes

I also find StreamingEnabled useless as this moment in time. I’d find it better to make players wait and get everything loaded in for a smoother gameplay and user experience. I’ve noticed StreamingEnabled games whilst playing and it’s a very frustrating experience having to wait for areas to load in around me and very often resulted in myself not playing.

Only 8% of the UK has access to FTTP based internet meaning it’s generally a bad time with streaming here for a variety of reasons and not just what I just mentioned. If you’re interested in more information about this feel free to reach out privately.

4 Likes

A absolutely welcome any updates to how streaming works right now. Unfortunately I am concerned about a few things.

-The pause screen
I heard you can disable it but I think developers should have more control when it comes to the UI

-Scripts will not work properly if items are not loaded in that they need
This is kind of worrying especially since streaming will be turned on by default in the near future. Perhaps developers should have the ability to force stream certain parts?

Contrary to my concerns I am excited to see where this will go as streaming has HUGE potential.

Edit: Just a thought. We can disable the screen and just throw a GUI up when the Paused event fires.

1 Like

You can set the replication focus to be the camera and this will result in streaming occurring around that location.

3 Likes