New Improvements to Streaming Enabled

A fix has been enabled for this issue. Persistent models should load even when there is no character or replication focus. Thanks for reporting this problem.

2 Likes

Just want to mention, it would significantly tidy up this use-case if Folders could have an option to take advantage of this as well. Specifically just the atomic mode, but there may be use case for the rest. Not sure how possible this is.

1 Like

Not sure if this bug is for the same thing but it seems similar to this. Cloning a model that has its streaming mode as atomic beforehand and parenting it to workspace doesn’t seem to replicate any descendants. It also doesn’t seem to replicate if I set a newly cloned model to Atomic (one that wasn’t atomic beforehand)

I know this is only with cloned models since if I don’t clone the model it works perfectly.

1 Like

Are you able to create a repro place for this? I wasn’t able to reproduce this problem.

It seems I was wrong on what I assumed the bug was. The model is actually replicating correctly but the primary part isn’t being set when the model is replicated via a CollectionService tag even though the primary part does seem to exist within the model. Here’s a repro
Repro.rbxl (83.2 KB)

Great update roblox but we need a ForceUnload(player) for model so they aren’t replicated anymore…

1 Like

It seems I was wrong on what I assumed the bug was. The model is actually replicating correctly but the primary part isn’t being set when the model is replicated via a CollectionService tag even though the primary part does seem to exist within the model. Here’s a repro
Repro.rbxl (83.2 KB)

Has there been any updates regarding this? or if its even considered a bug? Most developers including myself would expect the primary part should to be correctly set upon replication via an Added Signal such as ChildAdded, DescendantAdded, GetInstanceAddedSignal, etc…

We are still investigating this bug report. We may message you directly with some questions related to your repro example.

Nice! I am having a small issue with streaming though, since it doesn’t seem to work when using freecam, and only when the player moves. Could be something cool to add.

Yeah this update is great, I guess I missed it, just stumbled on it today. I already fixed my hacky workarounds to make key distant models visible to players when they join.

Yay!

This is already supported: Player.ReplicationFocus

By setting the ReplicationFocus you can focus a player’s streaming region on some arbitrary position rather than it having to be equal to where their character is.

But is there any way to make that ReplicationFocus part move along with the freecam? As I understood that part is stationary.

You’d have to move the ReplicationFocus part yourself (because only you know the rules of where a person is allowed to look in the experience) but it is completely dynamic and will respect wherever the ReplicationFocus part moves.

1 Like

Alright thanks for the help! I will try to figure out how to make that.

We’ve recently enabled fixes for several issues that were reported here, or problems that were identified elsewhere. The fixed issues were:

  • Character models for players that have been streamed out may not be fully removed from memory. Fixed 2/23/2023
  • Models with ModelStreamingBehavior == Persistent will not be sent until a character or replication focus exists. Fixed 3/1/2023
  • Models with ModelStreamingBehavior != Default may not replicate correctly when stored outside of Workspace (ReplicatedStorage, ETC). Fixed 3/1/2023
  • Calling ModelInstance:RemovePersistentPlayer (or AddPersistentPlayer) for a player that is in the process of being removed, such as via the CharacterRemoved callback can result in a crash. Fixed 3/1/2023
3 Likes

I’m experiencing, and have corroborated with some others, that when I have a model with ModelStreamingModel = Atomic, the PrimaryPart seems unset when first loaded (e.g. in CollectionService:GetInstanceAddedSignal) despite the parts existing because of Atomic… in fact even within a task.defer it seems the PrimaryPart becomes set.

This seems unintended, can you confirm @CorvusCoraxx @tnavarts ?

Working on converting Jailbreak to use streaming :+1:

6 Likes

I believe the issue that you described, where the PrimaryPart isn’t set when the model arrives, should be resolved by a fix that we recently implemented but haven’t yet enabled. We will confirm and let you know when the fix is active, or if a separate fix will be needed.

6 Likes

Are these issues with streaming enabled?

Case 1: HumanoidRootPart of the player undetectable by their own client.

This part always successfully runs.:

local Player = Players.LocalPlayer
local Character = Player.Character or Player.CharacterAdded:Wait()

WaitForChild(“HumanoidRootPart”) fails. It’s odd, but LeftFoot disappears too.

Case 2: Instance (presumably the InstanceID) that was just created is passed to client via remote function. Client receives “nil.” Sometimes this is still true with built in delays over a second.

Using “Persistent” to make sure parts are seen by the client only goes so far.

1 Like

Am I the only one who can’t play animations in atomic? Are there specific guidelines to follow when using atomic streaming?

As mentioned under “Known Issues” there is a problem with animations under atomic characters. We hope to enable a fix shortly.

2 Likes