Roblox uses a rigid body physics engine. Parts are subject to physical forces as long as they are not anchored. You can create physical assemblies using attachments and constraints, and you can detect and control collisions between objects using events and collision filtering.


An assembly is one or more BaseParts connected by rigid constraints or motors (animated rigid joints). Assemblies can be set to an initial linear or angular velocity, or their behavior can be affected through constraints.

1 assembly; 1 part
1 assembly; 18 parts
1 assembly; 179 parts


Object collisions or "touches" can be detected through the Touched event. You can globally stop a part from colliding with anything by changing its CanCollide property, and you can control which objects collide with others by setting up collision filtering.

In the video above, the spinning objects are in different collision groups such that they collide with objects of another color but not with objects of their own color


Non-anchored assemblies react to force from gravity and collisions, but physical force can also be applied through mechanical constraints or mover constraints.

Mechanical Constraints

Mechanical constraints include familiar objects like hinges, springs, and ropes which can be used to build mechanisms. Each is covered in Mechanical Constraints.

Mover Constraints

Mover constraints apply force or torque to move one or more assemblies. Each is outlined in Mover Constraints.

Adaptive Timestepping

The engine emphasizes best performance by automatically assigning assemblies to one of three simulation rates. For scenarios featuring complex mechanisms like tanks, you can improve stability by setting a fixed timestep. See Adaptive Timestepping for more information.