mcrating.org Сейчас на сайте: 2712 чел.
2712
LeafRTP | Random Teleport

LeafRTP | Random Teleport

Optimized random teleportation engine with bounded execution times.

Плагины 32 загрузок 0 подписок

Галерея

Описание

LeafRTP

(formerly named RTP, updated for indexing reasons)

Bounded-time Random Teleport engine

For server administrators optimizing Paper, Fabric, Spigot, Purpur, and Pufferfish infrastructure.

Send your players to a safe, random spot - fast, fair, and engineered to maintain 20.0 TPS without lag spikes.

100% Free. Same engine as the paid RTP-Pro build. No paywalled /rtp, no nag screens, no ads - just anonymous bStats usage stats (server-admin opt-out via plugins/bStats/config.yml).

Why operators pick RTP

19.8 TP/s sustained at 4 ms worst-case tick. Next-best plugin: 70 ms.

If /rtp is the top entry in your timings report, this is the fix. RTP is the fastest free Random Teleport plugin for Bukkit-native Minecraft servers (Paper, Bukkit, Arclight, Mohist, and other Bukkit-family forks), with Fabric supported as a first-class platform. In plain operator terms:

  • 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.
  • Works on plain Bukkit servers at Paper-class speed. Off-tick .mca Anvil pre-filter, worst tick stays at 3 ms while competitors spike past 3 seconds.
  • Eight claim-plugin integrations bundled (GriefDefender, GriefPrevention, Lands, WorldGuard, Towny, Factions, HuskTowns, RedProtect) - no add-ons to install.
  • Audited safety: no unsafe blocks, no force-loaded chunks, no claim-bypassing teleports, no silent failures (REQ-RTP-S-001..S-007).
  • Truly free. No paywalled /rtp, no nag screens, no ads - only anonymous bStats usage stats (admin opt-out).

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

| Plugin | TP/s | Worst tick (MSPT p99) | CPU per teleport | |------------------|----------|-----------------------|------------------| | RTP | 19.8 | 4 ms | 16.9 ms | | JakesRTP | 20.0 | 70 ms | 26.0 ms | | BetterRTP | 7.1 | 771 ms | 53.6 ms | | HuskHomes RTP | 6.2 | 335 ms | 52.2 ms |

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

Same throughput as the next-best plugin, ~17x lower worst-case tick spike, 35% less CPU per teleport. On Spigot, RTP's worst tick stays at 3 ms while competitors spike past 3 seconds. Reproduce on your own rig: helpers/StressTestRTP/.

Engineering receipts (proof, not marketing)

Every number on this page is anchored in the repo:

  • Reproducible benchmarks with raw CSVs and per-run analyses: helpers/StressTestRTP/
  • Requirements traced to tests - every REQ-* (including the S-001...S-007 prohibition guards: no main-thread chunk loading, no silently swallowed teleport failures, ...) has an implementing class and regression test: TRACEABILITY.md
  • 28+ ADRs, dated and numbered, covering platform-in-scope decisions, the Anvil subsystem, the Brigadier bridge, supersession trails: docs/adr/
  • bStats enabled - anonymous usage stats help prioritize platform work.

Operator fit (30-second check)

A few hard requirements. If any are a no, EssentialsX /rtp or HuskHomes are fine free alternatives.

  • Java 21+ on your host (REQ-RTP-SYS-001, non-negotiable).
  • Paper, Spigot, or a Bukkit-family fork (Arclight / Mohist supported for Forge / NeoForge bridges). Fabric is supported and regularly tested, with its featureset lagging the Bukkit family by a release or two.
  • In-game editing or YAML, your call. Browse and tune config from the clickable /rtp menu (book on Paper / Folia, chat-paginated elsewhere), or edit the plain YAML files directly and version-control them.
  • ❌ Folia, proxy/cross-server, SQL/Redis, Vault economy -> those live in RTP-Pro.

Install (30 seconds)

  1. Drop RTP-x.y.z.jar into plugins/.
  2. Start the server. A default region is generated for you.
  3. Type /rtp.
  4. Run /rtp menu to browse regions, worlds, and configuration in-game (clickable book on Paper / Folia, chat-paginated fallback elsewhere).

That's it. Tune plugins/RTP/config.yml and plugins/RTP/regions/*.yml later - via /rtp menu or by editing the YAML directly. Full admin guide is auto-unpacked into plugins/RTP/docs/ on first run, and lives online at the admin guide.

