People can pose as others easily in chat

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?)

12 Likes

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.

1 Like

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.

1 Like

My guess is they didn’t think to implement it.
Also, this fix would be simple:

Message = string.gsub(Message,"\n"." ")
1 Like

If the person’s TeamColor is Institutional White, you can’t even tell the difference.

1 Like

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.

2 Likes