SAT, BETA | Blacklist Words

SAT | BETA | Word Blacklister

Install | Group


:cactus: Introduction :cactus:

Hey there! I am max and are pleased to release a BETA of this, blacklisting word feature! Tired peoples with example talk about something you don’t like? Then this is for you!


:chains: Upcoming Features :chains:

  • Blacklist a message if the person is in a certain group role

  • Filter the message even with a actual word in it. e.g: I like this because this is a test! This is a test is being said.

:bug: The SAT Team are aware of the following bugs :bug::

None.


:vibration_mode: Model :vibration_mode:

https://www.roblox.com/library/6567516148/Blacklist-Chat-Messages


:wave: Any feedbacks? Please share them to us! :wave:

3 Likes

Doesn’t their message still go through? And the filter is really easy to bypass

It doesnt check if the message contains the word
for example, i have filtered the word “apple”
if the message is “Apple” it wont filter it, not really effiecient for a filtering tool

2 Likes

Being fair it actually does account for case
image

As said, this is a beta. Not everything is perfect. Thanks for the feedback tho!

Why does your model have 2 of the same scripts? Also, please use GetService for your stuff. What if I rename Players to Player, it will error. Also, you might want to use something better to filter, just checking the string won’t work what if I say “a bad word” instead of “bad word”, it won’t match, also, if I put a space the same will happen.

A update is out!

Added:
Anti Chatting
Group Anti Chat
IMMUNITY TO KICK.

Please re-take the model.

Also, you can just use

msg = msg:lower()

and it will lower the message without needing to lower it in each if.

1 Like

Thanks you for the feedback. We are updating the model currently.

Minor fix:
Automatic lowercases.

Credits:
@PanKupa25

Preview of the release:

The code has so many issues with it that it’s going to take an entire essay to mention all of them, so here I go.

Firstly, the entire system is flawed, sure it kicks the person who said a blacklisted word, but it doesn’t prevent the message from being sent, as @AWhale_OfATime pointed out, as the Chatted event fires whenever the player chats in-game, meaning the message had already been sent and removing it would be difficult.

Secondly, I don’t see why you had to include Anti-chatting/Group Anti-Chatting when you could use SetCoreGuiEnabled to disable the chat for certain people, or better yet if you still want them to see the chat, create custom chat implementations, which is certainly possible, I’m still unsure why you even added it in the first place considering this resource was originally for “Blacklisting” words.

This script could’ve easily been replaced with chat modification modules to prevent it from being sent and, if possible with this, to kick the player if the message is rejected.

Why are there things for auto update that are still non-functional? Just include it when they’re created, not as placeholders. And why are there 2 of each script??

Now with the general complaints out of the way, here are my complaints about the code itself

The blacklisted messages for when you are kicked has no variables to account for anti chat or group anti chat messages, they’re just hastily placed into the first argument of Kick, which is inconsistent with the message you get when you send a backlisted message, what would’ve been better was the use of a dictionary to contain all the kick messages and reference the ones to be used in the script

Your group anti-chat doesn’t account for more than one group, which it should since there could be others who would want to blacklist more groups if needed, maybe they have more than one grudge on a group and don’t want their members to speak in their games for example

Why are you using usernames instead of UserId for allowing certain users to bypass the system? What if they change their name? They wont be whitelisted anymore, it’s practically common use to use UserId for anything to be done on a player, as they will never change, but usernames can be changed, it’s never a good idea to use usernames. Also, the way the if statements are set up makes it so even if you’re whitelisted but you say “this is a test”, it will still kick you since that’s the first thing it checks. Please use a guard clause to return if they’re whitelisted/exempted from this check to prevent issues

Why did you give the player parameter a vague name like b, code should be self-commenting, vague names will confuse you later on and others.

game.Players is not really preferred to get the Players service, it’s better to use game:GetService("Players") especially since this is open source code to prevent the unlikely event that someone’s Player service name is different.

Why is

elseif table.find(IgnoreBlacklistedMsgs, b.Name) then
			print("Cannot kick user.")

Repeated twice in your script? and why in some of the if statements are you checking b.Chatted, when clearly if this event was ran they did chat.

The grammatical mistakes in your comments are nitpicky to mention, but doesn’t really help if you were trying to go for a professional approach

And the biggest problem I see is that it right now checks for exact equality between the filtered message, rather than just checks if a certain word has been said in the message and if it was, kick them. And the way you did it/may do it again is flawed, as for every new blacklisted word, you have to make another if statement rather than checking a table with all the blacklisted words, which is way too unoptimal, especially if someone wants to blacklist 5 or more words for example, they would have to add 5 if statements, which could’ve easily been prevented via a table for all their blacklisted words

This code has way too many flaws and care should’ve been applied before releasing this out for future usage for others, care should always be a priority when making something if it’s going to be used by others to ensure it is easy to use and simple to understand as much as possible

13 Likes

You could’ve just replaced the blacklisted word with #### instead of kicking the player without a reason. It makes no sense to kick a player when they’ve said something that you don’t like. Take Roblox’s filter for example. Does it kick you if you say bad words?

2 Likes

what’s the point? Roblox’s chat filter exists.

because we all know that the filter isn’t perfect

1 Like

also to prevent scam bots so words such as free robux or scamsite.gg (example)

Robloxs filterbot is more than enough, they wont take your game down just because someone used some filter bypass on it which is gonna get fixed days later

There are things you can improve, for example instead of copying and pasting if string.lower(msg) == "word" then you can use a table and instead of kicking them remove or replace the message.

Also why do you need to check if Player.Chatted exists?

Oh my, hello, I am myself from the future and I recognize all of my errors. I apologize for all of these errors, that myself, now, like
 Oh my god
 Thanks everyone for trying back then bringing me back to the future, but guess that didn’t happen. Well, hope one day you all will become successfull.

Once again, I apologize for this which was like? The worst model? Yeah. Anyways, thanks for the support everyone. I was 12 only that day, now I’m 13 and almost 14. Anyways. Thanks everyone for the support.

achdef

I know this is solved BUT

Wouldn’t this get your game banned for including bad words in a script? Roblox is very sensitive with scripts (as you know from moderation)

EDIT: Sorry for revival I didn’t realise the last post was 1 year ago (pretty much)