A BodyGyro instance keeps the BasePart instance that it is parented to facing the CFrame defined within BodyGyro.

Roblox has seldom information on "P" and "D" of BodyGyro. In the real world application, the properties "P" and "D" are part of "PID" control, or the ability to balance itself.

P, I and D are 3 separate controllers calculated by math.

The P controller will create an opposite force to balance itself, but may over-compensate and teeter-totter if used alone.

The I controller, which is not used in Roblox, will try and balance itself more and more as time is spent away from its goal.

The D controller is the simplest of them all. It will simply resist change in movement. The D controller is independent of the goal, meaning that it will not return back to the goal, but rather just resist acceleration and deceleration in general.

Not Bouncy

The above animation is an example of a brick (held in place with BodyPosition) with the "D" controller in BodyGyro set to 40. This should mean that the controller will resist acceleration and deceleration (in this case, of angular velocity) with a gain of 40... Roblox does not specify what the numbers are measured in. This has been a mystery since forever.


The above animation is an example of a situation where the D controller gain is set to 0. Without the ability to resist change in motion, the plane wobbles as the P controller creates an opposite force to balance itself.