the script show's no error but it doesn't reward the player
MarketplaceService.ProcessReceipt = function(receiptInfo) --//LOCALS local player = Players:GetPlayerByUserId(receiptInfo.PlayerId) local amount = Products[receiptInfo.ProductId] local plrId = receiptInfo.PlayerId local purchasedId = receiptInfo.ProductId for i, pass in pairs(gamepasses) do local passId = pass[1] local productId = pass[2] local giftUserId = playersGifted[plrId] local function ForSelf() local Success, Error = pcall(function() local player = Players:GetPlayerByUserId(receiptInfo.PlayerId) local amount = Products[receiptInfo.ProductId] player.leaderstats.Donated.Value += amount or 0 player.playerstats.Dpoints.Value += amount or 0 end) if Success then return Enum.ProductPurchaseDecision.PurchaseGranted else warn(Error) return Enum.ProductPurchaseDecision.NotProcessedYet end end local function ForSomeone() if giftUserId then playersGifted[plrId] = nil local success, err = pcall(function() giftedData:SetAsync(giftUserId .. "-" .. passId, true) end) if success then return Enum.ProductPurchaseDecision.PurchaseGranted else return Enum.ProductPurchaseDecision.NotProcessedYet end end if purchasedId == productId then ForSomeone() else ForSelf() end end end end ****