6 min read

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.

Linear Velocity

Watch video

LinearVelocity applies force on an assembly to maintain a constant velocity along a 3D vector, line, or 2D plane

Angular Velocity

Watch video

AngularVelocity applies torque on an assembly to maintain a constant angular velocity

Align Position

Watch video

AlignPosition applies force to move two attachments together, or to move one attachment to a goal position

Align Orientation

Watch video

AlignOrientation applies torque to align two attachments, or to align one attachment with a goal orientation

Vector Force

Watch video

VectorForce applies constant linear force on an assembly

Torque

Watch video

Torque applies constant torque on an assembly from its center of mass

Line Force

Watch video

LineForce applies force along the theoretical line connecting its two attachments

Animation Constraint

Watch video

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:

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

  1. 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.

    Constraint pickers indicated in Studio's toolbar
  2. In the 3D viewport, hover over any Part or MeshPart and click to add a new Attachment to the part at the visualized point. Alternatively, hover over and click an existing Attachment or Bone to use it for the constraint.

  3. 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, or Attachment, or Bone.

    AngularVelocity using one attachment

AngularVelocity using one attachment

AlignPosition using two attachments

AlignPosition using two attachments

Explorer

  1. 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.

    New LinearVelocity in Explorer window.
  2. With the new constraint selected, locate its currently empty Attachment0 property in the Properties window.

    Constraint's Attachment0 property highlighted in Properties window.
  3. Link the Attachment0 property to an Attachment or Bone in two consecutive steps:

    1. In the Properties window, click in the Attachment0 row to reveal the selection cursor.

    2. In the Explorer hierarchy, click on the target Attachment or Bone.

    Mouse pointer hovering over Attachment0 property in Properties window.Target attachment indicated in Explorer window.
  4. Some mover constraints use or support a secondary Attachment or Bone in 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:

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.