I don't know what's wrong here, the first time it works fine, but after resetting and touching the giver again, it won't work. Output doesn't show any errors whatsoever.
function onTouched(hit)
if hit.Parent:findFirstChild("Humanoid") ~= nil and hit.Parent:findFirstChild("Backpack") == nil then
local h = hit.Parent:findFirstChild("Humanoid")
if h ~= nil then
gui = script:GetChildren()
for i=1, #gui do
if gui[i].className == "GuiMain" then
x = gui[i]:clone()
player = game.Players:GetPlayerFromCharacter(hit.Parent)
if player ~= nil then
x.Parent = player.PlayerGui
else
print("Cataphract failed.")
end
end
end
end
local g = game.Lighting.Backpack:clone()
g.Parent = hit.Parent
local C = g:GetChildren()
for i=1, #C do
if C[i].className == "Part" then
local W = Instance.new("Weld")
W.Part0 = g.Middle
W.Part1 = C[i]
local CJ = CFrame.new(g.Middle.Position)
local C0 = g.Middle.CFrame:inverse()*CJ
local C1 = C[i].CFrame:inverse()*CJ
W.C0 = C0
W.C1 = C1
W.Parent = g.Middle
end
local Y = Instance.new("Weld")
Y.Part0 = hit.Parent.Torso
Y.Part1 = g.Middle
Y.C0 = CFrame.new(0, 0, 0)
Y.Parent = Y.Part0
end
local h = g:GetChildren()
for i = 1, # h do
h[i].Anchored = false
h[i].CanCollide = false
end
end
end
script.Parent.Touched:connect(onTouched)

1 comment
Well, there's no ClassName that's 'GuiMain'. check line 8 again.