Solid modelling
geometryPerform constructive solid geometry on Roblox parts: union, subtract, intersect, and fragment to build complex shapes without importing meshes.
Instructions
Cuts, joins and shatters parts with real constructive solid geometry.
This is how to build a shape that is not a box without importing a mesh: subtract a door out of a wall, union several parts into one solid, intersect to keep only the overlap, fragment to shatter something into debris.
subtract and intersect need the parts to actually overlap, and they fail differently when they do not. intersect returns nothing, which comes back as an error rather than a silent no-op. subtract returns the subject UNCHANGED — a full-size copy of it, reported as a created part — because cutting nothing out of something legitimately leaves it whole. So a subtract that succeeds is not proof that anything was cut: check the positions overlap with inspect first, or compare the result's size against the original.
Results keep the original's material, colour and anchoring. Roblox returns bare grey MeshParts, so a brick wall with a hole cut in it would otherwise come back as a grey slab — correct geometry that looks like a mistake.
The originals are consumed unless keepOriginals is set. The whole operation is one undo step.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| op | Yes | 'union' merges, 'subtract' cuts `with` out of `path`, 'intersect' keeps only the overlap, 'fragment' shatters `path` into pieces. | |
| name | No | Name for the result. Defaults to the original's. | |
| path | Yes | The part being operated on — the one cut from, for subtract. | |
| with | No | The other parts. Required for union, subtract and intersect. | |
| parent | No | Where to put the result. Defaults to the original's parent. | |
| pieces | No | fragment only: roughly how many pieces to break into. | |
| studioId | No | Target Studio; omit for the active one. | |
| splitApart | No | Return disconnected chunks as separate parts rather than one. | |
| keepOriginals | No | Leave the input parts in place instead of consuming them. | |
| collisionFidelity | No | How exactly the result collides. Precise is expensive — raise it only for a surface players walk on. | Default |