What's in the box

  • Deterministic spiral selection - bounded math, no unbounded re-roll loops. Predictable on huge worlds.
  • Spatial memory that persists across restarts - RTP learns which sectors keep failing and stops trying them.
  • Pre-generated location queue - most /rtp calls serve from a ready, chunk-loaded destination.
  • Safety pipeline - radius check, invulnerability timer, optional landing platform, movement / damage cancel timers, material allow/deny list.
  • Per-region, per-world config - shapes (square / circle / rectangle), curve weighting, vertical adjustors, sky-light check, world overrides, hot-reloadable YAML.
  • Effects on every lifecycle phase - particles, sounds, fireworks, potion, note effects via the in-tree effects-api, gated by rtp.effects.<name> permissions.
  • Eight claim-plugin integrations bundled - GriefDefender, GriefPrevention, Lands, WorldGuard, Towny, Factions, HuskTowns, RedProtect.
  • PlaceholderAPI, ProtocolLib, custom generators - Iris, Terra, datapacks work out of the box; modded biome IDs preserved.
  • Public rtp-api - same surface as Pro. Trigger RTP from a GUI, NPC, or quest; build your own UX without forking.

Platform support

| Platform | Status | Notes | |-------------------------------------------------------------|-------------------------|---------------------------------------------------------------------------------------------| | Paper (+ forks: Purpur, Pufferfish, Leaf, Leaves, DivineMC) | ✅ Recommended | Fully async via native getChunkAtAsync. | | Spigot (+ Spigot forks) | ✅ Supported | Off-tick .mca Anvil pre-filter -> Paper-class throughput on plain Spigot. | | Arclight / Mohist (Forge / NeoForge bridges) | ✅ Officially supported | Use the Spigot/Paper jar. Recommended way to run on Forge/NeoForge. | | Folia | ❌ Not in this build | Folia adapter ships in RTP-Pro. | | Multi-server / proxy (Velocity) | ❌ Not in this build | Cross-server queue ships in RTP-Pro. | | Fabric | ✅ Supported | First-class in-scope platform; tested regularly. Featureset lags the Bukkit family by a release or two. | | Native Forge / NeoForge | 🔁 Use Arclight / Mohist | No native adapter planned. | |

Full benchmark vs. other RTP plugins on Paper, Spigot, and Folia

2 OPed real clients spamming /rtp back-to-back, queues enabled where the plugin offers them, cooldowns/delays zeroed. RTP and RTP-Pro share the same engine on Spigot/Paper; only the Folia adapter differs.

Confidence legend: 🧪 = measured locally · 📖 = read from plugin docs · ❓ = inferred from architecture.

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

Paper 1.20.1 / 1.21.11 - canonical head-to-head. Eight plugins, same harness, same world, same two OPed clients.

| Plugin | TP/s | MSPT p99 (ms) | Min TPS | CPU / TP (ms) | Success | |-------------------------|----------|---------------|-----------|----------------|------------| | 🧪 RTP | 19.8 | 4 | 20.00 | 16.9 | 100 % | | 🧪 JakesRTP | 20.0 | 70 | 20.00 | 26.0 | 100 % | | 🧪 BetterRTP | 7.3 | 852 | 20.00 | 53.6 | 100 % | | 🧪 HuskHomes | 6.2 | 372 | 20.00 | 52.2 | 100 % | | 🧪 AdvancedRTP | 2.16 | 2 100 | 19.95 | 92.1 | 96.3 % | | 🧪 EzRTP | 1.76 | 2 903 | 19.95 | 139.6 | 100 % | | 🧪 AsyRTP | 1.67 | 4 534 | 19.95 | 38.8 | 100 % | | 🧪 EssentialsX /tpr | 0.96 | 4 504 | 19.95 | 88.9 | 75.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 - Spigot's platform-wide chunk-gen ceiling caps everyone in the 1-1.5 TP/s range during the burst; the latency tail is what matters.

| Plugin | TP/s | MSPT p99 (ms) | Min TPS | CPU / TP (ms) | |--------------|----------|---------------|----------|----------------| | 🧪 RTP | 1.52 | 3 | 6.4 | 572 | | 🧪 JakesRTP | 1.04 | 2 252 | 7.5* | --* | | 🧪 BetterRTP | 1.33 | 3 790 | 2.18 | 584 | | 🧪 HuskHomes | 0.93 | 4 939 | 2.59 | 868 |

