Hey developers! I made a chat filter Add-on script!
Note: (Keyword is Add-on. This doesn’t DO ANY filtering other then the Approved methods from roblox. There is no such custom system for filtering made by us, and we only use the roblox methods for filtering messages to follow the roblox TOS )
This Makes the Filtering System better by providing tools to prevent the chat from being filled with Filtered Messages. It Uses TextChatService and Not a Custom chat (Meaning Scripting with the chat service is excatly the same)
It provides 2 New Tools:
Fail to Send Messages: If your message contains a certain % of hashtags (Set by developers), the Message will Fail to send to other clients.
This Happens when you click the send button → and roblox filters your message → Then it fails to send.
Pre-Filter Estimate: Provides you to see if your message will be filtered. By waiting a certain amount of time after what you last typed, your message will check to see if will get filtered (Rate Limits are included to prevent too many calls per minute (Usually unnoticable)). Note: This isn’t a guarantee, but it has been pretty accurate).
When Green, No text seems to get filtered:
When Yellow, Something is detected to be filtered, but it isn’t most of the message:
When Red, Most of the Message is detected to be filtered (When paired with Fail to send, Red also means message won’t be sent):
Ok enough with the information about what I made. What I am asking is would you use something like this? Would this be helpful if it was really easy to install, that you would want it? Is there issues you have with it / Feedback for it / Wish it had X feature? Is it “Too much” for a small issue? I want opinions on it!
Any feedback is Considered and Appreciated!
Edit: I made a game for testing this. It still in the workings, so bugs are still happening, but if you want to see it, you can view a test version On roblox here
Thanks so much! As I will say making this work with TextChatService was really complicated as Roblox doesn’t ‘provide tools’ for this (and I want this feature to do somewhat adaptable to the default system so when I make it public it works without issue so people don’t need a custom chat system for one little feature).
I get annoyed when I try to type and keep getting tagged so yes I spent a lot of time making it just so I don’t have to worry about it.
My only concern is if people would want to go for the effort of adding it for only 2 features that are quite small (I mean they are customizable, but they are small features).
Another concern is making sure it’s accurate. I’m still doing a lot of testing, but I have to come up with some unique ways of getting information. For example, take that Pre-filter feature that changes color according to how it’s predicted to be filtered. There’s no way with TextChatService to easily get the what the user is typing. So I have to make a “Mimic” string and see what the user is typing with UserInputService. It’s not Ideal.
this would be so good. they already do this with the chat outside of any games, so why not do it in the games? yeah i would definitely want this, but i would rather not have it as hashtags, and see the actual text
That would be a nice idea but I mean, I’d prefer the red message to be sent and tagged instead of just getting deleted. This is simply due to Roblox sometimes tagging words that are not offensive etc.
I’m not here to change your opinion but I do want to provide some information. Nothing in my script settings is forced to being added, per say if you don’t like the message failing to send but you like the Pre-Filter color changes, you can turn on only that.
For my usage, it is to catch tagging words that are not offensive with the offense words. My system works by fetching the first filter system result from Roblox. In other words, it gets what is tagged by Roblox and not by use. If a word is tagged, it isn’t stored, in other words if you say “Free robux” and it is tagged “free robux”, it will fail to send. But if you say robux later and Roblox doesn’t tag it, we won’t let it fail to send.
You also get to sent the percentage for what you want to get tagged fail to send to other clients. (When calculating this result spaces aren’t added, only words) So you can set it really high, or really low depending on how your game works.
Would be nice if you could see the actual text instead of a string of hashtags. Don’t worry if it’s a swearword because I think I read somewhere that if it’s displayed on the client that typed it in it’s fine.
Well I can’t really know as I’m using the default Service TextChatService, and All of its Events return the filtered string when using. I’ll see if I could do it, but In other words roblox prevents it, AND when rewriting text / prefix Roblox Refilter it anyway regardless so it’s not looking promising but I’ll try some stuff out (I believe this is the main issue with your idea). In other words I didn’t do anything for the tags to show up, Roblox just gave me the string which they filtered beforehand.
Although I will see. Thanks for the feedback for sure!
Roblox has to add something like this. The only other thing I would want in chat is for a way to find out what word/phrase is causing most the message to tag. This isnt an extremely big problem in chat, but more in messages when one word tagging causes the message to not be sent at all
Yea I couldn’t figure out anything for this. Unless you (or anyone else) know a method on how I could get the text in a unfiltered version, then I could make it work. All the methods I have are with a filtered version, as those are the events Roblox gives me. (Any maybe theirs for a good reason why roblox doesn’t provide the text unfiltered)
(The idea for this system is that it can work with the default TextChatService. There is also an easy way for setting this system up with a custom chat system, but I’m providing support for both. I’m not gonna make a custom chat per say for just this feature, as some people would like to use what roblox provides for the TextChatService, like myself, as it’s such a small feature and as more is added to TextChatService, My custom chat if I were to mke one will become Outdated with time anyway.)
The TextChatService doesn’t provide really tools for this.
I don’t know if anyone has tried to script something for TextChatService, But really for the most part, it provides the minimum tools to provide some customization. It is meant for Text Commands, Prefix Tags, Text Channels, and That’s about it. (Couple little things, but they aren’t super big, such as color changes, fonts, and things to make it “look” different).
So from a scripting side, When we start talking about “which word flags the filter”. I don’t even know the words the User Typed! Roblox doesn’t let me see the text a user is typing, or After they send the message, All I can get is the Filtered text afterwards… (And My best guess is for security reasons, which is a little bit intresting as for custom chat systems exist, and while they have limitations, They would be able to provide this info).
Now, with that being said if anyone knows how I would love to know and learn. There just isn’t a lot of resources with TextChatService to make systems like this possible.
However I am still keeping this feedback and can apply it else where. These chat scripts are supportive for both custom and TextChatService, so while I maybe can’t do this per say on TextChatService, in Custom chat systems this may be a thing and I appreciate the feedback still !
I could possible add something like this. Could you define “empty” or “Dead” a bit. Like is “empty chat” considered as there is no chats visible, like an empty chat where no messages are displayed, or if no messages are sent in X amount time (Server) or user hasn’t sent a Message in X amount of time (User-Wide)
And so I can use this as per say a “requirement” of when to or when to not Fail send the message
Great! You should make a custom chat system that has player icons (customizable) and displays the exact filtered message in real time in the chat box. Custom chat filters are 100x more workable and customizable, you could have the greatest chat resource on Roblox considering nobody has even thought of something like this before.
Now with that being said, I do have plans in making something like what you mentioned, just Not in the Ideal way of “Live filtering” (Also to Note, Roblox has a Text Chat Filter limit of 1,000 per minute, so some rate limiting has to come into play)
This system is compatible with Custom chats with a little bit of Extra Coding inside the custom system, and so an expansion into making my own custom chat may be in the future for sure
I love features that would make communicating easier. Maybe you could make it so it shows which words are being tagged so we don’t have to rewrite an entire message just because of a problem word.