DyRTP 1.1.0
This is the largest DyRTP update so far. Players can choose the biome they want to land in. Ranks can get their own cooldown, price and distance. Servers get PlaceholderAPI placeholders, three new languages, MiniMessage formatting and a developer API. Every new system has its own switch in config.yml. Settings, aliases and player preferences are kept, and servers upgrade by replacing the JAR.
Biome choice
What changed. Until now RTP always searched the whole world. Players can now ask for a biome.
/dyrtp biome <biome>(Turkish:/dyrtp biyom) searches only that biome. TAB lists the biomes that can be chosen.biome-selection.biomeslimits the choice. An empty list allows every biome that is not blacklisted.- Blacklisted biomes such as oceans can never be chosen, and a world's own
allowed-biomeslist still applies. - Biome searches have their own limits:
biome-selection.max-attempts(default 1000) andbiome-selection.timeout-seconds(default 60). If nothing safe is found, the player is told and nothing is charged. - Price, cooldown, warmup and confirmation work exactly like a normal RTP.
- Permission
dyrtp.biome(everyone by default). Switch:biome-selection.enabled.
Cooldown, price and distance by rank
What changed. Every player used to share one cooldown, one price and one radius. Now permissions can change them per group:
| Permission | Effect | When a player has several |
|---|---|---|
dyrtp.cooldown.<seconds> | Replaces the cooldown, for example dyrtp.cooldown.60 | The lowest wins |
dyrtp.price.<amount> | Replaces the price, for example dyrtp.price.25 | The lowest wins |
dyrtp.radius.<blocks> | Replaces the farthest distance, for example dyrtp.radius.10000 | The highest wins |
dyrtp.cooldown.0removes the wait for that group.- A radius permission cannot go below the world's
min-radius. - Players without these permissions keep the normal settings, so nothing changes on servers that do not use them.
- Switches:
cooldown.permission-overrides,economy.permission-pricesandrtp.permission-radius.
PlaceholderAPI
DyRTP now registers its own placeholders when PlaceholderAPI is installed. No eCloud download is needed.
| Placeholder | Shows |
|---|---|
%dyrtp_cooldown% | Seconds left, 0 when ready |
%dyrtp_cooldown_formatted% | The same as text, for example 4m 12s |
%dyrtp_ready% | true or false |
%dyrtp_price% | The player's price as a number |
%dyrtp_price_formatted% | The price with the economy's currency |
%dyrtp_world% | The world the next RTP goes to |
Switch: integrations.placeholderapi.enabled.
German, Spanish and Russian
DyRTP now ships complete message files in German, Spanish and Russian, next to English and Turkish.
- With
language.default: auto, players get these languages from their Minecraft language setting. - Players can choose with
/dyrtp language de,esorru. Administrators can force one for everyone with/dyrtp admin language. - The new files
messages_de.yml,messages_es.ymlandmessages_ru.ymlare created in the plugin folder and can be edited like the others.
MiniMessage
On Paper and Purpur, every message can now use MiniMessage tags next to the usual & codes, for example <green>, <#55ff55> or <gradient:#55ff55:#55ffff>Teleported!</gradient>.
- Existing message files keep working unchanged;
&codes and tags can be mixed. - Spigot does not include Adventure, so there only
&codes apply. DyRTP does not bundle Adventure. - Player names and other inserted values are never read as tags.
Automatic RTP to another world
first-join-rtp.world and death-rtp.world can now send players to a different world, for example from a lobby into the survival world. Left empty, the current world is used as before.
Developer API
Other plugins can use dev.dyrtp.api.DyRTPAPI:
isAvailable(),getCooldownRemaining(player),getPrice(player),getDestinationWorld(player)andisTeleporting(player);randomTeleport(player)starts a teleport like/forcertp.
The existing request, pre-teleport, post-teleport and failure events stay the same.
bStats
DyRTP now sends anonymous statistics to bStats: server and player counts, Minecraft and plugin versions, and a few DyRTP charts (language mode, economy, cooldown, automatic RTP, PlaceholderAPI and DyClaim use). No player names, locations or chat are sent. Turn it off with metrics.enabled: false, or for every plugin in plugins/bStats/config.yml.
Smaller changes
- New license. DyRTP 1.1.0 and later use the DyRTP Source-Available License 1.0, the same terms as DyClaim: free to use and modify on any server, no paid distribution, and distributed versions must share their source. Earlier versions keep LGPL-3.0-only.
- New installations follow the vanilla
/worldborderby default (use-world-border: true);max-radiusstill caps the distance. Existing configurations keep their value. Destinations outside the world border were and are always rejected. - Help and language texts that you never edited now list the new languages after the upgrade. Edited texts are kept.
Performance
The BetterRTP comparison was repeated with DyRTP 1.1.0 on the same world snapshot, settings and client as for 1.0.1. DyRTP had the lower median command-to-teleport time in all five scenarios:
| Scenario | DyRTP 1.1.0 | BetterRTP 3.6.13 |
|---|---|---|
| Overworld 16–96, first pass | 2.22 ms | 100.50 ms |
| Overworld 16–96, second pass | 1.67 ms | 100.25 ms |
| Overworld 500–1000, first pass | 76.25 ms | 127.49 ms |
| Nether 16–96 | 1.67 ms | 100.89 ms |
| End 16–96 | 1.34 ms | 99.92 ms |
Each plugin completed 70 teleports with no failures. This is command-to-teleport time with one client on Paper 26.1.2, not CPU or memory use, and not a general guarantee. Method and limits
Upgrading
- Stop the server.
- Back up the old JAR and the whole
plugins/DyRTPfolder. - Replace the JAR with
DyRTP-1.1.0.jarand start the server.
Missing settings and messages are added without resetting your values.
Verification
- Automated tests. 105 tests passed, covering ranks, radius, languages, client-language detection, migration, biome choice, MiniMessage, placeholders, the API and packaging.
- Live test on Purpur 1.20.4 with LuckPerms, PlaceholderAPI, Vault and EssentialsX: 22/22 checks passed. They included first-join and death RTP, rank cooldown, price and radius, the placeholders, a MiniMessage gradient, German, Spanish and Russian help, biome TAB, biome landing (checked by the server) and reload.
- Live test on Spigot 26.3: 5/5. RTP worked,
&codes applied and a MiniMessage tag was shown as written. - Bedrock/Geyser and every protection plugin were not retested for 1.1.0.

