v5 Changelog

Changelogs are archived here from platforms with a minor delay.

Newest changelogs can be viewed on the SpigotMC resource updates tab: https://www.spigotmc.org/resources/79616/updates

5.8.3

In this build

  • Fixed an issue that caused the Word & Phrase Filter to still auto warn when censored in some instances for entries with no modifier, even when autowarn-when-censored = false

  • As anvils, signs, and books do not support the Word & Phrase Filters censor (detections are always fully blocked, not edited), send-block-message-when-censored is now always true under those contexts to ensure there is feedback to the user instead of silently blocking what would be censored chat/command content, in the case that send-block-message-when-censored = false. This keeps behavior consistent across contexts to ensure a block message appears to the user when their content is fully blocked.

  • Refactoring & improvements to Unicode Remover logic

  • Fixed the Unicode Remover flagging hex/colorcodes in some contexts

  • Fixed inconsistent character whitelist behavior in the Unicode Remover

  • A list of the modules overriding bypass permissions (override-bypass-permissions in main config) now appears in /chatsentry info

  • All enabled modules that support more than one context now show the contexts that are enabled for them as well in /chatsentry list

  • Slightly new styling for /chatsentry help and /chatsentry info

5.8.2

This update fixes an issue with module contexts resetting after server restart on plugin versions 5.8.0-PRE & 5.8.1. All users are recommended to update to this version and verify that their module contexts are properly enabled if updating from version 5.8.0-PRE or 5.8.1.In this build

  • Fixes an issue with 5.8.0 config migration rerunning on 5.8.0-PRE and 5.8.1, causing module contexts to reset on every server reboot.

  • If your config is detected as affected, an alert will display to operators on join to notify you that modules are enabled but all their contexts are disabled.

5.8.1

In this build

  • New 'truncate-unsafe-chat' main config option, enabled by default that determines whether unsafe player chat exceeding the vanilla length limit should be truncated. A recent vulnerability allows certain servers to accept command packets with lengths far past the reasonable 256 limit, up to 65,536 characters long per command. It's recommended to keep this enabled, as extremely large inputs can be disruptive and cause crashes or issues with other plugins.

5.8.0-PRE

This is a pre-release This release includes large code changes. While tested, edge-case bugs may exist. Backing up your config files and databases, or waiting for a stable build, is recommended in the rare case issues occur during migration.In this build

  • Enabled contexts can now be individually configured on a per-module basis instead of globally in the main config. Contexts can be managed under each module where they are enabled. This allows for more granular control of enabled filters in each context. Your configuration and preferences will be migrated automatically.

  • Module config toggles now have their own module-name sections, with an enabled toggle and context toggles (if the module supports multiple contexts), replacing the old enable-module-name nodes. Your configuration and preferences will be migrated automatically.

  • Updated main config and module config comments as necessary to reflect the changes in context control

  • Major Word and Phrase Filter improvements and optimizations

  • Exposed the new recursion depth limit in config.yml, under a new Advanced section at the bottom. This value defines the maximum number of recursive string processing operations that may run for a single input. If the limit is exceeded, processing is terminated and the message is fully blocked. This guards against potential StackOverflow errors before they happen and avoids wasting compute on redundant processing.

  • Fixed lockdown kick messages failing to read from lang.yml

  • Fixed Anti Statue Spambot ModuleTriggerEvent calling prematurely, resulting in it still calling even if the executed command was whitelisted

5.7.0-PRE

This is a pre-release This release includes large code changes. While tested, edge-case bugs may exist. Backing up your config files databases, or waiting for a stable build, is recommended in the rare case issues occur during migration. In this build

  • Resolved potential for DataTruncation errors during database writes

  • MySQL/SQLite schema updates and improvements. Migration of old data occurs automatically

  • Corrected inconsistencies between MySQL and SQLite data types and capacities to be 1:1

  • Implemented regular expression recursion tracking and gating to all operations across all modules to prevent stack overflows and crashes when processing extremely large inputs. In the case recursion depth is exceeded, the event is blocked/canceled fully to prevent unfiltered content from passing through

  • Violation lookups now run fully async to prevent disrupting performance with large indexes

  • Word and Phrase Filter improvements

5.6.8

