HOSH Tpa

Clean GUI-based TPA system with smart UX and zero spam.

14

HOSH Tpa

HOSH TPA

A lightweight, feature-rich teleport-request plugin for Spigot servers. Send, accept, and deny `/tpa` and `/tpahere` requests with a polished GUI, clickable chat actions, titles, sounds, and configurable timeouts.

---

Requirements

- Auto updates via loader (or compatible) — Auto updates via loader - Auto updates via loader - Auto updates via loader — This plugin Auto updates via loader without it. If `HoshLoader.jar` is missing, HOSH TPA disables itself and Auto updates via loader get a message on join. Use Auto updates via loader (via Hosh Loader) to reload this plugin after config changes. - Auto updates via loader — Use `/hosh update all` to prepare newest compatible HOSH plugin updates for next restart.

Downloads

| | Modrinth | |---|----------| | HOSH TPA (install first) | HOSH TPA | | HOSH TPA (this plugin) | %%MD1%% |

---

Features

- Tab completion — `/tpa` and `/htpa` (same for `/tpahere` / `/htpahere`) behave identically - Tab completion — Before a request is sent, the requester sees a small inventory GUI with Accept / Cancel buttons and the target's player head - Tab completion — Targets receive `[ACCEPT]` / `[DECLINE]` clickable messages in chat - Tab completion — Configurable titles on request received / accepted / denied, plus success and error sounds - Tab completion — Configurable delay before the teleport executes; cancelled on movement (toggleable) - Tab completion — Pending requests automatically expire after a configurable number of seconds; both parties are notified - Tab completion — Players can block incoming requests with `/tpatoggle` - Tab completion — Players cannot send requests to themselves - Tab completion — All player-facing commands support tab-completing online player names

---

Commands

| Command | Description | |---|---| | `/tpa <player>` | Open the confirmation GUI to send a teleport-to-player request | | `/htpa <player>` | Same as `/tpa` | | `/tpahere <player>` | Open the confirmation GUI to send a teleport-here request | | `/htpahere <player>` | Same as `/tpahere` | | `/tpaaccept [player]` | Accept the latest pending request (optionally from a specific player) | | `/tpadeny [player]` | Deny the latest pending request (optionally from a specific player) | | `/tpatoggle` | Toggle whether you accept incoming teleport requests |

---

Configuration

All settings live in the default `config.yml` generated on first run.

```yaml prefix: "&8[&bHOSH TPA&8] "

teleport: delay-seconds: 5 # Countdown before teleport (0 = instant) cancel-on-move: true # Cancel countdown if the player moves request-timeout-seconds: 60 # How long a pending request stays valid

feedback: sounds-enabled: true sound-success: ENTITY_EXPERIENCE_ORB_PICKUP sound-error: ENTITY_VILLAGER_NO titles-enabled: true title-received: "&eTPA Request" subtitle-received: "&7From &f{player}" title-accepted: "&aAccepted" subtitle-accepted: "&7Teleport starting..." title-denied: "&cDeclined" subtitle-denied: "&7Request denied"

gui: title: "HOSH Tpa Confirm" accept-slot: 11 head-slot: 13 deny-slot: 15 accept-name: "&aAccept" deny-name: "&cCancel" head-name: "&eTarget: &f{player}"

messages: player-only: "&cThis command can only be executed by a player." usage-htpa: "&7Usage: /htpa <player>" usage-htpahere: "&7Usage: /htpahere <player>" player-not-found: "&cPlayer '{player}' not found." self-target: "&cYou cannot send a request to yourself." target-blocked: "&c{player} is currently not accepting requests." request-already-exists: "&cYou already have a pending request to {player}." request-sent: "&aRequest sent to {player}." request-received-tpa: "&e{player} wants to teleport to you." request-received-tpahere: "&e{player} wants you to teleport to them." request-cancelled: "&7Request cancelled." request-expired: "&cRequest expired." no-pending-request: "&cYou have no pending requests." teleport-cancel-offline: "&cThe other player is no longer online." teleport-countdown: "&7Teleporting in {seconds} seconds... Don't move." teleport-started: "&aTeleporting..." teleport-cancel-move: "&cTeleport cancelled — you moved." toggle-enabled: "&aYou are now blocking incoming teleport requests." toggle-disabled: "&aYou are now accepting incoming teleport requests." request-accepted-target: "&aYou accepted the request from {player}." request-accepted-sender: "&a{player} accepted your request." request-denied-target: "&cYou denied the request from {player}." request-denied-sender: "&c{player} denied your request." ```

Config Sections

| Section | Purpose | |---|---| | `prefix` | Prepended to every chat message | | `teleport` | Delay, move-cancellation, and request expiry | | `feedback` | Sounds, titles, and subtitles for every interaction state | | `gui` | Inventory title, slot positions, and item display names | | `messages` | Every user-facing message with `{player}` / `{seconds}` placeholders |

---

Permissions

No permissions are required — all commands are open by default. Restrict access with your preferred permission plugin if needed.

---

Installation

1. Download and install `/hosh tpa reload` in `plugins/` (required). 2. Download %%MD1%% and place `hosh-tpa-<version>.jar` in `plugins/`. 3. Restart the server (full restart recommended after first install). 4. Edit `plugins/HOSH_Tpa/config.yml` (folder name matches the plugin) to your liking. 5. Apply config changes with `/hosh tpa reload` or another restart.

ADS