So, i am trying to make a Data Saving module and in the module itself is no error as far as i know.
ModuleScript:
local PlayerStats = {} local DataStoreService = game:GetService("DataStoreService") local DataStore = DataStoreService:GetDataStore("DataStoreOfMe") local AutosaveInterval = 60 local sessiondata = {} function PlayerStats:Changing(player, statName, changeValue) sessiondata[player][statName] = sessiondata[player][statName] + changeValue end local function getplayerdata(player) return DataStore:GetAsync(player.UserId) end local function saveplayerdata(player) DataStore:SetAsync(player.UserId, sessiondata[player]) end local function setupPlayerData(player) local data = getplayerdata(player) if not data then sessiondata[player] = {Money = 500} saveplayerdata(player) else sessiondata[player] = data end end local function autosave() while wait(AutosaveInterval) do for player, data in pairs(sessiondata) do saveplayerdata(player) end end end game.Players.PlayerAdded:connect(setupPlayerData) game.Players.PlayerRemoving:connect(function(player) saveplayerdata(player) sessiondata[player] = nil end) spawn(autosave) return PlayerStats
And my problem is, i can't remember how to access the "Money" variable in it. Here is how i tried accessing it.
ServerScript:
local playerStats = require(game.ReplicatedStorage.Modules.DataModule) game.Players.PlayerAdded:connect(function(player) local lead = Instance.new("Folder",player) lead.Name = "leaderstats" local mon = Instance.new("NumberValue") mon.Name = "Money" mon.Value = playerStats["sessiondata"][player]["Money"] mon.Parent = lead end)
The error i get is : ServerScriptService.Main:9: attempt to index field 'sessiondata' (a nil value)
I'd greatly appreciate any help!