Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- local DSS = game:GetService("DataStoreService")
- local RS = game.ReplicatedStorage
- local DS = DSS:GetDataStore("TestDS1")
- local statsModule = require(script.DATA)
- game.Players.PlayerAdded:connect(function(plr)
- local key = "user_" ..plr.UserId
- statsModule.DATA[plr] = {}
- local plrData = DS:GetAsync(key)
- if plrData == nil then
- statsModule.DATA[plr] = {
- Level = 1;
- XP = 0;
- Weapons = {"Aiz1"};
- Equipped = "Aiz1";
- }
- DS:SetAsync(key, statsModule.DATA[plr])
- else
- statsModule.DATA[plr] = DS:GetAsync(key)
- end
- local index = statsModule.DATA[plr]
- statsModule.DATA[plr] = setmetatable({}, {__index = index, __newindex = function(tbl, key, newValue)
- local existingValue = index[key]
- index[key] = newValue
- if newValue ~= existingValue and existingValue ~= nil then
- if key == "XP" then
- --XP Gui Client Update Event
- if statsModule.DATA[plr].XP >= (statsModule.DATA[plr].Level * 100) then
- statsModule.DATA[plr].XP = (statsModule.DATA[plr].XP - statsModule.DATA[plr].Level * 100) -- Updating XP
- statsModule.DATA[plr].Level = statsModule.DATA[plr].Level + 1 -- Adding One Level
- end
- end
- end
- end})
- end)
- game.Players.PlayerRemoving:connect(function(plr)
- local key = "user_" ..plr.UserId
- statsModule.DATA[plr] = getmetatable(statsModule.DATA[plr]).__index
- DS:SetAsync(key, statsModule.DATA[plr])
- end)
- game:BindToClose(function()
- warn("Saving Data")
- wait(1)
- warn("Complete")
- end)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement