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 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:
You can scope it per world by appending the world name:
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 shopalways 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,
/setpwarprefuses until they delete one or you raise theirpwarp.limit.<n>. - The GUI gate is separate. Someone can hold
uxmessentials.pwarp.useto visit warps yet be denied the browse GUI ifuxmessentials.pwarp.guiis withheld.
Next Steps¶
- 🏠 Homes & Warps Commands - The full command reference
- 📍 Warps - The staff-owned, server-wide counterpart
- 🏠 Homes - The fully-private counterpart
- 🔐 Permission Reference - Quota tiers and bypass nodes
- ⚙️ Per-Module Config - The
modules/playerwarps/config.confkeys