Use Roblox’s MessagingService for cross-server chat. The basic flow is: a server publishes a chat message to a topic, and every server listening to that topic receives it and shows it in its chat UI.

Simple setup

  1. Create one shared topic name for the chat channel. Roblox describes topics as the channel used for cross-server messaging.
  1. On each server, call SubscribeAsync() to listen for messages on that topic.
  1. When a player sends a message, call PublishAsync() to send it to that same topic.

Example idea

A common pattern is:

  • Player types message.
  • Server sends raw message through MessagingService.
  • Every server receives it.
  • Each server displays it to its players after filtering as needed.

Basic code pattern

lua

local MessagingService = game:GetService("MessagingService")
local TOPIC = "GlobalChat"

MessagingService:SubscribeAsync(TOPIC, function(message)
	print(message.Data)
end)

MessagingService:PublishAsync(TOPIC, "Hello from this server!")

This follows the same publish/subscribe approach shown in Roblox’s docs and community examples.

Important note

If you want the message visible to players, filter it before displaying it, and do the filtering on each server that shows the text. If you meant cross- server chat , this is the correct method; if you meant something else by “cross,” tell me the exact effect you want and I’ll map it to the right Roblox feature.