nineMinecraft is a joke site.
nineMinecraft is in no way affiliated with Modrinth or 9minecraft. (And frankly, who wants to be affiliated with the latter?)
LeafRTP | Random Teleport

LeafRTP | Random Teleport

Mod and plugin

Optimized random teleportation engine with bounded execution times.

Server Game MechanicsLibraryManagementOptimizationTransportationUtility

92 downloads
1 follower
Filter loader...
Filter versions...

[3.1.0] - 2026-05-31

Added

  • German (de) locale shipped across all config/message files; full locale parity maintained.
  • Region-specific schematic paste platforms (ADR-058) with new PasteOptions API and RegionVerifierRegistry footprint claim checks (S-003). New prefabs updated to use it (skyblock, oneblock, high-performance, multi-world).
  • Pluggable bare-/rtp root action (ADR-056, REQ-API-F-006). New RootActionRegistry SPI (RTPAPI.hooks().rootAction()) lets an addon take over a bare /rtp (e.g. open a GUI menu) instead of teleporting; subcommands are never routed through it. Shipped with an example menu addon.
  • Platform-agnostic addon SPI (ADR-057). New RTPAddon lifecycle interface + AddonRegistry (RTP.addons, ServiceLoader-based) so an addon jar runs unchanged on Bukkit/Paper/Folia, Fabric, and proxy JVMs. RTP_ExampleAddon ported with zero org.bukkit.* imports.
  • Optional PvP / combat-tag gate (ADR-055). Off by default (safety.yml#pvpCheckEnabled=false). When enabled, /rtp is refused for a player currently in combat, using either a bound PvPCombatStateRegistry provider (combat-tag plugins such as PvPManager / SimpleCombatLog / CombatLogX) or RTP's built-in native damage tracker. The native tracker is now fed on every supported platform: Bukkit/Paper/Folia via an EntityDamageByEntityEvent listener and Fabric via ServerLivingEntityEvents.AFTER_DAMAGE (both resolve the projectile shooter / primed-TNT igniter as the aggressor and stamp victim/aggressor per pvpTagVictim / pvpTagAggressor). The gate is consulted at the /rtp pre-dispatch surface before the player is enrolled, fails open (a broken external provider never blocks a teleport), audits every refusal at WARNING (REQ-RTP-S-004), and uses the new configurable messages.yml#pvpInCombat string (REQ-RTP-F-013). Six safety.yml knobs: pvpCheckEnabled, pvpCombatTagSeconds, pvpOnCombat, pvpSource, pvpTagVictim, pvpTagAggressor.
  • Bundled combat-tag plugin integrations for the PvP gate (ADR-055). New reflection-based soft-depend adapters for PvPManager, CombatLogX, and Simple Combat Log (rtp-plugin/.../softdepends/pvp/); PvPIntegrations.setup binds the first enabled plugin (priority PvPManager, then CombatLogX, then Simple Combat Log) to PvPCombatStateRegistry via RTPAPI.hooks().pvpCombatState(), gated on isPluginEnabled(...) like the claim integrations. When none is installed (or pvpSource: NATIVE), the native combat tracker answers; a reflective/API-version failure disables the adapter for the session and treats the player as not-in-combat (REQ-RTP-S-004). Wired in both the full and rtp-lite bootstraps. Covered by PvPCombatAdapterTest.
  • uniquePlacements is now an integer chunk radius (was boolean; defaults to 0 = off). N >= 1 clears a (2N-1)x(2N-1) chunk square around each used spot so placements spread out; legacy true/false still coerce to 1/0. Retired spots tagged with a dedicated uniquePlacement fail cause.
  • Config getters tolerate boolean<->int cross-typing, so a legacy true/false on a now-numeric knob (or 0/1 on a boolean knob) resolves instead of throwing.
  • Optional emergency-platform block-restoration timeout (ADR-060). New safety.yml knob platformRestoreSeconds (-1 = disabled default; 0 = restore on first loaded pulse; > 0 = after that many seconds). Restores are chunk-load-aware (never force-loads, S-005), Folia-safe, and persisted across restarts.
  • /rtp info now surfaces generation outcomes (REQ-RTP-OBS-007, ADR-052): success/failure rate and a per-cause rejection breakdown, via six new placeholders and three messages.yml lines.
  • Live-updating bad-locations map during a world scan: the admin "Region shape" chart now re-renders ~1 Hz from the in-memory bad-keys cache so scan progress is visible without re-issuing the command.
  • New bStats charts: language_selection, MSPT-p99 by platform/game-version/plugin-version, and aggregate generation-outcome (success rate + top failure cause). All privacy-safe (bucketised / whitelisted categories).
  • /rtp clearcache admin command (permission rtp.admin). Clears the L1 (kept), L2 (unkept), and L3 (backlog) location caches for every region across the board in one shot, releasing any held chunk reservations and dropping the associated persisted rows; the scan/queue machinery refills the caches afterwards. Backed by a new RegionQueueManager.clearCaches().
  • rtp.admin permission node declared in plugin.yml (both full and lite), gating /rtp clearcache and grouping the existing admin tooling permissions (rtp.reload, rtp.config, rtp.scan, rtp.info) as children so a single grant covers all admin commands.
  • (Pro) Numeric range predicates in the safety-list grammar (ADR-017 amendment). safety.yml::unsafeBlocks / airBlocks now accept block-state comparisons (LAVA[level<=3], FIRE[age>=10], *[level>=8]); multiple bounds AND together. rtp-lite ignores tag/predicate tokens.

Changed

  • Region biome visualization now sources its pixels from saved region biome data only. RegionBiomesResolver no longer reads on-disk .mca palettes via RTPWorld.readBiomesInRegionFile; it classifies each in-disk pixel through the new MemoryShape.biomeAt(int, int) / biomeAt(long), a floor-search over the persisted biomeKeysCache / biomePrefixSumsCache accumulated by the scan pipeline (no chunk I/O, S-005-clean). Pixels with no recorded biome render as unsampled (BLACK), so the chart reflects what the scan has actually saved for the region.

RTP 3.0.0

by leaf26 on May 27, 2026
Download

transferring from spigotmc resource https://www.spigotmc.org/resources/rtp.94812/

runs on paper and fabric, a few things left to implement on the fabric side of things but the core functionality works.

External resources


Project members

leaf26

Member


Technical information

Project ID