Tags
Creators
Details
1.0.12
Compatibility
Changes
Bugfixes
/rtp
- Failed searches no longer hammer the server. Retries now run via
runTaskLaterwith a configurable delay instead of immediate recursion. findSafeLocationoperates on the chunk that was already loaded async. No more sync chunk loads during search.RTP.MaxTriesdefault lowered from 20 to 8 (matches the new, more honest retry logic).- New config key
RTP.RetryDelayTicks(default 5).
Teleports & Homes
/homeand/tpacountdowns 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.Enablednor the legacyServerMOTD.Enabledis set, the MOTD code path is fully skipped. Previously the server could push an empty MOTD line. - Empty
JoinMessage.Linesare 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, anddata.ymlnow carry aConfigVersion. On startup theConfigUpgradermigrates older files automatically.- First migration: the old hardcoded default names for StarterKit items (German "Starter-Schwert" etc.) are removed so the new localized
nameKeynames take effect. - A backup of each config is written before any migration runs.
StarterKit
- Items now support
nameKeyfor localized display names. Staticnameis 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.
Projects on Modrinth are automatically available through a Maven repository for use with JVM build tools such as Gradle. To learn more about the Modrinth Maven API, click here.
Note: When available, you should use the creator's maven repo instead as it will have transitive dependency information that the Modrinth Maven API does not. You may also end up with duplicate dependencies if you use a mix of Modrinth and non-Modrinth Maven repositories for your dependencies, because the group identifier will be different when served through the Modrinth Maven API.
Maven coordinates:
Version ID:
build.gradle:
repositories {
exclusiveContent {
forRepository {
maven {
name = "Modrinth"
url = "https://api.modrinth.com/maven"
}
}
// forRepositories(fg.repository) // Uncomment when using ForgeGradle
filter {
includeGroup "maven.modrinth"
}
}
}
// Standard Gradle dependency
dependencies {
implementation "maven.modrinth:twz6Fcn3:7OL1iBqD"
}
// Legacy Loom dependency
dependencies {
modImplementation "maven.modrinth:twz6Fcn3:7OL1iBqD"
}

