
A Minecraft plugin for Paper 1.21+ that implements a pearl stasis chamber system.
Preview:

https://youtube.com/shorts/u7McqpqFfG0?feature=share
How to use:
1) Build a stasis chamber

2) throw in a pearl

3) move 2-8 blocks away from the stasis (configurable in config.yml)
Then do a shift+right click

4) You successfully binded the pearl to the fishing rod.
now to teleport to the stassis just do a right click with the rod.

Commands:

PearlShare
Commands: /pearlshare <player>, /pearlunshare <player>, /pearlshared
Permission: betterstasis.share (default: true)
Lets you grant other players the ability to teleport using your bound rod.
/pearlshare <player>— gives a player access to your rod/pearlunshare <player>— removes their access/pearlshared— lists everyone currently sharing your rod
Up to 5 players can share your rod by default (configurable via max-shared-players). If economy is enabled, both you and shared players are charged on teleport. The rod's lore updates to show the current share count.
PearlToggle
Command: /pearltoggle
Permission: betterstasis.toggle (default: true)
Toggles the visibility of coordinates and enchantment glint on your bound rod.
Purely cosmetic — the rod works identically either way. Useful for keeping your inventory clean or hiding pearl locations from other players who might glance at your screen.
Integrations:
Vault (Economy)
Soft-depend — plugin works without it. If present and economy.enabled: true, charges players on bind and teleport. Teleport cost = base-cost + (distance × cost-per-block), capped at max-cost. Cross-world costs more. Failed teleports are refunded automatically.
Requires any economy plugin behind Vault (EssentialsX, CMI, etc.).
economy:
enabled: false
teleport:
base-cost: 10.0
cost-per-block: 0.5
max-cost: 1000.0
binding:
cost: 5.0
Support
Report issues at: https://discord.gg/CUQdkPzGKb
All Versions
+ Add VersionThree new features: economy integration, pearl sharing, and toggleable rod info.
Vault support for charging players to bind and teleport.
How it works:
- Flat cost to bind a pearl to a rod
- Teleport cost = base cost + (distance × cost per block), capped at max
- Cross-world teleports cost more
- If teleport fails, you get refunded automatically
- Without Vault installed, everything still works - economy features just won't be active
Config:
economy:
enabled: false
teleport:
base-cost: 10.0
cost-per-block: 0.5
max-cost: 1000.0
binding:
cost: 5.0
Needs Vault + any economy plugin (EssentialsX, CMI, etc.)
Share your bound rods with other players so they can teleport too.
Commands:
- /pearlshare <player> - give someone access to your rod
- /pearlunshare <player> - remove their access
- /pearlshared - see who can use your rod
Max 5 shared players by default (configurable). Both you and shared players get charged for teleports if economy is on. Rod lore shows how many people it's shared with.
Permission: betterstasis.share (default: true)
Hide/show the coordinates and enchantment glint on your rods.
Command:
- /pearltoggle - switch between hidden and visible
Rod still works when hidden - this is purely cosmetic. Good for keeping inventory clean or hiding pearl locations from other players.
Permission: betterstasis.toggle (default: true)
All data stored in rod's PDC. Old rods without an owner can be used by anyone (backward compatible). Everything is config-driven and optional.
New config sections:
settings:
player-binding:
clear-after-teleport: true
pearl-sharing:
max-shared-players: 5
Dependencies:
- Vault API (optional, soft-depend)
Added:
- Vault economy integration
- Pearl sharing system + 3 commands
- Rod info toggle command
- Owner assignment on binding
- Permission checks for rod usage
- Sharing count in lore
- Refunds on failed teleports
Modified:
- Binding now sets owner
- Teleport checks permissions first
- Lore includes sharing info
- Clearing removes all new data
The stasis system now supports binding pearls to specific players with configurable remote teleportation.
Configuration (config.yml)
Two new settings under settings.player-binding:
player-binding:
# When enabled, using a rod teleports the player who bound it (not the user)
# This allows remote teleportation of the bound player
enable-remote-teleport: false # Set to true to enable
# When enabled, the binding is cleared after each teleport
# When disabled, the binding persists and can be used multiple times
clear-after-teleport: false # Set to true to clear binding after use
How It Works
1. Pearl Binding: When a player binds a pearl (Shift + Right-click with fishing rod), their UUID is stored in the rod
2. Rod Display: The fishing rod now shows who bound it in the lore: "Bound by: PlayerName"
3. Remote Teleport (when enable-remote-teleport: true):
- When anyone uses the fishing rod, the bound player gets teleported (not the rod user)
- Both players receive feedback messages
- The bound player must be online for this to work
- The pearl binding stays intact after teleportation
- Can be used multiple times
- Perfect for respawn points or safe zones
show-bound-indicator: true
- When true (default): Rod shows enchantment glint and lore with pearl location
- When false: Rod looks like a normal fishing rod even when a pearl is bound
2. PearlDataUtil.java - Updated binding logic:
- The bindPearlLocation method now checks the config before adding visual indicators (src/main/java/dev/xoperr/betterstasis/util/PearlDataUtil.java:64-81)
- The pearl location data is still stored in the rod's PersistentDataContainer regardless of the setting
- Visual indicators (lore and enchantment glint) are only added if show-bound-indicator: true
How to Use:
To make rods look normal when bound, just set this in your config.yml:
settings:
show-bound-indicator: false
The rod will still function exactly the same (you can still teleport with it), but it won't have any visual indicators that a pearl is bound to it.
New Features Added:
- /pearl coords show - Shows coordinates on fishing rods
- /pearl coords hide - Hides coordinates on fishing rods