Welcome to the Hangar Open Beta. Please report any issue you encounter on GitHub!
Avatar for MuteBefehl

Modern Essentials. Fully customizable with powerful admin tools and a modular system. One plugin to replace them all.

Report MuteEssentials?

Release
1.0.12

MuteBefehl released MuteEssentials version 1.0.12 on Today 3:26 PM

This release is focused on bugfixes around /rtp, localization, and quit-time resource leaks. It also ships a versioned config upgrader and optional anonymous telemetry.

Bugfixes

/rtp

  • Failed searches no longer hammer the server. Retries now run via runTaskLater with a configurable delay instead of immediate recursion.
  • findSafeLocation operates on the chunk that was already loaded async. No more sync chunk loads during search.
  • RTP.MaxTries default lowered from 20 to 8 (matches the new, more honest retry logic).
  • New config key RTP.RetryDelayTicks (default 5).

Teleports & Homes

  • /home and /tpa countdowns are now properly cancelled when a player quits. Previously the scheduler task kept running and produced "player not online" spam in the log.
  • Cooldown maps are cleaned up on quit (no more memory leak after many reconnects).
  • Home-load errors now go through the plugin logger instead of printStackTrace(). Cleaner log files.

MOTD / Join message

  • If neither ServerListMOTD.Enabled nor the legacy ServerMOTD.Enabled is set, the MOTD code path is fully skipped. Previously the server could push an empty MOTD line.
  • Empty JoinMessage.Lines are no longer sent to players.

Localization

  • HackDetection kicks and staff alerts now come from messages.yml. Previously the strings were hardcoded and ignored the player's language.
  • getClientName() returns a localized "Unknown" instead of a hardcoded "Unbekannt".
  • Maintenance kick, ban kick, outdated-client kick, server-full kick and whitelist kick all use the affected player's locale instead of the server default.
  • Setup banner for the first OP join, StarterKit welcome and every home message now route through the per-player locale path.
  • BAN console logs are normalized to English (previously a mix of German and English).

AutoUpdater

  • Logger strings normalized to English.
  • New reminder: while an update is pending, the plugin writes a warning to the log every Update.PendingReminderMinutes (default 60). Stops a found update from being forgotten.

New

Versioned config upgrader

  • config.yml, messages-*.yml, and data.yml now carry a ConfigVersion. On startup the ConfigUpgrader migrates older files automatically.
  • First migration: the old hardcoded default names for StarterKit items (German "Starter-Schwert" etc.) are removed so the new localized nameKey names take effect.
  • A backup of each config is written before any migration runs.

StarterKit

  • Items now support nameKey for localized display names. Static name is still accepted as a fallback.
  • The default kit no longer carries hardcoded German names.

Anonymous telemetry

  • Optional heartbeat (default on, Telemetry.Enabled): once per hour the plugin sends anonymous usage data (version, player count, uptime). No player data, no IPs, no content. Can be opted out at any time via config.
  • Optional error reporting (default off, ErrorReporting.Enabled): when enabled, MuteEssentials stack traces are anonymized (UUIDs, IPs, hostnames stripped) and sent to the maintainer. Rate-limited to one report per error class per hour.

Config diff

ConfigVersion: 1

ErrorReporting:
  Enabled: false

Telemetry:
  Enabled: true

RTP:
  MaxTries: 8        # was 20
  RetryDelayTicks: 5 # new

Update:
  PendingReminderMinutes: 60 # new

Upgrade notes

Drop in the new jar and restart the server. The ConfigUpgrader pulls existing configs forward automatically and writes backups as config.yml.bak-<timestamp> before touching anything. No manual edits required.

Information

Published onMay 17, 2026
Downloads1

Platforms

Paper Paper (1.21-26.1.2)

Dependencies

Paper Paper
Edit Plugin Dependencies: Paper