I put a folder in players on add when people join to act as a inventory, so when i am wanting to add an item into it, i first try to use for, i v inpairs to make sure the item isn't in inventory first but when i put inventory into the like this
for i, v in pairs(plr.Inventory)
i keep getting error saying inventory is an instance. I figure its considered an instance since there isnt any items in the inventory yet so i am not sure how to get around this. I don't want to just add an item into the persons inventory when they join because what if they sold every item in their inventory later and got a item, then the script would break. here is full code.
local dss = game:GetService("DataStoreService")
local ds = dss:GetDataStore("InventoryData")
game.Players.PlayerAdded:Connect(function(p)
local invFolder = Instance.new("Folder", p)
invFolder.Name = "Inventory"
end)
game.ReplicatedStorage.RemoteEvent.OnServerEvent:Connect(function(plr, item) -- put this item into plr inv folder
print(item.Name)
local list = game.ReplicatedStorage.items:GetChildren()
for i, v in pairs(list) do
local y = v
if y.Name == item.Name then
for i, v in pairs(plr.Inventory) do --mess up here
if y.Name == v.Name then
y.Amount.Value = y.Amount.Value +v.Amount.Value
else
local x = v:clone()
x.parent = plr.Inventory
break
end
end
end
end
end)

1 comment
if the table is empty it will return {}