We use cookies on this site to enhance your user experience



The BodyAngularVelocity object applies a torque (or rotational force) on a BasePart such that it maintains a constant angular velocity as determined by its BodyAngularVelocity/AngularVelocity|AngularVelocity property. This allows for the creation of parts that continually rotate. It is the rotational counterpart to a BodyVelocity. If you would like to maintain a constant angular displacement, use a BodyGyro instead.

An animation of a Part with a BodyAngularVelocity applied; there is a superimposed green line visualizing the AngularVelocity property

The BodyAngularVelocity/AngularVelocity|AngularVelocity property (visualized above as a green line) controls the goal angular velocity of the applied torque: the direction of the DataType/Vector3 is the axis which the part rotates around, and the magnitude is the speed in radians/s. The BodyAngularVelocity/MaxTorque|MaxTorque property controls the maximum amount of torque that can be applied to the object, while the BodyAngularVelocity/P|P property controls the amount of power used in applying the torque.

Tip: Regarding the BodyAngularVelocity/AngularVelocity|AngularVelocity property, you can multiply a DataType/Vector3 by math.rad(360), or , in order to convert angular frequency (rotations per second) into the desired angular velocity (radians per second). For example: Setting BodyAngularVelocity/AngularVelocity|AngularVelocity to Vector3.new(0, 1, 0) * math.rad(360)Vector3.new(0, 6.283, 0) will cause a part to spin around the Y axis once per second.

Diagram of each axes and the torque applied


Name Type Description

Determines the axis of rotation (direction) and the rotational velocity (magnitude) in radians/s


Determines the limit of torque that may be exerted on each world axis



Determines how aggressive of a torque is applied in reaching the goal angular velocity

Inherited from Instance , BodyMover

Archivable ClassName DataCost Name Parent RobloxLocked