I have been doing some research on developer products and I have edited the sample script they gave on the wiki so that when players bought my developer product, they would receive 500 SpiritCoins (The currency of my game). Though nothing happens when I click the brick the script is in. Is it the location of the script that is messing me up or the script itself? I have a brick with a click detector in it that I want people to buy the developer product from. I went ahead and put the screengui and text button over it as well like the script said as to not change the script a lot. The script is inside the textbutton currently. So the hierarchy for where the script is located is game.Workspace.BuyButton500.ScreenGui.TextButton. Any ideas? Thanks!
--LocalScript in StarterPack -- setup local variables local BuyButton500 = game.Workspace.BuyButton500.SurfaceGui.TextButton local productId = 26121381 -- when player clicks on buy brick prompt him/her to buy a product BuyButton500.MouseButton1Click:connect(function() game:GetService("MarketplaceService"):PromptProductPurchase(game.Players.LocalPlayer, productId) end) --Script in BuyButton part -- setup local variables local MarketplaceService = game:GetService("MarketplaceService") local ds = game:GetService("DataStoreService"):GetDataStore("PurchaseHistory") local productId = 26121381 -- 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 player.leaderstats.SpiritCoins.Value = player.leaderstats.SpiritCoins.Value + 500 end end end -- record the transaction in a Data Store local playerProductKey = "player_" .. receiptInfo.PlayerId .. "_purchase_" .. receiptInfo.ProductId ds:IncrementAsync(playerProductKey, 1) -- tell ROBLOX that we have successfully handled the transaction return Enum.ProductPurchaseDecision.PurchaseGranted end
Ok the only thing wrong is you need to name the brick (Anything) then say find object then name of brick