Compatibility
Minecraft: Java Edition
Platforms
Tags
Creators
Details
Send automatic messages to your players on a timer — chat announcements, action bar tips, boss bars, and screen titles. Each message type is fully configurable, everything lives in two YAML files, and you don't need to restart the server to apply changes.
Message types
Chat
Sends one or more lines to the chat. Each entry in the text list can be a separate message or combined into one, depending on the split-lines setting. Optional pixel-accurate centering is available with centered: true.
- type: CHAT
text:
- "<gradient:#f0c040:#ff8c00><bold> ★ Welcome to the server! ★ </bold></gradient>"
- "<gray>Currently online: <green>{online}<gray>/<red>{max_online}"
- "<dark_gray>Server TPS: {tps}"
split-lines: true
centered: false
Action bar
Displays text above the hotbar. duration is in ticks — the plugin automatically refreshes it every second so it doesn't disappear mid-display.
- type: ACTIONBAR
text: "<gradient:#00c6ff:#0072ff>⏱ {server_time} | {online}/{max_online} online | TPS: {tps}</gradient>"
duration: 60
Boss bar
Shows a progress bar at the top of the screen. You can configure the color, bar style, fill amount, how long it stays, and how it animates.
- type: BOSSBAR
text: "<red><bold>⚠ PvP is enabled in this area!</bold></red>"
color: RED
style: SEGMENTED_10
progress: 1.0
duration: 8
animation: PULSE
Colors — PINK BLUE RED GREEN YELLOW PURPLE WHITE
Styles — SOLID SEGMENTED_6 SEGMENTED_10 SEGMENTED_12 SEGMENTED_20
Animations:
NONE |
appears and disappears instantly |
FADE_IN |
progress bar fills in from 0 to the configured value |
FADE_OUT |
progress bar drains to 0 before hiding |
PULSE |
oscillates between 40% and 100% fill while visible |
Title & subtitle
Sends a large title and smaller subtitle to the center of the screen. Timing is in ticks (20 ticks = 1 second).
- type: TITLE
title: "<gradient:#a18cd1:#fbc2eb><bold>{player}</bold></gradient>"
subtitle: "<gray>Welcome back. There are <green>{online}</green> players online.</gray>"
fade-in: 20
stay: 70
fade-out: 20
Message groups
Messages are organized into groups. Each group runs its own independent scheduler, meaning they don't interfere with each other and you can have as many as you want.
message-groups:
announcements:
enabled: true
interval: 120 # how often to send, in seconds
random-order: false # cycle in order, or pick randomly
worlds: [] # limit to specific worlds, empty = all
permission-required: "" # only players with this permission receive it
messages:
- ...
- ...
World filtering — list world names to restrict a group to those worlds only. Players in other worlds won't receive the message.
worlds:
- world_nether
- world_the_end
Permission filtering — set permission-required to a permission node. Only players who have that permission will receive the messages from that group. Useful for VIP announcements, staff notices, etc.
permission-required: "server.vip"
Players with automessages.bypass are excluded from all groups regardless of settings.
Formatting
Three formatting systems are supported and can be mixed freely in any message.
Legacy codes — &a green &l bold &r reset and so on.
Hex colors — &#FF5500text
MiniMessage — the full Adventure tag set, including interactive elements:
Colors and gradients:
<#FF5500>text</#FF5500>
<gradient:#f0c040:#ff4500>text</gradient>
<rainbow>text</rainbow>
Decorations:
<bold>, <italic>, <underlined>, <strikethrough>, <obfuscated>
Click events:
<click:open_url:'https://discord.gg/example'>Join Discord</click>
<click:suggest_command:'/vote'>Click to vote</click>
<click:run_command:'/rules'>View rules</click>
<click:copy_to_clipboard:'play.example.com'>Copy IP</click>
Hover tooltips:
<hover:show_text:'<green>Opens the store!'>Store</hover>
Click and hover tags only work in chat messages — they have no effect in action bars, boss bars, or titles.
Placeholders
These are available without any additional plugins:
| Placeholder | Description |
|---|---|
{player} |
Player's username |
{displayname} |
Player's display name |
{online} |
Number of players currently online |
{max_online} |
Server's max player limit |
{world} |
Name of the player's current world |
{server_time} |
Current server time in HH:mm |
{date} |
Current server date in dd.MM.yyyy |
{tps} |
Server TPS, color-coded green/yellow/red |
{ping} |
Player's ping in milliseconds |
{health} / {max_health} |
Player's current and max health |
{level} |
Player's XP level |
{x} {y} {z} |
Player's block coordinates |
If PlaceholderAPI is installed, all %expansion_placeholder% values work automatically — no extra configuration needed.
Commands
| Command | Description |
|---|---|
/am reload |
Reload config.yml and messages.yml without restarting |
/am list |
Show all groups, their interval, message count, and current status |
/am toggle <group> |
Enable or disable a group while the server is running |
/am send <group> |
Send the next message from a group to all players immediately |
/am send <group> <#> |
Send a specific message by index (1-based) |
/am help |
Show command overview |
Aliases: /am, /amsg
Permissions
| Permission | Default | Description |
|---|---|---|
automessages.admin |
op | Full access to all commands |
automessages.reload |
op | /am reload |
automessages.list |
op | /am list |
automessages.toggle |
op | /am toggle |
automessages.send |
op | /am send |
automessages.bypass |
false | Never receives any auto-messages |
Configuration files
Two files are generated on first run inside plugins/AutoMessages/:
config.yml — all message groups, intervals, and plugin-wide settings like prefix, world filters, and console logging.
messages.yml — every system message the plugin sends to players and admins (reload confirmation, toggle feedback, help text, etc.). Fully supports MiniMessage formatting.
Requirements
- PaperMC 1.18 – 1.21.x
- Java 17+
- PlaceholderAPI — optional