In this build

  • Added 52 missing ASCII lookalike unicode characters to the Unicode Remover's compatibility mode

  • Improvements to the Link & Ad Blockers disallowed link/domain detection capabilities

  • Fixed the Link & Ad Blocker throwing ArrayIndexOutOfBoundsException when a message with a disallowed link/domain contained an additional slash surrounded by spaces (" / ")

5.6.7

In this build

  • Fixed a performance vulnerability with the Word and Phrase Filter that could trigger a StackOverflowError under some circumstances

  • Significantly improved Word and Phrase Filter whitelist handling, as well as other input processing

  • Fixed StringIndexOutOfBoundsException occurring with command inputs under some conditions

5.6.6

In this build

  • Updated to the most recent TLD list from IANA (v2025082100 Aug 21)

  • Fixed ArrayIndexOutOfBoundsException occuring from the Link and Ad Blocker when certain characters appeared before links

  • Fixed module bypasses using certain characters in Chat Cooldown, Word and Phrase Filter, and Link and Ad Blocker

5.6.5

In this build

  • Updated to the most recent TLD list from IANA (v2025052200 May 23 25)

  • Optimized Auto Punisher auto warning expiry scheduling

  • Improvements to Link and Ad Blocker's accuracy

  • Fixed a StackOverflowError case with particular character sequences in the Word and Phrase Filter

5.6.4

In this build

  • Updated to the most recent TLD list from IANA (v2025022700)

5.6.3

In this build

  • Updated to the most recent TLD list from IANA (v2024091000)

  • Fixed Anti Chat Flood counting colorcodes in max word length

  • Improvements to the Word & Phrase Filter and Link & Ad Blocker

5.6.2

This release is a continued patch from config sync exploit. It is advisable for all servers to update to this release ASAP.​ In this build

  • Prevents Auto Punisher executing various malicious commands used in the exploit. Please review your auto punisher file to ensure no unauthorized modifications have been made to punishment commands.

  • Fully deregistered all Bungee messaging channels from ChatSentry.

5.6.1

This release patches a newfound critical exploit using ChatSentry configuration syncing. A full fix is in the works, but in the meantime this feature has been disabled for security. If you are a network please update to this build ASAP. ​ In this build

  • Temporarily disable exploitable network features while a fix is developed.

5.6.0

In this build

  • Support for MC 1.21. Please report any issues to my support Discord, thank you and enjoy!

  • Updated to the most recent TLD list from IANA (v2024061600 Jun 16 24)

5.5.9

In this build

  • Explicit support for MC 1.20.6. Please report any issues to my support Discord, thank you and enjoy!

5.5.8

In this build

  • Resolved an update checking issue present in 5.5.7

  • Improved sign and anvil listener compatibility

5.5.7

In this build

  • Explicit support for MC 1.20.5. Please report any issues to my support Discord, thank you and enjoy!

  • Updated to the most recent TLD list from IANA (v2024042700)

5.5.6

In this build

  • Patches a critical issue. All users should update on all Spigot servers (proxy is not required)

  • Minor improvements to the Word & Phrase Filter, Spam Blocker, and Link and Ad Blocker

  • New {CONTENT} placeholder for Auto Punisher command actions that returns the players full message that triggered the auto punisher warning

5.5.5

In this build

  • Minor patch fully removing some debug messages from the last release

5.5.4

In this build

  • Fixed various bypasses and edge cases with the Word & Phrase Filter. Bypasses for particular kinds of entries could be spammed and cause the server to become overloaded, so it's recommended you update to this release sooner than later

  • Substantial improvements to the accuracy and reliability of the Word & Phrase Filter censor

  • New per context partial bypass permission for the Word & Phrase Filter "chatsentry.wordandphrasefilter.partialbypass.<context>" where <context> represents the context to apply the partial bypass, ex. chat, command, sign, etc. This permission bypasses all blocked entries APART from entries with the 'nocensor::' modifier (This modifier is intended to represent entries that should be blocked entirely instead of just censored, but it is also usable even if the censor is disabled). This is useful if you wish to allow users to write some blocked entries freely in commands or another context that would otherwise be censored (or blocked if the censor is disabled). It's important to distinguish this permission from the standard bypass permission, "chatsentry.wordandphrasefilter.bypass" that fully bypasses the module, including 'nocensor::' entries

  • Fixed Unicode Remover with compatibility mode disabled incorrectly flagging certain content in chat and commands

