MuteEssentials

All-in-one Paper plugin for Minecraft servers

Replaces an entire stack of tools with a single cohesive codebase. Packs a full ban/mute system with templates, a clan engine with GUI-driven land claims, ranks & prefixes, homes, warps, TPA, vanish, client detection, a full block log with rollback, container protection, auction house and more.

Installation

1

Download from Modrinth

Grab the latest MuteEssentials JAR from the Modrinth page. You'll always get the newest release there, including previous versions if you need them.

2

Connect via SFTP

Open your SFTP client (FileZilla, Cyberduck, or similar) and connect to your Minecraft server using the credentials from your host.

3

Upload to /plugins

Drag the MuteEssentials.jar into the /plugins folder on the remote server. If your server was running, the file will still land cleanly.

4

Restart the server

Send /stop from the console or use your host's restart button. On boot, MuteEssentials loads and generates its config in /plugins/MuteEssentials.

5

Tune the config

Open config.yml and messages-de.yml / messages-en.yml to adjust ranks, ban templates, homes, warps and feature toggles to your liking.

Heads up

MuteEssentials requires Paper 1.21+ and Java 21. Hot-swapping the JAR on a running server works, but a full restart is required for new listeners and commands to register. First launch creates /plugins/MuteEssentials/ with a default config, message files for DE/EN, and a SQLite database for bans, mutes and block history.

Changelog

Full history since 1.0.0, for transparency.

v1.0.102026-05-02

New features

  • -HackDetection in ClientDetection: known hack-client brands and plugin channels (Wurst, Meteor, LiquidBounce, Sigma, Impact, Aristois, Future, Vape, RusherHack, Inertia, KAMI, SeedcrackerX, Xray and others) are flagged on join. Default Action is kick; staff with muteessentials.clientdetection.hack get an in-game alert.
  • -AntiVPN module: AsyncPlayerPreLoginEvent check against the NetSight /api/fraud-check endpoint. Configurable risk score threshold, optional hosting/datacenter blocking, per-IP cache, and a kick message in messages-de.yml / messages-en.yml. Authenticated via X-MC-Token shared secret so no per-user API key is required.
  • -AdminGUI Settings menu rebuilt as a 21-toggle dashboard: every system, module, scoreboard, tablist, kit, MOTD, maintenance and update can be flipped live, with a description and an apply tag (✓ no restart needed / ✗ restart required) on each entry.
  • -Rank color picker in AdminGUI: creating a rank now prompts for the rank id in chat and then opens a 16-block wool picker (one wool per Minecraft dye color). Existing ranks have an Edit Color button on their detail page.
  • -Templates GUI is paginated: ban, kick, mute and warn template lists now use 28 entries per page with prev/next arrows, so an unlimited number of templates is supported.
  • -Custom... button on each templates GUI: opens a chat prompt for a free reason (kick, warn) or reason plus duration (ban, mute) in the form Hacking | 7d. The duration parser accepts 1d, 12h, 30m, 15s, combinations like 1d12h, plain seconds, and permanent / perm / -1.
  • -/mute <player> <reason words> [seconds] now accepts a numeric last argument as the duration in seconds, mirroring /customban.
  • -WarnSystem.Templates: the warn system now supports the same template structure as bans and kicks. /admingui exposes a Warn button (magenta wool) in the player view.
  • -muteessentials.bypass.clientdetection.hack: a player with this permission is never flagged or kicked by HackDetection.

Localization and consistency

  • -Rank color defaults aligned to the Minecraft dye palette (red, orange, yellow, lime/green, cyan, blue, purple, magenta, pink, light gray). Owner is red, admin is orange, premium is purple, default is light gray. Existing config values are preserved by the merger.
  • -ServerMOTD renamed to ServerListMOTD (server-list ping) and MOTD renamed to JoinMessage (post-join chat welcome). Both keys are auto-migrated to the new names by ConfigMigrator on first start; the legacy keys stay in the file as a record and the runtime falls back to them when migration is skipped.
  • -All AdminGUI items are now wool blocks instead of dyes, matching the rank color picker. Player rank rows in the manage GUI are colored by the rank's own prefix color rather than the previous lime/gray indicator.
  • -Toggle apply tags use ✓ and ✗ instead of ↻; English reads No restart needed and Restart required.
  • -Default ServerName in the bundled config changed to play.example.com so fresh installs no longer ship with the author's domain.

