
justRTP
A premium-quality Random Teleport plugin, offering unparalleled safety, performance, and more
- Загрузки
- 939
- Подписчики
- 7
- Обновлён
- 4 июля 2026 г.
- Лицензия
- CC-BY-NC-4.0
Опубликован 2 июля 2025 г.

ㅤㅤㅤ
ㅤㅤㅤ
JustRTP
A random teleport plugin for Paper, Folia, and proxy networks. It drops players at a safe spot, handles the cooldowns, costs, and warmups around it, and adds an arena style zone system, an admin dashboard, and full cross server support on top. The goal is to stay fast and stable on busy servers and across a network.
Runs on Minecraft 1.21.11 up to 26.2, on Paper, Folia, and Folia forks like CanvasMC.
How it works
A safe /rtp looks for a spot that is not lava, not inside a wall, and not in a biome or block you have blacklisted, then teleports the player there. It handles the Overworld, Nether, and End, plus a VOID type for skyblock and void worlds. A background location cache keeps ready spots on hand, so a normal /rtp lands close to instant instead of searching live every time.
Everything is set per world: radius, center, cooldown, warmup, cost, which worlds are allowed, and the biomes or blocks to avoid. Permission groups can override the radius, cost, cooldown, and delay for ranks like VIP, by priority.
Ways to teleport
/rtpto a random safe spot in the current or default world/rtp <world>for a specific world with its own radius, cost, and rules/rtp <world> <min> <max>for a custom radius, with optional radius based pricing tiers/rtp <player>to teleport someone else/rtp nearplayerto land near a random online player/rtp nearclaimto land near a claimed base (SimpleClaim, GriefPrevention, Lands, WorldGuard), and the subcommand name is renameable/rtp location <id>for named locations, each with its own permission, cost, and radius/rtp guifor a clickable world picker with live cooldowns and costs/rtp spectatorfor a circular floating head world switcher, handy for staff- Matchmaking queue that pairs players for 1v1, 2v2, or team RTP with
/rtp queue - Jump RTP to teleport by double jumping, per world, with its own cooldown
Automatic teleports
- First join RTP for new players
- Respawn RTP after death
- Spawn world redirect to push players out of a hub on join
- RTP Zones: 3D regions that teleport everyone inside on a timer, with live countdown holograms, group spread, and a per player opt out
Network and cross server
- Cross server RTP over MySQL for Velocity and BungeeCord, with instant arrival and no second warmup
- Optional Redis for shared cooldowns, caches, and live messaging across the network
- RTP Zone sync so the same zones stay in step across multiple servers
Visuals and feedback
- Titles, action bar, boss bar, and chat messages, all in MiniMessage with gradients and color
- A delay countdown with an action bar timer and a sound that rises in pitch, and moving cancels the teleport
- Particle animations while warming up and on arrival
- Zone countdown holograms through FancyHolograms, AxoHologram, PacketEvents, or vanilla Display Entities, picked automatically
Economy and permissions
- Vault costs per world, per group, or by radius tier, with a confirmation step for paid teleports and an automatic refund if the teleport fails
- Permission groups with priority based per world cooldown, delay, cost, and radius
- Bypass permissions for cooldown, warmup, cost, and Jump RTP
Admin and technical
/rtp dashboard, an in game panel to enable, disable, and tune every module live, written back intoconfig.ymlin place so your comments stay- Built in update checker with console and in game notices for admins
- Addon system to load extra behavior from
plugins/JustRTP/addons - PlaceholderAPI placeholders for cooldown, cost, and delay, usable in scoreboards and other plugins
- Folia, Canvas, and Paper detected automatically, with all chunk and entity work kept on the correct region threads
- Location cache and an async teleport queue to keep things smooth under load
Commands
| Command | What it does |
|---|---|
/rtp |
Random safe teleport |
/rtp <world> |
Teleport in a specific world |
/rtp <world> <min> <max> |
Teleport with a custom radius |
/rtp <server>:<world> |
Cross server teleport (needs MySQL) |
/rtp <player> |
Teleport another player |
/rtp nearplayer |
Teleport near a random online player |
/rtp nearclaim |
Teleport near a claimed area |
/rtp location <id> |
Teleport to a named location |
/rtp gui |
Open the world picker |
/rtp spectator |
Open the spectator switcher |
/rtp queue join |
Join the matchmaking queue |
/rtp dashboard |
Open the admin panel |
/rtpzone setup <id> |
Create and manage an RTP zone |
/rtp reload |
Reload the configuration |
The full command and permission list is in the docs.
Compatibility
- Java 21 or newer
- Paper, Folia, or a Folia fork such as CanvasMC
- Minecraft 1.21.11 through 26.2
- Optional hooks: Vault, PlaceholderAPI, WorldGuard, GriefPrevention, Lands, SimpleClaim, FancyHolograms, AxoHologram, PacketEvents, MySQL, Redis
Setup
- Put the jar in your
pluginsfolder - Start the server once to generate the config files
- Set your worlds, radius, and cooldowns in
config.yml - Run
/rtp reload
Updating is safe. New options are merged into your existing files, your old configs are backed up first, and your comments and layout stay where you put them.
Visual Description

ignore: rtp, cross server, randomtp, wildtp, redis, mysql, rtpzone
Ченджлог
3.5.9-HOTFIXРелиз1.21.9, 1.21.10, 1.21.11 · 4 июля 2026 г.
[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 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. (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. 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 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.
3.5.9Релиз26.1.1, 26.1.2, 26.2 · 4 июля 2026 г.
[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.
3.5.7Релиз26.1.1, 26.1.2, 26.2 · 24 июня 2026 г.
[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.
3.5.6Релиз26.1.1, 26.1.2, 26.2 · 22 июня 2026 г.
[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.
3.5.5Релиз26.1, 26.1.1, 26.1.2 · 14 июня 2026 г.
[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.
3.5.3Релиз26.1, 26.1.1, 26.1.2 · 2 мая 2026 г.
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, Folia 26.1.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: trueexplicitly - End RTP still works on demand (per
/rtp world_the_endcommand). 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 reloadto re-enable
3.5.2Релиз1.21.9, 1.21.10, 1.21.11 · 1 мая 2026 г.
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: 50and "Pausing searches" — fixed - Shutdown
IllegalPluginAccessException— fixed /rtp worldstuck 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
3.5.1Релиз1.21.9, 1.21.10, 1.21.11 · 29 апреля 2026 г.
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
shapeis 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(oroutline,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 reloadworkaround needed - Matchmaking duels scattered too far apart? Fixed - and tunable via
matchmaking.safety_search_radius
Комментарии
Загружаем…