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

NameTypeDefaultDescription
AnchoredbooleantrueUntick it and the part falls onto the parts of its DataModel when you press Play or render.
CanCollidebooleantrueOff, an unanchored part falls through everything and an anchored one isn't in the world.
MasslessbooleanfalseGives the part no mass in its assembly, unless every part in it is massless.

Physics Details

AssemblyAngularVelocityVector30, 0, 0The starting angular velocity; in Play, scripts read the velocity now and a write sets it.
AssemblyLinearVelocityVector30, 0, 0The starting velocity; in Play, scripts read the velocity now and a write sets it.
Densitynumber0.7
Properties window only; 0.0001 to 100
Frictionnumber0.3
Properties window only; 0 to 2
Combines with the touching part's friction like Roblox, as a weighted average of the two.
Elasticitynumber0.5
Properties window only; 0 to 1
Combines with the touching part's elasticity like Roblox, as a weighted average of the two.
FrictionWeightnumber1
Properties window only; 0 to 100
ElasticityWeightnumber1
Properties window only; 0 to 100

Scripts

AssemblyMassnumberscripts only
AssemblyRootPartBasePartscripts only
CustomPhysicalPropertiesPhysicalProperties?scripts onlyDensity, friction, elasticity and their weights from PhysicalProperties.new; nil means Plastic's.
WorldCFrameCFramescripts onlyThe part's CFrame in world space; its CFrame is the local one.

Transform

CFrameCFrameRelative to the chain of NullObjects above the part, up to its DataModel.
OrientationVector3The rotation half of the part's CFrame, hidden from Properties.
PositionVector3Kept hidden beside the part's CFrame; Properties never shows it, but old wires into it keep working.
SizeVector34, 1, 2A MeshPart's mesh is normalised to its bounding box and stretched to this Size, like Roblox.

Appearance

ColorColor30.639, 0.635, 0.647Solid multiplies the part's texture by it, so a textured part at the default grey shows its texture at 64%.

Pivot

PivotOffsetCFrameThe part's pivot is its CFrame times this offset.

Surface

TexturePackTexturePackPicks the part's TexturePack; the row notes whether only this part uses it or it is shared by several parts.
EditSurfaceNodesbuttonProperties window onlyOpens the Nodes window on the part's pack, making the pack if needed.
Surface/TextureColor31, 1, 1
Properties window only
Acts exactly like a flat image of this colour; Solid multiplies it by the part's Color.
Surface/NormalMapVector30.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/RoughnessMapnumber0.5
Properties window only; 0 to 1
Surface/MetalnessMapnumber0
Properties window only; 0 to 1
Surface/EmissionMapnumber0
Properties window only; 0 to 1000
Surface/TransparencyMapnumber0
Properties window only; 0 to 1
With an image, the part is see-through where the image is white.
Surface/TransmissionMapnumber0
Properties window only; 0 to 1
Surface/IORMapnumber1.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/MaterialMaterialProperties window onlyThe Material of the part's TexturePack, edited on the part; the first edit makes a pack if the part has none.

Methods

NameArgumentsReturnsDescription
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
NameTypeInsteadDescription
Emissionnumberforwards to its TexturePack
IORnumberforwards to its TexturePack
MaterialMaterialforwards to its TexturePackKept so old scripts keep working; it forwards to the Material of the part's TexturePack.
Metallicnumberforwards to its TexturePack
Roughnessnumberforwards to its TexturePack
Transmissionnumberforwards to its TexturePack
Transparencynumberforwards to its TexturePackForwards to the TransparencyValue of the part's TexturePack, like the other old part names.
From Instance 22

Subclasses