Sungmingamerpro13

My New Leaderstats (Lobby)

Jul 25th, 2025 (edited)
736
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
CSS 4.18 KB | None | 0 0
  1. local TeleportService = game:GetService("TeleportService")
  2. local WinsDataStore = game:GetService("DataStoreService"):GetDataStore("Wins")
  3. local RoundsDataStore = game:GetService("DataStoreService"):GetDataStore("Rounds")
  4.  
  5. game.Players.PlayerAdded:Connect(function(player)
  6.    
  7.     local leaderstats = Instance.new("Folder", player)
  8.     leaderstats.Name = "leaderstats"
  9.    
  10.     local WinsValue = Instance.new("IntValue", leaderstats)
  11.     WinsValue.Name = "Wins"
  12.    
  13.     local RoundsValue = Instance.new("IntValue", leaderstats)
  14.     RoundsValue.Name = "Rounds"
  15.    
  16.     local Data = WinsDataStore:GetAsync(player.UserId)
  17.    
  18.     local Data2 = RoundsDataStore:GetAsync(player.UserId)
  19.    
  20.     if Data then
  21.         for name, value in pairs(Data.leaderstats) do
  22.             leaderstats[name].Value = value
  23.         end
  24.     end
  25.    
  26.     if Data2 then
  27.         for name, value in pairs(Data2.leaderstats) do
  28.             leaderstats[name].Value = value
  29.         end
  30.     end
  31. end)
  32.  
  33. game.Players.PlayerRemoving:Connect(function(player)
  34.    
  35.     local SaveData = {leaderstats = {}}
  36.     local SaveData2 = {leaderstats = {}}
  37.    
  38.     for _, stat in pairs(player.leaderstats:GetChildren()) do
  39.         SaveData.leaderstats[stat.Name] = stat.Value
  40.     end
  41.    
  42.     for _, stat in pairs(player.leaderstats:GetChildren()) do
  43.         SaveData2.leaderstats[stat.Name] = stat.Value
  44.     end
  45.    
  46.     WinsDataStore:SetAsync(player.UserId, SaveData)
  47.    
  48.     RoundsDataStore:SetAsync(player.UserId, SaveData2)
  49.    
  50. end)
  51.  
  52. game:BindToClose(function()
  53.     for _, player in pairs(game.Players:GetPlayers()) do
  54.         local SaveData = {leaderstats = {}}
  55.  
  56.         local SaveData2 = {leaderstats = {}}
  57.  
  58.         for _,stat in pairs(player.leaderstats:GetChildren()) do
  59.             SaveData.leaderstats[stat.Name] = stat.Value
  60.         end
  61.  
  62.         for _, stat in pairs(player.leaderstats:GetChildren()) do
  63.             SaveData2.leaderstats[stat.Name] = stat.Value
  64.         end
  65.  
  66.  
  67.         WinsDataStore:SetAsync(player.UserId,SaveData)
  68.  
  69.         RoundsDataStore:SetAsync(player.UserId, SaveData2)
  70.     end
  71.  
  72.     wait(2)
  73. end)
  74.  
  75. local AddWinsDataStore = game:GetService("DataStoreService"):GetDataStore("AddWins")
  76.  
  77. game.Players.PlayerAdded:Connect(function(player)
  78.     local previousData = AddWinsDataStore:GetAsync(player.UserId) -- Returns a number value.
  79.  
  80.     local AddWins
  81.  
  82.     if previousData ~= nil then
  83.         AddWins = previousData
  84.     else
  85.         AddWins = 0
  86.         AddWinsDataStore:SetAsync(player.UserId, 0)
  87.     end
  88.  
  89.     local coinsValue = Instance.new("IntValue", player)
  90.     coinsValue.Name = "AddWins"
  91.     coinsValue.Value = AddWins
  92. end)
  93.  
  94. game:BindToClose(function() -- Runs whenver the server is about to shut down/stop.
  95.     print("STOPPED!")
  96.  
  97.     for i,player in pairs(game.Players:GetPlayers()) do
  98.         local value = player.AddWins.Value
  99.         AddWinsDataStore:SetAsync(player.UserId, value)
  100.         print("Saved data for "..player.Name)
  101.     end
  102. end)
  103.  
  104. game.Players.PlayerRemoving:Connect(function(player)
  105.     local value = player.AddWins.Value
  106.  
  107.     if value ~= nil then
  108.         print("Found data to save for "..player.Name.."!")
  109.         AddWinsDataStore:SetAsync(player.UserId, value)
  110.         print("Saved data for "..player.Name)
  111.     else
  112.         print("Did not manage to find data to save for "..player.Name.."!")
  113.     end
  114. end)
  115.  
  116. local AddRoundsDataStore = game:GetService("DataStoreService"):GetDataStore("AddRounds")
  117.  
  118. game.Players.PlayerAdded:Connect(function(player)
  119.     local previousData = AddRoundsDataStore:GetAsync(player.UserId) -- Returns a number value.
  120.  
  121.     local AddRounds
  122.  
  123.     if previousData ~= nil then
  124.         AddRounds = previousData
  125.     else
  126.         AddRounds = 0
  127.         AddRoundsDataStore:SetAsync(player.UserId, 0)
  128.     end
  129.  
  130.     local coinsValue = Instance.new("IntValue", player)
  131.     coinsValue.Name = "AddRounds"
  132.     coinsValue.Value = AddRounds
  133. end)
  134.  
  135. game:BindToClose(function() -- Runs whenver the server is about to shut down/stop.
  136.     print("STOPPED!")
  137.  
  138.     for i,player in pairs(game.Players:GetPlayers()) do
  139.         local value = player.AddRounds.Value
  140.         AddRoundsDataStore:SetAsync(player.UserId, value)
  141.         print("Saved data for "..player.Name)
  142.     end
  143. end)
  144.  
  145. game.Players.PlayerRemoving:Connect(function(player)
  146.     local value = player.AddRounds.Value
  147.  
  148.     if value ~= nil then
  149.         print("Found data to save for "..player.Name.."!")
  150.         AddRoundsDataStore:SetAsync(player.UserId, value)
  151.         print("Saved data for "..player.Name)
  152.     else
  153.         print("Did not manage to find data to save for "..player.Name.."!")
  154.     end
  155. end)
  156.  
Advertisement
Add Comment
Please, Sign In to add comment