AsyncRTP

AsyncRTP

Random teleport that loads its chunks off the main thread - no tick spikes, hazard checks around every landing spot, prepared destinations and per world and rank limits.

94 downloads 0 followers

Discord License

Built with Java 21 Available for Paper Available for Purpur Available for Folia

Chat with us on Discord

AsyncRTP

Random teleport that never stalls the server tick.

Showcase

<iframe width="560" height="315" src="https://www.youtube-nocookie.com/embed/4GfarN76S5k" title="AsyncRTP Showcase" frameborder="0" allowfullscreen></iframe>

Watch on YouTube

Most RTP plugins load their candidate chunks in the middle of the tick. The server sits and waits for the disk, and on rented hardware that turns into a visible freeze. Spikes of 300 ms are not unusual. AsyncRTP hands that work to Paper's asynchronous chunk API instead. The tick keeps running while the chunk loads, and only the final block check and the teleport itself touch the main thread.

Every landing spot has to pass the same checks: solid ground, enough free air above it, and no lava, water, fire, cacti or other hazards within a few blocks around it. A spot that fails is dropped and the next one is tried.

On top of that it keeps a small stack of already verified destinations ready, refilled one at a time while the server idles. When a player runs the command, the spot is usually waiting, so the teleport is instant instead of a multi-second search.

Why it is different

AsyncRTP Typical RTP plugin
Chunk loading asynchronous, off the tick synchronous, blocks the tick
Destination prepared in advance, instant searched on demand
Landing spot ground, headroom and the area around it checked often only the ground block
Failed attempt schedules the next one, tick stays free loops inside one tick
Nether walks up from the floor, never the bedrock roof often drops players on the ceiling
World border radius follows the border when you want it to fixed radius

What you can configure

Everything. The list below is the short version.

Per rank. Cooldown, warmup, radius, price and attempt budget can each be overridden per permission group. A group inherits anything it does not set, so a VIP entry with just cooldown-seconds: 120 changes exactly that and nothing else.

Per world. Centre, minimum and maximum radius, circle or square, height limits, headroom, blocked ground blocks, hazard blocks and the radius they are checked in, blocked or explicitly allowed biomes, and how many destinations to keep ready. Worlds that are not listed simply reject the command.

Search mode. SURFACE for the overworld, NETHER to walk up from the floor and land under the roof, HIGHEST_SOLID to ignore the height map and take the topmost solid block within the height limits.

On join. Drop players into the wild when they connect, either only on their first ever join or every time, with a delay so the client finishes loading first, and optionally only for players without a respawn point.

Safety. Lava, water, fire, cacti, magma and berry bushes near the landing spot rule it out (hazard-radius, default 2 blocks, list editable). Prepared destinations are checked again right before a player is sent there, in case something changed in the meantime. A warmup that cancels on movement or damage, a few seconds of damage immunity on arrival, an optional check for a free inventory slot, and a choice of whether a failed search should still start the cooldown.

Presentation. Depart and arrival sounds, particle type and count, and the arrival title, each switchable on its own. All player-facing text lives in a language file; English and German ship with the plugin, and any other language is a copy of one of them.

Commands

Command What it does Permission
/rtp teleport yourself asyncrtp.use (default: everyone)
/rtp <player> teleport somebody else asyncrtp.other
/rtp world <name> teleport into a specific world asyncrtp.world
/rtp info show configured worlds and how many spots are ready asyncrtp.info
/rtp reload re-read config and language file asyncrtp.reload

Aliases: /wild, /randomtp.

Three bypass permissions exist on their own, so you can hand out one without the others: asyncrtp.bypass.cooldown, asyncrtp.bypass.warmup and asyncrtp.bypass.cost.

Optional integrations

Vault. Charge a price per teleport. Without Vault the plugin runs fine and teleports stay free.

PlaceholderAPI. %asyncrtp_cooldown%, %asyncrtp_cooldown_seconds%, %asyncrtp_ready% and %asyncrtp_queue%.

Neither is required. Both are picked up automatically when present.

Requirements

Paper 1.21 or newer, Java 21 or newer. Purpur and Folia work, and so does anything else built on the Paper API. On Folia every search loads its chunks on the region that owns them, and the teleport runs on the player's own thread. Plain Spigot and CraftBukkit are not supported, because the asynchronous chunk API this plugin is built around only exists on Paper.

No gallery available for this project.

Version Minecraft Loader Download

AsyncRTP 2.3-BETA

2.3-BETA

1.21, 1.21.1, 1.21.10, 1.21.11, 1.21.2, 1.21.3, 1.21.4, 1.21.5, 1.21.6, 1.21.7, 1.21.8, 1.21.9, 26.1, 26.1.1, 26.1.2, 26.2, 26.3
folia, paper, purpur
Download

2.2-RELEASE

1.21, 1.21.1, 1.21.10, 1.21.11, 1.21.2, 1.21.3, 1.21.4, 1.21.5, 1.21.6, 1.21.7, 1.21.8, 1.21.9, 26.1, 26.1.1, 26.1.2, 26.2, 26.3
folia, paper, purpur
Download

AsyncRTP 2.1-BETA

2.1-BETA

1.21, 1.21.1, 1.21.10, 1.21.11, 1.21.2, 1.21.3, 1.21.4, 1.21.5, 1.21.6, 1.21.7, 1.21.8, 1.21.9, 26.1, 26.1.1, 26.1.2, 26.2, 26.3
folia, paper, purpur
Download

AsyncRTP 2.0

2.0

1.21, 1.21.1, 1.21.10, 1.21.11, 1.21.2, 1.21.3, 1.21.4, 1.21.5, 1.21.6, 1.21.7, 1.21.8, 1.21.9
paper, purpur
Download