Sueta

justRTP

3.8.4

Random teleport for Paper and Folia. Safe spots served from a cache, per-world radius, cooldowns and Vault costs, plus sky drops, RTP zones, party teleports, pre-generation and cross-server RTP for Ve

·Plugin
Tested MC versions
1.21, 26.1, 26.2, 26.3

justRTP

justRTP is a random teleport plugin for Paper and Folia. /rtp sends a player to a safe spot inside a radius you set per world, with cooldowns, warmups and optional Vault costs. A background cache keeps checked landing spots ready, so most teleports do not wait for a live search. On top of the plain /rtp it has sky drops with a parachute, RTP zones that send everyone inside out on a timer, party teleports, a matchmaking queue, world pre-generation, an in-game dashboard, a web panel and cross-server RTP for Velocity and BungeeCord networks. It is for survival, SMP and network servers that want one teleport plugin from a small server up to a network.

Each image below has a text version under it.

justRTP: the random teleport engine

Text version: justRTP overview

The random teleport engine

justRTP

A free random teleport plugin that has a safe landing spot ready before the player asks for one. Sky drops, arena zones, party teleports and cross-server jumps all run on the same checked search.

Five stars, "Battle-tested".

  • Cache: served, not searched
  • 12: ways to teleport
  • Folia: respawn RTP included

Screenshot: a player gliding down during a sky drop, with the title "Sky Drop, glide to your landing spot" and chat lines such as "Parachute deployed! Glide to your landing spot." and "Touchdown! Welcome back on solid ground".

Feature list along the bottom: Location cache, Sky drops, RTP zones, Party teleports, Pre-generation, Cross-server, In-game dashboard, Web panel.

One command, twelve ways to leave spawn

Text version: ways to teleport

Ways to teleport: one command, twelve ways to leave spawn.

Every mode below uses the same safe location search, so a sky drop, a party landing and a cross-server jump all end somewhere a player can stand.

CommandModeWhat it does
/rtpPlain random teleportA safe spot inside the world radius, with its own cooldown, warmup and cost
/rtp <world>Per-world rulesEach world has its own radius, centre, price, cooldown and biome filter. World aliases work too
/rtp airSky dropDropped high above a checked spot with a parachute canopy and a steerable glide
Space twiceJump RTPDouble jump and you are gone. Its own cooldown, switched on per world
/rtp guiWorld selectorA menu of your worlds with live cooldowns and prices on the buttons
/rtp partyWith friendsInvite a party and land together, on one block, or each on their own spot
/rtp queue joinMatchmakingQueue up and get dropped at a fresh spot with your opponents, spread apart
/rtp nearplayerNear a playerLand close to a random online player, inside a radius you set
/rtp nearclaimNear a claimLand beside claimed land from SimpleClaim, GriefPrevention, Lands or WorldGuard. The subcommand name is yours to rename
/rtp location kothNamed spotsYour own named areas, each with a permission, price and radius
/rtp 500 2000Their own bandPlayers pick a radius, priced by tier and capped by permission
/rtp survival:worldAnother serverThe far server finds the spot and the player arrives with no second warmup

A paid teleport, start to finish. The cost is asked first, confirmed with a click, then a countdown on screen that cancels if the player moves. (Screenshot chat: "This teleport will cost 100. Type /rtp confirm or click [HERE] to continue.", "Teleport confirmed.", "Searching for a safe location for you...", "Teleporting in 3s... Don't move!")

New in 3.8.0

Text version: new in 3.8.0

New in 3.8.0: respawn RTP on Folia, and radius limits that hold across the network.

