Chat Filter

Running a family server? Fed up of griefers not only griefing your world - but your chat too?
Then you need new ChatFilter!

ChatFilter lets you set up a list of trigger words that, when matched in chat will cancel the message and send the player a custom message, be it a warning or just a friendly nudge. It can even kick offenders if required.

ChatFilter offers both part and whole word matching options, so you can block messages very intelligently.

You can also set up a list of words to trigger a custom server broadcast.

And, from v2.0.0 it now screens commands of your choice - e.g. /msg

Just download - run once - and then edit lang.yml to setup your filter words and trigger phrases.

ChatFilter is a lightweight plugin for when you want a simple solution for controlling swearing on your server.

You can see the default settings here . Warning contains the swear words that trigger warnings.

Current Version: 2.0.0


kick: [true|false] Set to true to kick players who swear.

showInConsole: [true|false] Show player's name and the offending message in console.

censor: [true|false] Censor messages instead of blocking entire message.

agressiveMatching: [true|false] Attempts to match more words by looking for 3=e 0=o etc.

Edit lang.yml (created on first run) to change the trigger words, commands to filter and notification text.


/ChatFilter reload
Reload settings from lang.yml


Allows user to reload.

Allows users with this node to bypass filters.

Users with this node cannot chat.

Users with this node can chat.


1.7.2: Changed permissions node for chat to chatfilter.canchat

1.7.1: Fixed config typo

1.7.0: Aggressive matching option. Permissions node to block chat completely.

1.6.0: Permissions node for reload. Colour support.

1.5.0: Permissions node to allow select users to swear.

1.4: Optional censorship mode. Replaced words with configurable text.

1.3: Config options to enable whole word matching.

1.2: Option to display information about blocked messages in console.

1.1: Added kick option.

1.0: First release.

Source Code


Donations of any amount are, of course appreciated :)

Contributions go towards maintaining my development server to encourage continued development. ChatFilter is solo coded by me so if you think that time is worth something then hit the button in the top right! ;)

You must login to post a comment. Don't have an account? Register to get one!

  • Avatar of SableDnah SableDnah Mar 15, 2015 at 15:57 UTC - 0 likes

    @The_PC_Tech_Guy: Go

    I guess I could do a "silent" mode. Will see. I need to do a couple of tweaks to make it spigot compatible anyways.

    "All this technology and it still takes forever to get anywhere" [ Donate ] [ Twitter ]

    Mob HealthLegendQuest
    Mob Health: Simple damage reporting.LegendQuest: Complete RPG plugin.
  • Avatar of The_PC_Tech_Guy The_PC_Tech_Guy Mar 15, 2015 at 00:25 UTC - 0 likes

    Is it possible for this plugin to act like GriefPrevention does, where it silently censors words, only reporting the original message to the player and a notification to the OPs and console?

    This account is so old that I don't even use that username anymore.
    I now go by "robomwm"

  • Avatar of madtomic madtomic Jan 14, 2015 at 02:52 UTC - 0 likes

    @SableDnah: Go

    This is the best chat filter on bukkit. Just the command filter alone, made all the differences in the world. Thank you for this plugin!!!


  • Avatar of SableDnah SableDnah Jul 19, 2014 at 20:46 UTC - 0 likes

    @GorguZ: Go Define support? It should ignore accents. It runs via a RegExp using InCombiningDiacriticalMarks. So in the config you just need to add, for example, "hat", not "hät","håt" etc

  • Avatar of GorguZ GorguZ Jul 19, 2014 at 17:52 UTC - 0 likes

    Can you please add support for äöå?

  • Avatar of SableDnah SableDnah May 16, 2014 at 19:09 UTC - 1 like

    @fastlockel: Go

    New version out now cleans up that output :)

  • Avatar of fastlockel fastlockel May 13, 2014 at 13:13 UTC - 0 likes

    Works fine for me : just a LOW warning remark , I set debug false but it keeps on writing to the simple console the testwords and tearwords 13.05 15:04:31 [Server] INFO swearWord: xxxxx 13.05 15:04:31 [Server] INFO testWord: o 13.05 15:04:31 [Server] INFO swearWord: xxxx 13.05 15:04:31 [Server] INFO testWord: o (I removed horse language by xxxx) If you could just avoid dumping the horse words to the console output :-) because this is not the best of quality for litterature

  • Avatar of jjkrause jjkrause Mar 24, 2014 at 06:49 UTC - 0 likes

    @SableDnah: Go

    Its not being run from a command block.... being run from the console by plugins such as ServerSigns or Craftbook.

    Last edited Mar 24, 2014 by jjkrause
  • Avatar of SableDnah SableDnah Mar 23, 2014 at 17:18 UTC - 0 likes

    @jjkrause: Go

    Have you tried "/gamerule commandBlockOutput false" ?

  • Avatar of jjkrause jjkrause Mar 23, 2014 at 15:41 UTC - 0 likes

    @SableDnah: Go

    The example I gave you was a direct message yes... but there are others that appear for everybody, such as [CONSOLE: Given JUMP ( ID 8 ) to JasonKrause for 30 seconds] when using the effect command from console... If I could block everything starting with certain words, that would be awesome!

    In the above example, I could block "[CONSOLE: Given*" and that would block all effect commands.

    Last edited Mar 23, 2014 by jjkrause


Date created
Feb 07, 2012
Last update
May 14, 2014
Development stage
GNU General Public License version 3 (GPLv3)
Curse link
Recent files