Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- local module = {}
- local DataStoreService = game:GetService("DataStoreService")
- local playerData = DataStoreService:GetDataStore("PlayerData")
- local AUTOSAVE_INTERVAL = 120
- --empty table to add player data to
- local sessionData = {}
- --function for changing a specific stat
- function module:ChangeStat(player, statName, value)
- local key = "Player_"..player.UserId
- assert(typeof(sessionData[key][statName]) == typeof(value), "ChangeStat error: types do not match")
- if typeof(sessionData[key][statName]) == "number" then
- sessionData[key][statName] = sessionData[key][statName] + value
- else
- sessionData[key][statName] = value
- end
- end
- local function savePlayerData(key)
- if sessionData[key] then
- playerData:SetAsync(key, sessionData[key])
- end
- end
- function module.setupPlayerData(player)
- local key = "Player_"..player.UserId
- print(key)
- local dataFromDS = playerData:GetAsync(key)
- if dataFromDS then
- sessionData[key] = dataFromDS
- print("loaded data from datastore")
- else
- --no data from DS, give default value
- sessionData[key] = {Cash=0, Subscribers=0}
- --save default data to datastore
- savePlayerData(key)
- print("created new data for player")
- end
- end
- local function saveOnExit(player)
- local key = "Player_"..player.UserId
- savePlayerData(key)
- end
- local function autoSave()
- print("started autosave function...")
- while wait(AUTOSAVE_INTERVAL) do
- print("autosaving...")
- for index, playerData in pairs(sessionData) do
- savePlayerData(index)
- end
- end
- end
- spawn(autoSave)
- return module
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement