Skip to content

Player Warps

Player warps let ordinary players publish their own destinations for others to visit — a shop, a farm, a build to show off. They sit between homes (fully private) and server warps (staff-owned, server-wide): a player warp is owned by the player who created it, counts against that player's personal quota, and can be public or private.

The key design difference from server warps is the identity. A player warp is keyed by (owner, name), so two different players can each own a warp called shop without clashing. When two owners share a name, callers disambiguate with the owner argument.

Player warps are DB-backed, so they survive world rollbacks and restarts. The module root is /pwarp, with /setpwarp for creation and /pwarps for listing.


Creating & Visiting

Action Command Permission
Create / re-anchor at your position /setpwarp <name> uxmessentials.pwarp.set
Visit (your own, or someone's public one) /pwarp <name> [owner] [password] uxmessentials.pwarp.use
Open the management list GUI /pwarp uxmessentials.pwarp.use
List warps /pwarps [player] uxmessentials.pwarp.list
Delete one of yours /pwarp del <name> uxmessentials.pwarp.delete

Because names collide across owners, /pwarp <name> visits your warp of that name; add the owner to reach someone else's: /pwarp shop Steve. If the target warp has a password, append it: /pwarp shop Steve hunter2.


The Management GUI

Running /pwarp bare opens the player-warp management list (permission uxmessentials.pwarp.use, GUI gate uxmessentials.pwarp.gui). From there a player browses available warps and manages their own — visibility, lock, password, editing, and rating are all reachable without memorising subcommands, mirroring the GUI-first approach used for homes and server warps.

The verb-style subcommands still exist for players who prefer typing:

/pwarp visibility public|private <name>
/pwarp lock|password|edit|rate|rating …

/pwarp visibility needs uxmessentials.pwarp.public; the remaining management verbs run under the /pwarp root (uxmessentials.pwarp.use).


Public vs Private

Visibility is the heart of player warps:

Visibility Who can visit
Public Anyone (subject to lock/password) — appears in others' /pwarps <owner> and the browse GUI.
Private Only the owner.

A player toggles it with /pwarp visibility public <name> / /pwarp visibility private <name>. This is how a player keeps a warp hidden while they build it, then flips it public for launch day.

Lock, password, and rating work the same way they do for server warps — locking closes a warp temporarily, a password shares it selectively, and ratings (1–5) let visitors vote.


Quotas: How Many Player Warps?

Each player's allowance is a quota, resolved through numbered permission nodes exactly like home limits:

uxmessentials.pwarp.limit.<n>

You can scope it per world by appending the world name:

uxmessentials.pwarp.limit.10.world

The highest matching value applies (or stacks, if configured), and imported/created warps are clamped to the quota — a player cannot exceed their allowance by any route.


Player Warps vs Server Warps

Player Warps Server Warps
Created by Any player (quota-limited) Staff
Ownership The creating player The server
Keyed by (owner, name) name
Visibility Public or private (owner's choice) Server-wide
Counts against a quota Yes (pwarp.limit.<n>) No
Command root /pwarp, /setpwarp, /pwarps /warp

Use server warps for infrastructure (spawn, arenas, markets) and player warps for player-generated content (shops, showcases, community farms).


Permissions & Quotas at a Glance

Node Purpose Default
uxmessentials.pwarp.use Visit warps; run management verbs true
uxmessentials.pwarp.set Create / re-anchor a warp
uxmessentials.pwarp.list List warps
uxmessentials.pwarp.delete Delete own warps
uxmessentials.pwarp.public Change a warp's visibility
uxmessentials.pwarp.gui Open the management GUI
uxmessentials.pwarp.limit.<n> (opt. .<world>) Player-warp quota
uxmessentials.playerwarp.bypass.lock / .password / .safety Bypass gates

Bypass nodes use the playerwarp prefix

The bypass nodes are uxmessentials.playerwarp.bypass.*, spelled out in full — not pwarp. The command nodes use pwarp; the bypasses use playerwarp.


Tips & Gotchas

  • Name collisions are by design. Two players can both own shop; the owner argument (/pwarp shop Steve) resolves the ambiguity. Bare /pwarp shop always means your own.
  • Private ≠ locked. A private warp is invisible to others; a locked warp is visible but closed. Use the one that fits.
  • Quotas clamp on create. If a player is at their limit, /setpwarp refuses until they delete one or you raise their pwarp.limit.<n>.
  • The GUI gate is separate. Someone can hold uxmessentials.pwarp.use to visit warps yet be denied the browse GUI if uxmessentials.pwarp.gui is withheld.

Next Steps