bTpa

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

547

bTpa

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

- Multiple Language Support: Send teleport requests to other players - Multiple Language Support: Request other players to teleport to you - Multiple Language Support: Automatically opens GUI when receiving requests (like Donut TPA) - Multiple Language Support: Accept or deny requests directly from chat - Multiple Language Support: Modern and intuitive GUI for managing teleport requests - Multiple Language Support: Configurable countdown with actionbar display - Multiple Language Support: Custom sounds for different actions (countdown, success, cancel, request) - Multiple Language Support: Prevent spam with configurable cooldowns - Multiple Language Support: Cancel teleport if player moves or takes damage - Multiple Language Support: Automatic expiration of pending requests - Multiple Language Support: All messages fully customizable

Advanced Features

- Friend System: Enable/disable receiving TPA requests - Friend System: Block specific players from sending you requests - Friend System: Return to your previous location after teleporting (Soon!) - Friend System: Track TPA usage with detailed statistics - Friend System: Cancel your outgoing TPA requests - Friend System: 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

```yaml

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

ADS