Lag Reduce because of many parts

Hello, I would like to know on how to reduce lag in a game, my game has a lot of parts and starts to drop to 60 fps on my pc, I would like to know on how to reduce it since it is a gameplay issue, Do I need to make a sciript to make a distance where the parts appear after nearing them or is there a trick on the tools to reduce it, I need help there, would appreciate it if helped. Thank you.

1 Like

Hello, you can try to enable StreamEnabled in the properties of the workspace. It will change the way of rendering and it will boost your fps. Some scripts may not work well after enabling this function, so you need to test it.

2 Likes

Anchor parts so velocity isn’t updating, also streaming would be useful in this situation

1 Like

What you shouldn’t do right now, is make a custom chuncking system. It’s a very memory intensive “solution” which will be introducing problems of its own, only further complicating the issue.

There are a few new features on its way that will significantly improve performance in your experience, but you’ll have to wait for them a little longer as they are currently in Beta.


Streaming is the obvious “solution” to your problem. Putting it in-between quotation marks, again, because it really doesn’t solve your issue at this time. Currently, enabling streaming is only going to start streaming objects out when the client is running out of memory. This is only good for load times when you initially join a server, as it doesn’t require the client to load every single object in your game. So as you start exploring your game, it will start to stream objects in depending on the Min and Target radius you set. This will slowly increase the client’s memory usage until it is eventually forced to stream back out regardless of your radius. It’s unpredictable in what it will start to stream out as well, as you have no control over this.

Luckily, there’s currently a new feature being developed that will allow streaming to stream objects out based on the radius you have set for your game, even if the client has sufficient memory. This will obviously be the ideal solution for games with a larger and more detailed world.

As of writing this, the feature is currently disabled because of an issue regarding R15 avatars. You can follow up on the status of this feature here.

NOTE: If you are ever going to use streaming, definitely read up on LoD (Level of Detail) for Models, MeshParts and CSG Unions. This will allow you to completely take advantage of this feature.


What is also in Beta is a new property for Parts called CanQuery. This new feature will allow you to determine whether or not a certain Part can be hit by spatial queries; such as region3 and or raycasts,…
So if you were to disable CanCollide, CanTouch and CanQuery on a Part, for example, this part will now be excluded from all of these collision computations. A no physics Part, if you will. This will significantly improve your performance if you were to do this for all Parts that are not going to be directly interacted with.


There is also something called instancing, which applies to both MeshParts, Parts and CSG Unions.
It’s an interesting read so if you have the time definitely give it a look.


All of the above features, if applied right, should give you a significant performance boost.

Good luck.

9 Likes

One of the best ways to do this is use the Union function in the “model” tab in Roblox Studio and to enable Game Content Streaming.

Awesome, Thank you for the information.