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

Developer Product Not Working?

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

2 comments

0

Why can't all question's be explained in this much detail? Up-voted.

0

Anyone out there know anything different I can try? I still have not figured it out.

1 answer

Ok the only thing wrong is you need to name the brick (Anything) then say find object then name of brick

1 comment

0

Can you write the line of code and where it would go in the script? The brick is called, BuyButton500

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