ZenRTP
Simple, highly configurable RTP plugin.
Quick challenge
How far can you run before the mobs catch you?
Minecraft check
Confirm your run
Complete the quick check to get your code.
ZenRTP
ZenRTP
A lightweight random teleport plugin for Paper servers. Pick a ring around a center point, find a safe surface, and teleport players there—with cooldowns, costs, optional per-world rules, and messages you can edit.
Java 21 Paper Java 21 (API `1.21`), Java 21. ZenRTP is built for Paper servers; Spigot-only servers are not supported.
---
Features
- messages in a configurable distance band from `center-x` / `center-z`, with per-world overrides. - messages configurable “unsafe” blocks (lava, fire, cactus, etc.), air at feet/head, solid ground, and Y bounds (`min-y` / `max-y`). - messages optional clear column to build height. messages—there is no sky there. - messages with a messages (e.g. 3, 2, 1); movement can cancel the pending RTP if enabled. - messages, optional messages, and messages (hunger, XP, money via Vault). - messages, messages, messages, messages around the destination. - messages (configurable); messages in `messages.yml` (MiniMessage or legacy `&` codes).
---
Installation
1. Download the latest ZenRTP jar file from the "Versions" page. 2. Place it in your server’s `plugins` folder. 3. Start or restart the server. 4. Edit `plugins/ZenRTP/config.yml` and `plugins/ZenRTP/messages.yml` as needed, then run `/zenrtp reload` (or restart).
---
Commands
| Command | Description | | ------------------------ | ----------------------------------------------------------------------- | | `/rtp` | Random teleport in the another player. | | `/rtp <world>` | Random teleport in the named world (you must be allowed in that world). | | `/rtpo <player>` | Teleport another player in their current world. | | `/rtpo <player> <world>` | Teleport another player to a random spot in the given world. | | `/zenrtp reload` | Reload `config.yml` and `messages.yml`. |
---
Permissions
| Permission | Default | Purpose | | ------------------------ | ----------- | --------------------------------------------------------------------------------------------------------------------------- | | `zenrtp.use` | `true` | Use `/rtp`. | | `zenrtp.rtp.<world>` | (not set) | Allow RTP into the world named `<world>` (e.g. `zenrtp.rtp.world_nether`). Grant per world via your permissions plugin. | | `zenrtp.others` | `op` | Use `/rtpo`. | | `zenrtp.admin` | `op` | Use `/zenrtp reload`. | | `zenrtp.bypass.cooldown` | `op` | Ignore cooldown. | | `zenrtp.bypass.cost` | `op` | Ignore hunger/XP/money costs (unless `require-costs` is `true` in config). | | `zenrtp.bypass.daily` | `op` | Ignore the daily RTP limit. |
If a player lacks `zenrtp.rtp.<world>` for a world, they cannot RTP there, even if `/rtp` is allowed.
---
Optional plugins
| Plugin | Role | | ------------------ | ----------------------------------------------------------------------------------- | | Vault | Money cost (`currency-cost`) when configured. | | PlaceholderAPI | Present if you use placeholders elsewhere; ZenRTP does not require it for core RTP. |
---
Configuration (overview)
Main file: `plugins/ZenRTP/config.yml`.
- Feedback: `min-distance`, `max-distance`, `center-x`, `center-z`. - Feedback: `min-y`, `max-y` (per-world under `per-world-settings` if needed). - Feedback: `safe-location-check`, `unsafe-blocks` (Bukkit material names), `require-sky-visibility` (Overworld only). - Feedback: `world-blacklist`, `world-whitelist` (empty whitelist = all worlds except blacklist). - Feedback: `teleport-delay`, `cancel-on-move`, `max-attempts`, `preload-chunks`, `preload-radius`. - Feedback: `spawn-radius`, `avoid-near-players`, `avoid-player-radius`. - Feedback: `cooldown`, `daily-limit`, `hunger-cost`, `xp-cost`, `currency-cost`, `require-costs`. - Feedback: `enable-sounds`, title timings, effect durations, `log-teleports`.
All options are documented with comments in the default `config.yml` shipped with the jar.
---
Messages
Edit `plugins/ZenRTP/messages.yml` to change chat text, prefixes, and placeholders. After a reload, changes apply without a full restart.
---
Building from source
```bash git clone https://github.com/maybeizen/zenrtp.git cd ZenRTP ./gradlew shadowJar ```
The plugin jar is produced under `build/libs/` (name includes the version from `plugin.yml`).