In-experience text chat is any message created within your experience that originated from one user and is delivered to one or more other users, including:
- Chat bubbles over an avatar's head
- Direct messages between users
- Chat window communication between users
- Team-specific messages
For sending and delivery, these types of communications must each go through a TextChannel instance. This ensures messages respect privacy settings, are visible to moderators, and are properly text-filtered.
Certain text is not considered chat:
Text on menus created by developers (for example, "Press any button to continue.")
Status updates from the experience (for example, "Two minutes remaining!")
Announcements from admin commands
A user renaming their pet dog
A user writing on a sign
Moderation audit logs or messages
Comments on posts in an experience
Writing a post on a bulletin board
Any user-generated text unrelated to a conversation
For communication shared by users that can be seen by other users, even if it doesn't need to go through TextChatService, you must ensure it goes through a text filter.
Requirements
- All experiences that offer in-experience text chat for users must integrate TextChatService, per the Misusing Roblox Systems Community Standard.
- Between 30 December 2024 and 30 April 2025, creators that use a custom chat solution not powered by TextChatService or a modified or forked Legacy Chat can continue to use their existing feature, but must also deploy the CanUserChatAsync() and CanUserDirectChatAsync() methods in their experiences.
- After 30 April 2025, all creators must use the TextChatService API.
- For more information on migrating, see the Roblox Developer Forum.
- All incoming text that originates from another user must first use Text Filtering before your experience displays it.
- Communication between users must respect user privacy settings.
- TextChannel:SendAsync() handles basic privacy and parental settings automatically.
- TextChannel:SetDirectChatRequester() must be used to mark TextChannels created for direct chat.
- In-experience communication should be reportable for abuse. TextChannels handle this automatically.
Respect privacy settings
Users can have different levels of access to communication features based on their privacy and content maturity settings or parental controls. Some users might have additional restrictions or constraints depending on which app store they used to install Roblox or their local laws.
The following methods respect these requirements. Use them within your experience to determine how to handle messaging requests: