Welcome to the Hangar Open Beta. Please report any issue you encounter on GitHub!
Avatar for EzPlugins

Configurable random teleportation - Supports multiple worlds

Report EzRTP?

EzRTP - Advanced Random Teleport Plugin

EzRTP Logo Version Minecraft Java

The most advanced, safe, and feature-rich random teleport plugin for Minecraft servers

๐Ÿ“ฅ Download โ€ข ๐Ÿ“– Documentation โ€ข ๐Ÿ’ฌ Discord Support โ€ข ๐Ÿ› Report Issues


โœจ Key Features

๐Ÿš€ Performance ๐Ÿ›ก๏ธ Safety ๐ŸŽจ Customization ๐Ÿ’ฐ Economy ๐ŸŒ Multi-World
Lightning-fast RTP with intelligent caching World-border aware with biome filtering MiniMessage chat output Vault integration Permission-gated GUI selector

๐ŸŽฏ Core Capabilities

  • ๐Ÿ  Safe Random Teleportation: Finds solid ground within world borders, avoids unsafe blocks, reports coordinates with rich formatting
  • ๐ŸŒ Multi-World Support: Curated destinations for overworld, nether, end, resource worlds with GUI selection
  • ๐Ÿž๏ธ Advanced Biome Selection: Target specific biomes or exclude unwanted areas for tailored exploration
  • ๐Ÿ‘ฅ Join Protection: Automatic teleportation on join with configurable delays and bypass permissions
  • ๐Ÿ’ฐ Economy Integration: Charge for teleports with Vault, refund on failures, localized messaging
  • โšก Performance Queue: Throttle usage with configurable queues and bypass permissions
  • ๐Ÿ“Š Comprehensive Analytics: RTP statistics, biome metrics, heatmap visualization, and performance monitoring

๐Ÿ› ๏ธ Technical Excellence

  • ๐Ÿ”ง Plugin Compatibility: Paper, Purpur, SpigotMC 1.19+
  • โ˜• Java Requirements: Java 17 or newer
  • ๐Ÿ’พ Storage Options: YAML or MySQL for usage limits and statistics
  • ๐ŸŒ Network Ready: BungeeCord/Velocity support for multi-server networks
  • ๐Ÿ”’ Security: Protection plugin integration (WorldGuard, GriefPrevention)
  • ๐Ÿ“ˆ Metrics: bStats integration for anonymous usage statistics

๐Ÿš€ Quick Start Guide

Prerequisites: Paper/Purpur/Spigot 1.19+, Java 17+

Installation Steps

  1. Download EzRTP.jar from Modrinth
  2. Install by dropping into your plugins/ directory
  3. Restart your server to generate configuration files
  4. Configure config.yml with your world settings, teleport parameters, and preferences
  5. Customize messages in messages.yml using MiniMessage formatting
  6. Enable GUI in gui.yml for visual world selection
  7. Test with /rtp command

Basic Configuration

# Essential settings in config.yml
world: world
center:
  x: 0
  z: 0
radius:
  min: 256
  max: 2048
  use-world-border: true
max-attempts: 32
cost: 0.0  # Free teleports

Commands & Permissions

Command Description Permission Default
/rtp Random teleport to safe location ezrtp.use โœ… All players
/rtp reload Reload configuration ezrtp.reload โŒ Operators only
/rtp stats View RTP performance metrics ezrtp.stats โŒ Operators only
/rtp stats biomes Detailed biome statistics ezrtp.stats โŒ Operators only
/rtp heatmap [size] [world] Generate RTP distribution map ezrtp.heatmap โŒ Operators only
/forcertp <player> [world] Admin teleport override ezrtp.forcertp โŒ Operators only
/rtp fake <amount> Simulate teleports for testing ezrtp.fake โŒ Operators only

Additional Permissions:

  • ezrtp.queue.bypass - Skip teleport queues
  • ezrtp.bypass.cooldown - Ignore cooldowns
  • ezrtp.bypass.limit - Unlimited daily/weekly usage
  • ezrtp.gui.* - Access specific GUI world options

๐ŸŽฎ Feature Showcase


๐Ÿ“Š Advanced Analytics & Monitoring

Biome Statistics Dashboard

View comprehensive biome-specific metrics with /rtp stats biomes

Biome Statistics

Heatmap Visualization

Generate professional RTP distribution maps with configurable grid sizes

RTP Heatmap

Professional yellow-to-red gradient โ€ข Auto-scaling โ€ข Configurable resolution (16-4096 blocks)

Usage Examples:

/rtp stats              # Overall performance metrics
/rtp stats biomes       # Per-biome success rates & timing
/rtp heatmap 64 world   # Generate 64-block grid heatmap
/rtp fake 1000          # Simulate 1000 teleports for testing

๐ŸŽจ Interactive GUI System

World & Biome Selector

Permission-gated inventory interface with custom icons and real-time status

World Selector GUI

Custom icons โ€ข Permission controls โ€ข Real-time cooldown display

Configuration:

gui:
  enabled: true
  title: "<gradient:#00b4db:#0083b0><bold>Random Teleport</bold></gradient>"
  worlds:
    overworld:
      slot: 11
      permission: ""
      icon:
        material: GRASS_BLOCK
        name: "<green>๐ŸŒ Overworld</green>"

๐Ÿ›ก๏ธ Safety & Performance Features

Smart Location Validation
  • Block Safety: Configurable unsafe block filtering
  • Chunk Management: Automatic loading/unloading with memory optimization
  • Biome Awareness: Include/exclude specific biomes
  • World Border: Respects configured borders automatically
Intelligent Caching System
  • Biome Pre-caching: Cache safe locations per biome for instant teleports
  • Rare Biome Optimization: Weighted algorithms for efficient rare biome targeting
  • Hotspot Tracking: Maintains performance data for optimal search patterns

๐Ÿ’ฐ Economy Integration

Vault-Compatible Pricing
  • Flexible Costs: Per-world, per-group pricing with overrides
  • Refund System: Automatic refunds on teleport failures
  • Localized Messages: Multi-language support for economy feedback

๐ŸŒ Network & Multi-World Support

BungeeCord/Velocity Integration
  • Server Transfers: GUI options for cross-server teleports
  • Status Monitoring: Real-time ping and player count display
  • Permission Controls: Granular access control per server

โš™๏ธ Advanced Configuration

๐Ÿ“ Configuration Files Overview

EzRTP uses multiple configuration files for comprehensive customization:

  • config.yml - Core teleport settings, safety, performance, and economy
  • messages.yml - MiniMessage formatted chat messages and localization
  • gui.yml - Interactive world/biome selector GUI configuration
  • queue.yml - Teleport queue management and throttling
  • network.yml - BungeeCord/Velocity multi-server integration
  • force-rtp.yml - Admin override settings

๐Ÿ”ง Core Configuration (config.yml)

๐Ÿ“‹ Complete config.yml Example
# EzRTP teleport configuration
# Set to true to enable debug logging for rejected random teleport locations (for troubleshooting safe location logic).
debug-rejection-logging: false
# Enable or disable bStats metrics (https://bstats.org/plugin/bukkit/EzRTP/27735)
# These anonymous metrics help track plugin usage and performance across servers.
enable-bstats: true
# Optional: restrict random teleport Y-levels (inclusive). If omitted, world min/max height is used.
# min-y: 64
# max-y: 120

# Target world for RTP
world: world
# Center coordinates for RTP search area
center:
  x: 0
  z: 0
# Teleport radius bounds
radius:
  min: 256
  # max: 2048
  use-world-border: true
# Maximum attempts to find a safe location
max-attempts: 32
# Cost per teleport (0 = free)
cost: 0.0
# Optional countdown before teleport (0 = disabled)
countdown-seconds: 0

# Countdown configuration with bossbar and particles
countdown:
  bossbar:
    enabled: false
    title: "<yellow>Teleporting in <white><seconds></white> seconds...</yellow>"
    color: YELLOW
    style: SOLID
  particles:
    enabled: true
    type: ENCHANTMENT_TABLE
    points: 12
    radius: 1.2
    height-offset: 0.8
    extra: 0.0
    force: false
    secondary-particle: PORTAL
    secondary-count: 6
    secondary-offset: 0.35

# Blocks to avoid during location validation
unsafe-blocks:
  - WATER
  - LAVA
  - MAGMA_BLOCK
  - POWDER_SNOW
  - FIRE
  - CAMPFIRE
  - SOUL_FIRE

# Biome filtering and optimization
biomes:
  # Optional: list of allowed biomes. Leave empty to allow all.
  include: []
  # Optional: list of biomes to avoid.
  exclude: []
  # Pre-caching configuration for biome-filtered RTPs
  pre-cache:
    enabled: true
    max-per-biome: 50
    warmup-size: 20
    expiration-minutes: 10
  # Rare biome optimization
  rare-biome-optimization:
    enabled: true
    rare-biomes: []
    use-weighted-search: true
    enable-hotspot-tracking: true

