Class
BasePart
NotCreatableNotBrowsable
The abstract base class for in-world objects that physically interact.
BasePart is an abstract base class for in-world objects that render
and are physically simulated while in the Workspace. There are several
implementations of BasePart, the most common being Part and
MeshPart. Others include WedgePart, SpawnLocation, and
the singleton Terrain object. Generally, when documentation refers to
a "part," most BasePart implementations will work and not just
Part.
For information on how BaseParts are grouped into simulated
rigid bodies, see Assemblies.
There are many different objects that interact with BasePart (other
than Terrain), including:
- Several
BasePartsmay be grouped within aModeland moved at the same time usingPVInstance:PivotTo(). See Models. - A
Decalapplies a stretched image texture to the faces of aBasePart, while aTextureapplies a tiled image texture to the faces. See Textures and Decals. - A
SurfaceGuirendersGuiObjectson the face of a part. See In-Experience UI Containers. Attachmentscan be added to aBasePartto specifyCFramesrelative to the part. These are often used by physicalConstraintobjects as outlined in Mechanical Constraints and Mover Constraints.ParticleEmitterobjects emit particles uniformly in the volume of theBasePartto which they are parented. See Particle Emitters.- Light objects like
PointLightemit light from the center of aBasePartas illustrated in Light Sources. - If parented to a
Tooland given the name Handle, aBasePartcan be held by characters. See In-Experience Tools.
Properties 69#
Anchoredboolean | Determines whether a part is immovable by physics.ReadSafe |
AssemblyAngularVelocityVector3 | The angular velocity of the part's assembly.ReadSafeNotReplicated |
AssemblyCenterOfMassVector3 | The center of mass of the part's assembly in world space.ReadSafeReadOnlyNotReplicated |
AssemblyLinearVelocityVector3 | The linear velocity of the part's assembly.ReadSafeNotReplicated |
AssemblyMassfloat | The total mass of the part's assembly.ReadSafeReadOnlyNotReplicated |
AssemblyRootPartBasePart | A reference to the root part of the assembly.ReadSafeReadOnlyNotReplicated |
AudioCanCollideboolean | Determines whether the part will physically interact with audio
simulation, similar to CastShadow for
lighting.ReadSafe |
BackParamAfloat | Determines the first parameter for the SurfaceType on the Back face of a part.ReadSafeHidden |
BackParamBfloat | Determines the second parameter for the SurfaceType on the Back face of a part.ReadSafeHidden |
BackSurfaceSurfaceType | Determines the type of surface for the back face of a part.ReadSafe |
BackSurfaceInputInputType | Determines the kind of input for the Back face of a part.ReadSafeHidden |
BottomParamAfloat | Determines the first parameter for the SurfaceType on the Bottom face of a part.ReadSafeHidden |
BottomParamBfloat | Determines the second parameter for the SurfaceType on the Bottom face of a part.ReadSafeHidden |
BottomSurfaceSurfaceType | Determines the type of surface for the bottom face of a part.ReadSafe |
BottomSurfaceInputInputType | Determines the kind of input for the Bottom face of a part.ReadSafeHidden |
BrickColorBrickColor | Determines the color of a part.ReadSafeNotReplicated |
brickColorBrickColor | ReadSafeDeprecatedNotReplicated |
CanCollideboolean | Determines whether a part may collide with other parts.ReadSafe |
CanQueryboolean | Determines whether the part is considered during spatial query operations.ReadSafe |
CanTouchboolean | Determines if Touched and
TouchEnded events fire on the part.ReadSafe |
CastShadowboolean | Determines whether or not a part casts a shadow.ReadSafe |
CenterOfMassVector3 | Describes the world position in which a part's center of mass is located.ReadSafeReadOnlyNotReplicated |
CFrameCFrame | Determines the position and orientation of the BasePart in the
world.ReadSafe |
CollisionGroupstring | Describes the name of a part's collision group.ReadSafeNotReplicated |
CollisionGroupIdint | Describes the automatically set ID number of a part's collision group.ReadSafeNotReplicated |
ColorColor3 | Determines the color of a part.ReadSafeNotReplicated |
CurrentPhysicalPropertiesPhysicalProperties | Indicates the current physical properties of the part.ReadSafeReadOnlyNotReplicated |
CustomPhysicalPropertiesPhysicalProperties | Determines several physical properties of a part.ReadSafe |
Elasticityfloat | Used to control the Elasticity of the part, but it no longer does anything.ReadSafeDeprecatedHiddenNotReplicated |
EnableFluidForcesboolean | Used to enable or disable aerodynamic forces on parts and assemblies.ReadSafe |
ExtentsCFrameCFrame | The CFrame of the physical extents of the BasePart.ReadSafeReadOnlyNotReplicated |
ExtentsSizeVector3 | The actual physical size of the BasePart as regarded by the
physics engine.ReadSafeReadOnlyNotReplicated |
Frictionfloat | Used to control the Friction of the part, but now it no longer does anything.ReadSafeDeprecatedHiddenNotReplicated |
FrontParamAfloat | Determines the first parameter for the SurfaceType on the Front face of a part.ReadSafeHidden |
FrontParamBfloat | Determines the second parameter for the SurfaceType on the Front face of a part.ReadSafeHidden |
FrontSurfaceSurfaceType | Determines the type of surface for the front face of a part.ReadSafe |
FrontSurfaceInputInputType | Determines the kind of input for the Front face of a part (-Z direction).ReadSafeHidden |
LeftParamAfloat | Determines the first parameter for the SurfaceType on the Left face of a part.ReadSafeHidden |
LeftParamBfloat | Determines the second parameter for the SurfaceType on the Left face of a part.ReadSafeHidden |
LeftSurfaceSurfaceType | Determines the type of surface for the left face of a part.ReadSafe |
LeftSurfaceInputInputType | Determines the kind of input for the Left face of a part.ReadSafeHidden |
LocalTransparencyModifierfloat | Determines a multiplier for BasePart.Transparency that is only
visible to the local client.ReadSafeHiddenNotReplicated |
Lockedboolean | Determines whether a part is selectable in Studio.ReadSafe |
Massfloat | Describes the mass of the part, the product of its density and volume.ReadSafeReadOnlyNotReplicated |
Masslessboolean | Determines whether the part contributes to the total mass or inertia of its rigid body.ReadSafe |
MaterialMaterial | Determines the texture and default physical properties of a part.ReadSafe |
MaterialVariantstring | The name of MaterialVariant.ReadSafeNotReplicated |
OrientationVector3 | Describes the rotation of the part in the world.ReadSafeHiddenNotReplicated |
PivotOffsetCFrame | Specifies the offset of the part's pivot from its CFrame.ReadSafe |
PositionVector3 | Describes the position of the part in the world.ReadSafeHiddenNotReplicated |
ReceiveAgefloat | Time since last recorded physics update.ReadSafeHiddenReadOnlyNotReplicated |
Reflectancefloat | Determines how much a part reflects the skybox.ReadSafe |
ResizeableFacesFaces | Describes the faces on which a part may be resized.ReadSafeReadOnlyNotReplicated |
ResizeIncrementint | Describes the smallest change in size allowable by the
Resize() method.ReadSafeReadOnlyNotReplicated |
RightParamAfloat | Determines the first parameter for the SurfaceType on the Right face of a part.ReadSafeHidden |
RightParamBfloat | Determines the second parameter for the SurfaceType on the Right face of a part.ReadSafeHidden |
RightSurfaceSurfaceType | Determines the type of surface for the right face of a part.ReadSafe |
RightSurfaceInputInputType | Determines the kind of input for the Right face of a part (-X direction).ReadSafeHidden |
RootPriorityint | The main rule in determining the root part of an assembly.ReadSafe |
RotationVector3 | The rotation of the part in degrees for the three axes.ReadSafeNotReplicated |
RotVelocityVector3 | Determines a part's change in orientation over time.ReadSafeDeprecatedHidden |
SizeVector3 | Determines the dimensions of a part (length, height, width).ReadSafeNotReplicated |
SpecificGravityfloat | The ratio of the part's density to the density of water determined by the
BasePart.Material.ReadSafeDeprecatedReadOnlyNotReplicated |
TopParamAfloat | Determines the first parameter for the SurfaceType on the Top face of a part.ReadSafeHidden |
TopParamBfloat | Determines the second parameter for the SurfaceType on the Top face of a part.ReadSafeHidden |
TopSurfaceSurfaceType | Determines the type of surface for the top face of a part.ReadSafe |
TopSurfaceInputInputType | Determines the kind of input for the Top face of a part (+Y direction).ReadSafeHidden |
Transparencyfloat | Determines how much a part can be seen through (the inverse of part opacity).ReadSafe |
VelocityVector3 | Determines a part's change in position over time.ReadSafeDeprecatedHidden |
Anchored: boolean#
ReadSafe
The Anchored property determines whether the part will be immovable by
physics. When enabled, a part will never change position due to gravity,
other part collisions, overlapping other parts, or any other
physics-related causes. As a result, two anchored parts will never fire
the Touched event on each other.
An anchored part may still be moved by changing its
CFrame or Position, and
it still may have a nonzero
AssemblyLinearVelocity and
AssemblyAngularVelocity.
Finally, if an unanchored part is joined with an anchored part through an
object like a Weld, it too will act anchored. If such a joint
breaks, the part may be affected by physics again. See
Assemblies for more details.
Network ownership cannot be set on anchored parts. If a part's anchored status changes on the server, the network ownership of that part will be affected.
AssemblyAngularVelocity: Vector3#
NotReplicatedReadSafe
The angular velocity vector of this part's assembly. It's the rate of change of orientation in radians per second.
Angular velocity is the same at every point of the assembly.
Setting the velocity directly may lead to unrealistic motion. Using
Torque or AngularVelocity constraint is preferred, or use
ApplyAngularImpulse() if you want
instantaneous change in velocity.
If the part is owned by the
server, this property must be changed from a server Script (not
from a LocalScript or a Script with
RunContext set to RunContext.Client).
If the part is owned by a client through automatic ownership, this
property can be changed from either a client script or a server
script; changing it from a client script for a server-owned part will have
no effect.
AssemblyCenterOfMass: Vector3#
ReadOnlyNotReplicatedReadSafe
A position calculated via the Mass and
Position of all the parts in the assembly.
If the assembly has an anchored part, that part's center of mass will be the assembly's center of mass, and the assembly will have infinite mass.
Knowing the center of mass can help the assembly maintain stability. A force applied to the center of mass will not cause angular acceleration, only linear. An assembly with a low center of mass will have a better time staying upright under the effect of gravity.
AssemblyLinearVelocity: Vector3#
NotReplicatedReadSafe
The linear velocity vector of this part's assembly. It's the rate of
change in position of
AssemblyCenterOfMass in studs per
second.
If you want to know the velocity at a point other than the assembly's
center of mass, use
GetVelocityAtPosition().
Setting the velocity directly may lead to unrealistic motion. Using a
VectorForce constraint is preferred, or use
ApplyImpulse() if you want instantaneous
change in velocity.
If the part is owned by the
server, this property must be changed from a server Script (not
from a LocalScript or a Script with
RunContext set to RunContext.Client).
If the part is owned by a client through automatic ownership, this
property can be changed from either a client script or a server
script; changing it from a client script for a server-owned part will have
no effect.
AssemblyMass: float#
ReadOnlyNotReplicatedReadSafe
The sum of the mass of all the BaseParts in this part's
assembly. Parts that are Massless and are not
the assembly's root part will not contribute to the AssemblyMass.
If the assembly has an anchored part, the assembly's mass is considered infinite. Constraints and other physical interactions between unanchored assemblies with a large difference in mass may cause instabilities.
AssemblyRootPart: BasePart#
ReadOnlyNotReplicatedReadSafe
This property indicates the BasePart automatically chosen to
represent the assembly's root part. If the part is not parented to the
Workspace, this property will be nil.
The root part can be changed by changing the
RootPriority of the parts in the assembly.
Parts that all share the same AssemblyRootPart are in the same assembly.
For more information on root parts, see Assemblies.
AudioCanCollide: boolean#
ReadSafe
AudioCanCollide determines whether the part will physically interact
with audio simulation, similar to CastShadow
for lighting.
When disabled, audio passes through the part; it is not occluded or reflected.
BackParamA: float#
HiddenDeprecatedReadSafe
The BackParamA property is relevant when a part's
BasePart.BackSurface is set to Motor or SteppingMotor and
BasePart.BackSurfaceInput is set to Sin. It determines the
amplitude of the motor's rotational velocity.
BackParamB: float#
HiddenDeprecatedReadSafe
The BackParamB property is relevant when a part's
BasePart.BackSurface is set to Motor or SteppingMotor and
BasePart.BackSurfaceInput is set to Constant or Sin. For Constant,
it determines the constant rotational velocity of the motor. For Sin, it
determines the frequency of the motor's rotational velocity.
BackSurface: SurfaceType#
ReadSafe
The BackSurface property determines the type of surface used for the
positive Z direction of a part. When two parts' faces are placed next
to each other, they may create a joint between them.
BackSurfaceInput: InputType#
HiddenDeprecatedReadSafe
The BackSurfaceInput property determines the kind of input provided to a
part's BasePart.BackSurface. This is only relevant for Motor or
SteppingMotor SurfaceTypes. This property determines how
BasePart.BackParamA and BasePart.BackParamB are used. For
brevity, these properties will be referred to as ParamA and ParamB,
respectively.
- By default, this is set to NoInput. This stops the motor altogether.
- For Constant, the motor rotates at a constant velocity equal to
ParamB. - For Sin, the motor rotates at a velocity equal to
ParamA * math.sin(workspace.DistributedGameTime * ParamB). SeeWorkspace.DistributedGameTime.
BottomParamA: float#
HiddenDeprecatedReadSafe
The BottomParamA property is relevant when a part's
BasePart.BottomSurface is set to Motor or SteppingMotor and
BasePart.BottomSurfaceInput is set to Sin. It determines the
amplitude of the motor's rotational velocity.
BottomParamB: float#
HiddenDeprecatedReadSafe
The BottomParamB property is relevant when a part's
BasePart.BottomSurface is set to Motor or SteppingMotor and
BasePart.BottomSurfaceInput is set to Constant or Sin. For
Constant, it determines the constant rotational velocity of the motor. For
Sin, it determines the frequency of the motor's rotational velocity.
BottomSurface: SurfaceType#
ReadSafe
The BottomSurface property determines the type of surface used for the
negative Y direction of a part. When two parts' faces are placed next
to each other, they may create a joint between them.
BottomSurfaceInput: InputType#
HiddenDeprecatedReadSafe
The BottomSurfaceInput property determines the kind of input provided to
a part's BasePart.BottomSurface. This is only relevant for Motor
or SteppingMotor SurfaceTypes. This property determines how
BasePart.BottomParamA and BasePart.BottomParamB are used.
For brevity, these properties will be referred to as ParamA and ParamB,
respectively.
- By default, this is set to NoInput. This stops the motor altogether.
- For Constant, the motor rotates at a constant velocity equal to
ParamB. - For Sin, the motor rotates at a velocity equal to
ParamA * math.sin(workspace.DistributedGameTime * ParamB). SeeWorkspace.DistributedGameTime.
BrickColor: BrickColor#
NotReplicatedReadSafe
This property determines the color of a part. If the part has a
Material, this also determines the color used
when rendering the material texture. For more control over the color, the
Color property can be used and this property will
use the closest BrickColor.
Other visual properties of a part are determined by
Transparency and
Reflectance.
brickColor: BrickColor#
NotReplicatedDeprecatedReadSafeDeprecated
Deprecated. This deprecated property is an old Camel Case variant of the Pascal Case
BasePart.BrickColor, which should be used instead.
CanCollide: boolean#
ReadSafe
CanCollide determines whether a part will physically interact with other
parts. When disabled, other parts can pass through the part uninterrupted.
Parts used for decoration usually have CanCollide disabled, as they
need not be considered by the physics engine.
If a part is not Anchored and has CanCollide
disabled, it may fall out of the world to be eventually destroyed by
Workspace.FallenPartsDestroyHeight.
When CanCollide is disabled, parts may still fire the
Touched event (as well the other parts touching
them). You can disable this with CanTouch.
For more information on collisions, see Collisions.
CanQuery: boolean#
ReadSafe
This property determines whether the part is considered during spatial
query operations, such as
GetPartBoundsInBox or
Raycast. Note that
CanCollide must be disabled for CanQuery to
take effect, and spatial query functions will never include parts with
CanQuery of false.
Beyond this property, it is also possible to exclude parts which are
descendants of a given list of parts using an OverlapParams or
RaycastParams object when calling the spatial query functions.
CanTouch: boolean#
ReadSafe
This property determines if Touched and
TouchEnded events fire on the part. If true,
other touching parts must also have CanTouch set to true for touch
events to fire. If false, touch events cannot be set up for the part and
attempting to do so will throw an error. Similarly, if the property is set
to false after a touch event is connected, the event will be
disconnected and the TouchTransmitter removed.
Note that this collision logic can be set to respect
collision groups
through the Workspace.TouchesUseCollisionGroups property. If
true, parts in non-colliding groups will ignore both collisions and
touch events, thereby making this property irrelevant.
Performance#
There is a small performance gain on parts that have both CanTouch and
CanCollide set to false, as these parts will
never need to compute any kind of part to part collisions. However, they
can still be hit by Raycasts and
OverlapParams queries.
CastShadow: boolean#
ReadSafe
Determines whether or not a part casts a shadow. Disabling this property for a given part can cause visual artifacts on the shadows cast upon that part.
This property is not designed for performance enhancement, but in complex scenes, strategically disabling it on certain parts can improve performance. Due to the possibility of visual artifacts, we recommend leaving it enabled on all parts in most situations.
CenterOfMass: Vector3#
ReadOnlyNotReplicatedReadSafe
The CenterOfMass property describes the local position of a part's
center of mass. If this is a single part assembly, this is the
AssemblyCenterOfMass converted from
world space to local. On simple Parts, the center of mass is
always (0, 0, 0), but it can vary for WedgePart or
MeshPart.
CFrame: CFrame#
ReadSafe
The CFrame property determines both the position and orientation of the
BasePart in the world. It acts as an arbitrary reference location
on the geometry, but ExtentsCFrame
represents the actual CFrame of its physical center.
When setting CFrame on a part, other joined parts are also moved
relative to the part, but it is recommended that you use
PVInstance:PivotTo() to move an entire model, such as when
teleporting a player's character.
Unlike setting BasePart.Position, setting CFrame will always
move the part to the exact given CFrame; in other words: no
overlap checking is done and the physics solver will attempt to resolve
any overlap unless both parts are Anchored.
For keeping track of positions relative to a part's CFrame, an
Attachment may be useful.
CollisionGroup: string#
NotReplicatedReadSafe
The CollisionGroup property describes the name of the part's collision
group (maximum of 100 characters). Parts start off in the default group
whose name is "Default". This value cannot be empty.
Although this property itself is non-replicated, the engine internally replicates the value through another private property to solve backward compatibility issues.
CollisionGroupId: int#
NotReplicatedDeprecatedReadSafe
The BasePart.CollisionGroupId property describes the ID number of
the part's collision group. Parts start off in the "Default" group whose
ID is 0. If a part is unregistered, the value becomes -1. This value
cannot be less than -1 and it cannot exceed
WorldRoot:GetMaxCollisionGroups(). Invalid IDs are clamped.
Although this property can be directly changed, it's recommended that you
specify the collision group by setting BasePart.CollisionGroup to
the collision group's name.
Color: Color3#
NotReplicatedReadSafe
The Color property determines the color of a part. If the part has a
Material, this also determines the color used
when rendering the material texture.
If this property is set, BrickColor will use
the closest match to this Color value.
Other visual properties of a part are determined by
Transparency and
Reflectance.
CurrentPhysicalProperties: PhysicalProperties#
ReadOnlyNotReplicatedReadSafe
CurrentPhysicalProperties indicates the current physical properties of
the part. You can set custom values for the physical properties per part,
custom material, and material override. The
Roblox engine prioritizes more granular definitions when determining the
effective physical properties of a part. The values in the following list
are in order from highest to lowest priority:
- Custom physical properties of the part
- Custom physical properties of the part's custom material
- Custom physical properties of the material override of the part's material
- Default physical properties of the part's material
CustomPhysicalProperties: PhysicalProperties#
ReadSafe
CustomPhysicalProperties lets you customize various physical aspects of
a part, such as its density, friction, and elasticity.
If enabled, this property let's you configure these physical properties.
If disabled, these physical properties are determined by the
Material of the part.
Elasticity: float#
HiddenNotReplicatedDeprecatedReadSafeDeprecated
Deprecated. This is only one of multiple physics-related properties. It has been
deprecated in favor of BasePart.CustomPhysicalProperties, which
combines these properties into one.
The Elasticity of a part is now determined by either its Material
or its CustomPhysicalProperties.
EnableFluidForces: boolean#
ReadSafe
When true, and when Workspace.FluidForces is enabled, causes the
physics engine to compute aerodynamic forces on this BasePart.
ExtentsCFrame: CFrame#
ReadOnlyNotReplicatedReadSafe
ExtentsSize: Vector3#
ReadOnlyNotReplicatedReadSafe
The actual physical size of the BasePart as regarded by the
physics engine, for example in
collision detection.
Friction: float#
HiddenNotReplicatedDeprecatedReadSafeDeprecated
Deprecated. This is only one of multiple physics-related properties. It has been
deprecated in favor of BasePart.CustomPhysicalProperties, which
combines these properties into one.
Used to control the Friction of the part, but now it no longer does
anything. The Friction of a part is now determined by either its
Material or its
CustomPhysicalProperties.
FrontParamA: float#
HiddenDeprecatedReadSafe
The FrontParamA property is relevant when a part's
BasePart.FrontSurface is set to Motor or SteppingMotor and
BasePart.FrontSurfaceInput is set to Sin. It determines the
amplitude of the motor's rotational velocity.
FrontParamB: float#
HiddenDeprecatedReadSafe
The FrontParamB property is relevant when a part's
BasePart.FrontSurface is set to Motor or SteppingMotor and
BasePart.FrontSurfaceInput is set to Constant or Sin. For
Constant, it determines the constant rotational velocity of the motor. For
Sin, it determines the frequency of the motor's rotational velocity.
FrontSurface: SurfaceType#
ReadSafe
The FrontSurface property determines the type of surface used for the
negative Z direction of a part. When two parts' faces are placed next
to each other, they may create a joint between them.
FrontSurfaceInput: InputType#
HiddenDeprecatedReadSafe
The FrontSurfaceInput property determines the kind of input provided to
a part's BasePart.FrontSurface. This is only relevant for Motor or
SteppingMotor SurfaceTypes. This property determines how
BasePart.FrontParamA and BasePart.FrontParamB are used.
For brevity, these properties will be referred to as ParamA and ParamB,
respectively.
- By default, this is set to NoInput. This stops the motor altogether.
- For Constant, the motor rotates at a constant velocity equal to
ParamB. - For Sin, the motor rotates at a velocity equal to
ParamA * math.sin(workspace.DistributedGameTime * ParamB). SeeWorkspace.DistributedGameTime.
LeftParamA: float#
HiddenDeprecatedReadSafe
The LeftParamA property is relevant when a part's
BasePart.LeftSurface is set to Motor or SteppingMotor and
BasePart.LeftSurfaceInput is set to Sin. It determines the
amplitude of the motor's rotational velocity.
LeftParamB: float#
HiddenDeprecatedReadSafe
The LeftParamB property is relevant when a part's
BasePart.LeftSurface is set to Motor or SteppingMotor and
BasePart.LeftSurfaceInput is set to Constant or Sin. For Constant,
it determines the constant rotational velocity of the motor. For Sin, it
determines the frequency of the motor's rotational velocity.
LeftSurface: SurfaceType#
ReadSafe
The LeftSurface property determines the type of surface used for the
negative X direction of a part. When two parts' faces are placed next
to each other, they may create a joint between them.
LeftSurfaceInput: InputType#
HiddenDeprecatedReadSafe
The LeftSurfaceInput property determines the kind of input provided to a
part's BasePart.LeftSurface. This is only relevant for Motor or
SteppingMotor SurfaceTypes. This property determines how
BasePart.LeftParamA and BasePart.LeftParamB are used. For
brevity, these properties will be referred to as ParamA and ParamB,
respectively.
- By default, this is set to NoInput. This stops the motor altogether.
- For Constant, the motor rotates at a constant velocity equal to
ParamB. - For Sin, the motor rotates at a velocity equal to
ParamA * math.sin(workspace.DistributedGameTime * ParamB). SeeWorkspace.DistributedGameTime.
LocalTransparencyModifier: float#
HiddenNotReplicatedReadSafe
The LocalTransparencyModifier property is a multiplier to
Transparency that is only visible to the
local client. It does not replicate from client to server and is useful
for when a part should not render for a specific client, such as how the
player does not see their character's body parts when they zoom into first
person mode.
This property modifies the local part's transparency through the following
formula, with resulting values clamped between 0 and 1.
1 - ((1 - Transparency) × (1 -
LocalTransparencyModifier))
Class.BasePart.Transparency|Transparency |
LocalTransparencyModifier |
Server-Side | Client-Side |
|---|---|---|---|
0.5 |
0 |
0.5 |
0.5 |
0.5 |
0.25 |
0.5 |
0.625 |
0.5 |
0.5 |
0.5 |
0.75 |
0.5 |
0.75 |
0.5 |
0.875 |
0.5 |
1 |
0.5 |
1 |
Locked: boolean#
ReadSafe
The Locked property determines whether a part (or a Model it is
contained within) may be selected in Studio by clicking on it. This
property is most often enabled on parts within environment models that
aren't being edited at the moment.
Mass: float#
ReadOnlyNotReplicatedReadSafe
Mass is a read-only property that describes the product of a part's
volume and density. It is returned by the
GetMass() function.
Massless: boolean#
ReadSafe
If this property is enabled, the part will not contribute to the total mass or inertia of its assembly as long as it is welded to another part that has mass.
If the part is its own root part according to
AssemblyRootPart, this will be ignored
for that part, and it will still contribute mass and inertia to its
assembly like a normal part. Parts that are massless should never become
an assembly root part unless all other parts in the assembly are also
massless.
This might be useful for things like optional accessories on vehicles that you don't want to affect the handling of the car or a massless render mesh welded to a simpler collision mesh.
See also Assemblies, an article documenting what root parts are and how to use them.
Material: Material#
ReadSafe
The Material property allows you to set a part's texture and default
physical properties (in the case that
CustomPhysicalProperties is
unset). The default Plastic material has a very light
texture, while the SmoothPlastic material has no texture
at all. Some material textures like DiamondPlate and
Granite have very visible textures. Each material's
texture reflects sunlight differently, especially Foil.
Setting this property then enabling
CustomPhysicalProperties will
use the default physical properties of a material. For instance,
DiamondPlate is a very dense material while
Wood is very light. A part's density determines whether it
will float in terrain water.
The Glass material changes rendering behavior on moderate
graphics settings by applying a bit of reflectiveness (similar to
Reflectance) and perspective distortion. The
effect is especially pronounced on sphere-shaped parts. Semi‑transparent
parts behind Glass parts are not visible.
MaterialVariant: string#
NotReplicatedReadSafe
The system searches the MaterialVariant instance with the
specified MaterialVariant name and Material
type. If it successfully finds a matching MaterialVariant
instance, it uses that instance to replace the default material. The
default material can be the built-in material or an override
MaterialVariant specified in MaterialService.
Orientation: Vector3#
HiddenNotReplicatedReadSafe
The Orientation property describes the part's rotation in degrees around
the X, Y, and Z axes using a Vector3. The rotations
are applied in Y ⟩ X ⟩ Z order. This
differs from proper Euler angles and is instead Tait-Bryan
angles which describe yaw, pitch, and roll.
It is also worth noting how this property differs from the
CFrame.Angles() constructor which applies rotations in a
different order (Z ⟩ Y ⟩ X). For better
control over the rotation of a part, it's recommended that
CFrame is set instead.
When setting this property, any Welds or
Motor6Ds connected to this part will have the matching
C0 or C1 property
updated to allow the part to move relative to any other parts it is joined
to. WeldConstraints will also be temporarily
disabled and re-enabled during the move.
PivotOffset: CFrame#
ReadSafe
This property specifies the offset of the part's pivot from its
CFrame, that is BasePart:GetPivot() is the same as
BasePart.CFrame multiplied by BasePart.PivotOffset.
This is convenient for setting the pivot to a location in local space, but setting a part's pivot to a location in world space can be done as follows:
Position: Vector3#
HiddenNotReplicatedReadSafe
The Position property describes the coordinates of a part using a
Vector3. It reflects the position of the part's
CFrame, however it can also be set.
When setting this property, any Welds or
Motor6Ds connected to this part will have the matching
C0 or C1 property
updated to allow the part to move relative to any other parts it is joined
to. WeldConstraints will also be temporarily
disabled and re-enabled during the move.
ReceiveAge: float#
HiddenReadOnlyNotReplicatedReadSafe
Indicates the time in seconds since the part's physics were last updated
on the local client or the server. This value will be 0 when the part
has no physics (Anchored is true).
Reflectance: float#
ReadSafe
The Reflectance property determines how much a part reflects the sky. A
value of 0 indicates the part is not reflective at all, and a value of
1 indicates the part should fully reflect.
Reflectance is not affected by Transparency
unless the part is fully transparent, in which case reflectance will not
render at all. Reflectance may or may not be ignored depending on the
Material of the part.
ResizeableFaces: Faces#
ReadOnlyNotReplicatedReadSafe
The ResizeableFaces property uses a Faces object to describe
the different faces on which a part may be resized. For most
implementations of BasePart, such as Part and
WedgePart, this property includes all faces. However,
TrussPart will set its ResizeableFaces set to only two faces
since those kinds of parts must have two Size
dimensions of length 2.
This property is most commonly used with tools for building and
manipulating parts and has little use outside of that context. The
Handles class, which has the Handles.Faces property, can
be used in conjunction with this property to display only the handles on
faces that can be resized on a part.
ResizeIncrement: int#
ReadOnlyNotReplicatedReadSafe
The ResizeIncrement property is a read-only property that describes the
smallest change in size allowable by the
Resize() method. It differs between
implementations of the BasePart abstract class; for instance,
Part has this set to 1 while TrussPart has this set to
2 since individual truss sections are 2×2×2 in size.
RightParamA: float#
HiddenDeprecatedReadSafe
The RightParamA property is relevant when a part's
BasePart.RightSurface is set to Motor or SteppingMotor and
BasePart.RightSurfaceInput is set to Sin. It determines the
amplitude of the motor's rotational velocity.
RightParamB: float#
HiddenDeprecatedReadSafe
The RightParamB property is relevant when a part's
BasePart.RightSurface is set to Motor or SteppingMotor and
BasePart.RightSurfaceInput is set to Constant or Sin. For
Constant, it determines the constant rotational velocity of the motor. For
Sin, it determines the frequency of the motor's rotational velocity.
RightSurface: SurfaceType#
ReadSafe
The RightSurface property determines the type of surface used for the
positive X direction of a part. When two parts' faces are placed next
to each other, they may create a joint between them.
RightSurfaceInput: InputType#
HiddenDeprecatedReadSafe
The RightSurfaceInput property determines the kind of input provided to a
- For Sin, the motor rotates at a velocity equal to
ParamA * math.sin(workspace.DistributedGameTime * ParamB). SeeWorkspace.DistributedGameTime.
RootPriority: int#
ReadSafe
This property is an integer between -127 and 127 that takes precedence
over all other rules for root part sort. When considering multiple parts
that are not Anchored and which share the same
Massless value, a part with a higher
RootPriority will take priority over those with lower RootPriority.
You can use this property to control which part of an assembly is the root part and keep the root part stable if size changes.
See also Assemblies, an article documenting what root parts are and how to use them.
Rotation: Vector3#
NotReplicatedReadSafe
The rotation of the part in degrees for the three axes.
When setting this property, any Welds or
Motor6Ds connected to this part will have the matching
C0 or C1 property
updated to allow the part to move relative to any other parts it is joined
to. WeldConstraints will also be temporarily
disabled and re-enabled during the move.
RotVelocity: Vector3#
HiddenDeprecatedReadSafeDeprecated
Deprecated. This property is deprecated. Use AssemblyAngularVelocity instead.
The RotVelocity of a part describes how its
BasePart.Orientation is presently changing. In other words, this
property describes how the fast part is rotating. The part only rotates if
it is not anchored.
The unit of this property is radians per second.
Using this in conjunction with AlignOrientation allows for aligned
parts to have matching RotVelocity and Orientation values.
Size: Vector3#
NotReplicatedReadSafe
A part's Size property determines its visual dimensions, while
ExtentsSize represents the actual size used
by the physics engine, such as in
collision detection. The individual
dimensions (length, height, width) can be as low as 0.001 and as high as
2048. Size dimensions below 0.05 will be physically simulated as
if the part's dimensions are 0.05, while visual rendering preserves the
actual size.
A part's Size is used in a variety of additional ways:
- To influence its mass as given by
GetMass(). - By
ParticleEmitterto determine the area from which particles are spawned. - By
BlockMeshto partially determine the rendered rectangular prism. - By
SpecialMeshfor certainMeshTypesto determine the size of the rendered mesh. - By
SurfaceLightto determine the space to illuminate.
SpecificGravity: float#
ReadOnlyNotReplicatedDeprecatedReadSafeDeprecated
Deprecated. This item is deprecated. See BasePart.CustomPhysicalProperties to
see how to configure the physical properties of BaseParts. Do not use it
for new work.
The ratio of the part's density to the density of water determined by the
BasePart.Material. Effects the part's behavior when in a water
terrain cell. Essentially, SpecificGravity refers to how many times more
dense a part is than water.
| Material | SpecificGravity |
|---|---|
| Plastic | 0.7 |
| Wood | 0.35 |
| Slate | 2.7 |
| Concrete | 2.4 |
| CorrodedMetal | 7.85 |
| DiamondMetal | 7.85 |
| Foil | 7.6 |
| Grass | 0.9 |
| Ice | 0.91 |
| Marble | 2.56 |
| Granite | 2.7 |
| Brick | 1.92 |
| Pebble | 2.4 |
| Sand | 1.6 |
| Fabric | 0.7 |
| SmoothPlastic | 0.7 |
| Metal | 7.85 |
| WoodPlanks | 0.35 |
| Cobblestone | 2.7 |
TopParamA: float#
HiddenDeprecatedReadSafe
The TopParamA property is relevant when a part's
BasePart.TopSurface is set to Motor or SteppingMotor and
BasePart.TopSurfaceInput is set to Sin. It determines the
amplitude of the motor's rotational velocity.
TopParamB: float#
HiddenDeprecatedReadSafe
The TopParamB property is relevant when a part's
BasePart.TopSurface is set to Motor or SteppingMotor and
BasePart.TopSurfaceInput is set to Constant or Sin. For Constant,
it determines the constant rotational velocity of the motor. For Sin, it
determines the frequency of the motor's rotational velocity.
TopSurface: SurfaceType#
ReadSafe
The TopSurface property determines the type of surface used for the
positive Y direction of a part. When two parts' faces are placed next
to each other, they may create a joint between them.
TopSurfaceInput: InputType#
HiddenDeprecatedReadSafe
The TopSurfaceInput property determines the kind of input provided to a
part's BasePart.TopSurface. This is only relevant for Motor or
SteppingMotor SurfaceTypes. This property determines how
BasePart.TopParamA and BasePart.TopParamB are used. For
brevity, these properties will be referred to as ParamA and ParamB,
respectively.
- By default, this is set to NoInput. This stops the motor altogether,
- For Constant, the motor rotates at a constant velocity equal to
ParamB. - For Sin, the motor rotates at a velocity equal to
ParamA * math.sin(workspace.DistributedGameTime * ParamB). SeeWorkspace.DistributedGameTime.
Transparency: float#
ReadSafe
The Transparency property controls the visibility of a part on a scale
of 0 to 1 where 0 is completely visible (opaque) and 1 is
completely invisible (not rendered at all).
While fully transparent parts are not rendered at all, partially transparent objects have some significant rendering costs. Having many translucent parts may impact performance.
When transparent parts overlap, render order may act unpredictably, so you should avoid semi-transparent parts from overlapping.
See also
LocalTransparencyModifier as a
multiplier to Transparency that's only visible to the local client.
Velocity: Vector3#
HiddenDeprecatedReadSafeDeprecated
Deprecated. This property is deprecated. Use AssemblyLinearVelocity instead.
The Velocity of a part describes how its BasePart.Position is
presently changing. The unit of this property is studs per second. For
reference, the default Roblox character moves at 16 studs per second via
Humanoid.WalkSpeed. The acceleration due to gravity is found in
Workspace.Gravity (by default, -196.2 studs per second per
second).
Setting the Velocity of a part that is BasePart.Anchored will
cause it to act like a conveyor belt. Any object that touches the part
will begin to move in accordance with the Velocity.
Some BodyMover objects will apply forces and thus change the
Velocity of a part over time. The simplest of these is a BodyForce
which can be used to counteract the acceleration due to gravity on a
single part (set the +Y axis of the BodyForce.Force to the product
of the mass (BasePart:GetMass()) and the gravity constant).