Body Gyro Weird Behaviour

As seen in the following video, there are some quirks in my plane system using a BodyVelocity and BodyGyro.
The following is my code for the plane turning:

bodyGyro.CFrame = CFrame.new(
	mainPart.CFrame.Position, 
	mouse.Hit.Position,
) * CFrame.Angles(0,0,math.clamp(mainPart.RotVelocity.Y*2, -rad90Deg, rad90Deg))

And here is the code for the BodyVelocity:

bodyVelocity.Velocity = lookVector * thrust

As seen in this video(https://streamable.com/lxohjg), there are several bugs such as:

  1. The plane refuses to go upside down
  2. The plane wiggling right to left when going downwards
  3. The plane getting stuck when going up
  4. The plane not knowing what to do when you move your cursor quickly

Any answers help!

1 Like

You can try increasing the BodyGyro strength and dampening properties to prevent wiggling,
Try using ToObjectSpace, this might fix the plane not being able to go upside down :slight_smile:
“Smoothing” out mouse movement registering with lerp should fix the issues with quick cursor movement :+1:

Hi! Great suggestions, but what would I use ToObjectSpace on? mouse.hit.Position? I tried that, but it just broke the mouse movement entirely.