New Bubble Chat and TextChatService Customization APIs

it will be adorned to the centre of the part. A separate part would be needed for each bubble as the sizes are different


so how do we make the tail appear until the bug is fixed? I tried setting it in script by
game:GetService(“TextChatService”).BubbleChatConfiguration.TailVisible = true
but the tail still doesn’t show up.


Hope to support IOS devices soon, because I use your latest API and get this error every day, but I don’t want to rewrite the compatibility code of the deprecated Chat API again.


The tail not showing is actually a regression from a separate release unfortunately. A fix is in and will be in next week’s release.

Sorry that you had to run into this error. Good news is that onBubbleAdded API is supported in the latest versions of Roblox iOS app, but unfortunately about ~20% of users are still on an older version. This should resolve in the coming weeks as users upgrade, and we typically force upgrade older versions after a few weeks.


Nice feature, it will help a lot of games.


Hello, I’ve been having issues with the chat, there was another thread that went unnoticed so I’ll just link it here:

Thank you


Update: All clients including iOS should have been upgraded to the latest version, so this API should work as expected for your players now. Please let us know if you still see any issues.

Thanks for reporting these. Our team is actively looking into these issues.


The transparency issue has been fixed, thanks for bringing it up!
Our team has logged your feedback for chat bubble TextStroke.


What is the best possible way to detect if a chat message is a whisper or a team chat?

I managed to figure it out by asking around. You can tell by checking the text channel property of the textchatmessage.
“RBXGeneral” is the channel for all default chats.
“RBXTeamTeamColor” is the channel for team chats, ie: RBXTeamReally black
“RBXWhisper: Recivers UserId_Senders UserId” is the channel for whispers, ie: RBXWhisper: 367618239_412998715


Please make an option with textchatservice that allows players to see old chats from before you joined the game in the chat box.

it’s been 2 new studio updates and the tail still doesn’t appear. Can you please tell when it will be fixed? It’s important for my game

Please include “VerticalStudsOffset” to the BubbleChatMessageProperties instance. I created a overhead gui that enables icons over the name tag but ends up covering the chat bubble. I am aware of BubbleChatConfiguration but it applies to all chat bubbles and makes the bubble spacing seem too far if the overhead icon isn’t visible. Adding this property will help adjust the offset of an individual bubble.

I am still having issues when trying to set message colors for ONLY in the chat box, not chat bubbles.

For example, I want to make my message color in the chat box gold but keep it normal in the chat bubble. However, it does not work. This is the relevant portion of my code:

function ChatController:KnitStart()
	TextChatService.OnBubbleAdded = function(...)
		return self:OnBubbleAdded(...)

	TextChatService.OnIncomingMessage = function(...)
		return self:OnIncomingMessage(...)

function ChatController:OnIncomingMessage(message: TextChatMessage): TextChatMessageProperties?
	local textChannel = message.TextChannel
	if not textChannel or textChannel.Name == "RBXSystem" or not message.TextSource then
		return nil


	local chatColor: string? = player:GetAttribute(ATTRIBUTE_MESSAGE_COLOR)

	local properties ="TextChatMessageProperties")

	if typeof(chatColor) == "string" then
		properties.Text = `<font color="#{chatColor}">{message.Text}</font>`

	return properties

function ChatController:OnBubbleAdded(message: TextChatMessage, adornee: Instance): BubbleChatMessageProperties?
	local textChannel = message.TextChannel
	if not textChannel or textChannel.Name == "RBXSystem" or not message.TextSource or not message.Text then
		return nil

	local properties ="BubbleChatMessageProperties")
	properties.TextColor3 =, 0, 0) -- properties.TextColor3

	return properties

Expected behavior would be that the text color in my chat bubble is pure black. However, since I’m setting the Text to RawText, it doesn’t matter WHAT I set the chat color for the chat bubble to because the RichText will just override it. Ad unfortunately, there is no way to set BubbleChatMessageProperties.Text to override that. So I’m optionless, at the moment.

@be_nj pinging you for visibility since I know you were a source of contact in the past.

This. We need this. I want this. My game, Conveyor Sushi Restaurant, is very social. If Roblox supports this built-in, out-of-the-box, to allow for any image ID to be shown as a sticker, it would greatly improve the social aspect of my game.

Typing something like :meme: for example would swap in an image into the chat and display above the users head, very akin to the Emoji rollout, would be GREAT!!
Please let us know if you can add this or a way we can achieve this.

it’s been a while, is there any info on fixing text bubble’s tail?
TailVisible property does nothing right now.

1 Like

Can you change the premium image to a image to your liking? Like, a popular youtuber chats (that isnt verified on roblox, but is verified in my game) will get an verified icon, is that possible?

Thank you Roblox Team for your hard work! These features have been very useful for developers including myself.

Looking forward to further expansion of the current properties in the future—including perhaps the CornerRadius and Padding options present in the old Chat Service?:grin:

the commitment to streamlining customization is cool and all, but the service is still in dire need of advanced ways to modify aspects of the chat that don’t fall under the umbrella of “things roblox staff has thought about”
my current project has a fork of the legacy chat with a custom system to directly insert images as chat tags, and unless someone added in-line images to rich text formatting while i wasn’t looking, this is something that doesn’t seem to be possible in the new system without plugin-level code permissions
please allow for more advanced direct gui modifications and additions to chat messages and everything else in the system
or just let us modify coregui in a localscript i’ll take that too though that’s probably for security reasons isn’t it

This would be perfect if I could customise the animation parameters of the chat bubbles like I could with the legacy system, and if I were able to set the tail to an image, and if the chat window could have more customisation options (including stroke, corner radius, padding, precise position, etc)

There’s also a bug here, with the tail no longer being visible for some reason, even on places without spatial voice and microphone.

1 Like