I made a market place service script that works just fine during test mode. The script gives a Gachapon that when opened, will give a random item. It works perfectly on test mode, but when I open it in the normal game it says that the purchase has failed and something went wrong. And yes, I do have the right code in the right type of scripts. Here is the script, and the other script that goes along with it inside of the button:
Script in GUI button (local script)
local ProductId = 45579253 local player = game.Players.LocalPlayer script.Parent.MouseButton1Click:connect(function() Game:GetService("MarketplaceService"):PromptProductPurchase(player, ProductId) end)
Script that handles purchases (normal script)
local MarketplaceService = game:GetService("MarketplaceService") local LowID = 45579253 local PurchaseHistory = game:GetService("DataStoreService"):GetDataStore("PurchaseHistory") local boo = game.Players.LocalPlayer MarketplaceService.ProcessReceipt = function(receiptInfo) local playerProductKey = receiptInfo.PlayerId .. ":" .. receiptInfo.PurchaseId if PurchaseHistory:GetAsync(playerProductKey) then return Enum.ProductPurchaseDecision.PurchaseGranted end for i, player in ipairs(game.Players:GetPlayers()) do if player.userId == receiptInfo.PlayerId then if receiptInfo.ProductId == LowID then local o =game.Lighting.Gachapons.ChristmasGachapon:Clone() o.Parent = boo.Backpack end end end PurchaseHistory:SetAsync(playerProductKey, true) return Enum.ProductPurchaseDecision.PurchaseGranted end