Hello, recently me and my friend have been working on a 'Skip Stage' script that doesn't seem to work.

A kind man gave his solution but I do not understand it: https://imgur.com/a/k57VTad

If anyone could tell me what to replace etc. then I would be very grateful.

The code:

local MarketplaceService = game:GetService("MarketplaceService")

MarketplaceService.ProcessReceipt = function(receiptInfo)
local players = game.Players:GetPlayers()

local currency = "Stage"

local done = 0

for i,v in pairs(game.Players:GetChildren()) do
    if i.userId == receiptInfo.PlayerId then
        if receiptInfo.ProductId1 == 976013381 or 976013480 or 976016228 and done == 0 then 
            done = 1
            i.leaderstats.Stage.Value = i.leaderstats.Stage.Value + 1
            i.Character.Humanoid.Health = 0
            done = 0
            return Enum.ProductPurchaseDecision.PurchaseGranted
            end
        end
    end
end