local ds=game:GetService("DataStoreService"):GetGlobalDataStore()
local players={ }
local lastPlayerId=nil
local lastPlrStats={ }
local lastPlrName=nil
local guy=nil
game.Players.PlayerAdded:connect(function(plr)
local stats=Instance.new("IntValue")
stats.Name="Stats"
stats.Parent=plr
local kills=Instance.new("IntValue")
kills.Name="Kills"
kills.Parent=stats
local deaths=Instance.new("IntValue")
deaths.Name="Deaths"
deaths.Parent=stats
local wins=Instance.new("IntValue")
wins.Name="Wins"
wins.Parent=stats
if ds:GetAsync(plr.userId.."Stats")~=nil then
local userstats=ds:GetAsync(plr.userId.."Stats")
kills.Value=userstats[1]
deaths.Value=userstats[2]
wins.Value=userstats[3]
end
end)
game.Players.PlayerRemoving:connect(function(plr)
ds:SetAsync(plr.userId.."Stats",{plr.Stats.Kills,plr.Stats.Deaths,plr.Stats.Wins})
players={ }
for i,v in pairs(game.Players:GetChildren())do
table.insert(players,v)
end
if #players==1 then
lastPlayerName=players[1]
lastPlayerId=players[1].userId
else
lastPlayerName=nil
lastPlayerId=nil
end
end)
game.Close:connect(function()
ds:SetAsync(lastPlayerId.."Stats",lastPlrStats)
end)
while wait() do
if game.Players:FindFirstChild(lastPlrName) then
guy=game.Players[lastPlrName]
lastPlrStats={guy.Stats.Kills.Value,guy.Stats.Deaths.Value,guy.Stats.Wins.Value}
end
end
So I want this script to save and load, it saves after the player leaves and loads when the player enters. It is kind of overcomplicated because it needs to save the last persons stats when the game closes, so it continuously sets variables for when that person leaves.
