LeafRTP-Pro v3.2.0

Deterministic Selection. Non-Blocking Execution. Native Folia Optimization.
    • rainbowDonut2.png
    • 2026-05-25_17.25.00.png
    • Screenshot 2026-05-24 213903.png
    • Screenshot 2026-05-25 172819.png
    • 2026-05-26_23.28.50.png
    • 2026-05-26_23.26.53.png
    • rainbowDonut2.png
    • 2026-05-25_17.25.00.png
    • Screenshot 2026-05-24 213903.png
    • Screenshot 2026-05-25 172819.png
    • 2026-05-26_23.28.50.png
    • 2026-05-26_23.26.53.png
  • How it works

    Try this product in game with a hosted Minecraft server!
    1. Click 'Request test server'
    2. Join the provided IP address
    3. Try out the product for up to 30 minutes
    4. Stop the server when you're done

    Requesting a test server will duplicate the original files and provide you a new server for you to join and experiment with for up to 30 minutes. Any changes you make will not be served so feel free to play around!

    There are no limits to the number of servers you may start, but you can only have one test server active at a time. You must stop any active test servers in order to start up a new one.

    Features

    • Completely free
    • Instant setup
    • Full operator permissions
    • Invite friends
    • No usage limits

    Testing servers provided by PebbleHost.
    Visit PebbleHost.com

LeafRTP-Pro
High-Performance Random Teleport (RTP) Plugin for Folia, Paper & Spigot


Once upon a time, I wanted to explore a minecraft world. I asked for /rtp in servers I played on. They told me "no, that's laggy", and I took that personally.

No menu, however polished, can make /rtp fast - only the engine behind it can. With most random-teleport plugins, any click can make the server load chunk after chunk after chunk: it picks a spot, loads it on the main thread, and - if it turns out unsafe - tries another, and another, with nothing telling it to stop. That lag spike never shows up in the menu. It shows up in your MSPT, in the stutter every other player feels, and eventually in the players who quietly stop logging in.

LeafRTP-Pro was built on one idea: a teleport should cost the server nothing the player can feel. No spike. No spinner. No quiet churn.

Enterprise performance, proven not asserted.
On Paper, 19.8 TP/s sustained at a 4 ms worst-case main-thread tick (next-best plugin: 70 ms). On Folia, 13.5 TP/s with zero region stalls - while the next plugin froze a region for over 20 seconds. Audited safety invariants throughout - no unsafe blocks, no force-loaded chunks, no claim-bypassing teleports, no silent failures. Every number on this page is measured on a public harness, not a marketing claim - and bounded worst-case latency is the one axis a Paper-only, on-tick design cannot follow.

Supported: Paper, Folia, Spigot, Fabric, and native NeoForge (1.21.x / 26.1.x) - Minecraft 1.20.x / 1.21.x / 26.x. Legacy Forge is not native: run the Spigot/Paper jar under Arclight / Mohist. Works the moment the jar drops in - no tuning required - and rewards operators who like to dig into YAML and profiler output. Drop-in upgrade from the free LeafRTP build.
------------------------------------------------------------

Why operators buy Pro
19.8 TP/s on Paper at 4 ms worst-case tick. 13.5 TP/s on Folia, zero region stalls.

If /rtp is the top entry in your timings report, this is the fix. LeafRTP-Pro is the polygon-bounded, Folia-native Random Teleport engine for high-load and custom-world Minecraft servers:

  • No lag spikes when players spam /rtp. Worst-case main-thread tick stays at 4 ms (vs. 70-771 ms for the next plugins) - your TPS holds at 20.00 during a teleport burst.
  • Instant teleports, no "Finding a safe location..." wait. Pre-verified location queue serves /rtp in one tick instead of loading chunks on demand.
  • Runs natively on Folia without stalling regions. Under an identical 3-client burst, LeafRTP-Pro sustained 13.5 TP/s at 100% success with zero Folia watchdog stalls and just 3.96 ms of main-thread cost per teleport, while EzRTP managed 5.3 TP/s and blocked region threads on synchronous chunk loads - tripping the Folia watchdog 7 times, one region frozen for over 20 seconds.
  • Automatic performance the moment the jar drops in. Pre-warmed location queue, persistent spatial memory, off-tick Anvil pre-filter and async chunk loading kick in on first start - no profiling, no tuning, no per-world hand-holding. Same config.yml, commands, and claim-plugin integrations (GriefDefender, GriefPrevention, Lands, WorldGuard, Towny, Factions, HuskTowns, RedProtect) as the free build, so the upgrade itself is risk-free.
  • Audited safety: no unsafe blocks, no force-loaded chunks, no claim-bypassing teleports, no silent failures.

