justRTP | RandomTP, evolved v3.5.9-HOTFIX

A premium-quality Random Teleport plugin, offering unparalleled safety, performance, and more
[1] Made world permissions actually controllable, in the gui and the command alike. Before, the gui checked a node the command never used (so regular players saw an empty menu full of filler glass), while /rtp <world> let everyone through unless a node was explicitly denied, so restricting worlds per group never really worked. Both now follow one clear rule: the world you are standing in is always available, justrtp.command.rtp.world unlocks every world, and justrtp.command.rtp.world.<world> (for example justrtp.command.rtp.world.world_nether) unlocks exactly that one, which also makes it appear in the gui. An explicit denial of justrtp.command.rtp.<world> still always wins. The gui shows exactly what the player can use, nothing more, and the docs got a full section with LuckPerms examples.

[2] Closed a paid teleport loophole. If a payment confirmation was still pending, the next /rtp request (or gui click) skipped the confirmation entirely and started right away, without ever charging the player. A new paid request now always asks for its own confirmation and replaces the old one, and each confirmation keeps its own full 30 second window.

[3] Fixed zone particles turned off with /rtpzone particles <id> none coming back after a reload or restart. Choosing none was never written to rtp_zones.yml, and a zone without a saved style falls back to the default style on load, so the particles quietly returned. The choice is stored explicitly now and none stays none.
[1] A broken config.yml can no longer wreck your settings. Until now, if you saved a config with a YAML mistake in it, /justrtp reload would log an error to the console but then happily report success in game while quietly running on the plugin's default settings, which looked exactly like JustRTP resetting itself. Now the file is checked before it is applied: if it does not parse, your previous settings stay active and you get told in game and in the console which line the error is near, so you can fix it and reload again. The config updater got the same guard, so updating the plugin with a broken config file leaves your file untouched instead of overwriting it with defaults.

[2] Fixed the /rtp gui menu popping back open when you click. The menu was being closed inside the click itself, which races the client and makes the window reopen instead of teleporting you. Clicks are handled cleanly now: pick a world and you teleport, hit close and it closes. The menu is also properly fenced off, so clicking around in your own inventory while it is open can no longer accidentally trigger a teleport, and other chests can never get mixed up with it. On top of that, three settings that were always in the config finally do something: the open and click sounds actually play, and auto_refresh_ticks live-updates the cooldown and cost lines on the world buttons while the menu is open, updating the items in place without any flicker.

[3] Fixed End teleports landing players inside terrain on height boosted End worlds like Nullscape. The End search assumed the vanilla height and never looked above Y 120, but Nullscape raises the End to 384, so the scan started inside the landmass and the first air pocket it accepted could be a sealed cave deep inside a mountain of end stone. The whole pipeline follows the world's real height now, not just the search: the safety validators and zone RTP had their own hardcoded 120 caps that would have thrown away the good spots the new search finds, and those are gone too. Anything below the surface needs proper headroom before it counts as safe, so a porous landmass can never swallow a player into a two block pore. Vanilla End behavior is unchanged.

[4] Fixed the overworld check rejecting mountain tops. A leftover from the old height limit meant any spot above Y127 was thrown away and searched again, so on 1.18+ terrain every jagged peak wasted attempts and a mountainous radius could fail entirely. The ceiling is the world's real build limit now, so you can land on top of a mountain like anywhere else.

[5] Reworked how sound names are read from configs. The old resolver leaned on an API that newer server builds ship differently, which showed up in error trackers as IncompatibleClassChangeError and could leave configured sounds silently unplayed. Sound names now map to their real registry entry and play through the API that has been stable for years, so both enum style names like BLOCK_NOTE_BLOCK_PLING and key style names like block.note_block.pling just work, on every supported version. Zone particle styles got the same treatment and survive future renames instead of quietly turning into END_ROD.

[6] Hardened item handling against other plugins' leftovers. An item with a corrupted data patch written by another plugin could make the zone wand check blow up with a NullPointerException deep in the server internals, and dropping a wand at the exact moment of a teleport on Folia could trip a cross region error. Both are guarded now: broken items are simply treated as not a wand, and the drop is handled safely no matter which region owns it.
[1] Made the addon system a lot sturdier. Addons now hold on to their own class loader for as long as they are running, so ones with menus or anything that loads a bit later keep working instead of erroring out. Whether an addon is turned on or off is now remembered between restarts, and one broken addon can no longer stop the rest from loading. Disabling an addon now tears it down completely: its menus, listeners and placement rules are all removed on the spot, so nothing lingers or leaks even if you flip addons on and off all day, and two addons running side by side can never clear each other's settings.

[2] Added a placement API and a new RTPBehavior addon that uses it. Drop the RTPBehavior jar into your addons folder and it takes over where /rtp lands, with its own settings in addons/RTPBehavior/config.yml: allow water or lava, surface only, height limits, block rules, and biome allow, deny or priorities. You can edit all of it in game from a tile on /rtp dashboard, no config editing needed: a biome picker that lists every biome on your server with sorting by name, listed, or weight, a block editor where you add the block in your hand or remove listed ones, and per biome priority weights. It can also run commands or a message after a teleport. It still honors your region and claim protection, and with the addon not installed /rtp works exactly as before. (Its under review)

[3] Fixed matchmaking taking ages. A ready match, like a 1v1 with both players queued, used to sit and wait up to a full minute before teleporting because it only checked on a slow timer. Now a match fires the instant the queue fills, so you get sent in right away. A background sweep still runs for timeouts. It is sturdier too: if the search for a spot ever fails partway through a match, nobody is left stranded in limbo, and you can no longer be pulled into two matches at once by re-queueing at just the wrong moment.

[4] Added a matchmaking action bar. While you wait in the queue you get a live line showing how many are queued, how many more are needed, and your wait time. The moment your match is found it does not blink out either, it switches to a Match Ready line while you get teleported in. Fully configurable under matchmaking.action_bar in config.yml, turn it off or rewrite both the queue text and the ready text however you like.

[5] The addon commands actually work now. /justrtp addons list, enable, disable, and reload all do what they say, and whether an addon is on or off is remembered across restarts instead of needing a full restart to turn one back on.

[6] Still runs clean on Paper, Folia and Folia forks like CanvasMC across 1.21.11 up to 26.2. Nothing to change on your end, drop the jar in and go.

[7] Added a second addon, RTPPortals. Drop it in the addons folder and build animated random teleport portals with /rtp portal create <id> [design] [targetWorld]. Walk into one and it sends you off somewhere random. It ships with ten portal style VFX designs (nether, ender, void, aurora, prismatic, inferno, soul, runic, frost, sculk), and every one is a proper spinning gate now: a wavy rim, a shimmering surface that fills the frame, a swirling vortex core, orbs skimming the edge and energy motes rising up through it. Grab a wand with /rtp portal wand, left and right click two blocks, then just run /rtp portal create <id> and it builds that whole box into a portal, any size or shape you like, and clears your selection for the next one. Each portal's effect size is adjustable too, from a small doorway to a huge gateway, with a default in the config. If someone would rather not get pulled in, /rtp portal ignore turns it off just for them. You also pick how each portal catches players: a plain radius with separate horizontal and vertical reach, a zone that follows the effect size so simply touching the visible gate teleports you, or the gate itself so you have to walk right through it. Bigger effect, bigger zone. Manage everything on the dashboard or with /rtp portal gui, which uses the same menu style as the rest of JustRTP and updates in place, where you set each portal's design, effect size, target world, and teleport radius, and can jump to or delete them. The effects only draw when a player is within the configurable render distance, so idle portals cost nothing. Every command tab completes, every setting is live and reloadable, and it keeps its own config and portals file. Works on Paper and Folia. (Its under review)

[8] Tidied up /rtpzone list. Each zone now shows as a clear two line entry with its world, shape, interval, targets, radius, particle style, and whether it has a hologram, instead of the old single bare line.

[9] Fixed cross server teleports haunting you after a rejoin. A request row could sit in the database forever if the other server never processed it, for example a lobby without the plugin, and when you reconnected to your original server the plugin would grab that stale entry and teleport you to coordinates that were checked against the other server's terrain, which on a custom generator like Nullscape means straight inside a wall. Three things changed: a server now only acts on requests actually addressed to it, every request expires on a timer so nothing lingers (the expiration that was requested in issue #13), and as a last line of defense the arrival spot is re-checked against the terrain that really exists before Yous land, and quietly moved to the nearest safe Y if something does not match. Dead transfers get cleaned up the moment you rejoin.

[10] Did a deep stability and safety pass over the whole plugin and both addons. Every timer and delayed task is now clamped so it can never trip up Folia's scheduler, and any that get refused during a shutdown fail quietly instead of throwing. Config saves from a menu, on the dashboard and in both addons, now happen off the main thread and are written copy on write, so a busy admin clicking around never causes a stutter and two people editing at once can never corrupt a file. The safety search now hands full placement control to an addon in every world type including void, and a whitelist left empty by mistake no longer makes RTP fail forever, it just means no restriction. Nothing to set up, it all simply runs steadier.
[1] Fixed a teleport getting stuck. If you ran /rtp to a world, then ran /rtp to another server, came back, and every /rtp after that said a teleport was already in progress until the server restarted, that is gone. Your teleport state now gets cleared when you leave, get kicked, or get sent to another server, so coming back leaves you free to RTP straight away.

[2] Added a safety timeout on top of that. Even if a teleport gets stuck for some other reason, the lock now releases itself after a set time instead of holding forever. You can tune it with performance.processing_timeout_seconds in config.yml, and the default of 30 seconds is fine for most servers.

[3] Cleaned up a couple of related leftovers. A pending paid teleport confirmation is now dropped when you disconnect instead of lingering, and the matching teleport state is tidied up on quit and kick as well.

[4] Checked it all still runs clean on the latest builds. 1.21.11, 26.1.2, and 26.2 work, and MySQL and Redis behave the same across them since they talk to your database, not to the game version.

[5] Made cross server teleports land smoother.
[1] JustRTP now runs across Minecraft 1.21.11 up to 26.2, on Paper, Spigot and Folia. It loads the same as before, nothing for you to change.

[2] Fixed the particles that swirl around RTP zone holograms not showing on newer versions. Particle and sound names in your configs are now read in a way that keeps working as the game renames things, instead of silently breaking on a future update.

[3] Did a deep pass on memory and stability. A handful of background tasks used to quietly stack up every time you ran /rtp reload, the teleport queue, the location cache refill, the database and redis keepalives, and the hologram timers. On servers that reload a lot this slowly ate up CPU and memory over time. They are all tracked and stopped properly now, so reloading stays light no matter how many times you do it.

[4] Cleaned up per-player data that was never being cleared. Cooldowns and small tracking bits for the GUI, spectator switch, near-claim and jump RTP used to linger for every player who ever joined and grow forever on long-running servers. They now get pruned when players leave or their cooldown runs out, so memory stays flat.

[5] Tightened up Folia safety. Cross-server transfers, the delay particle animation, and the packet hologram visibility checks now run on the correct thread, which clears out a class of async-access errors and the odd dropped cross-server transfer under load.

[6] Trimmed wasted work on busy servers. The plugin no longer re-reads mysql.yml from disk on a timer, no longer re-parses the whole config every time a world loads, and the chatty zone-teleport search logging only shows when debug is turned on.

[7] Made /rtp a lot faster. The plugin keeps a small stash of ready safe spots in the background, but until now it was filling that stash and never actually using it, so every single /rtp searched the world from scratch. It pulls from the stash now, so on worlds with the location cache turned on a teleport is close to instant. If the stash happens to be empty, or the spot wouldn't fit your rank's radius, it quietly searches live like before, so nobody ever lands somewhere they shouldn't.

[8] Trimmed the search itself too. When it finds a spot it no longer loads the same chunk a second time to re-check it, it stops looking up the same settings over and over mid-search, and it skips building debug text unless you actually have debug turned on. Where you land doesn't change at all, it just gets there with less work per attempt.
[1] JustRTP works with AxoHologram now, the same way it already worked with FancyHolograms. Drop AxoHologram on your server and your RTP zone holograms can render through it, no setup, nothing to wire up. If you don't run a hologram plugin at all, JustRTP still falls back to its own display entities like always.

[2] You don't have to pick an engine yourself. On startup JustRTP looks at what's installed and goes with the best one it finds, FancyHolograms first, then AxoHologram, then PacketEvents, then plain display entities. If you'd rather lock it to one, set preferred-engine in holograms.yml to whichever you want.

[3] Your hologram lines don't change. AxoHologram draws the exact text you already have in holograms.yml, with full MiniMessage and per-player PlaceholderAPI, so your gradients, colours and the countdown look the same as before. JustRTP handles the zone holograms start to finish, so you won't get duplicates or stray ones left behind after a restart.

[4] It doesn't care which Java you're on. Whether your server runs Java 21 or Java 25, the AxoHologram link just works.

[5] There's an admin dashboard now. Type /rtp dashboard and a menu opens with every JustRTP feature laid out as an icon, a green dot if it's on and a red dot if it's off. It's staff only, behind justrtp.command.dashboard which is op by default.

