Scripting HelpersARCHIVE
A little piece of Roblox history. Preserved for everyone, one question at a time.Read about the archive →
COMMUNITY QUESTION

Why doesnt this work properly?

I am trying to make it so that once the player buys this product he will be rewarded with 50 credits. For some reason its not working.

Cash = script.Parent.Parent.Parent.Parent.Parent:WaitForChild("leaderstats"):WaitForChild("Credits")
-- setup local variables
local MarketplaceService = Game:GetService("MarketplaceService")
local ds = game:GetService("DataStoreService"):GetDataStore("PurchaseHistory")
local productId = 20768659

-- define function that will be called when purchase finished
MarketplaceService.ProcessReceipt = function(receiptInfo) 

    -- find the player based on the PlayerId in receiptInfo
    for i, player in ipairs(game.Players:GetChildren()) do
        if player.userId == receiptInfo.PlayerId then

            -- check which product was purchased
            if receiptInfo.ProductId == productId then
                --handle purchase. In this case we are highering the player's WalkSpeed         
                function onClick()
                    if Cash.Value >= 0 then
                        Cash.Value = Cash.Value + 100
                -- more feedback for the player.
                game.Workspace.DisplayScreen.SurfaceGui.TextBox.Text = player.Name .. " has purchased a healing potion."
                    end
                end
            end
        end
    end 
end

1 comment

0

Your onClick function has not been connected and is never manual called.

1 answer

Sir, there is a unwritten rule of not posting duplicate questions, I am assuming it goes under the category of spam which is a violation of the rules really without saying. But your question was already posted and is still on the front page. Please refrain from reposting your question, and allow time for your previous one to be answered, thank you.

This discussion is preserved as it was. New answers, comments, and votes are closed.