TextChatService is now the default for new experiences!

If you’re going to force TextChatService at least put in the feature for the chat to have the same UI as legacy as although the design looks amazing, games that rely on looks of old Roblox will end up having the chat looking odd as it doesn’t match the game style. I feel like game style is the biggest thing when it comes to the new chat. Unless I can revert to the old design I will be sticking with the old chat until I am forced to switch.


Before, I was using the following script to show usernames instead of display names in the chat (Local script in replicated first):

local Chat = game:GetService("Chat")

	return {
		PlayerDisplayNamesEnabled = false,
		WhisperByDisplayName = false,

It does not work with TextChatService. I use usernames because it is easier to track down hackers and identify players.

Any idea how to use usernames instead of display names in chat? Thank you!

1 Like

In-Experience Text Chat | Roblox Creator Documentation

Modify the PrefixText then.

TextChatService.OnIncomingMessage = function(message: TextChatMessage)
	local properties = Instance.new("TextChatMessageProperties")

	if message.TextSource then
		local player = Players:GetPlayerByUserId(message.TextSource.UserId)
		properties.PrefixText = player.Name

	return properties
1 Like

Yup! I am referencing this link, any configuration in the BubbleChatConfiguration applies to all players, I am unable to specifically change a different player’s bubbblechat background3

1 Like
1 Like

Thanks for letting me know and for the swift reply

1 Like

The only issue I have with the new chat is that it ignores the DisplayOrder property of ScreenGui objects, so I can’t put menus above the chat

Old chat

New chat


It is listed that TextBox is a property of ChatInputBarConfiguration | Roblox Creator Documentation

However, through a bit of testing, I only found it to be nil. Which is really unfortunate, since now we don’t have any method of accessing the textbox used for input. (For chat autocompletes and anything similar to that)

Additionally, more of a preference thing, but I’d rather be able to disable this button. I just find it taking up space :l



How will this TextChatService requirement work? How will it affect experiences that are reuploads from an existing or generated place file which uses legacy chat?

Also, will issues with TextChatService and Player.Chatted be addressed? If so, on what sort of timeline?

1 Like

I said this in the previous 2 threads:

and I will say it again.

PLEASE implement a channel bar.

That’s the one thing that’s preventing me from migrating to TextChatService.


Please read the post again for more information on “Channel Bar”.

  • We will be addressing developer needs for their experiences to migrate to TextChatService. Top examples include granular bubble chat customization and TextChannel UI support.

What part of the messaging was confusing/unclear? We’d appreciate this feedback so we can clarify in our future communication!

We plan on communicating a long-term approach (we’re talking many months) in which developers are given proper messaging and time to migrate to TextChatService once customization feature parity is reached.

For the Player.Chatted, what part of TextChatService does not allow same functionality as Player.Chatted? (i.e. OnIncomingMessage, etc)


What’s confusing is that the same thing has been said both posts and for some reason I still haven’t seen it implemented unfortunately.

Now that ChatService is deprecated, this is significantly decreased my workflow.

Can you elaborate on “lag more frequently”? It’s difficult for us to action on this without any details, i.e. device type, experience, network connection, reproduction steps, etc. Any additional information would be helpful!


Could you elaborate by “almost all properties of each chat message” not covered by the current API?

This is something we’re actively investigating!


Understand that the legacy system allowed for forking the scripts. It is realistically not possible for us to update such a system w/o breaking forked versions (i.e. if you modify a few lines of some scripts in the system, it is difficult for us to reliably roll out any updates to the near-infinite permutations of modifications of a forkable system). The TextChatService API should allow for creation of custom user interfaces if the default one is insufficient, but we’re aiming to introduce more customization options (such as channel tabs) so a completely custom front end is not necessary to meet the needs of most developers.

If you have any issues or concerns with TextChatService and the new default UI, we would appreciate your continued clear and communicative feedback so that we can address any needs and clarify any gaps in understanding with the community.


Can you elaborate what you mean by “channels and developer UI injection portals”?

I have talked about this a lot in previous threads about TextChatService. Since the last time I checked, there was no built in UI to change between chat channels, and there was no way to mod the chat UI with additional buttons so adding this functionality myself in a cohesive way without totally separate UI is impossible.

Replies with context:

Chat Feedback - Whisper, Performance and Customization: