Skip to main content
← All Guides
Plugin Config · 5 min read

ChatControl, Channel System Setup

Configure ChatControl's channel system with staff, trade, and local chat channels, formatting, permissions, and cross-server sync.

Why Use Chat Channels?

On a server with more than twenty active players, a single global chat becomes unreadable. Trade spam drowns out conversations, staff messages get lost, and new players cannot get help. A chatcontrol channel system setup splits chat into organized channels so each type of communication has its own space. Players switch channels with a command or prefix, and only see messages from channels they have joined.

ChatControl (by kangarko) is one of the most feature-rich chat management plugins available. It handles channels, formatting, filters, anti-spam, and much more. This guide focuses specifically on the channel system configuration.

Default Channel Configuration

ChatControl's channel config lives in plugins/ChatControl/channels/. Each channel gets its own YAML file. Here is a typical global channel:

# channels/global.yml
channel:
  name: "global"
  format: "&8[&bGlobal&8] &7{player}: &f{message}"
  default: true
  range: 0
  permission:
    send: chatcontrol.channel.global.send
    receive: chatcontrol.channel.global.receive

The default: true setting means new players are placed in this channel automatically. A range of 0 means unlimited distance (everyone on the server sees messages). Setting range to a block distance creates local chat.

Creating a Local Chat Channel

Local chat limits messages to players within a certain block radius, perfect for roleplay or survival servers:

# channels/local.yml
channel:
  name: "local"
  format: "&8[&aLocal&8] &7{player}: &f{message}"
  default: false
  range: 100
  shortcut: "l"

Players switch to local chat with /channel local or type l: Hello using the shortcut prefix. Only players within 100 blocks hear the message. This is essential for any chatcontrol channel system setup on roleplay servers where private in-character conversations should stay local.

Staff and Trade Channels

Create dedicated channels for staff communication and trading:

# channels/staff.yml
channel:
  name: "staff"
  format: "&8[&cStaff&8] &c{player}: &f{message}"
  default: false
  permission:
    send: chatcontrol.channel.staff.send
    receive: chatcontrol.channel.staff.receive
  spy: false

# channels/trade.yml
channel:
  name: "trade"
  format: "&8[&6Trade&8] &e{player}: &f{message}"
  default: false
  shortcut: "t"
  cooldown: 30

The staff channel requires specific permissions, so only moderators and admins can see or send messages in it. The trade channel adds a 30-second cooldown between messages to prevent spam, which is especially useful when players are advertising ChestShop or ShopGUI+ items for sale.

Channel Format Variables

ChatControl supports a rich set of format variables for your chatcontrol channel system setup:

VariableOutput
{player}Player display name
{prefix}LuckPerms prefix
{suffix}LuckPerms suffix
{world}Player's current world
{message}The chat message content
{player_health}Current health value

Use these to build informative chat formats. A popular pattern includes the rank prefix, player name, and world name so readers know who is talking and where they are.

Cross-Server Channel Sync

If you run a BungeeCord or Velocity network, ChatControl can sync channels across servers using its built-in proxy support. Enable it in settings.yml:

Proxy:
  Enabled: true
  Channel_Sync: true

With proxy sync, a message sent in the global channel on your survival server appears on your creative server too. Staff chat syncs as well, so your moderation team can communicate without switching servers.

Anti-Spam in Channels

Each channel can have its own anti-spam rules independent of global settings. The trade channel's 30-second cooldown is one example. You can also set message similarity thresholds so repeated messages are blocked:

  anti_spam:
    similarity: 80
    cooldown: 10

An 80% similarity threshold catches players who slightly rephrase the same advertisement to bypass cooldowns. Combined with a chatcontrol channel system setup that separates trade chat from general chat, your global channel stays clean and readable for everyone.

Need full config access? Astroworld Hosting, Pterodactyl panel, NVMe SSDs.

Related Tools & Resources

🔧

Minecraft Tools

Calculators, generators & server tools

🧱

Item Database

Browse all Minecraft items, stats & recipes

⚒️

Crafting Recipes

Visual crafting guides for every recipe