PhantomBans | Complete Moderation Suite 1.3.0

A complete GUI punishment suite: bans, mutes, warns, silent punishments, reports, and appeals.

Hold Shift and click to select a range

Latest
Compatible with Minecraft 1.21 - 26.2
PhantomBans v1.3.0
Every message PhantomBans sends can now be written as a list of lines instead of one cramped string, so you can build boxed, detailed notices straight from config.

📝 Multi-Line Messages

Every key in messages.yml, plus format and format-silent on every broadcast in appearance.yml, now accepts either a single string exactly as before, or a list of lines. A list is sent as one chat message with a line break between entries.

Before

mute:
  blocked: "<prefix> <red>You are muted.</red> <gray>Expires: <white>{expiry}</white></gray>"

After

mute:
  blocked:
    - "<dark_gray><strikethrough>                                                  </strikethrough></dark_gray>"
    - "<color:#FF3A6E><bold>MUTED</bold></color> <gray>You cannot send messages right now.</gray>"
    - ""
    - "<dark_gray>|</dark_gray> <gray>Reason</gray> <dark_gray>»</dark_gray> <white>{reason}</white>"
    - "<dark_gray>|</dark_gray> <gray>Staff</gray> <dark_gray>»</dark_gray> <white>{staff}</white>"
    - "<dark_gray>|</dark_gray> <gray>Expires</gray> <dark_gray>»</dark_gray> <color:#1AFFB2>{expiry}</color>"
    - "<dark_gray><strikethrough>                                                  </strikethrough></dark_gray>"
  • An empty entry ("") renders as a blank line
  • Put <prefix> only on the line you want it on. A boxed layout usually drops it and uses a header line instead
  • <newline> inside a single string does the same job, if you prefer one-liners
  • Single strings are untouched, so nothing breaks on upgrade



mute.blocked and warn.received now ship as boxed multi-line lists by default. Broadcast defaults stay on one line on purpose, since they reach every player online and a multi-line announcement there turns into chat spam quickly.


🔤 Richer Placeholders on Mute and Warn

mute.blocked and warn.received now receive the full punishment placeholder set, not just {expiry} and {reason}:

Placeholder Fills in
{player} The punished player's name
{staff} Who issued the punishment
{reason} The punishment reason
{duration} The length of a temporary punishment
{expiry} When the punishment expires
{date} / {start_date} When the punishment was issued
{server} / {scope} The server or network scope
{id} The punishment ID
{type} BAN, MUTE, WARN, and so on



These are the same names the ban and kick screens and the broadcasts already used, so one placeholder vocabulary now covers every punishment-driven message.


📌 Where To Stay On One Line

  • Row templates (history.line, lists.line, alts.line, notes.line, general.audit-line, import.breakdown) accept a list too, but they repeat once per row, so a multi-line row will flood a paginated list
  • Broadcasts go to everyone online. Multi-line works, but keep it short
  • discord.* keys are embed titles rather than chat, and stay single-line

📝 Upgrade Notes

The new multi-line defaults will not appear on an existing server unless you regenerate messages.yml. The config updater adds new keys and removes obsolete ones, but it never overwrites a value you already have, so your existing single-line mute.blocked and warn.received are kept as they are.

To pick up the new defaults: stop the server, replace the jar in plugins/, delete plugins/PhantomBans/messages.yml so it regenerates, and start the server.

To keep your own wording: leave the file alone. Back it up and hand-edit just those two keys into list form, then run /phantombans reload. Any other key can be converted the same way, at any time.

mute:
  blocked:
    - "your first line"
    - "your second line"

To do nothing at all: that is fine too. Every existing single-line value keeps rendering exactly as it did in 1.2.1. This release is additive, with no forced migration and no change to bans, mutes, warns, or the network sync layer.


📦 Downloads

File For
PhantomBans-1.3.0.jar Your Paper or Spigot backend server. This is the plugin
PhantomBans-Velocity-1.3.0.jar Optional Velocity proxy gate
PhantomBans-Bungee-1.3.0.jar Optional BungeeCord or Waterfall proxy gate
PhantomBans-All-1.3.0.zip All three, plus a README

🧪 Compatibility

Minecraft 1.21 and newer, Java 21.


Need help or found a bug? Join the Discord.
Multi-line messages guide | Documentation | Join the Discord

Enjoying the plugin? A ⭐ review goes a long way!
Download 0
No ratings yet
Purchase required

Compatible with Minecraft 1.21 - 26.2
PhantomBans v1.2.1
One config switch removes the report system completely, so another report plugin can take over cleanly.

🔕 Turn Reports Off Entirely

config.yml now has a features: block with one switch:

features:
  reports: true

Set it to false and the report system is gone from PhantomBans:

  • /report and /reports are unregistered from the server
  • The Reports button disappears from the /punish menu
  • The report lines drop out of /pb help
  • The reports Discord webhook stops firing

🔁 Clean Handoff to Another Report Plugin

The commands are properly unregistered, not just blocked, so another plugin that provides /report takes over the label cleanly. No command clash, no "unknown command", and nothing to rename on either side.


♻️ Reload, Not Restart

