rtp.yml

The main configuration file for random teleport behaviour — where players land, how far they can travel, what’s considered safe, and optional features like biome filtering and countdown timers.


Destination bounds

These settings define where a teleport destination can be.

Key Default Description
world world The world players are teleported into. Use the exact world folder name (e.g. world_nether). Set to auto to always teleport within the player’s current world — handy on multi-world servers.
center.x / center.z 0 / 0 The X/Z coordinate used as the centre of the search circle. Defaults to 0,0 (world spawn area).
radius.min 500 Closest a destination can be from the centre, in blocks.
radius.max 2000 Furthest a destination can be from the centre, in blocks. Leave this out to use the world border as the maximum.
min-y 54 Lowest Y level a destination is considered valid at.
max-y 320 Highest Y level a destination is considered valid at.
world: world
center:
  x: 0
  z: 0
radius:
  min: 500
  max: 2000
min-y: 54
max-y: 320

Search settings

Key Default Description
search-pattern random The shape used when picking candidate coordinates. See Search Patterns for all options.
max-attempts 16 How many candidate locations EzRTP tries before giving up and sending a failure message. Higher values reduce failed teleports but cost slightly more CPU per attempt.

Cost

cost: 0.0

Economy cost charged per teleport (requires Vault). 0.0 means free. Per-world and per-group cost overrides go in limits.yml.


Countdown

A countdown timer that shows before the teleport happens. Players who move or take damage during the countdown can have their teleport cancelled (configure that in limits.yml).

Key Default Description
countdown-seconds 5 How many seconds to count down. 0 disables the countdown entirely.
countdown.bossbar.enabled true Shows a bossbar with the countdown.
countdown.bossbar.title (see below) MiniMessage text shown in the bossbar. <seconds> is replaced with the remaining time.
countdown.particles.enabled true Plays a particle effect around the player during countdown.
countdown.chat-messages false Also prints countdown seconds into chat.
countdown-seconds: 5
countdown:
  bossbar:
    enabled: true
    title: "<yellow>Teleporting in <white><seconds></white> seconds...</yellow>"
    color: YELLOW
    style: SOLID
  particles:
    enabled: true
    type: ENCHANTMENT_TABLE
    points: 12
    radius: 1.2
  chat-messages: false

Safety

EzRTP will not place players inside water, lava, or other hazardous blocks. The unsafe-blocks list controls what counts as unsafe. You can add or remove any Bukkit material name.

unsafe-blocks:
  - WATER
  - LAVA
  - MAGMA_BLOCK
  - POWDER_SNOW
  - FIRE
  - CAMPFIRE
  - SOUL_FIRE

Surface recovery

When the chosen location is mid-air or underground, EzRTP scans up or down to find solid footing before confirming the destination.

Key Default Description
safety.recovery.enabled true Enables vertical scanning to find a safe Y level.
safety.recovery.max-vertical-adjust 6 Maximum blocks to move up or down during surface recovery.
safety.recovery.max-surface-scan-depth 20 How far below the candidate to scan for a footing block in normal worlds. Keep this small for performance.
safety.recovery.max-surface-scan-depth-nether 128 Same, but in the Nether. Larger because candidates often start near the Nether roof.

Water landing

safety:
  water:
    place-block-on-surface: true
    material: ICE

When place-block-on-surface: true, players who land on water get a temporary block placed under them so they don’t drown. material sets what block is placed (default ICE).


Chunk loading

Controls how EzRTP loads chunks while searching for destinations. On Paper 1.21+ the async API is used automatically for the best performance.

Key Default Description
chunk-loading.use-paper-async-api auto-detect auto-detect uses Paper’s async chunk API when available. always forces it. never falls back to the legacy throttle on all platforms.
legacy-throttle.enabled true Enables the tick-based throttle used on Spigot/Bukkit or older Paper.
legacy-throttle.interval-ticks 10 Ticks between chunk load batches.
legacy-throttle.max-chunks-per-tick 1 Maximum chunks loaded per batch.

Biomes

Biome filtering lets you restrict (or require) specific biomes for RTP destinations. The full feature set includes pre-caching and rare-biome optimisation.

Key Default Description
biomes.enabled true Master switch. Set to false to disable all biome features.
biomes.include [] If non-empty, only destinations in one of these biomes are accepted. Use Bukkit biome names, e.g. FOREST, PLAINS.
biomes.exclude [] Destinations in any listed biome are rejected.

Pre-cache

Pre-caching runs searches in the background and stores valid locations so players get instant teleports instead of waiting for a search.

biomes:
  pre-cache:
    enabled: false
    auto-enable-for-filters: true  # automatically enable when include/exclude lists are set
    max-per-biome: 16
    warmup-size: 8
    expiration-minutes: 15
    refill-interval-minutes: 10
    refill-batch-size: 3

Rare biome optimisation

For biomes that are hard to find (e.g. Mushroom Fields, Deep Dark), this tracks discovered hotspot coordinates to speed up future searches.

biomes:
  rare-biome-optimization:
    enabled: false
    rare-biomes:
      - MUSHROOM_FIELDS
      - DEEP_DARK
    use-weighted-search: true
    enable-hotspot-tracking: true
    max-hotspots-per-biome: 20

Search budget (performance caps)

These caps prevent a single biome search from blocking the server too long.

Key Default Description
biome-filtering.performance-budget.max-total-time-ms 0 Maximum wall-clock search time for normal searches (ms). 0 = auto (100 ms when filters active).
max-total-time-ms-rare 8000 Maximum search time for rare biomes.
max-biome-rejections 0 Maximum number of biome mismatches before giving up. 0 = auto.
fallback-on-timeout cached-location What to do when the budget is exhausted: cached-location, generic, or abort.

Protection (claim avoidance)

Prevents EzRTP from landing players inside protected claims or regions.

protection:
  avoid-claims: false
  providers:
    - worldguard
    - griefprevention

Set avoid-claims: true to enable. Only providers that are installed will be used.


Particles (arrival effect)

An optional particle burst played at the destination when the player arrives.

particles:
  enabled: false
  type: PORTAL
  count: 40
  offset:
    x: 0.5
    y: 1.0
    z: 0.5

On-join teleport

Automatically teleport new (or returning) players when they join the server.

Key Default Description
on-join.enabled false Enables automatic RTP on join.
on-join.only-first-join false When true, only teleports players who have never joined before.
on-join.bypass-permission "" Players with this permission are not teleported on join (e.g. for staff).
on-join.delay-ticks 40 Ticks to wait after joining before teleporting (40 = 2 seconds).
on-join:
  enabled: false
  only-first-join: false
  bypass-permission: ""
  delay-ticks: 40

Named centers

Named centers let you create multiple RTP zones that players can access with /rtp <name>. Each center can override the world, coordinates, and radius.

centers:
  named:
    spawn:
      world: world
      center:
        x: 0
        z: 0
    north:
      world: world
      center:
        x: 0
        z: -5000
  • Add or update a center in-game with /rtp addcenter <name>.
  • Players use /rtp <name> to teleport using that center’s settings.

Debug logging

debug-rejection-logging: false

Set to true to log every rejected candidate location with the reason why it was rejected (wrong biome, unsafe block, inside a claim, etc.). Useful when tuning biome filters or safety settings. Disable on production servers as it generates a lot of output.