The script is to give the player an amount of cash when they buy it. When tested only one script (ount of four) work.

Working script:

local MPS = game:GetService("MarketplaceService")

MPS.ProcessReceipt = function(receiptInfo)
	if receiptInfo.ProductId == 1087304694 then
		local player = game.Players:GetPlayerByUserId(receiptInfo.PlayerId)
		player.leaderstat.Cash.Value = player.leaderstat.Cash.Value + 1000
		return Enum.ProductPurchaseDecision.PurchaseGranted
		
	elseif receiptInfo.ProductId == 0 then
		local player = game.Players:GetPlayerByUserId(receiptInfo.PlayerId)
		print("Cannot buy")
		return Enum.ProductPurchaseDecision.PurchaseGranted
	end
end

Failing script:

local MPS = game:GetService("MarketplaceService")

MPS.ProcessReceipt = function(receiptInfo)
	if receiptInfo.ProductId == 1087304716 then
		local player = game.Players:GetPlayerByUserId(receiptInfo.PlayerId)
		player.leaderstat.Strength.Value = player.leaderstat.Strength.Value + 1000
		return Enum.ProductPurchaseDecision.PurchaseGranted
		
	elseif receiptInfo.ProductId == 0 then
		local player = game.Players:GetPlayerByUserId(receiptInfo.PlayerId)
		print("Cannot buy")
		return Enum.ProductPurchaseDecision.PurchaseGranted
	end
end

2 comments

0

You can only have one script in the game that gives a function for ProcessReceipt, that's why only one works.

0

Okay