Improvements to Model Level Of Detail (LOD)

Not gonna lie, this problem of yours is likely the fault of the developers of whatever games you’re playing.
There is no reason why a Roblox game would not out-perform another game unless it’s made poorly.


Graph nodes are placed at intersections, junctions, corners and curves. Pedestrians/vehicles are given a random node far away, which they travel to using a version of the A* pathfinding algorithm to find the shortest possible path of nodes along the the road or the sidewalk. The target node is again randomised if they make it to the node before they despawn.

This is a run-down version of it, since there’s other things to include such as detecting and moving around blockages, pedestrians crossing roads etc.


You can… right now! Set ModelStreamingMode to Persistent.


Oh man, that’s exciting! Thanks for telling me!

1 Like

“Persistent” break humanoid and animations

Follow updates / report bugs on this post: New Improvements to Streaming Enabled

It’s a very new feature so there’s some bugs that are still being ironed out.


I didn’t test yet but I hope lod bugs are also fixed with this update…
There were a lot of bugs with LOD (and whole streaming enabled system but I wont talk about it here) for like a month.

Lod model would appear on different location than location in studio, lod model would not load when you go near it, lod model would be so bigger than it’s actual size
I have to note that unions are used in these lods

Maybe these bugs are fixed in this update but I just wanted to mention this because no one else did. I will test everything again soon.

Can you share more details on what you are referring to @VladimrLenin? Are you able to file a bug report if you are seeing issues with persistent humanoids?

1 Like

The blocky look is from an older version of the LOD. Do you by any chance have an old Roblox Studio version running?

1 Like


  • Player character’s ModelStreamingMode is set to Persistent by server script instantly after CharacterAdded
  • May be fixed in studio after adding wait(1) before setting ModelStreamingMode to Persistent


  • The bug occurs if animation is played by server
  • The bug doesn’t occur if animation is played by client
  • It doesn’t matter if ModelStreamingModel is made Persistent from studio or set by scripts. Even adding wait(1) after or before playing animation didn’t fix it.

Someone probably limited my perms in devforum so I can’t create post in bug topics


It is anchored, i always anchore everything

I was excited about this feature until I saw it required streaming. For those wondering why, streaming is practically useless on slower connections. My experience playing open world games that use it boiled down to doing house work every 5 minutes with 2000ms ping because I dared to walk 500 studs and load in new assets. The fact that not a single soul on this platform knows how to preload assets really doesn’t do this feature any good. There’s also the issue of an asset existing at one point and disappearing at another, making complicated server-client behavior hard to predict.

I have seen StreamingEnabled work near fine with a 700 kbps download connection on a full game-sized map. In fact I was able to play most Roblox games at that level with only a few random ping spikes.

Not sure where this is coming from. You probably have packet loss, and that’s the source of your issue.

Im talking about the difference to the models created before this update vs after.

I just updated, Version 0.565.0.5650363 (64bit)
Some look blocky while others look like 2d cardboard

Models connected with motor6d are traded on their location in the world, not the point they are connected to.


Depends on the game you’re playing. It’s great if it’s a simple game primarily relying on parts and unions or one with a proper content loading system. But people don’t seem to understand that just slapping it on an existing project won’t do anyone good. Older games often run better without it because all assets loaded on their first join as you load the entire map from the start, so it masked the underlying issue.

Did you run the update script?

yes I ran it and finally published it, some are cubes

Sounds nice. It would be good to see this in Studio as well. Roblox studio should have the ability to enable streaming to reduce lag when creating games.

@VladimrLenin thanks for reporting these issues with players/NPCs and local scripts. We are investigating the issues.

For now I believe you should be able to work around these issues by using a Script and setting the RunContext to Client instead of using a LocalScript.