Donut RTP & RTP Zone

Donut RTP & RTP Zone

A powerful and polished teleportation plugin designed for Minecraft servers.

25 546 downloads 7 followers

DonutRTP 2.0: The Zone Update

Random teleport and RTP zones for survival servers, without the lag

DonutRTP is a free, open-source random teleport plugin for Paper, Folia, Purpur, Spigot and Bukkit, from Minecraft 1.20.1 to 26.3.

/rtp opens a small menu: pick the Overworld, the Nether, the End or any world you add, stand still for a few seconds, and land somewhere safe in the wild. RTP zones at spawn do it without a command. Players walk onto the pad, and everyone standing there when the countdown ends lands together.

2.0 "The Zone Update" is a full rewrite:

  • group zones, made in game;
  • any number of destinations;
  • asynchronous chunk loading, with spots found ahead of time;
  • claim and region avoidance and landing protection;
  • saved cooldowns with rank tiers, Vault costs, PlaceholderAPI and a developer API.

Each release is tested on every supported Paper and Folia version with real clients.

Two players on an RTP pad: the countdown runs, and they land together

divider

The Menu

Pick where you land

  • One item per destination, as many as you like, in any slot of a one to six row menu.
  • Each item shows your cooldown ("Available in 4m 12s"), the cost, or a lock when you lack the permission. It updates every second while the menu is open.
  • /rtp nether skips the menu. Tab completion lists only the destinations you may use.
  • Icons can be any item, a HeadDatabase head (hdb-1234), or a player head from a texture, a UUID or a name.

Teleporting

Stand still, then go

  1. Pick a destination. The warmup counts down on the action bar, a title, or both.
  2. Walking off your block or taking damage cancels it. Jumping in place never does.
  3. You land on solid ground, in open air, away from claims. You take no fall damage for five seconds and no damage at all for three.
  4. A sound and particles mark the landing. Console commands can run too, for kits or starter quests.

Ops and anyone with donutrtp.warmup.bypass skip the warmup. /rtp player <name> [destination] lets staff send someone with no warmup, cooldown or cost.

RTP Zones

Land together

  • Group zones: one countdown for everyone on the pad. When it ends, everyone still inside lands together, a few blocks apart.
  • Minimum players: the countdown waits for enough players and says how many more it needs.
  • Solo zones: your own countdown starts when you walk in, like 1.x.
  • The countdown shows on the boss bar, title and action bar. Each can be turned off per zone.
  • Per-zone cooldown and permission. Players on cooldown are told how long is left, and join when it runs out.
  • Hologram and scoreboard timers through PlaceholderAPI: %donutrtp_zone_spawn_countdown%, %donutrtp_zone_spawn_players%.

Zones made in game

Stand on one corner and type /rtpadmin pos1, stand on the other and type /rtpadmin pos2, then /rtpadmin zone create spawn overworld. That's it. Using WorldGuard? /rtpadmin zone create spawn overworld region spawn_pad uses a region instead. Every setting changes in game with /rtpadmin zone set, without a restart.

Safe Landings

Never into lava

  • Never into water, lava, fire, magma, powder snow, cobwebs, berry bushes or cactus.
  • Never beside lava, or under lava that would pour down.
  • Never into a tree, the void, or on top of the Nether roof.
  • Never inside a WorldGuard region or a GriefPrevention claim.
  • Always inside the world border, with a margin.
  • Biome rules per destination. Oceans and rivers are denied in the Overworld by default.

No Lag

Built not to lag

Loading a chunk far from everything else is the expensive part of any random teleport.

  • On Paper and Folia, DonutRTP loads chunks asynchronously. Chunks for a waiting player load first, and each loaded chunk is fully used before another one is loaded.
  • A few safe spots per destination are found ahead of time, so most teleports start the moment the warmup ends.
  • On Folia, every block, player and chunk is touched only from the region that owns it.
  • On Spigot, at most one chunk loads per tick.
  • When a search finds nothing, the console says why: no safe ground, denied biomes, claims, or a busy server.

Destinations

Any world, any shape

Add as many destinations as you like: a resource world, a "far lands" option for veterans, a VIP-only world. Each one has its own:

  • world and square or circle shape;
  • centre (or the world spawn), minimum and maximum distance, and heights;
  • biome allow and deny lists;
  • permission, cooldown, cost and menu item.

Cooldowns & Costs

Cooldowns, ranks and costs

  • Cooldowns are saved and survive restarts.
  • One cooldown for every destination, or one each.
  • Shorter cooldowns for ranks: with ranks: { vip: 120, mvp: 60 }, players with donutrtp.cooldown.vip wait two minutes and donutrtp.cooldown.mvp one. The lowest a player has wins.
  • Costs through Vault, taken only once the player has landed, and refunded if the teleport fails.
  • Bypass permissions for cooldowns, costs and the warmup.

Integrations

Plays well with others

All of these are optional:

