Skip to content
RitomasssCommunity
Product documentation

NexaTeleport Documentation

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.

21Java target
Paper 1.21Server target
SQLite/MySQLStorage mode
PAPI + VaultHook posture

Overview#

Product purpose, target audience, main systems, dependencies and quick links.

Quick links: Installation, First Setup, Commands, Permissions, Configuration, GUI, Placeholders, Storage, Integrations, API, Troubleshooting and Support.

What is NexaTeleport?#

A modular teleport layer for player requests, random teleportation, queue-based launches, zones and admin support workflows.

Who is it for?#

SMP, Survival, Lifesteal and network owners who need configurable teleport safety, economy costs, history and polished GUIs.

Supported server types#

Paper and Spigot-style servers. Folia runtime scheduling is detected, but only claim Folia support after testing your complete setup.

Main features#

  • TPA and TPAHere request flow
  • No-target player selector GUI
  • Random teleport worlds
  • RTPQueue solo, duel, team, coop and battle modes
  • Zone-triggered RTP
  • History, limits, cooldowns and costs
  • Public API, events and PlaceholderAPI values

Dependencies#

  • Java 21
  • Paper-compatible 1.21 server API
  • LicenseGate key
  • PlaceholderAPI optional
  • Vault, CoinsEngine or PlayerPoints optional
  • WorldGuard, GriefPrevention, Lands and other protection hooks optional

Installation#

Installation gets the plugin to boot. First Setup prepares it for production use.

Do not replace plugin jars while the server is running. Always back up config files and database files before updating.
Download the latest NexaTeleport jar from the official buyer/download source.
Stop the server before replacing the jar.
Upload the jar to /plugins.
Start the server once and confirm the plugin folder was generated.
Configure license, modules, storage and worlds in config.yml.
Restart the server and run /nexatp status.

First Setup#

Recommended first configuration pass after generated files exist.

Make one change at a time, restart for license/storage changes, then test with real player accounts.

Setup checklist#

  1. Set license-key
  2. Choose modules under modules
  3. Choose storage.type
  4. Configure RTP worlds and radius rules
  5. Configure queue mode sizes and countdowns
  6. Review menus and messages
  7. Assign permissions
  8. Test TPA, RTP, queue and admin status

Production notes#

  • Use LuckPerms or another permission manager for rank-specific limits.
  • Keep SQLite files and SQL exports in regular backups.
  • Test cross-server messaging on staging before using it on a live network.
  • Do not disable protection checks unless your spawn, claims and regions are already protected elsewhere.

Commands#

Command entries match the bundled plugin.yml command surface.

Many commands open GUI flows when arguments are omitted. Keep command conflicts enabled if Essentials, CMI or similar plugins are installed.
/tpa [player]Player
Description

Send a teleport-to request or open player select GUI.

Permission

nexatp.tpa.use

Example

/tpa Steve

When to use

Player wants to teleport to another player.

/tpahere [player]Player
Description

Ask a player to teleport to you.

Permission

nexatp.tpa.here

Example

/tpahere Steve

When to use

Bring a target player to the sender.

/tpaccept [player]Player
Description

Accept a pending TPA or TPAHere request.

Permission

nexatp.tpa.accept

Example

/tpaccept

When to use

Complete an incoming teleport request.

/tpdeny [player]Player
Description

Deny a pending TPA or TPAHere request.

Permission

nexatp.tpa.deny

Example

/tpdeny

When to use

Reject an incoming teleport request.

/tpacancel [player]Player
Description

Cancel a sent request before it is resolved.

Permission

nexatp.tpa.use

Example

/tpacancel Steve

When to use

Sender changes their mind before accept/deny.

/tpatoggle /tpaheretoggle /tpaguitoggle /tpauto /tpadndPlayer
Description

Toggle TPA receive, TPAHere receive, GUI, auto accept and do-not-disturb preferences.

Permission

nexatp.tpa.toggle

Example

/tpadnd

When to use

Players want control over incoming requests.

/tpatrust /tpuntrust /tptrusted /tptrustedonly /tptrustedautoPlayer
Description

Manage trusted players and trusted-only receive behavior.

Permission

nexatp.tpa.toggle

Example

/tpatrust Steve

When to use

Limit requests to friends, teammates or trusted players.

/tpignore /tpunignore /tpalist /tplist /tpahistoryPlayer
Description

Manage ignores, view TPA settings and open request history.

Permission

nexatp.tpa.use

Example

/tpahistory 2

When to use

Player support, privacy and request review.

/rtp [world|min max|confirm|near|claim|status]Player
Description

Random teleport using configured world and safety rules.

Permission

nexatp.rtp.use

Example

/rtp world

When to use

Find a safe wilderness location.

/rtpqueue join|duel|team|coop|battle|status|list|top|reloadQueue
Description

Join RTPQueue modes, inspect active entries and reload queue settings.

Permission

nexatp.queue.*

Example

/rtpqueue team 2v2 world

When to use

Queue-based RTP, duel launches and team launches.

/leaveQueue
Description

Leave the RTP queue or active queue match.

Permission

Queue mode permission

Example

/leave

When to use

Fast queue exit command.

/1v1 /toggle1v1Duel
Description

Send, accept or toggle incoming duel invites.

Permission

nexatp.queue.duel

Example

/1v1 Steve

When to use

Direct 1v1 RTP duel invitations.

/nexatp /tpadminAdmin
Description

Reload, status, admin GUI, queue tools, player debug, force request actions, Redis and SQL status.

Permission

nexatp.admin

Example

/nexatp status

When to use

Staff diagnostics, reloads and support workflows.

Permissions#

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 true
nexatp.admin

Access admin commands, admin GUI and debug tooling.

Default: opOwner/Admin
nexatp.bypass.protection

Bypass WorldGuard and claim protection teleport checks.

Default: opBypass
nexatp.tpa.use

Use /tpa and core TPA request actions.

Default: truePlayers
nexatp.tpa.here

Use /tpahere.

Default: truePlayers
nexatp.tpa.accept

Accept TPA requests.

Default: truePlayers
nexatp.tpa.deny

Deny TPA requests.

Default: truePlayers
nexatp.tpa.toggle

Toggle preferences, trusted lists and ignore behavior.

Default: truePlayers
nexatp.tpa.bypass.cooldown

Bypass TPA cooldown.

Default: opBypass
nexatp.tpa.bypass.cost

Bypass TPA economy cost.

Default: opBypass
nexatp.tpa.bypass.combat

Bypass TPA combat blocking.

Default: opBypass
nexatp.tpa.bypass.ratelimit

Bypass TPA request rate limiting.

Default: opBypass
nexatp.tpa.bypass.limit

Bypass TPA daily limits.

Default: opBypass
nexatp.rtp.use

Use /rtp and the RTP GUI.

Default: truePlayers
nexatp.rtp.near

Use /rtp near.

Default: truePlayers
nexatp.rtp.claim

Use /rtp claim.

Default: truePlayers
nexatp.rtp.world.<world>

Per-world RTP permission when a world requires one.

ConfiguredPlayers
nexatp.rtp.bypass.cooldown

Bypass RTP cooldown.

Default: opBypass
nexatp.rtp.bypass.warmup

Bypass RTP warmup.

Default: opBypass
nexatp.rtp.bypass.combat

Bypass RTP combat blocking.

Default: opBypass
nexatp.rtp.bypass.cost

Bypass RTP economy cost.

Default: opBypass
nexatp.rtp.bypass.limit

Bypass daily RTP free-use counting.

Default: opBypass
nexatp.queue.solo

Join solo RTP queue.

Default: truePlayers
nexatp.queue.duel

Use 1v1 queue and duel invites.

Default: truePlayers
nexatp.queue.team

Use team queue modes.

Default: opStaff/Ranks
nexatp.queue.coop

Join coop RTP queue.

Default: truePlayers
nexatp.queue.battle_royale

Join battle royale RTP queue.

Default: truePlayers
nexatp.queue.bypass.cost

Bypass queue entry costs.

Default: opBypass
nexatp.queue.bypass.alt

Bypass queue alt-abuse connection guard.

Default: opBypass
nexatp.queue.debug

View queue debug information.

Default: opStaff
nexatp.crossserver.bypass.ratelimit

Bypass cross-server request rate limiting.

Default: opBypass

Configuration#

Configuration YAML excerpts show important keys only. The generated file contains more options.

Validate YAML indentation before restarting. Restart after license, storage or dependency-level changes.
config.yml short excerpt, not full file

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: 6379
Top-level keys

license-key, modules, tpa, rtp, queue, economy, metrics, worlds, storage, cross-server, integrations, safety, zones and effects.

Production handling

Back 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.

Messages & Language#

Translation and formatting guidance based on bundled resources.

Messages support MiniMessage-style tags and legacy color content where the parser accepts it. Keep placeholders intact.

How to edit messages#

Edit plugins/NexaTeleport/messages.yml, preserve placeholder names such as <player>, then run /nexatp reload or restart.

Formatting#

<red>Error message</red>
<yellow><player></yellow>
&cLegacy color message
messages.yml short excerpt, not full file
prefix: "<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 / Menus#

GUI files are configurable YAML menus with material, slot, name, lore, actions, sounds and placeholder support.

Invalid materials or missing sections should be handled with fallbacks. Keep actions exact when editing menu files.

tpa-player-select.yml#

