COWMODSКаталог модов

Ultimate Broadcast

High-performance announcements for Paper, Purpur & Folia: per-player subscriptions, Discord mirroring, scheduling, countdowns, 5 channels, MiniMessage and zero main-thread SQL. 1.21-26.3.

Автор: Hyper-Mayank9092обновлён 24 окт. 2026 г.
УправлениеОбщениеУтилиты

Описание

Ultimate Broadcast

📢 Ultimate Broadcast

The announcement platform that players don't hate. A high-performance broadcast plugin for Paper, Purpur and Folia with per-player subscriptions, Discord mirroring, scheduled announcements, countdowns and five delivery channels — all driven by MiniMessage and a fully asynchronous storage engine.

v2.4.0 is a rescue release. Versions 2.1.0–2.3.0 shipped a malformed config.yml that could stop the plugin from enabling on a fresh install, and their newest builds were not listed for Minecraft 1.21.5+. 2.4.0 fixes both, repairs existing configs automatically and restores support for every version from 1.21 to 26.3.


✨ Why servers switch to Ultimate Broadcast

🔔 Players control what they receive

The number one complaint about announcement plugins is spam. Ultimate Broadcast ships a real subscription centre:

  • /broadcast toggle — master switch, instantly respected by the scheduler.
  • /broadcast settings — a clean GUI with one toggle per category.
  • Categories are configurable (announcements, events, tips, promotions, social).
  • Preferences persist in SQLite/MySQL and survive restarts.
  • Opted-out players are skipped before a single message is rendered, so you don't pay for players who don't want the message.

💬 Discord mirroring without a bot

Mirror announcements to a Discord channel through a webhook — no bot token, no Node.js process, no extra plugin. Delivery runs on its own daemon thread with rate-limit handling and retries, and can be limited to manual, scheduled, random or countdown messages.

🧵 True Folia support

Folia has no global main thread. Ultimate Broadcast detects Folia at runtime and routes work through the global region scheduler, async scheduler and per-entity scheduler — verified on Folia 26.3. On Paper the same code uses the standard scheduler, so one jar covers both.

⚡ Zero main-thread SQL

Every history, statistics and preference write is queued on a single background thread. No INSERT ever runs inside a tick, even when the scheduler fires on a full server. SQLite uses WAL + a single writer, which removes the database is locked errors that plague broadcast plugins under load.

🎨 Five channels, one syntax

chat, actionbar, title, subtitle and bossbar all accept the same MiniMessage/legacy input:

/broadcast send title <gradient:#8B5CF6:#22D3EE><bold>Double XP Weekend</bold></gradient>
/broadcast send bossbar &eRestart in 5 minutes
/broadcast send actionbar <yellow>%player%<gray>, vote for rewards!

🧠 Smart delivery guard

  • Duplicate messages inside a configurable window are dropped (proxy echo protection).
  • A hard per-second cap stops announcement loops.
  • Sounds and particles are skipped automatically when TPS drops below your threshold.
  • Minimum-player rules keep small servers quiet.
  • Per-player cooldowns on scheduled entries.

🩹 Config that repairs itself

If config.yml is invalid — including the exact indentation bug shipped in 2.1.0–2.3.0 — the plugin backs the file up, fixes it, and continues starting. Legacy settings.database / countdown.database keys are migrated in memory. No more "plugin disabled itself after update".


🚀 Feature tour

AreaWhat you get
ChannelsChat, action bar, title, subtitle, boss bar
SchedulingInterval or HH:MM time-of-day, sub-messages, per-player cooldowns, weighted random pool
TargetingAll, world, permission, world list, permission list
FormattingMiniMessage + legacy & codes + &#RRGGBB hex in the same string
PlaceholdersBuilt-in %player%, %online%, %world%, %time%, %ping% and full PlaceholderAPI support per recipient
PersistenceSQLite or MySQL, asynchronous writes, automatic history pruning
SafetyDuplicate window, rate cap, TPS-aware effects, subscription filtering
Operations/broadcast stats, history, scheduled list, safe reload, debug reasons
IntegrationsPlaceholderAPI, Discord webhooks, BungeeCord/Velocity plugin messaging
PlatformsPaper, Purpur, Folia — Minecraft 1.21 → 26.3, Java 21+

