
bTpa
Tpa plugin, Donut-Like, but with enhanced features, similar to Donut TPA. Suitable for lifesteal and SMP
!banner
A professional and feature-rich TPA (Teleport Ask) plugin for Minecraft 1.20.5+ servers, inspired by Donut TPA with enhanced features.
!gif
Features
Core Features
- TPA Request System: Send teleport requests to other players
- TPA Here: Request other players to teleport to you
- Auto-Open GUI: Automatically opens GUI when receiving requests (like Donut TPA)
- Clickable Messages: Accept or deny requests directly from chat
- GUI Interface: Modern and intuitive GUI for managing teleport requests
- Countdown System: Configurable countdown with actionbar display
- Sound Effects: Custom sounds for different actions (countdown, success, cancel, request)
- Cooldown System: Prevent spam with configurable cooldowns
- Movement/Damage Cancellation: Cancel teleport if player moves or takes damage
- Request Expiration: Automatic expiration of pending requests
- Multiple Language Support: All messages fully customizable
Advanced Features
- TPA Toggle: Enable/disable receiving TPA requests
- Block System: Block specific players from sending you requests
- TPA Back: Return to your previous location after teleporting (Soon!)
- Statistics System: Track TPA usage with detailed statistics
- Cancel Requests: Cancel your outgoing TPA requests
- Player Data Persistence: All settings and stats saved to files
- Friend System: Friends can autoaccept their TPAs
Commands
| 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 |
Permissions
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)
🌟 Comparison with Donut TPA
| 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 |
🏆 Production Ready
This plugin is 100% production-ready for:
- ✅ Large servers (1000+ players)
- ✅ Serious networks
- ✅ Professional servers
- ✅ Public servers
- ✅ Private servers
- ✅ Creative servers
- ✅ Survival servers
- ✅ Any server type
!stats
Configuration
# 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.
### Messages
All messages are fully customizable in the configuration file. Support for color codes using `&`.
## How It Works
### Sending a Request
1. Player A types `/tpa PlayerB`
2. Player B receives a message with clickable buttons: [Accept] [Deny] [GUI]
3. Player B can click on the buttons or use commands to accept/deny
### Teleporting
1. When a request is accepted, the countdown starts
2. The player sees an actionbar message: "Teleporting in: X seconds"
3. Sound effects play every second during countdown
4. If the player moves or takes damage (if enabled), the teleport is cancelled
5. After countdown completes, the player is teleported successfully
### GUI
- Open with `/tpagui` or by clicking [GUI] in the chat message
- Visual representation of pending requests
- Player head shows who sent the request
- Green wool button to accept
- Red wool button to deny
- Gray glass pane decoration
## Requirements
- Minecraft 1.20.5 or higher
- Paper/Spigot/Purpur/Leaf server
- Java 21 or higher
## Support
For issues, feature requests, or questions, please contact me.
## License
Copyright © 2026 blackowlzz. All rights reserved.
---
**Made with ❤️ for the Minecraft community**
Сервер для плагина bTpa - как у профи
Плагин bTpa создан для серверов: на своём сервере вы настраиваете его под себя и решаете, кому играть. Создать сервер с плагином bTpa для друзей можно за пару минут - BungeeHost всё уже подготовил.
