{"id":38775,"date":"2026-06-01T23:10:17","date_gmt":"2026-06-01T20:10:17","guid":{"rendered":"https:\/\/vpesports.com\/minecraft\/mods\/chat_filter\/"},"modified":"2026-06-01T23:10:17","modified_gmt":"2026-06-01T20:10:17","slug":"chat_filter","status":"publish","type":"mod","link":"https:\/\/vpesports.com\/minecraft\/mods\/chat_filter\/","title":{"rendered":"Chat Filter"},"content":{"rendered":"<p># Chat Filter<\/p>\n<p>### About<br \/>\nChat Filter is a simple yet highly configurable plugin that uses regex to scan and handle messages. It can support an unlimited number of patterns in an unlimited number of categories, each capable of executing commands and notifying the proper staff when a match is made.<\/p>\n<p>### Features:<br \/>\n &#8211; Mute and unmute players<br \/>\n &#8211; Unlimited filter categories<br \/>\n &#8211; Unlimited Regex patterns per category<br \/>\n &#8211; Execute commands based off which category was matched<br \/>\n &#8211; Log filter violations with a discord weblink<br \/>\n &#8211; Built-in profiler for optimisation<br \/>\n &#8211; Wide compatibility with other chat plugins<br \/>\n &#8211; Everything is configurable<\/p>\n<p>### Try out GlowCraft&#8217;s Filter<br \/>\n&#8211; [[ GlowCraft&#8217;s Filter Repo]](https:\/\/github.com\/PlayGlowCraft\/GS-REGEXChatFilter)<br \/>\n&#8211; Official ChatFilter partner<br \/>\n&#8211; Regularly updated<br \/>\n&#8211; High-performance regex patterns<br \/>\n&#8211; Minimal false-positives<\/p>\n<details>\n<summary>config.yml<\/summary>\n<p>&#8220;`yaml<br \/>\n# Chat Filter by _txsla and NBT Archives<br \/>\n# This plugin uses MiniMessage to parse messaged<br \/>\n# https:\/\/docs.advntr.dev\/minimessage<\/p>\n<p># [   REGISTER FILTER CATEGORIES ]<br \/>\n# Add a category here to register it<br \/>\n# The plugin will not recognize categories that are not listed here<br \/>\n# Permission &#8216;chatfilter.filter.bypass&#8217; will bypass these filters<br \/>\n# It is recommended that you put more important categories first on the list.<br \/>\n# Messages are filtered from first category in this list to last, so if two filters both match the pattern [a-zA-Z].(.com|.net), only the one listed first will be triggered<br \/>\n# The &#8216;gamersafer&#8217; list is the official list of GamerSafer.com<br \/>\nregistered-categories:<br \/>\n  &#8211; &#8216;demo-websites&#8217;<br \/>\n  &#8211; &#8216;demo-all_caps&#8217;<br \/>\n  &#8211; &#8216;gamersafer&#8217;<\/p>\n<p># [  SPAM LIMITER   ]<br \/>\n# Every time a player sends a message, it increments a counter<br \/>\n# Every x milliseconds that counter is decremented<br \/>\n# If a player hits the max messages on their counter, their messages are not shown to other players<br \/>\n# Permission `chatfilter.spam.bypass` will bypass this limiter<br \/>\nspam-limiter:<br \/>\n  enabled: true<br \/>\n  ghost: true # send player their own messages, so they do not know they are muted<br \/>\n  count-repeats: true # should repeat messages increment twice? ADD THIS LATER<br \/>\n  counter-ceiling: 5 # if a player&#8217;s message counter goes above this number, their messages will be hidden to other players<br \/>\n  decrement-timer: 3000 # milliseconds between message counter decrements<br \/>\n  ghost-player: true # should we show the player their cancelled message, so they do not know they are currently muted?<\/p>\n<p># This is the message format sent to ghosted players.<br \/>\n# Can also be used to tell players to slow down<br \/>\n# Placeholders:<br \/>\n# %PLAYER% &#8211; player who sent the message<br \/>\n# %MESSAGE% &#8211; player&#8217;s message<br \/>\n# %SERVER% &#8211; server that player is in<br \/>\n# %WORLD% &#8211; world that player is on<br \/>\nghost-format: &#8220;[GHOSTED] <white><%PLAYER%> %MESSAGE%<\/white>&#8221;<\/p>\n<p># Server Mute settings<br \/>\n# Muted players&#8217; messages can not be s<br \/>\nmute:<br \/>\n  # should mods be required ot provide a reason?<br \/>\n  require-reason: true<br \/>\n  # show muted player&#8217;s their messages<br \/>\n  ghost-player: true<\/p>\n<p># [   NOTIFY   ]<br \/>\n# Notify a player when someone triggers a filter<br \/>\n# Players with permission &#8216;chatfilter.notify&#8217; will be notified<br \/>\n# Placeholders:<br \/>\n# %PLAYER% &#8211; violator&#8217;s username<br \/>\n# %MESSAGE% &#8211; message that triggered the filter<br \/>\n# %CATEGORY% &#8211; filter category that got triggered<br \/>\n# %PATTERN% &#8211; regex pattern that matched<br \/>\n# %RECIPIENT% &#8211; player who is receiving the message<br \/>\nnotify:<br \/>\n  enabled: false<br \/>\n  message: &#8216;<click:suggest_command:\"\/chatfilter mute %PLAYER% 1h %category% violation\"><hover:show_text:\"category: <red>%CATEGORY%<\/red><newline>pattern: <red>%PATTERN%<\/red><newline><grey>click to mute %player%<\/grey>&#8220;><red>@%RECIPIENT% <\/red><dark_red>|<\/dark_red><white> %PLAYER% : %MESSAGE%&#8217;<\/p>\n<p># logs violations<br \/>\nlog:<br \/>\n  # Log Message Placeholders:<br \/>\n  # %PLAYER% &#8211; player that triggered the filter<br \/>\n  # %MESSAGE% &#8211; message that triggered the filter<br \/>\n  # %CATEGORY% &#8211; category of filter that got triggered<br \/>\n  # %PATTERN% &#8211; regex pattern that matched<br \/>\n  message-format: &#8220;%PLAYER% has violated filter %CATEGORY% with message %MESSAGE%&#8221;<br \/>\n  to-file: true<br \/>\n  to-discord: false<br \/>\n  webhook: &#8220;WEBHOOK URL&#8221;<\/p>\n<p># Should scan times be timed?<br \/>\n# Use this to optimise your regex patterns<br \/>\nprofile: false<\/p>\n<p># enable debug console output<br \/>\ndebug: false<\/p>\n<p>&#8220;`<\/p>\n<\/details>\n<details>\n<summary>filter.yml<\/summary>\n<p>&#8220;`yaml<br \/>\n# This filter uses regex to match messages and will not work if you set up your expressions correctly<br \/>\n# PATTERNS ARE CASE SENSITIVE, design your regex accordingly<\/p>\n<p># Resources:<br \/>\n# https:\/\/developer.mozilla.org\/en-US\/docs\/Web\/JavaScript\/Guide\/Regular_expressions\/Cheatsheet<br \/>\n# https:\/\/regex101.com\/<\/p>\n<p># Action tag allowed arguments:<br \/>\n# &#8216;notify&#8217; &#8211; notify user as specified in config.yml under notify<br \/>\n# (only put one of the below per category)<br \/>\n# &#8216;cancel&#8217; &#8211; cancel the message<br \/>\n# &#8216;ghost&#8217; &#8211; return message to sender but hide message from other players<br \/>\n# &#8216;ignore&#8217; &#8211; does not cancel or modify the message, but still runs the commands<\/p>\n<p># Placeholders for commands (case-sensitive)<br \/>\n# %PLAYER%     &#8211; offending player&#8217;s username<br \/>\n# %UUID%       &#8211; offending player&#8217;s UUID<br \/>\n# %MESSAGE%    &#8211; message that triggered the violation<br \/>\n# %PATTERN%    &#8211; pattern that matched the offending text<br \/>\n# %CATEGORY% &#8211; filter category that got triggered<br \/>\n# %WORLD%      &#8211; world that offending player was in<br \/>\n# %IP%         &#8211; player&#8217;s IP address, useful for auto IP BANS<\/p>\n<p># You must add the category to the list in config.yml to enable<br \/>\ncategories:<br \/>\n  # Name of category<br \/>\n  example:<br \/>\n    # Whether this category is enabled by default<br \/>\n    enabled: false<br \/>\n    # Action to be taken when violation occurs<br \/>\n    action:<br \/>\n      &#8211; &#8216;cancel&#8217;<br \/>\n      &#8211; &#8216;notify&#8217;<br \/>\n    # These commands are executed as console when a player triggers the filter<br \/>\n    commands:<br \/>\n      &#8211; &#8216;\/ban %PLAYER%&#8217;<br \/>\n    # Regex patterns for the filter to match<br \/>\n    regex:<br \/>\n      &#8211; &#8216;pattern-1&#8217;<br \/>\n      &#8211; &#8216;pattern-2&#8217;<br \/>\n      &#8211; &#8216;pattern-3&#8217;<\/p>\n<p>  # You can add unlimited categories<br \/>\n  # This is an example category to block websites in chat<br \/>\n  demo-websites:<br \/>\n    enabled: false<br \/>\n    action:<br \/>\n      &#8211; &#8216;cancel&#8217;<br \/>\n    commands:<br \/>\n      &#8211; &#8216;\/chatfilter mute %PLAYER% 5m Chat Filter&#8217;<br \/>\n    regex:<br \/>\n      &#8211; &#8216;https?:\/\/&#8217;<br \/>\n      &#8211; &#8216;[wd-]+.(net|com|org)&#8217;<br \/>\n      &#8211; &#8216;[d]+.[d]+.[d]+.[d]+&#8217;<\/p>\n<p>  demo-all_caps:<br \/>\n    enabled: false<br \/>\n    action:<br \/>\n      &#8211; &#8216;cancel&#8217;<br \/>\n    commands:<br \/>\n      &#8211; &#8216;\/chatfilter mute %PLAYER% 1h Chat Filter&#8217;<br \/>\n    regex:<br \/>\n      &#8211; &#8216;^[A-Zs]+$&#8217;<\/p>\n<p>  # The GamerSafer Regex list cannot be modified as it uses GamerSafer&#8217;s official list<br \/>\n  # If there are ever issues with this filter, please make an issue on ChatFilter&#8217;s GitHub Page<br \/>\n  gamersafer:<br \/>\n    enabled: false<br \/>\n    action:<br \/>\n      &#8211; &#8216;cancel&#8217;<br \/>\n      &#8211; &#8216;notify&#8217;<br \/>\n    commands:<br \/>\n      &#8216;\/mute %PLAYER% 1h&#8217;<br \/>\n    # How strict should the filter be?<br \/>\n    # 0 : exact match, case-insensitive<br \/>\n    # 1 : matches extra letters, case-insensitive<br \/>\n    # 2 : matches whitespace, extra letters, case-insensitive<br \/>\n    strictness: 1<br \/>\n    # For words that have too many false-positives<br \/>\n    exclude:<br \/>\n      &#8211; &#8216;cok&#8217;<br \/>\n      &#8211; &#8216;iap&#8217;<br \/>\n      &#8211; &#8216;sm&#8217;<br \/>\n      &#8211; &#8216;ho&#8217;<br \/>\n      &#8211; &#8216;hell&#8217;<br \/>\n&#8220;`<\/p>\n<\/details>\n<details>\n<summary>Commands<\/summary>\n<pre><code>\nchatfilter\n  |disable <filter> - disable a category\n  |enable <filter> - enable a category\n  |status <filter> - get information on the state of a filter\n  |mute <player> <duration> <reason> - mute a player\n  |unmute <player> - unmute a player\n  |debug\n  |  |enable - enable debut output to console without changing config\n  |  |disable - stop debug output to console without changing config\n  |  query - outputs wether debug output is on or off\n  |profile\n  |  |enable - enable built-in profiler without changing config\n  |  |disable - disable built-in profiler without changing config\n  |  query - return whether profiler is enabled or not\n<\/pre>\n<p><\/code><br \/>\n<\/details>\n<p># Support<br \/>\nIf you stumble across any bugs, please create a support ticket.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>A simple yet highly configurable plugin to filter your servers chat. Should be compatible with most chat plugins.<\/p>\n","protected":false},"featured_media":38776,"template":"","meta":{"_minecraft_slug":"chat_filter","_minecraft_project_id":"8IftuIlR","_minecraft_author":"Tesla6426","_minecraft_license":"LicenseRef-All-Rights-Reserved","_minecraft_downloads":677,"_minecraft_follows":3,"_minecraft_client_side":"unsupported","_minecraft_server_side":"required","_minecraft_storage_type":"zip","_minecraft_archive_name":"chat_filter.zip","_minecraft_size_bytes":220631,"_minecraft_version_count":4,"_minecraft_updated_at":"2026-05-16T09:42:36.814801Z","_minecraft_date_created":"2025-04-23T03:50:57.203346Z","_minecraft_date_modified":"2025-06-01T23:58:37.814357Z","_minecraft_project_url":"https:\/\/modrinth.com\/mod\/chat_filter","_minecraft_icon_attachment_id":38776,"_minecraft_imported_at":"2026-06-01T20:10:19+00:00","_minecraft_import_hash":"b69616dab4c72b98ec98d951c8f7f1e4","_minecraft_versions":"","_minecraft_links":"","_minecraft_gallery":"","_minecraft_api_metadata":""},"mod_category":[124,126,127,128,867,129,123,92],"mod_loader":[130,132,133,134],"minecraft_version":[62,37,73,74,38,78],"class_list":["post-38775","mod","type-mod","status-publish","has-post-thumbnail","hentry","mod_category-bukkit","mod_category-management","mod_category-paper","mod_category-purpur","mod_category-social","mod_category-spigot","mod_category-technology","mod_category-utility","mod_loader-bukkit","mod_loader-paper","mod_loader-purpur","mod_loader-spigot","minecraft_version-1-21","minecraft_version-1-21-1","minecraft_version-1-21-2","minecraft_version-1-21-3","minecraft_version-1-21-4","minecraft_version-1-21-5"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.6 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Chat Filter - Minecraft<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/vpesports.com\/minecraft\/mods\/chat_filter\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Chat Filter - Minecraft\" \/>\n<meta property=\"og:description\" content=\"A simple yet highly configurable plugin to filter your servers chat. Should be compatible with most chat plugins.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/vpesports.com\/minecraft\/mods\/chat_filter\/\" \/>\n<meta property=\"og:site_name\" content=\"Minecraft\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data1\" content=\"5 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/vpesports.com\\\/minecraft\\\/mods\\\/chat_filter\\\/\",\"url\":\"https:\\\/\\\/vpesports.com\\\/minecraft\\\/mods\\\/chat_filter\\\/\",\"name\":\"Chat Filter - Minecraft\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/vpesports.com\\\/minecraft\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/vpesports.com\\\/minecraft\\\/mods\\\/chat_filter\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/vpesports.com\\\/minecraft\\\/mods\\\/chat_filter\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/vpesports.com\\\/minecraft\\\/wp-content\\\/uploads\\\/2026\\\/06\\\/chat_filter-icon-a9a4e78802febfdc0941e58eb8acc883c4a7de5e_96.webp\",\"datePublished\":\"2026-06-01T20:10:17+00:00\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/vpesports.com\\\/minecraft\\\/mods\\\/chat_filter\\\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/vpesports.com\\\/minecraft\\\/mods\\\/chat_filter\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/vpesports.com\\\/minecraft\\\/mods\\\/chat_filter\\\/#primaryimage\",\"url\":\"https:\\\/\\\/vpesports.com\\\/minecraft\\\/wp-content\\\/uploads\\\/2026\\\/06\\\/chat_filter-icon-a9a4e78802febfdc0941e58eb8acc883c4a7de5e_96.webp\",\"contentUrl\":\"https:\\\/\\\/vpesports.com\\\/minecraft\\\/wp-content\\\/uploads\\\/2026\\\/06\\\/chat_filter-icon-a9a4e78802febfdc0941e58eb8acc883c4a7de5e_96.webp\",\"width\":96,\"height\":96},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/vpesports.com\\\/minecraft\\\/mods\\\/chat_filter\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/vpesports.com\\\/minecraft\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Mods\",\"item\":\"https:\\\/\\\/vpesports.com\\\/minecraft\\\/mods\\\/\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"Chat Filter\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/vpesports.com\\\/minecraft\\\/#website\",\"url\":\"https:\\\/\\\/vpesports.com\\\/minecraft\\\/\",\"name\":\"Minecraft\",\"description\":\"\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/vpesports.com\\\/minecraft\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Chat Filter - Minecraft","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/vpesports.com\/minecraft\/mods\/chat_filter\/","og_locale":"en_US","og_type":"article","og_title":"Chat Filter - Minecraft","og_description":"A simple yet highly configurable plugin to filter your servers chat. Should be compatible with most chat plugins.","og_url":"https:\/\/vpesports.com\/minecraft\/mods\/chat_filter\/","og_site_name":"Minecraft","twitter_card":"summary_large_image","twitter_misc":{"Est. reading time":"5 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/vpesports.com\/minecraft\/mods\/chat_filter\/","url":"https:\/\/vpesports.com\/minecraft\/mods\/chat_filter\/","name":"Chat Filter - Minecraft","isPartOf":{"@id":"https:\/\/vpesports.com\/minecraft\/#website"},"primaryImageOfPage":{"@id":"https:\/\/vpesports.com\/minecraft\/mods\/chat_filter\/#primaryimage"},"image":{"@id":"https:\/\/vpesports.com\/minecraft\/mods\/chat_filter\/#primaryimage"},"thumbnailUrl":"https:\/\/vpesports.com\/minecraft\/wp-content\/uploads\/2026\/06\/chat_filter-icon-a9a4e78802febfdc0941e58eb8acc883c4a7de5e_96.webp","datePublished":"2026-06-01T20:10:17+00:00","breadcrumb":{"@id":"https:\/\/vpesports.com\/minecraft\/mods\/chat_filter\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/vpesports.com\/minecraft\/mods\/chat_filter\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/vpesports.com\/minecraft\/mods\/chat_filter\/#primaryimage","url":"https:\/\/vpesports.com\/minecraft\/wp-content\/uploads\/2026\/06\/chat_filter-icon-a9a4e78802febfdc0941e58eb8acc883c4a7de5e_96.webp","contentUrl":"https:\/\/vpesports.com\/minecraft\/wp-content\/uploads\/2026\/06\/chat_filter-icon-a9a4e78802febfdc0941e58eb8acc883c4a7de5e_96.webp","width":96,"height":96},{"@type":"BreadcrumbList","@id":"https:\/\/vpesports.com\/minecraft\/mods\/chat_filter\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/vpesports.com\/minecraft\/"},{"@type":"ListItem","position":2,"name":"Mods","item":"https:\/\/vpesports.com\/minecraft\/mods\/"},{"@type":"ListItem","position":3,"name":"Chat Filter"}]},{"@type":"WebSite","@id":"https:\/\/vpesports.com\/minecraft\/#website","url":"https:\/\/vpesports.com\/minecraft\/","name":"Minecraft","description":"","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/vpesports.com\/minecraft\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"}]}},"_links":{"self":[{"href":"https:\/\/vpesports.com\/minecraft\/wp-json\/wp\/v2\/mod\/38775","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/vpesports.com\/minecraft\/wp-json\/wp\/v2\/mod"}],"about":[{"href":"https:\/\/vpesports.com\/minecraft\/wp-json\/wp\/v2\/types\/mod"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/vpesports.com\/minecraft\/wp-json\/wp\/v2\/media\/38776"}],"wp:attachment":[{"href":"https:\/\/vpesports.com\/minecraft\/wp-json\/wp\/v2\/media?parent=38775"}],"wp:term":[{"taxonomy":"mod_category","embeddable":true,"href":"https:\/\/vpesports.com\/minecraft\/wp-json\/wp\/v2\/mod_category?post=38775"},{"taxonomy":"mod_loader","embeddable":true,"href":"https:\/\/vpesports.com\/minecraft\/wp-json\/wp\/v2\/mod_loader?post=38775"},{"taxonomy":"minecraft_version","embeddable":true,"href":"https:\/\/vpesports.com\/minecraft\/wp-json\/wp\/v2\/minecraft_version?post=38775"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}