Plus clearer errors when no safe spot is found, and a few GUI fixes.

  • Folia: respawn RTP on Folia. Folia does not fire the respawn events, so respawn_rtp never ran there. Players on Folia are now teleported once after they respawn, the same as on Paper.
  • Network: the destination sets the radius. A cross-server request only carries a radius the player typed or one from their permission group, and the destination server caps it to the largest max_radius it allows for that world.
  • Commands: take /rtp back. If another plugin owns /rtp, /jrtp, /wild or /randomtp, the console names it after startup. Set force-claim-aliases: true in commands.yml and justRTP claims them back. /justrtp:rtp always reaches justRTP.
  • A floor in void worlds. void_world.platform_block places a small platform under a player who would otherwise land on nothing in a VOID world. Off by default.
  • No safe spot? Now you know why. When most attempts fail for one reason (no ground, ungenerated chunks, excluded biomes, water or lava, protected regions), the console names the settings to change, and admins see the same hint in chat.
  • GUI that forgives typos. A button that shares a slot with decoration is shown, blocks like WATER display as their item, and one bad material name is logged instead of stopping /rtp gui from opening.

Updating from 3.7.x: drop in the new jar and restart. Your values carry over, new options arrive with their comments, and the old file is saved next to it first. On a network, set custom_worlds.<world>.max_radius on each destination server.

Arrive under a parachute, and steer where you land

Text version: sky drop

Sky drop: arrive under a parachute, and steer where you land.

Air RTP places the player high above a spot that already passed the safety search, opens a canopy and lets them glide down.

SettingDefault
Drop height120 blocks above the ground, always under max_y and the world ceiling
CanopyDisplay entity, white wool, gentle sway
GlideSlow falling, sprint pushes you forward
Fall damageCancelled while gliding
FlightTurned off for the drop, restored on landing

Sky drop, mid-air. The SKY DROP title, the canopy overhead and the landing coordinates in chat.

  • The ground is checked first. The drop starts above a spot from the normal safe search, so the ground straight below is already checked.
  • A real canopy, no extra plugins. The parachute is a native Display entity, so nothing else needs to be installed.
  • Four ways to drop in. /rtp air, mode: always for whole worlds, a zone's air drop toggle, or cross-server arrivals on a server that has it on.

Stand in the ring, the countdown does the rest

Text version: RTP zones

RTP zones: stand in the ring. The countdown does the rest.

Mark out a region, set an interval, and everyone inside is sent out together when it hits zero. Each player gets their own checked spot, spread apart by a distance you choose.

  • The entry title. "You have entered the queue!" is the default on-enter title, with its own sound. Both are editable per zone. (Screenshot subtitle: "The battle will begin soon.")
  • Every zone in one menu. /rtpzone gui shows world, target, interval, radius, shape and air drop. Left-click to visit, right-click to toggle the air drop. (Screenshot: zone "test1", world: world, targets: world, interval: 15s, radius: 100 to 5000, shape: CYLINDER, air drop: ON.)

Zone example:

KeyValue
intervalevery 60 s
targetarena_world, or survival:arena_world on another server
radius1000 to 10000
spread10 to 50 blocks between players
particlesOUTLINE, BEAM, SWIRL, PULSE, DUST_WALL or NONE
  • A wizard, not a config file. /rtpzone setup <id> with a cuboid, cylinder or hand-picked blocks, then answer the prompts in chat.
  • Players can opt out. /rtpzone ignore keeps one player out of every zone until they toggle it back.
  • The same zones everywhere. Push zones to the database and every backend pulls the same set with /rtpzone sync.

Four hologram engines

Text version: holograms

Holograms: four engines. Pick one, or let it pick.

Zone holograms count down live and are written in MiniMessage. Leave the engine on auto and justRTP takes the first one installed, in the order shown.

  1. FancyHolograms. Persistent holograms that survive a restart, with the configured scale applied.
  2. AxoHologram. Display based, with MiniMessage and PlaceholderAPI.
  3. PacketEvents. Virtual holograms sent per player, nothing spawned in the world.
  4. Display entities. Vanilla display entities, no extra plugin needed.

The countdown over a zone. "RTP Zone" and the seconds left, updated live. /rtpzone sethologram <id> places or moves it. (Screenshot: a hologram reading "RTP Zone" and "17s".)

The spot is found before anyone types the command

Text version: the location cache

The cache: the spot is found before anyone types the command.

