🌐 CustomTPA

Modern Teleport Requests for Paper, Spigot, Folia & more

Servers Players Downloads

✨ Features

🌍 40 Languages

Automatic per-player language detection.

💬 Chat Buttons

Clickable [✔ Accept] and [✘ Deny].

⏳ Teleport Delay

Configurable countdown with action bar.

🖼️ GUI

/tpa gui with player heads.

🔔 Update Checker

Notifications on new versions.

⚡ Auto-Accept

/tpaauto for instant requests.

🗺 World Blacklist

Block teleports in specific worlds.

🎨 MiniMessage

Gradients, RGB, legacy colors.

🔙 TPA Back

/tpaback to return after teleport.

⚡ Force TPA

Admin force-teleport (/tpaforce).

📊 Statistics

/tpastats for player stats.

🌟 Warm Welcome

Message for new players.

📋 Commands

CommandDescription
/tpa <player>Request teleport to a player
/tpahere <player>Invite a player to teleport to you
/tpaccept [player]Accept a request
/tpadeny [player]Deny a request
/tpcancelCancel your outgoing request
/tpatoggleToggle receiving requests
/tpaautoToggle auto-accept
/tpa guiOpen graphical menu
/tpastatsView your teleport statistics
/tpabackReturn to previous location
/tpaforce <player>Force-teleport (admin only)
/customtpa reloadReload configuration

🗣 Languages (40)

🇬🇧 English🇷🇺 Russian🇺🇦 Ukrainian 🇩🇪 German🇫🇷 French🇪🇸 Spanish 🇧🇷 Portuguese (BR)🇵🇹 Portuguese (PT) 🇹🇷 Turkish🇮🇹 Italian🇵🇱 Polish 🇨🇳 Chinese🇯🇵 Japanese🇫🇮 Finnish 🇰🇷 Korean🇸🇪 Swedish🇳🇱 Dutch 🇨🇿 Czech🇭🇺 Hungarian🇷🇴 Romanian 🇳🇴 Norwegian🇩🇰 Danish🇬🇷 Greek 🇮🇩 Indonesian🇸🇦 Arabic🇻🇳 Vietnamese 🇸🇰 Slovak🇧🇬 Bulgarian🇮🇱 Hebrew 🇹🇭 Thai🇵🇭 Filipino🇮🇳 Hindi 🇭🇷 Croatian🇸🇮 Slovenian🇱🇹 Lithuanian 🇱🇻 Latvian🇪🇪 Estonian🇷🇸 Serbian 🇲🇰 Macedonian🇨🇦 Catalan

📖 Getting Started

📥 Installation

1
Download the correct JAR for your server:
Paper/Purpur/Folia: CustomTPA-2.1.0-paper.jar
Spigot/Bukkit: CustomTPA-2.1.0-spigot.jar
2
Place it into your server's /plugins folder.
3
Start (or restart) your server. A plugins/CustomTPA/config.yml file will be generated.
4
Open config.yml and adjust settings like delay, cooldown, sounds, world blacklist, etc.
5
Customise messages in plugins/CustomTPA/lang/messages_XX.yml.
6
Run /customtpa reload to apply changes without restarting.

🔧 Configuration Example (config.yml)

request-timeout: 60
cooldown: 30
delay: 3
countdown-sound: "ENTITY_EXPERIENCE_ORB_PICKUP"
request-sound:
  enabled: true
  sound: "BLOCK_NOTE_BLOCK_PLING"
daily-limit: 0
world-blacklist:
  enabled: false
  worlds:
    - "arena"
tpa-back:
  enabled: true
force-tpa:
  enabled: true
max-log-days: 7
update-checker: true

🎨 Customizing Messages

Edit lang/messages_en.yml (or any language file) to change colors and text. You can use MiniMessage tags (<gold>, <gradient>, etc.) or legacy codes (&a, &l).

prefix: "<color:#ffaa00>[TPA]</color> "
request-sent: "<gray>Request sent to <yellow>%other_name%</yellow></gray>"

🌍 Adding a New Language

Copy messages_en.yml, rename it (e.g., messages_de.yml), translate the values, and run /customtpa reload. The plugin will automatically detect the player's locale.

🛡 Permissions

Use any permission plugin (e.g., LuckPerms) to grant these nodes:

tpa.tpa
tpa.tpahere
tpa.accept
tpa.deny
tpa.cancel
tpa.toggle
tpa.auto
tpa.gui
customtpa.reload (admin)
customtpa.force (admin)
customtpa.bypass.delay
customtpa.bypass.cooldown
customtpa.bypass.blacklist
customtpa.bypass.limit

🔄 PlaceholderAPI

CustomTPA provides these placeholders:

%tpa_incoming%
%tpa_has_incoming%
%tpa_outgoing%
%tpa_sent%
%tpa_accepted%
%tpa_denied%