local DataStoreService = game:GetService("DataStoreService")
local MoneyDataStore = DataStoreService:GetDataStore("MoneyDataStore")
-- Function to load the player's money from DataStore
local function loadMoney(player)
local key = "Money_" .. player.UserId
local success, result = pcall(function()
return MoneyDataStore:GetAsync(key)
end)
if success and result ~= nil then
return result
else
return 0
end
end
local function saveMoney(player, money)
local key = "Money_" .. player.UserId
local success, result = pcall(function()
MoneyDataStore:SetAsync(key, money)
end)
if not success then
warn("Failed to save money for player " .. player.Name)
end
end
local function onPlayerAdded(player)
local money = loadMoney(player)
local leaderstats = Instance.new("Folder")
leaderstats.Name = "Stats"
leaderstats.Parent = player
local moneyValue = Instance.new("NumberValue")
moneyValue.Name = "Money"
moneyValue.Value = money
moneyValue.Parent = leaderstats
end
local function onPlayerRemoving(player)
local leaderstats = player:FindFirstChild("leaderstats")
if leaderstats then
local moneyValue = leaderstats:FindFirstChild("Money")
if moneyValue then
saveMoney(player, moneyValue.Value)
end
end
end
for _, player in ipairs(game.Players:GetPlayers()) do
onPlayerAdded(player)
end
game.Players.PlayerAdded:Connect(onPlayerAdded)
game.Players.PlayerRemoving:Connect(onPlayerRemoving)