Respect block protection events and existing instability protection for frames, portal surfaces, and arrival areas.
Release any temporary chunk tickets and avoid unattended permanent force-loading.
Cover invalid/removed destinations, broken frames, and old worlds lacking portal data with focused and manual regression checks.
Depends on the core crystal-portal issue.
## Goal
Make the new crystal-portal system safe and reliable after its core behavior is implemented in the portal issue.
## Acceptance criteria
- [ ] Persist and recover portal endpoints/links across full server restart and Age reload without duplicating or orphaning portals.
- [ ] Verify simultaneous multiplayer travel, cross-dimension return paths, cooldown/loop protection, and safe arrival footing.
- [ ] Respect block protection events and existing instability protection for frames, portal surfaces, and arrival areas.
- [ ] Release any temporary chunk tickets and avoid unattended permanent force-loading.
- [ ] Cover invalid/removed destinations, broken frames, and old worlds lacking portal data with focused and manual regression checks.
Depends on the core crystal-portal issue.
dnorberg
added this to the Milestone 7 — Structures and polish milestone 2026-10-12 15:16:21 -04:00
Source audit: Milestone 7 Legacy audit. Keep receptacle/book ownership and connected-path behavior through restart, while adding modern protection checks, bounded chunk activity, loop prevention, multiplayer, and invalid-destination handling.
Source audit: [Milestone 7 Legacy audit](https://truenas-scale.tail180fb1.ts.net:8443/dnorberg/rivencraft/src/branch/main/docs/LEGACY_M7_AUDIT.md). Keep receptacle/book ownership and connected-path behavior through restart, while adding modern protection checks, bounded chunk activity, loop prevention, multiplayer, and invalid-destination handling.
Implemented and verified in V0.6.3.4 (commit 4a87c9f). The restart failure came from reading a saved BlockPos as a compound tag instead of an integer array; existing ownerless portal cells now recover from their intact book receptacle. The player confirmed an in-game pass, and all 62 GameTests pass.
Implemented and verified in V0.6.3.4 (commit 4a87c9f). The restart failure came from reading a saved BlockPos as a compound tag instead of an integer array; existing ownerless portal cells now recover from their intact book receptacle. The player confirmed an in-game pass, and all 62 GameTests pass.
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
Goal
Make the new crystal-portal system safe and reliable after its core behavior is implemented in the portal issue.
Acceptance criteria
Depends on the core crystal-portal issue.
Source audit: Milestone 7 Legacy audit. Keep receptacle/book ownership and connected-path behavior through restart, while adding modern protection checks, bounded chunk activity, loop prevention, multiplayer, and invalid-destination handling.
Implemented and verified in V0.6.3.4 (commit
4a87c9f). The restart failure came from reading a saved BlockPos as a compound tag instead of an integer array; existing ownerless portal cells now recover from their intact book receptacle. The player confirmed an in-game pass, and all 62 GameTests pass.