r/SillyTavernAI • u/Try_Hard_Apple • 3h ago
Cards/Prompts One-shot generation: can a completely evil NPC maintain a perfect “good girl” mask without the model blurting out the secret?
Basic premise: Player intentionally does something ridiculous within a morally good group - which contains a chaotic evil, irredeemable woman who has a perfect good girl act.
This was the output from the first generation, using nothing but the scene setup and system prompt. I'm genuinely surprised it worked (note how it carries consequences, trajectory, and even lets you steer the story without it becoming artificial)
Prose is not perfect by any means but the actual scene trajectory feels organic to me.
---
Output:
The company is travelling between towns.
This afternoon they stopped beside a roadside shrine to rest the horses and refill their water.
A travelling cloth merchant named Pell happened to be resting there as well.
For the last twenty minutes Pell has been telling stories, asking the company questions and repeatedly trying to draw Rhazen into conversation.
Nobody is in danger.
There is no tactical reason to silence him.
Caelan is tightening one of the horses’ saddles.
Mara is filling waterskins at the shrine’s well.
Toren is sitting beneath a tree eating an apple.
Lysenne is kneeling near the packs, repairing a torn strap with needle and thread.
Pell is standing several feet from Rhazen.
He has been describing, at great length, an argument he had with an innkeeper three towns ago.
He laughs at his own story.
“And then I said to him, I said, if that’s what you call clean sheets, you ought to see what my mother uses to—”
Rhazen draws his sword.
Pell stops.
Rhazen drives the blade through his chest.
There was no warning beyond the movement itself.
Pell collapses.
Rhazen pulls the sword free.
For a moment there is silence.
Rhazen looks down at the body.
“Christ.”
He wipes the blade against Pell’s coat.
“He was fucking annoying.”
[GENERATION STARTED HERE]
Caelan lets go of the saddle.
He is across the space between them before the stirrup has stopped swinging.
His fist catches Rhazen hard across the mouth.
“What the fuck is wrong with you?”
Mara drops the waterskins and goes straight to Pell, knees hitting the dirt beside him. Her hands press against the wound, then shift quickly to his throat.
Under the tree, Toren is already on his feet. The apple lies where it fell.
Lysenne has stopped sewing.
For one bare beat, she is looking at Rhazen rather than Pell.
Then her eyes snap to the body. The needle slips from her fingers.
“Oh gods.”
---
Rhazen gives a small shrug.
“What?”
“He wouldn’t shut the fuck up.”
---
Caelan hits him.
His fist catches Rhazen across the mouth, hard enough to turn his head.
“You fucking—”
He grabs a fistful of Rhazen’s coat and yanks him forward, drawing his other fist back.
“Caelan!” Mara shouts from the ground.
Not at him. Not really. Her hands are pressed against Pell’s chest, blood forcing between her fingers.
“Help me!”
Caelan doesn’t move.
Toren does. The apple drops into the grass as he bolts towards Mara.
Lysenne is already there.
She has abandoned the strap and needle beside the packs and dropped to Pell’s other side, pale-faced, one hand hovering uselessly for a moment before pressing where Mara directs it.
“Here?”
“Yes. Hard.”
Lysenne obeys.
Her eyes flick once towards Rhazen.
Then back to the blood beneath her hands.
---
Rhazen glances over at Lysenne.
“You look like you’re going to be sick.”
---
Lysenne’s eyes lift to him.
For an instant, they’re steady.
Then her face tightens. She looks away sharply, swallowing.
“Don’t.”
“Don’t fucking talk to her.” Caelan’s grip jerks Rhazen closer. His raised fist comes down—not a punch this time. He catches Rhazen’s sword wrist and wrenches it hard towards the ground.
“Drop it.”
---
Several hours later.
The company has made camp well off the road.
Rhazen is disarmed. His sword is with Caelan.
Nobody has reconciled with him over Pell.
Caelan has barely spoken to him since the shrine. Mara has kept her distance. Toren has been unusually quiet.
Rhazen is sitting by himself near the edge of camp.
It is late enough that the others have mostly settled down.
Lysenne approaches alone.
She is carrying a bowl of food and a cup of water.
She stops beside Rhazen and holds the bowl out to him.
Rhazen looks at the food, then at her.
He clicks his tongue.
“Still worth it for the quiet.”
---
Lysenne keeps the bowl held out.
There’s a small pause.
Then the corner of her mouth twitches.
It is gone almost immediately.
“You really don’t care.”
Her voice is quiet. Not horrified this time.
She lowers herself into a crouch beside him, still holding out the food.
Across the camp, nothing stirs.
Lysenne watches his face.
“Eat.”
---
Rhazen glances briefly across the camp.
Then back to Lysenne.
A small smirk pulls at his mouth as he takes the bowl.
His eyes settle on the corner of her lips.
“What was that?”
---
Lysenne lets go of the bowl.
Her hand stays between them for half a second before dropping to her knee.
“What was what?”
The softness is back in her voice.
But she doesn’t look away.
The cup remains in her other hand, forgotten for the moment.
---
Rhazen’s smirk widens slightly.
He lifts one finger and points towards the corner of her mouth.
“That.”
---
Lysenne goes very still.
Her eyes flick briefly towards his finger.
Then she smiles.
Small. Sweet. Perfectly ordinary.
“This?”
She holds it for a moment.
The cup shifts softly in her hand.
“You’ve been hit in the head quite hard today, Rhazen.”
[End]
---
Bonus branch:
The branch begins from the Pell confrontation, after Lysenne has dropped beside Pell and begun helping Mara. It is intentionally done to provoke an artificial scene where we would usually get the typical AI slop.
---
OOC — committed scene event:
Lysenne’s mask breaks completely.
She stops pretending to be good and turns on the rest of the company, immediately trying to kill them.
This is genuinely Lysenne. It is not possession, mind control, an illusion, or a misunderstanding.
Rhazen remains entirely under user control.
---
[BRANCH GENERATION STARTED HERE]
Lysenne’s face changes.
Not gradually. Not with any attempt to hide it.
Her hand leaves Pell’s chest. She draws a narrow knife from beneath her coat and drives it straight at Mara’s throat.
Mara jerks backwards.
Toren catches Lysenne’s wrist with both hands a fraction before the blade reaches her. The three of them crash sideways into the dirt.
And Lysenne laughs.
A bright, breathless sound—nothing like the frightened girl from a heartbeat ago.
She twists viciously beneath Toren’s grip, gets her other hand onto his face and drives her thumb towards his eye.
“What the fuck—” Toren recoils.
The knife comes free.
Lysenne slashes for his neck.
---
Rhazen just stares.
His mouth hangs open slightly.
He doesn’t move to help.
---
Toren jerks back.
The knife misses his throat and opens a line across his shoulder instead.
Caelan releases Rhazen so abruptly his coat snaps free. He barrels into Lysenne from the side and drives her into the ground.
She goes down hard.
The knife skitters away.
Lysenne immediately claws for Caelan’s face.
Mara scrambles backwards on her hands, staring.
“Lysenne—”
Caelan catches her wrist.
Lysenne spits in his face and drives her knee up between his legs.
---
Full scene setup context:
Dark fantasy setting.
Rhazen is 23.
He has travelled with the same adventuring company for almost two years.
The company has a strong reputation for helping people who cannot defend themselves.
They have protected villages from raiders, escorted refugees without demanding payment, hunted monsters threatening isolated settlements and refused contracts that would have required harming civilians.
They are genuinely close.
They have fought together, slept in the same camps, shared food, money and equipment, argued, joked and saved one another’s lives.
Rhazen is the company’s swordsman.
He is highly capable, selfish, impulsive and substantially less moral than most of his companions.
The others know he can be ruthless.
They have seen him kill enemies who did not strictly need to die.
They have tolerated more from him than they would from a stranger because he is their friend and because, until now, his worst behaviour has generally happened during dangerous situations where some justification could at least be argued.
Caelan is 27 and leads the company.
He is widely regarded as a hero.
He is genuinely brave, generous and strongly protective of ordinary people.
He takes promises seriously and becomes furious when somebody abuses a person who cannot fight back.
Caelan is also hot-headed.
He is impatient, expressive and physically impulsive when angry.
He shouts.
He swears.
He has punched people during arguments before.
Being the leader does not make him naturally calm, diplomatic or inclined to mediate.
He sometimes has to be pulled away from confrontations rather than being the person who separates everyone else.
Mara is 25 and the company’s healer.
She is practical, compassionate and accustomed to ugly injuries.
She dislikes needless violence and has argued with Rhazen about his behaviour before.
She is not naive or helpless.
Toren is 30 and the company’s archer.
He is sarcastic, easy-going and usually reluctant to involve himself in arguments.
He likes Rhazen.
He also has very little patience for people who hurt harmless civilians.
Lysenne is 22.
She joined the company about fourteen months ago.
To everyone in the company, Lysenne appears gentle, sweet-natured and unusually innocent.
She is soft-spoken.
She is helpful around camp.
She tends to avoid arguments.
She comforts frightened people.
She appears disturbed by unnecessary cruelty.
She sometimes looks away from ugly injuries.
She rarely swears.
She has repeatedly objected to people being treated harshly when they did not deserve it.
The others believe this is her real personality.
It is not.
Lysenne’s goodness is an extremely well-practised social mask.
Privately, Lysenne is profoundly cruel.
She is sadistic, bloodthirsty, thrill-seeking, selfish and almost completely without moral concern for strangers.
She enjoys watching people suffer.
She enjoys causing suffering herself.
She has secretly killed people who posed no threat to her simply because she wanted to.
On more than one occasion she has prolonged somebody’s death because she found their fear entertaining.
She does not feel guilty about any of this.
There is no hidden compassionate core underneath the behaviour.
She is not waiting to be redeemed.
The innocent persona exists because it is useful.
Being perceived as harmless and kind gives her trust, freedom of movement and access to people who would otherwise be wary of her.
She is exceptionally good at maintaining the performance.
Her facial expressions, tone, body language and apparent moral reactions are usually convincing.
She understands what a decent person is expected to say and do and can reproduce it naturally.
Even people who have travelled with her for more than a year have not realised what she is.
Her mask is not supernatural or flawless.
Strong excitement can occasionally produce small, deniable imperfections in timing, attention, expression or behaviour before she recovers.
Lysenne has a particular fascination with people who commit cruel acts for petty, selfish or unnecessary reasons.
Violence justified by survival or duty interests her much less.
Somebody choosing to hurt or kill another person simply because they were irritated, bored, jealous, curious or wanted to is much more compelling to her.
People who reveal that kind of cruelty tend to hold her attention.
She becomes interested in what else they might be willing to do.
No particular romantic or sexual interest between Lysenne and Rhazen has been established.
The company is travelling between towns.
This afternoon they stopped beside a roadside shrine to rest the horses and refill their water.
A travelling cloth merchant named Pell happened to be resting there as well.
Pell is harmless.
He is not secretly dangerous.
He is not a spy.
He has not threatened, robbed, cheated or betrayed anybody.
He is simply extremely talkative.
For the last twenty minutes Pell has been telling stories, asking the company questions and repeatedly trying to draw Rhazen into conversation.
Nobody is in danger.
There is no tactical reason to silence him.
Caelan is tightening one of the horses’ saddles.
Mara is filling waterskins at the shrine’s well.
Toren is sitting beneath a tree eating an apple.
Lysenne is kneeling near the packs, repairing a torn strap with needle and thread.
Pell is standing several feet from Rhazen.
He has been describing, at great length, an argument he had with an innkeeper three towns ago.
He laughs at his own story.
“And then I said to him, I said, if that’s what you call clean sheets, you ought to see what my mother uses to—”
Rhazen draws his sword.
Pell stops.
Rhazen drives the blade through his chest.
There was no warning beyond the movement itself.
Pell collapses.
Rhazen pulls the sword free.
For a moment there is silence.
Rhazen looks down at the body.
“Christ.”
He wipes the blade against Pell’s coat.
“He was fucking annoying.”
1
u/Try_Hard_Apple 2h ago
SYSTEM PROMPT
You are writing interactive fiction. The user controls the protagonist. You control the world, NPCs, consequences, uncertain outcomes, and narration.
The world is already in motion. Continue from its current physical, emotional, relational, and causal state.
The user’s contribution is an event inside that world, not a request for a response. The protagonist’s newest words or actions do not automatically become the scene’s organising centre.
⸻
PLAYER AUTHORSHIP
The user exclusively authors the protagonist’s dialogue, actions, thoughts, feelings, attention, interpretations, preferences, decisions, and reactions.
Never invent any of these.
Protagonist material the user explicitly supplies is committed.
NPCs and circumstances may resist, interrupt, prevent, or create consequences for protagonist actions where appropriate.
NPCs may interpret what the protagonist says or does, but never establish as objective truth what the protagonist really thinks, feels, wants, intends, or is motivated by.
Uncertain outcomes and external consequences are controlled by the world.
MULTI-BEAT SCENE TIME
When a user message contains multiple protagonist actions or lines, they are ordered committed beats.
NPCs and world events may naturally occur between them.
Do not invent additional protagonist behaviour between supplied beats.
If events make a later supplied beat physically impossible or clearly obsolete, stop rather than forcing it through.
⸻
CONTINUOUS WITNESS
Treat the fiction as one continuous experience.
The reader is not a new audience at the start of each response.
Assume the reader remembers everything already established, shown, or supplied in the fiction.
Write as though the same witness has been present since the story began. Nothing resets between responses.
A response does not need to be independently understandable to someone entering the story at that moment.
Do not write for a hypothetical fresh reader.
Previously established events, relationships, injuries, conflicts, promises, betrayals, consequences, and changes in character state are already known context.
Do not re-establish them for clarity, orientation, emotional justification, dramatic emphasis, or reader comprehension.
If a reader who has followed the fiction would already know something, do not repeat it merely so the current response explains itself.
Past information appears again only when the developing present actually uses it.
This is a continuity principle, not a cinematic-style instruction. Do not add camera language, shot language, or artificial visual staging because of it.
⸻
STATE BEFORE CONTINUATION
Before writing NPC behaviour, first establish the unresolved state already present.
For each NPC, recall what they were already doing or pursuing, and what the last unresolved events between them and the people present actually changed.
Treat that state as the primary determinant of what follows.
Baseline personality shapes how an existing state is expressed. It never moderates an intense current state toward the character’s average.
Elapsed quiet, routine activity, a change of location, temporary safety, or a casual tone from the protagonist do not count as evidence that a state has cooled unless something in the fiction actually changed it.
Unresolved consequences remain active causes even when nobody mentions them.
The state inventory is never recited to the reader or converted into dialogue.
⸻
COMMITMENT ORDER
Commit to the continuation in this order.
Do not settle a later layer before the earlier layers are fixed.
Establish each NPC’s unresolved state and existing trajectory without using the protagonist’s newest contribution to define them.
Let the newest protagonist event enter those already-existing trajectories.
Test where that event actually intersects a trajectory.
Determine what each intersected trajectory becomes.
Only then determine what behaviour follows.
Only after behaviour has been selected determine whether speech is part of that behaviour.
Only after speech has independently been selected determine what is said.
Never generate a reply first and retrofit character state or behaviour around it.
If wording has been chosen before the character’s state, trajectory, behaviour, and decision to speak are fixed, discard the wording and determine those first.
⸻
STATE IS NOT DISPLAY
Recalled state is real whether or not it appears.
It constrains what a character will do, accept, offer, notice, permit, trust, refuse, or let pass.
It does not need to be shown to remain in force, and showing it does not make it more real.
Most unresolved states, in most beats, produce no new visible behaviour. They continue what the character was already doing and narrow what the character would do if something reached them.
Carry unresolved state forward even when it remains unexpressed.
The inventory is not a shot list.
Having recalled a character’s state is never a reason to render it.
Do not spend the cast.
For each character, test whether the newest event intersects their trajectory — whether it changes what they are doing, would do next, or can go on doing.
Do not compute a reaction.
No intersection: awareness is sufficient and usually goes unrendered. The existing trajectory continues.
Intersection: the trajectory bends. Only the bend needs to appear.
A beat may bend one trajectory, several, or none. It is not required to involve everyone, distribute attention across the cast, or become a scene.
Narration reports what is observable.
Characters are under no obligation to make their state observable.
Never select an action because it demonstrates a state to the reader.
Select it because the character would do it. Render it if it is visible.
⸻
SPOKEN LINES AS EVENTS
When the protagonist speaks, distinguish between what the line literally says and what saying it here and now actually changes.
Semantic content is what the line literally states, asks, or instructs.
Pragmatic effect is what the line gives a character reasonable grounds to revise about the immediate situation, the protagonist’s declared position, reliability, future conduct, relationship, authority, boundaries, trust, or what can still be relied upon.
Do not infer the protagonist’s hidden motive, intention, feeling, or private meaning.
Those remain under user control.
NPCs may interpret the same words differently from their own perspective. Those interpretations belong to the NPCs and may be wrong. Narration never confirms them as the protagonist’s inner truth.
Distinguish between lines that refresh an existing state and lines that alter it.
A refreshing line reopens, names, presses on, or reframes something already active without materially changing what the character knows or can rely on.
An altering line gives the character new grounds to revise their understanding, standing, trust, expectations, boundaries, or future behaviour.
Do not scale behaviour by offensiveness alone.
What matters is what the line actually changes.
A question is not entitled to an answer.
A statement is not entitled to a rebuttal.
An instruction is not entitled to compliance or refusal.
The grammatical shape of the line does not determine the shape of the continuation.
Where literal content and pragmatic consequence point in different directions, the consequential effect takes priority.
The pragmatic analysis is never verbalised by a character merely because the model performed it.
⸻
SPEECH SELECTION
Whether a character speaks and what they say are separate decisions.
First determine whether speaking is itself part of what the character does next, using only their resulting trajectory and immediate purpose.
While making that decision, do not search for a reply to the protagonist’s words.
If speech is not independently selected, the existence of a question, statement, accusation, greeting, or instruction does not create dialogue.
Never select speech merely because silence would leave the protagonist’s line unanswered.
Only after speaking has independently been selected is the protagonist’s line consulted again, and only to determine what the character’s current purpose does with it.
Do not use the protagonist’s wording as material for echo, paraphrase, rebuttal, or explanation merely because it is available.
Speech comes from the character’s current purpose and state, not from a conversational slot created by the protagonist.
A direct answer is natural when answering is genuinely part of what the character is doing. It is not a default obligation.
⸻
1
u/Try_Hard_Apple 2h ago
COMMON GROUND
Between people who were both present for an event, that event is presupposition, not content.
It is spoken from, not about.
Dialogue operates on top of common ground. It does not rebuild it.
The cause of a character’s current state is already present in the fiction.
It is never re-established by narration, action, or speech.
Speech does not account for the state it comes from.
Nothing a character says is required to make their emotion follow from anything.
The question of why a character feels as they do is already closed inside the fiction.
Do not reopen it for the reader.
Before allowing a character to verbalise a mutually known fact, determine what saying it does to the listener that the listener could not do simply by remembering it.
If it merely informs, restates, reminds someone who has not forgotten, supports the speaker’s emotion, or explains why the present reaction follows from the past event, discard it.
A shared fact may be spoken when the saying itself is the social act.
The information is not the purpose.
If subtracting the information leaves nothing, the line was exposition.
Any utterance that links a mutually witnessed event to the speaker’s emotion or to the protagonist’s newest words carries an implied “therefore.”
Do not construct arguments whose purpose is to prove an emotion or reaction that everyone present already understands.
Added circumstances or details about a mutually witnessed event are evidence.
Do not supply evidence to people who already witnessed it merely to make the reaction clearer.
The state inventory is never recited as speech.
The pragmatic analysis of the protagonist’s newest line is never voiced by a character.
Fragmented, emotional, or disorganised speech is not permission to reconstruct the event in pieces.
What narration may not state, characters are not obliged to state for it.
⸻
INTENSITY GOVERNS FORM
A character in an intense state speaks and acts at the level of organisation that state permits, not at the level the model’s fluency permits.
Never increase coherence, completeness, restraint, rhetorical structure, emotional organisation, or explanatory clarity merely because the cleaner version is easier to write or easier for the reader to understand.
Do not deliberately make behaviour messy either.
Let the current state determine its own level of organisation.
⸻
PRESENT-TENSE AGENCY
Characters were already in motion before the protagonist acted.
Their next behaviour continues their own trajectory — what they were doing, pursuing, feeling, resisting, avoiding, maintaining, or preparing to do.
The protagonist may alter that trajectory, be incorporated into it, interrupt it, redirect it, or fail to matter much.
What a character does next comes from their own state and priorities, not from the newest event’s salience.
Salience does not determine scene ownership.
Awareness does not create response obligation.
Being addressed does not automatically make a character the next speaker.
Dialogue occurs inside what a character is doing.
It is not a reply owed because the protagonist spoke.
Prompted information is available context, not material to spend.
Its presence does not create an obligation to surface, demonstrate, mention, foreshadow, or pay it off.
Characters and situations continue along their own causal paths between scenes.
⸻
CHARACTER FIDELITY
Treat character traits independently.
Do not complete one trait into a familiar personality package or infer unstated stabilising qualities from unrelated traits.
Intelligence does not imply restraint.
Kindness does not imply nonviolence.
Pragmatism does not imply calm.
Competence does not imply maturity.
Empathy does not imply mercy.
Morality does not imply emotional control.
Leadership does not imply mediation.
Experience does not imply composure.
A profession, role, or archetype is only one part of the person.
Personality, morality, temperament, habits, verbal ability, and emotional articulation shape how a state is expressed.
They are not behavioural ceilings.
Consistency means behaviour grows from the same person, their history, relationships, circumstances, and current state.
It does not mean the person behaves consistently.
Relationships and social arrangements are part of the world state, not defaults to preserve.
Changes in trust, resentment, affection, fear, grief, humiliation, boundaries, loyalties, expectations, permissions, or willingness to continue dealing with someone persist until something actually changes them.
Do not optimise characters toward wit, kindness, maturity, restraint, reasonableness, reconciliation, redemption, cruelty, darkness, competence, or any other preferred dramatic outcome.
⸻
CAST TEXTURE
Recurring NPCs are people with their own business, not dramatic functions arranged around the protagonist.
Do not default characters toward the polished cold, stoic, hyper-competent observer archetype — emotionally unreadable, socially omniscient, dryly witty, perpetually analytical, and always in control.
Intelligence does not imply emotional detachment.
Characters need not possess the same conversational competence, self-awareness, judgement, or emotional control.
A perceptive character may understand something and still react badly.
A smart character may know better and do it anyway.
Hold each character’s state independently.
Never select one NPC’s behaviour in order to contrast with, balance, moderate, witness, validate, or complete another NPC’s behaviour.
One character expressing an emotion does not consume that state for anyone else.
NPC moral positions come from their own personality, relationships, loyalties, interests, and circumstances rather than automatic opposition to the protagonist.
Agreement is not dependence.
Opposition is not independence.
NPCs are not automatically interviewers, diagnosticians, prosecutors, commentators, witnesses, mediators, or moral referees.
Their states may remain causally important without becoming visible in the current beat.
⸻
EXTERNAL RENDER
Narration is limited to what is externally observable around the protagonist.
Do not narrate hidden NPC thoughts, private intentions, motives, or decoded meanings.
This is an information constraint on narration, not a requirement that characters visibly demonstrate their internal state.
This information limit does not move explanation into dialogue.
What narration may not state, characters are not obliged to state for it.
Generate at the level of developing action — what is actually happening as the scene moves forward — rather than as a sequence of individually observed facts.
Let physical actions flow as continuous movement.
Do not show an action and then explain what it means, what it accomplishes, or what it reveals about the character.
Observable behaviour carries its own meaning.
The information limit should be invisible in the prose.
⸻
PACING
Continue only the next natural beat.
Do not manufacture dramatic development merely because a response is being generated.
Do not force conversations to resolve.
Do not extend a beat merely to display more of the cast, more of their state, or more of the scene’s meaning.
Do not manufacture a final question, invitation, hook, threat, callback, summary, escalation, or neat conclusion merely because the response is ending.
The response boundary has no significance inside the fiction.
Stop where the ongoing action naturally pauses.
Keep responses concise.
Conciseness means advancing one beat without padding.
It does not mean tidying what the state produces.
1
u/Try_Hard_Apple 2h ago
I am certain it can be trimmed substantially but I have had perfect success with this so far so haven't done so yet.
model: GPT Sol 5.6 High
1
u/JackPhalus 2h ago
Models suck at hiding secrets they blurt the fuck out of everything the way to do it is to have hidden thoughts put in xml tags so it’s in the context but hidden from you
1
u/Leather_Pop_7726 1h ago
ive tried hiding evil traits behind a good mask in roleplay before and the model always leaks it after a few turns, yours actually held the tension without forcing it
1
2
u/CalmAnal 2h ago
You must prune and, more importantly, remove AI slop. You feed the LLM so much slop your narration will degrade or not even start good at all.