📋 Commands

CommandDescriptionPermission
/broadcast <message>Send a chat announcementultimatebroadcast.use
/broadcast send <channel> <message>Send via chat, actionbar, title, subtitle or bossbarultimatebroadcast.admin
/broadcast preview <message>Preview exactly what players will seeultimatebroadcast.preview
/broadcast toggle [category]Opt out of one category or everythingultimatebroadcast.receive.toggle
/broadcast settingsOpen the personal subscription GUIultimatebroadcast.receive.toggle
/broadcast schedule <minutes> <message>Repeat a message until restartultimatebroadcast.admin
/broadcast listList scheduled entries and their next runultimatebroadcast.admin
/broadcast cancel <id>Cancel a scheduled entryultimatebroadcast.admin
/broadcast countdown <seconds> <message> [--type]Live countdown in any channelultimatebroadcast.admin
/broadcast historyLast 20 delivered announcementsultimatebroadcast.history
/broadcast statsDelivery, duplicate and storage statisticsultimatebroadcast.admin
/broadcast guiAdmin control panelultimatebroadcast.admin
/broadcast discord testVerify the webhookultimatebroadcast.admin
/broadcast reloadReload configuration safelyultimatebroadcast.admin

Aliases: /b, /bc.


🔐 Permissions

PermissionDefaultDescription
ultimatebroadcast.useopSend chat announcements
ultimatebroadcast.adminopScheduling, GUI, stats, reload
ultimatebroadcast.previewopPreview messages
ultimatebroadcast.historyopView history
ultimatebroadcast.bypass.cooldownopIgnore the command cooldown
ultimatebroadcast.receivetrueReceive announcements
ultimatebroadcast.receive.toggletrueOpen the subscription menu
ultimatebroadcast.category.<id>trueReceive a specific category

Upgrade note: ultimatebroadcast.use now defaults to op. In 2.x it defaulted to true, which allowed any player to broadcast on servers that never changed it. Grant the node explicitly if you want player broadcasts.


⚙️ Configuration example

delivery:
  min-players: 0
  dedupe-window-seconds: 8
  max-per-second: 3
  low-tps-threshold: 15.0
  skip-effects-on-low-tps: true

categories:
  announcements:
    display: "<gradient:#8B5CF6:#22D3EE><bold>Announcements</bold></gradient>"
    default: true
  events:
    display: "<gradient:#F59E0B:#EF4444><bold>Events</bold></gradient>"
    default: true

scheduler:
  broadcasts:
    - id: "discord"
      enabled: true
      interval: 15
      category: "social"
      message: "<aqua>Join our Discord: <white>discord.gg/example</white></aqua>"
      broadcast-to: "all"
      cooldown-per-player: 900

integrations:
  discord:
    enabled: true
    webhook-url: "https://discord.com/api/webhooks/..."
    events: [manual, scheduled]

Messages accept MiniMessage, legacy codes and hex:

<gradient:#FFD700:#FFAA00><bold>Welcome to the server!</bold></gradient>
&aGreen legacy text &#FF55FF and hex

🧪 Verified compatibility

PlatformVersionResult
Paper1.21.4✅ enabled, all 5 channels delivered
Paper26.3✅ enabled, all 5 channels delivered
Folia26.3✅ enabled, region scheduler active

Requires Java 21+ (Minecraft 26.x itself requires Java 25).


❓ FAQ

Will my 2.x config break? No. Legacy keys are migrated in memory and invalid YAML is repaired with a timestamped backup. Comments in your file are preserved.

Does it work on Spigot? No. Ultimate Broadcast uses the Adventure API for hex gradients and titles, which Spigot does not provide. The 2.x listings that claimed Spigot support could not actually enable on Spigot; 2.4.0 lists Paper, Purpur and Folia so the download button tells the truth.

Why did my old version stop appearing on 1.21.9? 2.1.0–2.3.0 were published with an incomplete game_versions list. 2.4.0 is listed for 1.21 → 26.3.

How do I report a bug? Open an issue on the project's Modrinth page with your server version, plugin version and latest.log.


Built for server owners who care about TPS, and players who care about their chat.

Галерея

Welcome Broadcast (configurable)

Последние версии

Все версии →
release

Ultimate Broadcast 2.4.0 - Subscriptions, Discord & True Folia

2.4.0
24 окт. 2026 г.42Minecraft: 1.21, 1.21.1, 1.21.2, 1.21.3, 1.21.4, 1.21.5, 1.21.6, 1.21.7, 1.21.8, 1.21.9, 1.21.10, 1.21.11, 26.1, 26.1.1, 26.1.2, 26.2, 26.3folia, paper, purpur
Скачать
Что нового
# Ultimate Broadcast 2.4.0 — the rescue release > This update fixes the two reasons 2.1.0–2.3.0 lost most of their downloads: **a broken default config that could stop the plugin from starting**, and **missing Minecraft version tags** that hid the newest builds from 1.21.5+ servers. It also adds the features players and server owners actually asked for. --- ## 🔥 Critical fixes ### The plugin could fail to start on a fresh install `config.yml` shipped in 2.1.0–2.3.0 had `gui.title` indented with **three spaces** while its siblings used two. Bukkit refuses to parse that file, so the plugin could disable itself on first start — which is why 2.1.0 only ever reached a handful of downloads while 2.0.2 kept being downloaded. **2.4.0:** * ships a valid configuration, * detects the exact broken layout on existing installs, * writes a timestamped backup (`config.backup-<date>.yml`), * repairs the indentation in place, * and starts normally. Your comments and custom values are preserved — the file is fixed, not replaced. ### The newest builds were invisible on modern Minecraft 2.3.0 was published with `game_versions` ending at **1.21.4**, even though 2.0.2 supported up to 1.21.11. Servers on 1.21.5–26.3 could not install the newer version at all. **2.4.0 is listed for every version from 1.21 through 26.3**, verified on Paper 1.21.4, Paper 26.3 and Folia 26.3. --- ## 🛠 Other bugs fixed | Bug | Impact | Fix | | --- | --- | --- | | `Sound.valueOf(...)` used at runtime | On 1.21.4+ `Sound` became an interface, so the call throws `NoSuchMethodError` and sounds break | Registry-based resolver with enum fallback and a per-name cache | | MySQL schema used `AUTOINCREMENT` and SQLite-only `ON CONFLICT` | "MySQL support" could never create its tables | Dialect-aware DDL, portable upserts, epoch-millis timestamps | | SQLite driver class pointed at a relocated package | Database could silently stay uninitialised | Storage rewritten without shading/relocation, verified on startup | | GUI listener cancelled **every** inventory click on the server | Players could not use any other plugin's GUI | Clicks are only handled when our own `InventoryHolder` is open | | GUI item names were `Component.toString()` dumps | Menus displayed `TextComponentImpl{...}` garbage | Real Adventure components for titles, names and lore | | Scheduled entries were loaded from config **and** database | Every reload duplicated announcements | Config is the single source of truth | | `random-messages.interval-minutes` and per-message `weight` ignored | Random pool fired on the scheduler interval and picked uniformly | Dedicated weighted rotation on its own interval | | PlaceholderAPI only applied when a sender existed | `%player%`/PAPI placeholders were never resolved in scheduled messages | Rendered per recipient, for every source | | Countdown/actionbar required a player sender | Console could not start a countdown | Works from console | | Titles used legacy strings | Hex gradients turned into `§x` gibberish | Adventure `Title` with full RGB | | Network relay re-broadcast its own messages | Duplicate announcements across servers | Message IDs with a dedupe window | | SQL ran on the server thread | TPS spikes when history/preferences were written | Single background writer thread | --- ## ✨ New features ### 🔔 Player subscription centre * `/broadcast toggle` — master opt-out. * `/broadcast toggle events` — per-category opt-out. * `/broadcast settings` — GUI with a toggle per category. * Configurable categories with display names, descriptions, default state and permission. * Preferences stored in SQLite/MySQL and loaded asynchronously on join. * Filtering happens **before** rendering, so opted-out players cost nothing. ### 💬 Discord mirroring (no bot required) * Webhook-based, runs on its own daemon thread. * Rate-limit aware, retries transient failures, respects `429`. * Choose which events mirror: `manual`, `scheduled`, `random`, `countdown`. * Configurable username, avatar, colour, footer and optional `@everyone` for manual broadcasts. * `/broadcast discord test` verifies the setup. ### 🎛 Five delivery channels `/broadcast send <chat|actionbar|title|subtitle|bossbar> <message>` — plus the legacy `/broadcast title`, `/broadcast actionbar` shortcuts. ### 🧵 True Folia support * Runtime Folia detection. * Global region scheduler for timers, async scheduler for storage, per-entity scheduler for player messages. * Verified on Folia 26.3: timers fire on the region scheduler and messages are dispatched per player. ### 🧠 Delivery guard * Duplicate window (proxy echo protection). * Hard per-second cap. * TPS-aware effects (chat still sends, sounds/particles pause). * Minimum-player rule. * Per-player cooldowns for scheduled entries. ### ⚙️ Operations * `/broadcast stats` — totals, players reached, duplicate drops, storage backend, Discord health, live TPS. * `/broadcast history` — last 20 announcements from the database. * `/broadcast list` — next run time for every scheduled entry. * `settings.debug: true` logs exactly why an announcement was skipped. * Safe `/broadcast reload` that restarts schedulers without duplicating tasks. ### 🔌 PlaceholderAPI New placeholders, all served from memory: `%ultimatebroadcast_total%`, `%ultimatebroadcast_scheduled%`, `%ultimatebroadcast_delivered%`, `%ultimatebroadcast_duplicates%`, `%ultimatebroadcast_enabled%`, `%ultimatebroadcast_cooldown%`, `%ultimatebroadcast_subscribed_<category>%`. --- ## ⚡ Performance & reliability * **No SQL on the server thread.** History, stats and preferences are queued to a single daemon writer; SQLite runs in WAL mode with a single writer, eliminating `database is locked` under load. * **Messages without placeholders are parsed once per broadcast**, not once per player. * **One 1-second ticker** replaces one Bukkit task per scheduled entry; intervals no longer drift and `/reload` cannot pile up duplicate tasks. * **Sound and particle lookups are cached** after the first resolve. * **Effects back off automatically** below your TPS threshold. * **History is pruned automatically** to `settings.history-limit`. --- ## 🧩 Compatibility | | | | --- | --- | | Minecraft | 1.21, 1.21.1–1.21.11, 26.1, 26.1.1, 26.1.2, 26.2, 26.3 | | Platforms | Paper, Purpur, Folia | | Java | 21+ (26.x servers require Java 25, as always) | | Optional | PlaceholderAPI | **Verified during this release:** Paper 1.21.4 (Java 21), Paper 26.3 (Java 25), Folia 26.3 (Java 25) — plugin enabled, all five channels delivered, scheduler fired, database writes confirmed. **Spigot/Bukkit are no longer listed.** The plugin uses Adventure components for hex colours and titles, which Spigot does not provide; the 2.x Spigot listing could not actually enable. Listing only Paper/Purpur/Folia keeps the download button honest. --- ## ⬆️ Upgrading from 2.x 1. Drop the new jar in `plugins/` and restart. 2. Your config is migrated automatically: * invalid YAML is repaired (with a backup), * `settings.database` / `countdown.database` move to the new top-level `database` section in memory, * `settings.bungeecord-support` and `settings.cross-server-channel` map to the new `network` section. 3. The old `minecraft.db` SQLite file is renamed to `broadcast.db` — data is preserved. 4. **Permission change:** `ultimatebroadcast.use` now defaults to **op** (2.x defaulted to true, letting any player broadcast). Grant it explicitly to staff or VIP ranks if needed. 5. `/broadcast enable|disable` is now a runtime switch and no longer rewrites `config.yml`. No config keys were removed. Old `gui.items`, `scheduler.broadcasts`, `template`, `countdown` and `default-*` sections keep working. --- ## 📦 Technical details * Build: Java 21 target, Paper API 1.21, shaded SQLite + MySQL drivers, no external plugin dependencies. * Storage tables: `broadcast_history`, `broadcast_stats`, `broadcast_preferences`. * All three tables are created automatically on both SQLite and MySQL. --- *If 2.1–2.3 broke your server: sorry. 2.4.0 is the version that should have shipped. Please open an issue with your log if anything still misbehaves.*
release

Broadcast 2.3.0 - Clickable Links & Alert System

2.3.0
1 окт. 2026 г.24Minecraft: 1.20, 1.20.1, 1.20.2, 1.20.3, 1.20.4, 1.20.5, 1.20.6, 1.21, 1.21.1, 1.21.2, 1.21.3, 1.21.4bukkit, folia, paper, purpur, spigot
Скачать
Что нового
# 📢 Ultimate Broadcast v2.3.0 — Clickable URLs, Hover Tooltips & Alert System! This major feature update transforms Ultimate Broadcast into a fully interactive communication suite for modern Minecraft networks. ### 🌟 New Features & Enhancements - **🔗 Interactive Clickable Links & Hover Events**: - Embed clickable URLs using `[url=https://...]Text[/url]`. - Embed clickable command executors using `[run=/cmd]Text[/run]` or suggestions using `[suggest=/cmd]Text[/suggest]`. - Add interactive tooltips on mouse hover using `[hover=Tooltip Text]Text[/hover]`. - Full native Adventure MiniMessage tag parsing. - **🔕 Player Broadcast Mute (`/ub mute`)**: - Players can now toggle automatic chat broadcast notifications on/off for themselves. - Persistent preference storage in `mutes.yml`. - **🚨 Emergency Server Alert (`/ub alert <message>`)**: - Staff emergency broadcast with audible alert chime and prominent warning border, bypassing player mutes. - **🗺️ Multi-World Filtering**: - Targeted broadcasts now respect `/ub send world <world> <message>`. - **🛡️ Full Compatibility**: - Tested and verified on Paper, Spigot, Purpur, and Folia 1.20 - 1.21.4 (verified on Paper 26.3).
release

