As most know, pressing CTRL+J will result in the chat ‘skipping’ a line. I don’t see how this is really necessary with roblox’s chat system, but more importantly, it allows people to do this:
This essentially allows users to pose as other users, and besides the obvious color difference, it looks pretty convincing. I get a decent amount of messages of users either mad at me (because someone doing this said something mean), or people saying:
Easy solution: don’t allow users to skip lines in chat? (Why is this even a thing?)
Along with this, it allows people to easily spam and disrupt the chat by filling it with a bunch of line breaks. Should definitely be fixed.
I remember doing this a really long time ago by just using spaces, making people think a famous person (like 1x1x1x1 or something) was in the server. Good times. lol
But yeah, it should be removed.
My guess is they didn’t think to implement it.
Also, this fix would be simple:
Message = string.gsub(Message,"\n"." ")
If the person’s TeamColor is Institutional White, you can’t even tell the difference.
True, I could fix this via scripts, but I don’t think that’s an option for every game.
yeah I had some guy doing this to me earlier
wasn’t sure exactly what it was, but I know I don’t use ??? ??? after everything I say
this should probably get fixed asap
You could always commit this on the chatmodule’s github page.
I understand that bumping old threads isn’t ideal, but this exploit is still in the wild (if it was possible to make new posts, I would have done that instead).
You can simply add a large number of spaces into a message and Roblox will render the part after the spaces as if it were a new line.
Someone made an easy-to-use script for this exploit a year ago:
A quick fix is to remove consecutive spaces before the chat gets propagated by forking Chat and editing ChatServiceRunner as follows:
EventFolder.SayMessageRequest.OnServerEvent:connect(function(playerObj, message, channel)
if type(message) ~= "string" then
return
elseif not validateMessageLength(message) then
return
end
-- This line converts consecutive whitespace characters into one character
message = string.gsub(message, '%s+', ' ')
if type(channel) ~= "string" then
return
elseif not validateChannelNameLength(channel) then
return
end
local speaker = ChatService:GetSpeaker(playerObj.Name)
if (speaker) then
return speaker:SayMessage(message, channel)
end
return nil
end)
My preference would be for this to be contained within the official Roblox chat module.