ZenRTP

Simple, highly configurable RTP plugin.

21

Quick challenge

How far can you run before the mobs catch you?

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`).

ADS