Source: Roblox Creator Hub · CC BY 4.0 · View source · Code samples: MIT Imported 2026-10-03. Formatting adapted for this site.
TriangleMeshPart
Inherits from: BasePart → PVInstance → Instance → Object
TriangleMeshPart is an abstract intermediate class from which MeshPart and PartOperation inherit. It was created to consolidate the management of physical geometry properties between the two sub-classes. It implements the read-only CollisionFidelity and CollisionPrecision.
Inherits from: BasePart
Descendants: MeshPart, PartOperation
Memory category: Instances
Tags: NotCreatable, NotBrowsable
Properties
| 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 |
TriangleMeshPart.CollisionFidelity
This property determines how the collision model of the TriangleMeshPart relates to the actual geometry of the mesh. This property cannot be read or manipulated by scripts during runtime.
See here for a visual representation of the various options.
| Field | Value |
|---|---|
| type | CollisionFidelity |
| tags | ["NotReplicated"] |
| security | {"read":"None","write":"None"} |
| thread safety | ReadSafe |
| category | Collision |
| serialization | {"can_load":true,"can_save":false} |
| capabilities | ["Basic"] |
TriangleMeshPart.CollisionPrecision
This property describes the precision-to-performance tradeoff of the part's collision geometry when TriangleMeshPart.CollisionFidelity is set to CollisionFidelity.Tunable. A value of 0 favors maximum performance with the simplest collision mesh, while a value of 1 favors maximum precision with a collision mesh that closely matches the visual mesh.
| Field | Value |
|---|---|
| type | float |
| tags | ["NotReplicated"] |
| security | {"read":"None","write":"PluginSecurity"} |
| thread safety | ReadSafe |
| category | Collision |
| serialization | {"can_load":true,"can_save":false} |
| capabilities | ["Basic"] |
TriangleMeshPart.FluidFidelity
Controls which geometric representation the physics engine uses when it computes aerodynamic (fluid) forces and torques for the part. It defaults to FluidFidelity.Automatic, in which the engine selects a representation on your behalf.
FluidFidelity.Automatic— the engine chooses the representation; it currently evaluates fluid forces against the part's collision geometry.FluidFidelity.UseCollisionGeometry— fluid forces are evaluated against the part's collision geometry, matching the shape used for collision detection.FluidFidelity.UsePreciseGeometry— fluid forces are evaluated against the part's precise mesh geometry, producing more accurate forces at a higher computational cost.
Because this property has plugin-level write security, it is configured in Studio rather than assigned by runtime scripts.
This setting only affects a part while fluid forces are active for the place, which is governed by Workspace.FluidForces (an FluidForces value that defaults to Default; setting it to Experimental enables the aerodynamic force model). When fluid forces are not applied to the part, the chosen fidelity has no effect.
| Field | Value |
|---|---|
| type | FluidFidelity |
| tags | ["NotReplicated"] |
| security | {"read":"None","write":"None"} |
| thread safety | ReadSafe |
| category | Behavior |
| serialization | {"can_load":true,"can_save":false} |
| capabilities | ["Basic"] |
TriangleMeshPart.MeshSize
This read-only property reports the size of the part's mesh geometry when it was loaded, as width, height, and depth in studs. It is not affected by resizing the part through BasePart.Size, so dividing BasePart.Size by MeshSize gives the scale factor currently applied to the mesh's visual and physical geometry.
| Field | Value |
|---|---|
| type | Vector3 |
| tags | ["ReadOnly","NotReplicated"] |
| security | {"read":"None","write":"None"} |
| thread safety | ReadSafe |
| category | Data |
| serialization | {"can_load":false,"can_save":false} |
| capabilities | ["Basic"] |
Methods
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. |