New Beta In-Experience Chat System for Channels, Filtering and More!

this was kinda long overdue lol, the existing chat window just really doesn’t fit in with the style that roblox is going for nowadays; but i get preservation of older scripts/ testing would be required so i’m just glad that it’s out now

1 Like

This is amazing cant wait until it’s released to the public!

I made it support group support :wink:

Here is the code if anyone is wondering

--!strict

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

local GROUP_ID = 0 -- // Put your group ID here

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

	if message.TextSource then
		local player = Players:GetPlayerByUserId(message.TextSource.UserId)
		
		if player:GetRankInGroup(GROUP_ID) == 255 then
			props.PrefixText = "<font color='#ff0000'>[Owner]</font> " .. "<font color='#ff0000'>" .. message.PrefixText .. "</font>"
		elseif player:GetRankInGroup(GROUP_ID) == 1 then 
			props.PrefixText = "<font color='#ffffff'>[Member]</font> " .. "<font color='#ffffff'>" .. message.PrefixText .. "</font>"
		end
	end

	return props	
end
15 Likes

image
Good job! these fonts are beautiful, now im going to test it tmrw to see if its stable and good and nice enough.

2 Likes

That’s great! it’s now easier to edit the chat. Thank you Roblox!

1 Like

This is an update that I can’t wait to see used at Group bases.

1 Like

Pretty cool, glad to see chat is being updated. I have a couple questions/requests though:

1- Should the player’s chat colour be updated, will it update in the chat window? That’s an existing flaw in the current chat system and I’d like to see it addressed if it isn’t already. Same with chat tags, if a player’s chat tag is removed, will it update in all of their existing messages? Also, are there plans to allow colour-changing chat tags? Obviously, one could change the player’s chat colour over time but if there was an actual implementation, I think it would be a very useful and commonly used feature Also, how about allowing a player’s name or message to use a UIGradient without having to fork the chat?
2- Aside from forking the chat modules, is there a way to prevent the player from sending a chat? For example, if they’re playing a game where they have to guess a word, it will not send if they type that word, spoiling it for other users?
3- How about speakers?
4- Are speaker objects removed from the new chat system? How about customizability (eg. roleplay names)? Sometimes display names don’t suffice.
5- What about customizing the default chat (eg theme colour, background colour…)?
6- This is probably a reach but since this is an update to the interface, are there plans to allow developers to implement their own icons for CoreGui buttons? Specifically the chat, menu and “…” icons.

Are these limits modifiable?

Any plans to allow more than one alias? This is a pretty big limit imo considering many developers use more than one alias for a single command. Also, what happens if there are duplicate aliases (one command has the same alias as another)?

3 Likes

I actually really like this update, I can’t wait to see all the future changes I can make to my game!

1 Like

Glad to see this but can the chat system fallback to the legacy lua chat on live servers as this is beta?

systemd on Roblox :thinking:

2 Likes

I don’t agree that this is a flaw at all. I made a script before to take advantage of this behaviour by giving moderators of the place it was for the ability to prefix their message to make that specific message itself stand out from the rest for if they have something important to say. However, not every message needs to stand out as such. This behaviour is good and it would be a pain to see tags and name/chat colours locked to the TextSource instead of being custom per message.

1 Like

Legacy chat I use a fork to add an ImageLabel to a players chat line as a little custom icon before there name. Be nice if this could be supported in this, with the ability to have/keep the text based chat tag at the same time

This is a sweat update! I remember this topic was closed and I wasn’t the first to write my reply :frowning:

1 Like

Hey there! Thanks for the questions -

  1. These are interesting ideas for deeper customizability, and definitely the type of feedback we’re looking for during this beta. Right now with the default chat UI, each message is associated with an immutable TextChatMessage object - so they won’t change if a future message says something different, and cannot be modified. You could probably achieve this if you made your own chat frontend, but that’s something we’ll brainstorm for the provided chat. I can see the use case in both directions.

  2. There isn’t a way to filter specific message currently, but that sounds like a use case we should support :smile:

  3. The idea of speakers from old chat are represented by “TextSource” objects within TextChannels, and have a CanSend property. We may introduce more customization here.

  4. For things like roleplay names, you could modify the PrefixText within an OnIncomingMessage callback

repeat wait() until game.Players.LocalPlayer

game.Players.LocalPlayer:SetAttribute("CustomName", "MyCustomName")

game:GetService("TextChatService").OnIncomingMessage = function(textChatMessage)
	if not textChatMessage.TextSource then
		return
	end
	
	local player = game.Players:GetPlayerByUserId(textChatMessage.TextSource.UserId)
	local displayName = player:GetAttribute("CustomName")
	
	local props = Instance.new("TextChatMessageProperties")
	props.PrefixText = "["..displayName.."]"
	
	return props
end
  1. We have plans to add more customization through the Configuration objects, prioritizing based on the feedback we get from this beta

  2. I don’t think we currently intend on exposing an API for this, as a workaround you might be able to make your own chat button and toggle the visibility of chat with the configurations Enabled property

  3. Message size limits are currently internal, but I can see some use cases for controlling them. We may consider a constrained property for this.

  4. Right now commands can be triggered by a prefix match of either the Primary or Secondary alias (/help, /h). If two commands have the same alias, they should both be fired when a message is received with a matching prefix. This could allow you to add as many aliases as you want to a command, but this does feel a bit hacky.

Appreciate the feedback, please feel free to post if you think of anything else!

9 Likes

Hi so, I’m pretty old. Since this talks about filtering, can we do something about it?

It’s pretty stupid that the filter: a). Doesn’t tell me what’s being filtered so that I can correct it and b). Is enabled for all users regardless of an age. Even when you verify your age.

Before it was the whole “oh btw, kids can change their birthdays”. Ok fine, good point. Now it’s “oh ha, guess we’re going to assume that they can change their government IDs too!”. What is the excuse now? I have to be from Mars? I have to sell my soul to the nearest wizard with a girl with red shoes? Filtering is starting to become an annoyance and is seriously impacting my ability to tolerate this platform and any game in it. In fact, I don’t even go on this platform anymore simply because of this. No other reason. Just this.

I get that we have to be kid friendly but, lock that to kids and let teen / adults be able to get away with a very lenient filter. Unless this happens anytime soon, Roblox is a kid’s platform and no one can tell me otherwise.

If you want to get an older audience or remotely diversify without every adult who doesn’t develop and plays only games feel like a pedophile, I’d love to be treated as an actual adult. I’m sure other adults would love that as well. I’m sure games would love to appeal to more than just kids and teens. I get that we want to built the metaverse and all but, is this the metaverse for kids or the metaverse for all?

12 Likes

Does this new chat system come with chat filters or do we have to add it ourselfs?

The new features seem useful, but I think that the default look of the new chat is far too opaque. I liked the old chat because the transparent background didn’t draw too much attention or block view of the game when it didn’t have to.

1 Like

image
Seems like the chat filter’s not working?

2 Likes

Yes I am getting the same issue?

1 Like

The filter for chat has broke for both legacy and the latest one:
image

The chat filter does not work in studio

7 Likes

That’s confusing to chat filter a game but not in studio…