All guides

How to send a message to every Roblox server at once

Broadcast an announcement, start an event, or trigger an action on every running server - live or on a schedule.

Roblox gives you a cross-server messaging service, but on its own it only delivers a payload; you still need somewhere to send it from, a schedule, and a record of what was sent. That is the gap RoSignal fills.

1. Start with an announcement

The simplest message is plain text with no topic at all. Your game handles it once with OnAnnouncement, and every announcement you ever send lands there.

local Players = game:GetService("Players")
local RoSignal = require(game.ServerScriptService.RoSignal)

RoSignal.OnAnnouncement(function(text)
	for _, player in ipairs(Players:GetPlayers()) do
		-- show it however your game shows notices
		print(player.Name, "sees:", text)
	end
end)

2. Send it

From the dashboard, type the announcement and send. It reaches every running server of that experience in seconds - and your Studio play-test too, so you can check it before anyone is online. Each send is logged with the account that did it, so a team of five still has one clear history.

3. Custom commands, when text is not enough

For anything structured - a double-XP window, a reward, a shop rotation - use a topic and a data payload. Your game subscribes to the topics it cares about and decides what each one means.

local doubleXp = false

RoSignal.OnMessage("DoubleXp", function(data)
	doubleXp = type(data) == "table" and data.enabled == true
end)

4. Or schedule it

Schedule the same message for a time in the future - a weekend event that starts itself at 10:00, a shop rotation, a reminder before a shutdown. You do not need to be online for it to fire.

5. Or let a rule send it

Automations turn a condition into a message. When concurrent players cross a threshold, when an event spikes, when a schedule comes round, or when an external service calls a webhook - the rule fires and the message goes out without you touching anything.