promotional bannermobile promotional banner

AnnounceCraft – Automated Chat Announcements

Automated chat announcements with custom timers, sounds, GUI and PlaceholderAPI support.

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'&gt;&lt;aqua&gt;&lt;underlined&gt;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.

The AnnounceCraft – Automated Chat Announcements Team

RisingBuilder tier frameprofile avatar
  • 4
    Followers
  • 20
    Projects
  • 827.5K
    Downloads

More from kotoritosView all

  • ZERQIUM project image

    ZERQIUM

    Client-side performance mod that measures, diagnoses, and safely optimizes your game — real bottleneck detection, stability-first metrics (1% lows, P99), and automatic fallback if anything goes wrong. No telemetry, no cheats.v

    • 26
    • August 24, 2026
  • EverMoon Core project image

    EverMoon Core

    Cozy core mod for Home Comfort, Well Rested and seamless EverMoon integrations.

    • 19
    • August 20, 2026
  • Pure Xray project image

    Pure Xray

    PureXRay is a lightweight X-Ray resource pack

    • 171.7K
    • August 4, 2026
  • Toggle X-ray project image

    Toggle X-ray

    Press F6 to instantly toggle X-Ray on/off — see all ores and valuable blocks through terrain with zero configuration.

    • 7.9K
    • August 3, 2026
  • ZERQIUM project image

    ZERQIUM

    Client-side performance mod that measures, diagnoses, and safely optimizes your game — real bottleneck detection, stability-first metrics (1% lows, P99), and automatic fallback if anything goes wrong. No telemetry, no cheats.v

    • 26
    • August 24, 2026
  • EverMoon Core project image

    EverMoon Core

    Cozy core mod for Home Comfort, Well Rested and seamless EverMoon integrations.

    • 19
    • August 20, 2026
  • Pure Xray project image

    Pure Xray

    PureXRay is a lightweight X-Ray resource pack

    • 171.7K
    • August 4, 2026
  • Toggle X-ray project image

    Toggle X-ray

    Press F6 to instantly toggle X-Ray on/off — see all ores and valuable blocks through terrain with zero configuration.

    • 7.9K
    • August 3, 2026