The Big Bubble Chat Rework

I still don’t understand why you guys couldn’t just re-style the existing BubbleChat framework instead of making it rely on a messy, horrendous proprietary framework which appears to slow down everything it runs, and makes it more difficult for developers to modify.


Looking good about the new one, but can’t follow that old thing. Old Bubble Chat make us the memories.


Isn’t it connected to the humanoid Root part and not the head?


I believe it’s due to legacy behavior that has been kept for the R6 rig. The new bubble chat uses the character’s PrimaryPart as its adornee for the BillboardGui. You’ll notice that R6’s PrimaryPart on spawn is the Head, whereas, R15’s is the HumanoidRootPart.

If you don’t rely on the R6 PrimaryPart being the Head, you can just set the PrimaryPart yourself on the .CharacterAdded event to the HumanoidRootPart instead. I don’t believe there’s any side effects of doing this.


This update is truly amazing. The Roblox chat has not changed for many years now, and it seems like a big update to me. One thing that I truly love about it is how customization it is. Now, instead of having to re-create a chat on our own in order to design it, we have way more control over it without holding us back from having to manually update our own every time it breaks. One thing that I would enjoy is if we could “customize the animation” per say. Although this chat is very good, it is too cartoonish for some scenarios, so customizing the appearance and fading-out speed (how long it takes to appear) would be amazing. Other than that, amazing job. Very well done.


Question: Does setting the bubble chat settings only work in-game? When I try to do it in Studio, the default settings are still there.

local chat = game:GetService("Chat")

local ChatSettings = {
	BubbleDuration = 10,

	MaxBubbles = 1,

	BackgroundColor3 = Color3.fromRGB(0, 0, 0),
	TextColor3 = Color3.fromRGB(255, 255, 255),
	TextSize = 10,
	Font = Enum.Font.GothamSemibold,
	Transparency = 0,
	CornerRadius =,0),
	TailVisible = false,
	Padding = 8, -- in pixels
	MaxWidth = 300, --in pixels

	VerticalStudsOffset = 0,

	BubblesSpacing = 6,

	MinimizeDistance = 40,

	MaxDistance = 100,



To be honest, this is one of the best updates so far! Not only it fixes the line cutter glitch, but it also makes everything look so much cooler! I was thinking we could maybe get outlines to the bubbles… But anyway, this is a great feature!


Whenever I try it in-game, it takes quite a while for it to load.


On R6 rigs, the spacing for the text bubbles seems a bit too extreme.

On R15 rigs, with the same bubble chat setup, it looks like this.

Obviously, the bubble chat on the R15 rig is more identical to the classic bubble chat. I assume the bubble chat isn’t supposed to look the way it does right now on R6 rigs - it looks extremely out of place. Could you verify this behaviour between the 2 rigs @Chocopain ?

I verified that the size and shape of the HumanoidRootPart are identical on both rigs, as you mentioned that the bubbles are adornee’d to the HumanoidRootPart in one of your replies.


I made use of a LocalScript in the StarterPlayerScript container to enable the new bubble chat, in case you might wonder. I’m using default settings as well.


We never had to recreate any chat to customise the old version - we just had to playtest it in Studio and copy/paste the correct folder, which doesn’t seem that complicated IMHO.


This visual rework of BubbleChat is something we’ve needed for a long time. However I, like many other developers, will not be using it for the foreseeable future due to the fact that it’s now a CoreScript.

Chat forking is an extremely important feature to some games. While the customisation that we’ve been given is quite a nice feature, it still doesn’t come close to the freedom we had with forked chat. The simple ability to omit certain messages (/me, for example) from being displayed opened up a world of opportunities for custom commands and emotes. In fact, that’s a critical feature to many roleplay games. This update would be welcomed with open arms if it weren’t a CoreScript. This simple “Don’t like it? Change it.” philosophy should still be applicable to the new chat. Giving us the freedom to modify it to our liking would only boost developer engagement and would definitely aid the migration to the new system two-fold.

While it’s nice to have settings, a lot of us would prefer the total freedom to change whatever we want about the new system - whether it be adding custom commands and formatting or even just changing the tweening of the chat bubbles.


Looks super clean! Could use a (…) when the player is typing, though.


Not really a problem, as long as the dumb gap glitch is gone.

Awesome update but I still think chat needs a GUI update.
This doesn’t really look too consistent with the rest of the GUI, like the leaderboard.


You need to do in a local script.


Will there be an optimization update for the Billboard GUIs?
One billboard will do a draw call which is extremely unoptimized for a game with hundreds of players and with UI corners that are also not efficient at all!
Decals got their textures batched and you can have a million of them without any performance cost.

My project mainly focuses on Billboards and it is already laggy with a small number of instances.


I have found that if you set “VerticalStudsOffset” to around -1.7, it fits above the head of an R6 player.


So, i do not understand how the customisation works


Question: Is there a way to make the chat bubble instantly pop up instead of sliding up? I prefer the old style of instantly appearing. Is there any way to make the new chat like this?


I like new style of bubble chats and I appreciate the efforts made by the staff who worked on this project but I think it would be extremely beneficial for all Roblox Developers if we had the ability to fork & customize it ourselves - rather than it being restricted within CoreScripts and limited config options.

While the visuals are nice and the config options provided seem okay for basic customization, how are we supposed to explore in-depth how this new product will work? Having thought Roblox were becoming more focused on user generated content, I would have thought full customizability would be provided for such widely used features.

Providing the new Bubble Chat as a fully editable product would seem like the best thing to do. Especially if you want developers to actually learn something - it could be used as a learning resource; helping people better understand how the chat system operates and even how Roact works.

I also think the player list and other on screen menus should have the ability to be forked & edited, but that isn’t really relevant here.

We never would have known without this statement.