The script I am trying to do is, the script will clone the stats which is in a folder, which is then saved into the player if they leave, its also supposed to load the stats. I am trying to use table.insert instead of saving every value in the folder manually like valuesToSave = {1.value,2.value,.........}

--Player Joins

local DataStore = game:GetService("DataStoreService"):GetDataStore("PlayerStats")

game.Players.PlayerAdded:Connect(function(player)
	
	local pstats = Instance.new("Folder", player)
	pstats.Name = "PlayerStats"
	
	for index, child in pairs(game.Workspace.DataStore.Values:GetChildren()) do
		print(child,child.Value,index)
   		local stat = child:Clone()
		stat.Parent = pstats
	end
	
	local key = "player-"..player.userId
	
	local savedValues = DataStore:GetAsync(key)	
	
	for  index, child in pairs(game.Workspace.DataStore.Values:GetChildren()) do
	child.Value = savedValues[index]
	end
	
	local valuesToSave = {}
	
	local children = game.Workspace.DataStore.Values:GetChildren()
	for i = 1,#children do
		table.insert(valuesToSave,i,children.Value)
	end

	DataStore:SetAsync(key, valuesToSave)
	print(table.concat(valuesToSave,''))
end)


--Player leaves

local DataStore = game:GetService("DataStoreService"):GetDataStore("PlayerStats")

game.Players.PlayerRemoving:Connect(function(player)
	
	
	local key = "player-"..player.userId
	
	local valuesToSave = {}
	
	local children = game.Workspace.DataStore.Values:GetChildren()
	for i = 1,#children do
		table.insert(valuesToSave,i,children.Value)
	end	
	
	DataStore:SetAsync(key, valuesToSave)
end)