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
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