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:
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.
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:
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
.
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.