A background worker keeps a pool of checked landing spots per world and keeps the chunks for the next few loaded. A cache hit goes straight to the player, with one last check right before they are placed.

The cache, live. Cached locations, queue size and teleports in progress, straight from /rtp performance. (Screenshot tooltip: "RTP Cache. Cached locations: 17, Queue size: 0, Processing now: 0".)

  • Grows and shrinks on its own. The pool grows with players online and live demand, and shrinks when TPS or free memory drops.
  • Good finds are kept. A good spot found by a live search is kept for the next player instead of being thrown away.
  • It remembers bad terrain. Areas that keep failing, like a big ocean, are re-rolled before any chunk is generated. The map is saved, so it improves across restarts.
  • Chunk tickets: the chunk is already loaded. The next spots per world are held with chunk tickets and the terrain around them is generated ahead, so the ground appears quickly on arrival.
  • Last check: checked again on the way out. A cached spot still has to be inside the player's radius band and the world border before it is used.

Build the terrain first

Text version: pre-generation

Pre-generation: build the terrain first, so the first teleport is not the slow one.

A far-out teleport usually stalls on chunk generation, not on the search. Pre-generate the band players actually land in and watch it fill in live.

  • Start from a menu. The estimated chunk count is shown before you click, and chunks already on disk are skipped. (Screenshot tooltip: "Start Generation. Estimated chunks: 140625. Already-generated chunks are skipped. World: world. Click to start".)
  • Progress while it runs. Percentage, chunks per second and time left, on the item tooltip. (Screenshot tooltip: "Generating world. Progress: 0.8% (1138/140625). Rate: 89 chunks/s. ETA: 26m 13s. Running".)
  • Square, circle or ring. A ring covers only the outer band, so you skip the middle nobody lands in.
  • Backs off when TPS dips. Adaptive mode pauses when TPS dips and resumes after. Steady mode keeps a fixed pace.
  • Feeds the cache while it runs. Safe spots are picked out of the fresh terrain, so the first teleports into a new area are fast too.
/rtp pregen world ring 8000 4000 adaptive
/rtp pregen map                       // a live colour map of the run
/rtp benchmark world 500 5000 25      // times the real search, writes the result to the log

Take your friends with you, or get matched with a stranger

Text version: parties and matchmaking

Together: take your friends with you, or get matched with a stranger.

Parties teleport as a group from one menu. The matchmaking queue drops players together the moment it fills.

  • Invite with a click. Click an online player's head. The invite arrives in chat with accept and deny buttons and expires on its own.
  • The leader runs the party. Members show online status and world, and the leader can kick with one click.
  • Three ways to land. Together around one spot, all on the same block, or each on their own. Air drop on or off.
  • Up to eight by default. party.max_size, cooldown and an optional cost with a refund if no spot is found.
  • The party outlives its leader. A leader who leaves hands the party to the longest-standing member, and quitting players are cleaned up.
  • Matchmaking that tells everyone. When someone joins the queue, the server sees a clickable Join message. Players can hide those with /rtp queue broadcasts off.

Matchmaking defaults:

SettingDefault
team_size2 (a 1v1)
spread_distance10 blocks apart
queue_timeout300 s

Nobody lands in lava, in a wall, or in someone else's claim

Text version: what counts as safe

What counts as safe: nobody lands in lava, in a wall, or in someone else's claim.

Every candidate goes through these checks before any player lands on it.

  • Solid floor, open air. The block underfoot has to hold a player and the space above has to be clear. Powder snow, fire, cobwebs, berry bushes and portals at foot or head height are rejected.
  • Biomes and borders. Whitelist or blacklist biomes so nobody lands mid-ocean, and the world border is respected even when a rank has a bigger radius.
  • Other people's land. WorldGuard regions and claims from SimpleClaimSystem, KingdomsX, Kingdoms and Towns and Nations are read before a spot is accepted.

Arrival. The player lands on checked ground with the arrival particles playing.