Player selector shown when /tpa or /tpahere is used without a target.

  • Title: &8Select Player
  • Size: 54
  • Actions: TPA_SELECT, PAGE_PREVIOUS, PAGE_NEXT, CLOSE

tpa-confirm.yml#

Confirmation screen before sending selected TPA or TPAHere request.

  • Use for request review
  • Supports target placeholders

tpa-incoming.yml#

Incoming request GUI with accept and deny controls.

  • Use for GUI-first request handling
  • Works with request timeout

tpa-history.yml#

Paginated history menu for recent TPA activity.

  • Backed by storage
  • Supports page navigation

rtp-main.yml#

RTP world selector.

  • Title: &8Random Teleport
  • Size: 54
  • Actions: RTP_WORLD, OPEN_MENU:RTP_QUEUE, ZONE_TOGGLE

rtp-confirm.yml#

Optional RTP confirmation menu before consuming cost or starting warmup.

  • Use when confirmation is enabled
  • Works with pending timeout

rtpqueue-main.yml#

Main queue selector for solo, duel, team, coop and battle modes.

  • Title: &8RTP Queue
  • Size: 36
  • Actions: QUEUE_JOIN, QUEUE_STATUS, QUEUE_LEAVE

rtpqueue-status.yml#

Queue state menu for current mode, remaining time, penalties and match data.

  • Use for player queue status
  • Supports queue placeholders

admin-panel.yml#

Staff panel for status, requests, queue list, cache, failed logs, reload and metrics.

  • Title: &8NexaTeleport Admin
  • Size: 45
  • Actions: COMMAND, OPEN_MENU:RTP, CLOSE

Placeholders#

PlaceholderAPI examples exposed by the bundled expansion.

Install PlaceholderAPI before using these values in scoreboards, chat formats or display plugins.

TPA values#

  • %nexateleport_tpa_toggle%
  • %nexateleport_tpahere_toggle%
  • %nexateleport_tpa_auto%
  • %nexateleport_pending_requests%

RTP and queue values#

  • %nexateleport_rtp_cooldown%
  • %nexateleport_rtp_last_location%
  • %nexateleport_rtp_total%
  • %nexateleport_queue_mode%
  • %nexateleport_queue_stats%
  • %nexateleport_rtp_zone%

Storage#

Storage docs explain SQLite, MySQL, MariaDB and backup expectations.

Always back up before changing storage type or updating a production server.

Storage recommendation#

SQLite is suitable for one server. MySQL or MariaDB is recommended when you need centralized data, SQL backups or cross-server reporting.

Saved data#

  • Player TPA preferences
  • Trusted and ignored players
  • Cooldowns and daily usage
  • TPA history
  • RTP history and last location
  • Queue stats and failed teleport logs

Integrations#

Soft hooks load only when matching plugins are installed and enabled.

Review softdepend entries in plugin.yml when diagnosing load order or missing hook behavior.
Economy Vault, CoinsEngine, PlayerPoints

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.

Protection WorldGuard, claims and reflective hooks

Blocks unsafe or disallowed teleport destinations through WorldGuard, GriefPrevention, Lands, Towny, Factions, SuperiorSkyblock2, BentoBox, Essentials and CMI-style checks.

Social trust NexaTeams, LuckPerms, teams/friends/parties

Trusted-only and trusted auto-accept behavior can use server trust lists, scoreboard teams, LuckPerms groups and reflective team/friend/party providers.

Cross-server Proxy and Redis

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.

Holograms FancyHolograms, DecentHolograms, PacketEvents, TextDisplay

RTP zones can display hologram lines using the configured provider order. TextDisplay is the built-in fallback when supported by the server.

Combat CombatLogX, EssentialsX, CMI

Combat hooks block teleport actions while players are tagged. Bypass permissions should be limited to staff or trusted ranks.

API#

Developer-facing hooks for other plugins.

Use the Bukkit Services API when possible so implementation details can change without breaking consumers.

Service access#

NexaTeleportApi api = Bukkit.getServicesManager()
    .load(NexaTeleportApi.class);

Events#

  • TpaRequestCreateEvent
  • TpaRequestResolveEvent
  • RtpTeleportCompleteEvent
  • RtpQueueUpdateEvent

Quick Start#

Configure TPA and RTP independently, then test warmup and cancellation.

Never test broad RTP radius on a live world first.
Test TPASend /tpa Steve; accept with /tpaccept, deny with /tpdeny and cancel with /tpacancel.
Set preferencesTest /tpatoggle, /tpaheretoggle, /tpauto and /tpadnd.
Test RTPRun /rtp <world> in a test world and verify warmup, unsafe-location retry and cancellation.

TPA & Trust Setup#

Make personal receive policy and trusted requests easy to understand.

Use trust only for repeated requests from known players.

Request flow#

  1. Send /tpa or /tpahere.
  2. Accept/deny and verify timeout.
  3. Move during warmup and confirm cancellation policy.
  4. Test ignore and trusted lists after a player rename.

Trust flow#

  1. Add a trusted player with /tpatrust.
  2. Verify auto-accept only when configured.
  3. Remove trust and confirm normal request behavior.

RTP & Queue Setup#

Publish safe random teleport and queue behavior per world.

Blacklist unsafe biomes/zones and test minimum players, timeout and leave.
World baseline safe destination
  1. Set target world, min/max radius and attempt limit.
  2. Blacklist unsafe biomes and protected zones.
  3. Test /rtp with a disposable player.
  4. Inspect destination and protection before enabling public access.
Queue baseline RTPQueue
  1. Use /rtp queue join, status and leave.
  2. Test minimum count, timeout and disconnect.
  3. Verify only eligible players receive a destination.

Production Rollout#

Keep teleport requests and random destinations safe across worlds and restarts.

Back up settings and test cooldown, warmup, blacklist and restart recovery.

Go-live#

  • Set per-world permissions and cooldowns.
  • Keep unsafe-location retry limits finite.
  • Test proxy transfer and player quit during warmup.
  • Monitor failed destination warnings.

Baseline#

tpa: warmup-seconds: 3 timeout-seconds: 60 cancel-on-move: true rtp: max-attempts: 20 deny-unsafe: true queue: minimum-players: 2

Operational Reference#

TPA, RTP and RTPQueue have different safety/permission expectations; configure and test them independently.

Never test RTP with a broad radius on a live world first. Use a test world, blacklist unsafe biomes and verify warmup/cancel behavior.

TPA workflow#

  1. Send /tpa Steve or /tpahere Steve.
  2. The target uses /tpaccept or /tpdeny; the sender can use /tpacancel.
  3. Configure /tpatoggle, /tpaheretoggle, /tpauto and /tpadnd for personal receive policy.
  4. Use /tpatrust only for trusted repeated requests; review ignore/trusted lists after a rename or staff action.

RTP workflow#

  1. Enable the target world and set min/max radius plus biome policy.
  2. Run /rtp <world> or /rtp <min> <max> and confirm the warmup.
  3. If the location is unsafe, cancel and inspect blacklist, zones, protection and attempt limits.
  4. For queues, use /rtp queue join, status and leave; test timeout and minimum player count.

World baseline#

queue:
  enabled: true
  timeout-seconds: 600
worlds:
  world:
    enabled: true
    min-radius: 500
    max-radius: 10000
    biome-mode: BLACKLIST

Network checklist#

Give 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.

Common Setups#

Short setup recipes for common server styles.

Start conservative, then open features once core flows are confirmed.

Survival SMP#

  • Enable TPA and RTP
  • Keep protection checks on
  • Use RTP cooldown and warmup
  • Set per-world RTP permissions

Lifesteal / PvP#

  • Enable combat blocking
  • Use movement and damage cancel
  • Restrict queue team modes by permission
  • Keep post-teleport protection short

Network#

  • Set unique server IDs
  • Configure Redis channels
  • Test heartbeats and proxy transfer
  • Use SQL storage for reporting

Troubleshooting#

Common issues and first checks.

Never post full license keys in public support channels. Mask keys when sharing logs.

Plugin disables on startup#

Check license-key. Placeholder values such as LICENSE, none and change-me are rejected.

RTP fails to find a location#

Increase safety.max-attempts, review biome/block lists, radius, world border and protection hooks.

Queue does not start#

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.

Economy costs are ignored#

Confirm Vault, CoinsEngine or PlayerPoints is installed, enabled and configured in economy.

Cross-server requests do not resolve#

Verify server IDs, proxy type/channel, Redis setting, heartbeat timeout and target server availability.

FAQ#

Short answers for common buyer and staff questions.

Does NexaTeleport require MySQL?#

No. SQLite is available for a single server. MySQL or MariaDB is optional for larger setups.

Can I edit every menu?#

Yes. Menu files expose titles, sizes, slots, materials, names, lore, sounds and actions.

Can players bypass cooldowns by permission?#

Yes. TPA, RTP and queue bypass nodes are available and should be assigned intentionally.

Does it support PlaceholderAPI?#

Yes. The expansion registers when PlaceholderAPI is installed.

Support#

Send enough information to reproduce the issue.

Join Discorddiscord.gg/fANhQcyA7XInclude server version, NexaTeleport version, startup log, changed YAML snippets and exact reproduction steps.

Before asking for support#

  • Test on the latest available plugin version.
  • Check Java and server version.
  • Temporarily remove unrelated plugins when debugging conflicts.
  • Attach changed YAML files when config is involved.
Plugin: NexaTeleport
Version:
Server software:
Java:
Storage type:
Issue:
Steps to reproduce:
Relevant config:
Console errors: