Source: Roblox Creator Hub · CC BY 4.0 · View source · Code samples: MIT Imported 2026-10-03. Formatting adapted for this site.
UnionOperation
Inherits from: PartOperation → TriangleMeshPart → BasePart → PVInstance → Instance → Object
A UnionOperation is the result of individual parts that have been joined together into a single solid model through Studio's solid modeling Union tool, or through BasePart:UnionAsync() or BasePart:SubtractAsync().
See Solid Modeling to learn more about Studio's solid modeling tools and methods.
Inherits from: PartOperation
Memory category: Instances
Properties
Inherited from PartOperation
| Name | Type / Returns | Description |
|---|---|---|
| PartOperation.RenderFidelity | RenderFidelity | The level of detail used to render the solid modeled part. |
| PartOperation.SmoothingAngle | float | An angle in degrees which affects the smooth shading of a solid modeled part. |
| PartOperation.TriangleCount | int | The number of polygons in this solid model. |
| PartOperation.UsePartColor | boolean | Sets whether the PartOperation can be recolored using inherited color properties. |
Inherited from TriangleMeshPart
| Name | Type / Returns | Description |
|---|---|---|
| TriangleMeshPart.CollisionFidelity | CollisionFidelity | Determines the level of detail the part's physics will adhere to its mesh. |
| TriangleMeshPart.CollisionPrecision | float | Quantifies how precise or performant a CollisionFidelity.Tunable collision geometry is, from 0 to 1. |
| TriangleMeshPart.FluidFidelity | FluidFidelity | Determines the geometric representation used to compute aerodynamic forces and torques. |
| TriangleMeshPart.MeshSize | Vector3 | The original size of the part's source mesh geometry, before any scaling applied through BasePart.Size. |
Inherited from BasePart
| Name | Type / Returns | Description |
|---|---|---|
| BasePart.Anchored | boolean | Determines whether a part is immovable by physics. |
| BasePart.AssemblyAngularVelocity | Vector3 | The angular velocity of the part's assembly. |
| BasePart.AssemblyCenterOfMass | Vector3 | The center of mass of the part's assembly in world space. |
| BasePart.AssemblyLinearVelocity | Vector3 | The linear velocity of the part's assembly. |
| BasePart.AssemblyMass | float | The total mass of the part's assembly. |
| BasePart.AssemblyRootPart | BasePart | A reference to the root part of the assembly. |
| BasePart.AudioCanCollide | boolean | Determines whether the part will physically interact with audio simulation, similar to CastShadow for lighting. |
| BasePart.BackParamA | float | Determines the first parameter for the SurfaceType on the Back face of a part. |
| BasePart.BackParamB | float | Determines the second parameter for the SurfaceType on the Back face of a part. |
| BasePart.BackSurface | SurfaceType | Determines the type of surface for the back face of a part. |
| BasePart.BackSurfaceInput | InputType | Determines the kind of input for the Back face of a part. |
| BasePart.BottomParamA | float | Determines the first parameter for the SurfaceType on the Bottom face of a part. |
| BasePart.BottomParamB | float | Determines the second parameter for the SurfaceType on the Bottom face of a part. |
| BasePart.BottomSurface | SurfaceType | Determines the type of surface for the bottom face of a part. |
| BasePart.BottomSurfaceInput | InputType | Determines the kind of input for the Bottom face of a part. |
| BasePart.BrickColor | BrickColor | Determines the color of a part. |
| BasePart.brickColor | BrickColor | |
| BasePart.CanCollide | boolean | Determines whether a part may collide with other parts. |
| BasePart.CanQuery | boolean | Determines whether the part is considered during spatial query operations. |
| BasePart.CanTouch | boolean | Determines if Touched and TouchEnded events fire on the part. |
| BasePart.CastShadow | boolean | Determines whether or not a part casts a shadow. |
| BasePart.CenterOfMass | Vector3 | Describes the world position in which a part's center of mass is located. |
| BasePart.CFrame | CFrame | Determines the position and orientation of the BasePart in the world. |
| BasePart.CollisionGroup | string | Describes the name of a part's collision group. |
| BasePart.CollisionGroupId | int | Describes the automatically set ID number of a part's collision group. |
| BasePart.Color | Color3 | Determines the color of a part. |
| BasePart.CurrentPhysicalProperties | PhysicalProperties | Indicates the current physical properties of the part. |
| BasePart.CustomPhysicalProperties | PhysicalProperties | Determines several physical properties of a part. |
| BasePart.Elasticity | float | Used to control the Elasticity of the part, but it no longer does anything. |
| BasePart.EnableFluidForces | boolean | Used to enable or disable aerodynamic forces on parts and assemblies. |
| BasePart.ExtentsCFrame | CFrame | The CFrame of the physical extents of the BasePart. |
| BasePart.ExtentsSize | Vector3 | The actual physical size of the BasePart as regarded by the physics engine. |
| BasePart.Friction | float | Used to control the Friction of the part, but now it no longer does anything. |
| BasePart.FrontParamA | float | Determines the first parameter for the SurfaceType on the Front face of a part. |
| BasePart.FrontParamB | float | Determines the second parameter for the SurfaceType on the Front face of a part. |
| BasePart.FrontSurface | SurfaceType | Determines the type of surface for the front face of a part. |
| BasePart.FrontSurfaceInput | InputType | Determines the kind of input for the Front face of a part (-Z direction). |
| BasePart.LeftParamA | float | Determines the first parameter for the SurfaceType on the Left face of a part. |
| BasePart.LeftParamB | float | Determines the second parameter for the SurfaceType on the Left face of a part. |
| BasePart.LeftSurface | SurfaceType | Determines the type of surface for the left face of a part. |
| BasePart.LeftSurfaceInput | InputType | Determines the kind of input for the Left face of a part. |
| BasePart.LocalTransparencyModifier | float | Determines a multiplier for BasePart.Transparency that is only visible to the local client. |
| BasePart.Locked | boolean | Determines whether a part is selectable in Studio. |
| BasePart.Mass | float | Describes the mass of the part, the product of its density and volume. |
| BasePart.Massless | boolean | Determines whether the part contributes to the total mass or inertia of its rigid body. |
| BasePart.Material | Material | Determines the texture and default physical properties of a part. |
| BasePart.MaterialVariant | string | The name of MaterialVariant. |
| BasePart.Orientation | Vector3 | Describes the rotation of the part in the world. |
| BasePart.PivotOffset | CFrame | Specifies the offset of the part's pivot from its CFrame. |
| BasePart.Position | Vector3 | Describes the position of the part in the world. |
| BasePart.ReceiveAge | float | Time since last recorded physics update. |
| BasePart.Reflectance | float | Determines how much a part reflects the skybox. |
| BasePart.ResizeableFaces | Faces | Describes the faces on which a part may be resized. |
| BasePart.ResizeIncrement | int | Describes the smallest change in size allowable by the Resize() method. |
| BasePart.RightParamA | float | Determines the first parameter for the SurfaceType on the Right face of a part. |
| BasePart.RightParamB | float | Determines the second parameter for the SurfaceType on the Right face of a part. |
| BasePart.RightSurface | SurfaceType | Determines the type of surface for the right face of a part. |
| BasePart.RightSurfaceInput | InputType | Determines the kind of input for the Right face of a part (-X direction). |
| BasePart.RootPriority | int | The main rule in determining the root part of an assembly. |
| BasePart.Rotation | Vector3 | The rotation of the part in degrees for the three axes. |
| BasePart.RotVelocity | Vector3 | Determines a part's change in orientation over time. |
| BasePart.Size | Vector3 | Determines the dimensions of a part (length, height, width). |
| BasePart.SpecificGravity | float | The ratio of the part's density to the density of water determined by the BasePart.Material. |
| BasePart.TopParamA | float | Determines the first parameter for the SurfaceType on the Top face of a part. |
| BasePart.TopParamB | float | Determines the second parameter for the SurfaceType on the Top face of a part. |
| BasePart.TopSurface | SurfaceType | Determines the type of surface for the top face of a part. |
| BasePart.TopSurfaceInput | InputType | Determines the kind of input for the Top face of a part (+Y direction). |
| BasePart.Transparency | float | Determines how much a part can be seen through (the inverse of part opacity). |
| BasePart.Velocity | Vector3 | Determines a part's change in position over time. |
Inherited from PVInstance
| Name | Type / Returns | Description |
|---|---|---|
| PVInstance.Origin | CFrame | Editor-only property that reads and sets the world CFrame of the PVInstance's pivot, moving the entire instance when changed from the Studio Properties window. |
| PVInstance.Pivot Offset | CFrame | Editor-only property that displays and edits the pivot's CFrame relative to the instance, moving only the pivot and leaving the instance in place. |
Inherited from Instance
| Name | Type / Returns | Description |
|---|---|---|
| Instance.Archivable | boolean | Determines if an Instance and its descendants can be cloned using Instance:Clone(), and can be saved/published. |
| Instance.archivable | boolean | |
| Instance.Capabilities | SecurityCapabilities | The set of capabilities allowed to be used for scripts inside this container. |
| Instance.IsInSandbox | boolean | Indicates whether the instance is inside a sandboxed container. |
| Instance.Name | string | A non-unique identifier of the Instance. |
| Instance.Parent | Instance | Determines the hierarchical parent of the Instance. |
| Instance.PredictionMode | PredictionMode | Reflects the client-side prediction mode applied to the instance under server-authoritative physics. |
| Instance.RobloxLocked | boolean | A deprecated property that used to protect CoreGui objects. |
| Instance.Sandboxed | boolean | When enabled, the instance can only access abilities in its Capabilities list. |
| Instance.UniqueId | UniqueId | A unique identifier for the instance. |
Inherited from Object
| Name | Type / Returns | Description |
|---|---|---|
| Object.ClassName | string | A read-only string representing the class this Object belongs to. |
| Object.className | string |
Methods
Inherited from PartOperation
| Name | Type / Returns | Description |
|---|---|---|
| PartOperation:SubstituteGeometry | () | Substitutes the geometry of this PartOperation with the geometry of another PartOperation. |
Inherited from BasePart
| Name | Type / Returns | Description |
|---|---|---|
| BasePart:AngularAccelerationToTorque | Vector3 | Returns the torque needed to achieve a given angular acceleration on this part's assembly, optionally accounting for gyroscopic effects. |
| BasePart:ApplyAngularImpulse | () | Apply an angular impulse to the assembly. |
| BasePart:ApplyImpulse | () | Apply an impulse to the assembly at the assembly's center of mass. |
| BasePart:ApplyImpulseAtPosition | () | Apply an impulse to the assembly at specified position. |
| BasePart:BreakJoints | () | Breaks any surface connection with any adjacent part, including Weld and other JointInstance. |
| BasePart:breakJoints | () | |
| BasePart:CanCollideWith | boolean | Returns whether the parts can collide with each other. |
| BasePart:CanSetNetworkOwnership | Tuple | Checks whether you can set a part's network ownership. |
| BasePart:GetClosestPointOnSurface | Vector3 | Returns the closest point on the part's surface to the given point. |
| BasePart:GetConnectedParts | List | Returns a table of parts connected to the object by any kind of rigid joint. |
| BasePart:GetJoints | Instances | Return all Joints or Constraints that is connected to this Part. |
| BasePart:GetMass | float | Returns the value of the Mass property. |
| BasePart:getMass | float | |
| BasePart:GetNetworkOwner | Instance | Returns the current player who is the network owner of this part, or nil in case of the server. |
| BasePart:GetNetworkOwnershipAuto | boolean | Returns true if the game engine automatically decides the network owner for this part. |
| BasePart:GetNoCollisionConstraints | Instances | Returns the enabled NoCollisionConstraint objects currently registered for this part in its physics world. |
| BasePart:GetRenderCFrame | CFrame | OBSOLETE. Returns a CFrame describing where the part is being rendered at. |
| BasePart:GetRootPart | Instance | Returns the base part of an assembly of parts. |
| BasePart:GetTouchingParts | Instances | Returns a table of all BasePart.CanCollide true parts that intersect with this part. |
| BasePart:GetVelocityAtPosition | Vector3 | Returns the linear velocity of the part's assembly at the given position relative to this part. |
| BasePart:IntersectAsync | Instance | Creates a new IntersectOperation from the overlapping geometry of the part and the other parts in the given array. |
| BasePart:IsGrounded | boolean | Returns true if the object is connected to a part that will hold it in place (eg an Anchored part), otherwise returns false. |
| BasePart:MakeJoints | () | Creates a joint on any side of the object that has a surface ID that can make a joint. |
| BasePart:makeJoints | () | |
| BasePart:Resize | boolean | Changes the size of an object just like using the Studio resize tool. |
| BasePart:resize | boolean | |
| BasePart:SetNetworkOwner | () | Sets the given player as network owner for this and all connected parts. |
| BasePart:SetNetworkOwnershipAuto | () | Lets the game engine dynamically decide who will handle the part's physics (one of the clients or the server). |
| BasePart:SubtractAsync | Instance | Creates a new UnionOperation from the part, minus the geometry occupied by the parts in the given array. |
| BasePart:TorqueToAngularAcceleration | Vector3 | Returns the angular acceleration that would result from applying a given torque to this part's assembly, optionally accounting for gyroscopic effects. |
| BasePart:UnionAsync | Instance | Creates a new UnionOperation from the part, plus the geometry occupied by the parts in the given array. |
Inherited from PVInstance
| Name | Type / Returns | Description |
|---|---|---|
| PVInstance:GetPivot | CFrame | Gets the pivot of a PVInstance. |
| PVInstance:PivotTo | () | Transforms the PVInstance along with all of its descendant PVInstances such that the pivot is now located at the specified CFrame. |
Inherited from Instance
| Name | Type / Returns | Description |
|---|---|---|
| Instance:AddTag | () | Applies a tag to the instance. |
| Instance:children | Instances | Returns an array of the object's children. |
| Instance:ClearAllChildren | () | This method destroys all of an instance's children. |
| Instance:Clone | Instance | Create a copy of an instance and all its descendants, ignoring instances that are not Archivable. |
| Instance:clone | Instance | |
| Instance:Destroy | () | Sets the Instance.Parent property to nil, locks the Instance.Parent property, disconnects all connections, and calls Destroy() on all children. |
| Instance:destroy | () | |
| Instance:FindFirstAncestor | Instance? | Returns the first ancestor of the Instance whose Instance.Name is equal to the given name. |
| Instance:FindFirstAncestorOfClass | Instance? | Returns the first ancestor of the Instance whose Object.ClassName is equal to the given className. |
| Instance:FindFirstAncestorWhichIsA | Instance? | Returns the first ancestor of the Instance for whom Object:IsA() returns true for the given className. |
| Instance:FindFirstChild | Instance? | Returns the first child of the Instance found with the given name. |
| Instance:findFirstChild | Instance | |
| Instance:FindFirstChildOfClass | Instance? | Returns the first child of the Instance whose ClassName is equal to the given class name. |
| Instance:FindFirstChildWhichIsA | Instance? | Returns the first child of the Instance for whom Object:IsA() returns true for the given className. |
| Instance:FindFirstDescendant | Instance? | Returns the first descendant found with the given Instance.Name. |
| Instance:GetActor | Actor? | Returns the Actor associated with the Instance, if any. |
| Instance:GetAttribute | Variant | Returns the value which has been assigned to the given attribute name. |
| Instance:GetAttributeChangedSignal | RBXScriptSignal | Returns an event that fires when the given attribute changes. |
| Instance:GetAttributes | Dictionary | Returns a dictionary of the instance's attributes. |
| Instance:GetChildren | Instances | Returns an array containing all of the instance's children. |
| Instance:getChildren | Instances | |
| Instance:GetDebugId | string | Returns a coded string of the debug ID used internally by Roblox. |
| Instance:GetDescendants | Instances | Returns an array containing all of the descendants of the instance. |
| Instance:GetFullName | string | Returns a string describing the instance's ancestry. |
| Instance:GetStyled | Variant | Returns the styled or explicitly modified value of the specified property, or else the default property value if it hasn't been styled/modified. |
| Instance:GetStyledPropertyChangedSignal | RBXScriptSignal | Returns an event that fires when the given style property changes on the instance. |
| Instance:GetTags | Array | Gets an array of all tags applied to the instance. |
| Instance:HasTag | boolean | Check whether the instance has a given tag. |
| Instance:IsAncestorOf | boolean | Returns true if an Instance is an ancestor of the given descendant. |
| Instance:IsDescendantOf | boolean | Returns true if an Instance is a descendant of the given ancestor. |
| Instance:isDescendantOf | boolean | |
| Instance:IsPropertyModified | boolean | Returns true if the value stored in the specified property is not equal to the code-instantiated default. |
| Instance:QueryDescendants | Instances | Returns an array containing all descendants of the instance that match the selector string. |
| Instance:Remove | () | Sets the object's Parent to nil, and does the same for all its descendants. |
| Instance:remove | () | |
| Instance:RemoveTag | () | Removes a tag from the instance. |
| Instance:ResetPropertyToDefault | () | Resets a property to its default value. |
| Instance:SetAttribute | () | Sets the attribute with the given name to the given value. |
| Instance:WaitForChild | Instance | Returns the child of the Instance with the given name. If the child does not exist, it will yield the current thread until it does. |
Inherited from Object
| Name | Type / Returns | Description |
|---|---|---|
| Object:GetPropertyChangedSignal | RBXScriptSignal | Get an event that fires when a given property of the object changes. |
| Object:IsA | boolean | Returns true if an object's class matches or inherits from a given class. |
| Object:isA | boolean |
Events
Inherited from BasePart
| Name | Type / Returns | Description |
|---|---|---|
| BasePart.LocalSimulationTouched | Fires on the local client when another part comes in contact with this part. | |
| BasePart.OutfitChanged | Fires when the part's appearance changes due to a Shirt. | |
| BasePart.StoppedTouching | Fires on the local client when a part stops touching another part. | |
| BasePart.Touched | Fires when a part touches another part as a result of physical movement. | |
| BasePart.TouchEnded | Fires when a part stops touching another part as a result of physical movement. |
Inherited from Instance
| Name | Type / Returns | Description |
|---|---|---|
| Instance.AncestryChanged | Fires when the Instance.Parent property of this object or one of its ancestors is changed. | |
| Instance.AttributeChanged | Fires whenever an attribute is changed on the Instance. | |
| Instance.ChildAdded | Fires after an object is parented to this Instance. | |
| Instance.childAdded | ||
| Instance.ChildRemoved | Fires after a child is removed from this Instance. | |
| Instance.DescendantAdded | Fires after a descendant is added to the Instance. | |
| Instance.DescendantRemoving | Fires immediately before a descendant of the Instance is removed. | |
| Instance.Destroying | Fires immediately before (or is deferred until after) the instance is destroyed via Instance:Destroy(). | |
| Instance.StyledPropertiesChanged | Fires whenever any style property is changed on the instance, including when a property is set to nil. |
Inherited from Object
| Name | Type / Returns | Description |
|---|---|---|
| Object.Changed | Fires immediately after a property of the object changes, with some limitations. |