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?
It's pretty simple, you just need to prevent that error from occurring. To prevent that error just use FindFirstChild()
if seat:FindFirstChild(game.Players.LocalPlayer.Name) then else -- if no character in the seat then do nothing end
If FindFirstChild()
doesn't find the child then it returns nil but if it does find the child then it returns a reference to said child.