RockTheSlayer

How to save inventories in roblox

Dec 31st, 2024
27
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Lua 1.42 KB | Gaming | 0 0
  1. -- How to Save inventories in Roblox
  2. -- https://www.youtube.com/watch?v=oA46Mi7KyoI
  3. local itemsFolder = game:GetService('ServerStorage'):WaitForChild('Items')
  4. local players = game:GetService('Players')
  5. local dataStoreService = game:GetService('DataStoreService')
  6. local mainStore = dataStoreService:GetDataStore('Main')
  7.  
  8. local function playerAdded(plr)
  9.     repeat
  10.         task.wait()
  11.     until plr.Character
  12.     task.wait(3)
  13.  
  14.     local success, inventory = pcall(function()
  15.         return mainStore:GetAsync(plr.UserId)
  16.     end)
  17.  
  18.     if success and inventory then
  19.         for _, name in pairs(inventory) do
  20.             local item = itemsFolder:FindFirstChild(name)
  21.             if item then
  22.                 local clone = item:Clone()
  23.                 clone.Parent = plr.Backpack
  24.             end
  25.         end
  26.     end
  27. end
  28.  
  29. local function playerLeft(plr)
  30.     local backpack = plr.Backpack
  31.     local char = plr.Character
  32.     local itemsTab = {}
  33.  
  34.     if char then
  35.         for _, object in pairs(char:GetChildren()) do
  36.             if object:IsA('Tool') then
  37.                 table.insert(itemsTab, object.Name)
  38.             end
  39.         end
  40.     end
  41.  
  42.     for _, object in pairs(backpack:GetChildren()) do
  43.         if object:IsA('Tool') then
  44.             table.insert(itemsTab, object.Name)
  45.         end
  46.     end
  47.  
  48.     local success, err = pcall(function()
  49.         return mainStore:SetAsync(plr.UserId, itemsTab)
  50.     end)
  51.  
  52.     if not success then
  53.         warn("Error saving data for player " .. plr.UserId .. ": " .. err)
  54.     end
  55. end
  56.  
  57. players.PlayerAdded:Connect(playerAdded)
  58. players.PlayerRemoving:Connect(playerLeft)
Tags: inventores
Advertisement
Add Comment
Please, Sign In to add comment