Disable whispering entirely?

I made a post 2 weeks ago regarding muting people so that they cannot speak at all in-game (as opposed to local muting with /mute). I soon found out about the MuteSpeaker method that ChatChannels have. However, this does not prevent whispering. Whisper channels are not returned in the array from the method GetChannelList, and even if they were, the point here is to ensure those channels are not created in the first place.

How can I completely prevent certain users from entering anything into the chat, without forking the system? I want them to be absolutely muted and only able to read messages. Right now, whispering seems to be the only thing they can do with the MuteSpeaker command having been run on them. If I can disable that, then players are effectively muted.

2 Likes

I don’t know scripting, but there is a custom chat model named iChatX that customizes the chat, and makes it available to delete and create commands, it is pretty cool! I suggest you try it out.

1 Like

I appreciate it but I really just want to stick with the regular Roblox chat.

1 Like

Alright, sorry I do not know scripting that well.

Keep up the cool work with your games, I enjoy them very much.

I am pretty sure (don’t know if it’s deprecated) there was a constant in the chatsettings called AllowWhispers or WhisperChannelsEnabled. Maybe try this, but like I said, it might be deprecated

1 Like

No results in ChatSettings with Ctrl + F.

In fact, no results in any chat scripts. Why does Roblox make such a simple thing so hard?

Copy the modules located in game.Chat during runtime then stop and paste them, then remove these two:

This removes the functionality of whispering from everybody, not just muted users. At that point you’re forking the chat, too, so you might as well just edit those scripts to take mutes into account.

4 Likes

Yes? Clearly: Screenshot by Lightshot
TL;DR - You can definitely add a mute functionality within the scripts.

That doesn’t make sense though? They would still be able to use the chat, but not whispers?

Maybe I misunderstood this bit:

Can OP clarify? @GFink

2 Likes

Well anyways, ChatChannel:MuteSpeaker() should prevent all of this.

Read the OP. It clearly states that MuteSpeaker does not prevent whispering.

Appreciate the notice, from you and the person you replied to. The ambiguity of the title suggests a contradiction between it and the content of the post.

“Disable whispering entirely” is inaccurate. I mean to disable the whisper functionality (and ideally, sending chat messages as a whole) on certain clients.

1 Like

Actually, after doing some research, you aren’t able to whisper to anyone while being muted in the channel.

However, if chat bubbles are enabled, they will still be visible to the client you’re messaging (and yourself).
You would have to go inside the chat bubble script and check if they can speak or not.

you aren’t able to whisper to anyone while being muted in the channel.

Which channel? If you mean the All channel (the default channel), then this is not true. Consider the following gif:
https://gyazo.com/e5f8ca6105c77396fda504275e2668a9
On the left is Player1, with no chat methods run on them. On the right is Player2, with MuteSpeaker run on them in the All ChatChannel. As you can see, while Player2 cannot speak in the chat, they can still whisper to other users.

Trying this with the System ChatChannel does nothing. Neither player is muted.

By default, these are the only two ChatChannels that exist (as returned from GetChannelList, anyway).

In regards to chat bubbles, someone else will have to figure that out because my game will have them turned off.

that’s strange, the message never got sent by my other client.
I believe you’re doing something wrong as I did not run into this when muting them from the All channel.

Can you share both your code and a screenshot or gif of the result? Perhaps you are using a forked Chat.

The chat is edited, however nothing within the chat functionality is edited.
Only to my personal likings, it shouldn’t affect anything at all.

However, I’ll try using the default chat for another test.

I used this code in a local server with 2 players:

local ChatService = require(game:GetService("ServerScriptService"):WaitForChild("ChatServiceRunner"):WaitForChild("ChatService"))
local MainChat = ChatService:GetChannel("All")

wait(20)

MainChat:MuteSpeaker("Player2")
print("Player2 muted")

Try running this in both the game with the forked chat and on a new baseplate with no chat modifications at all.

Seems like the default chat is more buggy as I don’t run into this issue at all.
And yes, apparently they can whisper in the default chat.

Good luck though!