[6] Left-click a module to flip it on or off. The change saves and reloads right then, and the menu doesn't close on you, the icon just updates in place so you can keep working down the list.

[7] Right-click a module to open its settings. The on/off switch sits at the top and the values that matter for that feature are below it, stuff like the Jump RTP cooldown, the matchmaking team size, the economy cost or the near-player radius.

[8] True or false settings flip with a single click, no typing. For numbers and text the menu steps aside and lets you type the new value in chat, and you can type cancel any time to back out. Once you're done it saves and drops you back into the same screen with the new value showing.

[9] Pretty much everything is in there. Location cache, teleport queue, smooth transition, the RTP GUI, spectator switch, Jump RTP, near-player, near-claim, matchmaking, first-join RTP, respawn RTP, spawn redirect, the zone countdown title, the /rtpzone command, economy, the cross-server proxy, redis, the update checker and debug logging, plus a General tile for your cooldown, delay, attempts and region-claim setting.

[10] Your config.yml keeps everything you wrote. When the dashboard saves a change it finds the one line it needs and edits just that line, so all your comments and formatting stay exactly where they were, nothing gets reformatted or wiped. If it can't find a setting it tells you in chat and leaves the file alone.

[11] It won't switch on anything risky for you. Economy, the cross-server proxy and redis stay off until you turn them on yourself, since those need Vault, MySQL or Redis set up first. You can still manage all of them from the menu, it just won't enable them behind your back.

[12] A few things need a restart and the dashboard says so. The proxy, redis and the update checker get a little restart marker, and when you turn one on it saves straight away but reminds you a restart is needed before it fully kicks in. Everything else takes effect live.

[13] Jump RTP turns on and off without a restart now, whether you do it from the dashboard or with /rtp reload. Before, that one needed a full restart to take hold.

[14] The console gives you a quick rundown on startup. Right under the JustRTP banner there's a Dashboard line and a two-column list of every module with a check or a cross next to it, and a restart marker where it applies, so you can read your whole setup straight from the log.

[15] Upgrading is painless. Drop in the new jar and your settings carry over. New options get added to your configs on their own, your old files are backed up first, and config.yml is never regenerated, so your comments and layout stay put.

[16] Works on Paper 1.21.11, 26.1.x and Folia, same as always, and it's fully Folia-safe.
### FIXES

[1] Fixed: server lag when JustRTP was installed on Paper 26.1.2. TPS should now stay at 20 with the plugin loaded
[2] Fixed: teleports felt slow or made the server stutter. Teleports are now smooth and don't hit the server's main loop
[3] Fixed: some background searches were generating extra chunks in worlds you don't actively play in. They no longer do that

### COMPATIBILITY

[4] Works on Paper 1.21.11, Paper 26.1.2, and Folia

### FOR SERVER ADMINS

  • Just drop the new JAR in and restart. Nothing to change in your config
  • Your settings stay the same
### CRITICAL FIXES
[1] TPS dropping to ~10 immediately after installing the plugin on Paper 26.1.2. The location cache was hammering chunk generation: shouldGenerateChunks default in 3.5.2 was true and the fill worker had no throttle. Default reverted to false (chunk generation now opt-in per world)
[2] Sustained TPS drop after 3.5.2 upgrade traced to background cache filling for world_the_end with generate_chunks: true. End chunks are sparse and unexplored — every cycle generated dozens of chunks. Default for End flipped to generate_chunks: false
[3] HologramManager startup sweep was iterating every loaded chunk in every world. Replaced with targeted lookup of known hologram UUIDs from display_entities.yml
[4] PacketHologramManager particle task fired every 10 ticks even when no holograms existed. Now early-returns on empty
[5] smooth_transition preload was hardcoded to generate chunks (PaperLib.getChunkAtAsync(.., true)). Now non-generating by default; the actual teleport still loads/generates the destination. Configurable via smooth_transition.generate_chunks
[6] smooth_transition.chunk_preload_radius default lowered from 2 (5×5 = 25 chunks) to 1 (3×3 = 9 chunks)
[7] Cache refill worker now throttles between successive fills via new location_cache.fill_throttle_ticks (default 10)
[8] Background cache for a misconfigured world no longer retries forever. New location_cache.fail_world_disable_after_attempts (default 3) disables cache for a world that fails N consecutive cycles. Re-enable via /rtp reload after fixing config
[9] JumpRTPListener no longer reads YAML on every PlayerMoveEvent. ConfigManager caches jump_rtp.enabled and jump_rtp.enabled_worlds as fields populated on reload. New helper isJumpRtpEnabledInWorld(worldName) does one HashSet lookup per move

