#Item Inventory Handling

1 messages · Page 1 of 1 (latest)

still saffron
#

I am adding a system where if something brought, it will show up in their inventory but it isnt showing up in inv. Here is my script

local ReplicatedStorage = game:GetService("ReplicatedStorage")
local Players = game:GetService("Players")
local DataStoreService = game:GetService("DataStoreService")

local ItemStore = DataStoreService:GetDataStore("PlayerItems")
local StreamerStore = DataStoreService:GetDataStore("StreamerData")
local giveItemEvent = ReplicatedStorage:WaitForChild("GiveItem")

local function setupInventory(player, savedItems)
    local folder = Instance.new("Folder")
    folder.Name = "Inventory"
    folder.Parent = player

    if savedItems then
        for _, itemName in ipairs(savedItems) do
            local item = Instance.new("StringValue")
            item.Name = itemName
            item.Parent = folder
        end
    end
end

giveItemEvent.OnServerEvent:Connect(function(player, itemName)
    if itemName ~= "MiddlePart1" then return end

    local leaderstats = player:FindFirstChild("leaderstats")
    if not leaderstats then return end

    local streamers = leaderstats:FindFirstChild("Streamers")
    if not streamers or streamers.Value < 50 then return end

    streamers.Value -= 50

    local inventory = player:FindFirstChild("Inventory")
    if not inventory then
        inventory = Instance.new("Folder")
        inventory.Name = "Inventory"
        inventory.Parent = player
    end
#

here is the same script countinued

    local newItem = Instance.new("StringValue")
    newItem.Name = itemName
    newItem.Parent = inventory

    print(player.Name .. " bought item: " .. itemName)
end)

Players.PlayerAdded:Connect(function(player)
    local savedItems
    pcall(function()
        savedItems = ItemStore:GetAsync(player.UserId)
    end)
    setupInventory(player, savedItems)
end)

Players.PlayerRemoving:Connect(function(player)
    local inventory = player:FindFirstChild("Inventory")
    if not inventory then return end

    local items = {}
    for _, item in ipairs(inventory:GetChildren()) do
        table.insert(items, item.Name)
    end

    pcall(function()
        ItemStore:SetAsync(player.UserId, items)
    end)
end)

twilit harness
#

so when the giveitemevent part runs, it doesnt spawn in a folder in the players "inventory"?

#

oh i read that part wrong

#

does the print statement work? like player.name and itemName arent nil

ionic geyser
#

while true do

still saffron
#

it worked

#

ty

#

so much!!!!!!