Bubble Chat is now integrated into TextChatService!

Hi everyone,

We’re excited to announce that Bubble Chat is now integrated into TextChatService!

There is now a BubbleChatConfiguration instance parented under TextChatService that has all the properties to customize bubble chat, which will make it much easier for you to customize and preview changes. Please note that this is only available if TextChatService is enabled.

While we haven’t migrated all API functionality from the older bubble chat yet, we’ve ported over core customization and will explore how best to migrate the rest. Please let us know which are particularly important to your use cases!

Be sure to check out the documentation for how to customize BubbleChat.

What is TextChatService?

We are investing heavily into TextChatService as the new Roblox in-experience text chat system. It is a safe, modern and easily extendable chat that is a successor to the existing Chat service. This system is more sustainable for engineers at Roblox to iterate on, which means that we will be delivering regular fixes and new features to TextChatService that won’t conflict with any code you may have written that uses it.

What have we done with TextChatService so far?

  • Fixed many bugs and UX issues thanks to your feedback!
  • Made whisper chat fully functional in TextChatService

What’s next for TextChatService?

  • We will be providing developer controls for customizing the default chat window and filtering messages
  • Making TextChatService the default for new experiences in Studio

Known Issues:

  • We are aware of an issue with the font property not being editable in Studio and a fix will be coming very shortly.
  • We are aware of an issue with BubbleChat not working with Chat:Chatted and are prioritizing a fix to come shortly.

How to switch to TextChatService

Please read this guide on how to enable TextChatService.

If you have any difficulties migrating your experience to TextChatService, please reach out to us! We have a support channel where the engineers on our team are willing to directly assist you. If you would like to be added, please send me a direct message!

Special thanks to @be_nj, @daweezy99, @SubtleShuttle, and @St4rst0n3 for their work on BubbleChat integration!

258 Likes

This topic was automatically opened after 10 minutes.

Looking fire and clean :fire::fire::fire:

Easy for developers to edit or customize it now.

15 Likes

Epic!!
Bubble chat is kinda cool!

11 Likes

This broke NPC chatting in my games as they use bubble chat to communicate with players. Is there/will there be functionality to allow bubble chat with parts/NPCs or will I have to disable TextChatService for this functionality to return?

15 Likes

Hey pop, we are currently tracking this issue in this thread. Dialogs do not show up if Bubble Chat is disabled

It appears this issue cropped up before BubbleChatConfiguration was rolled out, though we have scheduled to work on this particular issue in the coming weeks.

10 Likes

YEEES THANK YOU SO MUCH! FINALLY, I AM SO HAPPY TO BE ABLE TO HAVE BUBBLE CHAT COLOR AS A PART OF TextChatService+ THANK YOU SO MUCH!

1 Like

Will we have a way to get the unfiltered message, for things like updating our chat commands to work with the new textchatservice
The player.chatted event doesn’t work with the new service and there’s no way to get the unfiltered message with the new service

How does per-player customization work for this? Do you have to edit the default bubble chat with these new properties, and do per-player customization with a script like before?

2 Likes

Per-player customization is one of the gaps we haven’t filled yet. We have plans to make this more flexible than per-player, so it can be done more generically without needing specific userIds.

These updates will roll out over the following releases.

9 Likes

We’ve intentionally made it harder to accidentally use the unfiltered string in the TextChatService system. That said, there are a few areas the unfiltered original string can be observed by developers:

The TextChatService.SendingMessage event fire with a soon-to-be-filtered TextChatMessage on the originating Player’s client. Theoretically this means you could fire a RemoteEvent from this event if you need this information on the server as well.

Alternatively, if a TextChatCommand.Triggered event is raised, it will have the raw unfiltered message fired as one of the arguments on the server and client as well. If you’re authoring chat-commands, TextChatCommands may be the way to go here.

9 Likes

I posted this suggestion a couple times on the last TextChatService post but didn’t get a response:

Please give us some way to detect when a user is typing in chat. I relied on this for a “chat bubble” effect with the old Chat service, but now that the Text chat is in CoreGui, it is impossible to detect the TextBox being selected!!!

@be_nj

5 Likes

Please add a Channel Bar for different Chat Channels. It’s the one thing that’s preventing me from enabling TextChatService for my game.

5 Likes

Thx for the reply
Good to know there’s a way, just a little obscure and complicated if you don’t want to fully convert your chat commands into the new TextChatCommands but whatever

2 Likes

Would this include specific NPCs by any chance?

Yeah, we have NPC-related work carved out in our timeline. We’d like to design something that can treat NPCs and Players generically

4 Likes

Thanks for the feedback. We’ve added this to our list of dev controls to provide over the following releases.

2 Likes

UI support for Channel Tabs is on our roadmap. We know it is important to a lot of existing experiences so we do want to provide support in TextChatService.

3 Likes

Due to this update bubbles on parts with the function chat are broken.
https://create.roblox.com/docs/reference/engine/classes/Chat#Chat
That affect my game My Prison. I have to use the old chat temporary, hope this bug will be fixed soon.

We are tracking this issue here: Dialogs do not show up if Bubble Chat is disabled and will be prioritizing a fix to come in the next 2 weeks.

2 Likes