5.5.3

In this build

  • Updated to the most recent TLD list from IANA (v2024021100)

  • Resolved various Link and Ad Blocker false positives

  • Resolved various Word and Phrase filter bypasses related to censor failures

  • If an exception occurs during censoring, the Word and Phrase Filter now blocks the entire message from being sent

  • New 'ignore-usernames' option in the Link and Ad Blocker that when enabled removes usernames from the input message before the module checks for links. Useful if player names can contain periods or other special characters in your server.

  • Fixed the anvil processor removing formatting on item names when it flags a module

  • The command processor now listens on the earliest priority to have a better chance of compatibility with other plugins listening on command preprocess

  • Word and Phrase Filter's substitution intelligence no longer applies to commands to prevent accidental conflicts with command arguments

5.5.2

In this build

  • Accuracy improvements to the Spam Blocker's singular message spam processor

  • Chat Executor now uses a more reliable context processing method

  • Fixed a stack processing issue that made Chat Executor set-matches-as flags be unreliably respected

  • Fixed Chat Executor API trigger event calling when no patterns matched

  • Fixed Chat Executor sending Discord Notifier notifications regardless of {dont_notify} flags

  • Fixed global admin notifier notifications not respecting players with notifications toggled off

  • Updated to the most recent TLD list from IANA (v2023120200)

5.5.1

In this build

  • Fixed Chat Executor set-as modifiers appearing in the result message

5.5.0

In this build

  • Fixed 400 bad request error when using DEFAULT for the footer-icon option in Discord Notifier

  • Fixed an issue with Unicode Remover not respecting ignored characters

  • Fixed override bypass perm option for Unicode Remover not working for signs

5.4.9

In this build

  • Patches a critical issue. All users should update on all servers, including the proxy if a network

  • Fixed startup error on some configurations related to Discord Notifier

  • Fixed an issue related to the sign listener that caused false positives with certain styling

5.4.8

In this build

  • Fixed potential module startup issues with certain configurations

  • Resolved an issue with lockdown modes not reading or writing to the config properly

5.4.7

In this build

  • The Link & Ad Blocker module is now utilizing the latest TLD list from IANA (v2023110200)

  • Players now require the 'chatsentry.manualwarnings.see' permission in order to see manual warning broadcasts

  • Discord Notifier footer text and image icon can now be configured in the modules config using footer-text and footer-icon options.

  • Fixed Chat Executor player message or broadcast message actions appearing before the players chat message in chat

  • Fixed potential StackOverflowError from the Word and Phrase Filter when filtering commands under rare circumstances

5.4.6

In this build

  • Dependency updates to fully support 1.20.2

5.4.5

In this build

  • New outside-embed-content config options for Discord Notifier notifications that let you ping users/roles or add other text to be sent before the embed

  • Various improvements to event handling aimed to increase compatibility with other plugins doing similar things

  • The Link & Ad Blocker module is now utilizing the latest TLD list from IANA (v2023091800)

5.4.4

In this build

  • Fixed multiple issues with the unicode remover improperly processing content and sending invalid admin notifier notifications

  • Improvements to the link & ad blockers accuracy to further reduce false positives

  • Updated to the most recent TLD list from IANA (v2023090200)

  • Minor improvements to various default module configs for out of box functionality

5.4.3

In this build

  • New 'respect-cancelled-events' option in the main config that determines whether ChatSentry should process chat, command, anvil, sign, etc. events that are cancelled/prevented by other plugins. This is enabled by default. Generally, you should only disable this if you have issues with compatibility with other plugins or want ChatSentry auto punisher warnings to continue to accumulate even when players are muted by another plugin

5.4.2

In this build

  • Fixed issue with unicode removers ignored-chars not being respected

  • Fixed an issue with the word and phrase filter that let players bypass the filter by adding non-alphanumeric characters before their message

  • Updated to the most recent TLD list from IANA (v2023082100)

HOTFIX #1:

  • Fixed debug messages from the unicode remover appearing

5.4.1

In this build

  • Fixed an issue that caused messages with color in them to trigger the unicode remover under some configurations

  • The unicode removers config option ignored-unicode-characters now uses a regular yaml list format. Existing configs should not be affected

  • Fixed {NL} newline symbol not working in global admin notifier messages cross server

  • Updated the top level domain list utilized by the Link & Ad Blocker's only-filter-tlds option to the most recent version from IANA (2023080800, Aug 8 23)

