bin = script.Parent
plane = nil
hold = false
local debounce = false
local planedebounce = false
local stuntdebounce = false
local controlling = false
local currentspeed = 0
local turn = nil
fly = false
local missile = false
local shooting = false
function fire(gun_Source, player)
missile = true
local guns = gun_Source:GetChildren()
for i = 1,#guns do
if guns[i].Name == "RocketLauncher" and guns[i].className == "Part" then
local shoot = Instance.new("Part")
shoot.BrickColor = BrickColor.new("Really black")
shoot.formFactor = "Plate"
shoot.Size = Vector3.new(1,0.4,2)
shoot.CFrame = guns[i].CFrame * CFrame.new(0,0,-5)
shoot.Name = "Missile"
local d = game:GetService("Debris")
d:AddItem(shoot,15)
local force = Instance.new("BodyVelocity")
force.Parent = shoot
force.Name = "Move"
local x1 = guns[i].Velocity.x
local y1 = guns[i].Velocity.y
local z1 = guns[i].Velocity.z
force.velocity = Vector3.new(x1+(x1/5),y1+(y1/5),z1+(z1/5))
local creator = Instance.new("ObjectValue")
creator.Name = "creator"
creator.Value = player
creator.Parent = shoot
local swoosh = script.Parent:findFirstChild("Swoosh"):clone()
swoosh.Parent = shoot
swoosh:play()
local boom = script.Parent:findFirstChild("Explosion"):clone()
boom.PlayOnRemove = true
boom.Parent = shoot
local rocket = script:findFirstChild("RocketScript"):clone()
rocket.Disabled = false
rocket.Parent = shoot
shoot.Parent = Workspace
end
end
script.Parent:findFirstChild("Reload"):play()
local swish = script.Parent:findFirstChild("FireRocket")
swish:play()
for i = 1,28 do
wait()
swish.Volume = swish.Volume - 0.025
end
swish:stop()
swish.Volume = 0.7
wait(1)
missile = false
end
function fire_MachineGun(gun_Source, player)
while shooting == true do
missile = true
local guns = gun_Source:GetChildren()
for i = 1,#guns do
if guns[i].Name == "MachineGun" and guns[i].className == "Part" then
local shoot = Instance.new("Part")
shoot.BrickColor = BrickColor.new("Bright yellow")
shoot.formFactor = "Custom"
shoot.Size = Vector3.new(0.4,0.4,2)
shoot.CFrame = guns[i].CFrame * CFrame.new(0,0,-5)
shoot.Name = "Bullet"
local d = game:GetService("Debris")
d:AddItem(shoot,5)
local force = Instance.new("BodyVelocity")
force.Parent = shoot
force.Name = "Move"
force.velocity = guns[i].CFrame.lookVector * 750
local creator = Instance.new("ObjectValue")
creator.Name = "creator"
creator.Value = player
creator.Parent = shoot
local shot = script:findFirstChild("GunScript"):clone()
shot.Disabled = false
shot.Parent = shoot
shoot.Parent = Workspace
end
end
script.Parent:findFirstChild("FireGun"):play()
wait(0.15)
end
missile = false
end
function computeDirection(vec)
local lenSquared = vec.magnitude * vec.magnitude
local invSqrt = 1 / math.sqrt(lenSquared)
return Vector3.new(vec.x * invSqrt, vec.y * invSqrt, vec.z * invSqrt)
end
function move(point, engine)
local origincframe = engine:findFirstChild("Direction").cframe
size = engine.Size
target = engine.Position+((point - engine.Position).unit*100)
local dir = (target - engine.Position).unit
local spawnPos = engine.Position
left = engine.CFrame*CFrame.new(-size.x/2, 0, 0).p
right = engine.CFrame*CFrame.new(size.x/2, 0, 0).p
md = (target - engine.Position).magnitude
foebmd = engine.CFrame*CFrame.new(0, 0, -md).p
toleft = (target -left).magnitude
toright = (target -right).magnitude
rot = ((foebmd - target).magnitude/10)
local pos = spawnPos + (dir * 1)
turn = math.rad((rot/10)*engine.TiltFactor.Value)
if turn > math.rad(89) then
turn = math.rad(89)
end
if toleft< toright and toleft >rot then
engine:findFirstChild("Direction").cframe = CFrame.new(pos, pos + dir)*CFrame.fromEulerAnglesXYZ(0, 0, turn)
elseif toleft > toright and toright >rot then
engine:findFirstChild("Direction").cframe = CFrame.new(pos, pos + dir)*CFrame.fromEulerAnglesXYZ(0, 0, -turn)
else
engine:findFirstChild("Direction").cframe = CFrame.new(pos, pos + dir)
end
engine:findFirstChild("Direction").P = engine.TurnSpeed.Value
end
function findPlane(player)
local list = player.Character:GetChildren()
for x = 1, #list do
if (list[x].Name == "AircraftSeat") then
return list[x]
end
end
return nil
end
function onButton1Down(mouse)
local vehicle = findPlane(script.Parent.Parent.Parent)
if vehicle ~= nil and debounce == false and planedebounce == false then
if fly == false and taxi == false then return end
debounce = true
controlling = true
while true do
wait()
local engine = vehicle
local position = mouse.Hit
local target = position.p
move(target, engine)
if planedebounce == true or
controlling == false then break end
end
wait(0.1)
debounce = false
end
end
function onButton1Up(mouse)
controlling = false
end
function onSelected(mouse)
mouse.Icon = "http://www.roblox.com/asset/?id=314019976"
game.Workspace.CurrentCamera.CameraSubject = bin.Parent.Parent.Character.Head
game.Workspace.CurrentCamera.CameraType = "Track"
mouse.Button1Down:connect(function() onButton1Down(mouse) end)
mouse.Button1Up:connect(function() onButton1Up(mouse) end)
mouse.KeyDown:connect(onKeyDown)
mouse.KeyUp:connect(onKeyUp)
mouse.Move:connect(function() Fly(mouse) end)
mouse.Idle:connect(function() Fly(mouse) end)
end
function onDeselected(mouse)
game.Workspace.CurrentCamera.CameraSubject = bin.Parent.Parent.Character.Humanoid
game.Workspace.CurrentCamera.CameraType = "Custom"
end
function Fly(mouse)
local vehicle = findPlane(script.Parent.Parent.Parent)
if (vehicle==nil) then return end
vehicle.Thrust.velocity = (vehicle.CFrame.lookVector * currentspeed) + Vector3.new(0,vehicle.LiftTrim.Value/100,0)
end
function onKeyDown(key)
if (key~=nil) then
key = key:lower()
local vehicle = findPlane(script.Parent.Parent.Parent)
if (vehicle==nil) then return end
if key == "y" then
fly = true
vehicle.Direction.cframe = vehicle.CFrame
vehicle.Direction.maxTorque = Vector3.new(4e3,4e3,4e3)
vehicle.Thrust.maxForce = Vector3.new(9e20,9e20,9e20)
while fly == true do
if currentspeed < vehicle.Speed.Value then
currentspeed = currentspeed + 1
elseif currentspeed > vehicle.Speed.Value then
currentspeed = currentspeed - 1
end
if vehicle.Acceleration.Value > 1000 then vehicle.Acceleration.Value = 1000 end
wait((1-(vehicle.Acceleration.Value/1000))+0.01)
if fly == false then break end
end
end
if key == "x" then
fly = false
currentspeed = 0
vehicle.Direction.maxTorque = Vector3.new(0,0,0)
vehicle.Thrust.maxForce = Vector3.new(0,0,0)
end
if key == "w" then
if vehicle.Speed.Value < vehicle.MaxSpeed.Value then
vehicle.Speed.Value = vehicle.Speed.Value + 10
end
end
if key == "s" then
if vehicle.Speed.Value > -10 then
vehicle.Speed.Value = vehicle.Speed.Value - 10
end
end
if key == "p" then
vehicle.Speed.Value = vehicle.MaxSpeed.Value
end
if key == ";" then
vehicle.Speed.Value = 0
end
if (key=="'") and (bin.Locked.Value == false) then
local repl = script:clone()
repl.Parent = bin
wait(1)
script:remove()
end
if key == "l" and fly == true then
vehicle.Direction.maxTorque = Vector3.new(4e3,0,4e3)
local frame = vehicle:FindFirstChild("OriginCFrame")
if frame ~= nil then
vehicle.Direction.cframe = frame.Value
end
wait(2)
vehicle.Direction.cframe = vehicle.CFrame
vehicle.Direction.maxTorque = Vector3.new(4e3,4e3,4e3)
end
if key == "f" and missile == false then
fire(vehicle, bin.Parent.Parent)
end
if key == "c" and missile == false then
shooting = true
fire_MachineGun(vehicle, bin.Parent.Parent)
end
end
end
function onKeyUp(key)
if (key~=nil) then
key = key:lower()
if key == "c" then
shooting = false
end
local vehicle = findPlane(script.Parent.Parent.Parent)
if (vehicle==nil) then return end
end
end
bin.Selected:connect(onSelected)
bin.Deselected:connect(onDeselected)
So, there's basically this plane we're using and every time you jump out of the pilot seat the game spams the hell out of pilots game with an error message saying that it can't find the Seat part
https://gyazo.com/5fff64b6d17c3ec6c7727e8d564cff08 --What it shows in the console
Anything I can add to the script to make that stop?

1 comment
can u paste shorter code or something