Changelog
Last updated Oct 28, 2026
Changelog
Version history for SoapsTeleporter.
1.0.7
Build and packaging release. Owner wiki restructured to the SoapsUniverse docs pattern (Config Reference, intent pages, setup leaves, Troubleshooting, Upgrading).
1.0.6
Reliability and permission/config polish.
Critical / behavior fixes
/st shapepreview undorestores world blocks fromplace(not only preview particle history)- Bidirectional rectangular portals: thin-wall detection matches full block depth; move-scan no longer skips non-custom portals
- Selection marking is outline-only again (no density/interior fill); live portal particles start after create
- Multi-destination portals work without a paired
connectedPortal(routing list alone is enough) /st unlinkclears multi-destination routes and usesst.command.unlink- Economy
payment-timing(before/after) andrefund-on-failureare honored for standard + RTP teleports - Portal world/player creation limits from config are enforced; creators are stored as
ownerUUID - Custom-shape portals are included in frame/radius protection
- RTP safe-location search uses
rtp.retry.max-attempts - FIXED/RANDOM routing strips
name|weight/name|permissionsuffixes before portal lookup - Warmup start no longer treated as a successful teleport (ENTER deferred; EXIT eligibility fixed)
- Removed duplicate ENTER command execution from PlayerListener (TeleportManager owns teleport pipeline commands)
- Failed teleports / cancelled warmups allow in-portal retry
- Global warmup cleared on cleanup and failed post-warmup teleport
- GUI/chat condition tokens enforced:
SNEAK,FLYING,SOLO,SUN,LEVEL,PLAYERS_MIN/MAX,PLAYTIME,WORLD,BIOME,GAMEMODE,ADVANCEMENT - RTP portals run full
ConditionCheckerchecks - Rename updates
linkedDestinationsreferences; connect clears stale destination lists; unlink scrubs peer destination entries - PlaceholderAPI
%soapsteleporter_portals_nearest_distance%fixed - Cross-world block now shows a player message; chat-input cancel returns to the right manage screen
- One-way portals block use from the one-way portal itself (docs-aligned); arrivals into one-way exits still work
- Custom-shape destinations land in interior blocks; move supports custom-shape reselection and safe chunk-index rollback
- GUI/manage delete removes commands/conditions by index (duplicate-safe)
- SetDestinations validates destination portal names exist
- RTP async failure resets teleport retry state (no soft-lock)
- Particle center null-guard; unload-world NPE guard in portal lookup
- Custom shape blocks reload from YAML map entries as well as Location objects
- Post-teleport payment failure (
payment-timing: after) rolls the player back to origin instead of granting a free teleport - Custom-shape entry uses full player AABB against computed interior/opening cells (not feet-only)
- Custom-shape interior prefers best projected mask + 3D enclosed flood-fill (no AND-of-all-masks / whole-AABB fallback)
- Custom→custom landing stays in interior; comprehensive search no longer rejects valid interior destinations
- Same-chunk move throttle skipped when custom-shape portals are present; orientation from frame thickness
- Chunk index includes every custom frame block's chunk
- Exit facing
DEFAULTauto looks out of the destination portal; relative approach angle whenpreserve-orientationis true /st setdirection DEFAULTworks (aliases AUTO/PLAYER/NONE); horizontal portals no longer block direction setting- Floor-pad (laying-down) portals: unified stand-on-pad detection, land on pad, surface particles, no instant bounce-back on arrival
- GUI polish: pitch/volume via setsound, condition delete-by-index, portal PDC clicks, empty states, DEFAULT/floor-pad labels,
/st listopens portal browser, admin Reset, chat-input returns to menu - Backend performance: async batched daily-usage I/O; coalesced portals.yml saves without re-read; live portal view (no per-tick ArrayList copy); protection via chunk index; custom-block view without clones; bounds/particle caches until invalidate; slim CacheManager; lazy DebugLogger on hot paths; single-pass render visibility count
- Creation polish: denser new-portal particles (2× air, min 8) + violet default DUST color; selection density preview; custom frame (purple) vs interior (cyan); clickable wizard actions +
/st add cancel - Custom oval/circle portals: seal diagonal ring gaps so interior detection works both ways; land just outside vertical destinations so return trips aren’t stuck “processed”
- Selection:
/st set p1|p2uses the same marking + ready actions as the wand; min portal size default 2; custom create rejects empty openings; cleaner wand/corner messages
Permissions and config
- Added
st.command.removecondition,st.protection.bypass,st.portal.limit.bypasstoplugin.yml /st debugacceptsst.command.debug/st.debug(not admin-only)- Documented missing adaptive density + permission-format keys; removed dead global RTP cooldown section
- Fallback
createDefaultConfig()aligned with shippedconfig.yml
Cleanup
- Noisy production
DEBUG:logger spam routed throughDebugLogger/ removed - Portal delete cleans linked destination entries that pointed at the removed portal
1.0.5
Messages and help polish release.
Production readiness (2026-06-11)
portals.ymlmerge-save with atomic disk write- Per-player YAML shards for portal cooldowns and stats
- RTP cooldown tracked per portal via
PlayerData - Thread-safe chunk portal index with copy-on-write rebuild
- Same-chunk micro-movements skip portal re-checks
- Warmup cancel on movement; chunk preload settings reload; GUI closed before config reload
- Quit handler evicts player shards and clears GUI/chat input state
- Condition and GUI chat prompts migrated to shared
SoapsChatInput api-version1.21.11; Folia not yet supported (folia-supported: falsedocumented)
Messages and help (1.0.5)
- Added
/st help <command>detail mode with clickable help navigation - Deterministic help pagination and improved tab completion (pages and command names)
- Help metadata for
shapepreview,setrouting,setdestinations, andaddcondition - Migrated player-facing strings for shape preview, routing, destinations, GUI chat input, and manage delete flows into
messages.yml - GUI item labels and lore now read from
gui.ymlwith Java fallbacks - Fixed
setdirectionsuccess message{direction}placeholder - Improved cross-world selection errors with world name placeholders
- Dynamic usage templates consistently include the
/stprefix - Routing and destination commands aligned with dedicated permissions
st.command.wandandst.command.addconditionpermission alignment;WandCommandaccepts legacyst.command.tool
1.0.4
Shape preview reliability and rendering polish.
- Complete outer frame generation; polygon presets draw edge outlines
- Plane-aware 2D vs 3D preview behavior; improved
random_riftcontinuity - Safer rotate, mirror, undo, and place workflow; place commits preview to world
- Batched block placement for performance
- Configurable default frame material:
portals.shape-preview.default-frame-material - Wand hints for shape preview after selecting positions
- Portal creation particle handoff improvements
1.0.3
Shape preview workflow polish.
/st shapepreviewis preview-first again (non-destructive)- Added
/st shapepreview placeand/st shapepreview place <material>to commit frame blocks only - Undo reverts preview state only, not world blocks
- Fixed square/rectangle generating perimeter frames instead of filled interiors
- Improved random rift framing on selection bounds
- Stabilized portal visibility checks for render gating
- Updated shapepreview permission to
st.command.shapepreview
1.0.2
GUI and shape builder reliability.
- Fixed duplicate portal deletion feedback in GUI confirm flow
/st shapepreviewbuilds actual frame structures in-world (OBSIDIAN frame, AIR interior)- Shape switching no longer overlaps wand selection markers
- Improved circle/oval and 3D ellipsoid shell generation
- Rotate, mirror, and undo update world frame placement to match preview
1.0.1
Major architecture and systems update.
- Modular
TeleporterRuntimeservice registry and metrics - Layered render engine with adaptive quality, culling, and sleep states
- Shape preview presets, rotate, mirror, undo, and
/st shapepreview - Condition expression parser with AND, OR, and NOT
- Multi-destination routing: fixed, random, weighted, permission
/st setroutingand/st setdestinations/st debug overlayruntime metrics- Portal render, preview, stabilize, and teleport prepare API events
1.0.0
Initial public release.
- Portal wand creation, connect, and standard two-way teleport
- Per-portal particles, sounds, costs, conditions, and commands
- RTP portals, warmup, cooldown, and protection
- Vault, PlaceholderAPI, WorldGuard, and Lands hooks
- Interactive management and backup tools
Still stuck? Ask about this page