Solid Modeling (more commonly referred to as Unions, or ExplorerImageIndex 73UnionOperations) is a feature in Roblox Studio that allows the creation of constructive solid geometry (CSG) parts that cannot be created with regular ExplorerImageIndex 1Parts. This has been a feature since 2014, stemming from a Hack Week project. Since 2017, a new CSG system has been devised, known as CSGv2. Unlike its predecessor, CSGv1, v2 allows for unioning without encountering errors very often by automatically fixing floating-point inaccuracies, but each system has its own advantages and disadvantages.


Union (Solid Modeling)

S-shaped UnionOperation

A Union is two or more parts combined into a new object that is capable of interacting with other objects. When something is unioned, both of the parts merge to create a Union.

If CSGv1 is used, it will have a tendency to fail because of floating-point inaccuracies. It also only supports up to 2,500 triangles. However, CSGv1 provides a better solution to smooth shading because it makes new normal maps for unions. CSGv2 is generally more reliable since it automatically fixes floating-point inaccuracies, and its triangle limit is 5,000, compared to v1's limit of 2,500. However, CSGv2 features absolutely no smooth shading because it doesn't generate normal maps for unions.

How to union

To union, select two or more parts, then click Union under Model to merge the two parts together.

When to union

Usually, parts should be unioned when it is an absolute necessity, such as getting rid of texture clipping/Z-fighting between two objects. Otherwise, using an abundance of unions is not recommended. Unions require the client to download them, making load times slower for players. In addition, collisions may not actually be a 1:1 match with what the union actually looks like. Roblox simplifies both mesh and union collisions to take up less space - sometimes, this may result in inaccurate collisions or floating characters. Finally, if CSGv2 is used, there is a chance of a union becoming corrupted and not being able to load.


A NegativePart is a part that is able to subtract from other parts, creating a UnionOperation in the process.

Much like unioning, there is a triangle limit of 5,000 if CSGv2 is used and a 2,500 triangle limit of 2,500 if CSGv1 is used - however, as mentioned before, CSGv1 generates normal maps for unions, making unions look smooth. The problems with unioning carry over to negating - inaccurate collisions, union errors (mostly limited to CSGv1), and longer load times, which is further amplified when using many UnionOperations.

Negate (Solid Modeling)

UnionOperation made from one NegativePart and one Part.

How to negate

To negate something, first, select an object and click Negate. To subtract from a part using a NegativePart, place the NegativePart in the part that is wished to be negated from. Then, select both parts and click Union.


Separate (Solid Modeling)

Separated NegativePart and Part.

Using the Separate button while selecting a UnionOperation will separate the parts that were merged, including NegativeParts. This is useful for adjustments or correcting errors.

External links

Community content is available under CC-BY-SA unless otherwise noted.