I am trying to figure out how to rotate a part up and down using body movers, but I don’t know which to use. I want to make this a single rotation, so I can rule out BodyAngularVelocity. I want to try something like:
No. Use BodyThrust if you’d like to apply a force relative to the orientation of a part or convert the force to local space with some CFrame magic. The Developer Hub provides an example:
Using the CFrame:vectorToWorldSpace(Vector3) method, it is possible to translate a force vector that is relative to the part into the world vector necessary for Force. For example, to apply a force to the left an object (no matter which way it’s facing), try:
magnitude = 100
left = Vector3.new(-1, 0, 0) * magnitude – You could also use Vector3.FromNormalId(Enum.NormalId.Left)
bodyForce.Force = bodyForce.Parent.CFrame:vectorToWorldSpace(left)
BodyGyro would not be my first, second, or third choice for this. The rotation about the end of the block suggests a hinge with motor or with AlignOrientation constraint. A Motor6D connected to an invisible anchored part could also be used if you need constant rotation speed (AlignOrientation is a PD controller, so it will have an easing-like acceleration).
BodyGyro is meant more for stabilizing something on one or more axes, it rotates something about its center of mass, so not ideal for something like a door or hinged part.