5.4.0

In this build

  • Fixed an issue with Russian characters being caught by unicode remover on compatibility mode

  • Chat listener adjustments for increased compatibility with other chat plugins

  • Fixed an issue with the unicode remover sending invalid sign admin notifications

  • Added a new chatsentry.thankyoumsg permission that may be exempted to prevent the initial installation Thank you pop up message to ops from being shown. This is only useful for select circumstances where you may be creating many servers with a fresh ChatSentry installation and do not want to have to run /kcs hidemsg on each

5.3.9

This update contains a critical patch to the unicode remover module’s compatibility mode on 1.20.x servers. It's advisable to update as soon as possible if you are running or plan to run 1.20.x and use the unicode remover.​ In this build

  • 1.20 adds support for a much wider range of unicode. Unicode removers compatibility mode has been updated with further A-Z lookalike characters, now checking against 1,953 total characters.

  • ChatSentry should now respect mutes and not process the cancelled message through modules

  • Updated to the most recent TLD list from IANA (v2023072502)

HOTFIX #1

  • Unicode removers compatibility mode now properly reads unicode characters outside the Basic Multilingual Plane

HOTFIX #2

  • Fixed a typo in the first start start thank you message

5.3.8

In this build

  • Support for Minecraft 1.20

5.3.7

In this build

  • Fixed a typo in the footer of discord notifications

5.3.6

In this build

  • Fixed chat executor firing if another module blocked the message

  • Increased the leniency of the ignore-short option in anti parrot

  • Adjusted footer text in discord notifications

  • Updated to the most recent TLD list from IANA (ver 2023053100). XN-- domains were omitted

  • Potentially increased compatibility with other chat plugins doing similar things

  • Fixed modules firing for muted players, this should be compatible with most chat plugins that listen to and cancel the event on first (LOWEST) priority (ChatSentry listens on LOW)

  • Fixed {NL} not working in console on admin notifier messages

5.3.5

In this build

  • Various minor optimizations, some tasks have been moved off the main thread

5.3.4

In this build

  • Fixed an issue that caused BungeeCord support to fail to initalize. You will have to update the plugin on the proxy & individual servers

  • Improvements to Link and AD Blocker's extra sensitivity mode. It is still not recommended unless you deal with excessive advertising due to its high false positive rates

  • Updated to the most recent TLD list from IANA (ver 2023020400). XN-- domains were omitted

  • Fixed StackOverflowError in Word & Phrase Filter when attempting to censor messages that began with an exclamation point

5.3.3

In this build

  • Fixed an issue where the Link & Ad Blocker would block whitelisted domains/links with https

  • Updated to the most recent TLD list from IANA (ver 2022112300). XN-- domains were omitted

  • Fixed an issue where auto punisher warning expiry in mass amounts would cause the server to hang

  • Patched rare database disconnect issue

  • Code cleanup & performance improvements

5.3.2

In this build

  • Significant code cleanup & optimizations

5.3.1

In this build

  • Various false positive fixes for the Link & Ad Blocker module

  • Added a new toggle chat 'blacklisted-commands' command list to config.yml. Commands on this list (without exemption permission) will be blocked when chat is toggled via /togglechat

  • Resolved a book listener unicode remover false positive if a page was left blank

  • Performance optimizations

5.3.0

Additions

  • 1.19 support

5.2.9

Improvements

  • Link & Ad Blocker improvements & false positive fixes

5.2.8

Improvements

  • Link & Ad Blocker improvements & optimizations

Fixes

  • Resolved auto grammar incorrectly capitalizing two letter words at the start of messages

5.2.7

Improvements

  • Resolved additional Link & Ad Blocker false positives in relation to extended period use

  • Updated to the most recent TLD list from IANA

  • Modified the TLD list to exclude especially uncommon tlds for better module accuracy

  • Added 6 additional default whitelisted domains most servers would likely allow to the Link & Ad Blocker configuration for a better setup experience for this module

5.2.6

Improvements

  • Resolved numerous Link & Ad Blocker potential false positives

  • Various code optimizations

5.2.5

Improvements

  • Fixed the Link & Ad Blocker failing to respect whitelisted domains if they included a protocol