# Protection plugin integration
protection:
  avoid-claims: false
  providers:
    - worldguard
    - griefprevention

# Landing particle effects
particles:
  enabled: false
  type: PORTAL
  count: 40
  offset:
    x: 0.5
    y: 1.0
    z: 0.5
  extra: 0.0
  force: false

# Join teleportation settings
on-join:
  enabled: false
  only-first-join: false
  bypass-permission: ""
  delay-ticks: 40

# RTP cooldowns and usage limits
rtp-limits:
  allow-gui-during-cooldown: true
  default:
    cooldown-seconds: 300   # Cooldown between uses
    daily-limit: 10         # Max uses per day
    weekly-limit: 50        # Max uses per week
    cost: 0.0               # Cost override
  worlds:
    world:
      disable-daily-limit: false
      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
  bypass-permissions:
    - ezrtp.bypass.cooldown
    - ezrtp.bypass.limit
  storage: yaml # or mysql
  mysql:
    url: jdbc:mysql://localhost:3306/mc
    user: root
    password: ""

๐Ÿ’ฌ Message Configuration (messages.yml)

๐Ÿ“‹ Complete messages.yml Example
# EzRTP MiniMessage templates
# Placeholders: <world>, <x>, <z>, <position>, <server>, <cost>, <target-biome>, <cached-locations>
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>"
teleport-failed-biome: "<red>No valid biome was found. Please try again or try a different biome filter.</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><hours></white> <white><minutes></white> <white><seconds></white> 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>"

๐ŸŽจ GUI Configuration (gui.yml)

๐Ÿ“‹ Complete gui.yml Example
# EzRTP GUI configuration
enabled: false
title: "<gradient:#00b4db:#0083b0><bold>Random Teleport</bold></gradient>"
rows: 3
no-permission-message: "<red>You do not have permission to travel there.</red>"
# Only show cache info (biome counts) to players with ezrtp.admin permission
admin-only-cache-info: false
# Disable cache filtering entirely (show all biomes regardless of cache status)
disable-cache-filtering: true
# Supports PlaceholderAPI placeholders in item names and lore (e.g., %player_name%)
filler:
  enabled: true
  material: BLACK_STAINED_GLASS_PANE
  name: "<dark_gray> </dark_gray>"

worlds:
  overworld:
    slot: 13
    permission: ""
    icon:
      material: GRASS_BLOCK
      name: "<gradient:#7ed957:#2ecc71><bold>Overworld</bold></gradient>"
      lore:
        - "<gray>Explore the vast overworld safely!</gray>"
        - "<dark_gray>Click to begin your adventure.</dark_gray>"
    settings:
      world: world
      radius:
        min: 256
        use-world-border: true

  nether:
    slot: 11
    permission: "ezrtp.gui.nether"
    icon:
      material: NETHERRACK
      name: "<gradient:#ff6b6b:#ee5a52><bold>Nether</bold></gradient>"
      lore:
        - "<gray>Dangerous dimension with rare resources.</gray>"
        - "<red>Requires permission to access.</red>"
    settings:
      world: world_nether
      radius:
        min: 128
        max: 512

  end:
    slot: 15
    permission: "ezrtp.gui.end"
    icon:
      material: END_STONE
      name: "<gradient:#a29bfe:#6c5ce7><bold>The End</bold></gradient>"
      lore:
        - "<gray>The mysterious end dimension.</gray>"
        - "<dark_purple>Face the Ender Dragon!</dark_purple>"
    settings:
      world: world_the_end
      radius:
        min: 64
        max: 256

๐Ÿ“‹ Queue Configuration (queue.yml)

๐Ÿ“‹ Complete queue.yml Example
# EzRTP teleport queue configuration
enabled: false
max-size: 0
bypass-permission: "ezrtp.queue.bypass"
start-delay-ticks: 20
interval-ticks: 40

๐ŸŒ Network Configuration (network.yml)

๐Ÿ“‹ Complete network.yml Example
# 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>"
        - "<gray>Players: <white><online></white>/<white><max></white></gray>"

๐Ÿ”ง Advanced Features & Configuration

๐Ÿš€ Performance & Caching

Smart Biome Pre-Caching

Automatically cache pre-validated safe locations per biome to dramatically improve success rates and reduce lag when biome filters are active.

Configuration: biomes.pre-cache section in config.yml

  • enabled: true - Toggle pre-caching on/off
  • max-per-biome: 50 - Maximum cached locations per biome
  • warmup-size: 20 - Locations pre-generated on startup
  • expiration-minutes: 10 - Cache validity duration
Rare Biome Optimization

Intelligent search strategies prioritize rare biome hotspots while maintaining randomness with configurable weighted algorithms.

Configuration: biomes.rare-biome-optimization section in config.yml

  • enabled: true - Toggle optimization on/off
  • rare-biomes: [] - Custom rare biome list (empty = auto-detect)
  • use-weighted-search: true - Favor hotspots for rare biomes
  • enable-hotspot-tracking: true - Track and maintain hotspots
Chunky World Pre-Generation Integration

Automatically integrate with Chunky plugin for intelligent world pre-generation, ensuring RTP locations are always available in generated chunks.

Key Features:

  • Automatic Detection: Detects Chunky plugin and integrates seamlessly
  • Smart Pre-Generation: Triggers chunk generation for RTP target areas when needed
  • Queue Management: Handles pre-generation requests without blocking RTP operations
  • Performance Optimized: Asynchronous processing to maintain server performance

Commands:

  • /rtp pregenerate [world] [radius] - Manually trigger pre-generation for RTP areas
  • /rtp pregenerate status - Check pre-generation queue and progress

Configuration: chunky-integration section in config.yml

  • enabled: true - Toggle Chunky integration on/off
  • pregenerate-radius: 256 - Radius for pre-generation around RTP targets
  • max-queue-size: 10 - Maximum queued pre-generation tasks
  • priority: NORMAL - Pre-generation task priority (LOWEST, LOW, NORMAL, HIGH, HIGHEST)

Requirements: Chunky plugin must be installed and configured on the server.

๐Ÿ“Š Analytics & Monitoring

RTP Statistics & Monitoring

Track RTP performance with comprehensive metrics showing success rates, cache hit rates, per-biome metrics, and failure causes.

Commands:

  • /rtp stats - Overall performance metrics
  • /rtp stats biomes - Detailed biome-specific statistics
  • /rtp stats rare-biomes - Rare biome optimization analytics

Configuration: Statistics are automatically collected and displayed. No configuration required.

Heatmap Visualization

Generate in-game maps showing RTP location distribution with grid-based statistical analysis to verify randomness and detect clustering.

Usage: /rtp heatmap [gridSize] [world]

Configuration: Grid size configurable from 16-4096 blocks. Specify world parameter to analyze different worlds.

๐Ÿ‘‘ Administration & Management

Reload Subcommand

Hot-swap config changes without kicking players or restarting the server for seamless configuration updates.

Usage: /rtp reload
Permissions: ezrtp.reload (default: op)

ForceRTP Admin Override

Force random teleportation on specific players while bypassing cooldowns and limits for administrative control.

Usage: /forcertp <player> [world]
Permissions: ezrtp.forcertp (default: op)
Configuration: Configure force-rtp settings in force-rtp.yml

โฑ๏ธ Player Experience Enhancements

Configurable Teleport Countdown

Add an optional countdown before teleportation with bossbar and particle ring visuals for enhanced user experience.

Configuration: Set countdown-seconds in config.yml or use the detailed countdown block for bossbar and particle customization.

Human-Readable Cooldown Messages

Display cooldowns in readable format like "1h 30m 45s" instead of raw seconds using dedicated placeholders.

Configuration: Use <hours>, <minutes>, and <seconds> placeholders in cooldown messages in messages.yml.

Visible Cooldown Indicators

Show cooldown timers in GUI item lore so players can see remaining wait times immediately.

Configuration: Cooldown indicators are automatically enabled when GUI cooldown behavior is configured.

Flexible GUI Cooldown Behavior

Allow GUI opening during cooldowns with disabled options instead of blocking GUI access entirely.

Configuration: Set allow-gui-during-cooldown: true in rtp-limits section of config.yml.

๐Ÿ›ก๏ธ Advanced Safety & Controls

Y-Level and Debug Controls

Restrict random teleports to a min/max Y-level range and enable detailed debug logging for troubleshooting safe-location logic.

Configuration: Set min-y and max-y in config.yml for height restrictions. Enable debug-rejection-logging for detailed logging.

Optionally avoid protected regions/claims by integrating with popular protection plugins like WorldGuard or GriefPrevention.

Configuration: Set protection.avoid-claims: true and list protection providers in config.yml.

Join-Delay Scheduler

Wait a configurable number of ticks after login before teleporting so players can load resource packs or tutorials first.

Configuration: Set on-join.delay-ticks in config.yml and enable on-join.enabled for automatic teleportation on player join.

