justRTP | lightweight & fast randomtp v3.5.7

A premium-quality Random Teleport plugin, offering unparalleled safety, performance, and more
[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
### NEW FEATURES
[1] Smooth teleport transition: pre-loads destination chunks plus short blindness/slow-falling/resistance so players don't see void. Configurable via smooth_transition block

### CRITICAL FIXES
[2] Nether RTP failing with UNKNOWN: 50 — air check now uses Material.isAir() so CAVE_AIR and VOID_AIR match
[3] Shutdown crash IllegalPluginAccessException — FoliaScheduler runs one-shots inline when the plugin is disabled
[4] End RTP failing on unexplored chunks — world_the_end added to default location_cache, and shouldGenerateChunks default flipped to true
[5] /rtp world getting stuck on the cross-server queue when a server alias matched a local world name — parser now checks worlds first
[6] Action bar showed 1m 22ss — removed trailing s, formatDuration already includes the unit
[7] Empty "" lines in chat_message are no longer skipped
[8] <x> <y> <z> <world> <player> placeholders work in effects.title, effects.action_bar, effects.chat_message
[9] PlaceholderAPI placeholders (e.g. %rp_left_click%) now expand in RTP GUI items
[10] RTP GUI close button can be removed cleanly (enabled: false, missing slot, or empty section)
[11] RTP GUI decoration items honor enchanted: true
[12] smooth_transition and zone_title auto-apply to existing installs — config-version bumped to 33
[13] zone_particles.yml is now registered with ConfigUpdater so future fields migrate automatically

### IMPROVEMENTS
[14] effects.teleport_delay_bar.text from config.yml now beats teleport.delay_actionbar from messages.yml
[15] Title and action bar effects no longer return early on whitespace-only text
[16] zone_particles.yml updated

### FROM PULL REQUEST #10
[17] Folia chunk-ticket and chunk.getEntities() calls in PlayerListener now wrapped in runAtChunk
[18] DatabaseManager.isConnected() is non-blocking — volatile flag, async 30s validator, reconnect-storm guard
[19] JustRTP.onDisable null-safe when rtpLogger failed to init
[20] AnimationManager double-recreation removed from reload — active animations preserved
[21] RTPMatchmakingManager.restart() called from reload, plus Math.max(1, tick_interval) clamp
[22] processMatch fallback uses the verified-safe central location instead of the unverified offset point
[23] Rich /rtp queue status — position, waited time, ready indicator, other-world queues
[24] Global zone_title config block — default countdown title for all zones
[25] <time> placeholder works in zone main_title too
[26] DataManager lazy init rewritten with volatile + DCL

### CONFIGURATION
[27] New smooth_transition block in config.yml
[28] New zone_title block in config.yml (PR #10)
[29] New matchmaking.status_* keys in messages.yml (PR #10)
[30] world_the_end added to default location_cache.worlds
[31] shouldGenerateChunks default flipped to true
[32] zone_particles.yml registered with ConfigUpdater
[33] config.yml v33, messages.yml v21

### COMPATIBILITY
[34] Verified on Paper 1.21.11, Paper 26.1, Folia 1.21.x, Folia 26.1

### FOR SERVER ADMINS
  • Nether UNKNOWN: 50 and "Pausing searches" — fixed
  • Shutdown IllegalPluginAccessException — fixed
  • /rtp world stuck on queue — fixed
  • Smooth transition is on by default; disable with smooth_transition.enabled: false
  • PAPI now works in RTP GUI items
  • <x> <y> <z> placeholders work consistently across title, action bar, and chat messages
### NEW FEATURES
[1] NEW FEATURE: Cylinder RTP zones - circular zone regions for round arenas, towers, and non-rectangular waiting areas
[2] NEW FEATURE: Block-selection RTP zones - pick individual blocks with a wand to build irregular, non-cubic arena shapes
[3] NEW FEATURE: Shape-aware zone wands - each shape gets its own wand (BLAZE_ROD for cuboid/blocks, END_ROD for cylinder) with shape-specific lore
[4] NEW FEATURE: Zone particle system - 5 premade animated styles (OUTLINE, BEAM, SWIRL, PULSE, DUST_WALL) plus NONE, all shape-aware
[5] NEW FEATURE: Live setup particle preview - while in /rtpzone setup, particles show the current selection in real time so admins can see exactly what they're building
[6] NEW FEATURE: Per-zone particle style configurable via /rtpzone particles <zone_id> <style> with tab completion
[7] NEW: /rtpzone setup <id> [cuboid|cylinder|blocks] - choose zone shape at setup time (defaults to cuboid for backward compat)
[8] NEW: /rtpzone done - finish block selection and continue setup flow
[9] NEW: Cylinder setup - left-click sets center, right-click on edge measures radius, or type radius in chat; Y-range configurable per zone or auto for full world height
[10] NEW: Block setup - left-click adds block, right-click removes, shift+left-click clears selection
[11] NEW: New zone_particles.yml config with per-style particle, color, density, and animation speed settings

### CRITICAL FIXES
[12] FIXED: respawn_rtp not working on Folia - PlayerRespawnEvent fires during a player state transition on Folia and returns stale world data, causing the respawn teleport to never trigger. Switched to PlayerPostRespawnEvent (Paper API) which fires after respawn completes, ensuring reliable respawn RTP on both Paper and Folia servers
[13] FIXED: Zone holograms not appearing after server restart, player rejoin, or world change - visibility was only pushed once at hologram creation, missed if timing did not line up with player join. Added a periodic 5-second visibility sweep over all online players plus three staggered join refreshes (1s, 3s, 6s after join). Holograms now appear without needing /rtp reload.
[14] FIXED (PR #9): Folia thread-safety violations across NearClaimRTPManager, HologramManager cleanup, JumpRTPListener, RTPService border tracking, and bundled bStats Metrics. Async block reads, off-region entity removals, parallel HashMap writes, and hardcoded Bukkit.getScheduler() calls all corrected for Folia 1.21.x and 26.1
[15] FIXED (PR #9): Matchmaking spread distance bug - per-player safety search was passing absolute coordinates as min/max radii, scattering duel partners hundreds of blocks apart on servers with non-zero spawn coords. Fixed to pass proper (0, safety_search_radius) distances
[16] FIXED: RTPCommand nearplayer was using synchronous player.teleport() while every other path used teleportAsync - inconsistency causing potential hangs on Folia, now async everywhere

### COMPATIBILITY
[17] COMPATIBILITY: Minecraft 26.1 (released March 24, 2026, protocol 775, data version 4786) verified working alongside 1.21.11. Plugin compiled against Paper 1.21 API with api-version: '1.21' so a single JAR runs on both versions. No code changes needed - new 26.1 blocks (e.g., GOLDEN_DANDELION) and data-driven villager trades do not affect teleport logic. Server-side Java 25 requirement for 26.1 does not affect the plugin (Java 21 bytecode runs on the Java 25 JVM)

### CONFIGURATION
[18] NEW: shape field on zone config entries - CUBOID, CYLINDER, or BLOCKS
[19] NEW: Cylinder fields - center, radius, min-y, max-y
[20] NEW: Blocks field - blocks: [x,y,z, ...] list of block coordinates
[21] NEW: particle-style field per zone - persists chosen particle style across restarts
[22] NEW: zone_particles.yml - 5 premade styles + global tuning (update_interval, render_distance, max_particles_per_tick, setup_preview)
[23] NEW: matchmaking.safety_search_radius (default 5) - tunable safety search radius for matchmaking spread (PR #9)
[24] CONFIG: rtp_zones.yml version bumped to 13 - existing cuboid zones auto-migrate without changes
[25] CONFIG: messages.yml version bumped to 21 - new zone setup messages for cylinder/block modes and particle commands

### IMPROVEMENTS
[26] IMPROVED: Particle system uses chunk-batched dispatch on Folia (one task per chunk instead of per particle) and direct inline spawning on Paper - no scheduler overhead in either case
[27] IMPROVED: Particle Y-range automatically clamped to a window around the zone center, so auto Y-range cylinders/cuboids no longer waste the per-tick particle budget on locations far below the player's view
[28] IMPROVED: Zone region logic refactored to a ZoneRegion interface - cleaner separation of cuboid/cylinder/blocks containment checks
[29] IMPROVED: Tab completion for /rtpzone setup <id> <shape>, /rtpzone done, and /rtpzone particles <zone> <style>
[30] IMPROVED: Respawn RTP scheduler delay bumped from 1 to 2 ticks for extra entity state stability
[31] IMPROVED: Early-return safety check added to respawn RTP handler when player goes offline during the delay
[32] IMPROVED: Zone setup messages carry a <shape> placeholder so admins can see which shape they started
[33] IMPROVED (PR #9): JumpRTPListener atomic via ConcurrentHashMap + compute(...) - parallel PlayerMoveEvent on Folia no longer races
[34] IMPROVED (PR #9): RTPService border-warning set is now ConcurrentHashMap.newKeySet() - prevents duplicate border warnings under parallel findSafeLocation
[35] IMPROVED (PR #9): Tab completer now exposes queue, matchmaking, sendlocation plus their sub-args and world suggestions
[36] IMPROVED: Existing zones loaded without particle-style field automatically pick up the global default style on next reload

### FOR SERVER ADMINS
  • Existing cuboid zones continue to work unchanged (auto-detected when shape is missing)
  • Circular arenas: /rtpzone setup my_arena cylinder
  • Non-cubic arenas (stairs, L-shapes, scattered platforms): /rtpzone setup my_arena blocks
  • All three shapes share the same teleport, hologram, particle, and effects system
  • Change zone particles live: /rtpzone particles my_arena swirl (or outline, beam, pulse, dust_wall, none)
  • If you run Folia/Canvas and respawn_rtp wasn't teleporting players on death, this update fixes it
  • Holograms missing on restart/rejoin/world change? Fixed in this version - no more /rtp reload workaround needed
  • Matchmaking duels scattered too far apart? Fixed - and tunable via matchmaking.safety_search_radius
### NEW FEATURES
[1] NEW FEATURE: Void World RTP Support - new VOID world type for skyblock, oneblock, and void arena worlds
[2] NEW: void_world.spawn_y config option (default: 64) - configurable Y level for void world spawns when no solid ground exists
[3] NEW: Void worlds prefer solid ground when available (platforms, islands) and fall back to spawn_y only when the world is truly empty
[4] NEW: Full biome restriction and region protection support in void worlds

### CRITICAL FIXES
[5] FIXED: Inventory drag exploit affecting ALL server GUIs
[6] FIXED: Folia threading violation in onPlayerDropItem - accessing ItemEntity state from wrong region thread caused IllegalStateException on Folia/Canvas servers. Now checks setup mode first (skips entity access for 99.9% of events) with safe fallback for cross-region edge cases

### IMPROVEMENTS
[7] IMPROVED: Update checker endpoint issue fixed
[8] IMPROVED: Void world spawn Y is bounds-checked against world min/max height to prevent out-of-bounds errors
[9] IMPROVED: SafetyValidator correctly skipped for void world locations to prevent false rejections

### CONFIGURATION
[10] CONFIG: New VOID option in world_types section - set any world to "VOID" for void world RTP support
[11] CONFIG: New void_world section with spawn_y setting for void world spawn height
[12] CONFIG: All changes fully backward compatible
EULA: Free EULA
7,394 Views
627 Downloads
Jul 2, 2025 Published
Jun 24, 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
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
32 purchases
A survival/kit duel plugin.
5.00 star(s) 1 ratings
31 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
#1 BuiltByBit Plugin ~ Protects your server from crash packet exploits ~ Folia Support
5.00 star(s) 141 ratings
4,208 purchases
7,394 Views
627 Downloads
Jul 2, 2025 Published
Jun 24, 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
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
32 purchases
A survival/kit duel plugin.
5.00 star(s) 1 ratings
31 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
#1 BuiltByBit Plugin ~ Protects your server from crash packet exploits ~ Folia Support
5.00 star(s) 141 ratings
4,208 purchases
Top