Since the launch of Solara executor (As far as I know), I’ve noticed a huge spike of exploiters in my game doing bad stuff. And one of them being able to explicitly chat without any filters. Bad words from Filerunner5674 - Album on Imgur
This is really concerning because it works on every Roblox games that uses new TextChatService and matter of fact mostly every game uses it.
So if this isn’t fixed immediately, every exploiters will take advantage of it.
Here’s the code from that Reddit link
--[[ SETTINGS ]]--
local CHAT_MESSAGE = "the message to send using the bypass"
local CHANNEL = "RBXGeneral" -- dont change this unless you know what youre doing
--[[ DONT CHANGE ANYTHING BELOW HERE ]]--
local separator = string.char(239, 191, 184)
local function insertSeparator(text)
local result = ""
for i = 1, #text do
result = result .. text:sub(i, i)
if i < #text then
result = result .. separator
end
end
return result
end
local formattedText = insertSeparator(CHAT_MESSAGE)
game:GetService("TextChatService").TextChannels:WaitForChild(CHANNEL):SendAsync("</>\r" .. formattedText)
-- created by claytontdm
The worst part is how accessible these scripts are, if you join a literal baseplate. - Roblox for example, you will see a lot of people using that kind of scripts. The part that raises the concert is how inappropriate those bypasses are, minors exposed to that language and literally being threaten to get r**ed is NOT normal, Roblox should take an action on that immediately.
The real worst part is roblox forcing all users to migrate to TextChatService while it still has bugs, easy bypasses, and has been proven to be less safer
Made a quick fix for this chat bypass, it will kick the users attempting to use it. Should be in a server script.
local Players = game:GetService('Players')
local TextChatService = game:GetService('TextChatService')
local General: TextChannel = TextChatService:WaitForChild('TextChannels').RBXGeneral
local blacklistCharacters = {
string.char(239),
string.char(191),
string.char(184)
}
General.ShouldDeliverCallback = function(message, textSource)
for _, char in blacklistCharacters do
if string.find(message.Text, char) then
if message.TextSource.UserId then
local player = Players:GetPlayerByUserId(message.TextSource.UserId)
if player then
player:Kick('Chat filter violation')
return nil
end
end
end
end
end
It has to do with their text filtering service I guess. What they’re doing is adding extra characters into their text to trick the text filtering system. This is what they did with emojis back then.
I do not recommend using this script because some UTF characters like chinese characters sometimes use these specific UTF codes. This script just leads to a false kick in rare occasion.
I feel like this issue is too critical to just ignore it, a lot of people use that bypass innapropriately while talking to minors. If roblox doesn’t protect children on thier platform, someone else should do that, even if you are possibly making it harder for Chinese/Korean/etc people to chat.
Not just chinese characters. Japanese, arabic, and korean too. They use UTF8 and those bytes value ranges between 0-255. I can’t explain how UTF works.
Making an entire anticheat just because of that is pointless, you have to detect the exploit on injection too, since it doesn’t tamper anything and just fires a roblox internal remote. If you are really worried about false kicks, you can make it ignore certain character combinations or make it kick only on 3 exact characters used in the script.
I will sacrifice my bodyclock for this and write a simple anti cheat on my phone
local separator = string.char(239, 191, 184)
local badwords = {
"bad" -- add more here
}
local textToCheck = "I like chicken"
textToCheck = textToCheck:lower()
textWithoutSeparator = ""
for _,txt in pairs(textToCheck:split(separator) do
textWithoutSeparator ..= txt
end
isBadWord = false
for _,badword in pairs(badwords) do
if textWithoutSeparator:find(badword) then
isBardWord = true
break
end
end
print(isBadWord)