Skip to content

Common Issues

Matej edited this page Dec 4, 2024 · 54 revisions

Read this to save hours waiting for our reply and fix common issues yourself quickly.

Read this first:

  1. No support for PlugMan or /reload. Always restart if having issues.

  2. No support for old versions. Use the latest version of ChatControl and its proxy addons.

  3. To edit your settings files, use a UTF-8 compatible text editor. WordPad or Notepad are broken. Use Notepad++ or Sublime Text. Test different UTF-8 variants until you find one that works.


Known issues

BungeeCord Known Issues

  • Using <lang>, <font> and <selector> will disconnect modern clients. This was reported when the backend server was 1.8.8 running ViaVersion.

Critical Issues

MySQL database failure

If you're on Minecraft 1.8.8 or anything that's not the latest one, your server may have outdated database driver. MySQL 8.0 thus won't work. Use MariaDB instead. Minecraft 1.8.8 is confirmed to work with MariaDB but breaks with MySQL 8.0. Minecraft 1.17 and higher works with MySQL 8.0.

Make sure to set your database collation to "utf8mb4_unicode_520_ci".

If you're getting "Specified key was too long; max key length is 767 bytes" or any other error make sure your database supports the "utf8mb4" charset (use utf8mb4_unicode_520_ci) otherwise it won't work. Also see this StackOverflow issue for solutions to upgrading your db driver.

Chat

1.19+: Chat messages are not cancelled

See https://github.com/kangarko/ChatControl-Red/wiki/Listener-Priorities#important-regarding-paper-119

1.19+: Chat reporting / "This message is not secure"

Nope, Spigot and we send all messages as "system chat" so they cannot be reported. If, in the future this feature starts to work, we'll disable it with a config option to protect you privacy, sanity and freedom.

The "This message is not secure" is Microsoft's way of misinformation to get as many people as possible to enable their anti-feature and you can ignore it safely. There's no way a message can be edited (unless by our rules) if it is sent out through ChatControl Red.

How to recreate TownyChat?

See this issue for a tutorial by @iRollNeed: https://github.com/kangarko/ChatControl-Red/issues/2880#issuecomment-2513653251

Gradients

We do not support gradients for players to type in their chat messages for now, however, here is how to use gradients in your chat format in formats/ folder: a

Essentials / CMI nicks won't work

Set Tag.Backward_Compatible to true in settings.yml.

/chc color is not applied to chat

You must use {chat_color} and {chat_decoration} in your formats to apply chat colours to chat messages, for example:

  message: 
    Message: "&7:&r{chat_color}{chat_decoration}{message}"

How to use HEX colors (Minecraft 1.16+)?

Simply use the following syntax: #123456 anywhere as you would with &c color codes. Click here for a cool RGB color generator.

I am unable to remove individual chat messages with latest ProtocolLib dev builds

Since build #548 ProtocolLib seems to have done major changes to the way they handle packets, which tends to break other plugins' features that are based on ProtocolLib. We advise you to stay with the latest stable version available on spigot to avoid such issues.

How to edit "Goal Reached" for Toast notifications?

a

The Toast always starts with "Goal Reached". This is due to the nature of Minecraft. Toast notifications are not intended to be used for custom messages; they are there to show advancements and rewards. All you can customize is the text that comes afterwards and the icon (on some places only).

Localization messages don't work after /chc reload?

Restart the server, some messages cannot be changed unless you do a clean start.

Toast Private Messages notifications spam the chat!

Disable the broadcasting of advancements via the command: /gamerule announceAdvancements false.

My chat is being duplicated!

This is a known issue if you have CMI, EssentialsChat, DeluxeChat, mcMMO party or anything else that sends chat. You need to tweak the other plugin to remove this issue. Before opening an issue with us, run a local test server on your computer with only ChatControl Red and your production settings installed (and DiscordSRV, if you use that) and only open a ticket if the problem remains.

Notice: If you're using Discord with proxy, see this.

How can I turn off automatic channel join/spy for ops?

To disable automatically joining a channel, give yourself or your group negative chatcontrol.autojoin.{channel}.{mode} permission. Replace {channel} with your channel name. Replace {mode} with the mode you wish to disable (write, read), or use chatcontrol.autojoin.* to completely disable auto-joining.

See Permissions for help on giving negative permissions.

