MessagingService

Show Deprecated
Not Creatable
Service
Not Replicated

MessagingService allows servers of the same experience to communicate with each other in real time (less than 1 second) using topics. Topics are developer‑defined strings (1–80 characters) that servers use to send and receive messages.

Delivery is best effort and not guaranteed. Make sure to architect your experience so delivery failures are not critical.

Cross-Server Messaging explores how to communicate between servers in greater detail.

If you want to publish ad-hoc messages to live game servers, you can use the Open Cloud APIs.

Limitations

Note that these limits are subject to change.

LimitMaximum
Size of message 1kB
Messages sent per game server 600 + 240 * (number of players in this game server) per minute
Messages received per topic (40 + 80 * number of servers) per minute
Messages received for entire game (400 + 200 * number of servers) per minute
Subscriptions allowed per game server 20 + 8 * (number of players in this game server)
Subscribe requests per game server 240 requests per minute

Summary

Methods

Properties

Methods

PublishAsync

()
Yields

Parameters

topic: string
message: Variant

Returns

()

SubscribeAsync

Yields

Parameters

topic: string
callback: function

Returns

Code Samples

Subscribing to Cross Server Messages

local MessagingService = game:GetService("MessagingService")
local Players = game:GetService("Players")
local function onPlayerAdded(player)
--subscribe to the topic
local topic = "player-" .. player.UserId
local connection = MessagingService:SubscribeAsync(topic, function(message)
print("Received message for", player.Name, message.Data)
end)
player.AncestryChanged:Connect(function()
-- unsubscribe from the topic
connection:Disconnect()
end)
end
Players.PlayerAdded:Connect(onPlayerAdded)

Events