
Tpa +
Tpa+ is a modern teleport request plugin with /tpa and /tpahere, including cooldowns, expiry, delayed teleport safety, and clickable accept/deny actions. It also offers confirmation GUIs, auto-accept, per-player request blocking, and many more features.
1.7.0
Compatibility
Changes
What's New in Tpa + v1.7.0
🛡️ Combat & Safety Enhancements
- Auto-Cancel Requests on Combat Tagging: Fixed exploit loophole where players could accept pending requests while in combat. Pending requests are now automatically invalidated if either the sender or receiver enters PvP or PvE combat.
- Target Combat Verification: Added check when sending requests so players cannot send /tpa to targets actively tagged in combat.
🌍 World Change Guards
- Dynamic Cross-World Interception: Automatically cancels ongoing teleport warmup timers and invalidates stale pending requests if a participant switches worlds.
✨ Custom Warmup Visuals & Teleport Trails
- Configurable Warmup Particle Styles: Select between SPIRAL (double helix), RINGS (concentric expanding rings), and VORTEX (swirling inward vortex).
- Configurable Particle Types: Full support for custom Bukkit particle types (END_ROD, PORTAL, DRAGON_BREATH, SOUL_FIRE_FLAME, ENCHANT, etc.).
- Smooth Teleport Trail: Spawns an interpolated visual particle trail linking the departure origin to the destination upon teleport completion.
⏱️ Enhanced Cooldown Feedback
- Accurate Countdown Messages: Detailed remaining seconds formatting in cooldown messages.
- Smart Economy Bypass Prompt: Dynamically formats Vault cooldown bypass fee instructions only when Vault economy is hooked.
⚡ Engine & Platform Compatibility
- Native Folia Support: Added folia-supported: true and optimized event handling for modern high-performance multi-threaded server environments.
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:gdzdDRM6:1kSk7fGL"
}
// Legacy Loom dependency
dependencies {
modImplementation "maven.modrinth:gdzdDRM6:1kSk7fGL"
}
