New In-Experience Text Chat System Public Release!

Yup, set ChatWindowConfiguration.Enabled to false and it should give you the outcome you’re looking for.

2 Likes

I noticed on Chrome OS that the new chat system allows for the ( / ) keybind to work normally

4 Likes

Glad this is finally out!

Nevermind, I was wrong! I have one suggestion though, and this is something that bugs me a little. The leaderboard colors are 31, 33, 35, but the chat color is 25, 27, 29. It’s not easy to see unless you look at it, but it would be nice if it were changed to the leaderboard color. Thanks!

image

image

(You probably won’t notice it but theres a slight variation in color)

3 Likes

When using rich text in combination with bubble chat, it has the undesired side effect of showing the raw text in the text bubble. Is there a way around this, or is this something that needs to be fixed?

7 Likes

Very cool and modern design. But I wonder how multiple channels will display on this UI?

2 Likes

the fact that this aint alligned, scares me
image
other than that, this is pretty cool!, looks so good

8 Likes

Looks really cool, way more modern than the one we had. I hope all games have this implemented soon!

It’s just a demo. I put it up there for an example.

1 Like

TextChatService API bug

I would like to report a bug where you can’t determine if the player is flooding the current channel as the message status is Success even if the system displays the “You must wait to send another message”, the only way to determine if the player is flooding the channel is by checking the text and checking if it’s contains the text <font color="#d4d4d4">You must wait before sending another message.</font>

How to replicate

Well, basically everything you need is to haave OnMessageReceived event connected and then all messages are success, I guess this is because these messages are received to all clients and should be success but the error message about flooding is not appearing on all clients only on the user that is flooding the chat.

BTW, This chat is not the TextChatService built-in chat, it is a custom chat that I made using the TextChatService API

Video showing the problem

Solution

Make the status of the message Floodchecked and everything will be fixed so I will be able to display a custom message for flooding users.

Second Solution

Add a way to cancel messages in the IncomingMessage callback, while testing I noticed that this callback is the only one that is displaying the status “Floodchecked” instead of “Success” so I would like a way to cancel the message send to send a system message to that client spamming in the chat.


Second Bug that I found

Direct to the point, the message “Floodchecked” is now working after modifying my code a bit but the “You must wait bla bla bla” is getting still sent and when checking the status of that message is “Success” instead of “Floodchecking” even considering that message is a warning from flooding.

3 Likes

Yes! I always love updates to chat! Hearing that Roblox has commands in mind when making this new system is super amazing!!! I can’t wait to see what other cool chat features will come on full release!

That one’s deprecated. The creator @Jumpathy made a new version.

She released it a week or 2 before the original announcement

Please fix the issue described by GammaShock. There’s also this weird thing where OnIncomingMessage is called twice.

local TextChatService = game:GetService("TextChatService");

TextChatService.OnIncomingMessage = function()
	print("Message incoming!")
end

screenshot2

3 Likes

IgnoreGuiInset is on and still?
(But merit is able to close flooded GUI from chat command)

This is called twice because the first call has the TextChatMessageStatus of sending and the next likely has the status as Success

1 Like

I kinda prefer the V1 over the newer version, because it’s minimalistic, intuitive and straightforward. The newer version got much more features, but the UX didn’t really improve with that :sweat_smile:

Whats the point of TextChatMessageProperties?
From what I can tell, you can do either of these:

TextChatService.OnIncomingMessage = function(message: TextChatMessage)
	local props = Instance.new("TextChatMessageProperties")
	
	if message.TextSource then
		local player = Players:GetPlayerByUserId(message.TextSource.UserId)
		
		if player:GetAttribute("isVIP") == true then
			props.PrefixText = "<font color='#F5CD30'>[VIP]</font> " .. message.PrefixText
		end
	end
	
	return props
end
TextChatService.OnIncomingMessage = function(message: TextChatMessage)
	if message.TextSource then
		local player = Players:GetPlayerByUserId(message.TextSource.UserId)
		
		if player:GetAttribute("isVIP") == true then
			message.PrefixText = "<font color='#F5CD30'>[VIP]</font> " .. message.PrefixText
		end
	end
end

To get the same outcome

This is actually a bug! TextChatMessage properties are supposed to be read-only.

4 Likes

Can you make a new post for these reports? I can follow up better there.

I’m not sure if this is true. From what I can see, both use 25, 27, 29 at 0.3 transparency.

Tabs are not implemented in the default UI at this time.

Since the new chat is a CoreGui, it will always appear over developer UI. This is more often expected behavior since the chat keybind will continue to work and take user input even if the chat is hidden behind another layer.

If you wish to momentarily hide the UI, you may use ChatWindowConfiguration.Enabled and ChatInputBarConfiguration.Enabled or StarterGui:SetCoreGuiEnabled instead.

3 Likes

Oh, I always thought it was 31, 33, 35. Maybe I was just thinking of something else.

Edit: Yep, just checked through the coregui and apparently it is. Dang I guess my UI was always slightly off then lmfao

The reason is to align the text to the icon (so when the chat window background becomes transparent, the text would be lined up with the icon).

4 Likes