EconomySMP-TPA
Teleport requests with optional confirmation GUIs, auto accept, and safety checks so nobody gets teleported into lava.
What it does
Players send /tpa or /tpahere. The other person gets a request and can accept it from chat or from a GUI that shows their head, the world they are in, and whether they are flying. After accepting there is a countdown, and the teleport is cancelled if either player moves or starts flying.
If two players trust each other they can turn on /tpauto and skip the confirmation entirely.
GUI
Two GUIs, one for sending and one for accepting. 3 rows, and every icon can be changed in tpa-gui.yml and tpahere-gui.yml - slot, material, name and lore. Placeholders for the player name, world and flying status.
Players who do not want the GUI can turn it off for themselves with /tpaguitoggle and /tpahereguitoggle. The setting is saved.
Safety
Countdown can be anything from 0 for instant up to whatever you want. Movement tolerance, safe location checks, cooldowns, expiry and daily limits are all in config.yml. Messages can go to chat, the action bar, or both. Every sound has its own entry in sounds.yml. World names can be renamed for display, so world_nether can show as Nether or anything else.
Player settings are stored in SQLite and survive restarts. Database work runs off the main thread.
Commands
Admin: reload command included, no restart needed.
Extras
PlaceholderAPI supported for tpa status, auto accept status and gui status, plus 10 custom placeholders you can fill in yourself. Can also override the EssentialsX teleport commands so requests go through this plugin instead.
Requirements
Paper or Spigot, and PlaceholderAPI only if you want the placeholders. Works on its own otherwise.
Links
Setup and config: https://moessoe97.com
Discord for support and bugs: https://discord.gg/jsyct6TW9x
Teleport requests with optional confirmation GUIs, auto accept, and safety checks so nobody gets teleported into lava.
What it does
Players send /tpa or /tpahere. The other person gets a request and can accept it from chat or from a GUI that shows their head, the world they are in, and whether they are flying. After accepting there is a countdown, and the teleport is cancelled if either player moves or starts flying.
If two players trust each other they can turn on /tpauto and skip the confirmation entirely.
GUI
Two GUIs, one for sending and one for accepting. 3 rows, and every icon can be changed in tpa-gui.yml and tpahere-gui.yml - slot, material, name and lore. Placeholders for the player name, world and flying status.
Players who do not want the GUI can turn it off for themselves with /tpaguitoggle and /tpahereguitoggle. The setting is saved.
Safety
- Destination is checked before the teleport, so no lava, void or suffocation
- Can search for a safe spot nearby instead of failing, radius is configurable
- Teleport cancels if the player moves during the countdown, tolerance is configurable
- Requests to flying or elytra gliding players are cancelled
- Cooldown between requests, and an optional daily limit per player
- Requests expire on their own after a set time
Countdown can be anything from 0 for instant up to whatever you want. Movement tolerance, safe location checks, cooldowns, expiry and daily limits are all in config.yml. Messages can go to chat, the action bar, or both. Every sound has its own entry in sounds.yml. World names can be renamed for display, so world_nether can show as Nether or anything else.
Player settings are stored in SQLite and survive restarts. Database work runs off the main thread.
Commands
Code:
/tpa <player> teleport to them
/tpahere <player> they teleport to you
/tpaccept [player]
/tpdeny [player]
/tpacancel cancel everything you sent
/tpatoggle block incoming tpa
/tpaheretoggle block incoming tpahere
/tpaguitoggle gui on or off for yourself
/tpahereguitoggle
/tpauto auto accept
Admin: reload command included, no restart needed.
Extras
PlaceholderAPI supported for tpa status, auto accept status and gui status, plus 10 custom placeholders you can fill in yourself. Can also override the EssentialsX teleport commands so requests go through this plugin instead.
Requirements
Paper or Spigot, and PlaceholderAPI only if you want the placeholders. Works on its own otherwise.
Links
Setup and config: https://moessoe97.com
Discord for support and bugs: https://discord.gg/jsyct6TW9x
