Forum feature request: Discourse Etiquette plugin

I want to start by thanking all of our moderators for all of the hard work they do to ensure civility on the forum. It’s always good to help make their job easier and today, I present a feature request designed just for them.

Discourse Etiquette plugin

What is it designed to do?

  • This plugin is designed to filter out potentially toxic posts from users with the use of the Google Perspective API.

How does it work?

  • This plugin has a few neat features. You can set it to filter posts as the user is typing, generating a warning message to users that they may want to rethink their post. You can also set it to automatically flag toxic posts, alerting the moderators so that they can take action.

Google Perspective API?

  • Yes, you read correctly. This API is designed to filter out toxic posts and is needed in order for this plugin to work. More information and the application is available here.

Where can I get more information regarding this plugin?

  • Additional information about the plugin is available on Discourse Meta in this topic.

I think this plugin will go a long way towards helping to reduce the workload of the moderators, all while maintaining a forum based on civil conversations. An additional plugin that compliments this one greatly is the Force Moderation plugin.


I see you using our Oneworld discourse plugins as a test to suggest them on here ;)

1 Like

Not entirely. Some plugins I’ve been wanting to suggest for a while as I’m always keeping up on things in Discourse Meta… I just happened to get around to requesting one of them now.

1 Like

Could definatly be useful to filter out unwanted posts. Not sure how hard it is to implement though…

1 Like

It’s actually really easy to implement. Install the plugin, get the Perspective API key, configure the few settings it has to your (in this case the admins/moderators) liking and its done!

1 Like

Oh, then it should defiantly be implemented!

1 Like

This scares me. It could potentially turn into a youtube type system where items that are not inappropriate are flagged. The best review is always done by a person, and I think it is good and effective the way it is currently done. By hand. The posts you are referencing are rare and often filtered out by regulars, moderators, and other community members, so I see no need for this. It seems this could be more problematic than what is already in place.


Thank you for your feedback. Allow me to share an excerpt from the topic on discourse meta:

The plugin send users’ post to Google’s API which will decide to take actions based on a “confidence level”. You can choose the model and threshold in site settings. The threshold you should use depends on the model.

  1. choose etiquette_toxicity_model . The standard model is the default and other settings are tuned based on it. Google also offers severe toxicity (experimental) model. This model handles more severe content. For example, if you choose a threshold of 0.9, standard model won’t take too much false actions. While for severe toxicity model, the threshold should be lower to 0.7 to catch most inappropriate content.
  2. etiquette_flag_post_min_toxicity_confidence : if API returns a score higher than this threshold, we flag the post. Can be set lower till 0.7 if you use severe toxicity (experimental) model.
  3. etiquette_notify_posting_min_toxicity_confidence : same as above. It’s set to be lower since we want users have chance to make changes to their post. Can be set lower till 0.65 if you use severe toxicity (experimental) model.

I agree with you completely that the best review is done by a person. Sensitivity settings allow you to adjust how “toxic” a post can be before action is taken, which gives us room to be the judge of the resulting grey areas that the API wouldn’t take actions against.

Well, the IFC is not nearly as large as YT (yet) and they could set it up so it sends it to a mod, they confirm it, and it’s back, it can flag it But not remove it, like flags kinda do.


Wow, I just tested the API on their website, and it seems to be really accurate. 👀

Seriously though, while I don’t think it is absolutely needed, it could be useful in some occasions.
The only thing I’m wondering are the limits of the API. On Discourse’s forum, someone mentioned they allow 1000 requests per 100 seconds. That would mean there is a limit of 10 requests per second, for the entire community. As the plugin seems to be requesting requests as you type, this means a request will be sent multiple times for one post. Now imagine a busy thread like a release announcement, where people easily get excited and post a message to leave their thoughts. I often see multiple people typing on such a thread at the same time. Now include all the PMs and other threads, and you may quickly be over that limitation.


The rate limits are interesting. There is a toggle setting that allows the admins to choose whether or not to filter PM’s, which helps reduce the requests to the API.


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