World typeHow it lands
NORMALOverworld style worlds, landing on the surface
NETHERKept below the roof (Y under 127), never on top of it
THE_ENDEnd islands, with dangerous floors and liquids rejected
VOIDSkyblock, oneblock and void arenas. Optional platform_block places a 3x3 floor when there is nothing below

Shapes: six landing shapes, global or per world: ROUND, SQUARE, RING, CROSS, STAR and SPREAD. Ring keeps players far out, spread puts more of them closer to the centre.

Teleports that happen without a command

Text version: automatic teleports

Automatic: teleports that happen without a command.

Send new players out, catch them after a death, or keep them out of the hub. Each one is off by default and switched on in config.yml.

OptionWhat it does
first_join_rtpTeleports a brand new player the moment they join, into a world you pick
first_world_rtpWaits until a new player first enters a listed world, then sends them out once
respawn_rtpTeleports after death, in all worlds or a list. Works on Paper and Folia
respawn_rtp.only_without_spawnOnly players with no bed, anchor or /spawnpoint are sent out
spawn_world_redirect/rtp typed in your hub world teleports into your main world
rtp_world_overrides/rtp in one world teleports in another, for example End to Overworld
jump_rtpDouble jump to teleport, per world, with its own cooldown

Redirects: typing /rtp <world> is always respected. Redirects only change a plain /rtp, and each one can tell the player where they were sent.

Charge for distance, or let ranks skip the wait

Text version: ranks and costs

Ranks and costs: charge for distance, or let ranks skip the wait.

Charge per world, per rank or per radius through Vault, and give ranks their own cooldown, warmup and range.

Paid, confirmed, charged. The chat shows the price, the confirm click and the charge. If the teleport fails, the money goes back. (Screenshot: title "Teleported! You have arrived at a new location." and chat "This teleport will cost 100. Type /rtp confirm or click [HERE] to continue.", "Teleport confirmed.", "You have been charged 100 for the teleport.")

Charge by distance. Price the far bands and leave the close one free, per world.

BandPrice
0 to 5000 blocksFree
5000 to 15000 blocks$250
15000 to 40000 blocks$900

Example values, set in custom_worlds.<world>.radius_pricing.

  • Ranks with their own rules. Permission groups carry their own cooldown, warmup, cost and radius per world. The highest priority group a player holds wins.
  • Bypass nodes. justrtp.cooldown.bypass, justrtp.delay.bypass, justrtp.cost.bypass and justrtp.jumprtp.bypass for staff and top ranks.

/rtp survival:world from anywhere on the network

Text version: across the network

Across the network: /rtp survival:world from anywhere on the network.

Install justRTP on each backend behind Velocity or BungeeCord and point them at one MySQL or MariaDB database. The destination server finds the spot, the player is sent over, and they arrive without a second warmup.

  • One database, every backend. A request is written for the destination server, which finds and reserves the spot. A timeout gives the cooldown back.
  • Radius limits that hold. Since 3.8.0 the destination caps every incoming radius to its own max_radius, so a lobby setting can no longer send players past it.
  • Redis if you want it. Cooldowns, warmups, the location cache and the teleport queue can live in Redis, with pub/sub for live updates. If Redis drops, it falls back to memory and MySQL.

Cross-server on the dashboard. The proxy module shows its status and marks that a restart is needed to fully apply. (Screenshot tooltip: "Cross-Server (Proxy). RTP between servers (needs MySQL). Status: Enabled. Restart required to fully apply. Left-click to toggle, right-click to edit settings.")

  • Cross-server buttons in /rtp gui, shown only when the target server is configured and the player may use it
  • Zone sync with push, pull and status commands
  • /rtp proxystatus checks MySQL and Redis from in game

Tune the whole plugin without opening a config file

Text version: admin tools and web panel

Admin tools: tune the whole plugin without opening a config file.

Every module is an icon with a green or red dot. Left-click toggles it, right-click opens its settings, and the menu stays open the whole time.

/rtp dashboard. One control panel for every module, wi

Similar projects

Plugin →