Yet Another TPA

Quick rating

Community listing page, reviews here may not be monitored by the author.

Yet Another TPA

By cev-apiOwner

No reviews yet

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.

Mod Loaders
Minecraft
26.2

About

Description

YATPA

YATPA

YATPA is a teleport plugin/mod project for modern Minecraft servers:

  • paper/: Paper plugin targeting the 26.2 API (Java 25)
  • fabric/: Fabric dedicated-server mod targeting Minecraft 26.2 (Fabric API 0.160.0+, Fabric Loader 0.19.5+)

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)

Help

Clickable TP Menu (via /TP)

TP

Clickable TP Logs for OPs (via /TPLOG)

LOG

Clickable Home List (via /TPHOME LIST)

HOMES

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

LISTS

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
      • /tpaback or /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/Fabric native dialog editor; Paper uses the inventory editor when the server does not expose the dialog command)
      • /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 Costs section is shown at the bottom listing only teleports with non-zero costs.

OP dialog menu

Run /yatpa gui for a modern in-game settings editor. It organizes YATPA options into clear categories with inline toggles, selectors, and text fields, with validation and save controls built in. Paper falls back to the inventory editor when native dialogs are unavailable; Fabric requires no client-side YATPA mod.

GUI

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/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.
    • Teleport logging:
      • /tpalog is 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 gui and /yatpa set expose currency paths directly.
    • Restrictions and routing:
      • Per-dimension restrictions can disable /rtp only or all YATPA teleports.
      • /rtp supports blacklist + optional overworld routing.
      • Spawn destination is configurable via settings.spawn.* and /setspawn.
    • Platform note:
      • Vault/EssentialsX currency charging is Paper-only in this release.
      • The Paper jar uses Bukkit APIs and is marked Folia-compatible, so it runs on Paper, Purpur, Spigot, Bukkit, and Folia. Native dialogs are used when available; the inventory editor remains the fallback on Bukkit-family servers without them.
      • Command/UX behavior in this README applies to both Paper and Fabric unless noted.

Configuration

Paper config files:

  • paper/src/main/resources/config.yml
  • paper/src/main/resources/messages.xml
  • paper/src/main/resources/plugin.yml

Fabric default config/resource files:

  • fabric/src/main/resources/yatpa-fabric.properties
  • fabric/src/main/resources/yatpa-fabric.yml
  • fabric/src/main/resources/messages-fabric.xml

Runtime data (Paper) is stored under plugin data folder:

  • data/players.yml
  • data/homes.yml
  • data/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_nether
  • settings.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).