Donut RTP & RTP ZoneСкачатьСкачатьСкачатьСкачатьСкачатьСкачатьСкачатьСкачатьСкачатьСкачатьСкачатьСкачать
ВЕРСИИ (12)
release
2.0.0
2.0.024 окт. 2026 г.340Minecraft: 1.20.1, 1.20.2, 1.20.3, 1.20.4, 1.20.5, 1.20.6, 1.21, 1.21.1, 1.21.2, 1.21.3, 1.21.4, 1.21.5, 1.21.6, 1.21.7, 1.21.8, 1.21.9, 1.21.10, 1.21.11, 26.1, 26.1.1, 26.1.2, 26.2, 26.3bukkit, folia, paper, purpur, spigot
Что нового
# DonutRTP 2.0.0: The Zone Update
A full rewrite of DonutRTP. One jar runs on Paper, Folia, Purpur, Spigot and Bukkit, Minecraft 1.20.1 to 26.3, and
your 1.x setup upgrades itself on the first start.
## New
### Group RTP zones
- **GROUP zones**: one countdown for everyone on the pad. When it ends, everyone still inside lands together, a few
blocks apart (`spread`).
- **Minimum players**: the countdown waits for `min-players`, and the zone shows how many more it needs.
- **INDIVIDUAL zones** still work like 1.x: your own countdown starts when you walk in.
- **Any number of zones**, made in game. Mark two corners with `/rtpadmin pos1` and `/rtpadmin pos2`, then run
`/rtpadmin zone create <name> <destination>`. You can use a WorldGuard region instead
(`... region <id>`).
- Every setting changes with `/rtpadmin zone set <name> <key> <value>`, without a restart.
- **Countdown on the title, action bar and boss bar**, each switchable per zone.
- **Per-zone cooldown and permission**. Players on cooldown are told how long is left, and join the zone when it
runs out.
- Jumping never counts as leaving a zone.
### Destinations
- **Any number of destinations**, not just Overworld, Nether and End. Each has its own:
- world, square or circle shape, centre (or the world spawn), minimum and maximum distance, and heights;
- biome allow and deny lists (oceans and rivers are denied in the Overworld by default);
- permission, cooldown, Vault cost and menu item.
- **The world border is always respected**, with a margin.
- `/rtp <destination>` teleports without the menu, with tab completion.
- `/rtp player <player> [destination]` lets admins send someone, with no warmup, cooldown or cost.
### The menu
- Each item shows the player's cooldown ("Available in 4m 12s"), the cost, and a lock when they lack the permission.
- It updates every second while open.
- Icons can be any item, a HeadDatabase head (`hdb-1234`), or a player head from a texture, UUID or name.
### Safety
- **Landing protection**: no fall damage for 5 seconds and no damage at all for 3 seconds after landing (both
configurable).
- **Claims and regions avoided**: never land inside a WorldGuard region or a GriefPrevention claim.
- **Never land somewhere unsafe**: water, lava, fire, magma, powder snow, cobwebs, berry bushes, cactus, the Nether
roof, the void, or a tree.
- **Never beside lava**, or under lava that would pour down once the chunk starts ticking.
### Cooldowns, costs and ranks
- **Cooldowns are saved to disk** and survive restarts.
- Cooldowns can be shared or per destination.
- **Shorter cooldowns per rank**: `cooldown.ranks: { vip: 120 }` gives players with `donutrtp.cooldown.vip` a
two-minute cooldown. The lowest one a player has wins.
- **Costs through Vault**, taken only once the player has landed, and refunded if the teleport fails.
- Bypass permissions: `donutrtp.cooldown.bypass`, `donutrtp.cost.bypass` and `donutrtp.warmup.bypass`.
### Warmup
- Taking damage cancels the warmup (it can be turned off).
- Being teleported away by something else also counts as moving.
- The countdown can show on the action bar, a title or both, with an optional tick sound.
### Integrations
- **PlaceholderAPI**:
- `%donutrtp_cooldown%` and `%donutrtp_cooldown_seconds%`;
- `%donutrtp_cooldown_<destination>%`;
- `%donutrtp_zone%`;
- `%donutrtp_zone_<name>_countdown%` and `%donutrtp_zone_<name>_players%`, for holograms and scoreboards.
- **Developer API**:
- `RtpPreTeleportEvent` is cancellable and can change where the player lands;
- `RtpTeleportEvent` fires after landing;
- both carry the destination and the source (command, menu, admin or zone).
- **Landing commands**: console commands run after each teleport, with `{player}`, `{world}`, `{x}`, `{y}`, `{z}`
and `{destination}`.
### Admin
- `/rtpadmin info` shows the platform, the hooks, each destination with its ready spots, and the zones.
- **A typo never wipes your setup**. If `config.yml` or `zones.yml` is not valid YAML, `/rtpadmin reload` says
where the mistake is and keeps the previous settings. `zones.yml` is never overwritten while it cannot be read.
- When a player's search finds nothing, the console says why, at most every five minutes per destination:
- no safe ground;
- denied biomes;
- claims and regions;
- or chunks still generating on a busy server.
## Fixed
- **Lag spikes on `/rtp`**. 1.x loaded up to 60 chunks one after another on the main thread for every teleport. 2.0
loads them asynchronously on Paper and Folia, uses each loaded chunk fully, and keeps a few spots per destination
ready in advance. Spigot loads at most one chunk per tick.
- **1.20.1 to 1.20.4 servers on Java 17 could not load 1.5.x**: it was built for Java 21. 2.0 is built for Java 17.
- **Spigot errors on the warmup**: the action bar used a Paper-only API. Spigot now uses its own chat API.
- **Folia**: zone state was shared between region threads without protection. Every player, block and chunk is now
touched only from the thread that owns it.
## Changed
- Admin commands moved to `/rtpadmin`; `/donutrtp` is an alias, so `/donutrtp reload` still works. Zone commands
have a new form: `/rtpadmin zone create|set|delete|info|list`.
- Zones live in `zones.yml`. Messages use `{placeholders}` (1.x `%placeholders%` still work).
- New permissions:
- `donutrtp.zone.use` (everyone) and `donutrtp.zone.admin` (ops);
- `donutrtp.cost.bypass` (ops) and `donutrtp.warmup.bypass` (nobody).
## Upgrading from 1.x
1. Replace the jar and start the server. Keep `plugins/DonutRTP/`.
2. DonutRTP upgrades your files on the first start and logs what it did:
- `config.yml` becomes the 2.0 layout: warmup, cooldown, attempts, sounds, worlds, radius, minimum height and menu
items carry over.
- The 1.x WorldGuard zone becomes a zone named after its region. Each 1.x cuboid zone becomes a zone with its own
name and permission. Zones that were off stay off.
- `messages.yml` is replaced by the 2.0 messages, keeping your prefix.
- The old files are kept as `config-1.x.yml` and `messages-1.x.yml`.
3. The new defaults apply on top:
- a 300-block minimum distance (capped at a quarter of your radius);
- ocean and river biomes denied in the Overworld;
- landing protection;
- three ready spots per destination.
## Tested
- 22 unit tests.
- A bot matrix boots a 1.x install on Paper 1.20.1, 1.20.4, 1.20.6, 1.21.1, 1.21.4, 1.21.8, 1.21.11, 26.1.2, 26.2 and
26.3, and Folia 1.20.4, 1.21.4, 1.21.11 and 26.3. On each server it runs up to 23 checks, from the upgrade and the
menu to group zones and Vault costs, with WorldGuard and GriefPrevention on Paper. Then it scans the console for
errors.
release
1.5.2
1.5.228 сент. 2026 г.6,1 тыс.Minecraft: 1.20.1, 1.20.2, 1.20.3, 1.20.4, 1.20.5, 1.20.6, 1.21, 1.21.1, 1.21.2, 1.21.3, 1.21.4, 1.21.5, 1.21.6, 1.21.7, 1.21.8, 1.21.9, 1.21.10, 1.21.11, 26.1, 26.1.1, 26.1.2, 26.2, 26.3bukkit, folia, paper, purpur, spigot
Что нового
# DonutRTP Patch Notes
## 1.5.2
### Platform
* Minecraft **26.3** support (Paper API `26.3.build.49-alpha`, the latest published 26.3 API artifact)
* Boot-tested on Paper **26.3 ALPHA build #133**, Paper 26.2 build 129, Paper 1.20.1 build 196, and Folia 26.2 build 7
* Folia 26.3 is not published yet (Paper Fill API returns 404)
* Existing support for 1.20.1–26.2, Folia, Bukkit, Spigot, and Purpur is unchanged (`api-version: 1.20`, `folia-supported: true`)
### Upgrade Notes
1. Replace the jar with **1.5.2**. Keep `plugins/DonutRTP/`.
2. Paper / Folia 26.x servers require Java 25; the plugin jar still runs on Java 21 for 1.20.5–1.21.x.
---
## 1.5.1
### Bug Fixes
* **RTP zone no longer cancels when you jump.** Countdown tracks the height where it started; jumping in place keeps it running. Walking out still cancels.
* **"Failed to find a safe location" is far less frequent.** Surface finder scans from the true surface (ignoring leaf canopies) and lands feet on solid ground.
### Platform
* bStats metrics (plugin ID **33560**)
* Modrinth update check for [donut-rtp-and-rtp-zone](https://modrinth.com/plugin/donut-rtp-and-rtp-zone) with console warning and `donutrtp.admin` join notify (`update-check.*`)
* Confirmed support matrix: Bukkit / Spigot / Paper / Purpur / Folia on Minecraft **1.20.1–26.2**
* Apache-2.0 OSS cleanup (LICENSE, NOTICE, README, contributor docs)
### Behaviour Notes
* `rtp-zone.countdown.cancel-on-move` only reacts to horizontal movement. Jumping never counts as moving.
### Upgrade Notes
1. Replace the jar with **1.5.1**. Keep `plugins/DonutRTP/`.
2. Optional new keys under `update-check` are backfilled by defaults if missing.
---
## 1.5.0
Store release covering early zone/safe-location work. Prefer **1.5.1** for the complete jump-tolerant countdown, safer landings, bStats, and update check.
---
## 1.4.0
### New Features
* **WorldGuard RTP zone** — configure an existing WorldGuard region as an RTP pad
* `/donutrtp zone set <region>` or `/donutrtp zone set <world> <region>`
* `/donutrtp zone remove`, `/donutrtp zone info`, `/donutrtp zone reload`
* Trigger on region enter (ENTER / BOTH); no re-trigger while remaining inside
* Zone-specific cooldown, action-bar countdown, and messages
* WorldGuard is an **optional softdepend** — the plugin starts without it and only disables region zones
### Configuration
* New `rtp-zone` section in `config.yml` (enabled by default; region empty until set)
* Legacy `rtp-zones` cuboid zones still work when no WorldGuard region is configured
### Permissions
* `donutrtp.zone.admin` — manage zone commands (default: op)
* `donutrtp.cooldown.bypass` — bypass cooldown when `rtp-zone.cooldown.bypass-enabled` is true
### Commands
* `/rtp` alias: `donutrtp`
* `/donutrtp zone set|remove|info|reload`
### Notes
* INTERACT trigger mode disables region-entry RTP only; the `/rtp` GUI remains available
* There is still no physical in-world RTP block/head interact listener
---
## 1.3.0
### New Features
* RTPZone mechanic — configurable cuboid zones that start a title/subtitle countdown on entry and random-teleport players when it completes
### Configuration
* New `rtp-zones` section in `config.yml` (disabled by default)
* Per-zone: world, center, half-size (X/Y/Z), countdown-seconds, world-type, optional permission
### Permissions
* `donutrtp.zone.use` — allows triggering RTP zones (default: true)
---
## 1.2.1
### Bug Fixes
* Fixed frequent "Failed to find a safe location" by loading chunks before checks, using world-aware height scanning (Nether cave scan), and allowing passable decorative blocks at feet/head
### Configuration
* Default `cooldown-seconds` changed from 30 to 300
* Default `max-attempts` increased from 30 to 60
* Existing servers: update `cooldown-seconds: 300` in your config.yml to apply the new cooldown
---
## 1.2.0
### Added
- **HeadDatabase ID support** — GUI items can use a HeadDatabase head via `material: "hdb-<id>"` (requires HeadDatabase plugin). Existing material and `head` block formats are unchanged.
- **Action bar cooldown sound** — Optional sound played each second during the warmup countdown (`actionbar-cooldown` in `config.yml`). Disabled by default for backwards compatibility.
- **Instant teleport option** — Set `instant-teleport: true` to skip the warmup countdown and teleport immediately after a safe location is found.
### Configuration
- New `instant-teleport` key in `config.yml` (default: `false`)
- New `actionbar-cooldown` section in `config.yml` (see inline comments for examples)
- HeadDatabase example under `gui.items` in `config.yml`
- Missing config keys are backfilled with sensible defaults on reload
---
## 1.1.0
### Added
- **Configurable GUI items** — Per-world RTP buttons (Overworld, Nether, End) can be customized in `config.yml`:
- Slot, display name, and lore
- Any valid Minecraft material as the icon
- Custom player heads via texture hash, full base64 value, UUID, or player name
- **Configurable teleport sound** — Play a sound on successful RTP with adjustable volume and pitch (`teleport-sound` in `config.yml`)
- **Action bar warmup countdown** — Remaining seconds are shown on the action bar during the teleport warmup (configurable via `countdown-actionbar` in `messages.yml`)
### Changed
- Warmup countdown no longer spams chat each second; the "don't move" warning still appears once in chat
- Invalid materials, player heads, sounds, or GUI slots log a console warning and fall back to defaults
### Configuration
- New `gui.items` section in `config.yml` (see inline comments for examples)
- New `teleport-sound` section in `config.yml`
- New `countdown-actionbar` key in `messages.yml`
---
## 1.0.1
- Folia compatibility improvements for async teleport handling
## 1.0.0
- Initial release: DonutSMP-style RTP GUI for Paper and Folia
release
1.5.2
1.5.228 сент. 2026 г.55Minecraft: 1.20.1, 1.20.2, 1.20.3, 1.20.4, 1.20.5, 1.20.6, 1.21, 1.21.1, 1.21.2, 1.21.3, 1.21.4, 1.21.5, 1.21.6, 1.21.7, 1.21.8, 1.21.9, 1.21.10, 1.21.11, 26.1, 26.1.1, 26.1.2, 26.2, 26.3bukkit, folia, paper, purpur, spigot
Что нового
# DonutRTP Patch Notes
## 1.5.2
### Platform
* Minecraft **26.3** support (Paper API `26.3.build.49-alpha`, the latest published 26.3 API artifact)
* Boot-tested on Paper **26.3 ALPHA build #133**, Paper 26.2 build 129, Paper 1.20.1 build 196, and Folia 26.2 build 7
* Folia 26.3 is not published yet (Paper Fill API returns 404)
* Existing support for 1.20.1–26.2, Folia, Bukkit, Spigot, and Purpur is unchanged (`api-version: 1.20`, `folia-supported: true`)
### Upgrade Notes
1. Replace the jar with **1.5.2**. Keep `plugins/DonutRTP/`.
2. Paper / Folia 26.x servers require Java 25; the plugin jar still runs on Java 21 for 1.20.5–1.21.x.
---
## 1.5.1
### Bug Fixes
* **RTP zone no longer cancels when you jump.** Countdown tracks the height where it started; jumping in place keeps it running. Walking out still cancels.
* **"Failed to find a safe location" is far less frequent.** Surface finder scans from the true surface (ignoring leaf canopies) and lands feet on solid ground.
### Platform
* bStats metrics (plugin ID **33560**)
* Modrinth update check for [donut-rtp-and-rtp-zone](https://modrinth.com/plugin/donut-rtp-and-rtp-zone) with console warning and `donutrtp.admin` join notify (`update-check.*`)
* Confirmed support matrix: Bukkit / Spigot / Paper / Purpur / Folia on Minecraft **1.20.1–26.2**
* Apache-2.0 OSS cleanup (LICENSE, NOTICE, README, contributor docs)
### Behaviour Notes
* `rtp-zone.countdown.cancel-on-move` only reacts to horizontal movement. Jumping never counts as moving.
### Upgrade Notes
1. Replace the jar with **1.5.1**. Keep `plugins/DonutRTP/`.
2. Optional new keys under `update-check` are backfilled by defaults if missing.
---
## 1.5.0
Store release covering early zone/safe-location work. Prefer **1.5.1** for the complete jump-tolerant countdown, safer landings, bStats, and update check.
---
## 1.4.0
### New Features
* **WorldGuard RTP zone** — configure an existing WorldGuard region as an RTP pad
* `/donutrtp zone set <region>` or `/donutrtp zone set <world> <region>`
* `/donutrtp zone remove`, `/donutrtp zone info`, `/donutrtp zone reload`
* Trigger on region enter (ENTER / BOTH); no re-trigger while remaining inside
* Zone-specific cooldown, action-bar countdown, and messages
* WorldGuard is an **optional softdepend** — the plugin starts without it and only disables region zones
### Configuration
* New `rtp-zone` section in `config.yml` (enabled by default; region empty until set)
* Legacy `rtp-zones` cuboid zones still work when no WorldGuard region is configured
### Permissions
* `donutrtp.zone.admin` — manage zone commands (default: op)
* `donutrtp.cooldown.bypass` — bypass cooldown when `rtp-zone.cooldown.bypass-enabled` is true
### Commands
* `/rtp` alias: `donutrtp`
* `/donutrtp zone set|remove|info|reload`
### Notes
* INTERACT trigger mode disables region-entry RTP only; the `/rtp` GUI remains available
* There is still no physical in-world RTP block/head interact listener
---
## 1.3.0
### New Features
* RTPZone mechanic — configurable cuboid zones that start a title/subtitle countdown on entry and random-teleport players when it completes
### Configuration
* New `rtp-zones` section in `config.yml` (disabled by default)
* Per-zone: world, center, half-size (X/Y/Z), countdown-seconds, world-type, optional permission
### Permissions
* `donutrtp.zone.use` — allows triggering RTP zones (default: true)
---
## 1.2.1
### Bug Fixes
* Fixed frequent "Failed to find a safe location" by loading chunks before checks, using world-aware height scanning (Nether cave scan), and allowing passable decorative blocks at feet/head
### Configuration
* Default `cooldown-seconds` changed from 30 to 300
* Default `max-attempts` increased from 30 to 60
* Existing servers: update `cooldown-seconds: 300` in your config.yml to apply the new cooldown
---
## 1.2.0
### Added
- **HeadDatabase ID support** — GUI items can use a HeadDatabase head via `material: "hdb-<id>"` (requires HeadDatabase plugin). Existing material and `head` block formats are unchanged.
- **Action bar cooldown sound** — Optional sound played each second during the warmup countdown (`actionbar-cooldown` in `config.yml`). Disabled by default for backwards compatibility.
- **Instant teleport option** — Set `instant-teleport: true` to skip the warmup countdown and teleport immediately after a safe location is found.
### Configuration
- New `instant-teleport` key in `config.yml` (default: `false`)
- New `actionbar-cooldown` section in `config.yml` (see inline comments for examples)
- HeadDatabase example under `gui.items` in `config.yml`
- Missing config keys are backfilled with sensible defaults on reload
---
## 1.1.0
### Added
- **Configurable GUI items** — Per-world RTP buttons (Overworld, Nether, End) can be customized in `config.yml`:
- Slot, display name, and lore
- Any valid Minecraft material as the icon
- Custom player heads via texture hash, full base64 value, UUID, or player name
- **Configurable teleport sound** — Play a sound on successful RTP with adjustable volume and pitch (`teleport-sound` in `config.yml`)
- **Action bar warmup countdown** — Remaining seconds are shown on the action bar during the teleport warmup (configurable via `countdown-actionbar` in `messages.yml`)
### Changed
- Warmup countdown no longer spams chat each second; the "don't move" warning still appears once in chat
- Invalid materials, player heads, sounds, or GUI slots log a console warning and fall back to defaults
### Configuration
- New `gui.items` section in `config.yml` (see inline comments for examples)
- New `teleport-sound` section in `config.yml`
- New `countdown-actionbar` key in `messages.yml`
---
## 1.0.1
- Folia compatibility improvements for async teleport handling
## 1.0.0
- Initial release: DonutSMP-style RTP GUI for Paper and Folia
release
1.5.1
1.5.121 авг. 2026 г.5,2 тыс.Minecraft: 1.20.1, 1.20.2, 1.20.3, 1.20.4, 1.20.5, 1.20.6, 1.21, 1.21.1, 1.21.2, 1.21.3, 1.21.4, 1.21.5, 1.21.6, 1.21.7, 1.21.8, 1.21.9, 1.21.10, 1.21.11, 26.1, 26.1.1, 26.1.2, 26.2bukkit, folia, paper, purpur, spigot
Что нового
# DonutRTP Patch Notes
## 1.5.1
### Bug Fixes
* **RTP zone no longer cancels when you jump.** Countdown tracks the height where it started; jumping in place keeps it running. Walking out still cancels.
* **"Failed to find a safe location" is far less frequent.** Surface finder scans from the true surface (ignoring leaf canopies) and lands feet on solid ground.
### Platform
* bStats metrics (plugin ID **33560**)
* Modrinth update check for [donut-rtp-and-rtp-zone](https://modrinth.com/plugin/donut-rtp-and-rtp-zone) with console warning and `donutrtp.admin` join notify (`update-check.*`)
* Confirmed support matrix: Bukkit / Spigot / Paper / Purpur / Folia on Minecraft **1.20.1–26.2**
* Apache-2.0 OSS cleanup (LICENSE, NOTICE, README, contributor docs)
### Behaviour Notes
* `rtp-zone.countdown.cancel-on-move` only reacts to horizontal movement. Jumping never counts as moving.
### Upgrade Notes
1. Replace the jar with **1.5.1**. Keep `plugins/DonutRTP/`.
2. Optional new keys under `update-check` are backfilled by defaults if missing.
---
## 1.5.0
Store release covering early zone/safe-location work. Prefer **1.5.1** for the complete jump-tolerant countdown, safer landings, bStats, and update check.
---
## 1.4.0
### New Features
* **WorldGuard RTP zone** — configure an existing WorldGuard region as an RTP pad
* `/donutrtp zone set <region>` or `/donutrtp zone set <world> <region>`
* `/donutrtp zone remove`, `/donutrtp zone info`, `/donutrtp zone reload`
* Trigger on region enter (ENTER / BOTH); no re-trigger while remaining inside
* Zone-specific cooldown, action-bar countdown, and messages
* WorldGuard is an **optional softdepend** — the plugin starts without it and only disables region zones
### Configuration
* New `rtp-zone` section in `config.yml` (enabled by default; region empty until set)
* Legacy `rtp-zones` cuboid zones still work when no WorldGuard region is configured
### Permissions
* `donutrtp.zone.admin` — manage zone commands (default: op)
* `donutrtp.cooldown.bypass` — bypass cooldown when `rtp-zone.cooldown.bypass-enabled` is true
### Commands
* `/rtp` alias: `donutrtp`
* `/donutrtp zone set|remove|info|reload`
### Notes
* INTERACT trigger mode disables region-entry RTP only; the `/rtp` GUI remains available
* There is still no physical in-world RTP block/head interact listener
---
## 1.3.0
### New Features
* RTPZone mechanic — configurable cuboid zones that start a title/subtitle countdown on entry and random-teleport players when it completes
### Configuration
* New `rtp-zones` section in `config.yml` (disabled by default)
* Per-zone: world, center, half-size (X/Y/Z), countdown-seconds, world-type, optional permission
### Permissions
* `donutrtp.zone.use` — allows triggering RTP zones (default: true)
---
## 1.2.1
### Bug Fixes
* Fixed frequent "Failed to find a safe location" by loading chunks before checks, using world-aware height scanning (Nether cave scan), and allowing passable decorative blocks at feet/head
### Configuration
* Default `cooldown-seconds` changed from 30 to 300
* Default `max-attempts` increased from 30 to 60
* Existing servers: update `cooldown-seconds: 300` in your config.yml to apply the new cooldown
---
## 1.2.0
### Added
- **HeadDatabase ID support** — GUI items can use a HeadDatabase head via `material: "hdb-<id>"` (requires HeadDatabase plugin). Existing material and `head` block formats are unchanged.
- **Action bar cooldown sound** — Optional sound played each second during the warmup countdown (`actionbar-cooldown` in `config.yml`). Disabled by default for backwards compatibility.
- **Instant teleport option** — Set `instant-teleport: true` to skip the warmup countdown and teleport immediately after a safe location is found.
### Configuration
- New `instant-teleport` key in `config.yml` (default: `false`)
- New `actionbar-cooldown` section in `config.yml` (see inline comments for examples)
- HeadDatabase example under `gui.items` in `config.yml`
- Missing config keys are backfilled with sensible defaults on reload
---
## 1.1.0
### Added
- **Configurable GUI items** — Per-world RTP buttons (Overworld, Nether, End) can be customized in `config.yml`:
- Slot, display name, and lore
- Any valid Minecraft material as the icon
- Custom player heads via texture hash, full base64 value, UUID, or player name
- **Configurable teleport sound** — Play a sound on successful RTP with adjustable volume and pitch (`teleport-sound` in `config.yml`)
- **Action bar warmup countdown** — Remaining seconds are shown on the action bar during the teleport warmup (configurable via `countdown-actionbar` in `messages.yml`)
### Changed
- Warmup countdown no longer spams chat each second; the "don't move" warning still appears once in chat
- Invalid materials, player heads, sounds, or GUI slots log a console warning and fall back to defaults
### Configuration
- New `gui.items` section in `config.yml` (see inline comments for examples)
- New `teleport-sound` section in `config.yml`
- New `countdown-actionbar` key in `messages.yml`
---
## 1.0.1
- Folia compatibility improvements for async teleport handling
## 1.0.0
- Initial release: DonutSMP-style RTP GUI for Paper and Folia
release
1.5.0
1.5.014 авг. 2026 г.947Minecraft: 1.20, 1.20.1, 1.20.2, 1.20.3, 1.20.4, 1.20.5, 1.20.6, 1.21, 1.21.1, 1.21.2, 1.21.3, 1.21.4, 1.21.5, 1.21.6, 1.21.7, 1.21.8, 1.21.9, 1.21.10, 1.21.11, 26.1, 26.1.1, 26.1.2, 26.2bukkit, folia, paper, purpur, spigot
Что нового
# DonutRTP v1.5.0
### Bug Fixes
* **RTP zone no longer cancels when you jump.** The warmup countdown now tracks the height where it started, so jumping in place (or any vertical-only movement) keeps the countdown running. Walking out of the zone still cancels as before.
* **"Failed to find a safe location" is far less frequent.** The surface finder had an off-by-one that placed the player's feet inside the ground block, causing ordinary flat terrain to be rejected. It now scans downward from the true surface (ignoring leaf canopies) and correctly lands players on solid ground.
### Behaviour Notes
* `rtp-zone.countdown.cancel-on-move` now only reacts to horizontal (walking) movement. Jumping never counts as moving. Leaving the zone always cancels regardless of the setting.
* Surface scanning uses `MOTION_BLOCKING_NO_LEAVES` plus a short downward window, improving success in forests, snowy biomes, and on carpets/slabs.
### Compatibility
* Same loaders as 1.4.0 (Paper / Folia / Purpur family, api-version 1.20). Folia-safe: safe-location search and per-player countdowns still run on the correct region/entity threads.
### Upgrade Notes
1. Replace the DonutRTP jar with **1.5.0**. Keep your existing `plugins/DonutRTP/` folder.
2. No config changes are required. The `cancel-on-move` comment was clarified but the key and default (`false`) are unchanged.
3. If you previously saw frequent "no safe location" errors, verify your world `radius` and `min-y` still make sense; the finder is now more reliable within those bounds.
release
Donut RTP & RTP Zone 1.4.0
1.4.010 июл. 2026 г.4,1 тыс.Minecraft: 1.20, 1.20.1, 1.20.2, 1.20.3, 1.20.4, 1.20.5, 1.20.6, 1.21, 1.21.1, 1.21.2, 1.21.3, 1.21.4, 1.21.5, 1.21.6, 1.21.7, 1.21.8, 1.21.9, 1.21.10, 1.21.11, 26.1, 26.1.1, 26.1.2, 26.2bukkit, folia, paper, purpur, spigot
Что нового
### New Features
* **WorldGuard RTP zone** — configure an existing WorldGuard region as an RTP pad
* `/donutrtp zone set <region>` or `/donutrtp zone set <world> <region>`
* `/donutrtp zone remove`, `/donutrtp zone info`, `/donutrtp zone reload`
* Trigger on region enter (ENTER / BOTH); no re-trigger while remaining inside
* Zone-specific cooldown, action-bar countdown, and messages
* WorldGuard is an **optional softdepend** — the plugin starts without it and only disables region zones
### Configuration
* New `rtp-zone` section in `config.yml` (enabled by default; region empty until set)
* Legacy `rtp-zones` cuboid zones still work when no WorldGuard region is configured
### Permissions
* `donutrtp.zone.admin` — manage zone commands (default: op)
* `donutrtp.cooldown.bypass` — bypass cooldown when `rtp-zone.cooldown.bypass-enabled` is true
release
Donut RTP & RTP Zone 1.3.0
1.3.022 июн. 2026 г.1,9 тыс.Minecraft: 1.20, 1.20.1, 1.20.2, 1.20.3, 1.20.4, 1.20.5, 1.20.6, 1.21, 1.21.1, 1.21.2, 1.21.3, 1.21.4, 1.21.5, 1.21.6, 1.21.7, 1.21.8, 1.21.9, 1.21.10, 1.21.11, 26.1, 26.1.1, 26.1.2, 26.2bukkit, folia, paper, purpur, spigot
Что нового
### New Features
* RTPZone mechanic — configurable cuboid zones that start a title/subtitle countdown on entry and random-teleport players when it completes
### Configuration
* New `rtp-zones` section in `config.yml` (disabled by default)
* Per-zone: world, center, half-size (X/Y/Z), countdown-seconds, world-type, optional permission
### Permissions
* `donutrtp.zone.use` — allows triggering RTP zones (default: true)
release
Donut RTP 1.2.1
1.2.118 июн. 2026 г.587Minecraft: 1.20, 1.20.1, 1.20.2, 1.20.3, 1.20.4, 1.20.5, 1.20.6, 1.21, 1.21.1, 1.21.2, 1.21.3, 1.21.4, 1.21.5, 1.21.6, 1.21.7, 1.21.8, 1.21.9, 1.21.10, 1.21.11, 26.1, 26.1.1, 26.1.2, 26.2bukkit, folia, paper, purpur, spigot
Что нового
### Bug Fixes
* Fixed frequent "Failed to find a safe location" by loading chunks before checks, using world-aware height scanning (Nether cave scan), and allowing passable decorative blocks at feet/head
### Configuration
* Default `cooldown-seconds` changed from 30 to 300
* Default `max-attempts` increased from 30 to 60
* Existing servers: update `cooldown-seconds: 300` in your config.yml to apply the new cooldown
release
Donut RTP 1.2.0
1.2.010 июн. 2026 г.950Minecraft: 1.20, 1.20.1, 1.20.2, 1.20.3, 1.20.4, 1.20.5, 1.20.6, 1.21, 1.21.1, 1.21.2, 1.21.3, 1.21.4, 1.21.5, 1.21.6, 1.21.7, 1.21.8, 1.21.9, 1.21.10, 1.21.11, 26.1, 26.1.1, 26.1.2bukkit, folia, paper, purpur, spigot
Что нового
### Added
- **HeadDatabase ID support** — GUI items can use a HeadDatabase head via `material: "hdb-<id>"` (requires HeadDatabase plugin). Existing material and `head` block formats are unchanged.
- **Action bar cooldown sound** — Optional sound played each second during the warmup countdown (`actionbar-cooldown` in `config.yml`). Disabled by default for backwards compatibility.
- **Instant teleport option** — Set `instant-teleport: true` to skip the warmup countdown and teleport immediately after a safe location is found.
### Configuration
- New `instant-teleport` key in `config.yml` (default: `false`)
- New `actionbar-cooldown` section in `config.yml` (see inline comments for examples)
- HeadDatabase example under `gui.items` in `config.yml`
- Missing config keys are backfilled with sensible defaults on reload
release
Donut RTP 1.1.0
1.1.09 июн. 2026 г.116Minecraft: 1.20, 1.20.1, 1.20.2, 1.20.3, 1.20.4, 1.20.5, 1.20.6, 1.21, 1.21.1, 1.21.2, 1.21.3, 1.21.4, 1.21.5, 1.21.6, 1.21.7, 1.21.8, 1.21.9, 1.21.10, 1.21.11, 26.1, 26.1.1, 26.1.2bukkit, folia, paper, purpur, spigot
Что нового
### Added
- **Configurable GUI items** Per-world RTP buttons (Overworld, Nether, End) can be customized in `config.yml`:
- Slot, display name, and lore
- Any valid Minecraft material as the icon
- Custom player heads via texture hash, full base64 value, UUID, or player name
- **Configurable teleport sound** Play a sound on successful RTP with adjustable volume and pitch (`teleport-sound` in `config.yml`)
- **Action bar warmup countdown** Remaining seconds are shown on the action bar during the teleport warmup (configurable via `countdown-actionbar` in `messages.yml`)
### Changed
- Warmup countdown no longer spams chat each second; the "don't move" warning still appears once in chat
- Invalid materials, player heads, sounds, or GUI slots log a console warning and fall back to defaults
### Configuration
- New `gui.items` section in `config.yml` (see inline comments for examples)
- New `teleport-sound` section in `config.yml`
- New `countdown-actionbar` key in `messages.yml`
release
Donut RTP 1.0.1
1.0.13 апр. 2026 г.763Minecraft: 1.20, 1.20.1, 1.20.2, 1.20.3, 1.20.4, 1.20.5, 1.20.6, 1.21, 1.21.1, 1.21.2, 1.21.3, 1.21.4, 1.21.5, 1.21.6, 1.21.7, 1.21.8, 1.21.9, 1.21.10, 1.21.11, 26.1, 26.1.1bukkit, folia, paper, purpur, spigot
Что нового
- fixed TP on Folia didn't work properly.
release
Donut RTP 1.0.0
1.0.09 мар. 2026 г.3,9 тыс.Minecraft: 1.20, 1.20.1, 1.20.2, 1.20.3, 1.20.4, 1.20.5, 1.20.6, 1.21, 1.21.1, 1.21.2, 1.21.3, 1.21.4, 1.21.5, 1.21.6, 1.21.7, 1.21.8, 1.21.9, 1.21.10, 1.21.11bukkit, folia, paper, purpur, spigot