My antagonist was a city commissioner named Arlen, and for three drafts he was the single most boring thing in my book. Arlen wanted power. He was dismissive, he manipulated people, he didn't care who got hurt, and his reasons for any of it were the kind of reasons that exist purely to make the plot happen — a thin coat of motive painted over a function. When my beta readers got to his chapters, the nicest thing any of them said was that he was 'fine.' A villain who is 'fine' is a catastrophe. Fine is the temperature of a character nobody fears, hates, or remembers.
The thing I had backwards
I'd been writing Arlen as the villain — building him from the outside, from what the hero needed to oppose. But nobody experiences themselves as the villain. Real people who do terrible things have a story in which those things were necessary, even noble, and they are the wronged party, the only adult in the room, the one willing to make the hard call. I knew this in theory. I could not, for the life of me, write it, because every time I tried to give Arlen a point I worried I was endorsing it.
So I gave the problem to Write a Villain Monologue Where the Villain Thinks They're Right. I used GPT 5.2 deliberately — this is hard reasoning work, constructing a genuinely coherent moral argument that's wrong but not stupid, and GPT 5.2 is the model I trust to build a real chain of logic instead of a cartoon. I filled in Arlen's worldview (institutions only survive when someone is willing to make the decisions everyone else is too sentimental to make), his goal (kill the independent oversight committee before it exposes the emergency cuts he ordered during the flood), who he's speaking to (the protagonist, whom he's just had arrested), and the dramatic moment (he's explaining himself, not gloating).
The line that made me put the laptop down
The monologue that came back had Arlen talking about the thirty thousand people who had food and clean water within the first week of the flood, because he moved money that was not, strictly, legally, his to move. He talked about the committee members who would later condemn him from rooms that stayed dry. He talked, just once, about a colleague who'd done everything by the book during a previous disaster and the people who died waiting for the book to allow help. And it ended — not on a threat, the prompt is strict about that — on this: 'The difference between us was never what we're willing to do. It's what we're willing to admit we've done.'
I sat there. Because he wasn't entirely wrong, was he, and that's the point, and I'd never managed to make him not-entirely-wrong before. The one flash of pain the prompt requires — the colleague who followed the rules and watched people die — that was the human moment that made the whole speech land. It cost Arlen something to say it. It made him a person.
What I appreciated, technically, was that the argument had real premises rather than a strawman dressed up as menace. A lazy villain speech says 'the weak deserve to suffer' and gives the hero an easy thing to be against. Arlen's speech said 'someone has to decide who eats first when there isn't enough, and pretending that decision is clean is a luxury the dry rooms can afford.' You can disagree with that — I do — but you have to actually disagree with it, you can't just recoil. The prompt's rule against mocking the hero's values without a counter-argument is what produces that quality. It forces the speech to engage the hero's morality instead of sneering at it, and engagement is what makes a villain dangerous on the page.
- Give the villain a coherent philosophy, not just a goal — a goal is a plot function, a philosophy is a character.
- The single moment of genuine pain is non-negotiable; it's what separates a villain from a position paper.
- Banning the closing threat forces a better ending — an offer or a quiet truth follows the reader home in a way 'you'll regret this' never does.
- Writing the villain's best argument doesn't endorse it. It makes the hero's victory mean something, because now they're beating a real idea.
What I did with it
I rewrote three of Arlen's scenes around the spine of that monologue. He's still the villain — he still has people arrested, he's still wrong about the cost of what he does to the living in service of the saved. But he's no longer 'fine.' One beta reader emailed me, slightly annoyed, to say she'd found herself agreeing with him for a paragraph and didn't appreciate it. That email is the best review I've ever gotten. Grab the Write a Villain Monologue Where the Villain Thinks They're Right prompt on Prompt Dock, give it your flattest antagonist's actual philosophy, and let it build the argument you've been too nervous to write. Then I run the speech through my Check a Character's Voice for Drift Across Scenes prompt against his other scenes, so the newly interesting villain still sounds like the same man two hundred pages later.