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

It keeps saying "Attempt to compare number with nil"? Can anyone help?

function checkSurvivorNumber(count)
    local count = 0
    local players = game.Players:GetChildren()
    for i = 1, #players do
	    if players[i] ~= nil then
	    if players[i].TeamColor == BrickColor.new("Bright blue") then
			    count = count + 1
			    print("Checking Survivors")
			
		    end
	   end
    end
end

if count < 1 or count == nil then
  	 time.Value = 0 
  	 for i = 1,#players do
		   	 if players[i].TeamColor == BrickColor.new("Bright red") then
		 game.Workspace.DebugOutput.Value = "Awarding Killer's points"
		 	   end
		    end
	   game.Workspace.Killerwin.Value = true
	   end
	   print("Checking if killers won")

On Line 15, it keeps saying "Attempt to compare number with nil". I've tried everything and I'm still confused. I'm new to scripting and I just wanted to know why it caused this. Even if I delete COUNT == NIL it still says the same thing over and over.

6 comments

0

You should start by tabbing your code properly.

0

How would I do that?

0

Count is a local variable. If you were to try to use it outside of that function, it would return as nil.

0

So how shall I solve it, good sir?

0

Switch the comparisons. "if count == nil or count < 1 then"

0

I think I solved it. I think I've added too many "ends" to my script . I feel much better now. Thank you for trying to help me. If you want me to give you a check mark, just post it.

1 answer

Put local count outside the function and it will fix.

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