justRTP | RandomTP, evolved v3.5.9-HOTFIX

A premium-quality Random Teleport plugin, offering unparalleled safety, performance, and more
### 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
[1] Added Paper 26.1 / Minecraft 26.1 support compatibility
[2] Updated update checker endpoint from api.kotori.ink to api.deltura.net - old domain was retired, causing update checks to silently fail
[3] Fixed some issues with 1.21.11 paper
[1] Fixed "unknown world" console errors on startup - ConfigUpdater now reads config-version via plain text instead of triggering Bukkit Location deserialization on rtp_zones.yml and cache.yml
[2] Fixed hologram text changes in holograms.yml not applying after restart or reload - FancyHologramManager was preserving old persistent data instead of reading updated config
[3] Fixed hologram templates not reloading on /rtp reload - reloadTemplates() now applies config changes to all active FancyHolograms immediately
[4] Added text-based version update for files containing serialized Bukkit objects (rtp_zones.yml, cache.yml) to prevent Location deserialization errors during config migration
[5] Improved FancyHologram lifecycle - holograms.yml is now the single source of truth for templates on create, load, and reload
[6] Fixed /rtp command showing usage message instead of working - alias enabled check defaulted to false, breaking all aliases when commands.yml was missing, empty, or failed to load
[1] SECURITY FIX: GUI Item Extraction Exploit - Players can no longer drag items from GUI during lag
[2] SECURITY: Comprehensive inventory drag event protection with multi-layer validation
[3] SECURITY: Enhanced click protection - blocks shift-click, hotbar keys (1-9), and all interaction types
[4] NEW FEATURE: Console-Initiated RTP Message - Custom message when console/portal executes RTP
[5] NEW: teleport.console_initiated message key for automated RTP systems
[6] NEW: Full support for command blocks, portals, and automated teleportation
[7] FIXED: Race condition in matchmaking queue join - synchronized queue size reading
[8] FIXED: NPE prevention in async teleport chains - added player online checks
[9] IMPROVED: GUI security with InventoryDragEvent handler blocking all drag attempts
[10] IMPROVED: Click validation checks inventory type, shift-click, and hotbar button presses
[11] IMPROVED: Debug logging for security events - tracks all blocked GUI interactions
[14] MESSAGES: Added console_initiated key for portal/console RTP notifications
[15] THREAD SAFETY: NPE-safe async chains with online status validation
[16] COMPATIBILITY: Fully backward compatible - all security fixes are transparent
[1] NEW FEATURE: Economy Refund System - Players automatically refunded if RTP fails after payment
[2] NEW FEATURE: RTP Matchmaking Queue - Players can queue together for PvP duels (1v1, 2v2, etc.)
[3] NEW FEATURE: Console Send Location Command - Admins can teleport players to specific coordinates
[4] NEW: economy.refund_on_fail config option (default: true) - enables automatic refunds on failure
[5] NEW: Complete matchmaking system with /rtp queue join/leave/status commands
[6] NEW: /rtp sendlocation <x> <y> <z> <world> <player> admin command for precise teleports
[7] NEW: Matchmaking configuration section with team_size, spread_distance, tick_interval, queue_timeout
[8] NEW: VaultHook.depositPlayer() method for economy refunds
[9] IMPROVED: Economy system now handles failed teleports gracefully with automatic refunds
[10] IMPROVED: Players can find dueling partners via matchmaking queue system
[11] IMPROVED: Admins have more control with direct coordinate teleportation
[12] CONFIG: New matchmaking section with full queue configuration options
[13] CONFIG: New economy.refund_on_fail option for failed RTP refunds
[14] MESSAGES: Added 14+ new message keys for matchmaking, refunds, and sendlocation
[15] PERMISSIONS: New justrtp.command.rtp.matchmaking permission for queue access
[16] PERMISSIONS: New justrtp.bypass.default_world permission added
[17] COMPATIBILITY: Fully backward compatible - all new features are optional
[1] NEW FEATURE: Auto-open GUI option - /rtp can now automatically open the GUI instead of direct teleport
[2] IMPROVED: Disabled by default to preserve traditional /rtp behavior
[3] FEATURE: Hub servers can force players to choose worlds visually via auto-open GUI
[4] FEATURE: Traditional /rtp <world> commands still work for direct teleportation
[5] FEATURE: Added command alias support – /rtp base can now be configured as an alternative command
[6] FEATURE: WorldGuard support for /rtp nearclaim – allows RTP near protected regions
EULA: Free EULA
7,600 Views
642 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,600 Views
642 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