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

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.

1 Like

Thanks so much for the detailed description. I will have a look and will let you know once we’ve found the root cause.

1 Like

Nice! can’t wait for Client-Side CSG, it is going to be perfect for my current game.

Yes, to get any fix, you need to restart Studio.

By any chance with materialservice if two unions share the same materialvarient can it automatically transfer into the union instead of taking effect of the material its replicating?

vid example: personally would prefer the materialvarient to move into the union as displayed below it resets it

Hello! I am new to the forum so I hope I am making my issue clear enough.

What am I attempting to achieve? I am trying to simply union like I used to without issues.

What is the issue? When I try to negate unions which I believe were made with CSG Legacy where before it worked fine however now it does not (CSG Legacy) and says basically that the union is unsolvable when I try to negate it, though its worked many times before. CSG Legacy (on the left) is also the original model, so that’s how it should look, however I can’t negate it.

What solutions have you tried so far? I basically turned off CSG Legacy and enabled CSG V3, this worked but to an extent for the visor obviously has some unwanted lines, I have put together and image to show examples of my problem.

Again sorry if I am not being clear enough, thank you!

Original model: https://create.roblox.com/marketplace/asset/899871657/Clone-Trooper-Helmet?pageNumber=1&pagePosition=2&keyword=clone+helmet

5 Likes

real time csg doesnt even work for me

2 Likes

where feature :face_with_raised_eyebrow: :face_with_raised_eyebrow: any update of when is it coming out?

2 Likes

For some reasons, this CSG version slows down physics whenever I run it on my system, even with just a baseplate.

1 Like

To do with CSG. I recently just hopped into studio with someone who said he kept getting an error when trying to use union. I tried and the same issue happened to me so I looked around the devforum and found very little on the situation

Here is the place that he’s using: UnionProblem.rbxl (1.5 MB)

1 Like

Unfortunately this new engine makes it basically impossible to union things for me. If the union does work, a part is missing for some reason. If I ingroup it and try unioning it again, it just throws the classic -11 error.


image

Here’s the object, grouped in a model:
problematic object.rbxm (4.7 KB)

I’m only posting this here because I do not have access to post things in bug reports.

1 Like

I tried this beta feature and was dismayed that the most obnoxious CSG “feature” has apparently not changed. Applying Materials and BrickColors to a Union still does not work. I don’t see why this would be a hard thing to fix. If it works to separate everything down to its component blocks, then apply the color and material, then re-union them back, then why not just make the tool automatically run through exactly that sequence of steps in the background every time you tell it to apply something to a CSG part?

1 Like

Sorry to bump, but has been there any updates to the smoothing angle on CSG V3? Smoothing angle doesn’t work properly on V3 when applying it to complex union parts, it works on the old CSG V2 engine but it has “brick-shifting” issues when trying to union parts.

3 Likes

i have just noticed it is forced onto the user, is this correct?

to add along, will there be an option to disable the part-takes-colour-from-negate “feature”, its really annoying and severely disrupts my workflow :frowning:

4 Likes

Hi Stef, there is an “UsePartColor” option in the property menu. Enabling it will disable the part-takes-colour-from-negate feature. Does this work for you?
UsePartColor

5 Likes

Sadly not, as 1 union can use multiple colours, same issue is stated here

doing each part seperately is an option, however, this can really slow down my workflow aswell as having a higher risk on BrickShift

3 Likes

Hi onboquo,
We can change/apply one material and one BrickColor to a Union (to see the brick color, you need to check the “UsePartColor” box). At Union level, we don’t have the access to the materials/colors of its component blocks. Separating the union is a simpler way to allow you to pick the component block(s) of your interests and apply/change the color(s), otherwise, the colors in the CSG tree of the union has to be exposed.

2 Likes

Hey, i’ve been having an issue that I am wondering if it will be fixed?

Unioning specialmeshes with cylinders as a way of rounding was never an issue with CSG V2 as shown here, on this dome.


This was all made with specialmeshes and cylinders.

Using CSG V3, I will try and union this, a specialmesh set to sphere on a cylinder.

…And it turns into this.

Why is there a gap?

5 Likes

Hello estonice2, the gap should disappear if you use the default sphere and cylinder, or sphere/cylinder both in special mesh. If this doesn’t solve your problem, please DM the model and I will take a look at it.

4 Likes

The methods provided do work, thanks!

As a side question though, will the method of combining a cylinder and a part with a specialmesh set to sphere be supported in the future?

3 Likes