Logic DeductionPuzzle

Solution requires synthesizing information from multiple sources and acting on a conclusion the game never states explicitly. Design pattern rather than a distinct Godot system — the deduction happens in the player's head.

The answer is never stated — each clue rules suspects out by a property until only one remains, deduced by elimination.

How logic deduction works in Godot

There's no DeductionManager — the deduction happens in the player's head. The game only tracks clue flags and silently checks them at the conclusion, never telling the player which were needed.

Dictionaryprimitive

Set a clue flag whenever the player sees the relevant information. The flag records exposure, not understanding — the leap is theirs to make.

func on_clue_seen(id):
    clues[id] = true   # player may or may not connect it

Resourceprimitive

The conclusion action stores its required clues as data, but that requirement is never surfaced — the player acts on a hunch, and it either works or doesn't.

class_name Conclusion extends Resource
@export var needs_clues: Array[String]   # hidden from the player

Signalsprimitive

On the attempted action, silently test the clue flags; emit succeeded or failed with no explanation of what was missing.

func attempt(c):
    if c.needs_clues.all(func(k): return clues.get(k, false)):
        succeeded.emit()
    else: failed.emit()   # no hint about which clue

In short: No DeductionManager node. Clue flags set on dialogue completion or object inspection; conclusion action only succeeds if required clue flags are all set — but the game never tells the player which flags are needed.

Retro games that use logic deduction

9 catalogued game(s) use this mechanic, spanning 1987–1998.

Related puzzle mechanics

▶ Explore Logic Deduction interactively — see every game + the Godot system