Hello, i am trying to save every character model in a folder with datastore and it doesn’t work/save so i’m trynna know whats wrong with the script
the script:
local Players = game:GetService("Players")
local DSService = game:GetService("DataStoreService")
local data = DSService:GetDataStore("datastore1")
local data2 = DSService:GetDataStore("datastore2")
Players.PlayerAdded:Connect(function(player)
Instance.new("Folder",player).Name = "Profilefolders"
Instance.new("Folder",player.Profilefolders).Name = "OwnedCharacters"
Instance.new("Folder",player.Profilefolders).Name = "Drcurrencies"
Instance.new("IntValue",player.Profilefolders.Drcurrencies).Name = "Coins"
local key = player.UserId
local owns = player.Profilefolders:WaitForChild("OwnedCharacters")
wait(1)
local savedLevel = data:GetAsync(key)
if savedLevel ~= nil then
for i, data in pairs(savedLevel) do
local ownsdata = owns:FindFirstChild(data[1])
if ownsdata then
ownsdata.Value = data[2]
else
local instance = Instance.new(data[3])
if instance then
instance.Name = data[1]
instance.Value = data[2]
instance.Parent = owns
end
end
end
else
data:SetAsync(key, {})
end
end)
Players.PlayerRemoving:Connect(function(player)
local key = player.UserId
local savedLevel = data:GetAsync(key)
local owns = player.Profilefolders:WaitForChild("OwnedCharacters")
if not owns then return end
owns = owns:GetChildren()
local objData = {}
for i, obj in pairs(owns) do
table.insert(objData, {obj.Name, obj.Value, obj.ClassName})
end
if savedLevel == nil then
data:SetAsync(key, objData)
else
data:UpdateAsync(key, function(oldValue)
oldValue = objData
return objData
end)
end
end)
game:BindToClose(function()
for i, player in pairs(Players:GetPlayers()) do
local key = player.UserId
local savedLevel = data:GetAsync(key)
local owns = player.Profilefolders:WaitForChild("OwnedCharacters")
if not owns then return end
owns = owns:GetChildren()
local objData = {}
for i, obj in pairs(owns) do
table.insert(objData, {obj.Name, obj.Value, obj.ClassName})
end
if savedLevel == nil then
data:SetAsync(key, objData)
else
data:UpdateAsync(key, function(oldValue)
oldValue = objData
return objData
end)
end
end
wait(3)
end)