EzRTP is a production-focused random teleport plugin for Minecraft networks. It is designed for safety-first teleportation, cross-platform compatibility, and configuration-driven control for server owners.
- SpigotMC: https://www.spigotmc.org/resources/1-19-1-21-%E2%AC%85%EF%B8%8F-ezrtp-%E2%9E%A1%EF%B8%8F-highly-configurable-rtp-plugin-for-minecraft-servers.129828/
- Hangar: https://hangar.papermc.io/EzPlugins/EzRTP
- GitHub (releases & docs): https://github.com/ez-plugins/EzRTP
- Download & Project Pages
- Features
- Compatibility
- Installation
- Commands
- Permissions
- Configuration Files
- Build from Source
- Project Modules
- Integrations
- Additional Documentation Links
- Contributing
- Safe random teleportation with configurable unsafe blocks and recovery behavior.
- Per-world and per-group limits (cooldowns, daily and weekly usage limits).
- Optional GUI teleport menu with configurable worlds and biome-targeted destinations.
- Queue system to smooth heavy RTP usage on busy servers.
- Biome-aware and cache-assisted searching with optional rare-biome optimization.
- Heatmap/statistics tooling for operators to inspect RTP distribution and performance.
- WorldGuard region command mode for region-scoped RTP entry points.
- Optional first-join/on-join teleport flow.
- Optional proxy/network destination menu support for multi-server setups.
- Chunky integration for pre-generation workflows.
- Graceful fallback behavior when specific integrations/providers are unavailable.
- Java: 17+
- Server software: Bukkit, Paper, Spigot, Purpur
- Plugin API baseline: 1.13+
- Vault (economy hooks)
- EzEconomy
- WorldGuard
- GriefPrevention
- PlaceholderAPI
- Chunky
EzRTP is built to run safely even when optional integrations are missing.
- Download the EzRTP release jar.
- Place it in your server's
plugins/directory. - (Recommended) Install optional dependencies you plan to use (Vault, WorldGuard, PlaceholderAPI, etc.).
- Start or restart the server.
- Review generated config files in
plugins/EzRTP/and adjust for your network.
- Set your default world and radius in
rtp.yml. - Configure cooldown/usage policy in
limits.yml. - Enable/disable GUI destinations in
gui.yml. - If running a proxy network, configure destinations in
network.yml.
/rtp- Random teleport (or opens GUI when enabled).
/rtp reload- Reload plugin configuration./rtp stats- Show RTP statistics and performance details./rtp heatmap- View heatmap information./rtp fake <amount|clear> [world]- Inject/clear simulated heatmap points./rtp setcenter <x> <z>or/rtp setcenter <world> <x> <z>- Update RTP center./rtp pregenerate [world] [radius]- Trigger Chunky-assisted pre-generation workflow./forcertp <player> [world]- Force teleport a target player.
ezrtp.use- Use/rtp.ezrtp.forcertp- Use/forcertp.ezrtp.reload- Use/rtp reload.ezrtp.stats- Access/rtp stats.ezrtp.heatmap- Access/rtp heatmap.ezrtp.heatmap.fake- Access/rtp fake.ezrtp.queue.bypass- Bypass queue restrictions.
ezrtp.use: Execute/rtp(default: all players)ezrtp.reload: Reload configuration (default: ops)ezrtp.stats: View RTP statistics and metrics (default: ops)ezrtp.heatmap: Generate heatmaps (default: ops)ezrtp.forcertp: Force RTP for a player (default: ops)ezrtp.heatmap.fake: Simulate teleports for testing (default: ops)ezrtp.queue.bypass: Bypass teleport queue (default: false)ezrtp.bypass.cooldown: Bypass cooldowns (default: false)ezrtp.bypass.limit: Bypass daily/weekly limits (default: false)ezrtp.gui.*: Per-option GUI access (configure ingui.yml)ezrtp.admin: Administrative UI/cache visibility and advanced actions (default: ops)
Tip: Add bypass nodes to rtp-limits.bypass-permissions in limits.yml (or config.yml in some deployments) to grant global bypass behavior.
Some permission nodes are configurable in YAML files (for example GUI destination permissions and cooldown/limit bypass permissions in limits.yml).
EzRTP splits configuration into focused files for maintainability:
config.yml- Global/core options and language selection.rtp.yml- Teleport behavior, safety, biome settings, Chunky integration.limits.yml- Cooldown and usage limits by world/group.storage.yml- Usage/cooldown backend (YAML/MySQL).queue.yml- Queue throttling behavior.gui.yml- GUI menu layout, world entries, and icons.network.yml- Proxy/server destination entries.force-rtp.yml-/forcertpcommand behavior.messages/*.yml- Localized messages.
# Compile
mvn -q -DskipTests compile
# Run tests
mvn -q test- Java 17
- Maven 3.8+
EzRTP uses a multi-module Maven layout:
ezrtp-common/- Shared logic and abstractions.ezrtp-bukkit/- Bukkit runtime packaging.ezrtp-paper/- Paper-specific adapters/services.ezrtp-spigot/- Spigot-specific module.ezrtp-purpur/- Purpur module built with Paper compatibility behavior.
EzRTP is designed with integration-friendly architecture:
- Economy hooks for RTP costs.
- Protection-provider checks (claims/regions).
- Placeholder-aware messaging.
- Optional network destination presentation.
- Optional Chunky pre-generation orchestration.
If an integration is absent, EzRTP prefers safe fallback behavior rather than hard failure.
Configuration and message references in this repository:
- Core config:
config.yml - RTP behavior:
rtp.yml - Limits and cooldowns:
limits.yml - Queue settings:
queue.yml - GUI settings:
gui.yml - Network/proxy settings:
network.yml - Storage backend config:
storage.yml - Force RTP behavior:
force-rtp.yml - Default messages:
messages/en.yml - Bukkit plugin descriptor:
plugin.yml
Configuration documentation files:
-
Main config documentation:
docs/config/config.md -
Core configuration reference (
config.yml,rtp.yml,limits.yml,storage.yml,force-rtp.yml):docs/config-core-reference.md -
GUI/queue/network reference (
gui.yml,queue.yml,network.yml):docs/config-gui-queue-network-reference.md -
Integration docs:
Module-level documentation and build descriptors:
- Parent build:
pom.xml - Common module:
ezrtp-common/pom.xml - Bukkit module:
ezrtp-bukkit/pom.xml - Paper module:
ezrtp-paper/pom.xml - Spigot module:
ezrtp-spigot/pom.xml - Purpur module:
ezrtp-purpur/pom.xml
Contributions are welcome.
Suggested local verification flow:
mvn -q -DskipTests compilemvn -q test- Include tests for non-trivial behavior changes when practical.
- Keep changes focused and document any config/message migration impacts.
If you run into issues, please open a GitHub issue with:
- Server platform and version (Paper/Spigot/Purpur/Bukkit)
- Java version
- EzRTP version
- Relevant config snippets and logs
This helps reproduce problems quickly and keeps support requests actionable.
EzRTP is licensed under the MIT License. See LICENSE for the full text.


