CSGV2 still gets corrupt unions

I was working on some steampunk pipes, when I decided to union a wedge into the edge of one of the pipes to make it appear like a broken pipe (like the one you see on the right).

When I unioned, I got this :

If I go to un-union the corrupt union, it un-unions into nothing (literally, nothing appears in the explorer).

Undoing / CTRL+Zing just re-adds the corrupt union, no matter how far back I CTRL+Z.

Here is the corrupted union model :
Corrupt_Union.rbxmx (102.7 KB)

This was an issue with the original CSG system, and it apparently persists in CSGV2.


This is a big problem that must be addressed, being a builder myself it’s no fun when your hard work gets corrupt, resulting in it being unrecoverable too.


This is why I duplicate all my parts and put them into serverstorage before I union them. My paranoia about CSGV2 was justified.


Thanks for reporting.

Trying to look into what’s going on here, I loaded the model and tried to ungroup the “union” part of it, and I got an error pop-up telling that the child data for the union part is not available.

CSGv2 won’t currently operate on anything that doesn’t have child data (it needs the CSG tree telling how the object got made). It is concerning that you got no error message though. Are you using CSGv2, or do you have it disabled, or could you provide the model with child data in place?


1 Like

I am using CSGV2.

And no, I do not have an uncorrupted copy. The original copy was the corrupted union.

I know the feeling all too well and I decided to completely scrap CSG. A year later and I still get corrupt unions and I’m not a person to really take a risk having nearly 70% of my unions corrupt destorys your soul.

So, just to be clear, were you using CSGv2 when this union got corrupted, or is one corrupted by CSGv1 way back, and just can’t be ungrouped by CSGv2?

This is important, because the CSGv2 code for unions is written so that it does not modify the objects in workspace at all until the operation has been completed successfully.

Also, is this something you encounter frequently? It’d be amazing if you could provide a repro case.

Could you elaborate a little on the circumstances when the corruption takes place? Is the model always very complex at that point, or does it sometimes happen with simpler cases? Does it take a long time to compute before it spits out the corrupted result?

A saved file from before the corruption would be helpful, for example an .rbxl file with an earlier version and a short description on what you tried to union with what.

Our current difficulty in even beginning to address this issue is that we have not been able to reproduce the problem.

I made it using the CSGV2 system. CSGV1 was never involved.

I don’t build all that often, but I am refining my building skills on a CSG heavy showcase right now. I’ll see if I can create a repo soon.

1 Like

Really sorry I can’t provide any repos right now but I do appreciate your input and response, I’ll try to install myself into some new faith in CSG and see how it goes. I’ll be sure to ping you in DM if I come across anything now we know someone is aware and listening - it is a help.

Just a little update, this is still happening - @Spathi was working on a cello when he reported a studio crash, and this was the result:
CorruptedCelloUnion.rbxm (4.3 KB)

I made the cello union, finished it and continued building other things. Studio auto-saved and stopped responding, I was forced to close studio, and I came back to a corrupted union.

Just got this today… still happening.


I had autosaving off for quite a while and my unions seemingly stopped becoming corrupt. Auto save was re-enabled today and this has been my first corrupt union since I turned auto save off, that I know of anyway.

3 days later and I still haven’t had a corrupt union.

cc @linearcomplex, this might be the cause of the bug and the binary data being empty in the union I uploaded : How to recover invisible / corrupt unions

1 Like

This is most definitely due to corrupted (and probably missing) ChildData. I (believe) by injecting custom child data you can fix this assuming the MeshData of the Union is properly saved however I’m not 100% sure on this (I’ve only recently begun experimenting with this). I can definitely help you get started with this though.

I’ve had similar problems spiking recently. Simple 5-part unions corrupt seemingly more than complex ones. the CSG system should really be fixed, even negative parts can be corrupted the second they are negated

Yep this is still happening. Even with very simple unions.


Still happening… I worked for 3 hours on a detailed building, and when i returned to edit the game after a few hours the building was no more. This is disappointing and killed my motivation.

1 Like

I am saying this on behalf of all Roblox builders that are not working on any external software, please FIX YOUR UNIONS! it’s not fun to see your work spontaneously disappear. This happening really ruined my mood for today and made me question whether i should quit my project or not, or even quit developing on roblox whatsoever. On many instances you have proved that you are not listening to any input from developers.