I tried to make my purchasing devproducts a bit cleaner by adding in remote events and shooting the player and product id to the server handler but it returns "Unable to cast Instance to int64".
Heres the handler script:
local mss = game:GetService("MarketplaceService")
local shopevents = game.ReplicatedStorage:WaitForChild("ShopEvents")
local coins = shopevents.Coins100
local coils = shopevents.Coils20
coins.OnServerEvent:Connect(function(player, productId)
mss:PromptProductPurchase(player.UserId, productId)
mss.ProcessReceipt = function(receiptInfo)
if receiptInfo.ProductId == productId then
return Enum.ProductPurchaseDecision.PurchaseGranted
end
end
end)
Heres the local script:
local Player = game:GetService("Players")
local player = Player.LocalPlayer
local leaderstats = player.leaderstats.Coins
local button = script.Parent
local events = game.ReplicatedStorage:WaitForChild("ShopEvents")
local coins = events.Coins100
local productId = 1333146762
button.MouseButton1Click:Connect(function()
coins:FireServer(player, productId)
leaderstats.Value = leaderstats.Value + 100
end)
it returns the error on the server script on line 9. It originally happened because i forgot to put UserId but even when its there its not working. If anyone knows what the issue could be please let me know.
