
ZStaffChatPro
The most powerful and customizable staff chat plugin for your server!
Server-side Bridge addon for ZStaffChatPro. Install on Spigot/Paper/Folia backends to enable cross-server vanish sync, AFK detection, and player activity tracking on BungeeCord/Velocity proxies.
Download Here /plugins/zstaffchatpro-bridge-(addon)
What is ZStaffChatPro?
ZStaffChatPro is a powerful and lightweight staff chat plugin designed for Minecraft server networks. It allows your staff team to communicate privately across multiple servers using customizable chat channels. Whether you run a small survival server or a large network with dozens of servers, ZStaffChatPro provides the tools your staff needs to coordinate effectively.
The plugin supports all major server platforms including Spigot, Paper, Folia, BungeeCord, Waterfall, and Velocity. It works on Minecraft versions from 1.8 all the way to the latest 1.21+ releases.
Why Choose ZStaffChatPro?
- Multi-Platform Support - Single plugin works on Spigot, Paper, Folia, BungeeCord, Waterfall, and Velocity
- Unlimited Custom Channels - Create as many staff channels as you need (Admin, Mod, Builder, Helper, etc.)
- Discord Integration - Two modes: Full Bot (bidirectional with embeds) or simple Webhook (one-way with embeds)
- Discord Activity Log - Log staff join/leave/server-change/vanish/AFK events to Discord
- Chat Filter - Built-in anti-bad-words filter with censor and block modes
- Modern Minecraft Support - Full support for 1.8 - 1.21+ including Folia servers
- LuckPerms Integration - Automatic prefix/suffix/rank display from LuckPerms
- Vanish Integration - PremiumVanish & SuperVanish support with activity logging
- HEX Colors & Gradients - Modern color formatting for 1.16+ servers
- Staff Playtime Tracking - Track staff online time with AFK breakdown
- AFK Detection - Automatic AFK detection with configurable timeout
- In-Game Activity Log - Staff join/leave/vanish/AFK notifications in chat channels
- Global Channel Toggle - Admins can globally enable/disable channels at runtime
- Grouped Stafflist - Two stafflist display modes (default comma-separated or grouped)
- Lightweight & Fast - Optimized code with minimal server impact
- Easy Configuration - Simple YAML configuration with extensive documentation
- Auto-Update Config - New config options are automatically added on plugin update
- Global Mode - Optional single channel mode for simpler setups
- Server Aliases - Custom server display names for proxy networks
- bStats Integration - Anonymous plugin statistics
Detailed Features
Unlimited Custom Channels
Create unlimited staff chat channels, each fully customizable with its own settings:
| Option | Description | Example |
|---|---|---|
display-name | Name shown in messages | "Staff", "Admin", "Builder" |
prefix | Prefix before channel messages | "&c[Staff] ", "&4[Admin] " |
permission | Permission required to use the channel | "zstaffchat.staff" |
format | Complete message format with placeholders | "&c[Staff] {player}: {message}" |
command | Main command to send messages | "staffchat", "adminchat" |
aliases | Alternative shorter commands | ["sc", "s"], ["ac", "a"] |
chat-prefix | Quick prefix symbol for fast messaging | "!", "#", "?" |
enabled | Enable or disable the channel | true / false |
priority | Channel priority for stafflist ordering | 1, 2, 3 |
Example Channel Configuration:
channels:
staff:
display-name: "Staff"
prefix: "&c[Staff] "
permission: "zstaffchat.staff"
format: "&c[Staff] &7{player}: &f{message}"
command: "staffchat"
aliases:
- "sc"
chat-prefix: "!"
enabled: true
priority: 2
admin:
display-name: "Admin"
prefix: "&4[Admin] "
permission: "zstaffchat.admin"
format: "&4[Admin] {lp_prefix}&7{player}: &f{message}"
command: "adminchat"
aliases:
- "ac"
chat-prefix: "#"
enabled: true
priority: 1
Format Placeholders
Basic Placeholders:
| Placeholder | Description | Example Output |
|---|---|---|
{player} | Player's name | Steve |
{message} | The message content | Hello team! |
{channel} | Channel display name | Staff |
{prefix} | Channel prefix | [Staff] |
{server} | Server name (proxy only) | Survival |
{server_alias} | Server alias from config (proxy only) | SV |
LuckPerms Placeholders (requires LuckPerms):
| Placeholder | Description | Example Output |
|---|---|---|
{lp_prefix} | Player's LuckPerms prefix | &c[Owner] |
{lp_suffix} | Player's LuckPerms suffix | &7[VIP] |
{lp_group} | Player's primary group name | admin |
{lp_rank} | Player's group display name | Administrator |
Discord Bot Placeholders:
| Placeholder | Description | Example Output |
|---|---|---|
{discord_role} | Discord role prefix (bot mode, to-minecraft) | [Mod] |
Note: The {prefix} placeholder (plugin prefix) is available in all messages.yml messages, so you can move or remove the prefix from any message. Empty {server} placeholders automatically clean surrounding brackets []/() and double spaces.
HEX Color Support (1.16+)
| Type | Format | Example |
|---|---|---|
| Single HEX Color | {#RRGGBB} | {#FF5555}Red text |
| Gradient | {#HEX1>>#HEX2}text{/} | {#FF0000>>#0000FF}✨{/} |
| Legacy Colors | &0-&9, &a-&f | &cRed &aGreen &bAqua |
| Formatting | &l, &o, &n, &m, &k | &lBold &oItalic |
Formatting with HEX colors:
# Bold red text
format: "&l{#FF0000}Bold Red Text"
# Bold gradient
format: "{#FF0000>>#0000FF}&lBold Gradient{/}"
Chat Filter (Anti-Bad-Words)
Built-in configurable chat filter with its own dedicated filter.yml configuration file:
- Two modes:
censor- Replaces matched words with configurable replacements (separate for Minecraft and Discord)block- Prevents the entire message from being sent
- Word list - Simple word list with automatic word-boundary matching (so "bad" won't match "badminton")
- Regex patterns - Raw regex support for advanced filtering
- Case-insensitive matching (configurable)
- Bypass permission - Players with
zstaffchat.filter.bypassskip filtering - Separate replacements - Minecraft uses obfuscated text (
&k), Discord uses spoiler tags (||censored||)
# filter.yml
enabled: true
mode: "censor"
ignore-case: true
censor-replacement-minecraft: "&k{word}&r"
censor-replacement-discord: "||censored||"
words:
- "badword1"
- "badword2"
patterns:
- "\\bd[i!1]ck\\b"
Global Channel Toggle
Administrators can globally enable or disable channels at runtime:
- Command:
/zstaffchat toggle <channel>(permission:zstaffchat.toggle) - Persistent - State is saved to
config.ymland survives restarts - Full blocking - Disabled channels block all messages (commands, chat prefixes, toggle mode)
- Customizable message - Shows configurable
channel-disabledmessage - Tab completion - Auto-completes channel IDs
Staff Playtime Tracking
Track how long your staff members are online:
- Today's playtime - Track daily activity
- Weekly playtime - Track weekly activity
- Total playtime - All-time statistics
- AFK time breakdown - Separate AFK time for today, week, and total
- Permission-based - Only track players with specific permission
- Auto-reset - Daily and weekly counters reset automatically
Commands:
/stafftime- View your own playtime/stafftime <player>- View another player's playtime
AFK Detection
Automatic detection of inactive staff members:
- Configurable timeout - Set AFK threshold (default: 5 minutes)
- AFK prefix & suffix in /stafflist - Customizable AFK indicators before and after player names
- AFK time tracking - Track how long staff is AFK in playtime stats
- Activity detection - Movement and chat activity resets AFK timer
- Manual toggle -
/staffafkcommand for manual AFK toggling - Bridge Addon support - Cross-server AFK detection on proxy networks
afk:
enabled: true
timeout-minutes: 5
Vanish Integration
Full integration with PremiumVanish and SuperVanish:
- Stafflist awareness - Vanished players hidden from those who can't see them, shown to those who can with configurable prefix & suffix
- Activity logging - Vanish/unvanish events logged to Discord and in-game activity log
- Cross-server sync - Bridge Addon syncs vanish status across proxy networks
- Configurable indicators - Customizable
stafflist-vanished-prefixandstafflist-vanished-suffix
Stafflist Display Modes
Two display modes for the /stafflist command (configurable via stafflist-mode):
Default mode - Comma-separated player list:
Staff (2): player1, player2
Admin (1): player3
Grouped mode - Rank as title with players listed individually below:
Staff (2)
player1
player2
Admin (1)
player3
Both modes support:
- LuckPerms prefix/suffix display
- AFK and vanish indicators (prefix & suffix)
- Server name display (proxy)
stafflist-highest-onlyoption to show players only in their highest-priority channel
In-Game Activity Log
Receive staff activity notifications directly in your staff chat channels:
- Events tracked: Join, leave, server change (proxy), vanish/unvanish, AFK status changes
- Channel-based - Notifications appear in the player's highest-priority channel
- Customizable formats - Each event has its own configurable message format
- Configurable sender name - Messages appear as if sent by a configurable name (default: "Information")
- Per-event toggles - Enable or disable each event type individually
ingame-activity-log:
enabled: true
sender-name: "Information"
events:
join: true
leave: true
server-change: true
vanish: true
afk: true
Discord Integration
All Discord configuration is in a dedicated discord.yml file with clear top-level sections: webhook, webhook-activity-log, bot, and bot-activity-log.
Bot Mode (Bidirectional)
Full Discord bot integration with two-way communication:
- Bidirectional messaging - Messages sync both ways (Minecraft ↔ Discord)
- Staff can respond from Discord - Your team can chat from mobile or desktop
- Separate Discord channel per staff channel - Map each Minecraft channel to its own Discord text channel
- Rich embeds - Optional embed messages with customizable color, title, description, footer, thumbnail, author, and timestamp
- Role-based permissions - Restrict who can send messages from Discord using required roles
- Role prefixes - Map Discord roles to in-game prefixes via
{discord_role}placeholder - Bot presence - Configurable status (online/idle/dnd/invisible) and activity (playing/watching/listening/competing)
- Runtime library loading - JDA library downloads automatically (keeps JAR small)
- Bot info in /about - Shows bot name, owner, and connected Discord server name
# discord.yml
mode: "bot"
bot:
token: "YOUR_BOT_TOKEN_HERE"
channels:
staff: "1234567890123456789"
admin: "9876543210987654321"
format-to-discord: "**[{channel}]** {player}: {message}"
format-to-minecraft: "&7[&9Discord&7] &7{player}: &f{message}"
required-roles:
- "Staff"
status: "online"
activity:
type: "watching"
text: "Staff Chat"
embed:
enabled: false
color: "#5865F2"
description: "**{player}**: {message}"
footer: "{channel} | {server}"
Webhook Mode (Simple)
Lightweight one-way integration for basic Discord logging:
- One-way sync - Messages go from Minecraft to Discord only
- No bot setup required - Just create a webhook in Discord
- Per-channel webhooks - Each Minecraft channel can have its own webhook URL
- Rich embeds - Full embed support (color, title, description, footer, thumbnail, author, timestamp)
- Custom bot appearance - Configurable webhook username and avatar
# discord.yml
mode: "webhook"
webhook:
channels:
staff: "https://discord.com/api/webhooks/..."
admin: "https://discord.com/api/webhooks/..."
url: "https://discord.com/api/webhooks/..." # fallback for unmapped channels
username: "StaffChat"
format: "**[{channel}]** {player}: {message}"
embed:
enabled: false
color: "#FF5555"
description: "**{player}**: {message}"
Discord Activity Log
Log staff activity events to Discord (available in both webhook and bot modes):
- Events: Join, leave, server change, vanish/unvanish, AFK status changes
- Per-event toggles - Enable or disable each event type
- Custom formats - Configurable message format per event
- Embed support - Optional embeds with per-event colors (e.g., green for join, red for leave)
- Flexible routing:
- Send to each channel's own webhook/Discord channel
- Send to a dedicated separate webhook/channel
- Or both
# discord.yml (bot mode example)
bot-activity-log:
enabled: true
use-chat-channels: true
separate-channel: ""
events:
join: true
leave: true
server-change: true
vanish: true
afk: true
embed:
enabled: true
join-color: "#00FF00"
leave-color: "#FF0000"
Commands & Permissions
Command Reference
| Command | Aliases | Description | Permission |
|---|---|---|---|
/zstaffchat reload | /zsc reload, /zscp reload | Reload all configuration files | zstaffchat.reload |
/zstaffchat about | /zsc about, /zscp about | Show plugin info, versions, and feature status | zstaffchat.use |
/zstaffchat help | /zsc help, /zscp help | Show available commands and channels | zstaffchat.use |
/zstaffchat toggle <channel> | /zsc toggle, /zscp toggle | Globally enable/disable a channel | zstaffchat.toggle |
/staffspy | - | Toggle spy mode to see all channels | zstaffchat.spy |
/stafflist | - | Show online staff members by channel | zstaffchat.stafflist |
/stafftime | - | View your playtime statistics | zstaffchat.stafftime |
/stafftime <player> | - | View another player's playtime | zstaffchat.stafftime.others |
/staffafk | - | Manually toggle AFK status | zstaffchat.afk |
/<channel> <message> | - | Send message to specific channel | Channel permission |
/<channel> | - | Toggle chat mode for channel | Channel permission |
Default Channel Commands:
/staffchator/sc- Staff channel/adminchator/ac- Admin channel/builderchator/bchat- Builder channel
Permission Reference
| Permission | Description | Default |
|---|---|---|
zstaffchat.use | Access to main /zstaffchat command | OP |
zstaffchat.reload | Reload plugin configuration | OP |
zstaffchat.spy | Use spy mode to see all channels | OP |
zstaffchat.stafflist | View online staff list | OP |
zstaffchat.stafftime | View own playtime statistics | OP |
zstaffchat.stafftime.others | View other players' playtime | OP |
zstaffchat.afk | Manually toggle AFK status | OP |
zstaffchat.toggle | Globally enable/disable channels | OP |
zstaffchat.filter.bypass | Bypass the chat filter | - |
zstaffchat.staff | Access default staff channel | OP |
zstaffchat.admin | Access default admin channel | OP |
zstaffchat.builder | Access default builder channel | OP |
Supported Platforms
| Platform | Minecraft Versions | JAR File | Java |
|---|---|---|---|
| Spigot / Paper | 1.8 - 1.21+ | ZStaffChatPro.jar | Java 8+ |
| Folia | 1.19+ | ZStaffChatPro-Folia.jar | Java 17+ |
| BungeeCord / Waterfall | All versions | ZStaffChatPro.jar | Java 8+ |
| Velocity | 3.0+ | ZStaffChatPro.jar | Java 17+ |
Important Notes:
- The main JAR (
ZStaffChatPro.jar) works on Spigot, Paper, BungeeCord, Waterfall, and Velocity - Folia requires a separate JAR (
ZStaffChatPro-Folia.jar) due to different API requirements - For proxy setups (BungeeCord/Velocity), install the plugin on the proxy server only
- For full proxy features (AFK detection, vanish sync), install the Bridge Addon on backend servers
- HEX colors and gradients require Minecraft 1.16+ clients
Installation Guide
Single Server (Spigot/Paper)
- Download ZStaffChatPro.jar
- Place it in your server's
pluginsfolder - Restart your server
- Edit configuration files in
plugins/ZStaffChatPro/ - Use
/zstaffchat reloadto apply changes
Folia Server
- Download ZStaffChatPro-Folia.jar
- Place it in your server's
pluginsfolder - Restart your server
- Configure as normal
Proxy Network (BungeeCord/Velocity)
- Download ZStaffChatPro.jar
- Place it in your proxy's
pluginsfolder (NOT on backend servers) - Restart your proxy
- Messages will sync across all connected servers automatically
- (Optional) Install the Bridge Addon on backend Spigot/Paper/Folia servers for cross-server vanish sync, AFK detection, and player activity tracking
Configuration Files
After first run, the plugin creates these files in plugins/ZStaffChatPro/:
| File | Purpose |
|---|---|
config.yml | Main configuration (channels, features, AFK, playtime, activity log, server aliases) |
messages.yml | All plugin messages (fully customizable) |
discord.yml | Discord integration (webhook, bot, activity logs) |
filter.yml | Chat filter configuration (word list, regex patterns, modes) |
playtime.json | Staff playtime data (auto-generated, do not edit) |
Feature Comparison
| Feature | ZStaffChatPro | Other Plugins |
|---|---|---|
| Unlimited Channels | Yes | Usually 1-3 |
| Multi-Platform | 6 Platforms | Usually 1-2 |
| Discord Bot (Bidirectional) | Yes + Embeds | Rare/Paid |
| Discord Webhook | Yes + Embeds | Sometimes |
| Discord Activity Log | Yes (Both Modes) | No |
| Chat Filter | Yes (Censor + Block) | No |
| LuckPerms Support | Full (4 placeholders) | Limited |
| HEX Colors | Yes + Gradients | Sometimes |
| Folia Support | Native | Very Rare |
| Quick Prefixes | Per Channel | Global Only |
| Toggle Mode | Yes | Sometimes |
| Spy Mode | Yes | Sometimes |
| Global Channel Toggle | Yes (Persistent) | No |
| Auto-Update Config | Yes | No |
| Staff Playtime | Yes + AFK breakdown | Rare |
| AFK Detection | Yes + Cross-Server | No |
| Vanish Integration | PremiumVanish + SuperVanish | Rare |
| In-Game Activity Log | Yes (5 event types) | No |
| Grouped Stafflist | Yes (2 modes) | No |
| Server Aliases | Yes | Rare |
| Bridge Addon (Proxy) | Yes | No |
Plugin Statistics
Thank you for choosing ZStaffChatPro!
Professional staff communication for professional servers.

