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

10 catalogued game(s) use this mechanic, spanning 1982–1998.

Related puzzle mechanics

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