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.
42 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
22 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.

5 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

This topic was automatically closed 14 days after the last reply. New replies are no longer allowed.