I'm using Tables to store datastores, but it's warning 'Cannot store Array in data store. Data stores can only accept valid UTF-8 characters.' how would I fix this?

Current Code:

local serverStorage = game:GetService("ServerStorage")
local Players = game:GetService("Players")
local DataStoreService = game:GetService("DataStoreService")
local TestDataStore = DataStoreService:GetDataStore("emp43")

local data = {
	["Steps"] = 0,
	["Rebirths"] = 0,
	["Races"] = 0
}

Players.PlayerAdded:Connect(function(Player)
	local DataFromStore = nil
	
	local leaderstats = Instance.new("Folder")
	leaderstats.Name = "leaderstats"
	leaderstats.Parent = Player
	
	for name, value in pairs(data) do
		local new = Instance.new("NumberValue")
		new.Name = name
		new.Value = value
		new.Parent = leaderstats
	end
	
	local s, e = pcall(function()
		DataFromStore = TestDataStore:GetAsync("uid-" .. Player.UserId)
	end)
	
	if s then
		print("Getting Data For: " .. Player.Name)
	elseif e then
		warn("Error Getting Data For: " .. Player.Name)
	end
	
	if DataFromStore then
		for name, value in pairs(DataFromStore) do
			Player.leaderstats[name].Value = value
		end
		print("Data Loaded For: " .. Player.Name)
	else
		print("Created New Data For: " .. Player.Name)
	end
end)

Players.PlayerRemoving:Connect(function(Player)
	local DataForStore = {}
	
	for name, value in pairs(Player.leaderstats:GetChildren()) do
		table.insert(DataForStore, value)
		DataForStore[value.Name] = value.Value
		print(unpack(DataForStore))
	end
	
	TestDataStore:SetAsync("UID-"..Player.UserId, DataForStore)
end)