Studio Beta: CSG Has a New Engine - Vroom, Vroom, Vroom!

April 26 Update:
Thanks for the feedback thus far! This is a case where we wanted to release a beta early to get feedback/catch issues in the wide ways folks use the system so that we can iterate fast/release fixes each week and get it to an awesome place. We’re going to disable this beta for a couple weeks to address the blocking issues that have arisen (and we also have reviewed why we didn’t catch them before release). When we re-enable CSG v3, we’ll be doing continuous bug fixes and let you know with each Studio release what’s been improved.

Hi developers,

We’ve been working to significantly improve our CSG system. Specifically, we’ve made it way faster and fixed a number of issues - for example, unions shouldn’t disappear anymore.

We will be deploying this in-game eventually, but we want you to try this new beta in Studio to help us ensure it works perfectly for you.

To enable this, go to File > Beta Features and enable “CSG Version 3”.

There will be no visible change as the tools are the same, but the system should be way faster (up to 20x in some cases), and we will be making it even faster during the beta.

Give it a try, and let us know what you think! We have some great things planned using this new system, and we want to make sure you love it before we enable it by default.

The Roblox Team


This topic was automatically opened after 15 minutes.

Apart from the fixing of unions dissapearing, which is great by the way, what are the other things fixed? What should we see?


I just popped into studio to try this out and oh my god it’s literally instant. Can’t wait to see the iron-man games people will make with this, as I know some developers were limited due to CSG being slow previously!

A quick bug I’ve noticed with my short moments of messing around is that when you select more than one NegateOperation object and then union it, you’ll see lighting artifacts like in the video above - if you negate one at a time, it works flawlessly, though!


combining two of my meshes imported from blender crashes the studio
is it impossible to combine external meshes?


Great to see Roblox improve such highly used features, can you list exactly what you improved/fixed though? This announcement post was kind of vague in general.


Found a bug - previously, when unioning a part with a Head SpecialMesh inside, you’d get an error stating that this part can’t be used with CSG. With V3, Studio just crashes.

Edit: looks like the mesh “not supported” errors are not functioning properly - this bug doesn’t just affect head SpecialMeshes.

Overall, this is a really nice feature - I can immediately see the speed increase, and I’m excited to use this in prod when it releases!


It has always been unsupported. You cannot use CSG with meshparts.

The speed improvements could have massive implications on the use of realtime CSG in games. Looking forward to FPSes with destructible environments, games where you can actually cut the trees down, and entire virtual workshops. :wink:


That’s awesome to see that this is finally dealt with. The only question is does it make a million overlapping vertices on unions. Cleaning up unions to make them more performant has been a pain when optimizing games on tight schedule.


Looks like a really good change.

Will unions that were previously corrupted suddenly become non-corrupted? Or will this only apply to unions created after this feature was announced?

I have a lot of corrupted unions that I have not bothered to resolve and it will be pretty annoying to see random shapes in my showcase. Oh, and I am really glad I can tell my friends who I’m introducing to Roblox that unions won’t “magically disappear” any longer.

Anyways, thank you very very much.


This is great. I can see a noticeable increase in speed and performance where it’ll be much better to use in-game. Thank you. @JoshSedai has been working hard lately. I see this man everywhere.


Finally, fixes with the union disappearing. Can’t wait to try it out!


Does this essentially mean that live CSG (SubtractAsync and UnionAsync) will be much faster?

Will this completely get rid of the new unionoperation (as a result of either of the prev. mentioned methods) taking a noticeably long time to load when replacing the old unionoperation/basepart?

This has kept me away from taking use of live CSG in my game mechanics.


It… it finally happened… CSG can now be more reliable :clap:


CSG with mesh parts is not supported (same as in V1 & 2).
But “under the hood” V3 is a (long) step in the right direction, in this respect :slight_smile:


But “under the hood” V3 is a (long) step in the right direction

does this mean that imported meshes will be supported with csg?

edit: i might of misread that reply


I feel CSG has been outdated for a long time so I’m very pleased to hear about this change. I’ve always tried to avoid using solid modelling because of corruption, but now this is fixed I can thankfully utilise the system more. This update will certainly give builders greater capabilities, which I’m very grateful for.

It would also be helpful to know what other issues have been fixed with the new engine :slight_smile:

After briefly testing this, previously corrupted unions are still irretrievable.


Unions corrupted like this actually lose their mesh data and collision data. There is no way to retrieve old union data because of this, its just gone, completely. (Which, is really unfortunate)


There’s a way actually :kissing:


Apparently un-unioning V2 parts flat out crashes the client.