# BodyAngularVelocity

Show deprecated

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.

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.

## Properties

 ``` Vector3``` ``` AngularVelocity ``` Determines the axis of rotation (direction) and the rotational velocity (magnitude) in radians/s
 ``` Vector3``` ``` MaxTorque ``` Determines the limit of torque that may be exerted on each world axis
 ``` float``` ``` P ``` Determines how aggressive of a torque is applied in reaching the goal angular velocity

Inherited from Instance:

 ``` int``` ``` DataCost ``` ``` [ReadOnly] ``` ``` [NotReplicated] ``` The cost of saving the instance using data persistence.
 ``` Instance``` ``` Parent ``` Determines the hierarchical parent of the `Instance`.
 ``` bool``` ``` RobloxLocked ``` If true, the `Instance` and its descendants cannot be indexed or edited by a `Script` or `LocalScript` and will throw an error if it is attempted.
 ``` string``` ``` ClassName ``` ``` [ReadOnly] ``` ``` [NotReplicated] ``` A read-only string representing the class this `Instance` belongs to.
 ``` string``` ``` Name ``` A non-unique identifier of the `Instance`.
 ``` bool``` ``` Archivable ``` Determines if an `Instance` can be cloned using `/Instance/Clone` or saved to file.

## Functions

Inherited from Instance:

 ``` Instance``` ``` FindFirstChild ( string name , bool recursive ) ``` Returns the first child of the `Instance` found with the given name.
 ``` Array``` ``` GetDescendants ( ) ``` ``` [CustomLuaState] ``` Returns an array containing all of the descendants of the instance
 ``` Objects``` ``` GetChildren ( ) ``` Returns an array containing all of the `Instance`'s children.
 ``` void``` ``` Destroy ( ) ``` Sets the `Instance/Parent` property to nil, locks the `Instance/Parent` property, disconnects all connections and calls Destroy on all children.
 ``` RBXScriptSignal``` ``` GetPropertyChangedSignal ( string property ) ``` Get an event that fires when a given property of an object changes.
 ``` string``` ``` GetFullName ( ) ``` Returns a string describing the `Instance`'s ancestry.
 ``` Instance``` ``` FindFirstChildWhichIsA ( string className , bool recursive ) ``` Returns the first child of the `Instance` for whom `Instance/IsA` returns true for the given className.
 ``` bool``` ``` IsAncestorOf ( Instance descendant ) ``` Returns true if an `Instance` is an ancestor of the given descendant.
 ``` bool``` ``` IsDescendantOf ( Instance ancestor ) ``` Returns true if an `Instance` is a descendant of the given ancestor.
 ``` Instance``` ``` FindFirstChildOfClass ( string className ) ``` Returns the first child of the `Instance` whose `Instance/ClassName|ClassName` is equal to the given className.
 ``` Instance``` ``` FindFirstAncestorWhichIsA ( string className ) ``` Returns the first ancestor of the `Instance` for whom `Instance/IsA` returns true for the given className.
 ``` Instance``` ``` FindFirstAncestorOfClass ( string className ) ``` Returns the first ancestor of the `Instance` whose `Instance/ClassName` is equal to the given className.
 ``` Instance``` ``` FindFirstAncestor ( string name ) ``` Returns the first ancestor of the `Instance` whose `Instance/Name` is equal to the given name.
 ``` bool``` ``` IsA ( string className ) ``` Returns true if an `Instance`'s class matches or inherits from a given class
 ``` Instance``` ``` WaitForChild ( string childName , double timeOut ) ``` ``` [CustomLuaState] ``` ``` [CanYield] ``` Returns the child of the `Instance` with the given name. If the child does not exist, it will yield the current thread until it does.
 ``` string``` ``` GetDebugId ( int scopeLength ) ``` ``` [NotBrowsable] ``` Returns a coded string of the `Instance`s DebugId used internally by Roblox.
 ``` Instance``` ``` Clone ( ) ``` Create a deep copy of a Roblox instance and descendants where `Archivable = true`.
 ``` void``` ``` ClearAllChildren ( ) ``` This function destroys all of an `Instance`'s children.

## Events

Inherited from Instance:

 ``` RBXScriptSignal``` ``` DescendantRemoving ( Instance descendant ) ``` Fires immediately before a descendant of the `Instance` is removed.
 ``` RBXScriptSignal``` ``` AncestryChanged ( Instance child , Instance parent ) ``` Fires when the `Instance/Parent` property of the object or one of its ancestors is changed.
 ``` RBXScriptSignal``` ``` ChildAdded ( Instance child ) ``` Fires when an object is parented to this `Instance`.
 ``` RBXScriptSignal``` ``` ChildRemoved ( Instance child ) ``` Fires when a child is removed from this `Instance`.
 ``` RBXScriptSignal``` ``` DescendantAdded ( Instance descendant ) ``` Fires when a descendant is added to the `Instance`.
 ``` RBXScriptSignal``` ``` Changed ( string property ) ``` Fired immediately after a property of an object changes.