Ultimate Broadcast v2.2.0 - Sound & History

2.2.0
1 окт. 2026 г.31Minecraft: 1.20, 1.20.1, 1.20.2, 1.20.3, 1.20.4, 1.20.5, 1.20.6, 1.21, 1.21.1, 1.21.2, 1.21.3, 1.21.4, 26.3bukkit, folia, paper, purpur, spigot
Скачать
Что нового
### 📢 Ultimate Broadcast v2.2.0 — Sound Alerts, Command Fixes & Broadcast History #### 🌟 What's New & Fixed in v2.2.0: - **Audio Chime & Sound Broadcasts**: - Configurable broadcast sound alert chime with toggle and custom sound key (`sound.enabled`, `sound.type: BLOCK_NOTE_BLOCK_BELL`). - Added `/ub send sound <sound> [volume] [pitch]` to broadcast immersive audio events server-wide. - **Broadcast History Tracking**: - Added new in-memory broadcast history tracking (`BroadcastHistoryManager`). - Added `/ub history` to inspect recent broadcasts with timestamps, sender, and broadcast type. - **Fixed Missing Subcommands**: - Fully implemented missing `/ub send chat <msg>` and `/ub send actionbar <msg>` subcommands in command dispatcher. - **Modern HEX Color Parsing**: - Enhanced `&#RRGGBB` and `<#RRGGBB>` regex color converter to guarantee seamless Adventure format rendering across modern Paper, Purpur, and Folia engines. - **Minecraft 26.3 & Folia Verified**: - Fully tested and verified on Paper 26.3 (Java 25 LTS).
release

Ultimate Broadcast v2.1.0 - Memory Leak Fix & Foli

