Z-Fighting on Newly Created Unions

I’ve been having an issue with unions that causes them to have certain triangles in front of others that they shouldn’t be. From what I’ve seen, this happens every time I union something. An example would be trying to create a water bottle filled up half of the way. Only parts of the water could be seen, because the triangles behind the water (parts of the bottle) are in front of the water itself. It’s important to know that the union has to be transparent to see the water inside. I’ve noticed that this only happens when I create the union now, rather than have already created it in the past. My old water bottles don’t have this issue. All I did was re-union then to see what happened, and they suddenly had this problem.
Example Place: Z-Fighting Water Bottles Example - Roblox

Here’s a step-by-step procedure to perform this:

  • Open the place (It’s uncopylocked and it has some elements you can no longer recreate)
  • Clone the first bottle
  • Un-union the cloned bottle
  • Re-union the un-unioned bottle
  • See for yourself how it changes

This is a light example of the issue, but it can get worse if you try to change the size of the water part in a bottle. Something else I noticed was that upon un-unioning the new unioned bottle, it completely shrinks. It should look like the first bottle, but instead, it looks like an inside-out bottle.

This bug happens in the studio and it will render the same way in-game and in test mode.

The first time I remember it happening to me was about two weeks ago, when I was trying to make a cylinder with a hole inside so that you could see out from the inside.

Screenshot of the example place: image

Don’t know if you were aware they changed the way Unions were created. If you go into your File> Settings> Physics and click the DisableCSGv2 checkbox how does the Union work then?

This was done to make Unioning a bit more stable, but I think it can cause issues like you are experiencing.

As said above, new system was shipped and made default. It may be possible your union was done while CSGv1 was default and now you’re separating it with CSGv2 enabled - that probably cannot work as expected.