/
Production-ready random teleport plugin for modern Minecraft servers.
Documentation: https://ez-plugins.github.io/EzRTP
Installation guide: https://ez-plugins.github.io/EzRTP/overview-installation.html#installation
< 3.0.0 build on Java 17 (MC 1.13 - 1.21.11.*) for Bukkit/Paper/Spigot/Purpur/Folia>= 3.0.0 build on Java 25 (MC 26.1.*) for Bukkit/Paper/Spigot/Purpur/Folia>= 3.1.0 build on Java 17 (MC 1.13 - 1.21.11.*) for Bukkit/Paper/Spigot/Purpur/FoliaModrinth • SpigotMC • Hangar • Discord
random, circle, square, triangle, diamond./rtp heatmap, /rtp heatmap save) and simulated samples (/rtp fake)./rtp addcenter, /rtp <center-name>) and center editing (/rtp setcenter).network.yml./rtp pregenerate [world] [radius]).!Biome Statistics
!RTP Heatmap
!World Selector GUI
| Command | Description | Permission |
|---|---|---|
/rtp | Default RTP flow (GUI or direct teleport based on setup) | ezrtp.use |
/forcertp <player> [world] | Force RTP for a target player | ezrtp.forcertp |
/rtp Subcommands| Subcommand | Usage | Permission | Notes |
|---|---|---|---|
reload | /rtp reload | ezrtp.reload | Reload configuration |
stats | /rtp stats | ezrtp.stats | Overall RTP metrics |
stats biomes | /rtp stats biomes [page] | ezrtp.stats | Biome activity + paging |
stats rare-biomes | /rtp stats rare-biomes | ezrtp.stats | Rare-biome optimization stats |
stats performance | /rtp stats performance | ezrtp.stats | Percentile/timing metrics |
unsafe-stats | /rtp unsafe-stats | ezrtp.stats | Unsafe rejection breakdown |
heatmap | /rtp heatmap [biome] | ezrtp.heatmap | Gives in-game heatmap map |
heatmap save | /rtp heatmap save | ezrtp.heatmap | Saves heatmap PNG to plugin folder |
fake | `/rtp fake <amount | clear> [world]` | ezrtp.heatmap.fake |
setcenter | /rtp setcenter <x> <z> or /rtp setcenter <world> <x> <z> | ezrtp.setcenter | Updates world center and reloads |
addcenter | /rtp addcenter <name> | ezrtp.setcenter | Stores named center at player location |
pregenerate | /rtp pregenerate [world] [radius] | ezrtp.pregenerate | Starts Chunky-assisted warmup tasks |
/rtp <center-name>: teleports using centers.named.<name> from rtp.yml./rtp <region-id>: WorldGuard region-based RTP when worldguard.region-command.enabled: true.plugin.yml| Permission | Default | Purpose |
|---|---|---|
ezrtp.use | true | Use /rtp |
ezrtp.reload | op | Use /rtp reload |
ezrtp.stats | op | Use stats/unsafe-stats |
ezrtp.heatmap | op | Use heatmap generation/export |
ezrtp.heatmap.fake | op | Use /rtp fake |
ezrtp.queue.bypass | op | Bypass queue |
ezrtp.forcertp | op | Use /forcertp |
| Permission | Source | Purpose |
|---|---|---|
ezrtp.setcenter | command code | Access setcenter and addcenter |
ezrtp.pregenerate | command code | Access /rtp pregenerate |
ezrtp.bypass.cooldown | limits.yml defaults | Cooldown bypass |
ezrtp.bypass.limit | limits.yml defaults | Daily/weekly limit bypass |
ezrtp.gui.<name> | gui.yml entries | Per-destination GUI access |
EzRTP now splits configuration by concern.
| File | Scope | Example Keys |
|---|---|---|
config.yml | Core plugin/global options | message-prefix, language, enable-bstats, worldguard.region-command.* |
rtp.yml | RTP behavior and safety | search-pattern, radius.*, countdown.*, unsafe-blocks, biomes.*, chunky-integration.* |
limits.yml | Cooldowns/usage/cost profiles | rtp-limits.default, rtp-limits.worlds, allow-gui-during-cooldown |
storage.yml | Limits storage backend | rtp-limits.storage, rtp-limits.mysql.* |
gui.yml | GUI layout and destinations | enabled, rows, worlds.*.icon, disable-cache-filtering, rare_biomes.* |
queue.yml | Queue throttling | enabled, max-size, start-delay-ticks, interval-ticks |
network.yml | Proxy/server selector | enabled, lobby, servers.<name>.* |
force-rtp.yml | /forcertp behavior | default-world, bypass.cooldown, bypass.permission, bypass.safety |
performance.yml | Optional perf monitoring | performance.monitoring.enabled, warnings.*, metrics.*, percentiles.* |
unsafe-location-monitoring.yml | Optional unsafe tracking | unsafe-location-monitoring.monitoring.enabled, logging.*, metrics.* |
messages/en.yml | User-facing text templates | teleport-*, queue-*, forcertp-*, heatmap-*, fake-*, stats-* |
# config.yml
message-prefix: "&7[&bEzRTP&7] &r"
language: en
enable-bstats: true
worldguard:
region-command:
enabled: false
autocomplete: false
# rtp.yml
search-pattern: random
max-attempts: 16
countdown-seconds: 5
heatmap:
enabled: false
biomes:
enabled: true
pre-cache:
enabled: false
rare-biome-optimization:
enabled: false
chunky-integration:
enabled: false
# limits.yml
rtp-limits:
default:
cooldown-seconds: 300
daily-limit: 10
weekly-limit: 50
bypass-permissions:
- ezrtp.bypass.cooldown
- ezrtp.bypass.limit
allow-gui-during-cooldown: true
# storage.yml
rtp-limits:
storage: yaml # yaml or mysql
!Usage of the RTP plugin

Add /rtp easily to your server. By default a simple RTP plugin but under the hood a highly configurable random teleport plugin with GUI world selection, Vault charging, heatmaps, safe-location scanning and smart pre-caching.