2.1.0
30 сент. 2026 г.6Minecraft: 1.20, 1.20.1, 1.20.2, 1.20.3, 1.20.4, 1.20.5, 1.20.6, 1.21, 1.21.1, 1.21.2, 1.21.3, 1.21.4bukkit, folia, paper, purpur, spigot
Скачать
Что нового
### 📢 Ultimate Broadcast v2.1.0 Release Notes **Performance & Modern Architecture Update** - **Memory Leak Fix**: Implemented automatic BossBar and timer task cleanup upon player disconnect (PlayerQuitEvent), preventing memory bloat and stale bossbar references on long-running servers. - **Enhanced Scheduling Stability**: Refactored internal schedule & timer toggles with defensive null safety and explicit lifecycle cleanup on server shutdown/reload. - **Minecraft 1.20 - 1.21.4 Compatibility**: Fully verified across Bukkit, Spigot, Paper, Purpur, and Folia server environments. - **Internal Optimization**: Modernized GUI item meta builders and component parsing.
release

Broadcast - Ultimate 2.0.2

2.0.2
30 дек. 2025 г.602Minecraft: 1.18, 1.18.1, 1.18.2, 1.19, 1.19.1, 1.19.2, 1.19.3, 1.19.4, 1.20, 1.20.1, 1.20.2, 1.20.3, 1.20.4, 1.20.5, 1.20.6, 1.21, 1.21.1, 1.21.2, 1.21.3, 1.21.4, 1.21.5, 1.21.6, 1.21.7, 1.21.8, 1.21.9, 1.21.10, 1.21.11bukkit, paper, purpur, spigot
Скачать
Что нового
**- letter A comming in starting is FIXED**
release

Broadcast - Ultimate 2.0.1

2.0.1
29 дек. 2025 г.31Minecraft: 1.18, 1.18.1, 1.18.2, 1.19, 1.19.1, 1.19.2, 1.19.3, 1.19.4, 1.20, 1.20.1, 1.20.2, 1.20.3, 1.20.4, 1.20.5, 1.20.6, 1.21, 1.21.1, 1.21.2, 1.21.3, 1.21.4, 1.21.5, 1.21.6, 1.21.7, 1.21.8, 1.21.9, 1.21.10, 1.21.11bukkit, paper, purpur, spigot
Скачать
Что нового
A small bug Fixed
release

Broadcast - Ultimate 2.0.0

2.0.0
29 дек. 2025 г.23Minecraft: 1.18, 1.18.1, 1.18.2, 1.19, 1.19.1, 1.19.2, 1.19.3, 1.19.4, 1.20, 1.20.1, 1.20.2, 1.20.3, 1.20.4, 1.20.5, 1.20.6, 1.21, 1.21.1, 1.21.2, 1.21.3, 1.21.4, 1.21.5, 1.21.6, 1.21.7, 1.21.8, 1.21.9, 1.21.10, 1.21.11bukkit, paper, purpur, spigot
Скачать
Что нового
## ⚙️ Changes - Now you can start countdown timer with a message on players actionbar and bossbar - You can now remove any running countdown timer - Now you can send a broadcast to a world or a player separately - Now the plugin has it's gui with that you can enable or disable sheduled broadcasts or countdown timer and more things - Now you can Schedule broadcasts and countdown timer - Now you can preset Broadcasts and send them instantly - Now you can send Broadcasts on title and subtitle or You can use Preset to send both of them - Now there is a Welcome Broadcast when a player joins the server that welcome broadcast shows. You can enable or disable that in config - Many things are editable in the config
release

Broadcast-Ultimate-(1.0.1)

1.0.1
29 сент. 2025 г.114Minecraft: 1.21, 1.21.1, 1.21.2, 1.21.3, 1.21.4, 1.21.5, 1.21.6, 1.21.7, 1.21.8paper, spigot
Скачать
Что нового
- Now Supports colours in broadcast messages - Now you can start a count down timer
release

Broadcast-Ultimate-(1.0.0)

1.0.0
28 сент. 2025 г.35Minecraft: 1.21, 1.21.1, 1.21.2, 1.21.3, 1.21.4, 1.21.5, 1.21.6, 1.21.7, 1.21.8paper, spigot
Скачать