BodyGyro boat keeps spinning to face 0 degrees

I am using a boatkit that uses bodyposition, bodyvelocity and bodygyro. Whenever I spawn the boat, it always wants to face north before i can start using the boat normally. Even if I set the BodyGyro CFrame to the direction i want it to spawn facing, it just turns to 0 when i start turning.

I want it to be able to spawn facing whatever direction I like but still work as a normal boat.

Here’s the code:

local seat = script.Parent -- the seat which controls the whole boat
local speed = 0 -- a variable which represents the speed
local bv = script.Parent.BodyVelocity -- a variable which contains our bodyvelocity which will be used in order to move the ship
local bg = script.Parent.BodyGyro -- a variable which contains our bodygyro which will be used to rotate the ship

while true do -- a never ending loop
	wait() -- waits, in order to make the script not crash
	if seat.Throttle == 1 then -- checks if the boat should be throttling
		if speed < seat.MaxSpeed then -- if our speed is under the max speed
			speed = speed + 0.5 -- our speed goes up by 0.5
		end

		bv.Velocity = script.Parent.CFrame.LookVector * speed -- we set the bodyvelocity's velocity to our speed (makes the whole boat move)
	elseif seat.Throttle == 0 then -- checks if the boat should be not throttling
		if speed > 0 then -- if our speed is over 0
			speed = speed - 0.5 -- our speed goes down by 0.5
		elseif speed < 0 then -- if our speed is under 0 
			speed = speed + 0.5 -- our speed goes up by 0.5
		end

		bv.Velocity = script.Parent.CFrame.LookVector * speed -- we set the bodyvelocity's velocity to our speed (makes the whole boat not move)

	elseif seat.Throttle == -1 then -- checks if the boat should be going backwards
		if speed > -seat.MaxSpeed then -- if our speed is under the max speed
			speed = speed - 0.25 -- our speed goes down by 0.25
		end

		bv.Velocity = script.Parent.CFrame.LookVector * speed -- we set the bodyvelocity's velocity to our speed (makes the whole boat not move)
	end

	if seat.Steer == 1 then -- seat's steer 1 means that the boat wants to go right
		bg.CFrame = bg.CFrame * CFrame.fromEulerAnglesXYZ(0, -math.rad(1), 0) -- sets the bodygyro's cframe to its current cframe and puts the cframe of the y axis * -1 in degrees
	elseif seat.Steer == -1 then -- seat's steer -1 means that the boat wants to go left
		bg.CFrame = bg.CFrame * CFrame.fromEulerAnglesXYZ(0, math.rad(1), 0)-- sets the bodygyro's cframe to its current cframe and puts the cframe of the y axis * 1 in degrees
	end
end

image

External Media

Thanks, any help is much appreciated.