New Bubble Chat and TextChatService Customization APIs

It’s good that there’s finally some way to customize the chat even further with the new system, but some concerns still remain;

Will channels ever return? What about the ability to server-side mute players without a complicated workaround?

71 Likes

Even better, what if it could be possible to have an AlwaysOnTop with a distance threshold???
(Applied not just to this, but all GUI objects that have that property!)

So if you’re, say, 20 studs away or less from someone, their chat bubble is always on top, but if you go further than that (or whatever the developer sets for the threshold), the chat bubble now gets occluded.

69 Likes

Will we ever get the ability to make the new TextChatService look like old Chat?
I would really love to use this but my entire game is based off of classic Roblox and having it look like this would not be ideal.

60 Likes

Personally I would prefer an option to allow Billboard GUI’s entire depth to be based on an anchor point, so that if the speaker was behind a wall I wouldn’t see it, but if they were infront of the wall like in the example above that it would be on top.

62 Likes

When will the issue with the number bubble be addressed? If you have the chat window disabled, but you still have the chat box enabled, it’ll still show the number of unread messages as if the chat window was still there.

60 Likes

That image bubble is sick.

I have three features to request though that text chat service doesn’t offer that the legacy chat system does:

1- The ability to see what the user is typing for autocomplete or effects and such
2- The ability to see old messages sent pre-join
3- The ability for gradients on text messages in the chat window

58 Likes

Would love an support for emojis in the new chatservice

48 Likes

The new ChatService does support emojis if thats what you mean:

image
image

67 Likes

Finally! I am really sure that this will affect the gameplay in a good way. Thank you!

60 Likes

I think he meant having a button to select emojis.

50 Likes

This is great news, Developers including me are able to fully customise chat bubbles in TextChatService to fully fit the vibe of the game!

42 Likes

The chat interface requires enhancements to reach its full potential. Currently, its customization options are rather limited, and there is a noticeable absence of features such as gradient transparency. Most critically, the system lacks the functionality to reconfigure chat binding, a feature that many users would find valuable. These improvements are essential for a more streamlined and personalized user experience.

38 Likes

wow, great update! i don’t see any drawbacks with this.

42 Likes

Here’s a rapid fire list of responses, sorry for the lack of cohesion here.


This is the team’s next priority!

A great idea, I don’t believe it supports this right now but feel free to file a feature request so we can track this.

Feels like a good opportunity to enable an auto complete for developers (with or without TextChatCommands… needs research) We’ll keep this in mind as we investigate!

This looks like a snippet for the legacy system… There’s an analog for BubbleChat’s Background Color already though: BubbleChatMessageProperties | Documentation - Roblox Creator Hub

TextChannels currently exist already, but they are not reflected in the UI well yet. This is one of the team’s next priority as hinted towards the end of the OP.

If I understand this feature correctly, you should be able to set the TextSource.CanSend property to false from a server script context to do what you are asking for today!

Do you mean rebinding the chat hotkey? This is a new addition that was added to ChatInputBarConfiguration.KeyboardKeyCode and announced in the OP!

42 Likes

Yes it is, because the new textchatservice does not support what I’m trying to do. @Clasifex already looked at it and filed it internally, and I’m just trying to see what I can do on my side and hopefully what I requested will be here soon.The BubbleChatMessageProperties does all of them, I just want whenever the speaker says a message, not for everything.

32 Likes

Simply Awesome! Thanks, Roblox for this. A whole new level of customization.

31 Likes

Hey team, thank you for all your hard work in improving TextChatService and making sure that its feature set is on par with what was capable when leveraging the Legacy Chat System’s API or adding features that were not possible without forking (for example, I created a resource for targeted modification of chat bubbles with the Legacy Chat System). I am now gravitating much closer towards adopting TextChatService going forward in contrast to my initial vocal pushback.

I currently maintain an experience that runs a fork of the bubble chat and have removed CoreScript dependencies to further customise bubbles. Although we are still reliant on some parts of the Legacy Chat System API (e.g. chat states and commands), one of the reasons we forked the bubble chat was to add images beside the text as team chat identifiers. Does this release support that?

An example of how this looks in-experience:


Not sure why the image became grainy on upload so hopefully it’s still visible what I want to do.

49 Likes

In my honest opinion it looks like a cool thing on paper but I already know this is going to look horrendous when its actually being used.

Default white bubble chat will always be better because the whole point is to just read the message, all this extra nonsense that’s on screen is truly offensive to look at and very impractical.

The best way to use this is to make sleek designs where the text is the main focus of the speech bubble while trying to not make the background design look like a whole game thumbnail.

32 Likes

On the contrary! It’s an option that’s available to you as a developer, and developers like myself have reason for wanting to have further customisation on bubbles. I really think that it’s up to the developer to figure out what works for their experiences best, and if they want to be silly, then so be it.

My community was very upset when I first attempted transitioning to TextChatService because we had white bubbles on black text that was difficult to see and preferred inverted colours. We would not be able to achieve that without native customisation support or forking which is in itself an arduous process now compared to the Legacy Chat System’s BubbleChat LocalScript.

There are certainly goofy and unreadable combinations that could be implemented with this but I think most developers aiming for readability with customisation aren’t going to have goofy deployments of customised bubble chats. They make for a great monetisation opportunity: there are games outside of Roblox that grant chat frames for example. They can also help intuitively determine who you’re communicating with - in a team-heavy experience such as a roleplay group with team chat requirements, it may be difficult to know who the recipients of messages are without customisation.

I get that you’ve already recognised this though at the bottom of your post by giving advice on how to best use customisation, so that’s a welcome tip I’m sure a lot will appreciate. Though it’s great to have native support either way, even if it opens the door for “visually offensive” bubbles. Trying to customise bubbles in the past was way too difficult.

47 Likes

If I’m not mistaken, that’s exactly what this release aims to enable. You could set the background color to red if the user’s id matches a specific number like this now:

local TextChatService = game:GetService("TextChatService")

-- You'd change this variable to match the UserId you're expecting...
local SPECIAL_USER_ID = 0

TextChatService.OnBubbleAdded = function(textChatMessage)
	local textSource = textChatMessage.TextSource
	if textSource and textSource.UserId == SPECIAL_USER_ID then
		local bubbleChatOverrides = Instance.new("BubbleChatMessageProperties")
		bubbleChatOverrides.BackgroundColor3 = Color3.fromRGB(255, 150, 150)
		return bubbleChatOverrides
	end

	return nil
end
34 Likes