
Yet Another TPA
YATPA: A combination of various project ideas into one, but still lean and simple enough to be a viable replacement or solution to teleporting. Suitable for Fabric and Paper.
Screenshots

About this Mod
YATPA

YATPA is a teleport plugin/mod project for modern Minecraft servers:
paper/: Paper plugin (1.21.x API target)fabric/: Fabric dedicated-server mod (1.21.x Mojmap/Fabric API scaffold)
What makes YATPA stand out is that it combines full teleport-request/home/back/spawn/RTP/death tooling with a clickable in-chat command UX (/tp menu, paged pickers, and paged logs), while also exposing granular cost controls per teleport type. Economy mode is configurable as NONE, XP_LEVELS, ITEM, or CURRENCY; Paper supports CURRENCY through Vault (with EssentialsX or another Vault economy provider). OPs have an optional GUI menu to fine tune settings in-game.
Screenshots
Help (via /TPAHELP)

Clickable TP Menu (via /TP)

Clickable TP Logs for OPs (via /TPLOG)

Clickable Home List (via /TPHOME LIST)

Clickable User List (via /TPA with no username specified)

Features
- Clickable teleport menu:
/tp- Includes shortcuts for homes, RTP, spawn, death-back, TPA/TPHere, toggle, block, and unblock.
- Player pickers are paginated (5 per page) for
/tpa,/tphere,/tpablock, and/tpaunblock.
- Player teleport requests:
/tpa <player>/tpahere <player>or/tphere <player>/tpaccept/tpdeny/tpatoggle/tpablock <player>/tpaunblock <player>
- Homes:
/tphome set [name]/tphome set default <name>/tphome delete <name>/tphome list/tphome [name]or/tpahome [name]- Home list is clickable and shows coordinates.
- The default home is marked with
(default).
- Utility teleports:
/rtp/spawn/tpabackor/tpdeath(last death location, one use per death)
- OP commands:
/ytp <player>/ytp <player> <targetPlayer>/ytp <player> <x> <y> <z> [realm]/ytp <x> <y> <z> [realm]/tpoffline <player>/tpalog [page]
- In-game admin config (OP):
/yatpa settings/yatpa gui(Paper, paginated inventory editor for all settings; click to toggle/edit)/yatpa set <path> <value>/yatpa reload/setspawn
- Player help page:
/tpahelp/tphelp/yatpa help- Public help intentionally excludes admin commands.
- When teleport costs are enabled, a
Costssection is shown at the bottom listing only teleports with non-zero costs.
Notable Behavior
- Requests:
- Timeout + cooldown are enforced.
- Accept/deny messages are clickable.
- If an accepted delayed teleport is cancelled (move/damage), the other player is notified.
- Teleports:
- Delayed teleports show a countdown.
- Costs are validated before countdown and charged on execution.
- Players are told exactly what they paid (XP, items, or currency).
ytp/rtpuse safe landing checks to avoid unsafe blocks and lava./tpabackand/tpdeathconsume the saved death location after successful use, and require a new death to refresh.
- Teleport logging:
/tpalogis paginated and clickable.- Log lines include context details (for example home name, target player, coords, or offline target) where relevant.
- Costs and settings:
- Cost modes:
NONE,XP_LEVELS,ITEM,CURRENCY. - Realm-specific RTP costs and min/max RTP distance overrides are supported.
- Paper
/yatpa guiand/yatpa setexpose currency paths directly.
- Cost modes:
- Restrictions and routing:
- Per-dimension restrictions can disable
/rtponly or all YATPA teleports. /rtpsupports blacklist + optional overworld routing.- Spawn destination is configurable via
settings.spawn.*and/setspawn.
- Per-dimension restrictions can disable
- Platform note:
- Vault/EssentialsX currency charging is Paper-only in this release.
- Command/UX behavior in this README applies to both Paper and Fabric unless noted.
Configuration
Paper config files:
paper/src/main/resources/config.ymlpaper/src/main/resources/messages.xmlpaper/src/main/resources/plugin.yml
Fabric default config/resource files:
fabric/src/main/resources/yatpa-fabric.propertiesfabric/src/main/resources/yatpa-fabric.ymlfabric/src/main/resources/messages-fabric.xml
Runtime data (Paper) is stored under plugin data folder:
data/players.ymldata/homes.ymldata/offline.yml
Runtime data (Fabric) is stored under:
config/yatpa/store.json
Example Config YAML
settings:
max_homes_default: 3
request_timeout_seconds: 60
request_cooldown_seconds: 30
teleport_delay_seconds: 5
cancel_on_move: true
cancel_on_damage: true
spawn_radius: 50
rtp_cooldown_seconds: 300
rtp:
default_min_distance: 64
default_max_distance: 2500
rtp_to_overworld: false
overworld_name: "world"
blacklisted_worlds: []
# Optional per-realm overrides
realm_min_distance:
overworld: 96
nether: 48
end: 128
realm_max_distance:
overworld: 3000
nether: 1500
end: 4000
dimension_restrictions:
# Use world names, realm aliases (overworld/nether/end), or namespaced ids.
# For namespaced ids in YAML, quote the key, for example "minecraft:the_nether".
disable_rtp:
nether: true
disable_teleport:
# "minecraft:the_end": true
landing:
mode: EXACT # EXACT or RANDOM_OFFSET
random_offset_max: 4
features:
enabled: true
tpa: true
tpahere: true
homes: true
rtp: true
costs:
enabled: false
mode: NONE # NONE, XP_LEVELS, ITEM, CURRENCY
xp_levels:
tpa: 4
tpahere: 4
home: 16
back: 0
# Per-realm RTP overrides (optional; overrides global if set)
rtp:
overworld: 30
nether: 0
end: 0
spawn: 8
item:
material: DIAMOND
tpa: 2
tpahere: 2
home: 20
back: 0
# Per-realm RTP overrides (optional; overrides global if set)
rtp:
overworld: 30
nether: 0
end: 0
spawn: 10
currency:
tpa: 0.0
tpahere: 0.0
home: 0.0
back: 0.0
# Per-realm RTP overrides (optional; overrides global if set)
rtp:
overworld: 0.0
nether: 0.0
end: 0.0
spawn: 0.0
spawn:
enabled: true
x: 0
y: 100
z: 0
yaw: 0
pitch: 0
world: world
sounds:
request_sent: ENTITY_EXPERIENCE_ORB_PICKUP
request_received: BLOCK_NOTE_BLOCK_PLING
countdown: BLOCK_BELL_USE
success: ENTITY_ENDERMAN_TELEPORT
cancelled: BLOCK_GLASS_BREAK
effects:
request_sent: PORTAL
request_received: ENCHANT
countdown: WAX_OFF
success: END_ROD
cancelled: SMOKE
Fabric config.properties supports the same restrictions with either:
settings.dimension_restrictions.disable_rtp=overworld,minecraft:the_nethersettings.dimension_restrictions.disable_teleport=minecraft:the_end,my_custom_dimension- Dynamic keys like
settings.dimension_restrictions.disable_teleport.minecraft:the_nether=true
Permissions (Paper)
yatpa.op.reload(default: op)yatpa.op.tp(default: op)yatpa.op.tpoffline(default: op)yatpa.op.tpalog(default: op)yatpa.op.setspawn(default: op)
License
Licensed under GNU General Public License v3.0 (GPL-3.0-only). See LICENSE.
Available Versions
How to Install Yet Another TPA on Your Server
Order Server
Order a Minecraft Java server with at least 3 GB RAM (4 GB recommended).
Set bukkit Loader
In the panel under "Egg", select the bukkit loader and matching Minecraft version (26.1.2).
Install Mod
Open the mod browser in the dashboard and search for "Yet Another TPA". Click "Install" – done! Alternatively, upload the .jar via SFTP to the /mods folder.
Compatibility
Mod Loaders
Minecraft Versions
26.1.2, 26.1.1, 26.1 (+12 more)
Server-side
✗ UnsupportedRecommended RAM
4 GB(min. 3 GB)Frequently Asked Questions
Yet Another TPA server crashes on startup – what to do?
Most common cause: wrong bukkit version or insufficient RAM. Check the server log (latest.log) for "OutOfMemoryError" or "Mixin" errors. With Mado Hosting: ensure at least 3 GB RAM is allocated and the loader matches the mod version (26.1.2). You can switch loaders with one click in the panel.
Is Yet Another TPA compatible with bukkit and fabric and folia and paper and purpur and spigot?
Yet Another TPA officially supports bukkit, fabric, folia, paper, purpur, spigot for Minecraft 26.1.2, 26.1.1, 26.1. The Mado dashboard automatically detects incompatible loader combinations.
Server lagging with Yet Another TPA – how to optimize performance?
Recommended RAM: 4 GB (per 8 players). Use /spark profiler to check if Yet Another TPA consumes the most tick time. Common fixes: reduce server view-distance to 8-10, install "performant" or "starlight" as supplementary mods on Forge. With Mado Hosting, your server runs on NVMe SSDs with dedicated CPU cores for minimal latency.
Similar Mods
Rent Modded Server
Install Yet Another TPA with just one click on your server.