So I'm writing an inventory ModuleScript that saves a table to the player's UserID through a datastore, to do this, I've loosely followed the Roblox Developer Hub tutorial.

local DS = game:GetService("DataStoreService")		
local Store = DS:GetDataStore("Datastore")			
local AUTOSAVE_INTERVAL = 10						
local SessionData = {}	
local PlayerInventoryManager = {}

function PlayerInventoryManager:ChangeInventory(player, item, value)
	local UserID = "Player_" .. player.UserId
	assert(typeof(SessionData[UserID][item]) == typeof(value), "ChangeInventory error: data types do not match")
	if typeof(SessionData[UserID][item]) == "number" then
		SessionData[UserID][item] = SessionData[UserID][item] + value
	else
		SessionData[UserID][item] = value
	end
end

local function SetupPlayerData(player)				
	local UserID = "Player_" .. player.UserId   	
	local Data = Store:GetAsync(UserID)  			
	if Data then						 			
		SessionData = Data
		for i, v in next, SessionData do
			print(i, v)
		end
	else 
		SessionData[UserID] = {Stone = 0}
		for i, v in next, SessionData do
			print(i, v)
		end
		warn("No data found for " .. UserID)	    
	end
end

local function savePlayerData(UserID)			    
	if SessionData[UserID] then						
		Store:SetAsync(UserID, SessionData[UserID])
	end
end

local function saveOnExit(player)			       
	local UserID = "Player_" .. player.UserId	
	savePlayerData(UserID)
end

local function autoSave()						    
	while wait(AUTOSAVE_INTERVAL) do				
		for UserID, data in pairs(SessionData) do	
			savePlayerData(UserID)					
		end
	end
end

spawn(autoSave)										
game.Players.PlayerAdded:Connect(SetupPlayerData)	
game.Players.PlayerRemoving:Connect(saveOnExit)	

return PlayerInventoryManager

I want scripts to be able to access SessionData so it can add and remove data before being copied to PlayerInventoryManager and saved, so I wrote this Script in ServerScriptService:

game.Players.PlayerAdded:Connect(function(player)
	local module = require(script.Parent.ModuleScript)
	local item = "testsss"
	local value = 1
	wait(1)
	module:ChangeInventory(player, item, value)
end)

However after this, I get the error ServerScriptService.ModuleScript:9: attempt to index nil with 'testsss'.

Does anyone know how to fix this, and/or point me in the direction of how to properly use ModuleScripts for saving player data?