license-key: "AP-XXXX-XXXX-XXXX-XXXX"
# ============================================================
# TPA Configuration
# Color formats supported in all messages:
# - Legacy: &a, &c, &l, etc.
# - HEX: &#RRGGBB or #RRGGBB
# ============================================================
# General request settings
settings:
# How long (in seconds) a TPA request stays valid before expiring.
request-expire-seconds: 60
# Cooldown (in seconds) before a player can send another request to the SAME target.
# Cooldowns are tracked per-target: you may have a cooldown with PlayerA but still
# send a request to PlayerB immediately.
cooldown-seconds: 30
# Teleport countdown / warmup (in seconds) before the player is actually teleported.
# Set to 0 to teleport instantly.
countdown-seconds: 5
# If true, the countdown is cancelled when the teleporting player moves.
cancel-on-move: true
# If true, the countdown is cancelled when the teleporting player takes damage.
cancel-on-damage: true
# Cross-server messaging mode.
# redis -> Uses Redis pub/sub. Supports any number of backend servers across proxies.
# velocity -> Uses Velocity/BungeeCord plugin messaging. Single proxy only, no Redis needed.
# none -> Single server only. No cross-server teleports.
network:
mode: none
debug: false
proxy-host: "" # Enter this only if you use multi-proxy
proxy-port: 25565
# This server's unique backend name (from velocity.toml)
server-name: ""
redis:
host: "127.0.0.1"
port: 6379
username: "default"
password: ""
use-ssl: false
channel-prefix: "tpa:"
# Player preference + persistence storage.
database:
# Storage type: sqlite or mysql
type: sqlite
# SQLite file (relative to the plugin folder). Used only when type=sqlite.
sqlite-file: "tpa.db"
# MySQL settings. Used only when type=mysql.
mysql:
host: ""
port: 3306
database: "tpa"
username: ""
password: ""
# Extra JDBC properties.
properties: "useSSL=false&allowPublicKeyRetrieval=true&characterEncoding=utf8"
pool-size: 10
# Message display options. Content is shared between chat and action bar.
messages-display:
# Send messages to chat.
chat: true
# Send messages to the action bar.
action-bar: true
# Message keys that should display in action bar instead of chat.
action-bar-message-keys:
- accepted-sender
- accepted-target
- denied-sender
- denied-target
- countdown
- teleporting
- teleport-cancelled-move
- teleport-cancelled-damage
- teleport-success
request-gui:
enabled: true
title: "&8ᴄᴏɴғɪʀᴍ ʀᴇǫᴜᴇsᴛ"
size: 27
items:
accept:
slot: 16
material: "LIME_STAINED_GLASS_PANE"
name: "�FF07ᴄᴏɴғɪʀᴍ"
lore:
- "&7Confirm request from �A2FF{sender}"
decline:
slot: 10
material: "RED_STAINED_GLASS_PANE"
name: "&#FF0000ᴄᴀɴᴄᴇʟ"
lore:
- "&7Cancel request from �A2FF{sender}"
player-head:
slot: 13
material: "PLAYER_HEAD"
name: "#00FF8Dᴘʟᴀʏᴇʀ"
lore:
- "&7{sender}"
server:
slot: 14
material: "FEATHER"
name: "�FF8Dʀᴇɢɪᴏɴ"
lore:
- "&7{server}"
- "&7Ping: (�FFA2{ping}ms&7)"
dynamic-material: # Uses only the item mentioned in the above "material: "FEATHER""
enabled: false
by-server: # Separate material by server
enabled: true
materials:
lobby: "COMPASS"
survival-eu: "BLUE_CONCRETE"
survival-asia: "YELLOW_CONCRETE"
by-region: # Detects servers with keywords "asia,as,apac,sg,sea,jp,kr,in,europe,eu,eur,de,fr,uk,nl,pl,it,es,northamerica,north-america,na,us,usa,ca,canada,southamerica,south-america,sa,br,brazil,ar,latam,oceania,oce,oc,au,australia,nz,newzealand,africa,af,za,southafrica,ng,eg,middleeast,middle-east,me,uae,saudi,qa,tr" and displays regions by them
enabled: true
materials:
asia: "YELLOW_CONCRETE"
europe: "BLUE_CONCRETE"
north-america: "RED_CONCRETE"
south-america: "LIME_CONCRETE"
oceania: "CYAN_CONCRETE"
africa: "ORANGE_CONCRETE"
middle-east: "PURPLE_CONCRETE"
region-display: # Means {server} shows a clean region name like Asia/Europe (if detected), and false means it shows the raw server name.
enabled: true
location:
slot: 12
name: "�FF8Dʟᴏᴄᴀᴛɪᴏɴ"
lore:
- "&7{location}"
material-overworld: "GRASS_BLOCK"
material-nether: "NETHERRACK"
material-end: "END_STONE"
# Sound settings. Each sound uses a Bukkit Sound enum name.
# Set 'enabled' to false to disable all sounds globally.
sounds:
enabled: true
request-sent:
sound: "ENTITY_EXPERIENCE_ORB_PICKUP"
volume: 1.0
pitch: 1.0
request-received:
sound: "BLOCK_NOTE_BLOCK_PLING"
volume: 1.0
pitch: 1.2
accepted:
sound: "ENTITY_PLAYER_LEVELUP"
volume: 1.0
pitch: 1.0
denied:
sound: "ENTITY_VILLAGER_NO"
volume: 1.0
pitch: 1.0
cancelled:
sound: "ENTITY_VILLAGER_NO"
volume: 1.0
pitch: 1.0
countdown-tick:
sound: "BLOCK_NOTE_BLOCK_HAT"
volume: 1.0
pitch: 1.0
teleport:
sound: "ENTITY_ENDERMAN_TELEPORT"
volume: 1.0
pitch: 1.0
error:
sound: "ENTITY_VILLAGER_NO"
volume: 1.0
pitch: 1.0
# All user-facing messages. Use {placeholders} where shown.
messages:
prefix: ""
no-permission: "&cYou don't have permission to do that."
player-only: "&cThis command can only be used by players."
player-not-found: "&cPlayer {player} was not found."
cannot-tpa-self: "&cYou cannot send a teleport request to yourself."
usage-tpa: "&7Usage: &f/tpa <player>"
usage-tpahere: "&7Usage: &f/tpahere <player>"
# Sending / receiving
request-sent: "&7Teleport request sent to �A2FF{target}"
request-sent-here: "&7Request sent to �A2FF{target} &7to teleport to you"
request-received: "�A2FF{sender} &7wants to teleport to you. Type FF00/tpaccept &7or &#FF0000/tpdeny"
request-received-here: "�A2FF{sender} &7wants you to teleport to them. Type FF00/tpaccept &7or &#FF0000/tpdeny"
request-received-clickable: "#00A2FF[ACCEPT] &8| &#FF0000[DENY]"
request-hover-accept: "&aClick to accept the request from �A2FF{sender}"
request-hover-deny: "&cClick to deny the request from �A2FF{sender}"
# Cooldown / state
cooldown: "&cYou must wait {seconds}s before sending another request to {target}"
target-toggled-off: "&c{target} is not accepting teleport requests right now."
target-toggled-here-off: "&f{target} &cis not accepting tpahere requests right now."
already-has-request: "&cYou already have a pending request to {target}."
auto-accepted: "�A2FF{target} &7accepted your teleport request."
# Accept / deny / cancel
accepted-sender: "�A2FF{target} &7accepted your teleport request."
accepted-target: "&7You accepted the teleport request from �A2FF{sender}&a."
denied-sender: "&c{target} denied your teleport request."
denied-target: "&cYou denied the teleport request from {sender}."
cancelled-sender: "&cYou cancelled your teleport request to {target}."
cancelled-target: "&c{sender} cancelled their teleport request."
no-pending-incoming: "&cYou have no pending teleport requests."
no-pending-outgoing: "&cYou have no outgoing teleport request to cancel."
request-expired-sender: "&cYour teleport request to {target} has expired."
request-expired-target: "&cThe teleport request from {sender} has expired."
multiple-requests: "&7You have multiple requests. Specify a player: �A2FF/tpaccept <player>"
# Countdown / teleport
countdown: "&7Teleporting in �A2FF{seconds}s"
teleporting: "&7Teleporting now!"
teleport-cancelled-move: "&cTeleport cancelled because you moved."
teleport-cancelled-damage: "&cTeleport cancelled because you took damage."
teleport-success: "&7Teleported to �A2FF{target}&7."
target-offline: "&cThat player is no longer online."
# Toggles
toggletpa-on: "&aYou will now receive teleport requests."
toggletpa-off: "&cYou will no longer receive teleport requests."
toggletpahere-on: "&aYou will now receive tpahere requests."
toggletpahere-off: "&cYou will no longer receive tpahere requests."
tpauto-on: "&aYou will now automatically accept teleport requests."
tpauto-off: "&cYou will no longer automatically accept teleport requests."
# List
tplist-header: "&7&lPending Requests:"
tplist-incoming: "&7 - Incoming from �A2FF{player} �FFA2({type})"
tplist-outgoing: "&7 - Outgoing to �A2FF{player} �FFA2({type})"
tplist-empty: "&cYou have no pending requests."
# Admin
reloaded: "&aTPA configuration reloaded."