DataBaseStore = game:GetService('DataStoreService'):GetDataStore('Sim:002')
local datafolder = script.Data
game.Players.PlayerAdded:Connect(function(Player)
local key = "PlayerID=" .. Player.userId
local GetSave = DataBaseStore:GetAsync(key)
local datas = datafolder:Clone()
datas.Parent = Player
if GetSave then
-- player has data
for i, dataf in pairs(datafolder:GetChildren()) do
if dataf:IsA('Folder') then
for i,v in pairs(dataf:GetChildren()) do
local name = tonumber(v)
v.Value = GetSave[name]
print('Data loaded for ' .. i, v, v.Value)
end
end
end
else
local statstosave = {}
for i, dataf in pairs(datas:GetChildren()) do
if dataf:IsA('Folder') then
for i, folderitems in pairs(dataf:GetChildren()) do
table.insert(statstosave, folderitems.Value)
print(i, folderitems.Name, folderitems.Value)
end
end
end
DataBaseStore:SetAsync(key, statstosave)
end
end)
game.Players.PlayerRemoving:Connect(function(Player)
local key = "PlayerID=" .. Player.userId
local datas = Player:WaitForChild('Data')
local statstosave = {}
for i, dataf in pairs(datas:GetChildren()) do
if dataf:IsA('Folder') then
for i, folderitems in pairs(dataf:GetChildren()) do
table.insert(statstosave, folderitems.Value)
print(i, folderitems.Name, folderitems.Value)
end
end
end
DataBaseStore:SetAsync(key, statstosave)
end)
I get this error on line 21 - 00:49:16.475 - ServerScriptService.Data:21: bad argument #3 to 'Value' (string expected, got nil)
Edit - heres the folder and its values im trying to save: http://prntscr.com/o16951

2 comments
have an event for game:BindToClose() so data will save once the game shut downs or something
i will add the once i fix this problem