UserHasBadgeAsync failed due to empty response

local badges = game:GetService("BadgeService")
local userHasBadge = badges.UserHasBadgeAsync
local awardBadge = badges.AwardBadge
local badgeId = 2125468623 



game.Players.PlayerAdded:Connect(function(Player)
	Player.leaderstats.Stage.Changed:Connect(function()
		if Player.leaderstats.Stage.Value >= 115 then
			local success,result = pcall(userHasBadge,badges,Player.UserId,badgeId)
			if success then
				if not result then
					badges:AwardBadge(Player.UserId,badgeId)
				end
			end
		end
	end)
end)
1 Like

Doesn’t detect leaderstats. Pretty sure you have to do WaitForChild:("leaderstats")

1 Like

Yes, do that, in the 2nd line, here :

Player.leaderstats.Stage.Changed:Connect(function()

1 Like

Player:WaitForChild("leaderstats").Stage.Changed:Connect(function()?

1 Like

Sorry for taking a while i was busy with something else

1 Like
local badges = game:GetService("BadgeService")
local userHasBadge = badges.UserHasBadgeAsync
local awardBadge = badges.AwardBadge
local badgeId = 2125468623 



game.Players.PlayerAdded:Connect(function(Player)
	Player:WaitForChild("leaderstats").Stage.Changed:Connect(function()
		if Player.leaderstats.Stage.Value >= 115 then
			local success,result = pcall(userHasBadge,badges,Player.UserId,badgeId)
			if success then
				if not result then
					badges:AwardBadge(Player.UserId,badgeId)
				end
			end
		end
	end)
end)
2 Likes