Players can speak when muted (e.g. using BanManager / LiteBans)

Please see this article on how to fix it.

My emoticons :) are just showing as ? / Unicodes / Special characters not working

I want » in the formatting but it shows as ?

a

Ensure you open and save all files using the right encoding and the right program, see [Use-Right-Encoding]Use-Right-Encoding(). You may need to regenerate your file in case the unicode letters have been corrupted by wrong encoding earlier. For unicode, you can also use the escape characters \u2642.

Please also make sure to surround the message that contains these characters with quotes ("").

Important — some systems will simply not work with unicode, such as Windows is known to be problematic with some configuration that is unknown to us. Best case you can speak to your hosting provider or try googling. Windows 10 should work for most of you, anything below may not. Also, if your system's language is using a different char set such as Chinese, Russian, Greek, Turkish, etc., then it may not work, you can try googling on how to enable unicode on your operating system. We unfortunately can't help since we have no idea.

The <center> prefix doesn't exactly centers chat when colors/Russian/Greek etc. special characters are used!

Unfortunately this is the case of the free library extension we are using, anyone is encouraged to make a pull request to fix that: https://github.com/kangarko/Foundation/blob/master/src/main/java/org/mineacademy/fo/ChatUtil.java

I can't see join/quit messages, even though they were properly enabled and I don't ignore them!

If you don't have any server resourcepack, make sure Delay_Until_Resource_Pack_Loaded is set to false, otherwise the plugin will try to listen for the PlayerResourcePackStatusEvent event to fire before sending these messages.

Spoiler Alert: it will never fire without a server resourcepack or without a plugin that handles resourcepacks, such as ItemsAdder or Force Resourcepacks.

Magic color permission does not prevent players from typing and applying &k!

The magic &k color has "obfuscated" permission name, give a negative "chatcontrol.color.obfuscated" permission instead.

My format does not display hover/click/suggest command and other interactive elements!

If you format is over 32,000 letters we need to remove those to avoid player from being kicked out. Set "Debug" key in settings.yml to "[component]" to see if there is a console message "Message to X was too large, removing interactive elements to avoid kick." when that happens. Try making your format smaller/less text. Unfortunately this is a hard limit of Spigot.

How to put brackets around the [item] variable so it shows "I hold [Stone]"?

You need to adjust your Javascript in variables/item.yml slightly, here is an example:

Value: |-
    displayName();
    
    function displayName() {
      var item = player.getItemInHand();
      var itemMaterial = item.getType().toString();
      
      if (item == null || itemMaterial.equals("AIR") || itemMaterial.contains("_AIR")) 
        throw "event handled: You must be holding an item to use [item]!";
    
      var metadata = item.getItemMeta();
      
      if (metadata != null && metadata.hasDisplayName())
        return "\&8[&d" + metadata.getDisplayName() + "\&8]";
      
      var wordUtils = Java.type("org.apache.commons.lang.WordUtils");
      var name = item.getType().name().toLowerCase().replace('_', ' ').replace('_', ' ');
    
      return "\&8[&d" + wordUtils.capitalize(name) + "\&8]";
    }

Discord

Discord integration does not work / stopped working!

Set the "Debug" option in settings.yml file to "[discord]", restart your server completely (do not reload and do not use PlugMan) and notice the console message when that happens. It will give you instructions on how to fix that, or you can open a ticket and paste the messages there.

I cannot use @ mentions or my discord plugin broke when ChatControl Red is installed!

When you send a message, by default we have to unsend it and send it again through our own system. This makes filtering functional but poses some limitations. You can turn this off in Discord section of settings.yml.

Antispam And Rules

How to edit messages 'You have to wait X seconds before another message' or 'Please do not post the same or similar messages' or announcement format:

Edit these messages in localization/messages_en.yml. See Localization for more information.

How to allow my server's domain or IP address in chat?

Open rules/global.rs, find "ignore string minecraft:|youtube.com|imgur.com" line and simply put "|yourdomain.com" at the end of it. You can separate multiple domains to ignore with "|".

My URL / domains are broken / Ad filter doesn't work, all dots are removed! (Example: www.google.com becomes www google com)

  1. This change is not coming from ChatControl. Essentials is known to do that, try adding your players essentials.chat.url and essentials.msg.url permissions

  2. Make sure you don't use "Suggest_Command" in your format part as this is known to break links.

  3. Alternativelly, this can be fixed by adding " &r" after the URL. So it ends up looking like this: https://mineacademy.org/ &r

