everything seems to work fine and it even prints the badge has granted but the badge itself doesnt being awarded
local marketPlaceSetvice = game:GetService("MarketplaceService") local badgeService = game:GetService("BadgeService") local Players = game:GetService("Players") local SupporterBadgeId = 2124763358 local Donate20Id = 18795242 game.Players.PlayerAdded:Connect(function(player) hasPass = marketPlaceSetvice:UserOwnsGamePassAsync(player.UserId, Donate20Id) if hasPass then local playerId = player.UserId badgeService:AwardBadge(playerId, SupporterBadgeId) end end) local function onPromptGamePassPurchaseFinished(player, purchasePassID, purchaseSuccess) if purchaseSuccess == true and purchasePassID == Donate20Id then local playerId = player.UserId badgeService:AwardBadge(playerId, SupporterBadgeId) print("Badge has granted.") end end marketPlaceSetvice.PromptGamePassPurchaseFinished:Connect(onPromptGamePassPurchaseFinished)