Using character card secrets so an NPC stays in character

An NPC with a secret is more interesting than one without, and also more fragile. The secret has to shape how the character behaves while staying out of the Player's reach until it is earned. Most authoring problems here are not about the secret itself. They come from where it is written down and what it is allowed to do to the character's everyday behaviour.
Split the secret from its symptoms
Take a ferry keeper called Orsolya. The secret: years ago she took payment to let a particular passenger cross at night, and that passenger has not been seen since. If you write one facet that says all of this, you have a single block of text that either stays hidden or leaks as a whole.
Write two things instead.
The secret itself: she took payment to ferry someone across at night and suspects what became of them.
The symptoms, written as ordinary, public behaviour: she refuses night crossings, she keeps her eyes on the far bank when the fog comes in, and she changes the subject when anyone mentions the old toll road.
The symptoms are what a Player can observe, question and piece together. The secret is what makes those symptoms make sense. A Player who notices three symptoms and asks the right question has done real detective work, and the story can pay that off.
Put it in the right category
On Fabulator, a character card is made of facets, each filed under a category such as physical, personality, voice, backstory, relationship, or secret. The category matters because the secrecy rules are bound strictly to it. A facet filed under secret is gated. A facet filed under custom, or anything else, is treated as ordinary context, even if its text contains the exact same information.
That is the most common mistake worth guarding against. If you write the ferry keeper's secret into a custom facet because it felt like flavour, it is not protected. File it under secret.
What the platform does with a secret
A secret facet is only surfaced for an observer who has a knows_about relationship to it in the Knowledge Graph. That gate sits at the data-access layer, so a new read path inherits it rather than needing its own filter. A Player looking at an NPC's detail in the Character Panel does not see the secret unless their character has learned it.
The Narrator is the single stated exception. For NPCs who are present in the scene, the secret is given to the Narrator in its own distinct tag, narrator_only_secret, appended under that NPC's card. The Narrator's instructions treat that tag differently from ordinary facts. It is known only to the Narrator and that character, it must never be revealed unearned, and it is treated as known to the Player only if the story so far has already revealed it.
In practice that means the Narrator can play Orsolya consistently, steering away from the old toll road without being told to on each turn. It also means the secret does not appear for an NPC who is absent, or for one whose name merely came up in conversation.
Write a secret that can be earned
The gate protects the secret from accidental disclosure. It does not decide when a Player has earned it, so write for that.
- Give the secret a cost to hold. If keeping it forces Orsolya to refuse, deflect, or lie, the Player gets something to push on.
- Give it more than one door. A secret reachable only by one exact question is a puzzle with a single answer. Let a letter, another NPC, and Orsolya's own slip each carry part of it.
- Decide what changes when it is out. Does she run, confess, or turn hostile? Writing that into another facet gives the Narrator a consequence to play, instead of improvising one.
Keep it honest
Two other cautions. A secret is story content, so write it as something you would be comfortable having read back to you. It is not a hidden channel: a World Seed goes through moderation before it is published, and a secret is not a place to put anything you would not put elsewhere on the card.
Try it in the editor
Pick one NPC in a World Seed you are building and ask what they would never say aloud. Write that as a secret facet. Then write three public behaviours that would exist because of it. Playtest the NPC by asking them leading questions as a Player would.
If you are building with the authoring tools, the character card editor is where this lives. If you are writing rulesets and behaviours through the Creator SDK, the same card structure is what your code reads from. Start with one NPC, one secret, and see how much of the character you can imply without ever stating it.
Build a world other people can play
Author a World Seed — locations, characters and lore — and publish it for others to play. No code required.
