EzRTP
3.4.3Advanced Random Teleport (RTP) plugin for Paper, Spigot, Purpur and Folia. Safe random teleportation with biome filters, GUI world selection, Vault economy support, cooldowns, WorldGuard integration a
3.4.3latestEzRTP 3.4.3Jul 27, 2026 Fixed
- Fixed/rtpintermittently failing (observed on Purpur) withCompletionException - java.lang.IllegalArgumentException: argument type mismatchduring async location search. The Folia region/global-scheduler reflection bridges inPaperPlatformSchedulerandBukkitPlatformScheduleronly caughtReflectiveOperationExceptionaroundMethod.invoke()calls; they now also catchRuntimeExceptionand fall back to the standard Bukkit scheduler instead of letting the exception propagate. This can occur even on non-Folia servers whose classpath carries the Folia regionized-runtime marker class. -BukkitPlatformScheduler#executeRegion/executeGlobal/executeGlobalDelayed/executeRegionDelayednow consistently fall back to the standard Bukkit scheduler when the reflective Folia scheduler call fails, instead of silently dropping the task (matching existingPaperPlatformSchedulerbehavior).Added
- Regression test coverage for the scheduler reflection-fallback fix: -PaperPlatformSchedulerReflectionFallbackTestandBukkitPlatformSchedulerReflectionFallbackTestsimulate a broken region/global-scheduler reflection call and verify the submitted task still runs via the standard scheduler fallback. -PlatformRuntimeCapabilities.PURPUR_REGIONIZEDconstant documenting the exact capability combination that triggered the bug. ---3.4.2EzRTP 3.4.2Jul 7, 2026 Fixed
-/rtp reloadnow immediately applies GUI configuration updates fromgui.ymlby rebuilding GUI rendering from the current in-memory configuration instead of startup-cached values. - Reload now closes both standard RTP GUI sessions and faction-claim GUI sessions so open inventories cannot retain stale pre-reload settings.Added
- Focused regression test coverage for GUI reload behavior: -RandomTeleportGuiManagerReloadConfigTestverifies that opening the GUI after configuration replacement uses the updated title and row count immediately. ---3.4.1EzRTP 3.4.1Jul 6, 2026 Added
- Minecraft26.2compatibility updates: - addedSULFUR_CAVESto rare-biome defaults/search paths, - updated biome compatibility handling for modern registry-based lookup paths.Changed
- CI server download resolution migrated to PaperMC Fill API (fill.papermc.io) and now sends an explicit non-genericUser-Agentheader as required by the service. - Smoke testing workflow expanded from a single Folia target to a matrix that validates: - latest Folia build, and - Paper1.13.xfor earliest supported compatibility coverage. - Dependency and tooling updates merged via Dependabot: -com.github.ez-plugins:teams-api1.8.0->2.4.0. - GitHub Actionsactions/checkoutv6->v7. - GitHub ActionsDavidAnson/markdownlint-cli2-actionv23->v24. - Kyori Adventure BOM and related versions moved to5.2.0for current Paper API compatibility.Fixed
- GitHub Actions workflow resolver for smoke-test target versions: - fixed YAML parsing issues in embedded resolver scripting, - fixed selector propagation into Python resolver invocation, - fixed mixed-type version sort key handling that could fail on Paper version token comparisons. - Removed a duplicate stale block inmessages/en.ymlthat produced duplicate-key warnings at startup. - Replaced deprecatedBiome.valueOf/Biome.valuesusage with compatibility-safe registry-backed resolution paths used across biome-related logic. ---3.4.0EzRTP 3.4.0May 24, 2026 Added
- EzCountdown integration (optional soft-dependency): - RTP countdown display can now be delegated to [EzCountdown](https://modrinth.com/plugin/ezcountdown) for richer, configurable display channels. - Configurable display types per RTP world:ACTION_BAR,BOSS_BAR,TITLE,CHAT,SCOREBOARD,DIALOG. - Configurable MiniMessage format string with{formatted}placeholder for remaining time. - Each teleporting player receives an ephemeral, per-player countdown with permission-scoped visibility. - Falls back to the built-in bossbar/chat countdown automatically when EzCountdown is absent orezcountdown.enabled: false. - Newcountdown.ezcountdown.*config section inrtp.yml(disabled by default). -EzCountdownadded as optional soft-dependency inplugin.yml. - Factions RTP (TeamsAPI): - Added/rtp factionto open a claim-selection GUI from all TeamsAPI claims available to the player's team. - Added TeamsAPI subcommand integration for/f rtpvia the TeamsAPI subcommand API (when provided by the installed TeamsAPI version). - Claim selection now sets the selected claim chunk as RTP center and then applies normal per-world RTP behavior/settings. - New `faction-gui.yml` file for full claim-GUI configuration. - Heatmap claim overlays (admin insight): - Added claim border overlay mode for/rtp heatmapand/rtp heatmap saveviaclaims-overlayflag. - Addedrtp.ymloptions underheatmap.claims-overlay.*: -enabled-style(border) -color-line-width- Claim-constrained fake RTP simulation: - Added/rtp fake <amount> claims [world]to generate simulated points on faction claims owned by the executor’s team.Changed
- TeamsAPI dependency bumped from1.4.1to1.8.0. - TeamsAPI/f rtpsubcommand integration rewritten: replaced the reflection-basedProxyapproach with a properAbstractTeamsSubcommandsubclass (requires TeamsAPI ≥ 1.8.0). - TeamsAPI subcommand registration now uses an explicitisPluginEnabled("TeamsAPI")guard instead of relying onNoClassDefFoundErrorsuppression. - Faction claim GUI icons now attempt to use player skulls when claimant/owner identity is available, with configurable fallback material when unavailable. - Added configurable title, size, claim item format/lore, skull toggle, and navigation slot/name settings for faction GUI pages. - Update checker refactored to usemc-plugin-update-notifierwith Modrinth as primary source and GitHub Releases as fallback source.Fixed
- Heatmap enablement now resolves correctly for inherited/fallback world settings (heatmap.enabled) and no longer reads as disabled unexpectedly in world/GUI override paths. -/rtp heatmapno longer hard-requires biome cache for non-biome heatmaps. Biome cache is only required for biome-filtered heatmap requests. - Spigot startup compatibility fixed in update checking (JavaPlugin#getDescription().getVersion()used instead of Paper-only metadata calls). - Message loading now supports both top-level keys and nestedmessages.*language-file layouts. - Language file handling is now non-destructive: startup repair only targets clearly corrupted message files, with automatic backfill of missing message keys while preserving existing translations/customizations. ---3.3.0EzRTP 3.3.0May 16, 2026 Added
- PvP tag integration: EzRTP now detects when a player enters combat and cancels their pending teleport or active countdown. Three plugins are supported out of the box: - [CombatLogX](https://www.spigotmc.org/resources/combatlogx.31689/) — auto-detected at startup; soft dependency. - [PvPManager](https://modrinth.com/plugin/pvpmanager) — auto-detected at startup; soft dependency. - [Simple Combat Log](https://modrinth.com/plugin/simple-combatlog) (NikeyV1/CombatLog) — auto-detected at startup; soft dependency. - All three are added tosoftdependinplugin.ymlso they load before EzRTP when present. No configuration change is required on servers that do not use any of them. - Newpvp-tag-integrationsection inrtp.yml: -cancel-countdown-on-pvp-tag(defaulttrue): cancel an active countdown the moment the player is tagged. -cancel-queued-on-pvp-tag(defaulttrue): skip a queued teleport if the player is already in combat when their slot is dispatched. - New message keyscountdown-pvp-cancelandqueue-pvp-tag-cancelinmessages/*.ymlfor the cancellation notifications. - Modrinth release metadata now declarespvpmanagerandsimple-combatlogas optional dependencies. ---3.2.3EzRTP 3.2.3May 16, 2026 Fixed
- Folia teleport crash (`UnsupportedOperationException: Must use teleportAsync while in region threading):BukkitPlatformSchedulernow overridesteleportAsync` and, when running on Folia (regionizedRuntimecapability), callsplayer.teleportAsync(Location)via reflection instead of the forbidden synchronousplayer.teleport(). The Bukkit module was the only scheduler that still used the synchronous fallback from the interface default;PaperPlatformScheduleralready calledteleportAsyncdirectly. ---3.2.2EzRTP 3.2.2May 12, 2026 Fixed
-BukkitPlatformSchedulernow handles Folia servers correctly. Previously, running EzRTP on Folia without the Paper runtime module caused anUnsupportedOperationExceptionduring plugin enable because the BukkitCraftSchedulerrejects all synchronous task scheduling on Folia. The scheduler now detectsregionizedRuntimecapabilities and routes all scheduling calls through Folia'sGlobalRegionScheduler/RegionSchedulervia reflection, matching the behaviour already present inPaperPlatformScheduler. ---3.2.1EzRTP 3.2.1May 11, 2026 Fixed
-PerformanceSnapshot#fmtnow passesLocale.UStoString#format, ensuring decimal separators are always locale-independent (dots, not commas).Changed
- Dependency scope forezrtp-commonin theezrtp-paperandezrtp-purpurmodules changed toprovided; the common module is bundled by the main plugin JAR and must not be re-included by platform modules. ---3.2.0EzRTP 3.2.0May 10, 2026 Added
- TeamsAPI claim avoidance: EzRTP now integrates with [TeamsAPI](https://modrinth.com/plugin/teams-api) to skip chunk-claimed areas during RTP destination search. - New protection provider id:teamsapi. Works alongside the existingworldguardandgriefpreventionproviders. - Enabled automatically when TeamsAPI (with a compatible claim provider) is installed. Silently skipped when absent, no errors, no configuration changes required. -teamsapiadded to the defaultprotection.providerslist inrtp.yml. -TeamsAPIadded tosoftdependinplugin.yml. - Claim availability is evaluated dynamically per check, so a claim plugin that loads after EzRTP is picked up without a reload. ---3.1.0-nightly.20260510EzRTP 3.1.0-nightly.20260510May 10, 2026 Added
Changed
Fixed
Removed
--- #### Notes
>Automated nightly beta build from
v3.x(May 10, 2026).Built from [
a335e34](https://github.com/ez-plugins/EzRTP/commit/a335e3437e138f…3.1.0EzRTP 3.1.0May 9, 2026 Added
- Message suppression via config (config.yml): -messages.suppress-player: whentrue, silences all teleport-related messages to players globally (searching, countdown, queue position, success, failure, cost). -messages.suppress-console: whentrue, silences the executor notification that/forcertpsends to the command sender globally. - `--skip-message` command flag: can be appended to/rtp,/rtp <center|region>,/forcertp <player> [world], and/rtp forcertp <player> [world]to suppress both player-facing and executor messages for that single invocation. Tab-completion suggests the flag. - `BiomeCompat` utility (ezrtp-common): reflection-basedsafeName(Biome)andsafeValueOf(String)helpers that work correctly whetherorg.bukkit.block.Biomeis an enum (Spigot/Bukkit ≤ Paper 25) or an interface (Paper 26+), preventingIncompatibleClassChangeErrorat runtime. - Movement-cancel during countdown: if a player moves too far from their starting position while a countdown is running, the teleport is cancelled. -countdown.cancel-on-move(defaulttrue) — enable or disable the feature. -countdown.cancel-distance(default2.0) — distance in blocks that triggers cancellation. -countdown.warn-distance(default1.0) — distance in blocks that sends a one-time warning before cancellation. Set to0to disable the warning. - Two new message keys:countdown-move-warnandcountdown-move-cancel(configurable inmessages/en.yml).Changed
- Minecraft version support expanded to 1.13+:api-versioninplugin.ymllowered from1.21to1.13; plugin will now load on any server from MC 1.13 onwards. - Java 17 output bytecode:maven.compiler.releasechanged from25to17so the built JARs run on Java 17+ hosts. The build toolchain still requires JDK 25 to compile againstpaper-api. - Modrinth `game-versions` broadened to `>=1.13` in release and nightly workflows (was>=26.1). - `RareBiomeRegistry.getDefaultRareBiomes()`: replaced a single try/catch wrapping allBiome.valueOf()calls with per-biomeBiomeCompat.safeValueOf()guards, so a biome absent on the running server version (e.g.MODIFIED_JUNGLEremoved in 1.18,DEEP_DARKadded in 1.19) no longer silently prevents the remaining biomes from being registered. - Allbiome.name()call sites replaced withBiomeCompat.safeName(biome)acrossRareBiomeRegistry,GuiSettings,BiomeLocationCache,StatsSubcommand, andHeatmapSubcommand.Fixed
- Stale<fork>,<executable>, and<jvm>references to deletedjava25.javac/java25.javaproperties removed from rootpom.xmlcompiler and Surefire plugin configuration. ---3.0.3EzRTP 3.0.3May 9, 2026 Fixed Folia support3.0.2-nightly.20260422EzRTP 3.0.2-nightly.20260422Apr 22, 2026 #### What changed - Ci/automatic nightly release [#77](https://github.com/ez-plugins/EzRTP/pull/77) — @ez-plugins - ci: fix direct push [#76](https://github.com/ez-plugins/EzRTP/pull/76) — @ez-plugins - ci: fix main branch to v3.x [#75](https://github.com/ez-plugins/EzRTP/pull/75) — @ez-plugins - Ci/automatic nightly release [#74](https://github.com/ez-plugins/EzRTP/pull/74) — @ez-plugins - ci: fix markdown changelog format [#73](https://github.com/ez-plugins/EzRTP/pull/73) — @ez-plugins - ci: added automatic nightly releases [#72](https://github.com/ez-plugins/EzRTP/pull/72) — @ez-plugins - chore(deps): bump actions/configure-pages from 5 to 6 [#71](https://github.com/ez-plugins/EzRTP/pull/71) — @app/dependabot - chore(deps): bump DavidAnson/markdownlint-cli2-action from 16 to 23 [#70](https://github.com/ez-plugins/EzRTP/pull/70) — @app/dependabot - chore(deps): bump actions/upload-pages-artifact from 3 to 5 [#69](https://github.com/ez-plugins/EzRTP/pull/69) — @app/dependabot - chore(deps): bump actions/deploy-pages from 4 to 5 [#68](https://github.com/ez-plugins/EzRTP/pull/68) — @app/dependabot - chore(deps): bump actions/checkout from 4 to 6 [#67](https://github.com/ez-plugins/EzRTP/pull/67) — @app/dependabot - docs: fix SCSS syntax error in ezrtp.scss (split comment separators) [#66](https://github.com/ez-plugins/EzRTP/pull/66) — @ez-plugins - docs: fix YAML syntax error in _config.yml (split comment separators) [#65](https://github.com/ez-plugins/EzRTP/pull/65) — @ez-plugins - Docs/GitHub pages [#64](https://github.com/ez-plugins/EzRTP/pull/64) — @ez-plugins - Fix/module adapters [#63](https://github.com/ez-plugins/EzRTP/pull/63) — @ez-plugins #### Notes
>Automated nightly beta build from
v3.x(April 22, 2026).Built from [
7901de6](https://github.com/ez-plugins/EzRTP/commit/7901de65359e72…3.0.1EzRTP 3.0.1Apr 21, 2026 #### What changed - Fixed issue in registering the module providers #### NotesPlease make sure to install the core EzRTP plugin and the platform dependand module, this for increased performance with multiple-platform support
3.0.0EzRTP 3.0.0Apr 14, 2026 We have worked hard to make it happen, EzRTP has been updated to Minecraft 26.1.2, what does this mean for you?So far we have only tested EzRTP on Minecraft 26.1.*, we think it should stay functional for previous versions. Please report any issues in our Discord for a better EzRTP
Please make sure to install the core EzRTP plugin and the platform dependand module, this for increased performance with multiple-platform support
Added
-world: autosupport inrtp.yml— uses the player's current world as the RTP world -world: autosupport in/forcertpand/rtp forcertpcommands -world: autosupport in GUI world options (current-world button) -EzRtpLoggermessage catalogue for structured console loggingChanged
- Console output: stripped[EzRTP]prefix and condensed log messages - API jar is now shaded into the Bukkit moduleFixed
- Adapted to Paper 26.1 API changes - Removed redundantapplyChunkLoadingSettingscalls in teleport service - Compiler fork now usesjava.home-relativejavacpathBuild / CI
- Bumped version to3.0.0- Updated Minecraft API dependencies to26.1.2- Updated JDK to 25 - Correctedapi-versioninplugin.ymlfiles (iterated to final value26.1.2)2.1.0EzRTP 2.1.0Apr 13, 2026 Major Features
New Plugin API Module
- Public API for third-party plugins — Newezrtp-apiartifact that allows other plugins to trigger random teleports programmatically - Simple helper methods inEzRtpAPIfor common use cases, with optional callbacks for async operations - Bukkit Services Manager integration for clean dependency injection - Minimal compile-time footprint — onlyezrtp-apineeds to be in the classpath of dependent pluginsPerformance Monitoring & Observability
- Performance metrics collection — Track RTP operation timings, cache efficiency, chunk loads, and biome filter performance - Slow RTP warnings — Automatically detect and log RTPs that exceed a configurable threshold (default 100ms) - Percentile tracking — Snapshot P50, P75, P90, P95, P99 response times using a ring-buffer sample - Periodic JSON export — Export metrics to JSON for integration with monitoring systems or manual analysis - New/rtp stats performancesubcommand to view current metrics in-game - Configurable viaplugins/EzRTP/performance.ymlUnsafe Location Monitoring
- Track rejection causes — Understand why locations are unsafe (void, liquid, lava, unsafe blocks, etc.) - Per-cause statistics — Breakdown of all-time rejection counts by cause - Optional warning system — Log or warn when unsafe rejection rate exceeds a threshold - Periodic metrics export — Export rejection statistics to JSON - New/rtp unsafe-statssubcommand to view unsafe location statistics in-game - Configurable viaplugins/EzRTP/unsafe-location-monitoring.ymlImproved Chunk Loading
- Paper 1.21+ async API detection — Automatically useWorld.getChunkAtAsync()on qualifying servers, bypassing the legacy tick-based throttle queue entirely - Async/non-blocking chunks — When running on Paper/Folia 1.21+, chunk loads no longer compete for tick time - Backward compatible — Legacy throttle queue is still available for older servers or when explicitly configured - Smart auto-detection — Defaults toauto-detectmode, gracefully falls back to legacy queue if needed - Configurable viachunk-loading.use-paper-async-apiin rtp.ymlBiome Filtering Enhancements
- Master switch for biome system — Newbiomes.enabledsetting disables the entire biome infrastructure (search, cache, rare biome tracking) - Master switch for include/exclude filters — Newbiome-filtering.enabledseparate from the overall biome system - Automatic filter-aware performance budgets — When include/exclude biome filters are active but no explicit budget is configured, tighter limits are applied automatically (100ms wall-clock, 10 chunk-loads) - New performance-budget section — Cleaner configuration path for search budgets (biome-filtering.performance-budget) - Better timeout tracking — Biome filter timeouts are now monitored and reported in performance stats - Async-mode toggle — Serialize biome searches through a dedicated executor thread instead of the common fork-join pool whenasync-mode: falseRare Biome Hotspot Persistence
- MySQL-backed hotspot storage — Persist discovered rare-biome hotspots across restarts and share them between network nodes - HikariCP connection pool — Efficient, non-blocking database operations - Background loading — Hotspots are loaded asynchronously on startup - Configurable persistence backend — Switch between in-memory only (none) or MySQL (mysql) - Automatic table creation — Database schema is initialized automaticallyConfiguration Changes
New Configuration Files
-plugins/EzRTP/performance.yml— Performance monitoring and warning settings -plugins/EzRTP/unsafe-location-monitoring.yml— Unsafe location rejection tracking and warningsrtp.yml Changes
- `biomes.enabled` (new) — Master switch for the entire biome system (default:true) - `biome-filtering.enabled` (new) — Separate toggle for include/exclude biome filters (default:true) - `biome-filtering.performance-budget` (new, preferred) — Search budget configuration moved here for clarity - *`search.`** (legacy path still works) — Old budget location, now aliases to new path - `chunk-loading.use-paper-async-api` (new) — Auto-detect or explicitly enable/disable Paper async chunk loading (default:auto-detect) - `chunk-loading.legacy-throttle` (new) — Nested section for old throttle settings, replaces flatenabled/interval-ticks/max-chunks-per-tick- `heatmap.enabled` — Toggle heatmap feature per world (was implicit before) - `safety.reject-liquid-above-nether` (new, default:true) — Reject locations with lava above in the Nether - `safety.reject-liquid-above-overworld` (new, default:true) — Reject locations with water above in the OverworldNetwork Configuration (
- Moved tonetwork.yml)plugins/EzRTP/network/namespace for better organizationDependency Updates
- Bukkit/Paper actions — Updated from v4 to v6 - Java compiler — Updated to 3.15.0 - bstats — Updated from 3.0.2 to 3.2.1 - WorldGuard — Updated from 7.0.9 to 7.0.16 - PlaceholderAPI — Updated from 2.11.7 to 2.12.2 - Adventure — Multiple library versions updated to 4.26.1 - HikariCP 7.0.2 — New dependency for MySQL hotspot storage - JUnit & Mockito — Updated test dependenciesBug Fixes & Improvements
GriefPrevention Compatibility
- Fixed reflection fallback to handle multiplegetClaimAt()method signatures across GriefPrevention versionsImport/Package Reorganization
- Configuration classes reorganized into semantic packages:biome.*,effects.*,network.*,safety.*,teleport.*,gui.*,performance.*- Old import paths still work through backwards-compatible re-exports (zero breaking changes)Code Quality
- IntroducedConfigurationDefaultsclass to centralize all default numeric constants - Improved documentation and JavaDoc throughout - Better error handling and logging in reflection-based code (ChunkyAPI, GriefPrevention, PlaceholderAPI)Platform Abstraction
- Enhanced PlatformScheduler — New methodsexecuteGlobal(),executeGlobalDelayed(),executeRegionDelayed()for cleaner code - Folia compatibility — All scheduler calls now route correctly on Folia's regionalized threads - Centralized capability detection — NewPlatformRuntimeCapabilitiesDetector.isPaper121PlusAsync()for version-aware optimizationAPI Extensions
-RandomTeleportServicenow implements the newcom.skyblockexp.ezrtp.api.TeleportServiceinterface for type-safe service registrationNew Statistics & Metrics
Tracked in
- Timing percentiles — P50, P75, P90, P95, P99 milliseconds - Min/max operation times — Absolute bounds across the ring buffer - Slow operation count — Number of RTPs exceeding the slow-threshold - Chunk loads breakdown — Total, async, and sync counts - Biome rejection counts — Total rejections and per-RTP max - Biome filter timeouts — Number of times a search was terminated due to biome rejection limitRtpStatisticsbStats Charts (New)
-unsafe_location_cause— Top rejection cause (pie chart)New Commands
- Shows real-time performance metrics including response times, cache hit rate, chunk loading breakdown, and recommendations/rtp stats performance
- Shows all-time unsafe location rejection statistics broken down by cause/rtp unsafe-statsConfiguration Validation
New Warnings
- Missing protection providers — Single consolidated warning when all configured protection plugins are unavailable - Heatmap disabled check —/rtp heatmapnow validates thatheatmap.enabled: truebefore proceeding - Chunky reflection fallback — Graceful degradation if Chunky API changes or is unavailable
-Removed/Deprecated
ChunkLoadingSettingslegacy flat-format constructors are depr2.0.1EzRTP 2.0.1Apr 1, 2026 - Fixed cached fallback when avoiding claims fails - Upgraded version to2.0.12.0.0EzRTP 2.0.0Mar 30, 2026 - Added opt-in/rtp <worldguardRegionName>- Added configuration override options per WorldGuard region - Added/rtp addcenter <name>- Added/rtp <name>besides/rtp <worldName>- Improved performance, refactored server software fallback logic - Moved from single.jarto mainEzRTP.jarwith server modules (ezrtp-spigot.jar,ezrtp-purpur.jar,ezrtp-paper.jar) - Splitconfig.ymlinto multiple, more clear configuration files - Added newlimits.ymlconfiguration - Added newrtp.ymlconfiguration - Added newstorage.ymlconfiguration1.6.1EzRTP 1.6.1Mar 15, 2026 - Added HEX color support for the configurable messages - Fixed issue async chunk loading for Paper servers1.6.0EzRTP 1.6.0Feb 15, 2026 - Added [Chunky integration](https://modrinth.com/plugin/chunky) for async pregeneration of EzRTP radius through Chunky - Added option to disable countdown chat messages
- Added RAM memory safety checks, disabling the pre-cache for preventing RAM overload - Improved default radius to a bigger radius - Improved min. radius fromcountdown: # Enable or disable countdown chat messages. When disabled, only bossbar and particles will be shown. chat-messages: false256to500- Changed max. radius from use world border to2000- Fixed issue issue in false positives - Fixed bug in showing bossbar countdown1.5.1EzRTP 1.5.1Feb 10, 2026 - Improved water/surface satety - Addedmaterialoption to change the material of the spawned block - Changed setting fromplace-dirt-on-surfacetoplace-block-on-surface- Changed default fromDIRTtoICESettings in theconfig.ymlsafety: water: # When enabled, RTP will solidify shallow water by placing a block before teleporting. # NOTE: the old key 'place-dirt-on-surface' is deprecated; use 'place-block-on-surface'. place-block-on-surface: true # Material to place on the surface when solidifying shallow water. Defaults to ICE. # Valid values are Bukkit Material names (e.g., DIRT, GRASS_BLOCK, ICE). material: ICE1.5.0EzRTP 1.5.0Feb 3, 2026 - Addedtrianglesearch pattern  - Addeddiamondsearch pattern  - Fixed MiniMessage translating issue in/rtp stats- Improved backwords compatiblity for new features for Minecraft 1.71.4.2EzRTP 1.4.2Jan 29, 2026 - Added fallback for new glass panes for older Minecraft servers - Changed default config materials to older materials to by default support the older versions without needing the fallback1.4.1EzRTP 1.4.1Jan 22, 2026 - Added new/forcertpcommand to replace/rtp forcertp ...- Added newforce-rtp.ymlconfiguration file:
- Added a lot of new configurable messages in the# Force RTP configuration # This file controls the behavior of the /forcertp command # Default world to use when no world is specified default-world: world # Bypass settings for the /forcertp command bypass: # Whether to bypass cooldown restrictions cooldown: true # Whether to bypass permission checks (except for the forcertp permission itself) permission: true # Whether to bypass safety checks (teleport even to unsafe locations) safety: falsemessages/en.ymlconfiguration file - Fixed issue in/rtp reload, it now reloads all configuration files again - Fixed issue preventing/forcertpto be used from console1.4.0EzRTP 1.4.0Jan 21, 2026 - Added configuration option to change search pattern - Addedcirclesearch pattern - Addedsquaresearch pattern - Named existing search pattern torandom- Improved heatmaps - Added/rtp fake <amount>subcommand to generate locations with configured search pattern - Added legend and coloring to the heatmaps  - Improved default configuration settings - Added new configurable messages - Improved default search pattern for faster default found locations For updating the plugin it's recommended to reset the configuration files.1.3.6EzRTP 1.3.6Jan 19, 2026 - Fixed issue in showing cooldown when player is bypassed from cooldown - Improved bStats stats tracking - Fixed avg wait time - Fixed success rate - Added total RTPs - Added total wait time1.3.5EzRTP 1.3.5Jan 19, 2026 - Fixed: Shift-clicking in GUI now shows "no permission" error instead of allowing item theft - Added: Option to show cache filter info only to admins (admin-only-cache-info: falseingui.yml) - Added: Configurable cache filter info message (cache-filter-infoinmessages.yml) - Added: Option to allow GUI access during cooldowns (allow-gui-during-cooldown: trueinrtp-limits) - Added: Human-readable cooldown formatting (human-readable-cooldown: trueinconfig.yml) - Added: Extensive placeholder system for messages: - Core Teleport:<world>,<x>,<z>,<target-biome>,<cached-locations>- Economy:<cost>- Queue:<position>- Cooldown/Time:<hours>,<minutes>,<seconds>- Countdown:<seconds>- Network:<server>,<status>,<ping>- Fixed: Spigot server compatibility by including MiniMessage API in JAR (increased size to ~936KB) - Improved: Time formatting displays as "1h 30m 45s" instead of raw seconds when enabled1.3.4EzRTP 1.3.4Jan 18, 2026 - Fixed issue in cooldowns1.3.3EzRTP 1.3.3Jan 18, 2026 - Added new/rtp forcertp <player>command to bypass queue, cooldown, GUI for portals and such1.3.2EzRTP 1.3.2Jan 17, 2026 - Preperation for multi-language support - MiniMessage support for configurable messages - Addedlanguageselection inconfig.yml1.3.1EzRTP 1.3.1Jan 17, 2026 - Added fallback to cached location when failing a search so the player proceeds to random teleport1.3.0EzRTP 1.3.0Jan 16, 2026 New features in EzRTP 1.3.0
##Smart Pre-Caching - Locations are now pre-cached per biome to minimize RTP failures and improve performance. - Per-biome configuration added to customize the number of pre-cached locations. - Graceful fallback logic when pre-cached locations are unavailable to avoid player frustration. 
- Added the /rtp heatmap command to analyze RTP location data visually: Displays RTP density patterns in a heatmap-style visualization on an in-game map. - Heatmaps automatically render using Minecraft maps and are handed to the player upon execution. - Option to generate heatmaps by biome with /rtp heatmap <biome> or save as .png files for external usage with /rtp heatmap save. Heatmap Visualization
- Updated /rtp stats command with detailed biome-specific statistics: Displays total RTP attempts, success rates, failures, and average teleport times. - Shows stats like cache hits, biome success rates, and total biome finds. - Filters out unrelated biome failure logs for clearer representation of requested biome data.Improved Statistics
Developers can access detailed logs (via debug mode): - Including cache hits/misses, teleport timings, biome RTP attempts, and fallback usage details. - Provides stack traces for pre-caching issues or RTP failures.Telemetry and Debugging Enhancements
- Improved RTP status messages with dynamic placeholders like <target-biome> or <location-count> make the user experience more engaging and informative. - Set to enabled by default but is fully configurable for advanced users.Enhanced Messaging System
1.2.1EzRTP 1.2.1Jan 14, 2026 * Fixed compatibility issue with GriefProtection0.4.0EzRTP 0.4.0Dec 23, 2025 EzRTP version 0.4.0 ~ Countdown
- Improved location finding for less failures - Improved async logic for Spigot servers - Added configurable countdown option before teleportation - Added configurable countdown messages0.3.2EzRTP 0.3.2Dec 23, 2025 EzRTP GUI Bugfix Changelog
- Fixed GUI opening error on Spigot/Paper - The world selector menu now works reliably when enabled, with no console errors or crashes. Titles are properly converted for compatibility. - Improved compatibility - GUI inventory creation now supports all supported server types (Spigot, Paper, Purpur 1.21+). - No impact on gameplay features - Only the GUI code was changed; teleport logic and config remain untouched.
Similar projects
Plugin →VeinMiner
Mine the whole vein on mining a single ore/block. Make the tedious mining experience to something satisfying and fun! FTB Ultimine alternative
99.3MSueta
Simple Voice Chat
A working voice chat in Minecraft!
76.8MSueta
VeinMiner Enchantment
Veinminer Addon - Adds vineminer enchantment to enchanting tables. Only tools with the enchantment can veinmine
18MSueta
JourneyMap
Real-time map used for mapping in-game or your browser as you explore.
14.7MSueta
Plasmo Voice
A proximity voice chat mod with audio positioning and lots of features
4.1MSueta
ItemSwapper
Inventory update concept for hotswapping items.
2.1MSueta