Chat and messaging plugin with MiniMessage layouts, filters, optional local chat, staff tools, bundled polls/ads/announcements/death messages. Paper and Folia 1.21 - 26.x
Support
Report bugs and get support here: https://discord.gg/VvM6k2eBDa
Features
• Folia support – Runs on Folia region scheduling where applicable
• Public chat layout –
formats.yml MiniMessage templates with reusable components (e.g. rank prefix via PlaceholderAPI), optional player-hover on the name, and chat-ranked-formats so the line format can differ by permission (first match wins; chat-format is the fallback)• Join experience – Configurable join/leave lines (with optional ranked formats), MOTD-style login lines, PlaceholderAPI on lines when installed
• Private messaging –
/msg, /reply, receive sound, /ignore stack with optional Redis ignore sync across backends• Mentions –
@ highlights with optional sound, actionbar, and title; per-player toggles via /chatping and /chatsettings• Filters and rules – Cooldown (optional ranked cooldown groups), max length, repeated characters, anti-caps, similarity check; separate chat-rules lists with cancel/replace and staff alerts
• Newbie chat – Optional rate limit for low playtime players
• Local chat – Optional radius-based public chat with a configurable global override prefix
• Staff chat – Dedicated channel (prefix or toggle); optional Redis staff-chat sync
• Moderation and UX – Global mute (
/mutechat, /chatmute), /chatclear, per-player chat hide (/chattoggle), PM spy, command spy with command/player filters• Rich chat – Click-to-
/msg on names (configurable); optional clickable commands and whitelisted links (separate permissions); [item], [inv], [ec], [shulker], and custom bracket renders from renders.yml (permission-gated)• PerfPolls (built-in) –
/poll, /yes, /no with cooldown and duration from config• PerfAd (built-in) –
/ad server-wide formatted broadcast with tiered cooldown and color/format rules from config• PerfAnnouncements (built-in) – Scheduled chat and bossbar announcements;
/announcements player toggle; /perfannouncements admin send/list/preview/reload• PerfDeathMessages (built-in) – Custom death messages from
deathmessages.yml; admin reload/help/stats• Optional integrations – PlaceholderAPI for formats/hover/join lines; PerfVanish hook to hide vanished players from tab completions and mentions; Redis (Jedis) for selected sync features
• Developer API –
PrePublicChatEvent, PrePrivateMessageEvent, and PerfChatAPI helpers for other pluginsPlaceholders
%perfchat_last_reply% – Name of the player you last replied to (empty if none)
%perfchat_chattoggle% –
hidden or visible for per-player chat hide%perfchat_chatping% –
on or off for mention ping preference%perfchat_chat_muted% –
true or false when global chat mute is active%perfchat_ignored_count% – Number of players on your ignore list
%perfchat_staffchat_mode% –
on or off for staff-chat toggle mode%perfannouncements_online% – Current online player count
%perfannouncements_max_players% – Server max players
Commands
/msg (player) (message) – Send a private message (perfchat.msg)
/reply (message) – Reply to the last private message (perfchat.msg)
/ignore (player) – Ignore a player's private messages (perfchat.ignore)
/unignore (player) – Stop ignoring a player (perfchat.ignore)
/ignoreall – Disable all incoming private messages (perfchat.ignore)
/unignoreall – Re-enable private messages (perfchat.ignore)
/chatping – Toggle mention notification behavior (perfchat.chatping)
/chatsettings [sound|mentions|ping] – Open settings GUI or toggle PM sound or mentions (perfchat.chatsettings)
/chattoggle – Toggle public chat visibility for yourself (perfchat.chattoggle)
/mutechat – Mute or unmute global chat (perfchat.mutechat)
/chatmute – Alias for mute/unmute global chat (perfchat.mutechat)
/chatclear – Clear chat for all online players (perfchat.admin)
/staffchat [message] – Staff-only chat line or toggle (perfchat.staffchat)
/spymsg – Toggle private-message spy (perfchat.spymsg)
/spycmd – Toggle command spy (perfchat.spycmd)
/perfchat reload [full|announcements|filters|formats|deathmessages|webhooks|join] – Reload all or one subsystem (perfchat.admin)
/perfchat testfilter (text) – Run the chat filter on sample text as a player (perfchat.admin)
/perfchat broadcast (message) – Broadcast a formatted message to everyone (perfchat.admin)
/perfchat clearchat – Push old public chat off-screen for everyone (perfchat.admin)
/perfchat announcement dispatch (id) [(player)|all] – Run a configured announcement once (perfchat.admin)
/perfchat help – Admin help (perfchat.admin)
/openrender (type) (id) – Internal handler for clickable render links (perfchat.use)
/announcements – Toggle receiving scheduled announcements (perfannouncements.use)
/broadcast (message) – Broadcast a message to all online players (perfchat.broadcast)
/poll (question) – Start a timed poll (perfpolls.use)
/yes – Vote yes on the active poll (perfpolls.vote)
/no – Vote no on the active poll (perfpolls.vote)
/perfpolls reload|help – Reload polls config or show usage (perfpolls.admin)
/ad (message) – Send a formatted advertisement to everyone (perfad.ad, or perfad.ad.admin / perfad.ad.vip / perfad.ad.default for tiers; perfad.ad.bypass or perfad.admin skips cooldown)
/perfad reload|help – Reload ads/polls config or show usage (perfad.admin)
/perfdeathmessages reload|help|stats – Manage death messages subsystem (perfdeathmessages.admin)
/perfannouncements reload|help|list|send [chat|bossbar] (id) [(player)]|send (id) [(player)]|preview [chat|bossbar] (id)|preview (id) – Announcements administration (perfannouncements.admin)
Database
• SQLite
• MySQL
