BodyGyro

Show Deprecated
deprecated

The BodyGyro object applies a torque (rotational force) on a BasePart such that it maintains a constant angular displacement, or orientation. This allows for the creation of parts that point in a certain direction, as if a real gyroscope were acting upon it. Essentially, it's the rotational counterpart to a BodyPosition.

If you would like to maintain a constant angular velocity, use a BodyAngularVelocity instead.

The CFrame property controls the goal orientation. Only the angular components of the CFrame are used; position will make no difference. MaxTorque limits the amount of angular force that may be applied, P controls the power used in achieving the goal orientation, and D controls dampening behavior.

Code Samples

BodyGyro

local part1 = workspace.Part1 -- The part that will turn to face Part2
local part2 = workspace.Part2
part1.BodyGyro.CFrame = CFrame.new(part1.Position, part2.Position)

Summary

Properties

  • read parallel

    Determines the target orientation (translational component ignored).

  • read parallel

    Determines the amount of dampening to use in reaching the goal CFrame.

  • read parallel

    Determines the limit on how much torque that may be applied to each axis.

  • read parallel

    Determines how aggressive of a torque is applied in reaching the goal orientation.

Properties

CFrame

read parallel

The CFrame property (not to be confused with BasePart.CFrame) determines the target orientation towards which torque will be exerted. Since BodyGyro does not apply translational force, the translational/positional component of the CFrame, CFrame.p, is ignored. Consider using one of the following CFrame constructors in setting this property: CFrame.fromAxisAngle(), CFrame.fromEulerAnglesXYZ() or CFrame.fromEulerAnglesYXZ(). Beware of gimbal lock as you choose which of these methods and what angles (in radians). Additionally, you could use CFrame.new(gyro.Parent.Position, targetPosition) in order to have the BodyGyro "look at" a targetPosition (Vector3).

read parallel

The D property is how much dampening will be applied to the torque used to reach the goal CFrame. When the part approaches the goal orientation it needs to decelerate, otherwise it will rotate past the goal and have to stop and re-accelerate back toward the goal. This is often creates undesirable rubber-banding effect, so applying dampening using this property is how that effect is avoided. The higher this value is set, the greater the dampening curve becomes, or the slower the part will approach the goal orientation.

MaxTorque

read parallel

The MaxTorque property determines the limit on the amount of torque that may be applied on each axis in reaching the goal orientation (CFrame). If a part isn't moving, consider increasing this value (also check that it is not Anchored or attached to any anchored parts).

read parallel

The P property determines how much power is used while applying torque in order to reach the goal CFrame. The higher this value, the more power will be used and the faster it will be used.

Methods

Events