5.2.4

Improvements

  • The Word & Phrase Filter will no longer to attempt to censor segments over 15 characters to prevent excessive resource usage, as the longer the input the more work the plugin has to do to analyze the content

Fixes

  • Fixed potential StackOverflowError related to the Word & Phrase Filter censor caused by very short blocked entries

5.2.3

Additions

  • New 'notify-when-censored' option added to the Word & Phrase Filter's censor options. This option determines whether the module should send Admin Notifier notifications when a message is censored. When set to false false notifications will only be sent when the censor fails to censor a message and has to block it entirely, or a nocensor:: entry is triggered. This option requires the Admin Notifier module to be enabled to take effect.

Improvements

  • Improvements to the Word & Phrase Filter's censor. Symbols embedded within blocked entries can now be processed by the censor, reducing the rate the censor fails and has to block a message entirely

  • Improvements to the Word & Phrase Filter's partially-censor options internals. Fixed the potential for the module censoring extra parts of detected messages unrelated to the actual censored content

  • Improvements to the Link & Ad Blocker's subdomain detection. Links with any amount of subdomains are now supported instead of just one subdomain

Fixes

  • Fixed the Link & Ad Blocker failing to detect links that started with a slash (ex. 'example message /google.com')

  • Fixed the Link & Ad Blocker failing to detect links with ports (ex. 'some.domain:25565')

5.2.2

Fixes

  • Added autoReconnect=true property to MySQL connections to allow the plugin to reconnect to MySQL if the connection is interrupted

  • Fixed the chatsentry.togglechat permission failing to internally register

5.2.1

Improvements

  • Added 42 new unicode chars to the unicode removers compatibility mode blacklist to resolve filter bypasses using any of those characters

5.2.0

Additions

  • New 'block-singular-message-spam' option for the Spam Blocker that lets the module block on a message-by-message basis messages that are likely be spam. Ex. players repeating the same or similar word or phrase over and over in the same message. Messages are determined as spam using a newly developed algorithm that takes character sequence repetition, word diversity, and character diversity into account. This option comes with a 'singular-message-spam-processor-sensitivity' sub-option that determines how sensitive the singular message spam component should be. Though new, this feature has been tested across thousands of production server chat messages and is considered stable. If you encounter any issues, please report them

  • New Spam Blocker lang message 'singular-message-spam-trigger' that shows when a singular message is flagged as spam by the module

Fixes

  • Fixed the sign listener removing colorcodes from signs

  • Fixed potential for a SQL error when logging certain content

  • Fixed {PLAYER} placeholder in the Anti Relog Spam module failing to parse

5.1.0

Improvements

  • Improvements to the Word & Phrase Filter's detection abilities

  • Improvements to the Link & Ad Blocker's detection abilities

  • Updated the top level domain list used by the Link & Ad Blocker to version 202112300

Additions

  • Reformatted censor options in the Word & Phrase Filter config to all be under a singular 'censor' node for better organization. Censor related options will be reset to default and may require reconfiguring.

  • New 'send-block-message-when-censored' option for the Word & Phrase Filter censor. When set to false, the block message will only be sent if the message could not be censored, or if the entry had a nocensor:: modifier

  • New 'partially-censor' option for the Word & Phrase Filter censor. This option makes the censor leave the first two letters uncensored to partially indicate what the censored content was

  • New 'nocensor::' Word & Phrase Filter entry modifier. If an entry with this modifier is found in a message, the message will be blocked entirely and not be attempted to be censored. Good for very vulgar language that you want to keep out of chat entirely. This modifier is stackable, meaning you can use it along with other modifiers, ex. 'nocensor::exact::'

  • New 'autowarn-when-censored' option for the Word & Phrase Filter censor. This option determines if Word & Phrase Filter Auto Punisher warnings apply if the message was censored. Has no effect if Auto Punisher warnings for the WAPF are disabled, or if the entire Auto Punisher module is disabled. This in conjunction with the new nocensor modifier allows you to apply warnings to players who attempt to use very vulgar language, but apply no warnings to people sending basic swears/other blocked entries that are censored

  • The Chat Executor now supports execution on signs and anvils with the new '{only_anvils}' & '{only_signs}' match node prefixes. These options require the sign/anvil listener to be enabled in config.yml as well. When using these new prefixes the entry will solely execute on anvils or signs

