
MultiView - Flashback Addon
Merges multiple Flashback replays from the same session into a single unified replay — an “omniscient observer” view combining the union of chunks, players, and events seen from each POV.
Список изменений
[0.3.5] — 2026-05-19
Hard block on merges that would silently produce broken output.
Added
OverlapValidator— pre-merge guard that probes each selected replay for itsClientboundSetTimePacketanchor, computes its server-gameTime interval ([start, start + totalTicks]), and checks every pair for non-empty intersection. If any pair is disjoint, the Merge button stays disabled and a localised tooltip explains why. Wired into bothMergeUi-classic(1.21.x) andMergeUi-modern(26.1+).multiview.button.merge_selected.no_overlapi18n key inen_us.jsonandfr_fr.json.
Fixed
- Validator transparently mounts
.flashbackzip files viaFileSystems.newFileSystem(...)instead of expecting a pre-extracted folder — matches the on-disk layout Flashback actually produces.
Why
A real user case surfaced the bug: someone ran a merge across two .flashback files recorded 11 days apart. The merge succeeded but produced visually broken output — entities vanished, others stuck with default rotations and no equipment. Root cause: server-side entity IDs are local to each recording client and there is no UUID-based matching for non-player entities, so any merge of non-overlapping POVs guarantees cross-source ID collisions. The fix is defensive: refuse upfront rather than emit silent garbage.
Internals
- Validation is memoised per selection (
Map<Set<Path>, Result>) so checkbox toggles stay responsive. - Returns
UNKNOWN(notNO_OVERLAP) when an anchor is missing or the file cannot be read — we never block what we cannot verify.
