This script works fine is client, but not server.. its in a server script also.
I get this error in my developer console : attempt to index field 'LocalPlayer' (a nil value)
local player = game.Players.LocalPlayer
local cash = game.Players.LocalPlayer.leaderstats
enable = true
function CompletePurchase()
if enable == true then
enable = false
end
cash.Cash.Value = cash.Cash.Value + 10
end
local MarketplaceService = game:GetService("MarketplaceService")
local ds = game:GetService("DataStoreService"):GetDataStore("PurchaseHistory")
local productId = 23429504
enable = true
MarketplaceService.ProcessReceipt = function(receiptInfo)
for i, player in ipairs(game.Players:GetChildren()) do
if player.userId == receiptInfo.PlayerId then
if receiptInfo.ProductId == productId then
CompletePurchase()
end
end
end
local playerProductKey = "plr_" .. receiptInfo.PlayerId .. "_pur_" .. receiptInfo.PurchaseId
ds:IncrementAsync(playerProductKey, 1)
return Enum.ProductPurchaseDecision.PurchaseGranted
end

6 comments
LocalPlayer cannot be called from a ServerScript.
What can I change LocalPlayer to?
Where exactly is the script located? (Give me the full hierarchy)
It's in StarterGUI, MainGuis, ShopScreen, AddCreditGui, Credits10 (which is a textbutton)
Change it to a LocalScript
local player = script.Parent.Parent.Parent.Parent.Parent.Parent