How do you enable BubbleChat without enabling ClassicChat?

I am trying to enable just BubbleChat, without also enabling ClassicChat

If you’re unsure as to the distinction between the two, it’s that ClassicChat is the on-screen chat; and then BubbleChat is the overhead chat. Here’s a screenshot with both of them enabled:


The issue is that when trying to enable just BubbleChat, the Chat System is very… finnickity

In this screenshot, it’s hard to see, but the TopBar ChatButton exists, but the ChatBar which catches input doesn’t?


In order to try and enable BubbleChat without ClassicChat, I had to do some programmatical hurdles

I don’t take making a post lightly, so I’ll detail all the different methods I’ve tried.


Method 1

To begin, I was quite naïvely under the impression that the new ROBLOX BubbleChat would be easy to enable, so I used this toggle:

Screenshot 2020-12-30 at 12.06.49

And since it loaded both Classic and Bubble Chat, I decided to disable the second toggle, LoadDefaultChat, which resulted in the Chat being unresponsive and the ChatBar being non-existent. F.Y.I. this is not the behaviour I was expecting…


Method 2

Following this, I decided to use the new PlayerService API:

game:GetService("Players"):SetChatStyle(Enum.ChatStyle.Bubble)

Which ran without erroring, and produced the desired changes within the PlayerService object as can be seen with the BubbleChat and ClassicChat properties.

Screenshot 2020-12-30 at 12.13.26

However, upon running both a studio instance and a live server, I realised that these settings do not save. It’s almost as if PlayerService was non-archivable. Here’s a view from a running studio instance:

Screenshot 2020-12-30 at 12.14.34

Given that these settings are read-only, and the only method to change them has a PluginSecurity permission level, it seems almost impossible to me that any of my scripts could be messing with this.


Method 3

Deterred, but not giving up, I then decided to do it the old-fashioned way. I ran a studio instance, and copied the ClientChatModules.ChatSettings into Chat.

Screenshot 2020-12-30 at 12.18.05

Here, I saw the setting for ClassicChatEnabled and since the PlayerService setting didn’t persist to running instances of the game, I decided to forcefully set these values to my desired pairing:

To:

At this point, I was about to give up; but then realised that upon running a new instance of my game in studio this was the only method that works.

Here you can see; finally, I had managed to enable both the new BubbleChat system.


However, in a regular game instance, this method fails.

The ClassicChat remains enabled despite everything I tried here. I believe this has something to do with the PlayerService:SetChatStyle() changes not replicating to actual game instances, but I’m not 100% sure why it is still so hard to do.

Have you guys successfully enabled one without inadvertently enabling the other?

  • Yes, I have tried these same methods and found the same issue.
  • Yes, I’ve tried the same methods and it worked for me.
  • No, I’ve not tried these methods

0 voters

TL;DR
PlayerService API doesn’t work as intended.
BubbleChat cannot be enabled without also enabling ClassicChat in real game instances.
Forking the ChatSettings Module lets it work but only in Studio instances.

1 Like

Great help, I got a big help from this! Amazing and Thank you! :slight_smile: