I have a plane that has broken with age, and I would like to fix it. It also requires a tool to fly; which I would like to remove. How can I fix this?

Hey guys.

I’m not good with scripting at all, so i’m gonna need some major help.

I have this really old broken plane here that i’d like to get up off the ground once again in, and i’m not sure what to do. here is the link to the asset.

This plane needs a tool, but i’d like to re-write the plane so that it no longer needs this tool.
Even without the tool, the plane has seriously aged and code is beyond obsolete. I was wondering if anyone could help me rewrite and simplify the code so that it works once again.

Again, I am not very familiar with code but trying desperately to learn to with all this time during the pandemic.

so with that being said, here is a screenshot of the layout of the model:

Here is the script that is the child of “Fighter”:

local boom = false

function createExplosion(position)

explosion = Instance.new("Explosion")
explosion.Position = position
explosion.BlastRadius = 12
explosion.Parent = game.Workspace

end

function onTouch(part)
	if boom == true then return end
	if (part.Name == "Rocket") or (part.Name == "Safe") or (part.Parent.Parent.Parent == script.Parent) or (part.Parent:findFirstChild("Humanoid")) then return end
	if (script.Parent.Parts.Tip.Velocity.x > 50) or (script.Parent.Parts.Tip.Velocity.x < -50) or (script.Parent.Parts.Tip.Velocity.z > 50) or (script.Parent.Parts.Tip.Velocity.z < -50) then
	boom = true
	createExplosion(script.Parent.Parts.Engine.Position)
	script.Parent:BreakJoints()
	local stuff = script.Parent:children()
	for i=1,#stuff do
		if stuff[i].Name == "BodyKit" or
		stuff[i].Name == "Parts" then
		local parts = stuff[i]:children()
			for p = 1, #parts do
				if parts[p].className == "Part" then
				local velo = Instance.new("BodyVelocity")
				velo.maxForce = Vector3.new(9.9e+036, 9.9e+036, 9.9e+036)
				velo.velocity = Vector3.new(math.random(-15,15),math.random(-15,15),math.random(-15,15))
				velo.Parent = parts[p]
				end
			end
		end
	end
	wait(4)
	script.Parent:remove()
	end
end

script.Parent.Parts.Tip.Touched:connect(onTouch)

And here is the script under “Parts”:

position = script.Parent.Engine.Position
local frame = Instance.new("CFrameValue")
frame.Name = "OriginCFrame"
frame.Value = script.Parent.Engine.CFrame
frame.Parent = script.Parent

local object = Instance.new("ObjectValue")
object.Value = script.Parent.Parent.Parent

seat = script.Parent.Seat

function onChildAdded(part)
	if part.className == "Weld" then
		local torso = part.Part1
		if torso ~= nil then
			local parent = torso.Parent
			if parent ~= nil then
				script.Parent.Parent.Parent = parent
				while true do
					wait(2)
					local pos = script.Parent.Engine.Position
					if (position - pos).magnitude > 30 then
						if object.Value ~= nil then
							object.Value.Regen.Value = 1
							wait(.5)
							object.Value.Regen.Value = 0
							object.Value = nil
						end
					break end
				end
				while true do
					print("Loop")
					wait(2)
					if part == nil then
						script.Parent.Parent.Parent = game.Workspace
						script.Parent.Parent:MakeJoints()
					break end
				end
			end
		end
	end
end
seat.ChildAdded:connect(onChildAdded)

There is alot of stuff in the model “Parts”, but here is “Engine”, which has important components under it.


Here is the script under “Engine”:

model = script.Parent.Parent.Parent
backup = model:clone()
local debounce = false

function onTouch(part)
	if (part.Name == "Safe") and (debounce == false) and (script.Parent.Count.Value == 0) then
	debounce = true
	wait(2)
	model = backup:clone()
	model.Parent = game.Workspace
	model:makeJoints()
	script.Parent.Count.Value = 1
	debounce = false
	end
end 
script.Parent.Touched:connect(onTouch)

That’s all. I’m cool with beginning anywhere, and even just thinning out the model itself, as you can see it’s a mess of CFrame values.

1 Like

You’re just better off just rewritting the code since those old scripts use stuff that just doesnt work or doesnt make sense with modern roblox code. Only thing I can say is to use math.huge() for Bodyforce velocities instead of “9.9e+036”. Other than that, I really dont know. :confused:

Good luck though!

I have no idea how to code, let alone write a plane. that is why I presented this code because I don’t know what else to do.

Then you should move this to collabration and recruitment, if your asking for scripts.

I’m guessing from the hierarchy that this is the old TurboFusion planekit? If so honestly I wouldn’t bother rewriting it. That kit broke at least a year ago and frankly it is more hassle to repair than its worth and finding a scripter to modernise it would most likely be rather costly.
That said if you were to redo I wish you the best of luck as it is a classic of roblox aviation!

If however you understandably do not wish to do this I would suggest transitioning to either the SkyTech or GS Plane kit as they are both marvellous pieces of tech and rather simple to setup with your aircraft (my personal preference is the skytech one but unfortunately it does not have weapons) and the GS one is a bit of a pain to setup as they don’t have a basic installation kit as of present (I would also highly suggest joining their comms server found on their group page for help and tips on its usage)


GS PlaneKit:

SkyTech Planekit:

2 Likes

thank you so much.
bruhhhhhhhhh