RPChatPlus A feature-rich roleplay chat plugin with PlaceholderAPI, Vault & EssentialsX support
Paper / Spigot · Java 17+ · v2.0.0
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
▌ Overview
RPChatPlus started as a small quality-of-life chat plugin for roleplay servers and grew into something much more complete. It handles your entire chat pipeline — from global announcements to whispered emotes — without needing three other plugins to fill the gaps.
Every format string supports
PlaceholderAPI out of the box. Vault prefix/suffix is pulled automatically.
EssentialsX mutes, vanish, and ignore lists are all respected without any extra configuration. If you don't have any of those installed, the plugin runs perfectly fine on its own.
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
▌ Features
Four chat channels — Global, Local (radius-based), Staff, and Roleplay
PlaceholderAPI — drop any %placeholder% directly into your format strings
Vault — prefix and suffix pulled from any Vault-compatible permissions plugin
EssentialsX — respects server mutes, vanish status, and ignore lists
Private messaging — /msg and /r (reply), spied on by staff with spy mode
Chat spy — staff silently monitor every channel without leaving their own
Mentions — @PlayerName highlights the token and plays a ping sound to the recipient
Anti-spam — configurable flood protection and duplicate-message blocking
Per-channel cooldowns — throttle chat frequency on a per-channel basis
Channel mutes — mute a player in one specific channel, with optional expiry time
Color codes — players with rpchatplus.color can use & codes and hex &#rrggbb
Persistent preferences — active channel and spy state survive server restarts (SQLite)
Tab completion — every command and sub-command has context-aware suggestions
Hot reload — /rpc reload refreshes both config and messages without a restart
Fully translatable — every user-facing string is in messages.yml
Running a channel command with
no arguments (e.g.
/global)
toggles your active channel. Every message you type goes there until you switch.
Running it
with a message (e.g.
/global Hey everyone!) sends a
one-off message to that channel without changing your active mode. Handy for a quick staff reply without leaving your RP channel.