13 min read

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

NameType / ReturnsDescription
PartOperation.RenderFidelityRenderFidelityThe level of detail used to render the solid modeled part.
PartOperation.SmoothingAnglefloatAn angle in degrees which affects the smooth shading of a solid modeled part.
PartOperation.TriangleCountintThe number of polygons in this solid model.
PartOperation.UsePartColorbooleanSets whether the PartOperation can be recolored using inherited color properties.

Inherited from TriangleMeshPart

NameType / ReturnsDescription
TriangleMeshPart.CollisionFidelityCollisionFidelityDetermines the level of detail the part's physics will adhere to its mesh.
TriangleMeshPart.CollisionPrecisionfloatQuantifies how precise or performant a CollisionFidelity.Tunable collision geometry is, from 0 to 1.
TriangleMeshPart.FluidFidelityFluidFidelityDetermines the geometric representation used to compute aerodynamic forces and torques.
TriangleMeshPart.MeshSizeVector3The original size of the part's source mesh geometry, before any scaling applied through BasePart.Size.

Inherited from BasePart

NameType / ReturnsDescription
BasePart.AnchoredbooleanDetermines whether a part is immovable by physics.
BasePart.AssemblyAngularVelocityVector3The angular velocity of the part's assembly.
BasePart.AssemblyCenterOfMassVector3The center of mass of the part's assembly in world space.
BasePart.AssemblyLinearVelocityVector3The linear velocity of the part's assembly.
BasePart.AssemblyMassfloatThe total mass of the part's assembly.
BasePart.AssemblyRootPartBasePartA reference to the root part of the assembly.
BasePart.AudioCanCollidebooleanDetermines whether the part will physically interact with audio simulation, similar to CastShadow for lighting.
BasePart.BackParamAfloatDetermines the first parameter for the SurfaceType on the Back face of a part.
BasePart.BackParamBfloatDetermines the second parameter for the SurfaceType on the Back face of a part.
BasePart.BackSurfaceSurfaceTypeDetermines the type of surface for the back face of a part.
BasePart.BackSurfaceInputInputTypeDetermines the kind of input for the Back face of a part.
BasePart.BottomParamAfloatDetermines the first parameter for the SurfaceType on the Bottom face of a part.
BasePart.BottomParamBfloatDetermines the second parameter for the SurfaceType on the Bottom face of a part.
BasePart.BottomSurfaceSurfaceTypeDetermines the type of surface for the bottom face of a part.
BasePart.BottomSurfaceInputInputTypeDetermines the kind of input for the Bottom face of a part.
BasePart.BrickColorBrickColorDetermines the color of a part.
BasePart.brickColorBrickColor
BasePart.CanCollidebooleanDetermines whether a part may collide with other parts.
BasePart.CanQuerybooleanDetermines whether the part is considered during spatial query operations.
BasePart.CanTouchbooleanDetermines if Touched and TouchEnded events fire on the part.
BasePart.CastShadowbooleanDetermines whether or not a part casts a shadow.
BasePart.CenterOfMassVector3Describes the world position in which a part's center of mass is located.
BasePart.CFrameCFrameDetermines the position and orientation of the BasePart in the world.
BasePart.CollisionGroupstringDescribes the name of a part's collision group.
BasePart.CollisionGroupIdintDescribes the automatically set ID number of a part's collision group.
BasePart.ColorColor3Determines the color of a part.
BasePart.CurrentPhysicalPropertiesPhysicalPropertiesIndicates the current physical properties of the part.
BasePart.CustomPhysicalPropertiesPhysicalPropertiesDetermines several physical properties of a part.
BasePart.ElasticityfloatUsed to control the Elasticity of the part, but it no longer does anything.
BasePart.EnableFluidForcesbooleanUsed to enable or disable aerodynamic forces on parts and assemblies.
BasePart.ExtentsCFrameCFrameThe CFrame of the physical extents of the BasePart.
BasePart.ExtentsSizeVector3The actual physical size of the BasePart as regarded by the physics engine.
BasePart.FrictionfloatUsed to control the Friction of the part, but now it no longer does anything.
BasePart.FrontParamAfloatDetermines the first parameter for the SurfaceType on the Front face of a part.
BasePart.FrontParamBfloatDetermines the second parameter for the SurfaceType on the Front face of a part.
BasePart.FrontSurfaceSurfaceTypeDetermines the type of surface for the front face of a part.
BasePart.FrontSurfaceInputInputTypeDetermines the kind of input for the Front face of a part (-Z direction).
BasePart.LeftParamAfloatDetermines the first parameter for the SurfaceType on the Left face of a part.
BasePart.LeftParamBfloatDetermines the second parameter for the SurfaceType on the Left face of a part.
BasePart.LeftSurfaceSurfaceTypeDetermines the type of surface for the left face of a part.
BasePart.LeftSurfaceInputInputTypeDetermines the kind of input for the Left face of a part.
BasePart.LocalTransparencyModifierfloatDetermines a multiplier for BasePart.Transparency that is only visible to the local client.
BasePart.LockedbooleanDetermines whether a part is selectable in Studio.
BasePart.MassfloatDescribes the mass of the part, the product of its density and volume.
BasePart.MasslessbooleanDetermines whether the part contributes to the total mass or inertia of its rigid body.
BasePart.MaterialMaterialDetermines the texture and default physical properties of a part.
BasePart.MaterialVariantstringThe name of MaterialVariant.
BasePart.OrientationVector3Describes the rotation of the part in the world.
BasePart.PivotOffsetCFrameSpecifies the offset of the part's pivot from its CFrame.
BasePart.PositionVector3Describes the position of the part in the world.
BasePart.ReceiveAgefloatTime since last recorded physics update.
BasePart.ReflectancefloatDetermines how much a part reflects the skybox.
BasePart.ResizeableFacesFacesDescribes the faces on which a part may be resized.
BasePart.ResizeIncrementintDescribes the smallest change in size allowable by the Resize() method.
BasePart.RightParamAfloatDetermines the first parameter for the SurfaceType on the Right face of a part.
BasePart.RightParamBfloatDetermines the second parameter for the SurfaceType on the Right face of a part.
BasePart.RightSurfaceSurfaceTypeDetermines the type of surface for the right face of a part.
BasePart.RightSurfaceInputInputTypeDetermines the kind of input for the Right face of a part (-X direction).
BasePart.RootPriorityintThe main rule in determining the root part of an assembly.
BasePart.RotationVector3The rotation of the part in degrees for the three axes.
BasePart.RotVelocityVector3Determines a part's change in orientation over time.
BasePart.SizeVector3Determines the dimensions of a part (length, height, width).
BasePart.SpecificGravityfloatThe ratio of the part's density to the density of water determined by the BasePart.Material.
BasePart.TopParamAfloatDetermines the first parameter for the SurfaceType on the Top face of a part.
BasePart.TopParamBfloatDetermines the second parameter for the SurfaceType on the Top face of a part.
BasePart.TopSurfaceSurfaceTypeDetermines the type of surface for the top face of a part.
BasePart.TopSurfaceInputInputTypeDetermines the kind of input for the Top face of a part (+Y direction).
BasePart.TransparencyfloatDetermines how much a part can be seen through (the inverse of part opacity).
BasePart.VelocityVector3Determines a part's change in position over time.