Rules, channels or chat don't show or show when not supposed to (Towny/Factions/Plot Squared, ...)

Please see this article on how to fix it.

Rules don't work for my non-English server - I use Cyrillic / special characters but they are not matched.

Set Rules.Strip_Accents to false in settings.yml.

How to prevent spamming one character or limit it to 1 repeat maximum?

There is a default rule for that hidden in rules/chat.txt, remove # from the two lines after the first line and you be good to go. Edit {3} to change how many characters to allow.

a

Tab completion does not work correctly!

Make sure you have tab-complete set to -1 in your spigot.yml file in the root server folder.

I am getting kicked when removing messages with [X]

Give yourself "chatcontrol.bypass.spamkick" permission.

I am getting kicked when I chat!

Set Channels.Prevent_Spying to false, unfortunately some setups and plugins cause issues here. If you have ViaVersion or other protocol-hack plugins, set ProtocolLib.Listen_For_Packets to false. Also try disabling console filter by setting Console_Filter.Enabled to false.

Commands

'/chc' is interfering with another plugin! (e.g ChestCommands)!

Remove chc from Command_Aliases in settings.yml. You can write your own command to invoke /chc there instead.

Command_Aliases: [chatcontrol, chc, anotheralias]

How to only announce subtitle with /chc announce?

If you only want subtitle, send "/chc announce title |my subtitle message" (see the | before the message).

/tell and /reply is causing lag!

If you have Toast notifications enabled (Private_Messages.Toasts in your settings.yml), note that this naturally causes some lag since the advancements must be written on a file and immediately deleted.

You can also disable the Spy and the Log features being applied to private messages by removing "private_message" from Apply_On sections in settings.yml for these features.

How to private message vanished players or players who ignored you or toggled off PMs?

Give yourself chatcontrol.bypass.reach permission to bypass these limits.

ChatControl breaks Towny command /t!

  1. Remove the "t" alias from Private_Messages.Tell_Aliases in settings.yml
  2. Place the following command alias in commands.yml in your root server folder:

a

ChatControl won't override /w or other aliases for private messages!

Add

aliases:
  w:
  - []

to commands.yml in server directory to fix this.

Join, Quit, Death and Timed Messages

Join messages are not shown!

Ensure you are not vanished, we ignore vanished players by default.

If you have SpectatorOnLogin in your CMI plugin, set this to false, since CMI will tell us the player is vanished and we won't show the message otherwise.

Join/switch/quit messages from proxy (bungeecord/waterfall/velocity) don't always show if in vanish?

If you are using a plugin such as PremiumVanish, you can force vanished users to have their messages shown if they have the permission chatcontrol.bypass.reach

IMPORTANT NOTE

The permission chatcontrol.bypass.reach also gives people the ability to talk to people who ignored them etc if this permission node is also assigned to the Spigot server. Permission checks to bypass players' ignored list, are done on the spigot server, and the permission check to make sure these messages (join/switch/quit) is sent, are done on the proxy server, so to ensure you do not give regular players the permission to bypass such features, you need to make sure to only assign it to the proxy.

To assign a permission node just on proxy (bungeecord/waterfall/velocity) when using a permissions plugin like LuckPerms, this is the command you need to use (assuming you have LuckPerms on all of your servers linked to a database like MySQL or a similar setup).

/luckpermsbungee group <group_name> permission set chatcontrol.bypass.range true server:<server_name>

<group_name> = group/rank name

<server_name> = Server name as stated in your LuckPerms config on proxy.

If you want to check the permissions, you can run these commands if using LuckPerms.

Remembering, you want the permission to be "true" on proxy, but "false" OR "undefined" on your spigot servers, unless you are happy for that specific group to be able to talk to people who have them ignored, etc.

For proxy /luckpermsbungee group <group_name> permission check chatcontrol.bypass.range

For Bukkit /luckperms group <group_name> permission check chatcontrol.bypass.range

Placeholders

The {server_name} is wrong!

If you use PlaceholderAPI with the server expansion, it will override ChatControl's placeholder since it uses the same placeholder. Change the server name in the PlaceholderAPI's config file instead.

Clone this wiki locally