
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.
📖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.countdownin 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-radiusandmax-radiusbounds. - 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. PlayerMoveEventhandler 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 reloadwithout restart.
Multi-platform support
- Declared
api-version: '1.21'andfolia-supported: trueinplugin.yml. - Uses
GlobalRegionScheduler,RegionScheduler, andEntitySchedulerfrom 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)
- Staff runs
/rtpzone wand— receives the selection wand with a gradient-coloured name and lore. - Staff left-clicks a block to set position 1 and right-clicks another block to set position 2 — chat confirms both selections.
- Staff runs
/rtpzone create spawnrtp— the zone is saved to config.yml and is now active. - A player walks into the zone — they see the countdown title and an "entered-zone" chat message.
- When the global timer reaches zero, the player is teleported to a random safe location with a confirmation message.
- Staff runs
/rtpzone delete spawnrtp— removes the zone and its configuration entry. - Staff runs
/rtpzone reloadafter editing messages.yml — all messages and zones reload without restart.
Installation
- Download the
EnesRtpZonejar matching your server platform (-paper,-folia, or-purpur) and place it in thepluginsfolder. - Start the server once to generate default
config.ymlandmessages.ymlunderplugins/EnesRTPZone/. - Edit
config.ymlto set your countdown duration, radius bounds, and target world. - (Optional) Customise
messages.ymlto change the prefix, wand name, countdown titles, and all other player-facing text. - Run
/rtpzone reloadto 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.