On Paper 1.21, measured on the in-repo harness, 2 OPed clients spamming /rtp back-to-back:

PluginTP/sWorst tick (MSPT p99)CPU per teleport
LeafRTP-Pro19.84 ms16.9 ms
JakesRTP20.070 ms26.0 ms
BetterRTP7.1771 ms53.6 ms
HuskHomes RTP6.2335 ms52.2 ms

Methodology: Paper 1.21, 2 OPed clients spamming /rtp continuously, in-repo harness linked below. Folia and Spigot results in the full benchmark section.

Same throughput as the next-best plugin at ~17x lower worst-case tick spike and 35% less CPU per teleport. Raw harness: helpers/StressTestRTP/.

And speed isn't a trade against features. The same off-tick architecture that holds your TPS also runs the full effects engine, eight bundled claim integrations, multi-server proxy support, SQL/Redis backends, and the safety.yml token grammar - performance is what makes the feature set affordable, not a compromise against it.

Each capability below is paired with the part of that architecture that makes it cheap to run - the feature set and the performance are the same system, not opposite ends of a dial:

Feature you getWhat makes it cost the server nothing
Lifecycle effects engine - multi-phase particles, sounds, titles, fireworks, potionsEffect math and packet work run off the main thread, so they never show up in your MSPT.
Per-region / per-world controls - custom shapes, radii, centers, biome filters, safety per regionLocations are pre-warmed and validated in the background queue before anyone runs /rtp, so depth costs no tick time.
8 bundled claim integrations - GriefDefender, GriefPrevention, Lands, WorldGuard, Towny, Factions, HuskTowns, RedProtectClaim checks reroll inside the async pipeline, not on the tick that teleports the player.
safety.yml token grammar - block tags, state predicates, wildcardsThe off-tick Anvil (.mca) pre-filter rejects unsafe biomes and oceans by reading region files directly, with no main-thread chunk loads.
Multi-server proxy + SQL/Redis - cross-network /rtp, reservation tokens, shared stateState sync runs on async backends; the teleport hot path stays free of foreign-region and blocking API hops.
Built-in visualizations & observability - /rtp visualization region/biome maps and bad-location heatmaps painted onto real map items, MSPT / heap / pipeline-latency sparklines, plus live /rtp info diagnosticsCharts render from in-memory state through the maps-api / metrics-api SPI, so analytics never touch the teleport hot path - no separate heatmap or metrics add-on needed.
Optional PvP / combat-tag gate - refuse or delay /rtp for players who recently dealt or took PvP damage, with native tracking plus PvPManager / CombatLogX / Simple Combat Log integrationCombat state is checked once at /rtp pre-dispatch through the rtp-api hook, so the anti-escape rule adds no per-tick cost to the teleport path.
Developer API (rtp-api, effects-api) - pre / mid / post teleport hooksHooks fire outside the critical loop, so downstream plugins can't stall your TPS.

------------------------------------------------------------

