Some error with a gui

Hello! So I am making a gear gui and I am having some erro’s, As you can see in the photo. I am not sure whats wrong.

Code:

function onTouched(hit)
	if hit.Parent:findFirstChild("Humanoid") ~= nil and hit.Parent:findFirstChild("Chest") == nil then
	local g = game.ServerStorage.BeltsAndgear.PDbelt:Clone()
	g.Parent = hit.Parent
	local C = g:GetChildren()
	for i=1, #C do
		if C[i].className == "Part" or C[i].className == "UnionOperation" or C[i].className == "MeshPart" 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
	hit.Parent.Saude.Protecao.VestProtect.Value = 100
	hit.Parent.Saude.Protecao.VestVida.Value = 200
end
end

script.Parent.MouseButton1Click:Connect(onTouched)
script.Parent.Touched:Connect(onTouched)

Is this what you meant to use?

MouseButton1Click is for touching UI buttons, Touched is for touching BasePart instances.

MouseButton1Click doesn’t have a parameter which represents what “hit”, Touched does however.

3 Likes

Your ment to press a button on a gui.

It’s best to Activated on UI buttons to cater for both mouse and touch events. So:

script.Parent.MouseButton1Click:Connect(onTouched)

becomes

script.Parent.Activated:Connect(onTouched)
1 Like

This script should work.

function onTouched(hit)
	if hit.Parent:findFirstChild("Humanoid") ~= nil and hit.Parent:findFirstChild("Chest") == nil then
		local g = game.ServerStorage.BeltsAndgear.PDbelt:Clone()
		g.Parent = hit.Parent
		local C = g:GetChildren()
		for i=1, #C do
			if C[i].className == "Part" or C[i].className == "UnionOperation" or C[i].className == "MeshPart" 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
		hit.Parent.Saude.Protecao.VestProtect.Value = 100
		hit.Parent.Saude.Protecao.VestVida.Value = 200
	end
end

script.Parent.Activated:Connect(onTouched)```
1 Like

Ill try when I get home. Thanks!

2 Likes