Folia 1.21.11 - RTP-Pro only; the Folia adapter is not bundled in the free build.

| Plugin | TP/s | Region MSPT p99 (ms) | Success | CPU / TP (ms) | |----------------|----------|----------------------|-------------|----------------| | 🧪 RTP-Pro | 9.87 | 157 | 99.97 % | 18.0 | | 🧪 BetterRTP | 3.82 | 1 200 | 100 % | 34.8 | | 🧪 HuskHomes | 3.32 | 901 | 100 % | 28.4 |

Architecture support matrix - (Spigot / Paper-and-forks / Folia)

  • RTP - ✅🧪 Off-tick Anvil pre-filter · ✅🧪 Fully async via getChunkAtAsync · ❌ See RTP-Pro
  • RTP-Pro - ✅🧪 Same as base · ✅🧪 Same as base · ✅🧪 Region Scheduler + off-tick pre-filter, no 1-tick stalls
  • BetterRTP - ⚠️📖 Sync chunk load on miss · ⚠️📖 No off-tick safety pre-filter · ✅🧪 Folia 1.21.11 functional, p99 ~1.2 s
  • EzRTP - ❌🧪 NoSuchMethodError on Spigot 1.20.1 (Paper-only API) · ✅📖 Works on Paper · ❓📖 Not advertised
  • AsyRTP - ❌🧪 Fails to enable on Spigot 1.20.1 (Paper-only API in onEnable) · ✅📖 Paper · ✅📖 Folia
  • SorekillRTP - ⚠️❓ Designed for Redis cross-server, not single-server perf · ⚠️❓ Same · ❓📖
  • AdvancedRTP - ⚠️📖 Safety-first, sync chunk load · ⚠️📖 Same · ❌📖
  • JakesRTP - ⚠️📖 Async via flag; 10-slot cache · ✅📖 Same · ❌📖 No Folia
  • EssentialsX /rtp - ✅📖 Main-thread chunk load per candidate · ✅📖 Same · ❌📖
  • HuskHomes RTP - ✅📖 Bundled with homes suite · ⚠️📖 Same · ✅🧪 Folia functional, p99 ~900 ms

Caveats. 2 clients only (the number is a floor, not a ceiling); hardware, view distance, world state, and other plugins will move them. Paper RTP row reproduced n=2; other rows are n=1 on a single rig. Competitor plugins update frequently - corrections welcome via GitHub issue with a contradicting repro or doc link. Feature breadth, GUI, and claim-integration counts are not benchmarked; several competitors trade speed for those, which is a legitimate design choice.

Full methodology, raw CSVs, per-run analyses: helpers/StressTestRTP/.

Commands, placeholders, soft-deps

Commands (full reference: admin guide)

  • /rtp - teleport to the default region for your current world.
  • /rtp [parameter]:[value] - specify region:, world:, player:, or temporary overrides.
  • /rtp reload - reload all configuration from disk.
  • /rtp scan start|pause|resume|reset|cancel - pre-warm spatial memory by walking a region (renamed from /rtp fill in 2.x).
  • /rtp menu - interactive admin menu; book on Paper / Folia, chat-paginated fallback elsewhere. Hardened in 3.0.0-beta.3.

PlaceholderAPI

  • %rtp_player_status% - idle, waiting, teleporting, ...
  • %rtp_total_queue_length%, %rtp_public_queue_length%, %rtp_personal_queue_length%
  • %rtp_teleport_world%, %rtp_teleport_x%, %rtp_teleport_y%, %rtp_teleport_z%

Soft dependencies (all optional): PlaceholderAPI, ProtocolLib. PaperLib is no longer required. Vault economy ships in RTP-Pro.

FAQ

Q: Why is this so much faster than other RTP plugins? A: Most /rtp calls serve from a pre-warmed queue - chunks are already loaded and safety-checked before you type the command. Two design choices make that queue cheap to keep full: a persistent spatial memory per region (the plugin remembers which sectors of the world failed safety checks, so the spiral selector skips known-bad ground instead of rerolling forever), 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). The pre-warmed queue is just the visible tip - the spatial memory keeps candidate selection bounded, and the async pre-filter keeps verification off the tick loop.

Q: Does it work with Iris / Terra / custom datapack generators? A: Yes. Region files are read directly, so modded and namespaced biome and block IDs are preserved. No configuration needed.

