How do i get player`s info (leaderstats) from another server?

hello! i want to make a random player choose system. the system will choose a random player from ALL servers. But how do i send player or players info (e.g. leaderstats), not player`s name if MessagingService doesnt acceept dictianories? Heres what i used:

local function publishPlayerList()
	local playerList = {}
	allPlayers1 = {}

	for i, player in pairs(Players:GetPlayers()) do
		local playerTable = {
			Name = player.Name;
			UserId = player.UserId;
			Value = player:WaitForChild("leaderstats"):WaitForChild("Cash")			
			
		}
		table.insert(playerList, playerTable)
	end
	
	local messageData = {
		playersListTable = playerList
	}

	local success, errorMsg = pcall(function()
		MessagingService:PublishAsync(topic, messageData)
	end)

	if not success then
		warn("Failed to publish player list update:", errorMsg) --error: Failed to publish player list update: MessagingService:PublishAsync(): Cannot publish Dictionary, can only accept valid UTF-8 characters.
	end
end

local function onMessageReceived(message)
	local receivedPlayerList = message.Data.playersListTable

	for i, plr in receivedPlayerList do
		print(plr)
		table.insert(allPlayers1, plr)
	end

	for _, playerName in pairs(allPlayers1) do
		--print(playerName)
	end
	local randomPlr = allPlayers1[math.random(1, #allPlayers1)]
	ChosenOne = randomPlr
	print("Chosen one:", ChosenOne)
end

MessagingService:SubscribeAsync(topic, onMessageReceived)

but if we do just players name, not a table, it works perfectly.

local function publishPlayerList()
	local playerList = {}
	allPlayers1 = {}

	for i, player in pairs(Players:GetPlayers()) do
		table.insert(playerList, player.Name) --cant do player :(
	end
	
	local messageData = {
		playersListTable = playerList
	}

	local success, errorMsg = pcall(function()
		MessagingService:PublishAsync(topic, messageData)
	end)

	if not success then
		warn("Failed to publish player list update:", errorMsg) --error: Failed to publish player list update: MessagingService:PublishAsync(): Cannot publish Dictionary, can only accept valid UTF-8 characters.
	end
end

I need your help, how do i sent player`s leaderstats or just a player? Maybe i should use something else, because MessagingService doesnt seem to be working. Would appreciate your help!