My boat only turns 1 direction, and does not turn the opposite. (BodyGyro)

It won’t go right for some reason and I’m confused, because It seems that I’m doing this the opposite direction of which it’s going yet it still steers the same direction no matter what way I turn.

if seat.Steer < 0 then
	steer.CFrame = rooter.CFrame * CFrame.Angles(math.rad(-5),0,0)
elseif seat.Steer > 0 then
	steer.CFrame = rooter.CFrame * CFrame.Angles(math.rad(5),0,0)
elseif seat.Steer == 0 then
		
end

(also fyi steer variable is a bodygyro)

3 Likes

Not really sure if this is the problem, but maybe try doing this, it replaces the if statements as well with one line:

steer.CFrame = rooter.CFrame * CFrame.fromEulerAnglesXYZ(math.rad(5 * -seat.SteerFloat), 0, 0)

Try
steer.CFrame = CFrame.Angles(0, cang + steerFloat * speed, 0)
where cang will be the current Y angle
or whatever the angle youre using may be.

Typically I would use some sort of modern force constraint though (torque constraint or vector force constraint) instead and just apply rotational force.