/
!banner
A professional and feature-rich TPA (Teleport Ask) plugin for Minecraft 1.20.5+ servers, inspired by Donut TPA with enhanced features.
!gif
| Command | Aliases | Description | Permission |
|---|---|---|---|
/tpa <player> | /teleportask | Send a teleport request to a player | btpa.use |
/tpahere <player> | /tphere | Request a player to teleport to you | btpa.use |
/tpaccept | /tpyes, /tpac | Accept a teleport request | btpa.use |
/tpdeny | /tpno, /tpdc | Deny a teleport request | btpa.use |
/tpagui | /tpgui | Open the teleport GUI | btpa.use |
/tpatoggle | /tpat | Toggle TPA requests on/off | btpa.toggle |
/tpablock <player> | /tpab | Block a player from sending requests | btpa.block |
/tpaunblock <player> | /tpaub | Unblock a player | btpa.block |
/tpacancel | /tpac | Cancel your outgoing request | btpa.use |
/tpafriend | Send/Deny/Remove friend request | btpa.use | |
/tpareload | /tparl | Reload the plugin configuration | btpa.reload |
btpa.use - Allows the use of basic TPA commands (default: true)btpa.toggle - Allows toggling TPA requests (default: true)btpa.block - Allows blocking/unblocking players (default: true)btpa.reload - Allows reloading the plugin configuration (default: op)btpa.* - Gives access to all TPA commands (default: op)| Feature | Donut TPA | bTpa |
|---|---|---|
| TPA Commands | ✅ | ✅ |
| GUI System | ✅ | ✅ Enhanced |
| Friend System | ❌ | ✅ Enhanced |
| Toggle System | ✅ | ✅ |
| Block System | ✅ | ✅ |
| Statistics | ❌ | ✅ Enhanced |
| Clickable Messages | ✅ | ✅ |
| Sound Effects | ✅ | ✅ Configurable |
| Action Bar | ❌ | ✅ |
| Acceptance Rate | ❌ | ✅ |
| Data Persistence | ✅ | ✅ YAML |
| Cancel Requests | ✅ | ✅ |
| Documentation | Good | Comprehensive |
| Open Source | ❌ | ✅ |
| Price | $6.99 | Free |
This plugin is 100% production-ready for:
!stats
# bTpa Configuration File
# Teleport settings
teleport:
# Cooldown in seconds before teleport starts (countdown)
countdown: 5
# Cooldown in seconds before player can use /tpa again
cooldown: 10
# Request expiration time in seconds
request-expire: 60
# Cancel teleport if player moves during countdown
cancel-on-move: true
# Cancel teleport if player takes damage during countdown
cancel-on-damage: true
# Sound settings
sounds:
enabled: true
# Use namespaced key format: e.g. "block.note_block.pling"
# Full list: https://minecraft.wiki/w/Sounds.json
countdown-tick: block.note_block.hat
teleport-success: entity.enderman.teleport
teleport-cancel: entity.villager.no
request-received: block.note_block.pling
volume: 0.8
pitch: 1.0
# Unicode font style (small caps and fancy text)
# Set to true to use Unicode small caps in titles and messages (e.g., ᴛᴘᴀ)
# Set to false for regular text (default: true)
unicode-font: true
# Messages
messages:
prefix: ""
player-only: "&7Only players can use this command."
no-permission: "&7You do not have permission to do that."
player-not-found: "&7Player not found or offline."
player-offline: "&7That player is no longer online."
cannot-self-request: "&7You cannot send a request to yourself."
request-sent: "&7Request sent to &b{player}&7."
request-received: "&b{player} &7sent you a teleport request."
request-expired: "&7Your request to &b{player} &7expired."
no-pending-request: "&7You have no pending teleport requests."
request-accepted: "&7You accepted &b{player}&7's request."
request-accepted-sender: "&b{player} &7accepted your request."
request-denied: "&7You denied &b{player}&7's request."
request-denied-sender: "&b{player} &7denied your request."
already-pending: "&7You already have a pending request for that player."
outgoing-request-active: "&7You already have an active request. Use &b/tpacancel &7or wait for it to expire."
teleporting: "&7Teleporting in &b{seconds}s&7..."
teleport-cancelled-move: "&7Teleport cancelled: you moved."
teleport-cancelled-damage: "&7Teleport cancelled: you took damage."
teleport-success: "&7Teleport completed."
cooldown: "&7Wait &b{seconds}&7s before sending another request."
teleport-here-request-sent: "&7Teleport-here request sent to &b{player}&7."
teleport-here-request-received: "&b{player} &7wants you to teleport to them."
reload-success: "&aConfiguration reloaded successfully."
# TPA Toggle messages
tpa-enabled: "&7TPA requests enabled."
tpa-disabled: "&7TPA requests disabled."
player-tpa-disabled: "&b{player} &7has TPA requests disabled."
tpauto-enabled: "&7TPA auto-accept enabled."
tpauto-disabled: "&7TPA auto-accept disabled."
tpauto-accepted-target: "&7You automatically accepted &b{player}&7's request."
# Block/Unblock messages
player-blocked: "&7You blocked &b{player}&7 from sending TPA requests."
player-unblocked: "&7You unblocked &b{player}&a."
player-already-blocked: "&b{player} &7is already blocked."
player-not-blocked: "&b{player} &7is not blocked."
player-blocked-you: "&7You cannot send requests to &b{player}&c."
# Cancel command messages
request-cancelled: "&7Request to &b{player}&7 cancelled."
request-cancelled-target: "&b{player} &7cancelled their request."
no-outgoing-request: "&7You have no outgoing requests."
# tpafriend messages (trusted players / auto-accept)
tpafriend-added: "&7Added &b{player} &7to your trusted players."
tpafriend-removed: "&7Removed &b{player} &7from your trusted players."
tpafriend-list-empty: "&7You have no trusted players."
tpafriend-not-trusted: "&b{player} &7is not in your trusted list."
# Generic usage message used by some commands
usage: "&7Usage: &b{usage}"
# Friend request messages
friend-request-sent: "&7Friend request sent to &b{player}&7. If they accept, both of you will be added to each other's trusted list (mutual) and TPA requests between you will be auto-accepted."
friend-request-received: "&b{player} &7sent you a friend request. Accepting will add both of you to each other's trusted list (mutual) and enable automatic acceptance of TPA requests between you."
friend-request-accepted-sender: "&b{player} &7accepted your friend request."
friend-request-accepted-target: "&7You accepted &b{player}&7's friend request."
friend-request-denied-sender: "&b{player} &7denied your friend request."
friend-request-denied-target: "&7You denied &b{player}&7's friend request."
friend-request-expired: "&7Your friend request expired."
# GUI Settings
gui:
# Legacy/global switch (kept for backwards compatibility)
enabled: true
# Selector GUI (/tpa with no args, /tpagui, /tpahere with no args)
selector-enabled: true
# Incoming request GUI (shown to target player on request)
incoming-enabled: true
# Outgoing request GUI (shown to sender after sending request)
outgoing-enabled: true
# Auto-open incoming GUI on request (only if incoming-enabled = true)
auto-open: false
title: "&bTeleport Requests"
size: 27
update-check:
enabled: true
frequency-minutes: 360
security:
# Require that both players have added each other for auto-accept to work
require-mutual-trust: false
# Require trusted players to have played before (more secure)
require-played-before-for-trusted: true
# Friend request settings
friend:
request-expire: 120
Note: When auto-open is enabled, players will automatically see the GUI when they receive a TPA request, just like in Donut TPA. They can still use chat commands if they prefer.
All messages are fully customizable in the configuration file. Support for color codes using &.
/tpa PlayerB/tpagui or by clicking [GUI] in the chat messageFor issues, feature requests, or questions, please contact me.
Copyright © 2026 blackowlzz. All rights reserved.
Made with ❤️ for the Minecraft community

Tpa plugin, Donut-Like, but with enhanced features, similar to Donut TPA. Suitable for lifesteal and SMP