Skip to main content

Teleportation Module

File: modules/teleportation/config.yml

The Teleportation module is a comprehensive teleportation system supporting direct teleports, teleport requests (TPA), random teleportation (RTP), configurable delays, safety checks, protection timers, biome blacklists, and world overrides. It includes a permission-based delay and protection system, allowing different behavior for different player groups.


Source Configuration

enable: true
teleport-safety: true
teleport-to-center: true
teleport-delay: 5
teleport-delay-permissions:
- permission: "essentials.teleport.delay.vip"
delay: 4
- permission: "essentials.teleport.delay.staff"
delay: 2
teleport-delay-bypass: false
teleport-tpa-expire: 60
open-confirm-inventory-for-tpa: false
open-confirm-inventory-for-tpa-here: false
rtp-worlds:
- world: "world"
center-x: 0
center-z: 0
radius-x: 5000
radius-z: 5000
- world: "survivalspawn"
center-x: 0
center-z: 0
radius-x: 5000
radius-z: 5000
max-rtp-attempts: 10
blacklist-biomes:
- cold_ocean
- deep_cold_ocean
- deep_frozen_ocean
- deep_lukewarm_ocean
- deep_ocean
- deep_warm_ocean
- frozen_ocean
- frozen_river
- lukewarm_ocean
- ocean
- river
- warm_ocean
teleport-protection: 1000
teleport-protections:
- permission: "essentials.teleport.protection.vip"
delay: 2000
- permission: "essentials.teleport.protection.staff"
delay: 3000
enable-random-teleport-search-log-message: true
enable-rtp-queue: false
rtp-queue-delay: 2000
enable-first-join-rtp: false
first-join-rtp-world: "world"
rtp-world-overrides:
- from: "world_nether"
to: "world"
- from: "world_the_end"
to: "world"

Options

General Options

OptionTypeDefaultDescription
enableBooleantrueEnable or disable the Teleportation module
teleport-safetyBooleantrueIf true, the plugin checks for a safe landing location before teleporting (avoids lava, void, suffocation, etc.)
teleport-to-centerBooleantrueIf true, players are teleported to the center of the block (X.5, Z.5) for cleaner positioning

Teleport Delay

OptionTypeDefaultDescription
teleport-delayInteger5Default delay in seconds before a teleport is executed. The player must remain still during this time
teleport-delay-bypassBooleanfalseIf true, all players bypass the teleport delay entirely
teleport-delay-permissionsList(see above)Permission-based overrides for the teleport delay. Players with a matching permission use the specified delay instead of the default
teleport-delay-permissions[].permissionString-The permission node the player must have for this delay override to apply
teleport-delay-permissions[].delayInteger-The delay in seconds to use for players with this permission
tip

The teleport-delay-permissions list is checked in order. The first matching permission determines the player's delay. Assign permissions carefully so each player matches only one entry.

TPA (Teleport Ask) Options

OptionTypeDefaultDescription
teleport-tpa-expireInteger60Time in seconds before a pending TPA request expires automatically
open-confirm-inventory-for-tpaBooleanfalseIf true, opens a zMenu confirmation inventory for the target player when receiving a /tpa request
open-confirm-inventory-for-tpa-hereBooleanfalseIf true, opens a zMenu confirmation inventory for the target player when receiving a /tpahere request
info

When the confirmation inventory options are enabled, the receiving player gets a GUI prompt to accept or deny the request instead of relying on chat commands. This requires zMenu to be installed.

Random Teleportation (RTP) Options

OptionTypeDefaultDescription
rtp-worldsList(see above)Defines which worlds allow random teleportation and the search area for each world
rtp-worlds[].worldString-The name of the world where RTP is allowed
rtp-worlds[].center-xInteger0The X coordinate of the center point for the RTP search area
rtp-worlds[].center-zInteger0The Z coordinate of the center point for the RTP search area
rtp-worlds[].radius-xInteger5000The maximum distance from center-x on the X axis for random location selection
rtp-worlds[].radius-zInteger5000The maximum distance from center-z on the Z axis for random location selection
max-rtp-attemptsInteger10Maximum number of attempts to find a safe random location before giving up
enable-random-teleport-search-log-messageBooleantrueIf true, logs a message to the console each time the plugin searches for a random teleport location

Biome Blacklist

OptionTypeDefaultDescription
blacklist-biomesList of Strings(see above)A list of biome identifiers where random teleportation will not place players. If a selected location falls within a blacklisted biome, the plugin retries up to max-rtp-attempts
warning

If too many biomes are blacklisted and the RTP area is small, the plugin may exhaust all attempts without finding a valid location. Increase max-rtp-attempts or expand the RTP radius if players frequently fail to find a location.

Teleport Protection

OptionTypeDefaultDescription
teleport-protectionInteger1000Default protection duration in milliseconds after teleportation. During this time, the player is immune to damage
teleport-protectionsList(see above)Permission-based overrides for the teleport protection duration
teleport-protections[].permissionString-The permission node the player must have for this protection override to apply
teleport-protections[].delayInteger-The protection duration in milliseconds for players with this permission
note

Teleport protection prevents players from taking damage immediately after teleporting. This is especially useful for RTP where players may land in hostile environments. The value is in milliseconds (e.g., 1000 = 1 second, 3000 = 3 seconds).

RTP Queue

OptionTypeDefaultDescription
enable-rtp-queueBooleanfalseIf true, enables a queue system for RTP requests to prevent server lag from simultaneous random teleport searches
rtp-queue-delayInteger2000Delay in milliseconds between processing each queued RTP request

First Join RTP

OptionTypeDefaultDescription
enable-first-join-rtpBooleanfalseIf true, new players are automatically randomly teleported when they first join the server
first-join-rtp-worldString"world"The world in which the first-join random teleport takes place. Must be defined in rtp-worlds
tip

First join RTP is useful for survival servers that want to spread players out across the map from the start, rather than having everyone spawn at the same location.

World Overrides

OptionTypeDefaultDescription
rtp-world-overridesList(see above)Redirects RTP requests from one world to another. If a player uses /tpr in a listed from world, they are teleported to a random location in the to world instead
rtp-world-overrides[].fromString-The world where the player is currently located
rtp-world-overrides[].toString-The target world where the player will be randomly teleported
info

World overrides are useful for preventing RTP in dimensions like the Nether or The End, redirecting those requests back to the overworld instead.


How It Works

  1. Direct Teleports (/tp, /tphere, /tpall): Instantly teleport players to a target location or player, subject to the configured delay and safety checks.
  2. Teleport Requests (/tpa, /tpahere): Send a request to another player. The target can accept (/tpaccept) or deny (/tpdeny) within the expiration window. The requester can cancel with /tpacancel.
  3. Random Teleport (/tpr): Selects a random location within the configured RTP bounds for the player's current world (or the override world), avoiding blacklisted biomes, and teleports the player there after safety checks.
  4. Back (/back): Returns the player to their previous location before the last teleport.
  5. Vertical Teleports (/top, /bottom): Teleports the player to the highest or lowest safe block at their current X/Z coordinates.
  6. World Teleport (/worldtp): Teleports a player to a specific world.

CommandPermissionDescription
/tpessentials.tpTeleport to a player or coordinates
/tpallessentials.tpallTeleport all online players to you
/tphereessentials.tphereTeleport a player to your location
/tpaessentials.tpaSend a teleport request to a player
/tpahereessentials.tpahereRequest a player to teleport to you
/tpacceptessentials.tpacceptAccept a pending teleport request
/tpdenyessentials.tpdenyDeny a pending teleport request
/tpacancelessentials.tpacancelCancel your outgoing teleport request
/backessentials.backTeleport to your previous location
/tpr (rtp)essentials.rtpTeleport to a random location
/topessentials.topTeleport to the highest block at your position
/bottomessentials.bottomTeleport to the lowest safe block at your position
/worldtpessentials.worldtpTeleport to a specific world

For the full command list, see Commands & Permissions.


PermissionDescription
essentials.teleport.delay.vipGrants VIP teleport delay (4 seconds in default config)
essentials.teleport.delay.staffGrants staff teleport delay (2 seconds in default config)
essentials.teleport.protection.vipGrants VIP teleport protection (2000ms in default config)
essentials.teleport.protection.staffGrants staff teleport protection (3000ms in default config)
note

The permission nodes and their associated values are fully configurable. The permissions listed above are from the default configuration and can be changed to match your server's permission structure.


Example: Survival Server Setup

A typical survival server configuration with generous RTP bounds and ocean biome exclusion:

enable: true
teleport-safety: true
teleport-to-center: true
teleport-delay: 5
teleport-delay-permissions:
- permission: "essentials.teleport.delay.donor"
delay: 2
- permission: "essentials.teleport.delay.staff"
delay: 0
teleport-delay-bypass: false
teleport-tpa-expire: 120
rtp-worlds:
- world: "world"
center-x: 0
center-z: 0
radius-x: 10000
radius-z: 10000
max-rtp-attempts: 20
blacklist-biomes:
- ocean
- deep_ocean
teleport-protection: 3000
enable-first-join-rtp: true
first-join-rtp-world: "world"
Copyright © 2026 GroupeZ|Build #loading...|-