TextChatMessage
Immutable data object representing a text chat message.
To learn more about using TextChatMessages, see In-Experience Text Chat.
Summary
Properties
A unique identifier for the TextChatMessage.
A general purpose field for storing miscellaneous data about the TextChatMessage.
A prefix to add to a user's message.
Indicates the status of the TextChatMessage.
The filtered text message for the user.
A reference to the origin TextChannel.
A reference to the origin TextSource.
A timestamp of when the message was originally sent.
Translated and filtered text message.
Properties
BubbleChatMessageProperties
ChatWindowMessageProperties
Metadata
A general purpose field for storing miscellaneous data about the TextChatMessage. The second argument of TextChannel:SendAsync() and TextChannel:DisplaySystemMessage() is used to populate this field.
Use this field to apply additional formatting for special messages within TextChatService.OnIncomingMessage and TextChannel.OnIncomingMessage callbacks.
local TextChatService = game:GetService("TextChatService")
local generalChannel: TextChannel = TextChatService:WaitForChild("TextChannels").RBXGeneral
generalChannel:DisplaySystemMessage("This is an error!", "Game.Error.Generic")
generalChannel:DisplaySystemMessage("Could not find save data!", "Game.Error.SaveDataNotFound")
generalChannel:DisplaySystemMessage("You won the game!", "Game.Info.Win")
generalChannel:DisplaySystemMessage("You lost the game!", "Game.Info.Lose")
generalChannel.OnIncomingMessage = function(message: TextChatMessage)
if string.find(message.Metadata, "Error") then
local overrideProperties = Instance.new("TextChatMessageProperties")
overrideProperties.TextColor = Color3.fromRGB(255, 0, 0)
return overrideProperties
elseif string.find(message.Metadata, "Info") then
local overrideProperties = Instance.new("TextChatMessageProperties")
overrideProperties.TextColor = Color3.fromRGB(0, 255, 150)
return overrideProperties
end
return nil
end
As follows is a reference of the default system messages emitted by the chat system:
Metadata | Description |
---|---|
Roblox.ChatTranslation.ChatWindow.SystemMessage | Indicates that the system may translate chat messages for the player. |
Roblox.Notification.Friend.Joined | Displayed when one of the player's friends join the experience. |
Roblox.MessageStatus.Warning.Floodchecked | Displayed when the player's sent message was rate limited by the server. |
Roblox.MessageStatus.Warning.TextFilterFailed | Displayed when the player's sent message could not be displayed due to a text filtering issue. |
Roblox.MessageStatus.Warning.InvalidPrivacySettings | Displayed when the player's privacy settings prevent them from sending a message. |
Roblox.MessageStatus.Warning.MessageTooLong | Displayed when the player sends a message with content that is too long. |
Roblox.MessageStatus.Warning.Unknown | Displays when the system fails to send the player's message for an unknown reason. |
Roblox.Help.Info | Displays the response from the RBXHelpCommandTextChatCommand. |
Roblox.Version.Info | Displays the response from the RBXVersionCommandTextChatCommand. |
Roblox.Team.Success.NowInTeam | Displayed when the player's team changes. |
Roblox.Team.Error.CannotTeamChatIfNotInTeam | Displayed when the player triggers the RBXTeamCommandTextChatCommand without being on a Team. |
Roblox.Whisper.Info.Success | Displayed when the player successfully starts a whisper conversation. |
Roblox.Whisper.Welcome.Sent | Displayed when entering a whisper TextChannel. |
Roblox.Whisper.Error.CannotWhisperToSelf | An error response from the RBXWhisperCommandTextChatCommand. |
Roblox.Whisper.Error.TargetDoesNotExist | An error response from the RBXWhisperCommandTextChatCommand. |
Roblox.Whisper.Error.TooManyMatches | An error response from the RBXWhisperCommandTextChatCommand. |
Roblox.Whisper.Error.Unknown | An error response from the RBXWhisperCommandTextChatCommand. |
Roblox.Emote.Error.DoesNotExist | An error response from the RBXEmoteCommandTextChatCommand. |
Roblox.Emote.Error.UserEmotesNotEnabled | An error response from the RBXEmoteCommandTextChatCommand. |
Roblox.Emote.Error.TemporarilyUnavailable | An error response from the RBXEmoteCommandTextChatCommand. |
Roblox.Emote.Error.NotSupported | An error response from the RBXEmoteCommandTextChatCommand. |
Roblox.Emote.Error.SwitchToR15 | An error response from the RBXEmoteCommandTextChatCommand. |
Roblox.Emote.Error.AnimationPlaying | An error response from the RBXEmoteCommandTextChatCommand. |
Roblox.Mute.Error.PlayerNotFound | An error response from the RBXMuteCommandTextChatCommand. |
Roblox.Mute.Error.MultipleMatches | An error response from the RBXMuteCommandTextChatCommand. |
Roblox.Mute.Error.CannotMuteSelf | An error response from the RBXMuteCommandTextChatCommand. |
Roblox.Mute.Info.Success | An success response from the RBXMuteCommandTextChatCommand. |
Roblox.Unmute.Error.PlayerNotFound | An error response from the RBXUnmuteCommandTextChatCommand. |
Roblox.Unmute.Error.MultipleMatches | An error response from the RBXUnmuteCommandTextChatCommand. |
Roblox.Unmute.Error.CannotMuteSelf | An error response from the RBXUnmuteCommandTextChatCommand. |
Roblox.Unmute.Info.Success | An success response from the RBXUnmuteCommandTextChatCommand. |
PrefixText
A prefix to add to a user's message. This supports Rich Text, so developers can set custom properties for this text to support chat tags.
By default, TextChatMessage.PrefixText is the name of the TextSource, which is the Player.DisplayName of the user associated with the TextSource via TextSource.UserId.
Text
The filtered text message for the user. Different users may receive different strings from this property based on filtering rules. It can be an empty string.
Translation
Represents translated and filtered text messages based on users' localization settings. The system doesn't translate messages between users with the same localization settings or using languages without the text filter support, so this property can be an empty string if no translation happens. For customization, see Customizing Translated Messages.