Advertisement
Minibro

DataStore

Sep 7th, 2020
4,441
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.45 KB | None | 0 0
  1. local DataStore = game:GetService("DataStoreService")
  2. local StatsData = DataStore:GetDataStore("StatsData")
  3.  
  4. local function SaveLoad(plr)
  5.  
  6. for _,v in pairs(plr:WaitForChild("leaderstats"):GetChildren()) do
  7. if v:IsA("ValueBase") then
  8. local data = StatsData:GetAsync(v.Name.."-"..plr.UserId)
  9. if data then
  10. v.Value = data
  11. end
  12. end
  13. end
  14.  
  15. local data = StatsData:GetAsync("Tools-"..plr.UserId)
  16.  
  17. if data then
  18. for _,v in pairs(data) do
  19. local tool = game:GetService("ReplicatedStorage"):WaitForChild("Tools")[v]:Clone()
  20. local tool2 = game:GetService("ReplicatedStorage"):WaitForChild("Tools")[v]:Clone()
  21.  
  22. tool.Parent = plr.StarterGear
  23. tool2.Parent = plr.Backpack
  24. end
  25. end
  26.  
  27. end
  28.  
  29. local function SaveStats(plr)
  30.  
  31. for _,v in pairs(plr:WaitForChild("leaderstats"):GetChildren()) do
  32. if v:IsA("ValueBase") then
  33. local succes, err = pcall(function()
  34. StatsData:SetAsync(v.Name.."-"..plr.UserId, v.Value)
  35. end)
  36. if succes then
  37. print("Save Stats!")
  38. else
  39. warn(err)
  40. end
  41. end
  42. end
  43.  
  44. local Tools = {}
  45.  
  46. for _,v in pairs(plr.StarterGear:GetChildren()) do
  47. if v:IsA("Tool") then
  48. table.insert(Tools, v.Name)
  49. end
  50. end
  51.  
  52. StatsData:SetAsync("Tools-"..plr.UserId, Tools)
  53.  
  54. end
  55.  
  56. game.Players.PlayerAdded:Connect(SaveLoad)
  57.  
  58. game.Players.PlayerRemoving:Connect(SaveStats)
  59.  
  60. game:BindToClose(function()
  61. for _,plr in pairs(game.Players:GetPlayers()) do
  62. SaveStats(plr)
  63. end
  64. end)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement