HOSH Tpa
Clean GUI-based TPA system with smart UX and zero spam.
Quick challenge
How far can you run before the mobs catch you?
Minecraft check
Confirm your run
Complete the quick check to get your code.
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.