New Streaming Integrity Mode

Ehh its fine, I skimmed over it to begin with, dont worry :sweat_smile:

7 Likes

I don’t use StreamingEnabled in my games, but thanks for making roblox better and explaining how to use it :happy1:

I will give it a 10/10

9 Likes

I’ve noticed the Gameplay Paused happen too much on mobile in one of my games, this fixed that issue, Thank you!

8 Likes

I don’t know the amount of times I’ve had to clone objects on the client just to have them always visible + at full fidelity.

3 Likes

I’m unable to use StreamingEnabled in any of my experiences as there is no method to force certain models/folders/parts to ignore streaming, but it’s great some improvements are made. Please support manually flagging models/folders/parts so that this feature can actually be used.

19 Likes

One step closer to making streaming a little less of a headache.

I’d love for a way to choose which (if any) client/s an instance is replicated to. (both streaming enabled and disabled)
For example, in every creatable instance there is a property named ReplicateTo. The server can set this property to an array of >= 0 players to define which [if any] players can possibly be replicated the instance or nil [default] to use standard replication behavior.
As of right now, I can only replicate x to player1 and only player1 via player1’s PlayerGui. Also, if I want to have instances descendants of workspace + have them physically simulated + keep them Server-Only, I have to use workspace.CurrentCamera which isn’t the worst thing in the world- but it’s another use case for such custom replication behavior.
Pretty please. ←

New Improvements to Streaming Enabled - #79 by lolmanurfunny

13 Likes

I have multiple islands in workspace on the server.
Clients will only keep one island at a time in workspace and put the rest in replicatedstorage.

Could you add an option to disable/enable streaming of specific folders?

5 Likes

I hate to say this but streamingenabled ruined every single game i enabled on, if its not turned on then the game is perfectly fine i do add optimizations to the game and no issues at all

i tried every settings of streamingenabled btw

2 Likes

Whats StreamingEnabled for again, I forgot :confused:

3 Likes

I never really understood streaming enabled since low graphics turns my game’s render distance to like 0 anyways. The baseplate already literally fades out of existence for low graphics, what is even the point of streaming enabled?

Does it work vertically? Since render distance doesn’t seem to

2 Likes

Let’s say you have a LARGE game, it takes a while to load right? But what if you only load the spawn area, and around, then prioritize it? Then they can spawn in very fast, all while the outside areas load in the background. This makes load times way faster for the user. It also dynamically loads/unloads areas, instead of having the entire map loaded at once.

This also makes it easier on mobile devices or low-end PCs. Instead of having a small device load the entire map, it only loads what it needs to have a good experience.

11 Likes

This does not do exactly the same thing, because some things still need raycasts. So, your game could still be considered “laggier” due to this. At least that’s my understanding. Somone correct me if I’m wrong.

2 Likes

A low render distance makes it so objects that are too far away aren’t rendered, but still have to be loaded in and will take up place in memory

With streaming enabled those objects are never sent to the client in the first place - as far as the client is concerned, those parts just don’t exist. This way the client doesn’t have to spend time loading in the objects and allows memory to only be spent on what the client actually needs (instead of, for example, some parts of the map thousands of studs away)

6 Likes

Nice feature.
I’ve got a question.

Any reason models are being streamed in without any parts inside them, even the primary part?
This makes it impossible to use Collection Service (tagging) with models, because if you tag a model, and on client listen to CollectionService:GetInstanceAddedSignal(), it fires when the model is streamed in, but you basically can’t do anything because the parts inside it are not streamed in.
So this either results in errors, or you have to use an infinite yield WaitForChild(), which might never yield, because the client may get out of the streaming radius, and model streams out again, without it’s parts ever being streamed in.

I think the models should be treated as assemblies, and stream in fully, or not stream in at all, or at least have such option, so that we don’t have to introduce hacky solutions to this problem (Like tagging the primary part instead, and welding all needed parts to it, so that it is an assembly, even tho there is no need for welds, because all the parts are anchored).

12 Likes

When will be able to exclude parts and models from streaming?

3 Likes

This API is in the works and should be coming soon:

Property Enum.ModelStreamingMode Model.ModelStreamingMode

Enum ModelStreamingMode
    EnumItem ModelStreamingMode.Default : 0
    EnumItem ModelStreamingMode.Atomic : 1
    EnumItem ModelStreamingMode.Persistent : 2
    EnumItem ModelStreamingMode.PersistentPerPlayer : 3

(Tagging @metatablecatmaid since they were asking about it too)

17 Likes

Oh this is what the persistence thing was on models. Hah

1 Like

Does it work vertically though? Just like render distance not seeming to be affected by verticality

edit: was wrong

1 Like

These are interesting settings. I wonder what ‘Atomic’ and ‘PersistentPerPlayer’ means!

I hope it works pretty good and per-mode +per part. I have a game where 99% of the game’s parts are within sub-models of a single model, where the only thing that needs to be loaded in most of the time is the base model & a few specific parts. Unfortunately those specific parts are the farthest away, so I’m terrified of enabling this potentially-useful feature because it’d require a lot of code re-work, where as manual persistence would allow me to easily patch up the few requirements.

1 Like

Glad streaming is still being updated. I will still be waiting for per-model streaming though as my game focuses on long-distance combat and some assets I cannot afford to have stream out.

2 Likes