So I'm making an aircraft game and all of the aircraft have this script in them. I noticed some errors but don't know how to fix them. I would be grateful if someone could take a look at this script. It's a bit long but I hope you can help me. Ou and this script is for a plane. It should make the plane fly and be able to shoot with its guns(the gun script is not here) The problem is that it show a line under some values.

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_MachineGun(gun_Source, player)
	while shooting == true do
		missile = true
		local guns = gun_Source:GetChildren()
				local vehicle = findPlane(script.Parent.Parent.Parent)
		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,6)
				shoot.CFrame = guns[i].CFrame * CFrame.new(0,0,-50)
				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
		vehicle.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=7419350"
	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 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.Startup:Play()
				vehicle.Starter1.Smoke.Enabled = true
				wait(1)
				vehicle.Starter1.Smoke.Enabled = false
				vehicle.Fly:Play()
				vehicle.Direction.cframe = vehicle.CFrame
				vehicle.Direction.maxTorque = Vector3.new(4e3,4e3,4e3)
				vehicle.Thrust.maxForce = Vector3.new(9e20,9e20,9e20)
				vehicle.Speed.Value = vehicle.MaxSpeed.Value
				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 == "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 == "s" then
				if vehicle.Speed.Value > vehicle.MinSpeed.Value then
					vehicle.Speed.Value = vehicle.Speed.Value - 10
				end
			end
			if key == "w" then
				if vehicle.Speed.Value < vehicle.MaxSpeed.Value then
					vehicle.Speed.Value = vehicle.Speed.Value + 10
				end
			end
			if key == "f" 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 == "f" 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)

3 comments

0

what does it do and what is it supposed to do??

0

And what is the error messages, more specificly what lines are the error located at?

0

pretty much the entire code is broken and deprecated, and we dont fix free models for people. make ur own code