I am trying to make a basic airplane that uses the player's mouse to steer the vehicle. I've tried for hours but I can't find any solution...
I have only figured out how to move one part using my mouse, I can't get the plane models' children (every part of the plane) to move according to its speed and the mouse position, please help.
Here is my code:
local seat = script.Parent local front_speed = 1 local up_speed = 0 local max_height = 100 local throttle = 0 local throttleMax = 100 local throttleDown = false local throttleUp = false local UserInputService = game:GetService("UserInputService") while task.wait() do local TweenService = game:GetService("TweenService") script.AngularVelocity.AngularVelocity = Vector3.new(0, -1 * seat.Steer, 0) print(workspace.Plane2.mainbase.VehicleSeat.Position.Y) -- equal to (20^2 / 2*10) = 400/20 = 20 studs if seat.Throttle == 1 then throttleUp = true d = 1 repeat d = d + 1 script.LinearVelocity.VectorVelocity = Vector3.new(0, up_speed, -front_speed) front_speed = front_speed * 1.05 wait(0.1) if front_speed >= 100 then up_speed = 5 end if front_speed < 100 then up_speed = 0 end if front_speed > 500 then script.LinearVelocity.VectorVelocity = Vector3.new(0, up_speed, -500) end print(d) until d == 100 or seat.Throttle == 0 or seat.Throttle == -1 or front_speed == 500 script.LinearVelocity.VectorVelocity = Vector3.new(0, up_speed, -front_speed) --[[d = 1 repeat d = d + 1 for _, v in pairs(script.Parent.Parent.Parent:GetChildren()) do v.Orientation = Vector3.new(0,0,d) end wait(0.1) until d == 20 ]] end if seat.Throttle == -1 then repeat d = d - 1 script.LinearVelocity.VectorVelocity = Vector3.new(0, -up_speed, -front_speed) front_speed = front_speed * 0.95 wait(0.1) if front_speed > 100 and up_speed > 1 then up_speed = -5 end if front_speed == 0 then d = 0 end print(d) until d == 100 or seat.Throttle == 0 or seat.Throttle == -1 or front_speed == 500 script.LinearVelocity.VectorVelocity = Vector3.new(0, -up_speed, -front_speed) end if seat.Throttle == 0 then script.LinearVelocity.VectorVelocity = Vector3.new(0, 0, -front_speed) end if seat.Throttle ~= 1 and seat.Throttle ~= 0 and math.round(seat.Position.Y - seat.Size.Y / 2) < -80 then c = 1 repeat script.LinearVelocity.VectorVelocity = Vector3.new(0, 0, -front_speed - 1) front_speed = front_speed - 1 c = c + 1 wait(0.2) if seat.Throttle == 1 then script.LinearVelocity.VectorVelocity = Vector3.new(0, up_speed, -front_speed) break end until c == 100 end if seat.Position.Y + seat.Size.Y / 2 > max_height then script.LinearVelocity.VectorVelocity = Vector3.new(0, -up_speed, -front_speed) end if seat.Occupant == nil then script.LinearVelocity.VectorVelocity = Vector3.new(0, 0, 0) end end mouse.Move:connect(function() script.Parent.Parent.Parent:GetChildren().Position = mouse.Hit.p end)