Hello, I’ve recently been facing a pretty confusing bug regarding unions and negative parts. In short, UnionOperations will consistently change sizes arbitrarily if combined with certain NegativeParts. However, these arbitrary size changes will only occur within a live game and not in Roblox Studio.
I first experienced this issue July 21, 2022 upon joining a live game of my project. At first I believed it may have been an issue with server to client replication as I had previously fiddled with the StreamingEnabled option. However, upon toggling the StreamingEnabled option off, the issue persisted.
I then thought it may have been a floating point error of sorts as players would be teleported thousands of studs away to a map containing the broken unions, but upon testing the unions near the world center, the issue persisted.
This led me to believe that there was code within the game altering the unions somehow, so after looking through the entire codebase for any references to the broken unions and finding none; I decided to test the unions in an empty baseplate and managed to consistently replicate the issue.
In my testing I’ve found that this issue does not occur within Roblox Studio and only occurs within a live version of the game. I thought to try toggling on/off the CSG V3 beta feature in studio, which had no effect on the unions. I’ve created a place that can be used to reproduce the issue, however the game must be played in a live environment to replicate the issue.
This is what the unions look like while playing in Roblox Studio:
This is what the unions look like when playing in a live game:
As you can see in the live game, the unions along with their corresponding negative parts seem to have shrunk.
Here is the game file that I used to reproduce this issue, you can test it in studio and in a live game:
Broken Unions.rbxl (74.5 KB)
If there’s any other information I should provide to help with this issue, I’d love to help.
UPDATE (July 22, 2022):
After further testing, I found that this union sizing issue primarily occurs with unions that were created using the old union engine and unions made using CSG V3 will retain their size/shape normally.