Enes RtpZone | Plugin
PluginMIT

Enes RtpZone | Plugin

Advanced RTP Zone System with global countdown, instant teleportation, and multi-platform support (Paper/Folia/Purpur). Features configurable target worlds, async chunk loading, and safe location detection.

75
Downloads
8
Followers
3 days ago
Updated
📦
3
Versions

📖About Enes RtpZone | Plugin

EnesRTPZone — Advanced Random Teleportation Zone System (Paper / Folia / Purpur)

What is EnesRTPZone?

EnesRTPZone is a Paper-compatible (API 1.21+), Folia-supported, and Purpur-friendly Minecraft plugin that transforms any designated region into an interactive teleportation hub. Players are automatically transported to safe random locations after a synchronized global countdown.

Who should download EnesRTPZone?

  • Server owners who want a shared global countdown teleport system for all players in a zone
  • Staff who need wand-based zone creation and configurable RTP radius settings
  • Anyone searching for: Minecraft RTP plugin, random teleport zone, Paper 1.21 teleport, Folia teleport zone, global countdown teleport, safe location finder

Complete feature list

Commands

  • /rtpzone — Displays the help menu with all available subcommands.
  • /rtpzone wand — Gives you the selection wand (wooden axe) to define zone boundaries. Left-click sets position 1, right-click sets position 2.
  • /rtpzone create <name> — Creates a new RTP zone from your selected positions. Selections are cleared automatically after creation.
  • /rtpzone delete <name> — Deletes a named zone permanently. Tab-completion shows existing zone names.
  • /rtpzone reset (or /rtpzone clear) — Clears your current position 1 and position 2 selections.
  • /rtpzone reload — Reloads config.yml, messages.yml, and all zone data without a server restart.

Permissions

  • rtpzone.admin — Grants access to all commands (zone creation, deletion, wand, reload, selections).

Global synchronized countdown

  • All players inside any RTP zone see the same countdown timer, synced via a server-wide scheduler.
  • Countdown displayed as immersive title/subtitle messages, updated every second.
  • Configurable duration via rtp.countdown in config.yml (default: 30 seconds).
  • When the timer reaches zero, every player currently inside a zone is teleported simultaneously to a random safe location.
  • Players who enter mid-cycle join the current countdown immediately.
  • Players who leave before the timer ends are removed from the queue; no teleport occurs.

Intelligent safe-location finder

  • Random X/Z coordinates within configurable min-radius and max-radius bounds.
  • Scans from the top of the world downward to find the first solid block (avoids air spawns).
  • Built-in hazard rejection: lava, water, cactus, and void-adjacent positions are detected and skipped.
  • Retries up to 15 times before giving up with a "safe area not found" message.

Wand-based zone selection

  • Administrative players receive a wooden axe with a custom display name and lore via /rtpzone wand.
  • Left-click a block to set position 1; right-click a block to set position 2.
  • Both positions are stored per-player and cleared automatically after zone creation (or manually via /rtpzone reset).
  • Zone bounds are saved to config.yml under zones.* with world name and min/max coordinates.

Player entry/exit tracking (CountdownManager)

  • Thread-safe ConcurrentHashMap-backed set tracks which players are currently inside any zone.
  • PlayerMoveEvent handler detects zone entry and exit with block-level movement filtering (ignores rotation/fluid jitter).
  • Entering a zone starts the per-player title task and sends an "entered-zone" message.
  • Leaving a zone cancels the title task, removes the player from the countdown set, and sends a "left-zone" message.
  • Player quit event cleans up the title task automatically.

PlaceholderAPI integration

  • Placeholder: %rtpzone_cooldown% — Returns the remaining seconds before the next global teleport.
  • Time-based (System.currentTimeMillis), so the placeholder is always in sync with the displayed countdown.

Hologram support

  • Compatible with FancyHolograms and DecentHolograms (auto-detected at startup).
  • Displays the remaining countdown time on a hologram named rtpzone_cooldown.

Fully customisable messages (messages.yml)

  • All player-facing text is YAML-driven with & colour codes and hex support (&#RRGGBB).
  • Configurable chat prefix, wand name/lore, zone creation/deletion messages, countdown title/subtitle text, and help menu entries.
  • Reloaded via /rtpzone reload without restart.

Multi-platform support

  • Declared api-version: '1.21' and folia-supported: true in plugin.yml.
  • Uses GlobalRegionScheduler, RegionScheduler, and EntityScheduler from the Paper/Folia API.
  • Fully functional on Paper, Folia, and Purpur servers from a single jar.
  • Maven build profiles produce platform-specific artifacts (-paper, -folia, -purpur) with ProGuard obfuscation.

Typical staff journey (in-game)

  1. Staff runs /rtpzone wand — receives the selection wand with a gradient-coloured name and lore.
  2. Staff left-clicks a block to set position 1 and right-clicks another block to set position 2 — chat confirms both selections.
  3. Staff runs /rtpzone create spawnrtp — the zone is saved to config.yml and is now active.
  4. A player walks into the zone — they see the countdown title and an "entered-zone" chat message.
  5. When the global timer reaches zero, the player is teleported to a random safe location with a confirmation message.
  6. Staff runs /rtpzone delete spawnrtp — removes the zone and its configuration entry.
  7. Staff runs /rtpzone reload after editing messages.yml — all messages and zones reload without restart.

Installation

  1. Download the EnesRtpZone jar matching your server platform (-paper, -folia, or -purpur) and place it in the plugins folder.
  2. Start the server once to generate default config.yml and messages.yml under plugins/EnesRTPZone/.
  3. Edit config.yml to set your countdown duration, radius bounds, and target world.
  4. (Optional) Customise messages.yml to change the prefix, wand name, countdown titles, and all other player-facing text.
  5. Run /rtpzone reload to apply changes without a full restart.

Configuration files

config.yml — Main plugin settings:

rtp:
  countdown: 30
  max-radius: 10000
  min-radius: 1000
  target-world: "world"

zones: {}

messages.yml — All player-facing messages including prefix, wand display name/lore, zone creation/deletion/entry/exit messages, countdown titles, help menu entries, and error messages. Supports & colour codes and &#RRGGBB hex colours.