← Back to Blog How-To

How to Write a Villain Who Isn’t Just an Obstacle

Brian Hanford · October 5, 2026 · 5 min read

A villain who only exists to be beaten is easy to replace. Here’s how to give yours a want of their own, plus one test to run on your antagonist.


How to Write a Villain Who Isn’t Just an Obstacle — dev|cut.

Somewhere in your script, there’s a character whose job is to stand between your hero and what they want. You know their function. You can probably describe what they do in a sentence. But ask yourself something harder: if your hero never showed up, would this person still have anywhere to be?

For a lot of antagonists, the honest answer is no. They exist when the protagonist needs something to push against, and they stop existing the moment the scene ends. That’s an obstacle wearing a villain’s coat. It can get a script to the finish line, but it’s rarely the character a reader remembers.

Two kinds of opposition

A plot obstacle is defined entirely by what it does to the protagonist. It blocks the door, raises the stakes, and gives the third act something to beat. Take it out, drop in a different one, and the story barely notices. That’s the tell. If you could swap your villain for another and only change the name on the call sheet, you’ve written a function.

A villain with their own logic wants something that has nothing to do with your hero. They have a plan, a history, a need, a worldview, a business to run. The collision with the protagonist is a side effect of both people pursuing something at the same time in the same place. Take this villain out and the story doesn’t just lose a blocker, it loses a whole engine.

You can see the difference in two very different projects. Hans Gruber in Die Hard isn’t in that building to ruin John McClane’s night. He has a heist, a timeline, and a team, and McClane is the thing in the plan that wasn’t supposed to be there. Or think of Gus Fring in Breaking Bad. He’s already running something, with its own rules and its own patience, long before Walter White starts cooking. Neither of them is about the hero. That’s exactly why they push so hard against one.

Why the want has to come first

Most writers build a villain backward. They start with what the hero needs to overcome, then design someone to supply it. A threat that’s tall enough, scary enough, and conveniently positioned to be in the way.

The result is an antagonist whose goals are really just the protagonist’s problems restated. “He wants to stop her” isn’t a want. It’s a reaction. A want has to be able to stand on its own, with a verb the character would use even if no one were watching: take, protect, prove, rebuild, keep, win back.

Try building it in the other order. Decide what the villain is after before you decide how it hits your hero. Give that want a reason that makes sense from the inside, even if it’s ugly. Then move that person into the same space as your protagonist and let the friction come from the overlap rather than from the villain being assigned to it.

Logic doesn’t mean likable, and it doesn’t mean sympathetic. It means coherent. The audience doesn’t need to agree with the want. They need to be able to follow it.

The Tuesday Test

Here’s the one to run on your own antagonist.

Take your protagonist out of the story entirely. Don’t recast them, just remove them. Now ask: what is the villain doing on a Tuesday?

If you can answer in a sentence or two, with something specific, ongoing, and not related to the hero, you’ve got a character with a life. “He’s closing the deal that finances the whole operation.” “She’s quietly moving the evidence before the audit.” “He’s making sure no one finds out what happened in that house.” Those are wants in motion. They’d keep going whether anyone opposed them or not.

If your answer is “waiting,” “planning how to stop the hero,” or “I haven’t really thought about it,” that’s useful information. It doesn’t mean the character is broken. It means they’re currently borrowed from the protagonist’s story instead of living in their own, and there’s a very fixable gap to look at.

A quick way to check your answer: it should still sound like a story. If “what the villain does on a Tuesday” would make a reader curious about a version of the script told from their side, you’ve found something.

Making it work on the page

A few practical notes once you have the Tuesday answer:

Let the want show before the collision. A scene or two where we watch the villain pursue their goal, with no hero in the room, does more to build a real antagonist than any amount of backstory. It shows what they do when no one’s watching, which is the whole point.

Let it cost them something. A want with no price is just a preference. If the villain has to give something up, take a risk, or live with a choice, the audience believes the want is real.

Let it overlap with the hero’s, not mirror it. Opposition is strongest when both people are chasing something that can’t coexist, not when one is simply designed to be the other’s opposite. The tension comes from the collision, so make sure the collision isn’t the only thing the villain has.

Run it before your next draft

Before you go back into the pages, write one line for your villain: what they want, and what they’re doing on a Tuesday with the hero out of the picture. If the line comes easily, protect it. If it doesn’t, that’s your next draft’s best starting point.

At dev|cut.™, this is the kind of thing we look for when we read a script’s antagonist: not just whether they’re threatening, but whether they’d still be a person if the protagonist walked out of frame. Notes on that give you something to build from, not just something to fix.

If you want more of this, the craft breakdowns, the case studies, the occasional deep dive into what separates a strong draft from a stalled one, check out The Reader’s Note, our newsletter.

Want a read this specific on your own script? See pricing.

[Soon] The story continues… — Brian Hanford, Writer & Founder, dev|cut.™ · devcut.io

← Back to Blog