LunaTPA
A simple, lightweight TPA system inspired by DountSMP.
Built for Paper / Folia on Minecraft 1.21.
Features
- Full TPA suite —
/tpa,/tpahere,/tpaccept,/tpdeny, and/tpcancel - Accept & deny by name — pick a specific request when several are pending
- Auto-accept whitelist — skip the prompt entirely for trusted players
- Block incoming requests —
/tptoggleblocks everyone, with an admin bypass - Request queue — cap how many pending requests a player can hold at once
- Teleport delay — configurable countdown shown to both players, with move-to-cancel
- Fully configurable — every message and sound is editable, chat & action-bar (hex color support)
- Folia supported — region-thread safe
Commands
/tpa <player>— send a teleport request (lunatpa.tpa)/tpahere <player>— ask a player to teleport to you (lunatpa.tpahere)/tpaccept [player]— accept the most recent or a named request (lunatpa.tpaccept)/tpdeny [player]— deny the most recent or a named request (lunatpa.tpdeny)/tpcancel [player]— cancel your outgoing request(s) (lunatpa.tpcancel)/autoaccept <player>— auto-accept a specific player's requests (lunatpa.autoaccept)/tptoggle— block or allow incoming requests (lunatpa.tptoggle)/lunatpa reload— reload config & messages (lunatpa.admin)
Permissions
lunatpa.use— base access (default: true)lunatpa.tpa—/tpa(default: true)lunatpa.tpahere—/tpahere(default: true)lunatpa.tpaccept—/tpaccept(default: true)lunatpa.tpdeny—/tpdeny(default: true)lunatpa.tpcancel—/tpcancel(default: true)lunatpa.autoaccept—/autoaccept(default: true)lunatpa.tptoggle—/tptoggle(default: true)lunatpa.bypass.tptoggle— request players who blocked requests (default: op)lunatpa.admin— admin commands (default: op)
Config, messages, and data files are generated automatically on first start:
config.yml— settingsmessages.yml— all chat/action-bar texttoggles.yml— players blocking incoming requestsautoaccept.yml— per-player auto-accept whitelists

