What is NexaTeleport?#
A modular teleport layer for player requests, random teleportation, queue-based launches, zones and admin support workflows.
NexaTeleport is a premium teleport suite for modern Paper and Spigot-style servers with TPA, TPAHere, RTP, RTP zones, RTPQueue matchmaking, persistent history, configurable menus, API hooks and LicenseGate packaging.
Product purpose, target audience, main systems, dependencies and quick links.
A modular teleport layer for player requests, random teleportation, queue-based launches, zones and admin support workflows.
SMP, Survival, Lifesteal and network owners who need configurable teleport safety, economy costs, history and polished GUIs.
Paper and Spigot-style servers. Folia runtime scheduling is detected, but only claim Folia support after testing your complete setup.
Installation gets the plugin to boot. First Setup prepares it for production use.
Recommended first configuration pass after generated files exist.
license-keymodulesstorage.typeCommand entries match the bundled plugin.yml command surface.
/tpa [player]PlayerSend a teleport-to request or open player select GUI.
nexatp.tpa.use
/tpa Steve
Player wants to teleport to another player.
/tpahere [player]PlayerAsk a player to teleport to you.
nexatp.tpa.here
/tpahere Steve
Bring a target player to the sender.
/tpaccept [player]PlayerAccept a pending TPA or TPAHere request.
nexatp.tpa.accept
/tpaccept
Complete an incoming teleport request.
/tpdeny [player]PlayerDeny a pending TPA or TPAHere request.
nexatp.tpa.deny
/tpdeny
Reject an incoming teleport request.
/tpacancel [player]PlayerCancel a sent request before it is resolved.
nexatp.tpa.use
/tpacancel Steve
Sender changes their mind before accept/deny.
/tpatoggle /tpaheretoggle /tpaguitoggle /tpauto /tpadndPlayerToggle TPA receive, TPAHere receive, GUI, auto accept and do-not-disturb preferences.
nexatp.tpa.toggle
/tpadnd
Players want control over incoming requests.
/tpatrust /tpuntrust /tptrusted /tptrustedonly /tptrustedautoPlayerManage trusted players and trusted-only receive behavior.
nexatp.tpa.toggle
/tpatrust Steve
Limit requests to friends, teammates or trusted players.
/tpignore /tpunignore /tpalist /tplist /tpahistoryPlayerManage ignores, view TPA settings and open request history.
nexatp.tpa.use
/tpahistory 2
Player support, privacy and request review.
/rtp [world|min max|confirm|near|claim|status]PlayerRandom teleport using configured world and safety rules.
nexatp.rtp.use
/rtp world
Find a safe wilderness location.
/rtpqueue join|duel|team|coop|battle|status|list|top|reloadQueueJoin RTPQueue modes, inspect active entries and reload queue settings.
nexatp.queue.*
/rtpqueue team 2v2 world
Queue-based RTP, duel launches and team launches.
/leaveQueueLeave the RTP queue or active queue match.
Queue mode permission
/leave
Fast queue exit command.
/1v1 /toggle1v1DuelSend, accept or toggle incoming duel invites.
nexatp.queue.duel
/1v1 Steve
Direct 1v1 RTP duel invitations.
/nexatp /tpadminAdminReload, status, admin GUI, queue tools, player debug, force request actions, Redis and SQL status.
nexatp.admin
/nexatp status
Staff diagnostics, reloads and support workflows.
Permission nodes are based on plugin.yml. Assign bypass permissions carefully.
/lp group default permission set nexatp.tpa.use true/lp group admin permission set nexatp.admin trueConfiguration YAML excerpts show important keys only. The generated file contains more options.
Main runtime settings, license, modules, storage, worlds, queue and integrations.
license-key: "LICENSE"
modules:
tpa: true
rtp: true
rtpqueue: true
cross-server: false
zones: true
economy: true
storage:
type: SQLITE # SQLITE, MYSQL, MARIADB
worlds:
world:
enabled: true
display-name: "Overworld"
world-name: "world"
center: "0,0"
min-radius: 500
max-radius: 10000
permission: "nexatp.rtp.world.world"
biome-mode: BLACKLIST
blacklisted-biomes:
- OCEAN
- DEEP_OCEAN
queue:
enabled: true
timeout-seconds: 600
modes:
duel:
min-players: 2
max-players: 2
spread-distance: 25
countdown: 10
cross-server:
server-id: "server-1"
proxy-type: "BUNGEECORD"
redis:
enabled: false
host: "localhost"
port: 6379Top-level keyslicense-key, modules, tpa, rtp, queue, economy, metrics, worlds, storage, cross-server, integrations, safety, zones and effects.
Production handlingBack up this file, edit the generated copy under the plugin folder, then use /nexatp reload for runtime-safe settings or restart for startup-level settings.
Translation and formatting guidance based on bundled resources.
Edit plugins/NexaTeleport/messages.yml, preserve placeholder names such as <player>, then run /nexatp reload or restart.
<red>Error message</red>
<yellow><player></yellow>
&cLegacy color messageprefix: "<gradient:#FF0055:#FFaa00>NexaTeleport</gradient> <dark_gray>| "
system:
reloaded: "<green>Plugin reloaded."
no-permission: "<red>You do not have permission."
module-disabled: "<red>This module is disabled."
tpa:
request-sent: "<green>Teleport request sent to <yellow><player></yellow>."
request-accepted: "<green>Request accepted. Teleport starts in <yellow><time></yellow>s."
cooldown-active: "<red>TPA cooldown active. Remaining: <yellow><time>"
rtp:
teleporting: "<green>Searching for a safe random location..."
success: "<green>RTP successful. <gray>World: <yellow><world>"
failed: "<red>RTP failed."
queue:
joined: "<green>Joined queue. World: <yellow><world> <gray>| Teleport in <yellow><time>s"GUI files are configurable YAML menus with material, slot, name, lore, actions, sounds and placeholder support.
Player selector shown when /tpa or /tpahere is used without a target.
&8Select PlayerConfirmation screen before sending selected TPA or TPAHere request.
Incoming request GUI with accept and deny controls.
Paginated history menu for recent TPA activity.
RTP world selector.
&8Random TeleportOptional RTP confirmation menu before consuming cost or starting warmup.
Main queue selector for solo, duel, team, coop and battle modes.
&8RTP QueueQueue state menu for current mode, remaining time, penalties and match data.
Staff panel for status, requests, queue list, cache, failed logs, reload and metrics.
&8NexaTeleport AdminPlaceholderAPI examples exposed by the bundled expansion.
Storage docs explain SQLite, MySQL, MariaDB and backup expectations.
SQLite is suitable for one server. MySQL or MariaDB is recommended when you need centralized data, SQL backups or cross-server reporting.
Soft hooks load only when matching plugins are installed and enabled.
Provides costs for TPA, RTP, queue entry and radius pricing. If withdrawals do not happen, confirm the economy plugin is enabled and that the player has enough balance.
Blocks unsafe or disallowed teleport destinations through WorldGuard, GriefPrevention, Lands, Towny, Factions, SuperiorSkyblock2, BentoBox, Essentials and CMI-style checks.
Trusted-only and trusted auto-accept behavior can use server trust lists, scoreboard teams, LuckPerms groups and reflective team/friend/party providers.
Cross-server request plumbing uses server IDs, proxy channel settings, heartbeat data and optional Redis channels. Test all server routes before enabling this on production.
RTP zones can display hologram lines using the configured provider order. TextDisplay is the built-in fallback when supported by the server.
Combat hooks block teleport actions while players are tagged. Bypass permissions should be limited to staff or trusted ranks.
Developer-facing hooks for other plugins.
Configure TPA and RTP independently, then test warmup and cancellation.
/tpa Steve; accept with /tpaccept, deny with /tpdeny and cancel with /tpacancel./tpatoggle, /tpaheretoggle, /tpauto and /tpadnd./rtp <world> in a test world and verify warmup, unsafe-location retry and cancellation.Make personal receive policy and trusted requests easy to understand.
/tpa or /tpahere./tpatrust.Publish safe random teleport and queue behavior per world.
/rtp with a disposable player./rtp queue join, status and leave.Keep teleport requests and random destinations safe across worlds and restarts.
tpa: warmup-seconds: 3 timeout-seconds: 60 cancel-on-move: true rtp: max-attempts: 20 deny-unsafe: true queue: minimum-players: 2TPA, RTP and RTPQueue have different safety/permission expectations; configure and test them independently.
/tpa Steve or /tpahere Steve./tpaccept or /tpdeny; the sender can use /tpacancel./tpatoggle, /tpaheretoggle, /tpauto and /tpadnd for personal receive policy./tpatrust only for trusted repeated requests; review ignore/trusted lists after a rename or staff action./rtp <world> or /rtp <min> <max> and confirm the warmup./rtp queue join, status and leave; test timeout and minimum player count.queue:
enabled: true
timeout-seconds: 600
worlds:
world:
enabled: true
min-radius: 500
max-radius: 10000
biome-mode: BLACKLISTGive every server a unique id, configure Redis/proxy only after local TPA/RTP works, then test heartbeat, cross-server request timeout, disconnect and duplicate request handling.
Short setup recipes for common server styles.
Common issues and first checks.
Check license-key. Placeholder values such as LICENSE, none and change-me are rejected.
Increase safety.max-attempts, review biome/block lists, radius, world border and protection hooks.
Check module state, mode permissions, minimum players, queue penalty and recent-opponent guard.
Validate menu YAML indentation, material names and actions. Use /nexatp reload after menu edits.
Confirm Vault, CoinsEngine or PlayerPoints is installed, enabled and configured in economy.
Verify server IDs, proxy type/channel, Redis setting, heartbeat timeout and target server availability.
Short answers for common buyer and staff questions.
No. SQLite is available for a single server. MySQL or MariaDB is optional for larger setups.
Yes. Menu files expose titles, sizes, slots, materials, names, lore, sounds and actions.
Yes. TPA, RTP and queue bypass nodes are available and should be assigned intentionally.
Yes. The expansion registers when PlaceholderAPI is installed.
Send enough information to reproduce the issue.
Plugin: NexaTeleport
Version:
Server software:
Java:
Storage type:
Issue:
Steps to reproduce:
Relevant config:
Console errors: