In a project I am working on, I have plane that will change its lookvector via a BodyGyro controlled by the user's mouse. I have been able to make the plane rotate on it's Z-Axis and it will maintain its current roll until the mouse is moved again, creating an entirely new CFrame for the BodyGyro. I would like the direction of the plane to change without automatically resetting the plane's roll. I am not sure how to go about this. Any advice would be greatly appreciated!
Plane Roll
while KeyDown do seatpart.Value.Parent.Front.BodyGyro.CFrame = seatpart.Value.Parent.Front.BodyGyro.CFrame * CFrame.Angles(0,0,-math.rad(2)) wait() end
Plane Velocity
function mousemove() local gyro = seatpart.Value.Parent.Front:WaitForChild("BodyGyro") Player.Backpack.Folder.Direction.Value = mouse.UnitRay.Direction seatpart.Value.Parent.Front.BodyVelocity.Velocity = seatpart.Value.Parent.Front.CFrame.LookVector * 75 gyro.CFrame = CFrame.new(seatpart.Value.Parent.Front.CFrame.Position, mouse.Hit.p) wait() end mouse.Move:Connect(mousemove)
Here is a gif illustrating my issue. Notice how as soon as I move the mouse, any rotation along the Z-Axis is reset.