What Pro adds over the free LeafRTP build
Free LeafRTPLeafRTP-Pro
Folia (tuned Region Scheduler + off-tick pre-filter, no 1-tick stalls)BasicTuned
Multi-server / proxy (Velocity)NoYes
SQL / Redis shared-state backends (H2, SQLite, MySQL, PostgreSQL, Jedis)NoYes
Vault economy (charge for /rtp)NoYes
Multilingual lang/**, login-reserve cache, visitor modeNoYes
safety.yml token grammar - vanilla block tags, state predicates, wildcardsNoYes
Earliest release on each MC version + first access to new platforms/features + priority supportNoYes
Spigot + Paper engine, queues, spiral, Anvil pre-filterYesYes
8 claim plugins bundled (GriefDefender, GriefPrevention, Lands, WorldGuard, Towny, Factions, HuskTowns, RedProtect)YesYes
effects-api, rtp-api, PlaceholderAPI, ProtocolLibYesYes

Pro is the early-access tier: the tuned, throughput-optimized versions of new platforms and scaling backends land here first, because each one carries a real hands-on support burden that is only guaranteed on the paid tier. The free build still runs on Folia (basic regionized scheduling + async teleport); Pro's tuned Folia adapter is what graduates to the free build once stabilized. Same configuration, same data files, same commands as the free build - upgrade is drop-in.

------------------------------------------------------------

Built for
LeafRTP-Pro works on any server out of the box. It also shines for the setups that push the platform hardest - if any of these describe yours, it's the right tool:

  • High-concurrency servers where /rtp spam used to spike MSPT and shake TPS.
  • Folia deployments that need region-aware scheduling and zero foreign-region API hops in the teleport hot path.
  • Multi-server networks (Velocity) that need cross-network LeafRTP with reservation tokens and shared state. Validated on the in-repo devstack: 2 Velocity proxies, 2 lobby servers, 2 backend servers behind a shared Redis transport.
  • Large or pregenerated worlds where chunk-load cost dominates - the pre-validated queue and Anvil pre-filter pay for themselves on the first burst.
  • Custom-generator worlds (Iris, Terra, datapacks) where the Anvil-first biome read keeps your safety config authoritative across MC upgrades.
  • Operators of every stripe. Set it and forget it, or version-control your YAML and read the profiler - both paths work. In-game /rtp menu is there when you want it; nothing is hidden behind it.

Platform requirements: Java 21+, on Paper / Folia / Spigot / Fabric / native NeoForge. Legacy Forge is not native - run the Spigot/Paper jar under Arclight / Mohist.

------------------------------------------------------------

menu_1.png

In-game /rtp menu - clickable book UI for worlds, regions, and configuration.

menu_2.png

Per-file config view and edit, straight from the menu.

Commands (registered aliases: /rtp, /wild):
CommandDescriptionPermission
/rtp / /wildRandom teleport to the default region for your current worldrtp.use
/rtp region:<name>Teleport to a named regionrtp.region / rtp.regions.*
/rtp world:<world>Teleport within a specific worldrtp.world / rtp.worlds.*
/rtp player:<name>Teleport another playerrtp.other
/rtp biome:<biome>Teleport to a chosen biomertp.biome / rtp.biome.*
/rtp centerx=<x> centerz=<z> radius=<r>Ephemeral per-call overridesrtp.params
/rtp menuInteractive book (Paper / Folia) or chat-paginated menurtp.use
/rtp infoOperator diagnostics dashboard (queue, latency, leak rate, TPS/MSPT)rtp.info
/rtp reload [file]Reload all configuration, or one filertp.reload
/rtp config <file> view|set <k>=<v>View or set a config key, then auto-reloadrtp.config
/rtp scan start|pause|resume|reset|cancelBackground spatial-memory crawlrtp.scan

Key permission nodes (full set in plugin.yml):
PermissionDefaultGrants
rtp.usetrueUse /rtp and /wild
rtp.seetrueTab-complete /rtp
rtp.freeopSkip the Vault economy charge
rtp.paramsopCustom per-call overrides (centerx=, centerz=, radius=)
rtp.personalqueuefalseReserve a per-player pre-warmed location
rtp.onevent.*falseAuto-RTP on join / firstjoin / respawn / changeworld / move / teleport
rtp.adminopAll admin tooling (reload, config, scan, info)
rtp.*opEvery subcommand

LeafRTP-Pro splits configuration by concern under plugins/RTP/. Every file is hot-reloadable (/rtp reload <file>) and editable in-game via /rtp config <file>.
FileScopeExample keys
config.ymlCore / global behavior, database, menu rendererteleportDelay, teleportCooldown, cancelDistance, database.type, menu.renderer
regions/<name>.ymlPer-region shape, radius, center, queue, price, gatesshape, vert, radius, cacheCap, price, requirePermission
worlds/<name>.ymlPer-world region routing and overridesregion, override, requirePermission
safety.ymlBlock / biome safety filter (Pro token grammar)unsafeBlocks, airBlocks
economy.ymlVault pricing (Pro)price, priceOther, biomePrice, balanceFloor, refundOnCancel
effects/<name>.ymlLifecycle effects (particles, sounds, fireworks, potions)per-phase effect definitions
performance.ymlTick budgets, queue caps, cachesmaxAttempts, syncAllottedTime, minTPS, loginCacheEnabled
network.ymlProxy / multi-server selector (Pro)enabled, transport settings
integrations.ymlClaim-plugin reroll togglesrerollWorldGuard, rerollGriefPrevention, -
logging.ymlLog verbosity and channelslogging toggles
metrics.ymlRuntime-health metricsmetrics toggles
language.ymlLocale selectionlanguage
messages.ymlUser-facing text (fully localizable, REQ-RTP-F-013)message templates
lang/**Bundled translations (Pro)per-locale value files

Confidence: measured; from plugin docs; inferred from architecture.

Metrics: Throughput (TP/s, higher better) - MSPT p99 (worst 1-in-100 main-thread tick in ms; <~50 ms = no dropped tick) - Min TPS (20.00 = no hiccup) - CPU / TP (main-thread CPU per successful teleport).

Paper 1.20.1 / 1.21.11 - recommended platform. Eight plugins, same harness, same world, same two OPed clients.
PluginTP/sMSPT p99 (ms)Min TPSCPU / TP (ms)Success
LeafRTP-Pro19.8420.0016.9100 %
JakesRTP20.07020.0026.0100 %
BetterRTP7.385220.0053.6100 %
HuskHomes6.237220.0052.2100 %
AdvancedRTP2.162 10019.9592.196.3 %
EzRTP1.762 90319.95139.6100 %
AsyRTP1.674 53419.9538.8100 %
EssentialsX /tpr0.964 50419.9588.975.9 % §

§ EssentialsX /tpr is a teleport-request command (handshake + accept), not a teleport-do command; the harness's 5 s per-attempt deadline times out a fraction of the request-accept latencies. Numbers are dispatch-shaped, not plugin-broken.

Spigot 1.20.1 - platform-wide chunk-gen ceiling caps everyone at 1-1.5 TP/s; the latency tail is what matters.
PluginTP/sMSPT p99 (ms)Min TPS
LeafRTP-Pro1.5236.4
JakesRTP1.042 252--
BetterRTP1.333 7902.18
HuskHomes0.934 9392.59

Folia 26.1 - on Folia, throughput plus the server-emitted region watchdog are the discriminators (global MSPT is a single-region sample and not meaningful).
PluginTP/sCPU / TP (ms)Watchdog stallsSuccess
LeafRTP-Pro13.53.960~100 %
LeafRTP (free)12.54.150100 %
EzRTP5.36.347 (one region 20.4 s)96.2 %

On Folia, LeafRTP's main-thread cost per teleport drops to ~4 ms as region threads parallelize work Paper serializes onto one tick thread. EzRTP's 7 watchdog stalls (one region unresponsive 20.4 s) are the server's own record of synchronous World.loadChunk calls on region threads; LeafRTP issued none. Note the free build cleared the same run at 12.5 TP/s with zero stalls - the shared rtp-core engine, not a Pro-only adapter, carries the Folia result, and Pro's tuned adapter is built to pull further ahead as per-region contention rises.

Architecture support matrix:
PluginSpigotPaper (+ forks)Folia
LeafRTP-ProOff-tick Anvil pre-filter; rare bounded fallbackFully async via getChunkAtAsyncRegion Scheduler + off-tick pre-filter
BetterRTPSync chunk load on missPaper async; no safety pre-filterp99 ~1.2 s
EzRTPPaper-only API crashes on Spigot 1.20.1Async; no off-tick pre-filterSync World.loadChunk on region threads; 7 watchdog stalls, 20.4 s freeze
AsyRTPFails to enable on Spigot 1.20.1N/AN/A
SorekillRTPRedis-cross-server focusSameN/A
AdvancedRTPSafety-first, sync chunk loadSameN/A
JakesRTPAsync via flag; 10-slot cacheWidely deployedN/A
EssentialsX /rtpMain-thread chunk loadSameN/A
HuskHomes RTPSupportedSamep99 ~900 ms

Memory & TPS: queue bounded (bounded by cacheCap); each entry is a small POJO. Server TPS held at 20.00 across every Paper and Folia run. On Spigot, every plugin saturates to the same chunk-gen ceiling; LeafRTP-Pro just spends those ticks doing fewer things.

- Paper rows are 2-client runs (LeafRTP-Pro reproduced n=2; others n=1 on a single rig). The Folia run used 3 clients and its EzRTP failure is corroborated by the server's own watchdog log, independent of the harness. - JakesRTP Spigot row ran in slot 4 of a 4-phase chain - Min TPS / CPU-per-TP confounded by carry-over; dispatch-time numbers (throughput, p99) remain valid.

Caveats. Small client counts only (2 on Paper, 3 on Folia; the number is a floor, not a ceiling). Hardware, view distance, world state, and other plugins will move the numbers. Competitor plugins update frequently; corrections welcome via GitHub issue with a contradicting repro or doc link. This table measures performance only; feature breadth is not benchmarked here. LeafRTP ships the clickable GUI menu, Vault economy, the lifecycle effects engine, and eight bundled claim integrations alongside these numbers - it does not trade features for speed.

Full methodology, raw CSVs, per-run analyses: helpers/StressTestRTP/. Video benchmark of /rtp on a custom world generator: youtu.be/V0NyNK9JydM.

Five pillars:
  • Deterministic spiral selection. Bounded math, uniform player distribution even on massive worlds; no unbounded re-roll loops.
  • Platform-native performance. Spigot, Paper, and Folia each get the threading model that fits them - not the lowest-common-denominator.
  • Active resource watchdog. Background sweep reclaims chunk tickets from abandoned teleports via WeakReferences; nothing stays force-loaded past its reservation window.
  • Direct region I/O pre-filter. .mca region files parsed off-tick on a background pool, including biomes (custom namespaced biomes like Iris included). Paper-grade safety evaluation on Spigot; skips per-candidate Region-Thread hops on Folia.
  • Admin-driven background mapping. /rtp scan start|pause|resume|reset|cancel walks the spiral during idle periods so spatial memory accumulates without player traffic. Fully-automatic self-warming is on the roadmap for 3.0.0 final.

Chunk loading, by platform:
  • Paper - World#getChunkAtAsync used directly. No pre-filter, no main-thread fallback. Reference platform.
  • Paper forks (Leaf, Leaves, Purpur, Pufferfish, Airplane, DivineMC, -) - inherit the Paper code path.
  • Folia - Anvil read-only pre-filter on ForkJoinPool.commonPool() before the Region Scheduler; rejected candidates never hop a thread. Confirmed candidates load through Folia's native async API; teleports dispatch through the Entity Scheduler.
  • Spigot - .mca region files parsed off-tick (isAir, isSafe, surface-height, sky-light, biome). Paper-class throughput on plain Spigot.
  • Mohist / Arclight - officially supported. Spigot code path applies.
  • Fabric - first-class, stable, in-tree adapter; supported and regularly tested, at feature parity with the Bukkit family. Loom-remapped obf/unobf carriers cover 1.20.x, 1.21.x, and MC 26.x runtimes.

Honest fallback caveats. The Anvil pre-filter is a data source, not a universal gate. It falls through to the platform's native chunk API in two cases: (1) the chunk is already loaded (live data wins), or (2) the probe returns unknown (no region file, unsupported data version, decode error, un-populated). On Spigot the fallback is one on-tick getChunkAt. On Folia it's one Region-Scheduler hop. Custom generators (Iris, Terra, datapacks) do not trigger the fallback - populated .mca palettes are read directly, preserving modded and namespaced IDs that the Bukkit enum would collapse.

Upgrade-drift-proof biome filtering. When you bump your Paper or Folia server across MC versions, Mojang's seed-based biome assignment can change for already-written coordinates. The Anvil-first biome read keeps the .mca palette authoritative for populated chunks - the biome a player lands in is the biome your biomes: allow-list was written against. No re-pregen, no re-tuning after an upgrade.

Operator takeaway: Paper and Folia run chunk I/O fully off-tick. On vanilla Spigot the Anvil pre-filter covers the common case; rare main-thread fallback is bounded by your configured tick-budget; no platform silently blocks the tick loop without reporting it.

Without spatial indexing, teleportation is a guessing game and the numbers are ugly. A typical Overworld is only ~45% safely teleportable- (oceans, rivers, ravines, steep terrain eat the rest); the Nether is dominated by lava seas and wall-to-wall stone; the End is almost entirely void. Standard RTPs pay full chunk-load cost to rediscover this one candidate at a time, forever.

LeafRTP-Pro plots your world's geometry as it evaluates candidates. When it hits a massive ocean or unsafe biome, it remembers that sector and shrinks the searchable area, so known bad sectors never get loaded again. The longer it runs, the faster it gets - and /rtp scan keeps the learning going during idle periods.

Watch the background scan crawl the spiral and accumulate spatial memory in real time: youtu.be/Ftjy1zw_S04.

Persistence across restarts: learned bad-sector state survives a JVM bounce - MemoryShape.save / load writes per-region spatial memory to disk on shutdown and reloads on startup, alongside the configuration cache (compiled safety sets, region geometry). H2, SQLite, MySQL, and PostgreSQL backends support shared multi-server state.

- Local-profile estimate from a vanilla 1.21 seed set; Nether and End are still qualitative. Anonymous opt-in telemetry is on the roadmap to source this number properly.

safety.yml has a first-class token grammar. Six shapes can be mixed freely in unsafeBlocks and airBlocks:

  • Plain material: LAVA, MAGMA_BLOCK.
  • Material + state predicate: OAK_SLAB[waterlogged=true]. Multiple predicates AND together: OAK_SLAB[waterlogged=true,type=top].
  • Numeric range predicate: WATER[level>=5], LIGHT[level<8]. Operators >= / <= / > / < bound fluid levels, light levels, and any integer block-state property; fail-open on an absent or non-numeric value.
  • Vanilla block tag: #minecraft:leaves, #minecraft:fire, #minecraft:campfires. Live-registry expansion at config-load lands in 3.0.0 final - use explicit names alongside tag tokens during the beta.
  • Tag + state predicate: #minecraft:slabs[waterlogged=true] - "any slab, but only when waterlogged".
  • Wildcard + state predicate: *[waterlogged=true] - "any block, matched when waterlogged". One line replaces the entire waterloggable enumeration.

Properties:
  • Fail-open on unknown tags/properties - missing tags on older MC versions silently reduce coverage rather than breaking startup. Configs stay portable.
  • Never silent on malformed tokens - typos like OAK_SLAB[waterlogged=true[/I] surface as [WARNING] [safety.yml] rejected token '<token>': <reason>.
    [*]Zero hot-path cost when unused - block-state extraction only fires when a token actually needs it; plain-material configs pay nothing.
    [*]Platform-portable tag resolution - Bukkit reads from Bukkit.getTag; the standalone rtp-tags module parses tag JSON directly from data packs and jars for future non-Bukkit platforms.


Default safety.yml is ~25% shorter: FIRE+SOUL_FIRE -> #minecraft:fire; every waterloggable block -> *[waterlogged=true]; dozens of decorative plants -> #minecraft:flowers, #minecraft:saplings, #minecraft:crops, etc.

Engine:
  • Any number of teleport regions per world; per-region shape (Square, Circle, Rectangle), radius, center, curve weighting, vertical bounds, world override, permission gates.
  • Vertical adjustors (Linear, Jump, Fixed) for sky islands, void worlds, Nether ceilings.
  • Multi-dimensional (Overworld, Nether, End, custom).
  • Hot-reloadable YAML; clickable /rtp menu (book on Paper / Folia, chat-paginated fallback elsewhere) hardened in 3.0.0-beta.3, with /rtp config <file> view as a per-file deep-link.
  • Fully async chunk loading on Paper / Folia; off-tick Anvil pre-filter on Spigot.
  • Per-player isolated queues alongside a global queue - one player's bad luck never starves another's teleport.
  • Administrative scan lifecycle (start/pause/resume/reset/cancel) to pre-populate spatial memory without teleporting players.
  • Persistent learned state via H2 / SQLite / MySQL / PostgreSQL.
  • Per-tick time budgets and (on Folia) per-tick task-count caps on the region-bound pipe.

Player polish (UX):
  • Configurable countdown/warmup messages during pre-teleport.
  • Particles, sounds, fireworks, potions, note-block effects via effects-api, attached to lifecycle phases, gated by rtp.effects.<name> permissions.
  • Movement-cancel, damage-cancel, invulnerability-after-teleport timers.
  • Optional PvP / combat-tag gate. Off by default; when enabled, /rtp is refused or delayed for players who recently dealt or took PvP damage, so a teleport can't be used to escape a fight. Native combat tracking works out of the box, with optional PvPManager / CombatLogX / Simple Combat Log integration; the refusal message is fully localizable (messages.yml).
  • Optional landing platform with configurable material and decay timer.
  • Per-region arrival schematics. Drop a .schem named after a region into plugins/RTP/schematics/ (e.g. schematics/default.schem) and every teleport into that region pastes it - a lobby pad, arrival shrine, or custom platform - centered on the landing spot. Cross-platform Sponge .schem, decoded in-house (no WorldEdit required), claim-aware (never overwrites protected land) and audited; the bundled Skyblock prefab ships one ready to go.
  • PlaceholderAPI: queue depth (total/public/personal), last-teleport coordinates, player status.
  • Public rtp-api (same surface as Free) - trigger LeafRTP from GUI, NPC, quest reward; build your own UX without forking.
  • Platform-agnostic addons - addons compile against rtp-api only and load through the RTPAddon ServiceLoader SPI, so one addon module runs unchanged on Spigot, Paper, Folia, Fabric, and NeoForge. Config, safety hooks, teleport-pipeline callbacks, and scheduling are reached through platform-neutral APIs; you only add a platform module when the addon opens a platform-native UI. See the bundled RTP_ExampleAddon.

Bundled claim integrations (no extra download, folded in per ADR-019): Factions, GriefDefender, GriefPrevention, HuskTowns, Lands, RedProtect, TownyAdvanced, WorldGuard.

Pro-only configuration: Vault per-region pricing, complete localization (lang/**), login-reserve cache, visitor mode.

What's on deck, with direction:

  • Fully-automatic self-warming - background spatial-memory accumulation without the /rtp scan verb.
  • Anonymous opt-in telemetry - reference benchmark sourced from real deployments.
  • Chunky-driven scan generation - optionally let a bulk pre-generator (Chunky or similar) lay a region's chunks down first, then scan reads them cheaply through the Anvil pre-filter; one command surface instead of juggling two tools, with the current generate-as-you-go scan as the fallback.
  • Leaner scan path - measure how accurately the off-tick Anvil pre-filter alone trims candidates and, where it's accurate enough, skip the heavier full-load verification pass during scans.
  • Accelerated scan compute (exploration) - investigating offloading the bulk safety pre-filter sweep to a high-throughput compute backend (native SIMD, GPU/OpenCL, or an external accelerated generator), with a clean fallback to the current path when none is present.

File a GitHub issue if you hit something not on the list.

Q: How do I stop /rtp from lagging my server, and why is LeafRTP-Pro faster than other random teleport plugins?
A: Pre-warmed queue. In most cases a verified destination is ready before you type /rtp. Two design choices keep that queue cheap to refill: a persistent spatial memory per region (the plugin remembers which sectors failed safety checks, so the spiral selector skips known-bad ground instead of rerolling indefinitely) and an off-tick async pre-filter (Anvil region files are read directly to reject unsafe biomes/blocks before any chunk is loaded, so candidate verification never blocks the main thread).

Q: How do I set up teleportation between worlds?
A: See the admin guide. Resolution order: player's current world (or world: param) -> world's target region -> region's target world.

Q: Does LeafRTP work on Folia?
A: Yes, on both editions. The free build runs on Folia out of the box with a basic regionized scheduler (correctness-first: global/region/entity scheduling + async teleport). LeafRTP-Pro adds the tuned Folia adapter - the Region Scheduler with an off-tick pre-filter so no region stalls. Measured on Folia 26.1 under a 3-client burst, LeafRTP-Pro sustained 13.5 TP/s at ~100 % success with 3.96 ms of main-thread cost per teleport and zero region watchdog stalls; the free build cleared the same run at 12.5 TP/s. Pro's tuned adapter is built to pull further ahead as per-region contention rises.

Q: Do you support triangle / diamond region shapes?
A: Use the Polygon shape. A triangle is a 3-vertex polygon and a diamond is a rotated square, so both are already expressible without a dedicated shape type - define the vertices you want and the bounded spiral fills it.

Q: Do I need Chunky (or another pre-generator)?
A: No, but they work well together. /rtp scan start|pause|resume|reset|cancel walks a region off-tick, verifies safety, and generates any chunks it reaches that aren't on disk yet (via the server's own world generator) while recording which sectors are unsafe in persistent spatial memory. So a separate pre-generator stays optional: run Chunky (or any pre-generator) first if you want the whole map on disk up front, and scan will then read those chunks cheaply through the Anvil pre-filter instead of generating them as it goes.

Q: How does biome targeting behave on a pregenerated or upgraded world?
A: LeafRTP reads biome data from the populated .mca region files via the Anvil pre-filter, so /rtp biome:<x> reflects the biomes actually written to disk. Plugins that lean on the live generator/noise-map biome lookup can return the wrong biome on a world that was pregenerated elsewhere or migrated across a Minecraft version, where seed-based assignment has drifted - the Anvil-first read stays authoritative in those cases.

Q: Iris / Terra / custom datapack generators?
A: Yes - deliberate 3.0 design goal. The Anvil pre-filter reads .mca palette data directly, so populated custom-generator chunks evaluate off-tick like vanilla. That's strictly more accurate than the live Bukkit view, which collapses modded IDs to vanilla cousins. Un-populated chunks fall through to a live load as the authoritative safety net.

Q: Existing safety.yml on upgrade?
A: Plain-material entries keep working unchanged; the new grammar is strictly additive.

Q: Best LeafRTP plugin / setup for Paper 1.21 performance?
A: Paper, with memory to spare for the location cache. LeafRTP works particularly well on pre-generated worlds.

Q: Can I downgrade to the free LeafRTP build?
A: Yes - same configuration, same data files, same commands. The free build still runs on Folia (basic regionized scheduling); what you give up is the tuned Folia adapter, plus proxy, SQL/Redis, Vault, multilingual, and the tag/state-predicate grammar.


The whole point of Pro is that you stop thinking about /rtp. It drops in, it works, and on the rare day it doesn't, a maintainer who actually owns the code answers you - not a community thread that goes quiet. That is the part the benchmark can't show: the other plugins' numbers (second-scale ticks, region stalls, sync chunk loads) are not a bad afternoon, they are the ceiling of how good your players' experience can get on that engine. With LeafRTP you are not giving anything up to get that - everything those plugins advertise (GUI, economy, effects, claim support, cross-server) is already in the box - you are just removing the lag and the unanswered ticket.

  • Priority support. Pro tickets jump the queue ahead of the free build - this is the support tier the early-access platforms and scaling backends are guaranteed on.
  • Bug reports and configuration questions are welcome - the admin guide answers most setup questions, and a clear repro (server version, plugin version, platform, relevant configs and log lines) gets a fast resolution.
  • Response time: 24-72 h on weekdays. Critical safety issues jump the queue.
  • Feature requests via GitHub issues. Priority follows the published roadmap.
  • Native NeoForge is supported on Minecraft 1.21.x / 26.1.x. Native Forge is not supported - use Arclight or Mohist with the Spigot/Paper jar.

------------------------------------------------------------

Links

------------------------------------------------------------

A deterministic, high-performance teleport engine for serious Minecraft servers. Folia-native concurrency, audited safety invariants, and zero-latency execution.

Latest reviews

Fixed all my issues! Plugin works beautifully now! Thank you for all the hard work!
leaf26
leaf26
nw, feel free to visit the discord or github page for anything you spot. I'm hoping to get in some specific features before the canonical v3.0.0 but I'll add a search button to the menu to make it easier to find messages like earlier
Best RTP plugin in existence. Covers everything you could want and does it faster than everyone else.
Buy a license now
$15.00
EULA
Standard EULA
Use on any projects you own with attribution
Support
Standard
Includes:
Download the resource
Access new updates
Support from the creator
Support duration
1 year
Share and earn
Refer this resource and earn a 10% commission.
1,234 Views
6 Purchases
8 Downloads
May 4, 2026 Published
Jun 22, 2026 Updated
5.00 star(s)
Average rating (2)
5.6 MB File size
Open source
  1. Yes
DRM-free
  1. Yes
Unobfuscated
  1. Yes
Type
  1. Gameplay
  1. Core
  1. Optimization
Game mode
  1. Survival
  1. Earth
  1. Hub & lobby
Supported software
  1. Bukkit
  1. Spigot
  1. Paper
  1. Folia
  1. Velocity
  1. Purpur
  1. Mohist
  1. Arclight
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
  1. 1.20
Supported languages
  1. English
  1. Spanish
  1. German
  1. French
  1. Dutch
Creator
Owner
Struggling to cover the costs of your server? Set up your own webstore with Tebex in under 30 seconds.
Host a lag-free Minecraft or Hytale server in minutes.
Get 25% off your first order with our link.
Recommended for you
#1 BuiltByBit Plugin ~ Protects your server from crash packet exploits ~ Folia Support
5.00 star(s) 141 ratings
4,202 purchases
Create items, blocks, mobs, emojis, and more with automatic resourcepack generation!
5.00 star(s) 53 ratings
3,162 purchases
Protect your server from crash/dupe/packet exploits with the ultimate security fix plugin.
5.00 star(s) 44 ratings
3,089 purchases
High Performance | Customizable | Cross-Version | GeyserMC | Folia Support
4.50 star(s) 71 ratings
2,812 purchases
All-in-one dungeon creator. Create unlimited, timed dungeon experiences with your own builds
4.50 star(s) 72 ratings
2,580 purchases
Share and earn
Refer this resource and earn a 10% commission.
1,234 Views
6 Purchases
8 Downloads
May 4, 2026 Published
Jun 22, 2026 Updated
5.00 star(s)
Average rating (2)
5.6 MB File size
Open source
  1. Yes
DRM-free
  1. Yes
Unobfuscated
  1. Yes
Type
  1. Gameplay
  1. Core
  1. Optimization
Game mode
  1. Survival
  1. Earth
  1. Hub & lobby
Supported software
  1. Bukkit
  1. Spigot
  1. Paper
  1. Folia
  1. Velocity
  1. Purpur
  1. Mohist
  1. Arclight
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
  1. 1.20
Supported languages
  1. English
  1. Spanish
  1. German
  1. French
  1. Dutch
Creator
Owner
Struggling to cover the costs of your server? Set up your own webstore with Tebex in under 30 seconds.
Host a lag-free Minecraft or Hytale server in minutes.
Get 25% off your first order with our link.
Recommended for you
#1 BuiltByBit Plugin ~ Protects your server from crash packet exploits ~ Folia Support
5.00 star(s) 141 ratings
4,202 purchases
Create items, blocks, mobs, emojis, and more with automatic resourcepack generation!
5.00 star(s) 53 ratings
3,162 purchases
Protect your server from crash/dupe/packet exploits with the ultimate security fix plugin.
5.00 star(s) 44 ratings
3,089 purchases
High Performance | Customizable | Cross-Version | GeyserMC | Folia Support
4.50 star(s) 71 ratings
2,812 purchases
All-in-one dungeon creator. Create unlimited, timed dungeon experiences with your own builds
4.50 star(s) 72 ratings
2,580 purchases
Top