Advertisement
rblxdevofficial

Leaderstats Auto-Save

Nov 15th, 2021 (edited)
67,116
4
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Lua 1.18 KB | None | 5 1
  1. -- Make sure "Enable Studio Access To API Services" is on in Game Settings! (*OR IT WON'T WORK*) --
  2. local Players = game:GetService("Players")
  3. local DataStoreService = game:GetService("DataStoreService")
  4. local Saver = DataStoreService:GetDataStore("SaveLeaderstats")
  5.  
  6. Players.PlayerAdded:Connect(function(player)
  7.     local Data = nil
  8.     local success, errormessage = pcall(function()
  9.         Data = Saver:GetAsync(tostring(player.UserId))
  10.     end)
  11.  
  12.     if success then
  13.         if Data then
  14.             for i, v in pairs(Data) do
  15.                 player:WaitForChild("leaderstats"):WaitForChild(i).Value = v
  16.             end
  17.         end
  18.     else
  19.         error(errormessage)
  20.     end
  21. end)
  22.  
  23. local function Save(player)
  24.     local SavedData = {}
  25.     for _, v in pairs(player.leaderstats:GetChildren()) do
  26.         SavedData[v.Name] = v.Value
  27.     end
  28.  
  29.     local success, errormessage = pcall(function()
  30.         Saver:SetAsync(tostring(player.UserId), SavedData)
  31.     end)
  32.     if not success then
  33.         error(errormessage)
  34.     end
  35. end
  36.  
  37. Players.PlayerRemoving:Connect(Save)
  38.  
  39. game:BindToClose(function()
  40.     for _, v in pairs(Players:GetPlayers()) do
  41.         Save(v)
  42.     end
  43. end)
  44.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement