Two puzzle components, two puzzle types. PuzzleSwitchChecker fires when all switches reach their required states — order doesn't matter. PuzzleSequenceChecker fires when switches are activated in the exact right order.
Both use PuzzleSwitch objects as inputs. The difference is what they check.
onPuzzleUnsolved.Three switches, each must be in the right state. Wire PuzzleSwitchChecker to open a door when they all match.
Switch ID (e.g. Switch1, Switch2, Switch3). Set Number of States to 2 for simple on/off switches. Wire your interaction input → PuzzleSwitch.Activate() on each.Required State (0 = off, 1 = on). Leave Automatic Checking enabled — it watches for changes without needing an extra wire.PuzzleSwitchChecker.onPuzzleSolved → ActionAnimateTransform.Play() to open a door, or GameStateManager.Victory() for a win state. Use onFirstTimeSolved instead if the reward should only happen once even if the player solves it multiple times.2/3 correct — puzzle not yet solved. When Switch C reaches state 1, onPuzzleSolved fires.
Same PuzzleSwitch objects, different checker. The player must activate them in the order you define. A wrong activation resets progress.
Activate() wired to its interaction input. The sequence checker listens to onActivated internally, so you don't need to wire anything on the switches themselves.onSequenceSolved to the reward. Wire onMistake → ActionPlaySound.PlaySound() for an error sound. Wire onProgress → ActionDisplayText.Show() to show "Step 2 of 4".onProgress to show a step counter. Use onMistake to play an error sound or flash the screen. Without feedback, sequence puzzles feel broken to players who don't know if they're making progress.