Hey there, so I wanted to make a developer product that starts a warhead sequence. However, it isn't working, and there are no errors. Here's the code:
local MarketplaceService = game:GetService("MarketplaceService") local DataStoreService = game:GetService("DataStoreService") local Players = game:GetService("Players") -- Data store for tracking purchases that were successfully processed local purchaseHistoryStore = DataStoreService:GetDataStore("PurchaseHistory") -- Table setup containing product IDs and functions for handling purchases local productFunctions = {} productFunctions[965096622] = function(receipt, player) script.Parent.WarheadServer.Disabled = false -- the problem return true end -- The core 'ProcessReceipt' callback function local function processReceipt(receiptInfo) -- Determine if the product was already granted by checking the data store local playerProductKey = receiptInfo.PlayerId .. "_" .. receiptInfo.PurchaseId local purchased = false local success, errorMessage = pcall(function() purchased = purchaseHistoryStore:GetAsync(playerProductKey) end) -- If purchase was recorded, the product was already granted if success and purchased then return Enum.ProductPurchaseDecision.PurchaseGranted elseif not success then error("Data store error:" .. errorMessage) end -- Find the player who made the purchase in the server local player = Players:GetPlayerByUserId(receiptInfo.PlayerId) if not player then -- The player probably left the game -- If they come back, the callback will be called again return Enum.ProductPurchaseDecision.NotProcessedYet end -- Look up handler function from 'productFunctions' table above local handler = productFunctions[receiptInfo.ProductId] -- Call the handler function and catch any errors local success, result = pcall(handler, receiptInfo, player) if not success or not result then warn("Error occurred while processing a product purchase") print("\nProductId:", receiptInfo.ProductId) print("\nPlayer:", player) return Enum.ProductPurchaseDecision.NotProcessedYet end -- Record transaction in data store so it isn't granted again local success, errorMessage = pcall(function() purchaseHistoryStore:SetAsync(playerProductKey, true) end) if not success then error("Cannot save purchase data: " .. errorMessage) end -- IMPORTANT: Tell Roblox that the game successfully handled the purchase return Enum.ProductPurchaseDecision.PurchaseGranted end -- Set the callback; this can only be done once by one script on the server! MarketplaceService.ProcessReceipt = processReceipt
Thanks in advance. P.S. the script is in a regular script in ServerScriptService, and so is the script I'm trying to enable.
You can put the warhead script into Replicated Storage. Whenever you want to enable it, Clone the warhead script and parent it to wherever