local Players = game:GetService('Players')
local DatastoreService = game:GetService("DataStoreService")
local TeleportService = game:GetService("TeleportService")
local dVersion = 1
local WinsDataStore = DatastoreService:GetDataStore('Wins')
Players.PlayerAdded:Connect(function(Player)
local Stats = Instance.new('Folder')
Stats.Name = 'leaderstats'
Stats.Parent = Player
local Wins = Instance.new('IntValue')
Wins.Name = 'Wins'
Wins.Parent = Stats
local Data = WinsDataStore:GetAsync(Player.UserId)
if Data then
for name, value in pairs(Data.Stats) do
Stats[name].Value = value
end
end
end)
Players.PlayerRemoving:Connect(function(Player)
local SaveData = {Stats = {}}
for _, stat in pairs(Player.leaderstats:GetChildren()) do
SaveData.Stats[stat.Name] = stat.Value
end
WinsDataStore:SetAsync(Player.UserId,SaveData)
end)
game:BindToClose(function()
for _, Player in pairs(game.Players:GetPlayers()) do
local SaveData = {Stats = {}}
for _,stat in pairs(Player.leaderstats:GetChildren()) do
SaveData.Stats[stat.Name] = stat.Value
end
WinsDataStore:SetAsync(Player.UserId,SaveData)
end
wait(2)
end)
local save2 = DatastoreService:GetOrderedDataStore("Rounds "..dVersion)
game.Players.PlayerAdded:Connect(function(player)
local previousData = save2:GetAsync(player.UserId) -- Returns a number value.
local Rounds
if previousData ~= nil then
Rounds = previousData
else
Rounds = 0
save2:SetAsync(player.UserId, 0)
end
local coinsValue = Instance.new("IntValue", player)
coinsValue.Name = "Rounds"
coinsValue.Value = Rounds
end)
game:BindToClose(function() -- Runs whenver the server is about to shut down/stop.
print("STOPPED!")
for i,player in pairs(game.Players:GetPlayers()) do
local value = player.Rounds.Value
save2:SetAsync(player.UserId, value)
print("Saved data for "..player.Name)
end
end)
game.Players.PlayerRemoving:Connect(function(player)
local value = player.Rounds.Value
if value ~= nil then
print("Found data to save for "..player.Name.."!")
save2:SetAsync(player.UserId, value)
print("Saved data for "..player.Name)
else
print("Did not manage to find data to save for "..player.Name.."!")
end
end)
local teleportData = TeleportService:GetLocalPlayerTeleportData()
if teleportData then
local Player = game.Players:GetPlayerByUserId(teleportData.PlayerName)
Player:WaitForChild('leaderstats'):WaitForChild('Wins').Value = Player.leaderstats.Wins.Value + 1
end