AquaCore
The engine every other Aquatic plugin sits on top of. It owns the message pipeline (chat, titles, actionbar, bossbar, sounds), the template system, the placeholder bridge and the module loader — so each plugin only has to describe what to send, never how.
Install it on its own and you already get a full broadcast system driven by YAML.
| Base command | /aqua |
| Aliases | aquacore, ac, acore |
| API | Bukkit 1.16+, Java 17+ |
| Folia | Supported |
| Soft-depend | PlaceholderAPI, Vault |
| Config files | config.yml, messages.yml, modules.yml, templates/*.yml |
Example
/aqua broadcast welcome player(Senkex) rank(VIP) price($10)Runs the welcome template, substitutes {player}, {rank} and {price}, and fires every output
that template has enabled — chat line, title, sound, actionbar, bossbar and the Discord webhook.
Argument order does not matter and whitespace inside parentheses is allowed:
player( Senkex ) works exactly like player(Senkex).
What you can build with it
- Purchase announcements — hook the broadcast command to your store’s command queue and every sale becomes a title + sound + Discord embed.
- Tiered templates —
vip,mvp,bundle, each with its own colours, layout and webhook. - Join banners — render the player’s head into chat next to a welcome message.
- Server-wide events — a bossbar countdown plus an actionbar reminder, from one command.
- Cross-plugin messages — every Aquatic plugin resolves its strings through AquaCore, so one
messages.ymlstyle change applies everywhere.
Modules
AquaCore only loads what you enable. Disabled modules cost zero listeners and zero tasks.
| Module | Key | Default | Provides |
|---|---|---|---|
| Broadcast | broadcast | true | /aqua broadcast, templates |
| Messages | messages | true | messages.yml, colour engine |
| Placeholders | placeholders | true | PlaceholderAPI expansion |
| Heads | heads | false | Player head rendering in chat |
| Webhook | webhook | false | Discord embeds |
| Metrics | metrics | true | Anonymous bStats stats |
modules:
broadcast: true
messages: true
placeholders: true
heads: false
webhook: false
metrics: trueDisabling messages disables the colour engine, which every other module depends on. AquaCore will
refuse to enable and print Module 'messages' is required by: broadcast, webhook.
Sections
- Commands — Aliases, arguments and error output.
- Permissions — Every node and what it unlocks.
- Configuration — Every key across all four files.
- Placeholders — PlaceholderAPI expansion reference.
- Developer API — Events, services and JitPack setup.