Dialogue is where "show, don't tell" gets tested most directly, because dialogue is the one tool that can violate the rule in the most obvious way possible: a character simply saying the thing you want the audience to know. It's tempting, it's fast, and it's almost always a mistake. Believable dialogue does its work sideways, through voice, subtext, and the specific, unrepeatable way one particular person talks, not through characters narrating their own feelings for the audience's benefit.
Why on-the-nose dialogue kills scenes
On-the-nose dialogue is dialogue that says exactly what a character is thinking or feeling, with nothing left for the audience to infer. "I'm so angry at you for lying to me" is on-the-nose. It's also almost nothing like how anger actually sounds out loud. Real anger tends to come out sideways, as sarcasm, as silence, as a fight about something else entirely that's really about the lie underneath it.
The reason this kills scenes isn't just that it sounds unnatural. It's that it removes the audience's job. Part of what makes a scene compelling is the act of reading between the lines, sensing tension that hasn't been named yet. On-the-nose dialogue does that work for the audience instead of letting them do it, and a scene that requires no participation from the audience tends to generate no real investment either.
The fix isn't complexity for its own sake. It's trusting subtext over statement. A character who's furious can order a coffee. What matters is how they order it.
Giving each character a distinct voice
If you covered up every character name in a script and could still tell who was speaking purely from word choice, rhythm, and what they choose to talk about, that script has distinct voices. If you couldn't, every character is speaking in the writer's voice instead of their own, which is one of the most common tells of an early-career script.
Distinct voice comes from a handful of concrete levers. Vocabulary: does this character use precise, formal language, or clipped fragments, or regional slang? Sentence length: do they speak in short bursts, or do they run on when they're nervous? What they notice: two characters looking at the same room will mention completely different details depending on who they are and what they care about. What they avoid saying: often more revealing than what they choose to say out loud.
A useful exercise here is genuinely practical: read a character's dialogue in isolation, stripped of all context, and see if it still sounds like a specific person rather than a generic mouthpiece for plot information. If every character could plausibly say every other character's lines, the voices haven't been differentiated yet.
Using dialogue to reveal character, not deliver exposition
Dialogue is one of the most efficient tools a screenwriter has for revealing character, but only when it's not busy doing something else, like explaining plot mechanics the audience already needs to understand through other means. Exposition disguised as dialogue is one of the most reliable signs of an inexperienced script: two characters who already know a piece of information explaining it to each other anyway, purely so the audience can overhear it.
The better approach treats every line of dialogue as doing at least two jobs simultaneously: moving the scene forward and revealing something about who's speaking. A character explaining a plan reveals as much through how they explain it, confidently, anxiously, condescendingly, as through the content of the plan itself. The information can often be trimmed or moved into action and context. The characterization embedded in the delivery is usually the part actually worth keeping.
A related trap is dialogue that exists purely to state theme directly, a character announcing "I guess we're all just running from something" in case the audience missed the point. Theme that has to be spoken aloud to land usually wasn't earned by the scenes preceding it. Trust the structure to carry the theme, and let dialogue stay in character instead of stepping outside it to make a point.
The role of silence and interruption in realistic conversation
Real conversation is messy in specific, predictable ways that scripted dialogue often smooths over by accident. People interrupt each other. They talk past each other. They leave sentences unfinished because the other person already understood, or because finishing it felt too exposed. A script where every character waits patiently for their turn and finishes every sentence cleanly rarely sounds like real people talking, it sounds like a debate transcript.
Silence carries as much weight as speech, sometimes more. A character who doesn't answer a question is often communicating more than one who does. A pause before a response can carry an entire beat of internal conflict that would take a full paragraph of action description to convey any other way. Learning to write silence deliberately, marking it with a beat, a hesitation, an unfinished line, rather than filling every gap with words is one of the clearer signs of a writer who's actually listening to how people talk rather than writing dialogue as function.
Interruption is a similarly underused tool. Two characters talking over each other can convey urgency, intimacy, or conflict far faster than either character explaining that they feel urgent, intimate, or in conflict. It's a small, tactical use of format, but it does real dramatic work when it's earned rather than used as a stylistic tic.
Exercises for testing dialogue authenticity
A few practical tests catch dialogue problems before a reader ever does.
The cover-the-names test. Hide every character name in a scene and see if you can still tell who's speaking based purely on voice. If not, the differentiation work isn't done yet.
The read-aloud test. Dialogue that looks fine on the page frequently reveals its problems the moment it's spoken out loud, especially rhythm issues and lines that are technically grammatical but nobody would actually say.
The subtext strip test. Take a scene and rewrite every line to state exactly what the character means, with nothing implied. Then compare it to the original. If the on-the-nose version feels almost identical to the subtext version, the subtext wasn't doing enough work in the first draft.
The overhear test. Read a scene as though you're eavesdropping on two strangers in a restaurant rather than reading a script you wrote. Does it sound like something you'd actually overhear, or does it sound like it's performing for an audience that isn't supposed to exist inside the scene?
This is exactly the kind of iterative pass that benefits from writing somewhere built for revision rather than just first-draft output. StoryWriter's interface is built around fast, frictionless rewriting passes, so testing five versions of the same exchange doesn't mean disrupting your formatting or losing track of what you've already tried, it's designed to let dialogue actually jump off the page instead of sitting flat in a static document. And PunchUp is built specifically for this kind of pass, surfacing lines that are doing too much explaining and not enough revealing, so a writer can catch on-the-nose dialogue in the moment rather than a draft or two later.
Dialogue that earns its place
None of these tools replace listening. The writers who write the most believable dialogue tend to be the writers who pay close attention to how people actually talk, the interruptions, the deflections, the things left unsaid. But craft tools matter too, and having software built around fast, iterative dialogue passes, rather than a static page that resists revision, makes it considerably easier to catch the on-the-nose line before a reader does. Dialogue that shows instead of tells isn't a trick. It's the product of trusting an audience to do a little of the work themselves, and giving them just enough to do it with.
