So I'm running this script on ServerScriptService

local module = require(script.Parent.ModuleScript)

game.Players.PlayerAdded:Connect(function(player)
	module:ChangeInventory(player, "item", 4)
end)

To reference this module in my ModuleScript to change the contents of a player's inventory, saved as a table in a datastore.

function module:ChangeInventory(player, item, value)
	print(player, item, value) --Prints Tempestcall item 4
	local UserID = "Player_" .. player.UserId
	SessionData[UserID][item] = value
	print(SessionData)
end

However when I run it I get ServerScriptService.ModuleScript:11: attempt to index nil with 'item' (Line 4 in the ModuleScript here)

Update: I realised I was using . instead of : to call ChangeInventory, the issue now is that SessionData[UserID] is nil, however this code below makes it return Stone 0

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}
		warn("No data found for " .. UserID)	    
	end
end

Solved by putting the section following if Data then in the module code.

1 comment

0

SessionData[UserId] is nil