
Chat Reply
Minecraft keyword auto-reply plugin — when players send specific messages in chat, the server automatically sends configured replies. Supports Paper / Spigot / Folia 1.20+
ChatReply
Minecraft keyword auto-reply plugin — when players send specific messages in chat, the server automatically sends configured replies. Supports Paper / Spigot / Folia 1.20+ with hot reload (no restart required).
Overview
ChatReply is designed for survival, RPG, and minigame servers that need chat interaction, automatic guidance, rule reminders, and VIP-only responses.
Typical use cases:
- Player sends
Helloin public chat -> auto reply:hi, player! - Player sends
help-> private message with rule/help tips - New player joins -> automatic welcome message
- VIP sends
vipkit-> private response + backendgivecommand - Regex match like
price diamond-> auto reply with item price
All keywords and reply texts are stored in replies.yml. After editing, just run /chatreply reload to apply changes immediately (no server restart needed).
Features
Keyword Matching
| Feature | Description |
|---|---|
| Exact Match | Triggers only on exact input (Hello) |
| Contains Match | Triggers when message contains keyword (aaahelpbbb) |
| Regex Match | Supports capture groups, use {1} {2} in replies |
| Case Option | Case-sensitive or case-insensitive |
| Priority | Higher numeric priority wins when rules overlap |
Reply Types
| Type | Description |
|---|---|
CHAT | Public broadcast |
PRIVATE | Private message to trigger player |
ACTION_BAR | Bottom action bar message |
TITLE | Big title + subtitle |
MULTI | Multi-line segmented reply |
Reply audience is configurable too: SELF, ALL, WORLD, RADIUS:20.
Trigger Rules & Limits
- Public / private / both channel triggers
- World whitelist/blacklist and gamemode limits
- Online-player count, time-range, permission conditions
- 3-level cooldown: global / per-player / per-keyword
- Daily and lifetime trigger limits
- Hide or replace original player message
- Sound effects, backend commands, webhook notifications
Management & Operations
- In-game commands + GUI admin panel (
/chatreply gui) - Hot reload by module (
config/replies/lang) - Config import/export backups
- Trigger logs (supports daily rotation)
Compatibility
- Full Folia support
- PlaceholderAPI (soft dependency, optional)
- EssentialsX private message event hook (soft dependency, optional)
Commands
Main command: /chatreply (aliases: /cr, /autoreply)
| Command | Permission | Description |
|---|---|---|
/chatreply reload [all|config|replies|lang] | chatreply.admin.reload | Hot reload |
/chatreply add <keyword> <reply> [options] | chatreply.admin.add | Quickly add a keyword |
/chatreply remove <keyword> | chatreply.admin.remove | Remove a keyword |
/chatreply list | chatreply.admin.list | List all keywords |
/chatreply info <keyword> | chatreply.admin.info | View rule details |
/chatreply group enable/disable <group> | chatreply.admin.group | Toggle a group |
/chatreply test <keyword> [message] | chatreply.admin.test | Simulate trigger (no cooldown cost) |
/chatreply toggle | chatreply.admin.toggle | Enable/disable plugin |
/chatreply export | chatreply.admin.export | Export backup |
/chatreply import <file> | chatreply.admin.import | Import backup |
/chatreply gui | chatreply.admin.gui | Open GUI admin panel |
/chatreply help | — | Show help |
Optional flags for add:
/chatreply add vip &6VIP-only reply --match EXACT --cooldown 60 --perm chatreply.vip
Permissions
| Permission | Default | Description |
|---|---|---|
chatreply.trigger | everyone | Allows triggering auto replies |
chatreply.blacklist | false | If granted, player will never trigger replies |
chatreply.vip | OP | Example permission for VIP keywords |
chatreply.admin.* | OP | All admin permissions |
Placeholders
Available in replies, commands, and replace text:
| Placeholder | Description |
|---|---|
{player} | Player name |
{world} | Current world |
{time} | Server time |
{online} | Online player count |
{x} {y} {z} | Player coordinates |
{1} {2} ... | Regex capture groups |
%placeholder% | PlaceholderAPI placeholders (requires PAPI) |
Reply prefix (reply-format) example:
defaults:
reply-format: "&8[Bot] &r{message}"
Hot Reload
| Command | What it reloads |
|---|---|
/chatreply reload | Everything |
/chatreply reload config | config.yml |
/chatreply reload replies | replies.yml (use this after keyword edits) |
/chatreply reload lang | lang/*.yml |
After editing replies.yml, run reload replies and changes apply instantly.
Config Quick Reference
config.yml
settings:
enabled: true # plugin master switch
language: zh # UI language (zh / en)
update-check:
enabled: true
modrinth-slug: chat-reply
bstats:
enabled: true # bStats switch for this plugin
cooldown:
global-seconds: 0 # global cooldown
player-seconds: 3 # per-player cooldown
notify: true # notify when on cooldown
Common rule fields in replies.yml
keywords:
Example:
match-type: EXACT # EXACT | CONTAINS | REGEX
pattern: "regex here" # used for REGEX
priority: 10
reply-type: CHAT # CHAT | PRIVATE | ACTION_BAR | TITLE | MULTI
reply-audience: ALL # SELF | ALL | WORLD | RADIUS:20
permission: chatreply.vip
cooldown: 60
daily-limit: 3
replies:
- "&aReply content {player}"
- text: "&6Weighted random reply"
weight: 10
commands:
- "give {player} diamond 1"
hide-original: false # hide original player message
See bundled replies.yml for more examples.
Join Welcome
Configure in replies.yml:
join-welcome:
enabled: true
delay-ticks: 40
reply-type: PRIVATE
replies:
- "&aWelcome &f{player} &ato the server!"
