Tags
Creators
Details
3.6.7
Compatibility
Changes
[1] /rtp now works for everyone out of the box. The basic justrtp.command.rtp permission was op-only, so after installing or updating, normal players got "no permission" until you granted it in LuckPerms. It now defaults to true. The sensitive nodes stay op: teleporting to other worlds, to other players, across servers, and custom radius.
[2] Hardened the world redirects. rtp_world_overrides now resolves world aliases for its target and, if the target world has RTP disabled or does not exist, keeps you in your current world instead of making every /rtp fail. Cross-server GUI buttons that point at the server you are already on are hidden, since the command rejects a same-server hop and the button would be dead.
[3] first_world_rtp is more robust. If the teleport cannot find a spot it is retried the next time the player enters the world instead of being silently marked done, and it no longer teleports a player twice when first_join_rtp already sent them into the same world.
[4] Disconnect cleanup now runs once. A kick fires both the kick and the quit event, so the plugin was running its cleanup (and its database calls) twice for a single kick.
[5] Packet-hologram tracking writes are now serialised like the entity-hologram ones, so two zones saving at the same time on Folia cannot corrupt the tracking file and leave orphan holograms.
[6] Fixed and extended /rtp benchmark. The cache benchmark used to fall back to a live search on a cache miss and count that time as a cache serve, so under load it reported multi-second "cache" averages. It now measures only the cache-hit path and honestly reports the hit count (an empty cache shows "0 cache hits" instead of a fake number). The live benchmark is labelled Benchmark(live), the cache one Benchmark(cache), and a new "/rtp benchmark <world> both" runs both back to back for a side-by-side comparison.
[7] A paused background cache now recovers on its own. When a world fails to find a safe location several cycles in a row the cache still pauses it (so it stops hammering a world where nothing can be found), but instead of staying off until you run /rtp reload, it retries automatically after a cooldown. If it keeps failing the wait doubles each time up to a cap, so a genuinely misconfigured world backs off instead of spinning, and the moment it finds a spot again it resumes and logs that it recovered. The pause warning now tells you when the next auto-retry is. New location_cache.fail_world_retry_seconds (default 300) and fail_world_retry_max_seconds (default 1800). config-version 54.
[8] Flight no longer breaks the air-drop parachute. Creative fly and /fly plugins let a player float out of the descent and left the canopy rig behind. Flight is now turned off for the drop and restored exactly on landing (air_rtp.glide.block_flight, on by default). You can also list commands that are blocked while parachuting under air_rtp.glide.blocked_commands (fly and tempfly by default), which catches /fly plugins that flip flight on directly. config-version 55.
Verified locally with 200+ concurrent teleports, config auto-repair from an old version (values and comments preserved), and repeated reloads under load (hologram count stays put, no errors).
Projects on Modrinth are automatically available through a Maven repository for use with JVM build tools such as Gradle. To learn more about the Modrinth Maven API, click here.
Note: When available, you should use the creator's maven repo instead as it will have transitive dependency information that the Modrinth Maven API does not. You may also end up with duplicate dependencies if you use a mix of Modrinth and non-Modrinth Maven repositories for your dependencies, because the group identifier will be different when served through the Modrinth Maven API.
Maven coordinates:
Version ID:
build.gradle:
repositories {
exclusiveContent {
forRepository {
maven {
name = "Modrinth"
url = "https://api.modrinth.com/maven"
}
}
// forRepositories(fg.repository) // Uncomment when using ForgeGradle
filter {
includeGroup "maven.modrinth"
}
}
}
// Standard Gradle dependency
dependencies {
implementation "maven.modrinth:L0rNG1h2:CcqCIq1U"
}
// Legacy Loom dependency
dependencies {
modImplementation "maven.modrinth:L0rNG1h2:CcqCIq1U"
}