Fixes

  • -BlockLog rollback now restores attached blocks (torches, ladders, wall signs, doors, beds, plants, lanterns, chains, vines, dripstone, banners, candles, pressure plates, redstone, …). Previously only the support block came back; the dependent block was lost as a dropped item.
  • -BlockLog rollback now restores both halves of a bed and a door. Previously isBedHead always returned true for the head entry, skipping it; the head was missing after rollback because applyPhysics=false does not auto-create the paired half.
  • -Scoreboard rank prefix no longer shows the » separator for the default Player rank. The cut point is now the » character itself instead of the first §8 color code, so a rank that uses gray as its name color (the default Player) is rendered correctly.
  • -GamemodeCommand checks the base permission Gamemode.Permission before the subcommand-specific check; Gamemode.PermissionOther is read at the call site as before.
  • -Config.java logs accurate severity for each I/O path: Could not load and Invalid config file at startup, Could not save on save failure, Could not reload on reload failure (was previously a copy-paste of the create-failed message).

Under the hood

  • -ConfigMigrator runs at plugin enable, before ConfigMerger. It moves customisations from old key names (Modules.AntiHack.*, ServerMOTD.*, MOTD.*) to their new locations and never deletes the originals, so user content is preserved.
  • -ClientDetector default brand/channel pattern lists are extensible via ClientDetection.HackDetection.BrandPatterns and ChannelPatterns; an empty list falls back to the built-in defaults.
  • -AntiHackModule and AntiHackListener removed; the logic is now inside ClientDetector and triggered after the existing client resolution callback.
  • -MuteCommand free-form path accepts an optional numeric last argument for duration in seconds, parallel to CustomBanCommand.
v1.0.92026-04-18

New features

  • -Auction admin view: /auction <player> with muteessentials.auction.admin opens the target's active listings. Right-click removes a listing and returns the item to the seller via mail.
  • -/ah my: cancelling a listing is now a right-click, the lore tells you so.
  • -Auction.ListFee: 0 now fully disables the listing fee (no balance check, no deduction).
  • -Periodic update check: on top of the existing startup check (since 1.0.3) the plugin now re-checks every Update.CheckIntervalHours (default 24h).
  • -/update moved to /mues update (check) and /mues update download (install, restart required). Staff with muteessentials.update get a two-line notification on login when a new version is waiting.
  • -First-join setup banner for OPs: plugin version, config path and Discord contact, shown once and persisted in data.yml.
  • -/team color <color>: team leader sets the team's tab-list and scoreboard color. Supports color names (red, aqua, gold, ...) and hex digits. Tab-complete suggests all colors.
  • -/bl near [radius]: show block events in a radius around you, with configurable default and cap.
  • -AdminGUI settings menu: toggle BlockLog event logging on and off without editing files.

Localization and consistency

  • -Kick, mute, maintenance and first-join MOTD screens moved from config.yml into messages-de.yml / messages-en.yml. config.yml now focuses on toggles.
  • -Four duplicated formatDuration() functions replaced by a shared MessageManager.formatDuration(). Ban and mute durations now render in the viewer's language with proper pluralisation.
  • -Removed hardcoded German strings like 'Unbekannter Grund' and 'Unbekannt' from the chat path; these now resolve via messages.
  • -Auto-language defaults to English when no player context is known, so admin and console output stops accidentally showing German.
  • -Scoreboard title and tablist header renamed from 'SEASON 1' to 'MuteEssentials'; default ServerName changed from the author's domain to play.example.com for fresh installs.
  • -Rank color defaults: supporter is aqua, vip is light purple, default is now 'PLAYER' instead of 'SPIELER'.

Fixes

  • -/bl inspect returns only events for the exact clicked block; previously it returned events world-wide.
  • -Natural block spread, form, fade and leaf decay are no longer logged, so inspect output is readable again.
  • -Clickable coordinates in BlockLog entries teleport the inspector to the event location.
  • -/tpaccept now sends feedback to both sides.
  • -/team color confirmation preview shows the actual team name in the chosen color.
  • -Tab-complete added/fixed for /team color, /auction and /bl subcommands.
v1.0.82026-04-17

