BasePart¶
The abstract base class for in-world objects that physically interact.
Description¶
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 BaseParts may be grouped within a Model and moved at the same time using PVInstance.PivotTo(). See Models.
- A Decal applies a stretched image texture to the faces of a BasePart, while a Texture applies a tiled image texture to the faces. See Textures and Decals.
- A SurfaceGui renders GuiObjects on the face of a part. See In-Experience UI Containers.
- Attachments can be added to a BasePart to specify CFrames relative to the part. These are often used by physical Constraint objects as outlined in Mechanical Constraints and Mover Constraints.
- ParticleEmitter objects emit particles uniformly in the volume of the BasePart to which they are parented. See Particle Emitters.
- Light objects like PointLight emit light from the center of a BasePart as illustrated in Light Sources.
- If parented to a Tool and given the name Handle, a BasePart can be held by characters. See In-Experience Tools.
Inheritance¶
Object → Instance → PVInstance → BasePart
Nova inheritance: Instance → PVInstance → BasePart
Known subclasses: CornerWedgePart, FormFactorPart, MeshPart, ParallelRampPart, PartOperation, PrismPart, PyramidPart, RightAngleRampPart, and 4 more
Properties¶
Anchored Supported Property Determines whether a part is immovable by physics.
Determines whether a part is immovable by physics.
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.
BackParamA Supported Property Deprecated Determines the first parameter for the SurfaceType on the Back face of a part.
Determines the first parameter for the SurfaceType on the Back face of a part.
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 Supported Property Deprecated Determines the second parameter for the SurfaceType on the Back face of a part.
Determines the second parameter for the SurfaceType on the Back face of a part.
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 Supported Property Determines the type of surface for the back face of a part.
Determines the type of surface for the back face of a part.
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 Supported Property Deprecated Determines the kind of input for the Back face of a part.
Determines the kind of input for the Back face of a part.
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). See Workspace.DistributedGameTime.
BottomParamA Supported Property Deprecated Determines the first parameter for the SurfaceType on the Bottom face of a part.
Determines the first parameter for the SurfaceType on the Bottom face of a part.
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 Supported Property Deprecated Determines the second parameter for the SurfaceType on the Bottom face of a part.
Determines the second parameter for the SurfaceType on the Bottom face of a part.
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 Supported Property Determines the type of surface for the bottom face of a part.
Determines the type of surface for the bottom face of a part.
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 Supported Property Deprecated Determines the kind of input for the Bottom face of a part.
Determines the kind of input for the Bottom face of a part.
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). See Workspace.DistributedGameTime.
BrickColor Supported Property Determines the color of a part.
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 Supported Property Deprecated
No description available.
CanCollide Supported Property Determines whether a part may collide with other parts.
Determines whether a part may collide with other parts.
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 Supported Property Determines whether the part is considered during spatial query operations.
Determines whether the part is considered during spatial query operations.
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 Supported Property Determines if Touched and TouchEnded events fire on the part.
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 Supported Property Determines whether or not a part casts a shadow.
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.
CFrame Supported Property Determines the position and orientation of the BasePart in the world.
Determines the position and orientation of the BasePart in the world.
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 Supported Property Describes the name of a part's collision group.
Describes the name of a part's collision group.
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 Supported Property Deprecated Describes the automatically set ID number of a part's collision group.
Describes the automatically set ID number of a part's collision group.
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 Supported Property Deprecated Determines the color of a part.
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.
CustomPhysicalProperties Supported Property Determines several physical properties of a part.
Determines several physical properties of a part.
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 Supported Property Deprecated Legacy restitution value. Nova's physics uses it unless CustomPhysicalProperties overrides it.
Legacy restitution value. Nova's physics uses it unless CustomPhysicalProperties overrides it.
Modern Roblox discourages this property because elasticity normally comes
from the part's material or CustomPhysicalProperties. Nova still stores
and applies it through the part primitive; if custom physical properties
are set, that takes precedence.
Friction Supported Property Deprecated Legacy friction value. Nova's physics uses it unless CustomPhysicalProperties overrides it.
Legacy friction value. Nova's physics uses it unless CustomPhysicalProperties overrides it.
Modern Roblox discourages this property because friction normally comes
from the part's material or CustomPhysicalProperties. Nova still stores
and applies it through the part primitive; if a custom physical
properties object is set, that takes precedence.
FrontParamA Supported Property Deprecated Determines the first parameter for the SurfaceType on the Front face of a part.
Determines the first parameter for the SurfaceType on the Front face of a part.
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 Supported Property Deprecated Determines the second parameter for the SurfaceType on the Front face of a part.
Determines the second parameter for the SurfaceType on the Front face of a part.
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 Supported Property Determines the type of surface for the front face of a part.
Determines the type of surface for the front face of a part.
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 Supported Property Deprecated Determines the kind of input for the Front face of a part (-Z direction).
Determines the kind of input for the Front face of a part (-Z direction).
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). See Workspace.DistributedGameTime.
LeftParamA Supported Property Deprecated Determines the first parameter for the SurfaceType on the Left face of a part.
Determines the first parameter for the SurfaceType on the Left face of a part.
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 Supported Property Deprecated Determines the second parameter for the SurfaceType on the Left face of a part.
Determines the second parameter for the SurfaceType on the Left face of a part.
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 Supported Property Determines the type of surface for the left face of a part.
Determines the type of surface for the left face of a part.
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 Supported Property Deprecated Determines the kind of input for the Left face of a part.
Determines the kind of input for the Left face of a part.
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). See Workspace.DistributedGameTime.
LocalTransparencyModifier Supported Property Determines a multiplier for BasePart.Transparency that is only visible to the local client.
Determines a multiplier for BasePart.Transparency that is only visible to the local client.
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 Supported Property Determines whether a part is selectable in Studio.
Determines whether a part is selectable in Studio.
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.
Massless Supported Property Determines whether the part contributes to the total mass or inertia of its rigid body.
Determines whether the part contributes to the total mass or inertia of its rigid body.
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 Supported Property Determines the texture and default physical properties of a part.
Determines the texture and default physical properties of a part.
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.
Orientation Supported Property Describes the rotation of the part in the world.
Describes the rotation of the part in the world.
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 Supported Property Specifies the offset of the part's pivot from its CFrame.
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 Supported Property Describes the position of the part in the world.
Describes the position of the part in the world.
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 Supported Property Time since last recorded physics update.
Time since last recorded physics update.
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 Supported Property Determines how much a part reflects the skybox.
Determines how much a part reflects the skybox.
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 Supported Property Describes the faces on which a part may be resized.
Describes the faces on which a part may be resized.
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 Supported Property Describes the smallest change in size allowable by the Resize() method.
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 Supported Property Deprecated Determines the first parameter for the SurfaceType on the Right face of a part.
Determines the first parameter for the SurfaceType on the Right face of a part.
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 Supported Property Deprecated Determines the second parameter for the SurfaceType on the Right face of a part.
Determines the second parameter for the SurfaceType on the Right face of a part.
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 Supported Property Determines the type of surface for the right face of a part.
Determines the type of surface for the right face of a part.
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 Supported Property Deprecated Determines the kind of input for the Right face of a part (-X direction).
Determines the kind of input for the Right face of a part (-X direction).
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). See Workspace.DistributedGameTime.
RootPriority Supported Property The main rule in determining the root part of an assembly.
The main rule in determining the root part of an assembly.
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 Supported Property The rotation of the part in degrees for the three axes.
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 Supported Property Deprecated Determines a part's change in orientation over time.
Determines a part's change in orientation over time.
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 Supported Property Determines the dimensions of a part (length, height, width).
Determines the dimensions of a part (length, height, width).
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 ParticleEmitter to determine the area from which particles are spawned.
- By BlockMesh to partially determine the rendered rectangular prism.
- By SpecialMesh for certain MeshTypes to determine the size of the rendered mesh.
- By SurfaceLight to determine the space to illuminate.
SpecificGravity Supported Property Deprecated The ratio of the part's density to the density of water determined by the BasePart.Material.
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 Supported Property Deprecated Determines the first parameter for the SurfaceType on the Top face of a part.
Determines the first parameter for the SurfaceType on the Top face of a part.
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 Supported Property Deprecated Determines the second parameter for the SurfaceType on the Top face of a part.
Determines the second parameter for the SurfaceType on the Top face of a part.
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 Supported Property Determines the type of surface for the top face of a part.
Determines the type of surface for the top face of a part.
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 Supported Property Deprecated Determines the kind of input for the Top face of a part (+Y direction).
Determines the kind of input for the Top face of a part (+Y direction).
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). See Workspace.DistributedGameTime.
Transparency Supported Property Determines how much a part can be seen through (the inverse of part opacity).
Determines how much a part can be seen through (the inverse of part opacity).
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 Supported Property Deprecated Determines a part's change in position over time.
Determines a part's change in position over time.
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).
Methods¶
BreakJoints Supported Function Deprecated Breaks any surface connection with any adjacent part, including Weld and other JointInstance.
Breaks any surface connection with any adjacent part, including Weld and other JointInstance.
breakJoints Supported Function Deprecated
No description available.
CanSetNetworkOwnership Supported Function Checks whether you can set a part's network ownership.
The CanSetNetworkOwnership function checks whether you can set a part's network ownership.
The function's return value verifies whether or not you can call BasePart.SetNetworkOwner() or BasePart.SetNetworkOwnershipAuto() without encountering an error. It returns true if you can modify/read the network ownership, or returns false and the reason you can't, as a string.
GetConnectedParts Supported Function Returns a table of parts connected to the object by any kind of rigid joint.
Returns a table of parts connected to the object by any kind of rigid joint.
If recursive is true this function will return all of the parts in the
assembly rigidly connected to the BasePart.
Rigid Joints¶
When a joint connects two parts together (Part0 → Part1), a joint is
rigid if the physics of Part1 are completely locked down by Part0.
This only applies to the following joint types:
GetMass Supported Function Returns the value of the Mass property.
getMass Supported Function Deprecated Use GetMass() instead
Use GetMass() instead
GetNetworkOwner Supported Function Returns the current player who is the network owner of this part, or nil in case of the server.
Returns the current player who is the network owner of this part, or nil
in case of the server.
GetNetworkOwnershipAuto Supported Function Returns true if the game engine automatically decides the network owner for this part.
Returns true if the game engine automatically decides the network owner for this part.
GetRenderCFrame Supported Function Deprecated Returns the CFrame used for rendering the part.
Returns the CFrame used for rendering the part.
Nova still implements this as the rendering coordinate frame. Modern Roblox may call it obsolete because interpolation moved into the DataModel, but the method remains callable and meaningful in Nova.
GetRootPart Supported Function Deprecated Returns the base part of an assembly of parts.
Returns the base part of an assembly of parts.
Returns the base part of an assembly. When moving an assembly of parts using a CFrame. it is important to move this base part (this will move all other parts connected to it accordingly). More information is available in the Assemblies article.
This function predates the AssemblyRootPart property. It remains supported for backwards compatibility, but you should use AssemblyRootPart directly.
GetTouchingParts Supported Function Returns a table of all BasePart.CanCollide true parts that intersect with this part.
Returns a table of all BasePart.CanCollide true parts that intersect with this part.
Returns a table of all parts that are physically interacting with this part. If the part itself has CanCollide set to false, then this function returns an empty table unless the part has a TouchInterest object parented to it (meaning something is connected to its Touched event). Parts that are adjacent but not intersecting are not considered touching. This function predates the WorldRoot.GetPartsInPart() function, which provides more flexibility and avoids the special TouchInterest rules described above. Use WorldRoot.GetPartsInPart() instead.
IsGrounded Supported Function Returns true if the object is connected to a part that will hold it in place (eg an Anchored part), otherwise returns false.
MakeJoints Supported Function Deprecated Creates a joint on any side of the object that has a surface ID that can make a joint.
Creates a joint on any side of the object that has a surface ID that can make a joint.
Creates a joint on any side of the Part that has a SurfaceType that can make a joint it will create a joint with any adjacent parts.
Joints will be created between the sides and any planar touching surfaces, depending on the sides' surfaces.
- Smooth surfaces will not create joints
- Glue surfaces will create a Glue joint
- Weld will create a Weld joint with any surface except for Unjoinable
- Studs, Inlet, or Universal will each create a Snap joint with either of other the other two surfaces (e.g. Studs with Inlet and Universal)
- Hinge and Motor surfaces create Rotate and RotateV joint instances
Unlike Model.MakeJoints(), this function requires an array of parts as a parameter. This array is given as follows:
Joints are broken if enough force is applied to them due to an Explosion, unless a ForceField object is parented to the BasePart or ancestor Model. For this reason, they are often used to make simple destructible buildings and other models.
makeJoints Supported Function Deprecated Use MakeJoints() instead
Use MakeJoints() instead
Resize Supported Function Changes the size of an object just like using the Studio resize tool.
Changes the size of an object just like using the Studio resize tool.
resize Supported Function Deprecated
No description available.
SetNetworkOwner Supported Function Sets the given player as network owner for this and all connected parts.
Sets the given player as network owner for this and all connected parts.
When playerInstance is nil, the server will be the owner instead of a
player.
SetNetworkOwnershipAuto Supported Function Lets the game engine dynamically decide who will handle the part's physics (one of the clients or the server).
Lets the game engine dynamically decide who will handle the part's physics (one of the clients or the server).
Events¶
LocalSimulationTouched Supported Event Deprecated Fires on the local client when another part comes in contact with this part.
Fires on the local client when another part comes in contact with this part.
Fired when another part comes in contact with another object. This event only sends data to the client notifying it that two parts have collided, whereas BasePart.Touched sends data to the server.
OutfitChanged Supported Event Deprecated Fires when the part's appearance changes due to a Shirt.
Fires when the part's appearance changes due to a Shirt.
Fired if the part's appearance is affected by the Shirt class.
StoppedTouching Supported Event Deprecated Fires on the local client when this part stops touching another part.
Fires on the local client when this part stops touching another part.
Nova still raises the deprecated local signal from the workspace collision
path. It is the client-only counterpart of TouchEnded.
Touched Supported Event Fires when a part touches another part as a result of physical movement.
Fires when a part touches another part as a result of physical movement.
The Touched event fires when a part comes in contact with another part. For instance, if PartA bumps into PartB, then PartA.Touched fires with PartB, and PartB.Touched fires with PartA.
This event only fires as a result of physical movement, so it will not fire if the CFrame property was changed such that the part overlaps another part. This also means that at least one of the parts involved must not be Anchored at the time of the collision.
This event works in conjunction with Workspace.TouchesUseCollisionGroups to specify whether collision groups are acknowledged for detection.
touched Supported Event Deprecated
No description available.
TouchEnded Supported Event Fires when a part stops touching another part as a result of physical movement.
Fires when a part stops touching another part as a result of physical movement.
Fires when a part stops touching another part under similar conditions to those of BasePart.Touched.
This event works in conjunction with Workspace.TouchesUseCollisionGroups to specify whether collision groups are acknowledged for detection.
Inherited members¶
Inherited from PVInstance: 9 properties, 36 methods, 7 events. They are documented on the base class page.
28 modern Roblox member(s) are not implemented yet — expand to inspect
Members declared by Roblox's BasePart class (or by a missing base class) that Nova does not expose. Use this list to scope a migration; the compatibility guide has the recommended workaround.
Properties¶
| Member | Signature | Status | Notes | Flags |
|---|---|---|---|---|
AssemblyAngularVelocity |
AssemblyAngularVelocity: Vector3 |
Not yet | The angular velocity of the part's assembly. | NotReplicated |
AssemblyCenterOfMass |
AssemblyCenterOfMass: Vector3 |
Not yet | The center of mass of the part's assembly in world space. | ReadOnly, NotReplicated |
AssemblyLinearVelocity |
AssemblyLinearVelocity: Vector3 |
Not yet | The linear velocity of the part's assembly. | NotReplicated |
AssemblyMass |
AssemblyMass: float |
Not yet | The total mass of the part's assembly. | ReadOnly, NotReplicated |
AssemblyRootPart |
AssemblyRootPart: BasePart |
Not yet | A reference to the root part of the assembly. | ReadOnly, NotReplicated |
AudioCanCollide |
AudioCanCollide: bool |
Not yet | Determines whether the part will physically interact with audio simulation, similar to CastShadow for lighting. | — |
CenterOfMass |
CenterOfMass: Vector3 |
Not yet | Describes the local position of a part's center of mass, relative to its CFrame. | ReadOnly, NotReplicated |
CurrentPhysicalProperties |
CurrentPhysicalProperties: PhysicalProperties |
Not yet | Indicates the current physical properties of the part. | ReadOnly, NotReplicated |
EnableFluidForces |
EnableFluidForces: bool |
Not yet | Used to enable or disable aerodynamic forces on parts and assemblies. | — |
ExtentsCFrame |
ExtentsCFrame: CFrame |
Not yet | The CFrame of the physical extents of the BasePart. | ReadOnly, NotReplicated |
ExtentsSize |
ExtentsSize: Vector3 |
Not yet | The actual physical size of the BasePart as regarded by the physics engine. | ReadOnly, NotReplicated |
Mass |
Mass: float |
Not yet | Describes the mass of the part, the product of its density and volume. | ReadOnly, NotReplicated |
MaterialVariant |
MaterialVariant: string |
Not yet | The name of MaterialVariant. | NotReplicated |
Methods¶
| Member | Signature | Status | Notes | Flags |
|---|---|---|---|---|
AngularAccelerationToTorque |
BasePart:AngularAccelerationToTorque(angAcceleration: Vector3, angVelocity: Vector3 = 0, 0, 0): Vector3 |
Not yet | Returns the torque needed to achieve a given angular acceleration on this part's assembly, optionally accounting for gyroscopic effects. | — |
ApplyAngularImpulse |
BasePart:ApplyAngularImpulse(impulse: Vector3): null |
Not yet | Apply an angular impulse to the assembly. | — |
ApplyImpulse |
BasePart:ApplyImpulse(impulse: Vector3): null |
Not yet | Apply an impulse to the assembly at the assembly's Class.BasePart.AssemblyCenterOfMass\|center of mass. |
— |
ApplyImpulseAtPosition |
BasePart:ApplyImpulseAtPosition(impulse: Vector3, position: Vector3): null |
Not yet | Apply an impulse to the assembly at specified position. | — |
BindToCollisionSummaries |
BasePart:BindToCollisionSummaries(callback: Function): RBXScriptConnection |
Not yet | Subscribes to detailed per-frame contact data for the collisions this part is involved in. | — |
CanCollideWith |
BasePart:CanCollideWith(part: BasePart): bool |
Not yet | Returns whether the parts can collide with each other. | — |
GetClosestPointOnSurface |
BasePart:GetClosestPointOnSurface(position: Vector3): Vector3 |
Not yet | Returns the closest point on the part's surface to the given point. | — |
GetJoints |
BasePart:GetJoints(): Instances |
Not yet | Returns all Joints or Constraints connected to this part that are active in the simulation. | — |
GetNoCollisionConstraints |
BasePart:GetNoCollisionConstraints(): Instances |
Not yet | Returns the enabled NoCollisionConstraint objects currently registered for this part in its physics world. | — |
GetPhysicsCost |
BasePart:GetPhysicsCost(): float |
Not yet | — | RobloxScriptSecurity |
GetVelocityAtPosition |
BasePart:GetVelocityAtPosition(position: Vector3): Vector3 |
Not yet | Returns the linear velocity of the part's assembly at the given position relative to this part. | — |
IntersectAsync |
BasePart:IntersectAsync(parts: Instances, collisionfidelity: CollisionFidelity = Default, renderFidelity: RenderFidelity = Automatic): Instance |
Not yet | Creates a new IntersectOperation from the overlapping geometry of the part and the other parts in the given array. | Yields |
SubtractAsync |
BasePart:SubtractAsync(parts: Instances, collisionfidelity: CollisionFidelity = Default, renderFidelity: RenderFidelity = Automatic): Instance |
Not yet | Creates a new UnionOperation from the part, minus the geometry occupied by the parts in the given array. | Yields |
TorqueToAngularAcceleration |
BasePart:TorqueToAngularAcceleration(torque: Vector3, angVelocity: Vector3 = 0, 0, 0): Vector3 |
Not yet | Returns the angular acceleration that would result from applying a given torque to this part's assembly, optionally accounting for gyroscopic effects. | — |
UnionAsync |
BasePart:UnionAsync(parts: Instances, collisionfidelity: CollisionFidelity = Default, renderFidelity: RenderFidelity = Automatic): Instance |
Not yet | Creates a new UnionOperation from the part, plus the geometry occupied by the parts in the given array. | Yields |
Roblox reference: BasePart
Generated from Nova's API dump and Roblox creator-docs. Nova-only members come from the engine's reflection metadata.