Disabling StreamingEnabled causes replication issues for the client

I don’t usually post reports about issues with engine bugs, but this one popped up and has slowed down development significantly.

Description:

I’ve been developing a game in the works for a while now, and I only recently decided to turn off StreamingEnabled, as it was causing more issues than it was helpful with performance and replication (not related to this). The game has had it enabled for about 5-6 months, however once I disabled it, I’ve noticed replication issues particularly on the client, almost as if StreamingEnabled WAS enabled but had very low render priority. Particularly issues with models being NIL when they should be replicated from the server to the client.

I have performed multiple tests back and forth with and without having StreamingEnabled on, and the issue only persists when StreamingEnabled is turned off.

I should probably also mention that I don’t have code in place that parents the models to NIL manually, but instead it seemingly just happens, because I have checked on the server, and the model still exists, proving that this is a replication issue with the client.

I have provided a video containing this issue happening with an entity model within my game.

System Info

(The issue is still persistent on my other devices that I use, such as my laptop and phone, however this info is from my desktop)

CPU: Intel Core i5-1600k @4.10 GHz
GPU: NVIDIA GeForce GTX 1660 SUPER
RAM: 32 GB

Visual Aids

Video:

Similar errors show when this issue happens, indicating that the Model exists but is not present for the client

Expected behavior

What I would expect to happen is that when I disable StreamingEnabled, everything is replicated to the client from the server regardless. StreamingEnabled should be if the game experiences performance issues with a multitude of parts or high-end models/meshes, and a game should function normally without it being enabled. I expect that when I turn this off, all the necessary streaming in/out that StreamingEnabled handles should be ignored and halted.

2 Likes

Even if you have streaming enabled off, large models cloned from the server are not guaranteed to have all descendants present when the model loads in.

I think what you’re referencing is the loading of preexisting instances. When streaming enabled is off, preexisting instances are guaranteed to be loaded, but instances that are created during runtime are not.

1 Like

See if you click on every single Model it should have Under Appearance which has Level of Detail and see if that is set the Automatic Disabled or StreamingMesh towards the bottom there should be one called Behavior which has ModelStreamingMode Atomic Default Nonatomic Persistent and Persistent PerPlayer you might be able to search in the Explorer Level of Detail and Model Streaming Mode aswell let us know if changing any of them help out or if there is to much to change

Most likely wouldn’t be the case due to the fact that the models which aren’t being replicated are being cloned from the server. The client has these models already preloaded. The issue seems to happen at random, as the same model that eventually doesn’t replicate had replicated multiple times prior. All the models are being yielded for on the client too which is why I’m scratching my head at this one.

Sorry if I didn’t make the post that clear, but this is only happening when StreamingEnabled is off. Replication is completely fine when it’s on. It’s just frustrating because this seems to be doing the exact opposite of what having StreamingEnabled off is intended for.

I’d like to also mention that the model not being replicated has only one single part, which is the HumanoidRootPart. The entity displayed on the client is cloned by the client and attached to the model cloned by the server. So basically there’s 2 models; one of which is cloned by the client and is nothing related to this issue, the other is cloned by the server as the actual entity with the Humanoid.

Sorry if this doesn’t make much sense. I’ll try and attach a screenshot for reference


image