Basically, its not saving my data but I'm not sure why?
local ds = game:GetService("DataStoreService"):GetDataStore("Tools")
-- loading
game.Players.PlayerAdded:Connect(function(plr)
local key = "id-"..plr.userId
local success,tools = pcall(function()
return ds:GetAsync(key)
end)
if not success then
error("not successful retrieving tooldata")
else
if not tools then return end
for _, tool in pairs(tools) do
local backpack = plr:WaitForChild("Backpack")
local StarterGear = plr:WaitForChild("StarterGear")
print(tool)
if backpack and StarterGear then
local toolInstance = game:GetService("ServerStorage").Tools:FindFirstChild(tool)
if toolInstance then
print(toolInstance)
toolInstance:Clone().Parent = backpack
toolInstance:Clone().Parent = StarterGear
end
end
end
end
end)
-- saving
game.Players.PlayerRemoving:connect(function(plr)
local key = "id-"..plr.userId
local char = plr.Character or plr.CharacterAdded:Wait()
for _,tool in pairs(char:GetDescendants()) do
if tool:IsA("Tool") then
tool.Parent = plr.Backpack
end
end
local success, err = pcall(function()
local toolsToSave = {}
for i,v in pairs(plr.Backpack:GetChildren()) do
if v then
table.insert(toolsToSave,v.Name)
end
end
print(unpack(toolsToSave))
return ds:SetAsync(key,toolsToSave)
end)
if err then
print(err)
end
end)
