Advertisement
Guest User

RBX Tool DataStore #2

a guest
Oct 19th, 2019
159
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.05 KB | None | 0 0
  1. local rs = game:GetService("ReplicatedStorage")
  2. local ds = game:GetService("DataStoreService")
  3. local store = ds:GetDataStore("saveStore")
  4. local library = rs:WaitForChild("Library")
  5.  
  6.  
  7. local dir = {}
  8.  
  9. local function edit(player, list)
  10. dir[player.Name] = list
  11. end
  12.  
  13. local function setup(player, list)
  14. for i = 1, #list do
  15. local tool = library:FindFirstChild(list[i])
  16. if tool then
  17. local clone = tool:Clone()
  18. clone.Parent = player.Backpack
  19. else
  20. print(list[i] .. " not found")
  21. end
  22. end
  23. end
  24.  
  25.  
  26. game.Players.PlayerAdded:connect(function(player)
  27.  
  28. local ready = false
  29.  
  30. player.CharacterAdded:connect(function(char)
  31.  
  32. local bp = player.Backpack
  33. local data = nil
  34.  
  35. if ready == false then
  36. ready = true
  37.  
  38. data = store:GetAsync(player.UserId)
  39.  
  40. if data then
  41. setup(player, data)
  42. edit(player, data)
  43. end
  44. end
  45.  
  46. char.Humanoid.Died:connect(function()
  47. char.Humanoid:UnequipTools()
  48.  
  49. local old = player.StarterGear:GetChildren()
  50. for i = 1, #old do
  51. old[i]:Destroy()
  52. end
  53.  
  54. local new = player.Backpack:GetChildren()
  55. for i = 1, #new do
  56. new[i].Parent = player.StarterGear
  57. end
  58. end)
  59.  
  60.  
  61. local count = 0
  62.  
  63. local function adjust()
  64.  
  65. if char.Humanoid.Health > 0 then
  66.  
  67. local list = {}
  68.  
  69. local equipped = char:FindFirstChildOfClass("Tool")
  70. if equipped then
  71. table.insert(list, equipped.Name)
  72. end
  73.  
  74. local tools = bp:GetChildren()
  75. for i = 1, #tools do
  76. table.insert(list, tools[i].Name)
  77. end
  78.  
  79. if count ~= #list then
  80. edit(player, list)
  81. count = #list
  82. end
  83. end
  84. end
  85.  
  86.  
  87. bp.ChildAdded:connect(adjust)
  88. bp.ChildRemoved:connect(adjust)
  89.  
  90. char.ChildAdded:connect(function(child)
  91. if child.ClassName == "Tool" then
  92. adjust()
  93. end
  94. end)
  95.  
  96. char.ChildRemoved:connect(function(child)
  97. if child.ClassName == "Tool" then
  98. adjust()
  99. end
  100. end)
  101.  
  102. end)
  103. end)
  104.  
  105. game.Players.PlayerRemoving:connect(function(player)
  106. store:SetAsync(player.UserId, dir[player.Name])
  107. dir[player.Name] = nil
  108. end)
  109.  
  110.  
  111. game:BindToClose(function()
  112. wait(5)
  113. end)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement