AnnounceCraft
Automated Chat Announcements for Minecraft Servers
AnnounceCraft is a lightweight and highly customizable Bukkit plugin designed to automate server announcements without making configuration complicated.
Create professional chat announcements for your Discord, server store, VIP ranks, voting links, rules, events, websites, community messages and more.
Every announcement has its own independent timer, can play custom Minecraft sounds and can use MiniMessage formatting and PlaceholderAPI placeholders.
Server administrators can quickly enable or disable announcements through a clean in-game GUI, while all actual announcement content remains safely managed through easy-to-understand YAML configuration files.
✨ Features
📢 Independent Automatic Announcements
Every announcement runs on its own timer.
You are not forced to use one global interval for every message.
For example:
discord:
interval: 10m
store:
interval: 15m
vote:
interval: 20m
This means your Discord announcement can appear every 10 minutes while your store announcement appears every 15 minutes and voting reminders every 20 minutes.
Each announcement can also have its own initial delay, preventing multiple messages from appearing immediately after the server starts.
🔊 Custom Announcement Sounds
Announcements can play a Minecraft sound when they are displayed.
Each announcement can have its own:
- Sound
- Volume
- Pitch
- Sound enabled/disabled state
Example:
sound:
enabled: true
type: "BLOCK_NOTE_BLOCK_PLING"
volume: 0.8
pitch: 1.2
AnnounceCraft also supports random sounds, allowing an announcement to choose from multiple configured sounds.
sound:
enabled: true
mode: random
sounds:
- "BLOCK_NOTE_BLOCK_PLING"
- "BLOCK_NOTE_BLOCK_CHIME"
- "ENTITY_EXPERIENCE_ORB_PICKUP"
volume: 0.8
pitch: 1.0
Players who have announcements disabled will not receive the message or its sound.
🎨 MiniMessage Support
AnnounceCraft supports modern MiniMessage formatting, allowing server owners to create much more attractive announcements than traditional color-code messages.
You can use features such as:
- Colors
- Gradients
- Bold text
- Italic text
- Underlined text
- Hover text
- Clickable URLs
- Clickable commands
- Multiple message lines
Example:
message:
- ""
- "<gradient:#5865F2:#7289DA><bold>DISCORD</bold></gradient>"
- "<gray>Join our community and stay updated!</gray>"
- "<click:open_url:'https://discord.gg/example'><aqua><underlined>Click here to join our Discord</underlined></aqua></click>"
- ""
🧩 PlaceholderAPI Support
PlaceholderAPI is fully supported as an optional dependency.
If PlaceholderAPI is installed, AnnounceCraft can process placeholders individually for every player.
Example:
message:
- "<yellow>Hello %player_name%!</yellow>"
- "<gray>There are currently <green>%server_online%</green> players online.</gray>"
If PlaceholderAPI is not installed, AnnounceCraft will continue working normally.
AnnounceCraft Placeholders
AnnounceCraft also provides its own PlaceholderAPI expansion.
This allows other plugins such as scoreboards, holograms, TAB systems and menus to display information directly from AnnounceCraft.
Available AnnounceCraft placeholders include:
%announcecraft_version%
%announcecraft_status%
%announcecraft_total_announcements%
%announcecraft_enabled_announcements%
%announcecraft_disabled_announcements%
%announcecraft_next_announcement%
%announcecraft_next_announcement_id%
%announcecraft_next_announcement_in%
%announcecraft_player_announcements%
%announcecraft_player_can_toggle%
Information about individual announcements can also be retrieved:
%announcecraft_announcement_<id>_status%
%announcecraft_announcement_<id>_interval%
%announcecraft_announcement_<id>_next%
%announcecraft_announcement_<id>_sound%
For example:
%announcecraft_announcement_discord_status%
%announcecraft_announcement_discord_next%
This makes AnnounceCraft easy to integrate into the rest of your server.
🖥️ Admin Announcement GUI
Administrators can use:
/announcements
to open the AnnounceCraft management GUI.
Aliases are also available:
/announcecraft
/acraft
The GUI is intentionally focused on management rather than editing.
Administrators can:
- View configured announcements
- See whether an announcement is enabled or disabled
- See its interval
- See its configured sound
- See when it will be broadcast next
- Enable an announcement
- Disable an announcement
- Navigate through multiple pages
- Reload the plugin configuration
Announcement text is edited exclusively through the configuration files.
This keeps advanced MiniMessage formatting clean and prevents complicated chat-based editors.
⏱️ Smart Scheduling
AnnounceCraft keeps track of every announcement independently.
The GUI can display information such as:
Discord
Status: Enabled
Interval: 10 minutes
Next: 4m 32s
Sound:
BLOCK_NOTE_BLOCK_PLING
AnnounceCraft also includes protection against announcement spam.
A configurable minimum gap can prevent two announcements from being sent at the same time.
Example:
# Minimum amount of time between different announcements.
minimum-gap-between-announcements: 30s
If multiple announcements become ready at the same moment, AnnounceCraft safely spaces them apart.
Missed announcements are not stacked up and spammed later.
👥 Minimum Player Requirements
Individual announcements can require a minimum number of online players.
Example:
conditions:
minimum-players: 5
If there are fewer than five players online when that announcement is scheduled, the announcement is skipped for that cycle.
It will simply be checked again at its next scheduled interval.
🌍 Per-World Announcements
Announcements can be controlled by world.
Available modes include:
ALL
WHITELIST
BLACKLIST
Example:
worlds:
mode: "BLACKLIST"
list:
- "auth"
- "limbo"
This can prevent announcements from being displayed in authentication worlds, lobbies, event worlds or any other areas where they are not wanted.
🚪 Player Join Protection
AnnounceCraft can prevent players from receiving advertisements immediately after joining the server.
Example:
# Minimum amount of time a player must be online
# before receiving automatic announcements.
player-join-delay: 30s
This creates a cleaner joining experience and prevents new players from immediately being greeted by promotional messages.
⭐ VIP Announcement Toggle
Servers can allow selected players, such as VIP members, to disable automatic announcements.
Players with:
announcecraft.toggle
can use:
/announcements off
to stop receiving announcements.
They can enable them again with:
/announcements on
Their preference is stored persistently.
If a VIP disables announcements, their choice remains disabled after reconnecting or after the server restarts until they manually enable announcements again.
Normal players without the toggle permission cannot disable server announcements.
🛠️ Administration Commands
Open the management GUI
/announcements
Disable personal announcements
/announcements off
Enable personal announcements
/announcements on
Reload AnnounceCraft
/announcements reload
Test an announcement
/announcements test <announcement>
Testing an announcement displays it only to the administrator running the command.
The test includes the real:
- Message
- MiniMessage formatting
- PlaceholderAPI placeholders
- Click and hover events
- Sound
This allows administrators to edit an announcement, reload AnnounceCraft and immediately test the result without waiting for its normal timer.
Validate the configuration
/announcements validate
AnnounceCraft checks the configuration and reports problems such as invalid intervals, invalid sounds or incorrectly configured announcements.
Example:
AnnounceCraft Configuration Check
✓ discord
✓ store
✓ vote
✗ events
Invalid sound: BLOCK_RANDOM_SOUND
3 valid announcements
1 announcement with errors
⌨️ Tab Completion
AnnounceCraft provides tab completion for its commands.
For example:
/announcements t
can suggest:
test
and:
/announcements test d
can suggest configured announcement IDs such as:
discord
🔐 Permissions
Main permissions:
announcecraft.admin
announcecraft.toggle
announcecraft.receive
Administrative command permissions:
announcecraft.command.gui
announcecraft.command.reload
announcecraft.command.test
announcecraft.command.validate
announcecraft.admin provides access to all AnnounceCraft administrative functionality.
A simple permissions setup can therefore look like:
Administrator:
announcecraft.admin
VIP:
announcecraft.toggle
📁 Clean Configuration Structure
AnnounceCraft keeps configuration organized across separate files:
plugins/AnnounceCraft/
├── config.yml
├── announcements.yml
├── messages.yml
└── data/
└── players.yml
config.yml
Controls global AnnounceCraft behavior.
announcements.yml
Contains all automatic announcements, timers, sounds and announcement-specific conditions.
messages.yml
Contains customizable plugin messages.
data/players.yml
Automatically stores persistent player announcement preferences.
This file is managed by AnnounceCraft and normally does not need to be edited manually.
📝 Fully Commented Configuration Files
AnnounceCraft is designed to be understandable even without external documentation.
Editable configuration files include detailed # comments explaining:
- What every option does
- Available values
- Recommended values
- Time formats
- Sound examples
- MiniMessage support
- PlaceholderAPI support
- World filtering
- Player requirements
- Announcement scheduling
Example:
# How often this announcement should be broadcast.
#
# Examples:
# 30s = every 30 seconds
# 5m = every 5 minutes
# 1h = every hour
interval: 10m
You should not have to guess what an option does.
🛡️ Safe Configuration Handling
AnnounceCraft is designed to protect customized configuration files.
Configuration files are not unnecessarily overwritten.
When an administrator enables or disables an announcement through the GUI, AnnounceCraft only changes the required setting while preserving the rest of the configuration whenever possible.
Invalid announcements are handled independently.
A broken announcement should not prevent every other valid announcement from working.
For example:
[AnnounceCraft] Invalid interval 'example' in announcement 'discord'.
[AnnounceCraft] The announcement has been skipped.
The plugin continues running normally.
📦 Included Announcement Examples
AnnounceCraft comes with ready-made examples that can be edited, disabled or removed.
Examples include announcements for:
- Discord
- Server Store
- VIP Ranks
- Voting
- Server Rules
- Website
- Events
- Community
- Server Tips
The included examples also demonstrate different AnnounceCraft features such as clickable links, hover events, PlaceholderAPI and sounds.
A disabled advanced example is included to demonstrate multiple features in one announcement.
🐛 Debug Mode
Detailed console logging is disabled by default.
# Enables detailed troubleshooting information.
# Keep this disabled during normal server operation.
debug: false
When enabled, debug mode can provide additional information about scheduling, skipped announcements and configuration processing.
Normal operation keeps console output clean.
🔒 Privacy
AnnounceCraft does not include telemetry or analytics.
It does not collect:
- Server IP addresses
- Player information
- Player names
- Announcement contents
- Configuration contents
- Usage statistics
AnnounceCraft also does not perform automatic update checks or automatically download external files.
Your server data stays on your server.

