Speeder keeps on flipping whenever I add thrust to it

I am trying to make a speeder thingy but when ever I add thrust to it this happens
https://gyazo.com/a83c3f97464fa733e3e164570bddb9ca

Heres all of my Body Movers
Error_1

Stabilizer: thing thats supposed to keep it from doing this set so it only goes on X and Z axis and to the CFrame of what it starts out as Body Gyro

Turner: Changes the rotation on the Y axis to the CFrame of the camera Body Gyro

BodyThrust: when W is pressed it adds a force of 200 on the Z axis

Lift: keeps it floating 10 studs of whatevers beneath it Body Position

local Lift = script.Parent.Lift
local BG = script.Parent.Parent.Stable.Stablizer
local turner = script.Parent.Turner
local thrust = script.Parent.BodyThrust
local seat = script.Parent.Parent.Seat
local plate = script.Parent
local BowWows = script.Parent.Parent:GetDescendants()

local Cannon = game.ReplicatedStorage:WaitForChild("Movement")
local cam = game.ReplicatedStorage:WaitForChild("Camera")

local W = false
recent = nil
local sitting = false
local tab = {}

BG.CFrame = script.Parent.CFrame

for i = 1, #BowWows do
	if BowWows[i].ClassName == "Part" or BowWows[i].ClassName == "Seat" then
		table.insert(tab, BowWows[i])
	end
end


game.Players.PlayerAdded:Connect(function(player)
	player.CharacterAdded:Wait()
	table.insert(tab, player.Character)
end)

seat.Changed:Connect(function()
	if seat.Occupant then
		recent = game.Players[seat.Occupant.Parent.Name]
		cam:FireClient(recent, true)
		sitting = true
	else
		if recent ~= nil then
			cam:FireClient(recent, false)
		end
		sitting = false
	end
end)

cam.OnServerEvent:Connect(function(player, data)
	turner.CFrame = data
end)

Cannon.OnServerEvent:Connect(function(player, data)
	if sitting == true then
		if game.Players[seat.Occupant.Parent.Name] == player then
			print(data)
			if data == "W" then
				W = true
				if thrust.Force.Z ~= -200 then
					thrust.Force = thrust.Force - Vector3.new(0, 0, 200)
				end
			elseif data == "NoW" then
				W = false
				if thrust.Force.Z == -200 then
					thrust.Force = thrust.Force + Vector3.new(0, 0, 200)
				end
			end
		end
	end
end)

while true do
	local ray = Ray.new(script.Parent.Position,  script.Parent.Position - Vector3.new(0,1,0))
	local part, position = workspace:FindPartOnRayWithIgnoreList(ray, tab)
	if part then
		print(part.Name)
		local bop = position + Vector3.new(0, 10, 0)
		print(bop)
		Lift.Position = bop
	end
wait(0.1)
end
2 Likes

Well nvm then I solved it by grabbing another part and welding it to it and putting the stabilizer in there

Edit: nvm it is still flipping constantly please someone help adding it to a welded part just delayed it for awhile then it would happen again

2 Likes