The toggle applies on /pb reload, so you can flip it either way without restarting. Existing report rows stay in the database and come back if you switch the feature on again.


📦 Install

Stop the server, replace the old jar in plugins/ with PhantomBans-1.2.1.jar, and start it again. The new features: block is added to your existing config.yml automatically.


Need help or found a bug? Join the Discord.
Read the documentation | Join the Discord

Enjoying the plugin? A ⭐ review goes a long way!
Download 0
No ratings yet
Purchase required

Compatible with Minecraft 1.21 - 26.2
PhantomBans 1.2.0
Fully Configurable Menus & Customization Update



This update focuses on making every GUI fully configurable while introducing new placeholders, improved customization options, and moving several hardcoded messages into configuration files for easier editing. :contentReference[oaicite:0]{index=0}

✨ New Features

  • Fully Configurable Menus
    Every GUI is now loaded from the new menus/ folder, allowing you to customize:
    • Inventory titles & rows
    • Item materials
    • Display names & lore
    • Glow effects
    • Stack amounts
    • Custom Model Data
    • Inventory slots
  • Shared Menu Components
    A new common.yml lets you edit shared UI elements such as borders, navigation buttons, target heads, banners, and close buttons in one place.
  • Custom Model Data Support
    Every menu item now supports custom-model-data, making resource pack integration much easier.
  • Per-Menu Filler Designs
    Each menu can now have multiple filler designs with different materials and layouts instead of a single border pane.
  • New Punishment Placeholders
    Added support for:
    • {date} / {start_date}
    • {server} / {scope}


    Additionally, punishment screens and broadcasts now expose:
    • {duration}
    • {expiry}
  • Configurable Alt Detection Alert
    The alt-account detection message has been moved into messages.yml, allowing full customization including hover text and prefixes.
  • Centralized Message Prefix
    Editing the prefix in messages.yml now updates it everywhere automatically, including alerts and broadcasts.

🛠 Improvements

  • Gradient text now renders exactly as written throughout menu names and lore.
  • Improved menu customization workflow with automatic shared component support.
  • Invalid menu slots are safely ignored instead of causing errors.
  • Player-supplied text is now escaped to prevent formatting and click-event injection.
  • Configuration updater preserves existing values where possible.

📂 Installation

  1. Stop your server.
  2. Replace the plugin with PhantomBans-1.2.0.jar.
  3. Delete (or back up) your existing messages.yml so the new keys regenerate.
  4. Start your server.



Thank you for using PhantomBans! ❤️

Download 0
No ratings yet
Purchase required

Compatible with Minecraft 1.21 - 26.2
PhantomBans v1.1.0
Punishments now sync across your whole network, with optional proxy support.

🌐 Network Sync

PhantomBans now works across a multi-server network, not just a single server. Ban, mute, unban, and unmute actions propagate to every backend automatically, so a punishment on one server takes effect everywhere.

  • Instant cross-server enforcement: a banned player is kicked network-wide the moment the ban lands, no matter which server issued it
  • Network-wide broadcasts: bans, mutes, and their reversals announce across all servers
  • Server-wide commands propagate: /muteall and /unmuteall apply across the network
  • Silent stays silent: silent (-s) punishments remain hidden everywhere

Network sync is opt-in. Enable it in the new network.yml. Single-server setups are unaffected and need no changes.


⚠️ One Requirement: A Shared Database

For network sync, every backend server must point at the same shared MySQL or MariaDB database. SQLite or a separate database per server will not sync, and is the single most common setup mistake. One network, one database.


🛡 Proxy Support (Optional)

Two optional companion jars stop banned and IP-banned players right at the proxy, before they ever reach a backend. They read the same shared database, and the connection fails open, so a database hiccup never locks players out of your network.

  • Velocity (recommended)
  • BungeeCord (experimental)

Optional, the backend always enforces punishments on its own. The proxy jars just turn players away one step earlier.


🔧 Fixes & Hardening

  • Plain bans and mutes no longer affect other accounts that happen to share an IP. Only /ipban and /ipmute enforce by IP
  • Backends now always enforce bans even behind a proxy, closing an edge case where a player could slip through
  • Added database indexes for faster punishment lookups on large histories
  • Clearer database connection error messages to make setup mistakes easier to spot
  • General stability and thread-safety improvements across the sync layer

📦 Install

  1. Replace the jar on every backend and restart.
  2. Point all backends at one shared MySQL or MariaDB database.
  3. Enable sync in network.yml.
  4. Optionally drop the Velocity or BungeeCord jar on your proxy for boundary-level blocking.
    Need help setting up network sync? Join the Discord.
    Read the documentation | Join the Discord

    Enjoying the plugin? A ⭐ review goes a long way!
Download 0
No ratings yet
Purchase required

Compatible with Minecraft 1.21 - 26.2

latest

Download 0
No ratings yet
Purchase required
Product Info
Statistics
62

Views

0

Purchases

0

Downloads

5.30 MB

File size

24.06.2026

Published

09.08.2026

Updated

Share & Earn

Share and earn part of the profits, an estimated €0.9 per product sale.

Log in to get your link
Product Image
PhantomBans | Complete Moderation Suite
PhantomBans | Complete Moderation Suite