Boat controls flip when its turned the opposite way

This is my first time making a boat chassis (if I can call it that). Its’ working, however, if I turn the boat backwards, the controls get flipped, as seen in the gif below

local BodyForce = script.Parent.BodyForce
local TorqueValue = script.Parent.T
local force = 1 * 10^3
local torque = 2 * 10^3
function a()
	BodyForce.Force = Vector3.new(force * -script.Parent.Steer * script.Parent.Throttle, 0, force * -script.Parent.Throttle)
	TorqueValue.Torque = Vector3.new(0, torque * -script.Parent.Steer, 0)
end

while wait() do
	a()
end

boat - YouTube
(video cus gif wouldnt load here, sorry)

S makes it go forward, W makes it go backwards, which is wrong.
image

(sidenote: if anyone had any suggestions on the torque let me know because it looks unrealistic when it turns)

Have you tried factoring part.CFrame.LookVector, this returns a Vector that tells what way the part is facing. Multiply it by whatever makes your thing go forwards.

Small suggestion, you dont have to implement this

Try using RunService.Heartbeat, you’ll get a loop thats at the same tick rate as your fps

What do you mean by “Multiply it by whatever makes your thing go forwards.”, do you mean the BodyForce? And if so, what would that do