Every script has characters. Not every script has people. The gap between the two is one of the fastest ways an experienced reader sorts a promising draft from a forgettable one, often within the first ten pages, long before plot mechanics come into play.
The type vs. the fully realized character
A character type is a function wearing a costume. The gruff mentor. The wisecracking best friend. The love interest whose entire personality is being supportive. Types aren't inherently bad, every story needs some characters who exist mostly to serve a role, but a script where every character is only a type reads flat no matter how well the plot is engineered.
A fully realized character has a function in the plot and an interior life that exceeds that function. The gruff mentor isn't just gruff, they're gruff for a specific, story-relevant reason, and that reason creates friction with the role they're playing. The difference isn't complexity for its own sake. It's specificity. A type could be swapped into a dozen other scripts without anyone noticing. A fully realized character couldn't.
The fastest gut check: could this character say something that surprises you, something true to them but not something you planned when you designed their role? If the honest answer is no, they're still closer to a type than a person.
Backstory, want vs. need, and internal contradiction
Backstory isn't there to be recited. It's there to explain why a character wants what they want, and why they're going to resist the thing they actually need. Most of it should never appear on the page directly. It should show up as behavior, the way a character flinches, deflects, or overcorrects in ways that only make sense once you understand what happened to them before page one.
The want versus need distinction is one of the most reliable tools in character construction. The want is what a character consciously pursues, usually the engine of the plot itself. The need is what they actually require to be whole, which is often something they're avoiding, denying, or actively running from. A story where want and need are identical tends to feel thin, because there's no real internal cost to getting what the character is chasing. A story where they're in conflict, where getting the want might mean failing the need, is where genuine dramatic tension lives.
Internal contradiction is the engine underneath both. A character who's afraid of intimacy but desperately lonely. A character who preaches honesty but built their entire life on a lie. Contradiction isn't a flaw in a character's design, it's the design. Flat characters are internally consistent. People aren't.
Character arcs and how they intersect with plot structure
An arc is the measurable distance between who a character is at the start of a story and who they are by the end, and it should track closely with the plot beats covered elsewhere in this series. The inciting incident that launches the plot is usually also the first crack in the character's psychological armor. The midpoint's false victory or false defeat often forces a character to double down on an old, unhealthy pattern right before they're forced to abandon it. The low point before Act III typically strips away whatever defense mechanism the character has been relying on the entire story, leaving them with no choice but to change.
This is why plot and character shouldn't be developed as separate tracks that get stitched together later. The strongest scripts treat external plot pressure as the mechanism that forces internal change, not a parallel story running alongside it. A useful test while outlining: for every major plot beat, ask what it's doing to the character internally, not just externally. If the answer is "nothing," that beat is probably plot for its own sake rather than plot in service of the story.
Not every character needs a full transformational arc. Some characters are intentionally static, serving as a fixed point the protagonist is measured against. But even static characters need enough interior specificity to feel like a person rather than a prop, even if that person doesn't change.
Tools for tracking character details across a long draft
Consistency is one of the quiet, unglamorous requirements of a professional script. A character whose eye color, backstory detail, or established habit shifts halfway through a draft breaks trust with a reader even if the story around it is strong. On a feature-length script, let alone something with an ensemble cast or a longer television arc, keeping every detail straight by memory alone gets harder with every new draft pass.
This is one of the more practical reasons writers increasingly rely on tools built for the full length of a draft rather than a single sitting. StoryWriter's structure keeps character details tethered to the script itself as it grows, and EchoDetector's language tracking catches more than just repeated phrasing, it also tends to surface moments where a character's voice has drifted or a detail has quietly contradicted an earlier scene, the kind of inconsistency that's genuinely difficult to catch by eye alone across 110 pages.
Avoiding stereotypes and flat secondary characters
Stereotypes are types with an added layer of harm: they're built from cultural shorthand rather than specific observation, and they tend to flatten entire groups of people into a single, familiar shape. The fix isn't avoiding certain kinds of characters altogether, it's insisting on the same specificity for every character that a writer would automatically bring to their protagonist. A secondary character built from genuine, particular detail rather than a familiar outline is very rarely read as a stereotype, because stereotypes survive on vagueness, and specificity is what dissolves them.
Flat secondary characters are a related but distinct problem. They're not necessarily offensive, they're just under-built, existing purely to deliver exposition or nudge the protagonist toward the next plot point. The fix is smaller than it sounds: give every major secondary character one want of their own, even a minor one, that has nothing to do with the protagonist's story. A single beat of a secondary character pursuing something for themselves, independent of the hero's journey, is often enough to make them read as a person who has a life continuing off-screen rather than a device that only activates when the plot needs them.
People, not types
None of this requires every character to have a tragic backstory or a full transformational arc. It requires specificity, contradiction, and the discipline to let plot pressure do real work on a character's interior life rather than just moving them from location to location. A script populated with people instead of types doesn't just read better, it's the difference a reader feels before they can articulate why, which is exactly the kind of impression that gets a script passed along instead of passed over.
