[1] Fixed missing refunds after failed paid teleports. Search failures, search timeouts, cancelled or rejected teleports, disconnects and duplicate queue requests now refund the recorded Vault charge when economy.refund_on_fail is enabled. Each request settles once.
[2] Cancelling a search prevents its late result from teleporting the player after a refund. Once a teleport has started, its actual result determines whether the payment is refunded.
[3] Exceptions during teleport preparation and server teleports now complete the request as failed. Requests also finish when a player's scheduler retires. A successful move remains successful if the player disconnects before arrival effects run.
[4] Payment tracking records only money actually withdrawn. Failed refund deposits are logged with the amount owed and the player's UUID.
[5] Disabling the teleport queue during a reload now processes pending requests. A queue processing rate of zero no longer causes division by zero.
[6] Removed five duplicate zone-setup message keys that caused warnings when bundled messages were loaded or reloaded.
End teleports
[7] Fixed the teleport queue overriding dimension-specific attempts with the unused settings.max-attempts setting. Queued, direct and matchmaking searches now use the target dimension's limit unless an explicit limit is supplied.
[8] Added custom_worlds.<world>.attempts to override the search limit for one world. settings.attempts_end continues to control End searches without changing overworld or Nether limits.
[9] Failed-search logs report the actual attempt limit. CHUNK_NOT_GENERATED identifies missing chunks when generation is disabled; NO_SAFE_SURFACE identifies columns where the End search found no safe landing.
[10] New configurations use 100 End attempts and a search radius of 1,200 to 5,000 blocks from the configured center. End chunk generation is enabled by default. Keep the search area within the world border. Generation also applies to background cache fills; disable it if searches must remain in pre-generated terrain.
Permission groups
[11] Clarified group setup, inherited permissions, priorities, zero values, fallback settings and bypass permissions. Players need justrtp.group.<name>; a matching rank name alone does not grant membership. World entries use actual world names. Lower numeric priority wins for each setting, with missing settings falling back to the next matching group, world settings and global defaults. Existing precedence is unchanged.
Dashboard
[12] Added a built-in web dashboard configured in api.yml. Run /rtp api account to create a login. The panel includes server status, teleport statistics, worlds, zones, configuration controls and connected proxy servers.
[13] Teleport statistics are saved between restarts, including success rate, search attempts, daily activity and per-world totals.
[14] Dashboard accounts support permissions, hashed passwords, expiring sessions, login rate limits and an optional IP allowlist.
[15] Added optional deltura.net server registration and heartbeat. This integration is disabled by default.
Minecraft 26.3
[16] One release JAR supports the Paper 1.21.4 API baseline and Paper 26.3. The plugin is compiled for Java 21; run Paper 26.3 on Java 25. The Paper 26.3 API compatibility profile writes to a separate build directory and does not replace the release JAR.
Updating
[17] Existing configuration values are preserved. Set settings.attempts_end or custom_worlds.<world>.attempts as needed. For an unexplored End search area, enable location_cache.worlds.<world>.generate_chunks. Apply configuration changes with /rtp reload; restart the server after replacing the plugin JAR.
[18] Refunds cover charges made through JustRTP's Vault integration. A menu or script running eco take makes a separate charge that JustRTP cannot track. Remove that external deduction when using JustRTP's economy settings.
[19] Existing custom messages.yml files are preserved. If reload still reports duplicate zone-setup keys, keep one definition of each reported key in that file.
Developer information
Projects on Modrinth are automatically available through a Maven repository for use with JVM build tools such as Gradle.
maven { name = "Modrinth"; url = "https://api.modrinth.com/maven" }