TextChatService is now the default for new experiences!

Are there plans to add (or is it already possible) to send a system/NPC chat message using the new TextChatService?

“Required”. This needs to be better explained. What do you mean by “required”?


The lack of developer-facing code is still a pretty souring experience - I don’t like that the mantra of black boxing so much content took more priority than making things more available. I feel like there should be an investment into ways to make this chat supposedly more “safe” and secure while still enabling the developer freedom to customise. Back to creating a chat from scratch if I need deeper functionality changes I guess.

Albeit that, it seems that a lot of the feedback I had about TextChatService and the baseline functionality is now coming closer to parity with what the Lua Chat System has offered so I’m happy about the extensibility of the service. The main things that lack addressing is the ability to create non-player TextSources; we’re now required to use RemoteEvents and the system message sending functionality, so I can’t have NPCs speak like regular players into the chat window anymore.

I don’t understand the TextChannel API at all, or rather I can’t use it well in-experience. I can’t find a way to change the player’s current chat channel or set a colour for TextSources when they send a message into the current channel. I’m aware of TargetTextChannel but are we expected to create our own commands for that? Channel changing used to be built into the chat service. I also can’t tell what channel I’m sending to anymore so that’s pretty confusing.

I’m not sure what’s going on here but when I change TargetTextChannel to a TextChannel that I didn’t call AddUserAsync on, the message still goes through but lacks a sender. I haven’t tested yet if the message replicates but it probably shouldn’t even be shown to the user themselves.

I can’t precreate any TextChannels because unlike the Lua Chat System, TextChatService does not respect an existing TextChannels folder when CreateDefaultTextChannels is enabled. This leads to me having two TextChannels folders at one time. I don’t know if TextChannel is not hierarchically dependent but for the sake of working with then at runtime, it sure will cause access issues for my other code since one folder will always be left out when indexing.

I would like the ability to create a command that clears the chat window for the current player. The Lua Chat System had this as a built-in command /clear. This to me was useful in helping clear out clutter or flush out the chat messages shown if I wanted to have a “fresh view” on the chat logs I was seeing, from clearing out messages I don’t want to see to just having a cleaned message log.

TextChatService doesn’t respect LoadDefaultChat. I don’t care how much customisation I could be offered, there are cases where I want to create my own chat system or have no chat at all. There needs to be a way to outright disable all the components of TextChatService without going through the Enabled property of the instances that could easily locally be flipped back on or deleting the instances that aren’t Roblox locked. I respect Roblox’s decision to make some features consistent across most experiences but as a power user, I want Roblox to respect my decision to create in-house systems. This is why I will always prefer the Lua Chat System to TextChatService, even if all my concerns end up addressed and TextChatService becomes surpasses the Lua Chat System in performance, functionality, extensibility and all other tenets important to a customisable feature.

This is the extent of my feedback thus far.

6 Likes

Have they fixed Player.Chatted functions with this? Last time I used this new text version Player.Chatted did not function

1 Like

Were the RichText exploit (the exploit which makes people bypass the filter and flood the chat with extremely tall characters) and the scrolling up issue on mobile fixed? These are why I’m still using the old one.

Awesome update! Excellent work everyone who contributed to the new chat, it looks good

Please implement the TextSource non-user entity soon! I would love to use it for my experiences, and I know some experiences rely on the ChatSpeakers for chat notifications (although I am sure some of them use a custom chat).

2 Likes

Cool, but when will channel tabs get implemented, and when will the chat history not shown on join bug be fixed.

1 Like

Can there be a way to have TextChatCommands not sink the user’s message? I want to create a commands system using TextChatCommands, but also have the command be sent out to the chat whilst being processed silently

Just using TextChannel.MessageReceived isn’t viable since things like usernames and numbers are filtered pretty often. A property like TextChatCommand.SinkMessage would be ideal

7 Likes

Primarily, I’d like to see some additions to the [SYSTEM] chat messages. I’d like to be able to have it send messages through the server to all players, and be able to color the chat of system to be different colors at will; within a script. I’d also like to see the scrolling bug is solved.

3 Likes

I have something to note here. For some reason, games with this text chat service cause my device to lag more frequently. Personally, I prefer LegacyChatService, because it’s both better, in my opinion, in terms of environment and performance.

2 Likes

make it so it works with chat tags :slight_smile:

2 Likes

I made a chat tag system, so you should be able to as well! I simply adjusted the message prefix, containing the username, and added the tag.

1 Like

I tried it using the new chat system but it doesn’t appear

Hi! The Customizing In-Experience Chat link shows that it is possible to change the bubble chat backgroundcolor3 for 2 different specific players, however I am unable to recreate what is shown in the image below as BubbleChatConfiguration only seems to apply to ALL players in the server.

1 Like

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.

2 Likes

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")

Chat:RegisterChatCallback(Enum.ChatCallbackType.OnCreatingChatWindow,function() 
	return {
		PlayerDisplayNamesEnabled = false,
		WhisperByDisplayName = false,
	}
end)

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
	end

	return properties
end
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