Inherited from PVInstance

NameType / ReturnsDescription
PVInstance.OriginCFrameEditor-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 OffsetCFrameEditor-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

NameType / ReturnsDescription
Instance.ArchivablebooleanDetermines if an Instance and its descendants can be cloned using Instance:Clone(), and can be saved/published.
Instance.archivableboolean
Instance.CapabilitiesSecurityCapabilitiesThe set of capabilities allowed to be used for scripts inside this container.
Instance.IsInSandboxbooleanIndicates whether the instance is inside a sandboxed container.
Instance.NamestringA non-unique identifier of the Instance.
Instance.ParentInstanceDetermines the hierarchical parent of the Instance.
Instance.PredictionModePredictionModeReflects the client-side prediction mode applied to the instance under server-authoritative physics.
Instance.RobloxLockedbooleanA deprecated property that used to protect CoreGui objects.
Instance.SandboxedbooleanWhen enabled, the instance can only access abilities in its Capabilities list.
Instance.UniqueIdUniqueIdA unique identifier for the instance.

Inherited from Object

NameType / ReturnsDescription
Object.ClassNamestringA read-only string representing the class this Object belongs to.
Object.classNamestring

Methods

Inherited from PartOperation

NameType / ReturnsDescription
PartOperation:SubstituteGeometry()Substitutes the geometry of this PartOperation with the geometry of another PartOperation.

Inherited from BasePart

NameType / ReturnsDescription
BasePart:AngularAccelerationToTorqueVector3Returns 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:CanCollideWithbooleanReturns whether the parts can collide with each other.
BasePart:CanSetNetworkOwnershipTupleChecks whether you can set a part's network ownership.
BasePart:GetClosestPointOnSurfaceVector3Returns the closest point on the part's surface to the given point.
BasePart:GetConnectedPartsListReturns a table of parts connected to the object by any kind of rigid joint.
BasePart:GetJointsInstancesReturn all Joints or Constraints that is connected to this Part.
BasePart:GetMassfloatReturns the value of the Mass property.
BasePart:getMassfloat
BasePart:GetNetworkOwnerInstanceReturns the current player who is the network owner of this part, or nil in case of the server.
BasePart:GetNetworkOwnershipAutobooleanReturns true if the game engine automatically decides the network owner for this part.
BasePart:GetNoCollisionConstraintsInstancesReturns the enabled NoCollisionConstraint objects currently registered for this part in its physics world.
BasePart:GetRenderCFrameCFrameOBSOLETE. Returns a CFrame describing where the part is being rendered at.
BasePart:GetRootPartInstanceReturns the base part of an assembly of parts.
BasePart:GetTouchingPartsInstancesReturns a table of all BasePart.CanCollide true parts that intersect with this part.
BasePart:GetVelocityAtPositionVector3Returns the linear velocity of the part's assembly at the given position relative to this part.
BasePart:IntersectAsyncInstanceCreates a new IntersectOperation from the overlapping geometry of the part and the other parts in the given array.
BasePart:IsGroundedbooleanReturns 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:ResizebooleanChanges the size of an object just like using the Studio resize tool.
BasePart:resizeboolean
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:SubtractAsyncInstanceCreates a new UnionOperation from the part, minus the geometry occupied by the parts in the given array.
BasePart:TorqueToAngularAccelerationVector3Returns the angular acceleration that would result from applying a given torque to this part's assembly, optionally accounting for gyroscopic effects.
BasePart:UnionAsyncInstanceCreates a new UnionOperation from the part, plus the geometry occupied by the parts in the given array.

Inherited from PVInstance

NameType / ReturnsDescription
PVInstance:GetPivotCFrameGets 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

NameType / ReturnsDescription
Instance:AddTag()Applies a tag to the instance.
Instance:childrenInstancesReturns an array of the object's children.
Instance:ClearAllChildren()This method destroys all of an instance's children.
Instance:CloneInstanceCreate a copy of an instance and all its descendants, ignoring instances that are not Archivable.
Instance:cloneInstance
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:FindFirstAncestorInstance?Returns the first ancestor of the Instance whose Instance.Name is equal to the given name.
Instance:FindFirstAncestorOfClassInstance?Returns the first ancestor of the Instance whose Object.ClassName is equal to the given className.
Instance:FindFirstAncestorWhichIsAInstance?Returns the first ancestor of the Instance for whom Object:IsA() returns true for the given className.
Instance:FindFirstChildInstance?Returns the first child of the Instance found with the given name.
Instance:findFirstChildInstance
Instance:FindFirstChildOfClassInstance?Returns the first child of the Instance whose ClassName is equal to the given class name.
Instance:FindFirstChildWhichIsAInstance?Returns the first child of the Instance for whom Object:IsA() returns true for the given className.
Instance:FindFirstDescendantInstance?Returns the first descendant found with the given Instance.Name.
Instance:GetActorActor?Returns the Actor associated with the Instance, if any.
Instance:GetAttributeVariantReturns the value which has been assigned to the given attribute name.
Instance:GetAttributeChangedSignalRBXScriptSignalReturns an event that fires when the given attribute changes.
Instance:GetAttributesDictionaryReturns a dictionary of the instance's attributes.
Instance:GetChildrenInstancesReturns an array containing all of the instance's children.
Instance:getChildrenInstances
Instance:GetDebugIdstringReturns a coded string of the debug ID used internally by Roblox.
Instance:GetDescendantsInstancesReturns an array containing all of the descendants of the instance.
Instance:GetFullNamestringReturns a string describing the instance's ancestry.
Instance:GetStyledVariantReturns the styled or explicitly modified value of the specified property, or else the default property value if it hasn't been styled/modified.
Instance:GetStyledPropertyChangedSignalRBXScriptSignalReturns an event that fires when the given style property changes on the instance.
Instance:GetTagsArrayGets an array of all tags applied to the instance.
Instance:HasTagbooleanCheck whether the instance has a given tag.
Instance:IsAncestorOfbooleanReturns true if an Instance is an ancestor of the given descendant.
Instance:IsDescendantOfbooleanReturns true if an Instance is a descendant of the given ancestor.
Instance:isDescendantOfboolean
Instance:IsPropertyModifiedbooleanReturns true if the value stored in the specified property is not equal to the code-instantiated default.
Instance:QueryDescendantsInstancesReturns 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:WaitForChildInstanceReturns 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

NameType / ReturnsDescription
Object:GetPropertyChangedSignalRBXScriptSignalGet an event that fires when a given property of the object changes.
Object:IsAbooleanReturns true if an object's class matches or inherits from a given class.
Object:isAboolean

Events

Inherited from BasePart

NameType / ReturnsDescription
BasePart.LocalSimulationTouchedFires on the local client when another part comes in contact with this part.
BasePart.OutfitChangedFires when the part's appearance changes due to a Shirt.
BasePart.StoppedTouchingFires on the local client when a part stops touching another part.
BasePart.TouchedFires when a part touches another part as a result of physical movement.
BasePart.TouchEndedFires when a part stops touching another part as a result of physical movement.

Inherited from Instance

NameType / ReturnsDescription
Instance.AncestryChangedFires when the Instance.Parent property of this object or one of its ancestors is changed.
Instance.AttributeChangedFires whenever an attribute is changed on the Instance.
Instance.ChildAddedFires after an object is parented to this Instance.
Instance.childAdded
Instance.ChildRemovedFires after a child is removed from this Instance.
Instance.DescendantAddedFires after a descendant is added to the Instance.
Instance.DescendantRemovingFires immediately before a descendant of the Instance is removed.
Instance.DestroyingFires immediately before (or is deferred until after) the instance is destroyed via Instance:Destroy().
Instance.StyledPropertiesChangedFires whenever any style property is changed on the instance, including when a property is set to nil.

Inherited from Object

NameType / ReturnsDescription
Object.ChangedFires immediately after a property of the object changes, with some limitations.