Q: What's the difference between RTP and RTP-Pro? A: Same engine, same source tree. RTP-Pro adds the Folia adapter, multi-server / proxy support (Velocity), SQL/Redis backends, Vault economy, multilingual lang/**, the richer block-tag/state-predicate safety.yml grammar, and priority support. The free build is fully sufficient for single-server deployments. Drop in the Pro jar later - same config, same data, same commands.

Q: I'm on Forge / NeoForge. A: Run Arclight or Mohist (officially supported) and use this jar. A native Forge adapter is not planned.

Q: Memory and MSPT - should I worry? A: RTP trades a bounded amount of RAM (the queue, bounded by cacheCap) for speed. TPS should not drop below ~19 from RTP alone on a healthy server; MSPT spikes during new-area generation are expected - that's the cost of generating chunks, not RTP.

Q: How do I report a bug? A: GitHub issue with server version, RTP version, platform, relevant config files, and the error log section. See the admin guide for the full reproduction template.

Community Support Policy (read before filing an issue)

Support for the free build is community-tier and best-effort - a solo maintainer ships fixes when properly-reported issues land. Respecting this is how the plugin stays fast and current.

  • Support covers bugs and configuration questions, after you've read the admin guide.
  • Bug reports need a reproduction: server version, RTP version, platform (Spigot / Paper / fork), config.yml, regions/, safety.yml, and the relevant server.log section. Reports without these are asked for them once, then closed.
  • "It doesn't work" is not a bug report. Tell me what you did, what you expected, and what actually happened.
  • Unsupported on the free tier: native Forge / NeoForge (use Arclight / Mohist), plugin conflicts I can't reproduce, general MC-server admin questions.
  • Response time: no SLA on the free build. Critical safety issues (S-001...S-007 violations) jump the queue regardless. Guaranteed response windows are reserved for RTP-Pro.
  • Feature requests via GitHub issues. Priority follows the published roadmap, not ticket volume.
Known limitations
  • Free build does not ship Folia, SQL/Redis, multi-server, or the tag/state-predicate safety.yml grammar - all are in RTP-Pro.
  • safety.yml here accepts flat material names (LAVA, MAGMA_BLOCK, CACTUS, FIRE). Unknown materials log one warning, never silently dropped.
  • Edits to safety.yml and biome filters do not yet invalidate the persisted shape cache - workaround: /rtp scan reset <region>.
  • Emergency landing platform default is now platformRadius: -1 (disabled). Set to 0 or higher to restore legacy 2.x behavior.

Live list: CHANGELOG.

TODO list
  • arbitrary landing platforms using schematics, per-region
  • pvp detection outside of damage detection
  • more book menus
  • more charts
  • better polygon shape setup
  • finish translating
  • verify against modded data
  • neoforge support
  • drop 1.20.1 due to performance issues, favor 1.21-26.2 when it comes out
  • create support mechanisms for transferring from other plugins
  • steady-state and burst usage statistics for admins
  • biome and player analytics for world builders

Need Folia, a proxy network, or paid support?

RTP-Pro is a drop-in upgrade - same configuration, same data files, same commands. It adds:

  • Folia adapter (Region Scheduler + off-tick pre-filter, no 1-tick stalls)
  • Multi-server / proxy support (Velocity), validated on the in-repo devstack (2 proxies, 2 lobbies, 2 backends behind shared Redis)
  • SQL / Redis shared-state backends (H2, SQLite, MySQL, PostgreSQL, Jedis)
  • Vault economy, multilingual lang/**, login-reserve cache, visitor mode
  • The richer safety.yml grammar: vanilla block tags (#minecraft:leaves), state predicates (OAK_SLAB[waterlogged=true]), wildcards (*[waterlogged=true])
  • Earliest releases on each version + priority support within a documented response window

Links

I'm a solo engineer maintaining a deterministic, high-performance teleport engine. The free build is the same core code that ships in RTP-Pro - released openly because single-server Bukkit/Paper operators deserve a fast, audited /rtp without a paywall. If RTP saves your TPS, a star on GitHub or a properly-filed bug report goes a long way.

Версии и скачивания

1 последних версий
3.0.0
32 загрузок · release · RTP-3.0.0.jar
bukkit fabric paper purpur spigot 1.20.1 1.20.2 1.20.3 1.20.4 1.20.5 1.20.6 1.21 1.21.1 1.21.2 1.21.3 1.21.4 1.21.5
Скачать

Категории

management optimization transportation

Похожие ресурсы

Zones

Zones

1 899 загрузок
TAB

TAB

856 036 загрузок