IgniteStasisFix
Stasis chambers that actually survive Folia.
Paper & Folia • 1.21+
⛓ The problem
On Folia, an ender pearl parked in a stasis chamber gets deleted the moment its owner changes dimension (Folia issue #421). The pearl vanishes, the chamber goes dead, and the classic "pull me back home" trap stops working. Flowing water and bubble columns can also shove a real pearl entity out of the chamber.
✔ The fix
IgniteStasisFix stops trusting the fragile pearl entity. The stored stasis location is authoritative - once a chamber is registered, the mechanic keeps working even after the server discards the physical pearl. The pearl you see floating is a physics-free ItemDisplay, so water can't push it and the Folia deletion bug can't touch it.
Fully Folia-native: every pearl monitor runs on the pearl's region thread, every teleport on the player's, block reads hop to the block's region. No cross-region access, no main-thread assumptions.
★ Features
- Survives dimension switch - the chamber keeps pulling its owner back after the pearl entity is deleted.
- Survives death - in-flight pearls drop on death, but a registered chamber stays and yanks you home after respawn.
- Smart detection - a pearl only becomes a stasis after it settles in water (still water, bubble column, or waterlogged block). Pearls in flight or wedged against a dry wall are ignored.
- Collision-verified triggers - redstone / piston / trapdoor toggle only arms the check; the chamber fires only if a block physically intersects the pearl one tick later. Unrelated redstone in range won't dump your traps.
- Cross-dimension chunk keep-alive - each chamber force-loads its own chunk so the contraption keeps ticking (and can pull you back) while you're in the Nether or End.
- Offline-safe - trigger an offline owner's chamber and the release is queued; they get teleported on next join.
- Floating visual - ownerless display pearl with a gentle configurable bob at the water surface. Never teleports anyone, auto-respawns if the server removes it.
- Config-driven - every radius, tick threshold, trigger type, and visual toggle is tunable. MiniMessage messages.
⚙ How it works
- Player throws a pearl → it's tracked per pearl id (you can hold several chambers at once).
- Pearl monitored each tick. Once it stays settled near an anchor for minimum-stationary-ticks and sits on a liquid anchor, it registers as a stasis.
- The real pearl is consumed and replaced with a display marker (kills Folia's mis-teleport visual glitch on dimension switch).
- A redstone/piston/interact event near a stored stasis schedules a collision check one tick later. If a solid block (or a closed trapdoor/door/gate) now occupies the pearl's space → teleport fires.
- Owner online → async teleport home. Owner offline → queued as pending-release, delivered on join.
⌨ Commands & Permissions
| Command | Permission | Description |
|---|---|---|
| /stasis list | ignitestasisfix.admin.list | List every stored stasis (owner, world, coords, pending state) |
| /stasis clear [player] | ignitestasisfix.admin.clear | Clear all stored stasis, or just one player's |
| /stasis reload | ignitestasisfix.admin.reload | Reload config.yml |
🛠 Configuration
YAML:
# A pearl must be observed this many ticks before it can count as a stasis.
minimum-tracked-ticks: 30
# ...and stay settled near one spot this many ticks to register.
minimum-stationary-ticks: 15
# How far a pearl may drift from its anchor and still count as settled.
anchor-radius: 0.5
# Radius around a trigger source that releases a nearby stasis. Floor 2.5.
activation-radius: 3.0
# Which block-update sources may release a stasis.
triggers:
redstone: true
piston: true
interact: true
consume-registered-pearl: true # remove the owned pearl once registered
respawn-visual-pearl: true # ownerless display pearl for looks
visual-bob: true
visual-bob-height: 0.25
keep-stasis-on-pearl-removal: true # survive the dimension-switch deletion
require-liquid-anchor: true # only register pearls settled in water
purge-pending-release-on-startup: true
keep-chamber-loaded: true # force-load chamber chunks so triggers tick
chamber-reconcile-ticks: 100
- Server: Paper or Folia 1.21+
