Skip to main content

Component Synchronization

Introduction

Sync lets you pair two components so they share state automatically. Move a mirror, rotate a concentrator or resize a gravitational sphere, and its synced partner mirrors the change in real time — no redstone, no commands, no scheduled actions.

Typical use cases:

  • Symmetric puzzles — keep two halves of a room visually identical regardless of player input.
  • Mirrored mechanisms — when one mirror swings left, its twin swings left too.
  • Coordinated multi-laser challenges — rotate one laser sender and have a second sender follow the same target arc.

Syncs are bidirectional: there is no master and no slave. Acting on either end propagates to the other.

Sync types

Each sync between two components is stored as one or more unit sync types. Each unit type requires both components to expose a specific capability:

Unit typePropagatesRequires on both components
ROTATION_HORIZONTALLEFT and RIGHT rotationsA rotatable component
ROTATION_VERTICALUP and DOWN rotationsA rotatable component
MIRRORMirror placement, mirror removal, and mirror color changesA component that holds a mirror
SIZEGravity strength changesA Gravitational sphere on each side

Sync presets

When creating a sync, you pick a preset — a UI shortcut that may expand into one or more unit types. The presets available for a given pair are filtered automatically based on the unit types both components support.

PresetExpands to
Rotation (Horizontal)ROTATION_HORIZONTAL
Rotation (Vertical)ROTATION_VERTICAL
Rotation (All)ROTATION_HORIZONTAL + ROTATION_VERTICAL
MirrorMIRROR
Mirror + Rotation (All)ROTATION_HORIZONTAL + ROTATION_VERTICAL + MIRROR
SizeSIZE

Supported components

Sync compatibility is determined per pair, by which capabilities both sides expose:

CapabilityComponents
Rotatable (ROTATION_* syncs)Laser sender, Laser receiver, Concentrator, Mirror support, Bonus
Mirror container (MIRROR sync)Mirror support, Reflecting sphere, Filtering sphere
Gravitational sphere (SIZE sync)Gravitational sphere

A pair can hold multiple unit types at once (e.g. a Mirror Support synced to another Mirror Support can share rotations and mirror placements simultaneously).

How to create a sync

There are two entry points, both detailed in the Menus hierarchy:

  1. Sync Tool on the main shortcut bar — right-click any component to open its Syncs menu.
  2. ⟳ Syncs entry inside the Component configuration menu.

From the Syncs menu, click Add sync to enter the Sync creation shortcut bar, aim at the second component and right-click it to open the Select sync type menu.

How to manage syncs

The Syncs menu for a component lists each sync as one entry showing the partner and the active unit types. From there you can:

  • Delete a single sync — click the corresponding entry's delete item.
  • Clear all syncs of the component — opens a confirmation menu so you don't wipe them by accident.

Deleting one of the two paired components also removes every sync that involved it.

N-way propagation

When you create a sync between A and B and either component already shares the same unit type with a third component, the Propagate sync? confirmation appears. Two choices:

  • Propagate to all related components — also creates the sync between A or B and every third-party component already linked through that unit type. Use this to keep an entire group of mirrors or laser senders behaving as one.
  • Pair only these two components — keeps the new sync isolated to the chosen pair.

Propagation is offered per unit type: a preset that expands to several units (e.g. Mirror + Rotation (All)) may trigger the prompt for one unit and skip it for another.

Sync visualization

While holding the Sync Tool, every active sync in the area is displayed as a chain of segments connecting the two components, with a label at the midpoint showing the active preset(s). The visualization is shown only to you and updates as you create or delete syncs.

This makes it easy to spot orphan or overlapping syncs in a complex puzzle without opening any menu.

Limitations

  • Same area required — both components must belong to the same puzzle area. Cross-area syncs are rejected.
  • Bidirectional, not master/slave — acting on either end always propagates to the other. There is no way to make propagation one-way.
  • Editor actions don't propagate — when you rotate or place a mirror through the editor shortcut bars, the change stays local to the component you edited. This is intentional: it lets puzzle creators set up each component independently. Sync only fires for gameplay actions, scheduled actions and command-driven changes — i.e. anything that affects what players experience at runtime.
  • Color compatibility on mirror sync — when a mirror is placed on the source, the partner only mirrors the placement if it supports the same color. Incompatible colors are silently skipped on the partner; the original placement is never cancelled.
  • Unit types, not presets, are stored — once created, a sync is remembered as its individual unit types. The Syncs menu collapses them back into the most compact preset set for display (e.g. ROTATION_HORIZONTAL + ROTATION_VERTICAL shows up as Rotation (All)).