How Do I Foreshadow That a Character Is Really a Villain?

questions and answer talk bubbles

In a series I’m currently plotting out, I have a handful of characters who claim goals, allegiances, or identities that aren’t genuine. Examples include a minor antagonist who initially presents himself as an ally of Team Good, and a member of Team Good who tries to hide his past as a minion to the villain. My question is about how to make their reveals “click” rather than appearing random. Do you have any advice about how to hint that a character isn’t what they seem, without resorting to them making obviously revealing mistakes? I don’t want them to look incompetent, nor do I want their teammates to look incompetent for not catching on to them sooner.

Thank you so much for your time!


Hi Fern,

When an antagonist pretending to be on Team Good is obviously an antagonist, it’s usually because they have mannerisms that give them away. They’re an asshole, obviously manipulative, feel snakelike, or have other typical villain characteristics. The answer is just to let your hidden antagonist be more clever and charming than that. It’s not in the antagonist’s best interest to come off like a villain! Instead, let them act like a good friend and set up the reveal by foreshadowing their motivation for betraying the group. For instance, you might establish they have gambling debts that they’re on the hook for, giving them a reason to sell the others out. But a character who has gambling debts and a few shady connections could just as easily be a scrappy hero prone to a little mischief, like Han Solo.

Speaking of which, the biggest trick to hiding foreshadowing is simply to make what you’re doing look like it fits a different story trope or convention. That character who’s trying to hide their past as a minion? If they get a dark look whenever the villain is mentioned, some kind of history with the villain will be evident, but everyone will reasonably assume that their family was murdered by the villain or something. When readers learn the character is actually a former minion who broke with the villain, it will be surprising but also fit.


  • You don’t have to provide so many clues that readers who notice them can put two and two together. You only have to provide enough context that the reveal fits what they’ve learned.
  • Any clues you put in will be more obvious to you than readers. Readers never notice as much as you think they will.

You might get more ideas from my post on hiding your foreshadowing.

Best of luck with all your fun reveals!


Keep the answer engine fueled by becoming a patron today. Want to ask something? Submit your question here.

Read more about , ,



  1. Dave L

    One suggestion is to do foreshadowing out of sight of the others. The ex-minion only acts suspicious when they’re alone

  2. Jay

    A show I watched had the secret villain follow up every suspicious thing he said with a joke to throw the reader off, in addition to disguising him as a different trope. The jokes worked with the character too because they were presenting him as a snarky rouge with a heart of gold trope. Turns out there was no heart of gold.

  3. Joy

    Great question, and great answer, Chris! I was having the opposite problem with my antagonist who’s pretending to be on Team Good – that readers might catch on too quickly, because by process of elimination, this minor acolyte is the only named character left. Then I took some previous Mythcreants advice and gave him a better reason to be there, and a different reason for my main character to suspect him: because he’s dating her daughter. So she dismisses her early suspicions as overly protective parental bias, and moves on to other theories. Meanwhile, he’s secretly undermining the main character and her leadership with his tricksy magic, BWA-HA-HA!

    This answer gives me good ideas for how to foreshadow the big reveal, thanks!

Leave a Comment

Please see our comments policy (updated 03/28/20) and our privacy policy for details on how we moderate comments and who receives your information.