BasePart
What Part and MeshPart share: a place, a size, a colour, a look, and Roblox-style physics, so a part can fall, collide and stack.
BasePart is abstract. CFrame and Size place it, Color tints it, and TexturePack points at the TexturePack that holds the rest of its look; Properties > Surface > Edit surface nodes opens that pack in the Nodes window. Parts are Anchored by default: untick Anchored and it falls, collides and stacks in Play (F5) and in renders. PivotTo, GetPivot and ApplyImpulse work as in Roblox. In scripts, Transparency, Roughness and the other old look fields forward to its TexturePack.
Properties
Physics
| Name | Type | Default | Description |
|---|---|---|---|
| Anchored | boolean | true | Untick it and the part falls onto the parts of its DataModel when you press Play or render. |
| CanCollide | boolean | true | Off, an unanchored part falls through everything and an anchored one isn't in the world. |
| Massless | boolean | false | Gives the part no mass in its assembly, unless every part in it is massless. |
Physics Details
| AssemblyAngularVelocity | Vector3 | 0, 0, 0 | The starting angular velocity; in Play, scripts read the velocity now and a write sets it. |
| AssemblyLinearVelocity | Vector3 | 0, 0, 0 | The starting velocity; in Play, scripts read the velocity now and a write sets it. |
| Density | number | 0.7 Properties window only; 0.0001 to 100 | |
| Friction | number | 0.3 Properties window only; 0 to 2 | Combines with the touching part's friction like Roblox, as a weighted average of the two. |
| Elasticity | number | 0.5 Properties window only; 0 to 1 | Combines with the touching part's elasticity like Roblox, as a weighted average of the two. |
| FrictionWeight | number | 1 Properties window only; 0 to 100 | |
| ElasticityWeight | number | 1 Properties window only; 0 to 100 |
Scripts
| AssemblyMass | number | scripts only | |
| AssemblyRootPart | BasePart | scripts only | |
| CustomPhysicalProperties | PhysicalProperties? | scripts only | Density, friction, elasticity and their weights from PhysicalProperties.new; nil means Plastic's. |
| WorldCFrame | CFrame | scripts only | The part's CFrame in world space; its CFrame is the local one. |
Transform
| CFrame | CFrame | Relative to the chain of NullObjects above the part, up to its DataModel. | |
| Orientation | Vector3 | The rotation half of the part's CFrame, hidden from Properties. | |
| Position | Vector3 | Kept hidden beside the part's CFrame; Properties never shows it, but old wires into it keep working. | |
| Size | Vector3 | 4, 1, 2 | A MeshPart's mesh is normalised to its bounding box and stretched to this Size, like Roblox. |
Appearance
| Color | Color3 | 0.639, 0.635, 0.647 | Solid multiplies the part's texture by it, so a textured part at the default grey shows its texture at 64%. |
Pivot
Surface
| TexturePack | TexturePack | Picks the part's TexturePack; the row notes whether only this part uses it or it is shared by several parts. | |
| EditSurfaceNodes | button | Properties window only | Opens the Nodes window on the part's pack, making the pack if needed. |
| Surface/Texture | Color3 | 1, 1, 1 Properties window only | Acts exactly like a flat image of this colour; Solid multiplies it by the part's Color. |
| Surface/NormalMap | Vector3 | 0.5, 0.5, 1 Properties window only | Tilts a MeshPart's surface through its tangents; plain Parts have none, so it does nothing there. |
| Surface/RoughnessMap | number | 0.5 Properties window only; 0 to 1 | |
| Surface/MetalnessMap | number | 0 Properties window only; 0 to 1 | |
| Surface/EmissionMap | number | 0 Properties window only; 0 to 1000 | |
| Surface/TransparencyMap | number | 0 Properties window only; 0 to 1 | With an image, the part is see-through where the image is white. |
| Surface/TransmissionMap | number | 0 Properties window only; 0 to 1 | |
| Surface/IORMap | number | 1.45 Properties window only; 1 to 3 | An image feeds it through its red channel: IOR is 1 plus twice the red, so 0 to 1 covers 1 to 3. |
| Surface/Material | Material | Properties window only | The Material of the part's TexturePack, edited on the part; the first edit makes a pack if the part has none. |
Methods
| Name | Arguments | Returns | Description |
|---|---|---|---|
| ApplyAngularImpulse | (impulse: Vector3) | () | |
| ApplyImpulse | (impulse: Vector3) | () | |
| ApplyImpulseAtPosition | (impulse: Vector3, position: Vector3) | () | |
| GetMass | () | number | |
| GetPivot | () | CFrame | |
| PivotTo | (targetCFrame: CFrame) | () | Sets the part's CFrame to the target times the inverse of its PivotOffset, or exactly the target with no offset. |
Deprecated 7
| Name | Type | Instead | Description |
|---|---|---|---|
| Emission | number | forwards to its TexturePack | |
| IOR | number | forwards to its TexturePack | |
| Material | Material | forwards to its TexturePack | Kept so old scripts keep working; it forwards to the Material of the part's TexturePack. |
| Metallic | number | forwards to its TexturePack | |
| Roughness | number | forwards to its TexturePack | |
| Transmission | number | forwards to its TexturePack | |
| Transparency | number | forwards to its TexturePack | Forwards to the TransparencyValue of the part's TexturePack, like the other old part names. |
From Instance 22
Subclasses