New features

  • -Container Protection module: /lock public and /lock private to toggle shared or owner-only access.
  • -Trust by click: /trust and /untrust set a 30 second pending action, then right-click the container to confirm.
  • -Action bar shows the owner when you open someone else's container (configurable).
  • -Double chests are treated as one unit: a single /lock, /trust or break covers both halves.
  • -Random teleport: /rtp with async chunk loading, safe-location checks, configurable radius and cooldown, excludes claimed land.
  • -Team tab color: /team color lets the leader pick the team's display color.
  • -Paid claim expansion: /team claim can cost money per block with a configurable free-block allowance.

Fixes

  • -/tpaccept now sends feedback to both sides.
  • -Scoreboard and tab list separators switched from arrow characters to a colon for better font compatibility. Existing configs are auto-migrated.
  • -Locking one half of a double chest now protects the whole container.

Under the hood

  • -chest_locks table gets an is_public column automatically on first start.
  • -Config and message migrator keeps customizations intact while adding new keys.
v1.0.72026-04-17

Refactor

  • -Auction House is now a first-class module managed by the ModuleManager, matching BlockLog and ChestLock.
  • -Modules.Auction.Enabled added to the config, defaults to true.
v1.0.62026-04-16

New features

  • -ChestLock module: automatic container locks on place, with team access, trust list and hopper-steal protection.

Fixes

  • -Default language for auto-detect is now German, so players without a locale no longer see English fragments when the plugin sends a message without a player context.
v1.0.52026-04-16

Fixes

  • -TPA requests from a second player no longer overwrite pending ones.
  • -Homes and warps are now case-insensitive so MyHome and myhome don't create two entries.
  • -/pay writes both balances in a single atomic save.
  • -/baltop no longer drops players with identical balances.
  • -ChatListener /<TAB> crash on empty input fixed.
  • -Starter kit no longer NPEs on items without meta.
  • -AuctionHouse itemName() NPE-safe.

Usability

  • -BlockLog: tab complete, help and filter prefixes switched to full words (inspect, lookup, rollback, +action:, +block:, +time:, +radius:, +user:).
  • -Chat format uses a colon as separator instead of the arrow character.
  • -/weatherclear is the primary command, /wc stays as alias.
  • -Gamemode tab complete cleaned up (startsWith filter, player name on second argument).
v1.0.42026-04-13

New features

  • -Auction House: player-run marketplace with a GUI, listing fees, mailbox for expired listings, configurable duration.

Fixes

  • -BlockLog: rollback rewind order fix, container transaction snapshots, fire-spread attribution.
  • -Death double-restore bug fixed.
  • -Per-subcommand permissions for /bl.
  • -Better help and usage output across moderation commands.
v1.0.32026-03-28

New features

  • -Auto-updater: checks repo.mutebefehl.de/update.json on startup, notifies staff on login, /update download pulls and verifies the JAR.

Improvements

  • -ConfigMerger injects new config and message keys into existing files without overwriting customizations.
  • -org.json relocated into the shaded JAR so AutoUpdater runs on any server.
v1.0.22026-03-15

New features

  • -Scoreboard redesigned with placeholder system (rank, balance, ping, team, coordinates and more).
  • -Spawn claim protection to prevent claiming the spawn region.

Fixes

  • -GUI click handlers use Material type instead of hardcoded German strings so language switching works properly.
  • -ClaimFlags localization.
  • -GUI pagination and InvSee sync.
  • -Chat invite feedback.
  • -Duplicate CheckCommand section in message files cleaned up.
v1.0.12026-03-01

Improvements

  • -Support for Paper 1.21.0+ (was 1.21 only).
  • -ProtocolLib kick messages for version mismatch and server full.
  • -Economy improvements (display, rounding, PlaceholderAPI integration).
v1.0.02026-02-18

Initial public release

  • -Moderation: ban, mute, kick, warn, report, staff chat, maintenance, vanish, client detection.
  • -Teleportation: home, warp, TPA, spawn, back.
  • -Economy: money, pay, baltop, eco admin.
  • -Teams and Claims: claim wand, flags, trust, clan GUI.
  • -Rank and Prefix system with tab list and nametag integration.
  • -BlockLog module: inspect, lookup, rollback, restore.
  • -Scoreboard, tab list, admin GUI, stats GUI.
  • -Custom kick messages for wrong version, server full and whitelist.
  • -Auto-language detection (German and English).
  • -Time and weather commands.
  • -Full command enable/disable and aliases in config.