To simplify my problem, I will insert an item “data” in a table
Two elements here- Item Name, Item Data
The current problem is how my code is structured, tables are “wonky”?
I don’t know how to explain, sorry for my bad English.
local module = {
["ItemAwardType"] = "Tower", -- Tower, Money, Item
["ItemAward"] = "Betty Bloxxer",
["Betty Bloxxer"] = {
["Name"] = "Betty Bloxxer",
["Price"] = 100,
["Image"] = "rbxassetid://5164241067"
},
["ChangeAmount"] = 2,
["TIXAmount"] = 25,
["TIXProduce"] = 10,
["NextLevel"] = "Baseplate 0-2"
}
return module
^^^ Item Analogy: Item Name- ItemAward, Item Data- [“Betty Bloxxer”]
ServerStorage.Bricks.Bindables.LevelData.Event:Connect(function(win, map, findLevelData, plr)
local playerData = ReplicatedStorage.Bricks.Functions.GetDataServer:Invoke(plr)
local levelData = require(findLevelData)
if levelData.ItemAwardType == "Money" then
elseif levelData.ItemAwardType == "SubtleItem" then
if not table.find(playerData["SubtleItems"], levelData[levelData.ItemAward]) then
table.insert(playerData["SubtleItems"], levelData[levelData.ItemAward])
end
elseif levelData.ItemAwardType == "Tower" then
-- Here
if not data["OwnedPackets"][levelData[levelData.ItemAward]] then
table.insert(data["OwnedPackets"], levelData[levelData.ItemAward])
end
end
if not table.find(playerData.OwnedLevels, map.Name) then
table.insert(playerData.OwnedLevels, map.Name)
if levelData["ChangeAmount"] then
playerData["AmountPackets"] = levelData["ChangeAmount"]
end
end
if levelData["NextLevel"] then
playerData["CurrentLevel"] = levelData["NextLevel"]
playerData["SelectedLevel"] = levelData["NextLevel"]
end
end)
^^^ The main code
elseif levelData.ItemAwardType == "Tower" then
-- Here
if not data["OwnedPackets"][levelData[levelData.ItemAward]] then
table.insert(data["OwnedPackets"], levelData[levelData.ItemAward])
end
end
A snippet of the main code
ServerScriptService.Datastore3:137: attempt to index nil with table
^^^ My output
I’ll attempt to explain again, basically what I EXPECT my code to do is to; (I actually am trying so hard, it’s unexplainable for me.)
- Check if item data is not already in the data[“OwnedPackets”]
- Insert the item data to data[“OwnedPackets”]