Common Issues
Read this page to save hours waiting for our reply and fix common issues yourself quickly.
Important:
Critical Information
<lang>
, <font>
and <selector>
will disconnect modern clients. This was reported when the backend server was 1.8.8 running ViaVersion.💬 Chat
1.19+: "Chat validation error"
Solution
Set enforce-secure-profile
to false
in server.properties
while the server is stopped.
1.19+: Chat reporting / "This message is not secure"
Security Note
We send all messages as "system chat" so they cannot be reported 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.
1.16+: Using HEX/RGB colors
Color Format
Use MiniMessage syntax: <#123456>
. Legacy colors like &c
are still supported. Click here for a color generator. NB: In chat, since ChatControl 11, you must use the MiniMessage <#132456>
syntax regardless of options in Performance.
/chc color is not applied to chat
Write {player_chat_color}
and {player_chat_decoration}
to format used in the channel you are writing to in formats/ folder before the {message}
to apply chat colours to the message. Example:
message:
Message: "&7:&r`{player_chat_color}{player_chat_decoration}{message}`"
Toasts: How to edit "Goal Reached" for toast notifications?
Minecraft Limitation
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).
Toasts: Private messages notifications spam the chat!
Disable Advancements
Disable the broadcasting of advancements via the command: /gamerule announceAdvancements false
.
Language messages don't change after /chc reload?
Server Restart Required
Restart the server, some messages cannot be changed unless you do a clean start.
How can I turn off automatic channel join/spy for ops?
Permission Solution
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.
Players can speak when muted (e.g. using BanManager / LiteBans)
See Listener Priorities on how to fix it.
My emoticons 😃 are just showing as ? / Unicodes / Special characters not working
Text Encoding
- Use a compatible text editor when editing yml files.
- Put brackets "" around the message containing emojis if it's in a yml file.
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!
Library Limitation
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!
Resource Pack Setting
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.
How to put brackets around the [item] variable so it shows "I hold [Stone]"?
Javascript Modification
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!
Debug Mode
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 is installed!
Message Processing
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:
Localization
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?
Rule Modification
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 / not clickable / Ad filter doesn't work, all dots are removed! (Example: www.google.com becomes www google com)
URL Configuration
- If you have Essentials, try adding your players
essentials.chat.url
andessentials.msg.url
permissions - Make sure you don't use "Suggest_Command" in your format part as this is known to break links.
- Since ChatControl 11, you need to use MiniMessage syntax to make links clickable in rules or formats such as
<click:open_url:'https://google.com'>https://google.com</click>
. Use https://webui.advntr.dev/ for help. - For chat, turn Make_Chat_Links_Clickable option in settings.yml to true to make links clickable automatically.
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.
Character Settings
Set Rules.Strip_Accents to false in settings.yml.
How to prevent spamming one character or limit it to 1 repeat maximum?
Rule Configuration
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.
Tab completion does not work correctly!
Spigot Setting
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]
Permission
Give yourself "chatcontrol.bypass.spamkick" permission.
I am getting kicked when I chat!
Configuration Change
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.Enabled to false. Also try disabling console filter by setting Console_Filter.Enabled to false.
⌨️ Commands
The vanilla /msg
is conflicting with the ChatControl /msg
command
Conflict Resolution
See our guide on how to fix conflicting commands.
'/chc' is interfering with another plugin! (e.g ChestCommands)!
Command Aliases
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?
Command Syntax
If you only want subtitle, send "/chc announce title |my subtitle message" (see the | before the message).
/tell and /reply is causing lag!
Performance Note
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?
Permission
Give yourself chatcontrol.bypass.reach permission to bypass these limits.
ChatControl breaks Towny command /t!
Command Conflict
- Remove the "t" alias from Private_Messages.Tell_Aliases in settings.yml
- Place the following command alias in commands.yml in your root server folder:
ChatControl won't override /w or other aliases for private messages!
Commands.yml Setting
Add
aliases:
w:
- []
to commands.yml in server directory to fix this.
✨ Placeholders
The {server_name}
is wrong!
PlaceholderAPI Override
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.