Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- local InStudio = game:GetService("RunService"):IsStudio()
- if not InStudio then
- maindata = game:GetService("DataStoreService"):GetDataStore("StatsData")
- end
- local function newdata()
- return {
- Level = 1,
- Exp = 0,
- Zanpakuto = 0,
- ExpNeeded = 20,
- Spinsleft = 4,
- ShikaiUnlock = 0,
- }
- end
- function savedata(playerid, value)
- if InStudio then return end
- local tries = 0
- local success
- repeat tries = tries + 1
- success = pcall(function()
- maindata:SetAsync(playerid, value)
- end)
- if not success then wait(1) end
- until tries == 3 or success
- end
- local function loaddata(player)
- local data
- if InStudio then
- data = newdata()
- return data
- else
- local success = pcall(function()
- data = maindata:GetAsync(tostring(player.userId))
- end)
- if success then
- if not data then
- data = newdata()
- end
- return data
- else
- print("datastore error!")
- return nil
- end
- end
- end
- game.Players.PlayerAdded:connect(function(player)
- local leader = Instance.new("Folder")
- leader.Name = "stats"
- leader.Parent = player
- local playerdata = loaddata(player)
- if not playerdata then
- leader:Destroy()
- player:Kick("Issue loading data, please rejoin!")
- return end
- print("isrunning")
- for key,value in pairs(playerdata) do
- local saveinstance = Instance.new("IntValue")
- saveinstance.Name = tostring(key)
- saveinstance.Value = value
- saveinstance.Parent = leader
- end
- print("check2")
- end)
- local function createtable(folder)
- local datatable = {}
- for i,v in pairs(folder:GetChildren()) do
- datatable[v.Name] = v.Value
- end
- return datatable
- end
- game.Players.PlayerRemoving:Connect(function(player)
- savedata(player.userId,createtable(player.stats))
- end)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement