Its possible to make a custom filter chat with text service?

my current game has problems with people bypassing the roblox chat using different signs referring to words example cool-C00l, I have seen since the chatservice was deprecated it is no longer possible to my knowledge, does anyone know if it is possible with the current textservice?

1 Like

You can use the TextChatService.OnIncomingMessage callback on the client, which automatically uses Roblox’s system before the callback is invoked.

Note the callback is invoked twice for a client that sends a message, first to create the message on their client to send to the server for filtering, then again when the server gives back the filtered message. You can check this using TextChatMessage.Status

local TextChatService = game:GetService("TextChatService")

TextChatService.OnIncomingMessage = function(message)
	if message.TextSource and message.Status == Enum.TextChatMessageStatus.Success then
		local properties = TextChatService.ChatWindowConfiguration:DeriveNewMessageProperties()
		print(message.Text)
		message.ChatWindowMessageProperties = properties
	end
end

I am unaware if Roblox’s moderation system picks up inappropriate language when scanning script source,. I suggest figuring that out before defining any strings in a disallowed word list.

Also, you should be careful to ensure that when you are processing the message for filtering that you do not emit any visible text (e.g. error messages in Developer Console) that contain inappropriate language.

2 Likes

You could try to add your own custom filtering solution on top of TextChatService, but do not bypass the default filter to instead apply your own as that is against ToS

You might want to look into this resource (filter out unicode characters used to bypass chat filter)
Annoying thing is that this cannot be done with the default chat. You’d need a custom chat
WinryChat | Open-Source Chat UI for TextChatService
OpenTextChatService - Open-Source Implementation Of TextChatService
LegacyChat ported to TextChatService

The video you linked with this thread is for the now deprecated LegacyChat (aka Lua Chat System), if you want to follow that video, you’ll have to use my port of the LegacyChat to TextChatService (the last link). I took a quick look at the video, and it should work with the port. Note that you’d have to modify the script under the Chat module script, as cloning ChatServiceRunner into ServerScriptService wont work

2 Likes