The same events, twice

One claim, 8 characters — as flags, and as this runtime

The left column is a set of booleans: the way NPC knowledge is normally represented. It is not a competitor and not a straw man — the implementation is unscripted/flat.py, about eighty lines, and it is fed the identical events. Both columns answer from their own state.

Ask both of themFlags Unscripted
Who knows it?all 8 of them — the news fired, so the flag is set7 of 8; Officer Kane was not listening to that channel and never hears it
A boolean is set at a moment, for everyone who can read it. Attention, distance and whether a character was even in the room are not representable.
Who told Dima?nowhere to put itVee, at hop 1, tracing back to the original incident
This is the row everything else rests on. Without it, repetition cannot be discounted, a liar cannot be exposed, and no character can answer 'who told you that'.
How sure is Honce?knows it — there is no third state0.61, on 2 pieces of evidence
Doubt is not a smaller boolean. A character who is unsure either knows or does not, so they cannot be talked round, and better evidence cannot arrive later.
Which version does Honce hold?nowhere to put itone that changed on the way, still traceable to the true original
There is one fact. A version that lost a detail in the retelling is either the same flag or a second fact nobody authored.
Did anyone lie about it?nowhere to put it — an honest report and a lie set the identical flagMr. Okada asserted it while believing the opposite, to 4 listeners, each recording him as the source
Deception is not a special case here: a lie is a commitment whose proposition differs from the speaker's belief, and the runtime knows which is which.
The player proves the liar lied. What changes?nothing — 0 flags move4 beliefs recomputed back toward not knowing; 0 of them had a second source and were left standing
This is the one that costs a game the most. Exposing a liar cannot undo what he convinced people of unless something recorded that he was the reason they believe it.
The player asks the same character four times.no change — a boolean cannot be set twice0.504 → 0.506. Four answers, one origin, and the correlation discount does the rest
The failure mode a flag avoids by accident and a naive confidence score walks straight into: hearing one witness four times is not four witnesses.
Does anyone ever forget?no — 0 flags decayby the end, 7 of 7 can no longer recall being told, and still believe it
Memory that only grows is why a generative character can quote something from forty hours of play ago as though it happened this morning.
How much state per character?one bitbeliefs, provenance, memory and affect
Measured at about 76 KB per character in a saved game. Fine for a cast of hundreds; not free, and not the right answer for a character who only needs a door flag.
How fast to check?a set lookupa read model, kept warm for who matters
2,000 characters across 400 places cost 141 ms per simulated hour. Not a set lookup, and it should not be used like one: keep flags for doors and gates.