Welcome to the Hangar Open Beta. Please report any issue you encounter on GitHub!
EzRTP
Configurable random teleport command with GUI world selection, Vault charging, and safe-location scanning.
- Paper/Purpur/Spigot 1.7 - 1.21+
- Java 17+
- World-border aware
- MiniMessage chat output
- Optional Vault economy hook
- Lightweight standalone jar
Why EzRTP?
- Player-friendly RTP –
/rtpfinds solid ground inside the configured world border, skips unsafe blocks, and reports the final coords with MiniMessage styling.
- Multi-world teleports – Offer curated destinations for overworld, resource, or event worlds with an optional permission-gated GUI selector.
- Join protection – Optionally teleport newcomers (or everyone) on join with delay + bypass permission toggles to prevent spawn camping.
- Vault economy ready – Charge a configurable fee for each teleport, refund on failure, and surface friendly "insufficient funds" prompts.
- Performance-conscious queue – Throttle heavy usage with a configurable teleport queue that spaces out searches while respecting bypass permissions.
- Purpose-built service – Cleanly separates config, command, and teleport logic so you can drop the jar into any survival setup without conflicts.
Feature Highlights
- Interactive world selector – Enable an inventory GUI with filler items, custom icons, and per-option permissions so players pick their landing zone.
- Safe block filtering – Maintain a denylist of unsafe floor blocks (lava, water, magma, powder snow, etc.) and expand it per biome or gamemode needs.
- Chunk readiness checks – Skips ungenerated chunks, ensures the destination chunk is loaded, and applies configurable retry limits.
- MiniMessage messaging – Customize searching, success, failure, queue, and missing-world alerts with Adventure MiniMessage placeholders
<x>,<z>, and<world>. - Teleport flair – Trigger configurable particle effects at the landing spot so players know the teleport completed.
- Economy feedback – Configure the teleport cost, enable Vault integration automatically, and localise insufficient balance messaging.
- Biome inclusion/exclusion – Restrict teleports to approved biome lists or skip unwanted regions like oceans and deserts.
- Join-delay scheduler – Wait a configurable number of ticks after login before teleporting so players load resource packs or tutorials first.
- Reload subcommand –
/rtp reloadhot-swaps config changes without kicking players or restarting the server. - Per-player cooldowns, limits, & costs – Configure per-world, per-group cooldowns, daily/weekly usage limits, and optional cost overrides for
/rtp, with permission-based bypass and persistent tracking (YAML or MySQL). - Configurable teleport countdown – Add an optional, per-player countdown before teleportation with optional bossbar and particle rings. Set
countdown-secondsor use thecountdownblock inconfig.ymlto control visuals and timing. - Y-level and debug controls – Restrict random teleports to a min/max Y-level range (
min-y,max-y), and enable detailed debug logging for rejected locations withdebug-rejection-logginginconfig.ymlfor troubleshooting safe-location logic. - Protection-aware search – Optionally avoid protected regions/claims by enabling
protection.avoid-claimsand listing providers likeworldguardorgriefprevention.
Quick Start
- Drop
EzRTP.jarinto your Paper or Purpurplugins/directory and restart the server. - Edit
plugins/EzRTP/config.ymlto set the target world, teleport center, radius bounds, teleport cost, unsafe block list, particles, and on-join behaviour. - Localise the MiniMessage output in
plugins/EzRTP/messages.ymlso the searching, success, failure, and queue prompts match your server's style. - Toggle
enabledinsidegui.ymland add world entries to present a permission-aware teleport selector menu. - Adjust
queue.ymlif you need to throttle teleport requests during peak hours or grant bypass permissions to staff. - Hook Vault + your economy plugin if you want to charge for teleports; leave
costat0for free usage. - Run
/rtp reloador restart once you finish editing to apply the new settings.
Commands & Permissions
| Command | Description | Permission |
|---|---|---|
/rtp |
Teleport the executing player to a random safe location. | ezrtp.use (default: true) |
/rtp reload |
Reload EzRTP configuration from disk. | ezrtp.reload (default: op) |
Grant ezrtp.queue.bypass to let trusted players skip the queue, and assign per-option GUI permissions directly in gui.yml.
Configuration Overview
config.yml
# EzRTP teleport configuration
# Set to true to enable debug logging for rejected random teleport locations (for troubleshooting safe location logic).
debug-rejection-logging: false
# Optional: restrict random teleport Y-levels (inclusive). If omitted, world min/max height is used.
# min-y: 64
# max-y: 120
world: world
center:
x: 0
z: 0
radius:
min: 256
# max: 2048
use-world-border: true
max-attempts: 32
cost: 0.0
countdown-seconds: 0 # Optional countdown before teleport (0 = disabled)
countdown:
# Optional: override countdown seconds here instead of countdown-seconds.
# seconds: 5
bossbar:
enabled: false
title: "<yellow>Teleporting in <white><seconds></white> seconds...</yellow>"
color: YELLOW
style: SOLID
particles:
enabled: true
# Primary Bukkit particle to use for the countdown ring.
type: ENCHANTMENT_TABLE
# Number of points in the ring around the player.
points: 12
# Ring radius in blocks.
radius: 1.2
# Height offset from the player's feet.
height-offset: 0.8
# Additional speed/extra parameter passed to the particle effect.
extra: 0.0
# Force the particles to render for players at long distances (1.13+ servers).
force: false
# Optional secondary sparkle particle.
secondary-particle: PORTAL
secondary-count: 6
secondary-offset: 0.35
unsafe-blocks:
- WATER
- LAVA
- MAGMA_BLOCK
- POWDER_SNOW
- FIRE
- CAMPFIRE
- SOUL_FIRE
biomes:
# Optional: list of allowed biomes. Leave empty to allow all.
include: []
# Optional: list of biomes to avoid.
exclude: []
protection:
avoid-claims: false
providers:
- worldguard
- griefprevention
particles:
enabled: false
type: PORTAL
count: 40
offset:
x: 0.5
y: 1.0
z: 0.5
extra: 0.0
force: false
on-join:
enabled: false
only-first-join: false
bypass-permission: ""
delay-ticks: 40
# RTP cooldowns and usage limits
rtp-limits:
default:
cooldown-seconds: 300 # Cooldown in seconds between /rtp uses
daily-limit: 10 # Max uses per day
weekly-limit: 50 # Max uses per week
cost: 0.0 # Optional cost override for this group
worlds:
world:
default:
cooldown-seconds: 300
daily-limit: 10
weekly-limit: 50
cost: 0.0
group.vip:
cooldown-seconds: 60
daily-limit: 50
weekly-limit: 200
cost: 0.0
world_nether:
default:
cooldown-seconds: 600
daily-limit: 5
weekly-limit: 20
cost: 0.0
group.staff:
cooldown-seconds: 0
daily-limit: -1 # -1 = unlimited
weekly-limit: -1
cost: 0.0
bypass-permissions:
- ezrtp.bypass.cooldown
- ezrtp.bypass.limit
storage: yaml # or mysql
mysql:
url: jdbc:mysql://localhost:3306/mc
user: root
password: ""
messages.yml
# EzRTP MiniMessage templates
teleporting: "<gray>Searching for a safe location...</gray>"
teleport-success: "<green>Teleported to <white><x></white>, <white><z></white> in <white><world></white>.</green>"
teleport-failed: "<red>Unable to find a safe location. Please try again.</red>"
world-missing: "<red>The configured world '<white><world></white>' is not available.</red>"
join-searching: "<gray>Finding you a safe place to explore...</gray>"
insufficient-funds: "<red>You need <white><cost></white> to use random teleport.</red>"
queue-queued: "<gray>You joined the random teleport queue. Position: <white><position></white>.</gray>"
queue-full: "<red>The random teleport queue is currently full. Please try again soon.</red>"
# Cooldown and usage limit messages
cooldown: "<red>You must wait <white><seconds></white> seconds before using /rtp again.</red>"
limit-daily: "<red>You have reached your daily /rtp limit for this world.</red>"
limit-weekly: "<red>You have reached your weekly /rtp limit for this world.</red>"
# Countdown messages
countdown-start: "<yellow>Teleporting in <white><seconds></white> seconds...</yellow>"
countdown-tick: "<gray><seconds>...</gray>"
queue.yml
# EzRTP teleport queue configuration
enabled: false
max-size: 0
bypass-permission: "ezrtp.queue.bypass"
start-delay-ticks: 20
interval-ticks: 40
gui.yml
# EzRTP GUI configuration
enabled: false
title: "<gold>Select a destination</gold>"
rows: 1
no-permission-message: "<red>You do not have permission to teleport there.</red>"
filler:
enabled: true
material: GRAY_STAINED_GLASS_PANE
name: "<gray> </gray>"
worlds:
overworld:
# slot: 0
permission: ""
icon:
material: GRASS_BLOCK
name: "<green>Overworld</green>"
lore:
- "<gray>Teleport to a random location in the overworld.</gray>"
settings:
world: world
radius:
min: 256
use-world-border: true
resource:
slot: 1
permission: "ezrtp.gui.resource"
icon:
material: IRON_PICKAXE
name: "<gold>Resource World</gold>"
lore:
- "<gray>Gather materials without ruining the main world.</gray>"
settings:
world: resource
radius:
min: 512
max: 4096
use-world-border: false
network.yml
# EzRTP proxy / network configuration
enabled: false
lobby: false
ping-interval-ticks: 200
ping-timeout-millis: 1500
servers:
skyblock:
bungee-server: "skyblock"
host: "127.0.0.1"
port: 25566
slot: 4
permission: ""
display-name: "Skyblock"
hide-when-offline: false
allow-when-offline: false
connect-message: "<gray>Connecting you to <white><server></white>...</gray>"
offline-message: "<red><server></red> is currently unavailable."
icon:
material: ENDER_PEARL
name: "<gold><server></gold>"
lore:
- "<gray>Status: <status></gray>"
- "<gray>Ping: <white><ping></white>ms</gray>"
Requirements
- Java 17 or newer
- Paper, Purpur, or SpigotMC 1.21+ server build
- Optional: Vault + an economy plugin if you want to charge for teleports
- Optional: A permissions plugin (LuckPerms, etc.) if you want granular control over
/rtp reload, queue bypass, GUI option access, or cost bypasses
Support & Links
- Need help? Join our Discord and open a ticket under the EzRTP category.
- Share seeds, biome rules, or config presets on the discussion tab so other admins can jumpstart their setup.
- Pair EzRTP with EzSpawners, EzAuction, and the rest of the Ez-series utilities for a cohesive network toolkit.
- Get EzEconomy – Modern Vault Economy Plugin
Ready to launch players into adventure?
Install EzRTP and give explorers a safe, stylish way to discover your world—across every dimension!
Pinned Versions
Pages
Members
Owner