Fixes

  • Fixed commandspy not respecting toggle preferences

5.0.4

In this build

  • Resolved line breaks (\n) not being respected in lang.yml entries

  • Word & Phrase Filter command & phrase whitelist no longer respects letter case

  • Fixed ClassNotFoundException caused by the network bridge

5.0.3

In this build

  • Potentially fixed EOFException related to network sync

  • Fixed potential NPE caused by ignored unicode char processing

5.0.2

In this build

  • Unicode remover:

    • resolved incorrect characters being caught with compatibility mode off

    • potentially resolved NPE caused by an invalid pattern

  • Fixed a typo in the default 'anti-chat-flood.trigger-too-long' lang.yml message

5.0.1

In this build

  • Fixed hex colors not working on 1.18 servers

  • Resolved a potential NPE caused by the unicode remover

  • Resolved an issue with the instance identifier

5.0.0 - Better than ever

Improvements & Reworks

  • All YAML-based storage has been replaced with SQL-based storage, which is much more efficient & reliable. You can configure whether you'd like to use SQLite (local flatfile) or MySQL (remote database) in the new storage.yml file

  • New dynamically adjusting task queuing systems allow the server to no longer hang or excessively lag when performing various tasks such as violation autoclean/cleanlog operations

  • Improved overall performance with various optimizations and additional asynchronous operations

  • Significantly improved the default blocked words list. It can be accessed at https://wiki.chatsentry.xyz/misc-info/preset-word-lists

  • Significantly improved the default Auto Punisher configuration. Delete auto-punisher.yml and reload the plugin if you wish to use it

  • Renamed various config options for improved clarity and to lower the chance of accidentally setting an option you didn't want

  • 15 previously unconfigurable messages from the cswarn and cswarnings commands are now configurable in lang.yml

  • Significantly improved the default module trigger lang messages with better clarity and writing. Delete trigger nodes in the file and reload the plugin if you wish to use them

  • Network file synchronization now only accepts files that are newer than the current ones in use by the receiving server instance, preventing overriding newer files with older versions of themselves

  • New 'ignored-unicode-chars' option in the unicode remover module that allows you to have certain unicode characters be ignored entirely by the module

  • Improvements to the World & Phrase Filters detection abilities

Additions

  • New Discord Notifier module that sends Discord notifications via webhooks when modules flag a message or action, players are manually or automatically warned, warnings are pardoned, autowarns expire, and when the Auto Punisher punishes a player. You can configure each aspect of the webhooks, as well as choose to use the same webhook or separate ones for each notification type. Messages are dynamically delayed to avoid Discord rate limiting

  • New Anti Relog Spam module that prevents players excessively relogging in short periods of time to flood chat. Uses a dynamically increasing cooldown to effectively combat excessive relogging without affecting players who are relogging reasonably.

Changes

  • The option to use the legacy url identifier has been removed as the experimental url identifier is now considered stable

  • Reorganized large portions of the main config file

  • Lots of config comments rewritten/improved for better readability

Bug Fixes

  • Fixed the Word & Phrase filter censor failing to work if there was any symbols in a message with a blocked word/phrase

  • Fixed "Command cannot be empty" error caused by the Word & Phrase Filter's censor when running commands with a blocked word/phrase in it

  • Fixed NPE related to the command processor

  • Fixed Anti Join Flood admin notifications not showing up if Anti Statue Spambot notifications were not enabled

  • Fixed manual warnings failing to internally register due to a caching error

  • Fixed exempt from Auto Punisher warnings permission not being respected

  • Fixed auto warning expiry working improperly under some circumstances

  • Fixed cslockdown's only exempt allowed message appearing as a blank kick message

  • Fixed certain characters corrupting violation logs

  • Resolved an issue with {proxy_player_cmd} executions

Note about additional proxy support & api improvements

Many of you know more proxies like Velocity and Waterfall were planned on being supported in this release along with API improvements. After lots of trial and error I've decided to push this support to a future update as it is not stable and needs sufficiently more work. It was the last remaining implementation that was holding up this release. I currently do not have the time to finish it quickly, but still wanted to release v5 with all the other improvements. I hope you understand why I made this decision. Though, the good news is that in the meantime, you can use adapters like Snap to run the plugin on Velocity!

Last updated

Was this helpful?