Model: DonationBoardModel.rbxm (8.9 KB)
Server Script:
local DataStoreService = game:GetService("DataStoreService")
local TotalDonatedStore = DataStoreService:GetDataStore("Donated")
local DonatedEvent = game.ReplicatedStorage.PlayerDonated
local MarketPlaceService = game:GetService("MarketplaceService")
local DonateBoard = game.Workspace.DonateBoard
local function Setup()
TotalDonatedStore:SetAsync("Donated", 0)
end
local function DisplayDonated()
local TotalDonated = TotalDonatedStore:GetAsync("Donated")
if TotalDonated == nil then
Setup()
else
DonateBoard.SurfaceGui.Frame.Donated.Text = "DONATED R$: " ..TotalDonated
end
end
local function Donated(Value)
local TOtalDonated = TotalDonatedStore:GetAsync("Donated")
TotalDonatedStore:SetAsync("Donated", TOtalDonated + Value)
DisplayDonated()
end
DonatedEvent.OnServerEvent:Connect(function(player, Value)
Donated(Value)
end)
DisplayDonated()
Local Script:
local MarketPlaceService = game:GetService("MarketplaceService")
local Player = game.Players.LocalPlayer
local DonatedEvent = game.ReplicatedStorage.PlayerDonated
local DonateBoard = game.Workspace.DonateBoard
local DeveloperProduct = EDITME
local DeveloperProductPrice = EDITME
DonateBoard.SurfaceGui.Frame.Donate.Text = "R$" ..DeveloperProductPrice
DonateBoard.SurfaceGui.Frame.Donate.MouseButton1Click:Connect(function()
MarketPlaceService:PromptProductPurchase(Player, DeveloperProduct)
end)
MarketPlaceService.PromptProductPurchaseFinished:Connect(function(PlayerUserId, PurchasedProductId, Purchased)
if Purchased == true and PurchasedProductId == DeveloperProduct then
DonatedEvent:FireServer(DeveloperProductPrice)
end
end)