Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- local Data = game:GetService("DataStoreService")
- local RunService = game:GetService("RunService")
- local XPSaveData = Data:GetDataStore("Experience")
- game.Players.PlayerAdded:Connect(function(plr)
- local leaderstats = Instance.new("Folder", plr)
- leaderstats.Name = "leaderstats"
- local Level = Instance.new("IntValue", leaderstats)
- Level.Name = "Level"
- local EXP = Instance.new("IntValue", plr)
- EXP.Name = "EXP"
- local dataEXP
- local dataLVL
- local success, err = pcall(function()
- dataLVL = XPSaveData:GetAsync(plr.UserId.."-Level")
- dataEXP = XPSaveData:GetAsync(plr.UserId.."-EXP")
- end)
- if success then
- Level.Value = dataLVL
- EXP.Value = dataEXP
- print("data retrieved successfully")
- else
- warn("didn't retrieve data properly", err)
- end
- end)
- game.Players.PlayerRemoving:Connect(function(plr)
- local success, err = pcall(function()
- XPSaveData:SetAsync(plr.UserId.."-Level", plr.leaderstats.Level.Value)
- XPSaveData:SetAsync(plr.UserId.."-EXP", plr.EXP.Value)
- end)
- if success then
- print("player data saved")
- else
- warn("player data didn't save", err)
- end
- end)
- game:BindToClose(function()
- if RunService:IsStudio() then
- return
- end
- local plrs = game.Players:GetPlayers()
- for i, v in pairs(plrs) do
- local success, err = pcall(function()
- XPSaveData:SetAsync(v.UserId.."-Level", v.leaderstats.Level.Value)
- XPSaveData:SetAsync(v.UserId.."-EXP", v.EXP.Value)
- end)
- if success then
- print("player data saved")
- else
- warn("player data didn't save", err)
- end
- end
- end)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement