Teleportation
Last updated Sep 18, 2026
Teleportation
Homes, warps, TPA, staff teleports, RTP, and world manager. Config: teleport.yml, rtp.yml, waypoints.yml. Modules: teleportation, homes, warps, tpa, spawn, death-settings, rtp, waypoints, world-manager.
Commands reference: Commands: Player, Commands: Admin.
Homes (Shared Invite)
| Action | Command |
|---|---|
| Set / delete | /sa sethome [name], /sa delhome <name> |
| Teleport / list | /sa home [name], /sa homes [player] |
| Rename / default / move | /sa home rename, setdefault, move |
| Share | /sa home invite <name> <player> |
| Unshare | /sa home uninvite <name> <player> |
| List shared with you | /sa home shared |
Invited players teleport via shared-home resolution (owner + name). Limits: soapsadmin.home.limit.<n>. Others' homes: soapsadmin.home.others. Claim/region checks: teleport.yml → claims; bypass soapsadmin.teleport.bypass-claims.
Warps
| Action | Command | Permission |
|---|---|---|
| Teleport | /sa warp <name> |
soapsadmin.warp |
| List / info | /sa warps, /sa warp info <name> |
soapsadmin.warp |
| Create / delete | /sa setwarp <name>, /sa delwarp <name> |
soapsadmin.setwarp |
TPA Cancel / Auto
| Command | Effect |
|---|---|
/sa tpa <player> / /sa tpahere <player> |
Request |
/sa tpaccept / /sa tpdeny |
Respond |
/sa tpacancel |
Cancel outgoing |
/sa tpa pending |
Pending list |
/sa tptoggle |
Block incoming |
/sa tpauto |
Auto-accept |
Warmup/cooldown: teleport.yml. Bypass: soapsadmin.teleport.bypass. Claim checks run before consuming a pending accept.
Staff Teleports / Jump / Offline
| Command | Usage | Permission |
|---|---|---|
/sa tphere <player> |
Pull player to you | soapsadmin.tphere |
/sa tpto <player> |
Go to player | soapsadmin.tpto |
/sa tppos <x> <y> <z> [world] |
Absolute coords | soapsadmin.tppos |
/sa tpall [world] |
All players to you | soapsadmin.tpall |
/sa jump |
Teleport to looked-at block | soapsadmin.jump |
/sa top / /sa bottom |
Highest / lowest block | soapsadmin.top / soapsadmin.bottom |
/sa tpoffline <player> |
Last logout location | soapsadmin.tpoffline |
/sa back |
Previous location (SoapsAdmin TPs, RTP, world TP, portals, death; in-memory until logout) | soapsadmin.back |
/sa biome <biome> |
Find and teleport to a biome | soapsadmin.biome |
/sa spawn [player] |
Server spawn | soapsadmin.spawn / spawn.others |
/sa setspawn / /sa delspawn / /sa setfirstspawn |
Server spawn points | soapsadmin.setspawn |
/sa worldspawn |
Current world's spawn | soapsadmin.worldspawn |
/sa setworldspawn |
Set current world's spawn | soapsadmin.setworldspawn |
Server spawn vs world spawn
SoapsAdmin has two spawn systems. They are independent.
| Server spawn | World spawn | |
|---|---|---|
| Commands | /sa setspawn, /sa spawn, /sa setfirstspawn, /sa delspawn |
/sa setworldspawn, /sa worldspawn |
| Storage | plugins/SoapsAdmin/data/server/spawns.yml |
Bukkit / vanilla world spawn (level.dat) |
| Scope | One (or first-join) point used across the server | Per world you are standing in |
| Typical use | Lobby / hub for /sa spawn and death respawn |
Entry point for that world, /sa world tp, new world create |
/sa spawn never uses the Bukkit world spawn. /sa worldspawn never reads spawns.yml.
Death respawn at the server spawn is controlled by death-settings.spawn-respawn in teleport.yml (module death-settings). New worlds created with the world manager get a Bukkit world spawn set on create; overwrite it with /sa setworldspawn.
RTP
| Command | Usage | Permission |
|---|---|---|
/sa rtp |
World picker GUI (or current world if GUI off) | soapsadmin.rtp |
/sa rtp <world> |
Random teleport into that world | soapsadmin.rtp |
/sa tprandom / /sa tp random |
Teleport to a random online player | soapsadmin.tprandom |
/sa tprandom cycles through online players before repeating the same target.
How search works
- Samples random X/Z within
min-radius–max-radius(from spawn, or from you whensame-world-from-playerand same world). - If the chunk is unloaded and
load-chunks: true, SoapsAdmin loads/generates it, then checks height, biomes, unsafe blocks, claims. - On success, teleport warmup/cooldown from
teleport.ymlstill apply; destination chunks are preloaded (3×3) before you arrive.
| Platform | Chunk load during RTP |
|---|---|
| Paper | Async (getChunkAtAsync). Preferred. |
| Spigot | Sync getChunkAt on the main thread. Works, but may hitch under heavy generation. |
Config: rtp.yml (load-chunks, max-pending-chunk-loads, radii, Y bounds, fallback pass). Cooldown bypass: soapsadmin.rtp.bypass-cooldown. Claim blocking: teleport.yml → claims.block-rtp-in-claims. Placeholder: %soapsadmin_rtp_cooldown%.
If search fails with CHUNK_NOT_READY and chunksLoaded=0, ensure settings.load-chunks: true in the server rtp.yml and update to 1.7.0+.
World Manager
| Command | Usage | Permission |
|---|---|---|
/sa world list |
List worlds | soapsadmin.world / worldmanager |
/sa world tp|create|load|unload ... |
Manage worlds | soapsadmin.worldmanager |
/sa world fixgenerator <name> |
Reattach void/custom generator after a bad boot load | soapsadmin.worldmanager |
Module: world-manager. Settings: server.yml. New worlds get a Bukkit world spawn set on create (void: bedrock platform at 0,64,0; other types: surface at the generator spawn). Use /sa setworldspawn to overwrite it.
Void worlds
Void worlds use the named generator SoapsAdmin:void (saved into level.dat) so Paper/Spigot reattach it on restart. Meta also lives in plugins/SoapsAdmin/worlds.yml as generator: VOID.
If land suddenly appears (chunk walls of normal terrain):
- Confirm
worlds.ymlhasgenerator: VOIDfor that world. - Run
/sa world fixgenerator <world>(unload → reload with void generator). - Already-generated terrain stays in
region/. To wipe it: unload, delete the world'sregion/folder (optionally keep other data), then/sa world load <world>. - Do not put the void world in
bukkit.ymlwith a different generator.
Waypoints
/sa waypoint opens the waypoint list. Create waypoint places one at your feet, then opens the edit GUI (rename, move here, marker, color). You can still use /sa waypoint set <name> from chat.
Right-click a waypoint to track it. A boss bar at the top shows the name and how many meters away you are. The bar drains as you get closer. When you walk into settings.arrive-radius (default 3 blocks), the bar goes away and you get You reached waypoint <name>. Right-click again, or Stop Tracking in the GUI, to cancel.
Marker names float above the block. In the edit GUI, open Label style to change brightness, background plate, see-through, shadow, bold, and size. Server defaults live under display.label in waypoints.yml. If an old waypoints.yml is missing the new keys, jar defaults still apply: bossbar-tracking: true, bossbar-full-distance: 100. Optional action bar: use-player-tracking: true.
Teleport, track, and display permissions: soapsadmin.waypoint.*. Config: waypoints.yml.