Plugin What DonutRTP does with it
WorldGuard Zones from regions; never lands in a region
GriefPrevention Never lands in a claim
Vault (or VaultUnlocked) Destination costs
PlaceholderAPI %donutrtp_cooldown%, %donutrtp_cooldown_<destination>%, %donutrtp_zone%, %donutrtp_zone_<name>_countdown%, %donutrtp_zone_<name>_players%
HeadDatabase Menu icons

For developers:

  • RtpPreTeleportEvent is cancellable and can change where a player lands.
  • RtpTeleportEvent fires after landing.
  • Both say which destination and what started the teleport: command, menu, admin or zone.

Upgrading from 1.x

Upgrade in place

Replace the jar and restart. DonutRTP upgrades your 1.x setup on the first start:

  • Your settings carry over: warmup, cooldown, worlds, radius, minimum height, sounds and menu items.
  • Your zones carry over: the WorldGuard zone becomes a zone named after its region, and each cuboid zone keeps its name and permission.
  • The old files are kept as config-1.x.yml and messages-1.x.yml.

Compatibility

Tested on every version

Server Minecraft Java
Paper, Purpur and other Paper forks 1.20.1 – 1.20.4 17
Paper, Purpur and other Paper forks 1.20.5 – 1.21.11 21
Paper, Purpur and other Paper forks 26.1 – 26.3 25
Folia 1.20.4 – 26.3 17 – 25
Spigot, Bukkit 1.20.1 – 26.3 as your server

One jar for all of them. Each release 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 one, bots run up to 23 checks: the upgrade, the menu, warmup cancels, the Nether and the End, rank cooldowns, a two-player group zone, Vault and the admin commands, plus WorldGuard and GriefPrevention on Paper. The console must stay free of errors.

Commands & Permissions

Command Permission
/rtp donutrtp.use (everyone) The menu
/rtp <destination> donutrtp.use and the destination's permission Teleport straight away
/rtp player <player> [destination] donutrtp.admin Send someone (no warmup, cooldown or cost)
/rtpadmin reload donutrtp.admin Reload config, messages and zones
/rtpadmin info donutrtp.admin Platform, hooks, destinations, ready spots and zones
/rtpadmin pos1, /rtpadmin pos2 donutrtp.zone.admin A zone's corners, where you stand
/rtpadmin zone create <name> <destination> [region <id>] donutrtp.zone.admin Make a zone
/rtpadmin zone set <name> <key> <value> donutrtp.zone.admin Change a zone
/rtpadmin zone delete|info|list donutrtp.zone.admin

donutrtp.zone.use lets players use zones (everyone). donutrtp.cooldown.bypass and donutrtp.cost.bypass are for ops. donutrtp.warmup.bypass is given to nobody by default. /donutrtp works as /rtpadmin.

Questions

Does it lag? On Paper and Folia, chunks load off the main thread, and ready spots are prepared ahead of time. Generating new terrain still costs CPU, as it does for every RTP plugin. Pre-generating your world makes every teleport cheap.

Can I add my own worlds? Yes. Add a destination under destinations: in config.yml with the world's name, then /rtpadmin reload.

Do I need WorldGuard for zones? No. Zones are boxes you select in game. WorldGuard regions work too.

Will my 1.x setup break? No. It is upgraded on the first start and the old files are kept.

Folia? Yes, every part of it, including group zones.

"No safe spot was found"? The console says why. Usually the area is mostly ocean, or claims cover it. A larger radius helps.

Gallery

The menu

The countdown on a group zone

Landed together

A Nether landing

An End landing

divider

Discord: discord.gg/SAmd9fhNhr · Source: GitHub (Apache 2.0) · Support the project: nightbeam.dev/support

Version Minecraft Loader Download

2.0.0

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.3
bukkit, folia, paper, purpur, spigot
Download

1.5.2

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.3
bukkit, folia, paper, purpur, spigot
Download

1.5.2

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.3
bukkit, folia, paper, purpur, spigot
Download

1.5.1

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
bukkit, folia, paper, purpur, spigot
Download

1.5.0

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.2
bukkit, folia, paper, purpur, spigot
Download

Donut RTP & RTP Zone 1.4.0

1.4.0

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.2
bukkit, folia, paper, purpur, spigot
Download

Donut RTP & RTP Zone 1.3.0

1.3.0

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.2
bukkit, folia, paper, purpur, spigot
Download

Donut RTP 1.2.1

1.2.1

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.2
bukkit, folia, paper, purpur, spigot
Download

Donut RTP 1.2.0

1.2.0

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
bukkit, folia, paper, purpur, spigot
Download

Donut RTP 1.1.0

1.1.0

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
bukkit, folia, paper, purpur, spigot
Download

Donut RTP 1.0.1

1.0.1

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
bukkit, folia, paper, purpur, spigot
Download

Donut RTP 1.0.0

1.0.0

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
bukkit, folia, paper, purpur, spigot
Download