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
SessionData[UserId] is nil