
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.

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.





/tp/tpa, /tphere, /tpablock, and /tpaunblock./tpa <player>/tpahere <player> or /tphere <player>/tpaccept/tpdeny/tpatoggle/tpablock <player>/tpaunblock <player>/tphome set [name]/tphome set default <name>/tphome delete <name>/tphome list/tphome [name] or /tpahome [name](default)./rtp/spawn/tpaback or /tpdeath (last death location, one use per death)/ytp <player>/ytp <player> <targetPlayer>/ytp <player> <x> <y> <z> [realm]/ytp <x> <y> <z> [realm] /tpoffline <player>/tpalog [page]/yatpa settings/yatpa gui (Paper, paginated inventory editor for all settings; click to toggle/edit)/yatpa set <path> <value>/yatpa reload/setspawn/tpahelp/tphelp/yatpa helpCosts section is shown at the bottom listing only teleports with non-zero costs.ytp/rtp use safe landing checks to avoid unsafe blocks and lava./tpaback and /tpdeath consume the saved death location after successful use, and require a new death to refresh./tpalog is paginated and clickable.NONE, XP_LEVELS, ITEM, CURRENCY./yatpa gui and /yatpa set expose currency paths directly./rtp only or all YATPA teleports./rtp supports blacklist + optional overworld routing.settings.spawn.* and /setspawn.Paper config files:
paper/src/main/resources/config.ymlpaper/src/main/resources/messages.xmlpaper/src/main/resources/plugin.ymlFabric default config/resource files:
fabric/src/main/resources/yatpa-fabric.propertiesfabric/src/main/resources/yatpa-fabric.ymlfabric/src/main/resources/messages-fabric.xmlRuntime data (Paper) is stored under plugin data folder:
data/players.ymldata/homes.ymldata/offline.ymlRuntime data (Fabric) is stored under:
config/yatpa/store.jsonsettings:
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_dimensionsettings.dimension_restrictions.disable_teleport.minecraft:the_nether=trueyatpa.op.reload (default: op)yatpa.op.tp (default: op)yatpa.op.tpoffline (default: op)yatpa.op.tpalog (default: op)yatpa.op.setspawn (default: op)Licensed under GNU General Public License v3.0 (GPL-3.0-only). See LICENSE.