JPTeleport
A configurable teleport plugin for Paper servers with modules, public player warps, and optional GUIs.
Downloads open soon.
Features
- Spawn, homes, warps and public player warps
- Teleport requests (
/tpa,/tpahere),/backand random teleport - Menus for homes, warps and player warps
- Home limits per rank, cooldowns, delays and teleport costs
- Admin teleports (
/tp,/tphere,/tpall...) - Each part can be turned off
- Entry fees for player warps: owners earn money from visitors (
/pwarp price)
Requirements
- Paper 26.1 or newer (Java 25)
- Optional:
- Vault: money (any Vault economy) and ranks
- PlaceholderAPI: placeholders in texts, and this plugin's own placeholders
Installation
- Put
JPTeleport-<version>.jarin your server'spluginsfolder. - Restart the server.
plugins/JPTeleport/is created with the config and messages. - Change what you want in the files, then reload or restart.
Type /jp as an operator to see every JP plugin you have installed, its version and which optional plugins it found.
Commands
| Command | Description | Permission |
|---|---|---|
/jptp <reload|version> | Main JPTeleport admin command. | jptp.admin |
/setspawn | Set the global spawn point. | jptp.spawn.set |
/spawn | Teleport to the server spawn. | jptp.spawn.use |
/sethome [name] | Set your home. | jptp.home.set |
/home [name] | Teleport to your home. | jptp.home.use |
/delhome [name] | Delete one of your homes. | jptp.home.delete |
/homes | List all your homes. | jptp.home.list |
/homeicon <home> [item|reset]Aliases: /sethomeicon | Change the icon of one of your homes in /homes. | jptp.home.icon |
/warpicon <warp> [item|reset]Aliases: /setwarpicon | Change the icon of a warp in /warps. | jptp.warp.set |
/setwarp <name> | Create or update a warp. | jptp.warp.set |
/warp <name> | Teleport to a warp. | jptp.warp.use |
/delwarp <name> | Delete a warp. | jptp.warp.delete |
/warps [edit] | List all warps. Admins arrange them with /warps edit. | jptp.warp.list |
/setplayerwarp <name> [category]Aliases: /setpwarp | Create or update one of your public player warps. | jptp.playerwarp.set |
/delplayerwarp <name>Aliases: /delpwarp | Delete one of your public player warps. | jptp.playerwarp.delete |
/playerwarp [name]Aliases: /pwarp | Teleport to a public player warp or open your management menu. | jptp.playerwarp.use |
/playerwarps [category]Aliases: /pwarps | Browse all public player warps by category. | jptp.playerwarp.list |
/tpa <player> | Send a teleport request to another player. | jptp.teleport.request |
/tpahere <player> | Ask another player to teleport to you. | jptp.teleport.requesthere |
/tpaccept [player]Aliases: /tpyes | Accept a teleport request. | jptp.teleport.accept |
/tpadeny [player]Aliases: /tpdeny, /tpno | Deny a teleport request. | jptp.teleport.deny |
/tpacancel [player] | Cancel your outgoing teleport requests. | jptp.teleport.request |
/tptoggle | Toggle receiving teleport requests. | jptp.teleport.toggle |
/back | Return to your previous location. | jptp.back |
/tp <player> [target] | /tp [player] <x> <y> <z> | Teleport to a player, a player to a player, or to coordinates. | jptp.tp.use |
/tphere <player> | Teleport a player to your location. | jptp.tp.use |
/tpo <player> | Teleport yourself to a player. | jptp.tp.use |
/tppos <x> <y> <z> [world] | Teleport yourself to precise coordinates. | jptp.tp.use |
/tpall [player]Aliases: /tpaall | Teleport everyone to you or another target. | jptp.tp.use |
/rtp [world]Aliases: /wild, /randomtp | Randomly teleport to a safe location. | jptp.rtp.use |
Permissions
| Permission | Default | Description |
|---|---|---|
jptp.admin | operators | Access to JPTeleport admin commands. |
jptp.* | operators | Grants all JPTeleport permissions. |
jptp.spawn.set | operators | Set the global spawn point. |
jptp.spawn.use | everyone | Use /spawn. |
jptp.home.set | everyone | Set your personal home. |
jptp.home.use | everyone | Use /home. |
jptp.home.delete | everyone | Delete your home. |
jptp.home.list | everyone | List your homes. |
jptp.home.icon | everyone | Choose icons for your homes in /homes. |
jptp.playerwarp.rate | everyone | Rate player warps. |
jptp.playerwarp.feature | everyone | Buy featured slots for your own player warps. |
jptp.warp.set | operators | Create or update warps. |
jptp.warp.use | everyone | Use /warp. |
jptp.warp.delete | operators | Delete warps. |
jptp.warp.list | everyone | List warps. |
jptp.playerwarp.set | everyone | Create or update your public player warps. |
jptp.playerwarp.price | everyone | Charge visitors an entry fee for your player warps. |
jptp.playerwarp.use | everyone | Use public player warps. |
jptp.playerwarp.delete | everyone | Delete your public player warps. |
jptp.playerwarp.list | everyone | Browse public player warps. |
jptp.teleport.request | everyone | Send teleport requests. |
jptp.teleport.requesthere | everyone | Send /tpahere requests. |
jptp.teleport.accept | everyone | Accept teleport requests. |
jptp.teleport.deny | everyone | Deny teleport requests. |
jptp.teleport.toggle | everyone | Toggle incoming teleport requests. |
jptp.teleport.toggle.bypass | operators | Send requests to players who disabled them. |
jptp.back | everyone | Use /back after teleporting. |
jptp.back.ondeath | everyone | Use /back to return to your death location. |
jptp.tp.use | operators | Use administrative teleport commands. |
jptp.rtp.use | everyone | Use /rtp. |
jptp.rtp.world | operators | Use /rtp in another world. |
jptp.bypass.countdown | operators | Skip teleport countdown. |
jptp.bypass.cooldown | operators | Skip teleport cooldowns. |
jptp.bypass.cost | operators | Teleport for free when the economy is enabled. |
Placeholders
Needs PlaceholderAPI.
| Placeholder | Shows |
|---|---|
%jptp_homes% | homes the player has |
%jptp_homes_max% | homes they may have ("∞" for unlimited) |
%jptp_player_warps% | player warps they own |
%jptp_player_warps_max% | player warps they may own |
%jptp_pwarp_visits_<warp>% | visits of a player warp |
%jptp_pwarp_rating_<warp>% | average stars of a player warp (0.0 - 5.0) |
%jptp_pwarp_owner_<warp>% | owner of a player warp |
Configuration
All files are in plugins/JPTeleport/. Files: config.yml, data.yml, messages.yml.
When you update the plugin, new options are added to your config.yml by themselves, with their comments. Your own settings stay as they are, and the old file is kept as config.old-v<number>.yml.
Languages: English, Spanish, Portuguese, French and German. Set language: in config.yml (en, es, pt, fr or de).
Default config.yml
# Used to add new options to this file after an update. Don't change it.
config-version: 2
# ╔══════════════════════════════════════════════════════════════════╗
# ║ JPTeleport · config.yml ║
# ╚══════════════════════════════════════════════════════════════════╝
# Spawn, homes, warps, player warps, /tpa, /back, /rtp and admin teleports.
# Texts live in messages.yml, menu layouts in guis/*.yml.
# Apply changes with /jptp reload.
#
# Colours (everywhere): &a codes, &#RRGGBB hex and MiniMessage (<gradient:#a:#b>...).
# Times are in seconds. Sounds: SOUND or SOUND:volume:pitch (volume 0-1, pitch 0.5-2).
# Language of the messages: en (messages.yml), es, pt, fr or de (lang/<code>.yml).
# Your own language: copy a file in the lang folder to lang/<code>.yml, translate it
# and set its code here (for example it for lang/it.yml).
language: en
# Replace messages.yml and guis/*.yml with the new design when the plugin is updated.
# Your old files are kept as <name>.old-vX.yml. false = never touch them.
auto-update-style: true
general:
# Take over /tp, /home, /warp... from other plugins such as Essentials.
# false = another plugin with the same command keeps it.
override-other-plugins: true
# The chat prefix is set in messages.yml (general.prefix).
# Turn whole features and their commands on or off.
modules:
spawn:
enabled: true
homes:
enabled: true
warps:
enabled: true
player-warps:
enabled: true
teleport-requests:
enabled: true
admin-teleport:
enabled: true
back:
enabled: true
rtp:
enabled: true
guis:
enabled: true
teleport:
# Countdown before a teleport, used when a feature below has no own delay. 0 = instant.
default-delay-seconds: 3
# Players with this permission teleport instantly.
bypass-permission: "jptp.bypass.countdown"
# Cancel the countdown when the player walks away or takes damage.
cancel-on-movement: true
cancel-on-damage: true
# How the countdown is shown: ACTIONBAR, TITLE, CHAT or NONE
countdown-display: ACTIONBAR
effects:
# Particles where the player leaves and arrives.
particles: true
# Countdown per feature (seconds).
delays:
spawn: 3
home: 3
warp: 3
player-warp: 3
tpa: 3
back: 3
rtp: 3
spawn:
# Send players to /spawn when they respawn...
respawn-at-spawn: true
# ...unless they have a bed or respawn anchor.
respect-beds: true
# Send new players to /spawn the first time they join.
teleport-on-first-join: true
# Send everyone to /spawn every time they join.
teleport-on-join: false
homes:
# Name used by /sethome and /home without a name.
default-name: "home"
# Homes a player can have. Permissions override this: jptp.maxhomes.<1-100>
# or jptp.maxhomes.unlimited.
default-max-homes: 3
max-name-length: 16
# true = /sethome <existing name> moves that home. false = the player must delete it first.
allow-overwrite: true
# Primary/secondary Vault groups -> maximum homes (the highest one counts).
# Group names must match your permissions plugin (LuckPerms groups).
rank-limits:
vip: 5
elite: 10
owner: 25
icons:
# Players choose an icon for each home: right-click it in /homes, or /homeicon <home>.
# The choices are listed in guis/icon-picker.yml. Permission: jptp.home.icon
enabled: true
# Warps are created by staff only (/setwarp, permission jptp.warp.set).
# Staff arrange the /warps menu with /warps edit (click to move, right-click for the icon)
# or set an icon with /warpicon <warp> while holding an item.
warps:
max-name-length: 24
# true = /setwarp <existing name> moves that warp.
allow-overwrite: true
player-warps:
# Public warps each player may create (jptp.playerwarp.max.unlimited = no limit).
max-per-player: 2
max-name-length: 24
allow-overwrite: true
# Shown in the player warps menu. {player} = owner.
default-description: "&7Public warp by &f{player}"
# Player warps are sorted into categories (shops, farms, builds...). The categories
# themselves are set in guis/player-warp-categories.yml. Players choose one with
# /setplayerwarp <name> <category>, or right-click their warp in /playerwarp.
# Warps without a (valid) category go here:
default-category: other
# Order of player warps in the menus (featured warps always come first):
# VISITS most visited first RATING best rated first NAME A-Z
sort-by: VISITS
visits:
# A player counts as one visit per warp in this many hours (stops visit farming).
count-once-per-hours: 24
# Count the owner's own visits.
count-owner: false
# Players rate warps 1-5 stars: shift-left-click a warp in /pwarps, or /pwarp rate <warp> <stars>.
ratings:
enabled: true
# Only players who visited the warp at least once may rate it.
require-visit: true
star-color: '&#FFD27F'
empty-color: '&8'
# Entry fees: owners charge visitors with /pwarp price <warp> <amount> (or "free").
# Visitors confirm the fee first, and only pay once the teleport worked. Owners visit
# free. Needs Vault + an economy plugin.
paid:
enabled: true
# Highest fee an owner can set.
max-price: 1000000
# Percentage taken from every fee (the owner gets the rest). 0 = no tax.
tax-percent: 0
# Featured slots ("advertising"): owners pay to show their warp at the top of every
# player warp list, highlighted, with /pwarp feature <warp>. Buying again extends it.
featured:
enabled: true
# How many warps can be featured at the same time.
slots: 3
# Price (needs Vault + an economy plugin; free when there is none) and how long it lasts.
price: 5000
hours: 24
# Tell everyone online when a warp gets featured.
broadcast: true
teleport-requests:
# Seconds before an unanswered /tpa or /tpahere expires.
timeout-seconds: 60
# Show clickable [ACCEPT] [DENY] buttons in chat.
clickable-buttons: true
back:
# Allow /back to the place you died (permission jptp.back.ondeath).
on-death: true
# Tell players about /back after they die.
death-hint: true
# true = /back still works after the player logs out and back in.
keep-after-quit: false
rtp:
# Random teleport lands between min-radius and max-radius blocks from the centre.
min-radius: 250
max-radius: 2000
# Places tried before giving up (unsafe spots like lava and water are skipped).
attempts: 25
# Centre of the random area. Defaults to the world spawn when not set.
# center-x: 0
# center-z: 0
guis:
# false = homes/warps are listed in chat instead of menus.
enabled: true
# /homes, /warps and /playerwarps open a menu instead of a chat list.
open-on-list-commands: true
# Switch single menus off. Their layouts are in guis/<name>.yml.
menus:
homes: true
warps: true
player-warps: true
player-warp-manage: true
# First screen of /playerwarps. false = go straight to the list of all player warps.
player-warp-categories: true
# Seconds a player has to wait between uses. 0 = no cooldown.
# Players with jptp.bypass.cooldown skip all cooldowns.
cooldowns:
spawn: 0
home: 0
warp: 0
player-warp: 0
back: 0
rtp: 30
tpa: 5
# Charge money for teleports (needs Vault and an economy plugin).
# Players with jptp.bypass.cost teleport for free.
economy:
enabled: false
cost:
spawn: 0.0
home: 0.0
warp: 0.0
player-warp: 0.0
tpa: 0.0
back: 0.0
rtp: 0.0
sounds:
# false = no teleport sounds at all.
enabled: true
teleport: "ENTITY_ENDERMAN_TELEPORT:0.8:1.2"
countdown: "BLOCK_NOTE_BLOCK_HAT:0.6:1.4"
cancel: "ENTITY_VILLAGER_NO"
request: "BLOCK_NOTE_BLOCK_PLING:1:1.6"
set: "ENTITY_EXPERIENCE_ORB_PICKUP"
click: "UI_BUTTON_CLICK:0.5:1"
# Worlds a player must be standing in to use each feature, e.g. allowed: [world, world_nether].
# An empty list [] = every world.
worlds:
spawn:
allowed: []
home:
allowed: []
warp:
allowed: []
player-warps:
allowed: []
rtp:
allowed: []Support
Guides and the docs of every JP plugin are on the JP Plugins website. Questions, bugs or ideas? Join the JP Plugins Discord.
License
JPTeleport is free to use on any server, including servers that make money, but it is not open source. Don't reupload, sell or share modified copies of it. The full terms are in LICENSE.txt, which is also inside the jar.