Sueta

Random Teleport (RTP)

3.1.0

plugin for random teleportation

·Plugin
Tested MC versions
1.12, 1.13, 1.14, 1.15, 1.16, 1.17, 1.18, 1.19, 1.20, 1.21, 26.1, 26.2, 26.3

RandomTeleport

RandomTeleport is a random-teleportation plugin: multiple zones, biome filtering, a warmup with countdown, smart safety checks, a pre-generated point pool with a binary index, a disk budget, optional region protection and economy, and full multilingual support. No hard dependencies; works on Bukkit, Spigot, Paper, Purpur and Folia from 1.12.2 to 26.x (Java 8+).

Features

  • Zones - rectangle or circle, per-world, per-zone overrides, world-border validation.
  • Instant teleports - a pool of ready points + an index of existing chunks.
  • Background refill - on-demand, idle or both, with TTL, spread and per-zone limits.
  • Smart search - parallel candidates, biome prefilter; async chunks on Paper/Folia, bounded sync generation on Spigot (no Watchdog).
  • Warmup - title/actionbar, cancel on move/damage, ignored causes.
  • After teleport - freeze and invulnerability until chunks are ready, preload queue, skip points near players.
  • Protection - WorldGuard 6/7, GriefPrevention, Towny, Residence, Lands.
  • Economy - optional Vault.
  • Disk budget - free-space/weight/reserve limits, chunk registry.
  • /rtpstats - pools, index, disk, searches, queue, protection providers (active + installed).
  • Languages - EN/RU included, custom lang_XX.json, auto-detect.

Requirements and installation

  • Java 8+; Bukkit/Spigot/Paper/Purpur 1.12.2–26.x, Folia 1.19.4+.
  • Optional: Vault + economy, WorldGuard, GriefPrevention, Towny, Residence, Lands.

Commands

Players

CommandDescription
/rtpTeleport to the default zone
/rtp <zone>Teleport to a specific zone
/lang <code> / /lang listChange your language / list languages

Administrators

CommandDescriptionPermission
/centre check [zone] / /centre clear [zone]Show / reset the zone centerrandom_teleport.centre.*
/set radius <X> <Z> [zone] / /set radius check [zone]Set / show the radiusrandom_teleport.set_radius.*
/set center <X> <Z> [zone]Set the centerrandom_teleport.set_radius.*
/rtpzone listList zonesrandom_teleport.zone.*
/rtpzone create <name> <X> <Z> <radiusX> <radiusZ>Create a zone (sender's world; console - world)random_teleport.zone.*
/rtpzone delete <name> / /rtpzone info <name>Delete / inspect a zonerandom_teleport.zone.*
/rtpbiome list | exclude <biome> | include <biome> | resetManage excluded biomesrandom_teleport.biome.*
/rtpreload [force]Reload config/zones/biomes/languages; force repeats migrationrandom_teleport.reload
/rtpstatsShow plugin statisticsrandom_teleport.stats

Aliases: /rtp - randomtp, wild; /centre - center; /rtpzone - zone, tpzone; /rtpbiome - biome; /rtpreload - rtprl; /rtpstats - rtpinfo.

Permissions

PermissionDefaultPurpose
random_teleport.rtptrueUse /rtp
random_teleport.centre.*opManage zone centers
random_teleport.set_radius.*opRadius and center
random_teleport.zone.*opZone management
random_teleport.biome.*opBiome management
random_teleport.reloadopReload and migration
random_teleport.statsop/rtpstats
random_teleport.cooldown.admin / premium / vipop / false / false0 / 5 / 15 s cooldown
Default cooldown—30 s

Configuration

KeyDefaultPurpose
default-language / auto-detect-languageEN / trueLanguage of new players / client detection
cooldown.default30Default cooldown, seconds
warmup.delay / warmup.display3 / titleCountdown delay / title, actionbar, both
teleportation.min-height / max-height60 / 0Height limits (0 = no max)
teleportation.sync-generation-budget-ms3000Sync generation time budget on Spigot
pool.replenish.modebothBackground refill mode
pool.disk-budget.max-gb20Disk budget cap
index.enabled / scan-existingtrue / trueIndex of existing chunks
zone-defaults.pool.low / high4 / 12Refill thresholds
zone-defaults.min-delivery-distance256Minimum spread between deliveries
zone-defaults.protection.providers[]WORLDGUARD, WORLDGUARD6/7, GRIEFPREVENTION, TOWNY, RESIDENCE, LANDS
zone-defaults.economy.cost / economy.enabled0 / falsePer-zone cost / Vault hook

Zones live in zones; any zone-defaults key can be overridden as zones.<name>.<path>:

zones:
  default:
    center: { x: 0, z: 0 }
    radius: { x: 10000, z: 10000 }
    worlds: [world]
  nether:
    center: { x: 0, z: 0 }
    radius: { x: 1000, z: 1000 }
    worlds: [world_nether]

Languages

Create plugins/RandomTeleport/languages/lang_XX.json from lang_en.json, translate values, keep keys unchanged; restart or /rtpreload. Players use /lang XX; console sets the default language. auto-detect-language: true uses the client language on first login.

Notes

  • Spigot: synchronous chunk generation is bounded by count, delay and sync-generation-budget-ms; lower the budget on weak hardware.
  • Folia: supported; the pool may fill slower in idle because of region scheduling.
  • Nether: worlds.world_nether.max-height: 125 keeps points off the roof; set min-height there if you need points below the global 60.
  • Ocean-only zone: the pool may stay empty with avoid-water: true; shrink/move the zone or relax safety-checks.

Similar projects

Plugin →