An event or interaction is only available when multiple prior conditions are all simultaneously true.
Actions must happen in order: activating the runes 1→2→3 unlocks the prize, but pressing one out of order resets the whole sequence.
This is flag gating with an AND: an action unlocks only when several conditions are simultaneously true. The architecture is identical — just a compound check.
All conditions live in the same flag store. A multi-step gate just reads several keys at once before allowing the payoff.
func can_open_vault():
return flags.get("power_on") and flags.get("code_known") and inventory.has("keycard")Store each interaction's required-flag list as data so the dependency is declared, not buried in branching code.
class_name Gate extends Resource
@export var requires: Array[String]
func met(flags): return requires.all(func(k): return flags.get(k, false))Re-check the compound gate whenever any flag flips, so the moment the last condition lands, the dependent event opens on its own.
GameState.flag_changed.connect(func(_n,_v):
if can_open_vault(): vault.unlock())In short: Multi-condition flag check: check_flag(A) and check_flag(B) and has_item(C) before enabling
16 catalogued game(s) use this mechanic, spanning 1987–1999.
▶ Explore Sequence Dependency interactively — see every game + the Godot system