Help with awarding badges

I am trying to make it so when you finish a obby, you get a badge. Here is my script (it wont work):

local BadgeService = game:GetService("BadgeService")
 
local function awardBadge(player, badgeId)
    -- Fetch badge information
    local success, badgeInfo = pcall(function()
        return BadgeService:GetBadgeInfoAsync(badgeId)
    end)
    if success then
        -- Confirm that badge can be awarded
        if badgeInfo.IsEnabled then
            -- Award badge
            local awarded, errorMessage = pcall(function()
                BadgeService:AwardBadge(player.UserId, badgeId)
            end)
            if not awarded then
                warn("Error while awarding badge:", errorMessage)
            end
        end
    else
        warn("Error while fetching badge info!")
    end
end
bin.Touched:connect(function(Hit)
local player=game.Players:GetPlayerFromCharacter(Hit.Parent) 
  if Hit.Parent:FindFirstChild("Humanoid").Health~=0 then
     if player then
awardBadge(player, Id)
end
end
end)

awardBadge(player, Id)
You never specified what “Id” is in the script.

1 Like

https://developer.roblox.com/en-us/api-reference/function/BadgeService/AwardBadge