Disable the /me chat command or have it deactivated by default

As a Roblox developer, it is currently difficult (tedious forking the chat scripts, unaware of the behavior etc) to create a safe environment for our players due to the implementation of the /me chat command, which is formatted in such a way which allows it to be manipulated to trick other users, like so:

image
(/me just got TONS of ROBUX using obvious scam site! Visit obvious scam site in your browser to generate ROBUX instantly!)

image
(/me is an admin!)


Possible solutions include:

  • Removing the feature. - would make the most sense due to the fact it has no practical use.
  • Disabling the feature by default.
  • Modifying the format to appear less like a “system message”.

It could be argued that the user who falls for the obvious bait is at fault, which is no doubt the case, however the feature is a possible phishing/trolling vector which serves no legitimate purpose, and is being taken advantage of in multiple games.
40 Likes

Makes total sense. I’ve used it in rpgs simply because it looks more authoritative.

It’s nice little feature but the risk as stated is not worth it.

5 Likes

Only logical use for the /me command is RP… but serious RP isn’t a big thing on Roblox…

4 Likes

You can disable this in your game without forking the Chat scripts and losing updates.

Here is how:

  1. Play your game and copy the ChatModules folder from Chat.
  2. Stop playing and paste it back into Chat.
  3. Remove everything but the InsertDefaultModules value and the MeCommand module.
  4. Replace the code in the MeCommand module with the following:

local function Run(ChatService)

end

return Run

Or if you want to sink messages like this, you can change it to a command function like this:


local Chat = game:GetService("Chat")
local ReplicatedModules = Chat:WaitForChild("ClientChatModules")
local ChatConstants = require(ReplicatedModules:WaitForChild("ChatConstants"))

local function Run(ChatService)

    local function MeCommandFunction(fromSpeaker, message, channel)

        if message and string.sub(message, 1, 4):lower() == "/me " then
			local speaker = ChatService:GetSpeaker(fromSpeaker)
			speaker:SendSystemMessage("The /me command has been disabled.", channel)
            return true
        end
        return false
    end

    ChatService:RegisterProcessCommandsFunction("me_command", MeCommandFunction)
end

return Run
20 Likes

I feel like this and /whisper should be toggled globally, instead of always on. If RPGs want to use /me, let them, same goes for whisper. If games don’t, then don’t let them.

1 Like

‘Me’ yes, but whisper is best available in all games IMO. I shouldn’t have to resort to Discord/etc to tell my friend “hey let’s go backwards in this race to mess with everyone” or similar.

4 Likes

The only instance where I would request that the whisper command be removed is in trade hangout or other trading related games, as moderators need to actively moderate text.

1 Like

Implemented as per here, if @Rototally wants to reply here I’ll mark their reply as the solution.

Also like to state that I apologise to the participants of this thread for not getting back to them. I ended up taking some extended leave from the forum, once returned figured the thread had died. Additional thanks to @TheGamer101 for providing some clarification and an alternative solution.

Thanks.

6 Likes