### CONFIG
[10] New location_cache.fill_throttle_ticks (default 10)
[11] New location_cache.fail_world_disable_after_attempts (default 3)
[12] New smooth_transition.generate_chunks (default false)
[13] world_the_end.generate_chunks default changed from true to false in location_cache.worlds
[14] smooth_transition.chunk_preload_radius default lowered to 1
[15] location_cache.cache_size and location_cache.refill_interval_seconds keys exposed in defaults

### COMPATIBILITY
[16] Verified on Paper 26.1.2, Paper 1.21.11, Folia 1.21.x.

### FOR SERVER ADMINS
  • If you saw sustained low TPS after installing 3.5.2 or earlier 3.5.3 — this build fixes it. No config edits required
  • Want background cache for a specific world? Set location_cache.worlds.<world>.generate_chunks: true explicitly
  • End RTP still works on demand (per /rtp world_the_end command). The change only affects passive background pre-caching
  • If a misconfigured world keeps spamming "Failed to find a safe location" warnings, the cache will now auto-disable for that world after 3 cycles. Fix the config and /rtp reload to re-enable
EULA: Free EULA
7,556 Views
636 Downloads
Jul 2, 2025 Published
Jul 4, 2026 Updated
5.00 star(s)
Average rating (11)
6.5 MB File size
Open source
  1. Yes
DRM-free
  1. Yes
Unobfuscated
  1. Yes
AI use in marketing
No
AI product disclosure
AI was used for configuration polishing, documentation, update logs, and limited development assistance to simulate real-world server environments and help identify bugs under high load.
Game mode
  1. Survival & SMP
  1. Towny
  1. Earth
Type
  1. Gameplay
  1. World
Game mode
  1. Survival
  1. Towny
  1. Earth
Game mode (legacy)
  1. Survival
  1. Towny
  1. Earth
Supported software
  1. Spigot
  1. Paper
  1. Folia
Supported versions
  1. 26.1
  1. 1.21.11
  1. 1.21.8
  1. 1.21.5
  1. 1.21.4
  1. 1.21.2
  1. 1.21
Supported languages
  1. English
Includes DRM
No
Source access (legacy)
Closed source & obfuscated
Creator
Owner
Recommended for you
A modern, high-performance, and network-ready punishment system.
5.00 star(s) 1 ratings
34 purchases
A survival/kit duel plugin.
5.00 star(s) 1 ratings
31 purchases
RPG Skill Tree Plugin with Custom Enchant Skills
Not yet rated
0 purchases
4.50 star(s) 3 ratings
6 purchases
Host all type of events your way - modular arenas, GUI setup, cross-server ready.
Not yet rated
1 purchase
7,556 Views
636 Downloads
Jul 2, 2025 Published
Jul 4, 2026 Updated
5.00 star(s)
Average rating (11)
6.5 MB File size
Open source
  1. Yes
DRM-free
  1. Yes
Unobfuscated
  1. Yes
AI use in marketing
No
AI product disclosure
AI was used for configuration polishing, documentation, update logs, and limited development assistance to simulate real-world server environments and help identify bugs under high load.
Game mode
  1. Survival & SMP
  1. Towny
  1. Earth
Type
  1. Gameplay
  1. World
Game mode
  1. Survival
  1. Towny
  1. Earth
Game mode (legacy)
  1. Survival
  1. Towny
  1. Earth
Supported software
  1. Spigot
  1. Paper
  1. Folia
Supported versions
  1. 26.1
  1. 1.21.11
  1. 1.21.8
  1. 1.21.5
  1. 1.21.4
  1. 1.21.2
  1. 1.21
Supported languages
  1. English
Includes DRM
No
Source access (legacy)
Closed source & obfuscated
Creator
Owner
Recommended for you
A modern, high-performance, and network-ready punishment system.
5.00 star(s) 1 ratings
34 purchases
A survival/kit duel plugin.
5.00 star(s) 1 ratings
31 purchases
RPG Skill Tree Plugin with Custom Enchant Skills
Not yet rated
0 purchases
4.50 star(s) 3 ratings
6 purchases
Host all type of events your way - modular arenas, GUI setup, cross-server ready.
Not yet rated
1 purchase
Top