๐ŸŽ›๏ธ Usage Limits & Economy

Per-Player Cooldowns, Limits, & Costs

Configure per-world, per-group cooldowns, daily/weekly usage limits, and optional cost overrides with permission-based bypass.

Configuration: Edit the rtp-limits section in config.yml with world-specific and group-specific settings. Supports YAML or MySQL storage.

Per-World Daily Limit Controls

Disable daily and weekly RTP limits per world for unlimited usage in specific worlds while maintaining limits elsewhere.

Configuration: Set disable-daily-limit: true in world-specific configurations within rtp-limits.worlds section.

๐Ÿ”Œ Third-Party Integrations

Chunky World Pre-Generation

Automatic integration with Chunky plugin for intelligent world pre-generation, ensuring RTP locations are always available in generated chunks.

Features: Automatic detection, smart pre-generation, queue management, performance optimized
Commands: /rtp pregenerate [world] [radius], /rtp pregenerate status
Requirements: Chunky plugin installed and configured

PlaceholderAPI Integration

Use dynamic placeholders like %player_name% in GUI item names and lore for personalized teleport menus.

Configuration: Install PlaceholderAPI plugin and use placeholders in gui.yml item names and lore. No additional configuration needed.

Multi-Language Support

Language-specific message files with automatic fallback to English, supporting both MiniMessage and legacy color codes.

Configuration: Create language-specific files like messages/en.yml, messages/de.yml in the plugin folder for different languages.

Admin-Only Cache Visibility

Control biome cache information display to show stats only to administrators or all players.

Configuration: Set admin-only-cache-info in gui.yml to restrict cache information to players with appropriate permissions.

Configuration Overview

config.yml

Candidate coordinate search pattern options: random, circle, square, triangle, diamond. Configure with search-pattern: <option> in config.yml (for example search-pattern: diamond).

# EzRTP teleport configuration
# Set to true to enable debug logging for rejected random teleport locations (for troubleshooting safe location logic).
debug-rejection-logging: false
# Enable or disable bStats metrics (https://bstats.org/plugin/bukkit/EzRTP/27735)
# These anonymous metrics help track plugin usage and performance across servers.
enable-bstats: true
# 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: []
  # Pre-caching configuration for biome-filtered RTPs
  # When enabled, the server will pre-generate and cache safe locations for biome filters,
  # significantly improving RTP success rates and reducing failed attempts.
  pre-cache:
    # Toggle pre-caching on/off. Enabled by default for better RTP performance with biome filters.
    enabled: true
    # Maximum number of locations to cache per biome (higher = better hit rate but more memory)
    max-per-biome: 50
    # Number of locations to pre-generate during server startup/reload for each configured biome
    warmup-size: 20
    # How long (in minutes) cached locations remain valid before expiring
    expiration-minutes: 10
  # Rare biome optimization for improved search efficiency
  # When enabled, uses intelligent strategies to prioritize rare biome hotspots
  rare-biome-optimization:
    # Toggle rare biome optimization on/off
    enabled: true
    # Custom list of biomes considered "rare" (leave empty for built-in list)
    rare-biomes: []
    # Enable weighted search that favors hotspots for rare biomes
    use-weighted-search: true
    # Track and maintain hotspots for rare biomes
    enable-hotspot-tracking: true
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:
  # Allow opening the GUI even if the current world has an active cooldown
  # When true, GUI opens but worlds with active cooldowns are disabled in the GUI
  # When false, GUI won't open if any world has an active cooldown (current behavior)
  allow-gui-during-cooldown: true
  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:
      # Disable daily limit for this world (overrides daily-limit and weekly-limit)
      disable-daily-limit: false
      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:
      disable-daily-limit: false
      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
# Placeholders: <world>, <x>, <z>, <position>, <server>, <cost>, <target-biome>, <cached-locations>
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>"
teleport-failed-biome: "<red>No valid biome was found. Please try again or try a different biome filter.</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><hours></white> <white><minutes></white> <white><seconds></white> 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>"
# Only show cache info (biome counts) to players with ezrtp.admin permission
admin-only-cache-info: false
# Disable cache filtering entirely (show all biomes regardless of cache status)
disable-cache-filtering: true
# Supports PlaceholderAPI placeholders in item names and lore (e.g., %player_name%)
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.19+ 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
  • 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!

Try the other Minecraft plugins in the EzPlugins series

Information

CategoryGameplay
Published onDecember 24, 2025
LicenseUnspecified
Downloads90
Stars1
Watchers1

Pinned Versions

Members