Doing something once values equal true

Actually not, i couldn’t find it on the output

Ok that might seem to be the issue then? If we can break this down a bit more then hopefully we’ll find the issue

Try this debugging script:

local service = game:GetService("BadgeService")
local badgeid = 2124707878

print("Script Online")
game.Players.PlayerAdded:Connect(function(Player)
    print("Player Added: "..Player.Name)
	local Connection

	local values = Player:WaitForChild("eggHuntLB")
	local ActivatedBools = 0
	local TotalBools = #values:GetChildren()
    print("Total Bools: "..TotalBools)
    print("Current Bools Activated: "..ActivatedBools)

	for _, Bool in pairs(values:GetChildren()) do
        print(Bool.Name)
		local function Changed(NewValue)
            print("Activated Changed function")
			if NewValue == false then
				ActivatedBools -= 1
			else
				ActivatedBools += 1
			end
			print("Activated Bools: "..ActivatedBools)
			if ActivatedBools == TotalBools then
				Connection:Disconnect()
                print("Disconnecting the function from receiving any more changed values")
			end
		end
		Connection = Bool.Changed:Connect(Changed)
	end

	while ActivatedBools ~= TotalBools do
		print(Player.Name.." does not have enough BoolValues!")
		wait(1)
	end
	print(Player.Name.." has enough BoolValues!")
	service:AwardBadge(Player.UserId, badgeid)
end)

image

image

Edit: I’ll have to be gone for a while to do some stuff, do you have discord or something i can contact you later to solve the problem?

Edit 2: I’ll have to be gone now, if you have discord please add me, Faczki#0001, else i’ll be back in about 30 minutes and i’ll contact you on the dev forums, thanks.

Ok what the heck

The only other thing I can think of is parenting where you put your script, but idk if that would solve it or not

Yeah I’ll definitely do that, that’s really strange though as it perfectly worked fine on my side

1 Like