Source: Roblox Creator Hub · CC BY 4.0 · View source · Code samples: MIT Imported 2026-10-03. Formatting adapted for this site.
Mover constraints
The physics engine includes the following Constraints that apply force or torque to move one or more assemblies. In addition, various mechanical constraints are available which behave as conceptual mechanical connections, including hinges, springs, ropes, and more.
LinearVelocity applies force on an assembly to maintain a constant velocity along a 3D vector, line, or 2D plane
AngularVelocity applies torque on an assembly to maintain a constant angular velocity
AlignPosition applies force to move two attachments together, or to move one attachment to a goal position
AlignOrientation applies torque to align two attachments, or to align one attachment with a goal orientation
VectorForce applies constant linear force on an assembly
Torque applies constant torque on an assembly from its center of mass
LineForce applies force along the theoretical line connecting its two attachments
AnimationConstraint constrains its Attachments by an offset transform CFrame.
Constraint visualization
To accurately visualize constraints in Studio, you can toggle the following from the View menu or through the respective shortcut:
- Show Welds (AltW or ⌥W) — Show
WeldConstraintsseparately from the visualization of other constraints. - Show Constraint Details (AltD or ⌥D) — Show complete visual details of non-weld constraints.
Note
In addition to the above visualization, you can view colored outlines around mechanisms (groups of parts that share simulation step and network ownership) by toggling on Mechanisms from the Visualization Options widget in the upper‑right corner of the 3D viewport.
Create constraints
Mover constraints typically connect one or two Attachments or Bones. When connected to Bones, the constraint will use their animated position and orientation.
To create a mechanical constraint, you can either insert one from the Constraint picker/button or through the Explorer window.
Constraint Picker
In Studio's Model tab toolbar, click‑hold over the small corner arrow on a constraint button to open its picker menu, then select the desired constraint.
In the 3D viewport, hover over any
PartorMeshPartand click to add a newAttachmentto the part at the visualized point. Alternatively, hover over and click an existingAttachmentorBoneto use it for the constraint.Some mover constraints utilize or support a secondary attachment in their functionality, so the tool might prompt you to repeat the previous step on another
Part,MeshPart, orAttachment, orBone.
AngularVelocity using one attachment

AlignPosition using two attachments
Explorer
In the Explorer hierarchy, hover over the intended parent, click the ⊕ button, and insert the desired constraint from the dropdown menu, such as a LinearVelocity constraint.
With the new constraint selected, locate its currently empty Attachment0 property in the Properties window.
Link the Attachment0 property to an
AttachmentorBonein two consecutive steps:In the Properties window, click in the Attachment0 row to reveal the selection cursor.
In the Explorer hierarchy, click on the target
AttachmentorBone.


Some mover constraints use or support a secondary
AttachmentorBonein their functionality. If necessary, repeat the previous step on the Attachment1 property in the Properties window. For instance:- By default, AlignPosition and AlignOrientation align their primary attachment (Attachment0) with a secondary attachment (Attachment1).
- LineForce requires two attachments to apply force along the theoretical line connecting them.
Physical simulation
To simulate physics while moving or rotating parts, you can switch from Geometric mode to Physical mode in Studio's toolbar, effectively forcing parts to obey physical limitations. For example, if two parts are attached by a RopeConstraint and you drag one part around the scene, the other part will follow as the rope becomes taut.

Legacy mover conversion
If your game relies on legacy BodyMover‑based constraints, review the following notes when converting to modern mover constraints.
BodyPosition ⟩ AlignPosition
AlignPosition satisfies the majority of use cases covered by the deprecated BodyPosition mover. To sync with how the legacy mover treated each component independently and allowed a different force along each dimension, the ForceLimitMode property of AlignPosition allows the constraint to operate in Magnitude mode or PerAxis mode:
In
Magnitudemode, the existing behavior is preserved andMaxForceis interpreted as a magnitude.In
PerAxismode, the force along each axis can be specified independently. Because the maximum force is specified as a vector, the reference frame of the force can also be specified through theForceRelativeToproperty withWorld,Attachment0, andAttachment1options. Additionally, the formulation for the internal controller is modified to match that ofBodyPosition.
BodyGyro ⟩ AlignOrientation
AlignOrientation satisfies the majority of use cases covered by the deprecated BodyGyro mover. The AlignType modes of AlignOrientation provide sufficient freedom for most applications and the combination of multiple constraints can replicate the vector torque limit. Additionally, the PrimaryAxisLookAt mode forces the primary axis of the constraint's first attachment (Attachment0) to always point towards the second attachment (Attachment1), making it a lot easier to add things such as motion tracking security cameras or guided missiles.
BodyVelocity ⟩ LinearVelocity
LinearVelocity satisfies the majority of use cases covered by the deprecated BodyVelocity mover. Although the legacy mover allows for a MaxForce vector, the typical application of that vector force was to zero a particular component, allowing the constraint to be disabled along that dimension. LinearVelocity achieves a similar effect by operating in distinct VelocityConstraintMode modes that corresponded to one (Line), two (Plane), and three (Vector) dimensions.
Additionally, the ForceLimitMode property with the option of PerAxis accommodates any applications of the vector force with all non‑zero components, such as an increase in the force along a single axis to counteract gravity.
BodyAngularVelocity ⟩ AngularVelocity
Although AngularVelocity has some discrepancies with the deprecated BodyAngularVelocity mover, specific cases related to those discrepancies have not been highlighted by the community, nor internally.
As a separate improvement, AngularVelocity works with Attachments and the RelativeTo property lets you specify the CFrame in which the force is specified, for example World or Attachment1.
BodyForce/BodyThrust ⟩ VectorForce
VectorForce satisfies all use cases offered by the deprecated BodyForce and BodyThrust movers. The modern constraint works with Attachments and its RelativeTo property lets you apply force to a relative offset from center, similar to how BodyThrust.Location worked.
RocketPropulsion ⟩ LineForce/AlignOrientation
A combination of LineForce and AlignOrientation satisfies the majority of use cases covered by the deprecated RocketPropulsion mover. In the example of a guided missile, LineForce can be used to control the "follow target" behavior of RocketPropulsion while AlignOrientation and its LookAtPosition property can be used to control the "face target" behavior.