I've been trying endlessly to process a script to formulate game currency, nothing has worked out well. Many games nowadays have an in-game currency that players can use to purchase game items, upgrade items, etc. I'm trying to figure out how this is done. This is obviously a big task and I'm a little in over my head, but it's required for the game I'm developing. My game is a Halloween themed game and the game "Currency" is candy. Is there a way to create this so that players can purchase more candy (through developer products), use it to purchase items through a gui store (items should stay purchased when the player joins the game again), and keep their candy amount when they join the game again?
The script below is a purchase processor but I'm been stuck since making this.
repeat wait() until script.Parent.Name == 'ServerScriptService' local MarketplaceService = Game:GetService('MarketplaceService') test = false MarketplaceService.ProcessReceipt = function(receiptInfo) local playerData = PlayerDataStore:GetSaveDataById(receiptInfo.PlayerId) playerData:Update({'Purchases', 'InGameMoney'}, function(oldPurchases, oldMoney) if not oldPurchases then oldPurchases = {} end if not oldPurchases[receiptInfo.PurchaseId] then if receiptInfo.CurrencySpent > 1 and receiptInfo.CurrencyType == Enum.CurrencyType.Tix and not test then amount = receiptInfo.CurrencySpent / 1/2 oldMoney = oldMoney + amount elseif receiptInfo.CurrencySpent > 1 and receiptInfo.CurrencyType == Enum.CurrencyType.Robux and not test then amount = receiptInfo.CurrencySpent / receiptInfo.CurrencySpent oldMoney = oldMoney + amount end return oldPurchases, oldMoney end return Enum.ProductPurchaseDecision.PurchaseGranted end) end