Chat plugins

Shape how chat looks and behaves — rank prefixes on every message, separate channels for staff or local talk, and filters that catch spam and swearing — with the plugins that handle each job.

Default Minecraft chat is a flat grey list of <name> message. A chat plugin turns that into something that reads like a real community — rank prefixes and colors on every line, a staff-only channel, a local chat that only nearby players hear, and filters that quietly stop spam and slurs. This guide sorts the jobs into the plugins that do them and the dependencies that make prefixes possible.

At a glance
You need A plugin-capable server (Purpur, PaperSpigot, Spigot family)
Foundation LuckPerms for ranks, Vault so a chat plugin can read them
Plan Any

Three separate jobs

"Chat plugins" is really three different needs, and one plugin rarely does all three well:

Job What it means Typical tool
Formatting Prefixes, colors, and layout on each message EssentialsX Chat, or a dedicated chat-format plugin
Channels Separate conversations — global, local, staff, per-world A channels-capable chat plugin
Filters Block or mute spam, swearing, advertising, caps An anti-spam / chat-filter plugin

Start with formatting — it's the one every server wants — and add channels and filters only when you actually need them.

Formatting: prefixes on every message

The look most people are after is [Admin] Steve: hello with the rank in color. That comes from two plugins working together:

  • LuckPerms holds the ranks and their prefixes (you set a prefix on each group). See Building a rank ladder.
  • A chat plugin reads that prefix and stamps it onto each message. The simplest is EssentialsX Chat (the Chat add-on for EssentialsX), which formats messages using a template.

EssentialsX Chat reaches LuckPerms' prefixes through Vault — the API glue that lets a chat plugin, a permissions plugin, and an economy find each other. So the chain is: LuckPerms defines the prefix → Vault exposes it → the chat plugin displays it. Install all three and set a format string like:

format: '{PREFIX}{DISPLAYNAME}&7: &f{MESSAGE}'

{PREFIX} pulls the LuckPerms group prefix, {DISPLAYNAME} is the player's name, and the &-codes color the rest. The exact placeholder names belong to whichever chat plugin you use, so check its config — but the pattern is universal.

🎯 Good to know: If you already run TAB for the tab list, note it does not format chat — TAB handles the player list and nametags, a chat plugin handles the messages. They're complementary, not overlapping.

Channels: who hears what

Once a server grows, one giant chat gets noisy. Channel-capable chat plugins let you split it:

  • Global — everyone, the default.
  • Local — only players within a radius hear you, so two groups building in different places aren't talking over each other.
  • Staff — a private channel for moderators, invisible to players.
  • Per-world — each world its own chat, handy on a Multiverse setup (Multiverse worlds).

Players usually switch or send to a channel with a command or a prefix character. Set up only the channels you'll use — a staff channel and maybe local is plenty for most servers.

Filters: spam, swearing, advertising

A filter plugin watches messages and acts on the ones that break your rules — muting a spammer, censoring a word, blocking someone pasting another server's IP. Most let you tune a word list, a caps limit, a repeat/rate limit, and an anti-advertising rule.

💡 Tip: Filters are blunt instruments — a swear list catches innocent words ("class-ic") and misses creative spellings. Set sensible defaults, tell players the rules, and back the filter with real moderation rather than expecting it to be perfect. The moderation playbook covers the human side.

Colors and formatting codes

Whether players (or you) can put colors in messages is usually a permission the chat plugin controls — grant it to staff, restrict it for regular players so chat stays readable. Formatting comes in two dialects: the classic &-codes (&a, &l) and, on modern software, MiniMessage tags (<green>, <bold>). Which one your plugin uses depends on the plugin and version, so treat the syntax as "check the plugin's docs" while the concept — colored, formatted chat gated by permission — stays constant.

Verify it works

Talk in-game: your message should show your rank prefix in color, formatted the way your template says. Switch to a channel and confirm only the right players see it. Trip the filter on purpose (a test spam or a blocked word) and confirm it acts. If prefixes are missing, that's the LuckPerms → Vault → chat-plugin chain, not the chat plugin alone.

Troubleshooting

  • No prefix on messages — the chain is broken somewhere. Confirm LuckPerms has a prefix on the group, Vault is installed, and the chat plugin's format includes the prefix placeholder.
  • Prefix shows as literal {PREFIX} or a raw code — wrong placeholder name for your chat plugin, or Vault missing. Check the plugin's config reference.
  • Colors don't work — either players lack the color permission, or you're mixing &-codes and MiniMessage on a plugin that expects the other. Pick the dialect your plugin uses.
  • Channels leak into each other — a channel isn't configured to be private/local, or a player has a permission that overrides it. Recheck the channel's settings.
  • Bridging chat to Discord — that's a different plugin; see DiscordSRV.

Next steps

Was this guide helpful?