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

June 23 Update:
Thank you for your patience! CSG v3 is back for you to try!

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.

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?


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.


Finally! CSG is being improved! Unioning had so many problems and I just avoided it but finally it is being improved. Can’t wait for for games with destruction physics being more responsive!


It’s nice to think that we can make use of CSG mixed with our mesh and parts again without half the build being gone next time you get on studio. Hours lost with CSG made me give up on it before. This looks great.