Feature Request: A Civilized Mute for Users

I’m proposing a feature request here for a mute user functionality in discourse. I’ve seen a lot of people express interest on one level or another for the ability to block or ignore users. There’s been a fair bit of discussion for and against such a feature.

The biggest argument for a mute feature it to block a users ability to generate a massive amount of notification spam, which itself could prevent a user from using discourse effectively as notifications are lost.

The biggest argument against is it could lead to a pathological situation where the community fractures into cliques or worse.

I’ve listened to both sides and find things i agree with in both sides. What follows is my attempt to create a spec for muting annoying users without causing a degradation to the community experience.

It is my hope that this feature proposal can act as a middle ground by removing the major annoyances that can cause someone to want to use a mute button, without interfering with community interaction in a negative manner.

##Part the first: What it means for a user to be muted
Muted users will not generate most notifications. Actions that are not directly related to an active conversation that the current user is participating in will not generate notifications. For example, these actions would not generate notifications when taken by a user that is muted:

  • @mentions in a topic that the current user has not posted in.
  • liking a post
  • quoting a post (unless it is also a direct reply)
  • sharing a post

Muted users may continue to generate notifications for actions that are direct conversation, for example:

  • @mentioning in topic OP
  • replying to user directly
  • Replying to user as new topic

Regardless of whether a notification is generated muted users posts will not trigger unread topic notifications to the current user.

Muted users posts will not be hidden or otherwise altered

All other user interactions will not be altered

##Part the second: How to mute a user.

For administrative purposes users that are TL4, moderators, or admins cannot be muted.

All other users can be muted in two ways:

  • A user action on a post, similar to how one likes, flags, or bookmarks a post can mute a user for UserMuteInTopic length of time (default 24 hours).
  • Users can also be muted from their profile for UserMuteInProfile length of time (default 1 week).

Once muted the user will remain muted until unmuted by the user in a manner similar to muting the user in the first place, or when the mute time runs out. Once a user becomes unmuted, either by user interaction or mute timeout a minimum length of time will be enforced before the user can be remuted (default 1 hour)


Some kind of confirmation on this style of muting would probably be required otherwise it would be too easy to accidentally mute someone by mis-clicking. I mean if you can hit the button again to undo it then it is less of a problem, but if you are trying to like a post and instead mute the user that may be missed.

1 Like

Well, we said we definitely want a mute that affects PMs. As in, a user you have “muted” will not be able to PM you at all.

I could see suppressing all notifications from that particular user, that is probably fine as well.


We’d probably also want some copy in that dialog that indicated that this was a temporary mute and show how long the mute would be in effect for.

1 Like

I agree with this, its a softer kind of ignore user.

“I don’t like bob, so please no PMs from him and no notifications”

I would go as far as to say once you mute direct replies get “muted” as well, make it a very simple flag.

“If user is muted then no PMs from that user AND no notifications for any kind of reply”

This then becomes purely about notifications and an extra check on the PM side, mechanics are a bit complicated though.

We don’t want to add too much cost to rendering user cards and such, but the correct UI

  • Will no show the “private message” option on the user card of a user that ignores you
  • Will not allow you to select a user who ignores you on in the PM to: field.

Doing so would make it clear that this @user is ignoring you, no?

Is that desireable?

If not, perhaps it would make sense to add a user preference to allow a user to turn off all PMs, just so there is some polite ambiguity there?

“This user is not currently accepting private messages.”

The information leaks regardless unless you start “black holing” PMs which would have its own issues.

1 Like

Well, but it should be available without delivering a list of what other people who have muted your notifications.

That’s what it sounded like this was going to do:

Interesting, as I believe that is exactly what other systems do. They don’t provide feedback to the “other” users, as to not reveal that User A muted User B. If you don’t show the PM button for User A to User B, you’ve effectively told User B, User A muted you.

I know it gets a bit complicated when doing that, as what do you do with PMs from User B directed at User A and only User A? Do you give User B a success message even though User A never got it? Since PMs are Topics, do you create it but not show User A on it…? that reveals the mute too…

Definitely gets complicated, so I definitely see the desire in making it simple.


IMHO a simple
“Do not accept PMs from non-Staff”
Preference Setting would suffice.

As I have said before, if a member is bothering another member “Report to Moderator” is already available to deal with that.

1 Like

So the user summary json would include a allow_pm flag that is false if they are denying PMs from non-staff OR you.

I think that’s the correct data model for the PM denying. Solves the data leakage problem except in the case of two people/accounts cooperating, at which point moderator intervention was already needed.


Would also need to hide the option to private message the user from the flag dialog.

This is not an answer to the issue of muting another user in discussions. Sure, report abusive PMs to a Moderator, that’s all fine & dandy, but does nothing to address the issue of “I don’t want to see posts in the discussion thread from users I find annoying in general.” To put it another way - if I don’t see their posts, I won’t get annoyed, and I won’t reply in a manner that I might regret later. There are other ways to think about it, that’s just two examples.

1 Like

Sorry, I didn’t think this discussion was about muting posts. :blush:

Hiding posts in discussions has it’s own problems. How would you feel if you posted a lengthy well thought out reply and then another member (that had muted you) posted the same information?
And if the OP had also muted you, they would end up thanking the second member instead of you!

This is not about hiding posts, but blocking notifications (and possibly PMs) from a specific user.

I have seen this happen in the community. “I sent you a PM…”

I think it would eventually become obvious that the user has muted…

On a side note. Could the fact that the user is being muted be a motivational tool to correct behavior that is getting them muted?

No worries, and it isn’t.

I’m not trying to take this further off topic, but to address the question: I don’t think the giving credit to someone else aspect would bother me. But, as others have said, it might encourage me to realize that I’ve bothered someone and change attitude. My neighborhood uses the private social network NextDoor, which does have the mute user feature. As far as I can tell, it hides all indication of activity of blocked users. While that’s a bit draconian, it is better than not having the feature at all.

No, @Mittineague is right. This topic is not about muting posts.

In the original post, it states

That idea was discussed here and has been rejected as a core feature of discourse, though the door is open for someone to develop a plugin that does that :slight_smile: .

Yes, I understand, and I acknowledged that in my reply to him, to which you replied.
To recap:

  • He said Sorry… I said no worries.
  • He said not about muting posts… I agreed that it isn’t.

I again acknowledged that in the preface to my answer to his question.

Apparently, that was not clear to you. Sorry, I wasn’t trying to be ambiguous.

1 Like

Damn, my reading comprehension skills are failing me today. Sorry for creating more confusion.

1 Like