Scripting HelpersARCHIVE
A little piece of Roblox history. Preserved for everyone, one question at a time.Read about the archive →
COMMUNITY QUESTION

Why did I got "Attempt to index global 'x' a nil value" Error?

This script sometimes works, but sometimes doesn't. It says that there are error in Line 22.

PlayerName = script.Parent.Parent.Parent.Name
Tool = script.Parent
Damage = script.Parent.Settings.FakeDamage
local ButtonPressed = false

Tool.Equipped:connect(function(Mouse)
	Mouse.Button1Down:connect(function()
----------------------------------------------------------------------	
		script.Parent.DamagePart.Touched:connect(function(hit)
			if not ButtonPressed then
				--is it not pressed?
				ButtonPressed = true
				print("Here")
				-----------------------
				if hit.Parent then
				local human = hit.Parent
				hum = human:FindFirstChild("Settings")
				if hum then
					hum.HP.Value = hum.HP.Value - script.Parent.Settings.FakeDamage.Value
					
					x = hit.Parent:FindFirstChild("Fighters")
					y = x:FindFirstChild(PlayerName)
					if not y then
						z = Instance.new("IntValue")
						z.Parent = x
						z.Name = PlayerName
					end
				else
					print("Settings Not Found")
				end
				
				wait(1)
				end
				------------------------
				ButtonPressed = false
			end
		end)
---------------------------------------------------------------------
	end)
end)

2 answers

hit.Parent does not have a child with this name

"Fighters"

that is why you are getting a nil value

I would recommend making sure that you are getting the child "Fighters" from the right parent

1 comment

0

There are "Fighters" in the Monster Model, but still..

Try a minor change to line 18: if hum and hit.Parent:FindFirstChild("Fighters") then

This discussion is preserved as it was. New answers, comments, and votes are closed.