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

Why does it say this variable is nil?

so the variable, coin1c, is nil. on line 43 (coin1c.Parent = script.Parent) why is this?

local CoinDropping = false

	if CoinDropping == false then
		CoinDropping = true
	if script.Parent:FindFirstChild("Coin1") then
		coin1c = script.Parent.Coin1:Clone()
		script.Parent.Coin1.CFrame = script.Parent.PointL.CFrame
		script.Parent.CoinBPos:Clone().Parent = script.Parent.Coin1 
		script.Parent.CoinMover:Clone().Parent = script.Parent.Coin1
		script.Parent.Button.ClickDetector.MouseClick:connect(function()
			script.Parent.Coin1.CoinBPos:Destroy()
		end)
		CoinDropping = false
	elseif script.Parent:FindFirstChild("Coin2") then
		coin2c = script.Parent.Coin2:Clone()
		script.Parent.Coin2.CFrame = script.Parent.PointL.CFrame
		script.Parent.CoinBPos:Clone().Parent = script.Parent.Coin2
		script.Parent.CoinMover:Clone().Parent = script.Parent.Coin2
		script.Parent.Button.ClickDetector.MouseClick:connect(function()
			script.Parent.Coin2.CoinBPos:Destroy()
		end)
		CoinDropping = false
	elseif script.Parent:FindFirstChild("Coin3") then
		coin3c = script.Parent.Coin3:Clone()
		script.Parent.Coin3.CFrame = script.Parent.PointL.CFrame
		script.Parent.CoinBPos:Clone().Parent = script.Parent.Coin3
		script.Parent.CoinMover:Clone().Parent = script.Parent.Coin3
		script.Parent.Button.ClickDetector.MouseClick:connect(function()
			script.Parent.Coin3.CoinBPos:Destroy()
		end)
		CoinDropping = false
	elseif script.Parent:FindFirstChild("Coin4") then
		coin4c = script.Parent.Coin4:Clone()
		script.Parent.Coin4.CFrame = script.Parent.PointL.CFrame
		script.Parent.CoinBPos:Clone().Parent = script.Parent.Coin4
		script.Parent.CoinMover:Clone().Parent = script.Parent.Coin4
		script.Parent.Button.ClickDetector.MouseClick:connect(function()
			script.Parent.Coin4.CoinBPos:Destroy()
		end)
		CoinDropping = false
	else
		script.Parent.PointBoard.Points.Value = 0
		coin1c.Parent = script.Parent
		coin2c.Parent = script.Parent
		coin3c.Parent = script.Parent
		coin4c.Parent = script.Parent
		script.Parent.mainreset.Disabled = true
		script.Parent.mainreset.Disabled = false
		CoinDropping = false
	end
	end

3 comments

0

You have not defined coin1c in that section.

0

but i made it global to the whole script havent i?

0

How could i fix this?

1 answer

I think you might want to WaitForChild them at the beginning of the script. Plus, Use Individual If(s) If I'm correct, Your script, it's like, First if checks, no, second, no, third no, after all that, it goes to the else statement, Sadly at the else statement, You're setting the parents without a variable defined, An "If" with an "ElseIf" and "Else" It would only select "One" To do, First to Bottom. First until 1 before bottom, fails, and at the bottom There's an Else, it would (ONLY) go with that else So it means that the variable isn't even Declared by your Ifs EDIT: This might be what i would do for a fix

local CoinDropping = false

if CoinDropping == false then
  CoinDropping = true
  if script.Parent:FindFirstChild("Coin1") then
    coin1c = script.Parent.Coin1:Clone()
    script.Parent.Coin1.CFrame = script.Parent.PointL.CFrame
    script.Parent.CoinBPos:Clone().Parent = script.Parent.Coin1
    script.Parent.CoinMover:Clone().Parent = script.Parent.Coin1
    script.Parent.Button.ClickDetector.MouseClick:connect(function()
    script.Parent.Coin1.CoinBPos:Destroy()
    end)
    CoinDropping = false
  end
  if script.Parent:FindFirstChild("Coin2") then
    coin2c = script.Parent.Coin2:Clone()
    script.Parent.Coin2.CFrame = script.Parent.PointL.CFrame
    script.Parent.CoinBPos:Clone().Parent = script.Parent.Coin2
    script.Parent.CoinMover:Clone().Parent = script.Parent.Coin2
    script.Parent.Button.ClickDetector.MouseClick:connect(function()
    script.Parent.Coin2.CoinBPos:Destroy()
    end)
    CoinDropping = false
  end
  if script.Parent:FindFirstChild("Coin3") then
    coin3c = script.Parent.Coin3:Clone()
    script.Parent.Coin3.CFrame = script.Parent.PointL.CFrame
    script.Parent.CoinBPos:Clone().Parent = script.Parent.Coin3
    script.Parent.CoinMover:Clone().Parent = script.Parent.Coin3
    script.Parent.Button.ClickDetector.MouseClick:connect(function()
    script.Parent.Coin3.CoinBPos:Destroy()
    end)
    CoinDropping = false
  end
  if script.Parent:FindFirstChild("Coin4") then
    coin4c = script.Parent.Coin4:Clone()
    script.Parent.Coin4.CFrame = script.Parent.PointL.CFrame
    script.Parent.CoinBPos:Clone().Parent = script.Parent.Coin4
    script.Parent.CoinMover:Clone().Parent = script.Parent.Coin4
    script.Parent.Button.ClickDetector.MouseClick:connect(function()
    script.Parent.Coin4.CoinBPos:Destroy()
    end)
    CoinDropping = false
  end
  script.Parent.PointBoard.Points.Value = 0
  if coin1c then coin1c.Parent = script.Parent end
  if coin2c then coin2c.Parent = script.Parent end
  if coin3c then coin3c.Parent = script.Parent end
  if coin4c then coin4c.Parent = script.Parent end
  script.Parent.mainreset.Disabled = true end
  script.Parent.mainreset.Disabled = false end
  CoinDropping = false
end

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