local DataStoreService = game:GetService("DataStoreService")
local DataSavingScript = DataStoreService:GetDataStore("MyDataStore")
local function saveData(player)
local key = "PlayerData" .. player.UserId
local leaderstatsData = {}
for _, stat in pairs(player.leaderstats:GetChildren()) do
leaderstatsData[stat.Name] = stat.Value
end
local success, error = pcall(function()
DataSavingScript:SetAsync(key, leaderstatsData)
end)
if not success then
print("Error saving data for player " .. player.Name .. ": " .. error)
end
end
local function loadData(player)
local key = "PlayerData" .. player.UserId
local success, data = pcall(function()
return DataSavingScript:GetAsync(key)
end)
if success and data then
for statName, statValue in pairs(data) do
if player.leaderstats:FindFirstChild(statName) then
player.leaderstats[statName].Value = statValue
end
end
end
end
game.Players.PlayerAdded:Connect(function(player)
loadData(player)
player.CharacterAdded:Connect(function(character)
loadData(player)
end)
player.CharacterRemoving:Connect(function(character)
saveData(player)
end)
player:WaitForChild("leaderstats").Changed:Connect(function()
saveData(player)
end)
end)
** You are now Level 12! **