5 Tips For Crafting Morally Gray Characters Readers Love
Would you betray someone you love to save thousands of strangers? Would you become a monster to protect the people who matter most?
Morally gray characters force readers to sit with questions like this—and that discomfort is part of what makes them unforgettable.
These are the characters readers can't stop thinking about, even when they're uncomfortable with what those characters do. The ones who linger long after the book is finished. The ones readers argue about, defend, and love despite everything.
What makes them work isn't randomness or shock value. It's intentional craft.
In this post, I'm sharing five tips for crafting morally gray characters that feel authentic, compelling, and impossible to look away from. Let’s dive in.
What "Morally Gray" Actually Means
Morally gray doesn't mean "bad person" or "villain with a sad backstory." It means a character whose moral compass doesn't align neatly with conventional right and wrong. They exist in the space between hero and villain, and their choices come from an internal logic the reader can understand—even when they disagree.
This ambiguity is what creates the tension that makes these characters so magnetic: readers find themselves loving and hating them at the same time. They feel sorry for them, root for them, and yet don't always agree with their actions. That push-and-pull is the heart of moral grayness.
One clarification: morally gray and antihero often get used interchangeably, but they're not quite the same.
- An antihero is a protagonist who lacks traditional heroic qualities.
- Someone whose morally gray can be any type of character—a protagonist, antagonist, love interest, side character, etc.—whose morality is ambiguous.
All antiheroes are morally gray, but not all morally gray characters are antiheroes.
The examples in this post are primarily from fantasy, but morally gray characters thrive in every genre—think Amy Dunne (Gone Girl), Walter White (Breaking Bad), or Evelyn Hugo (The Seven Husbands of Evelyn Hugo).
Alright, now that we’re on the same page about what it means to write a morally gray character, let’s dive into my top five tips for crafting this type of character in your novel.
Tip #1: Ground Your Morally Gray Character in a Worldview That Justifies Their Actions
Morally gray characters believe they're doing the right thing—or at least the necessary thing. Their worldview might be skewed, but it follows its own logic.
And this is the key to crafting a really compelling morally gray character: readers need to understand why this character operates the way they do. Without that understanding, the character will feel inconsistent—or just plain confusing.
So where does that worldview come from? Almost always, it's shaped by the character’s backstory. To uncover it, ask questions like:
- What happened to this character in the past?
- What did they learn about the world or themselves from those experiences?
- How does this show up in the present day?
For example, let's say a character has spent years in survival mode—fighting for their safety, their family, their next meal. Their worldview will reflect that. And when readers understand that life has taught this person the world is brutal and unfair, they can better understand why they make the choices they do.
But worldview isn't just about what a character will do—it's about what they won't do as well. This is where their moral code comes in—the lines they won't cross, which reveal what they actually value beneath the gray.
Maybe they'll lie, cheat, and manipulate, but they'd never hurt a child. Maybe they'll destroy their enemies without hesitation, but they'd die before betraying their family.
And here's one more thing to keep in mind: often, a morally gray character's greatest strength and greatest flaw are the same trait. The thing that makes them effective is also the thing that causes harm. This duality creates internal tension, making their grayness feel inevitable rather than arbitrary.
As an example, consider Cersei Lannister from A Game of Thrones.
Cersei's worldview is forged by a lifetime of being underestimated and diminished because she's a woman in a world that rewards men. She believes power is the only protection, and her children are the only thing worth protecting. Her fierce love for her children is genuine and sympathetic—and it's one of the most human things about her.
But that same love is what justifies (in her mind, at least) every terrible thing she does. She'll destroy anyone who threatens them. Her strength and her flaw are the same trait, just viewed from different angles—and that's what makes her impossible to look away from even when she's monstrous.
Related: How To Develop Your Character's Backstory
Tip #2: Put Your Character in Lose-Lose Situations
Once you've established who your character is, the next step is to test them. And the best way to reveal moral grayness is to force your character into situations where there's no clean answer.
Lose-lose dilemmas are the crucible of morally gray characters.
These are situations where every option costs something—where choosing one value means betraying another. Save your crew or get your revenge. Keep your walls up or let someone in. Protect your reputation or show mercy.
These impossible choices do two important things:
- They reveal what your character truly values (because they have to choose)
- They make readers feel the weight of the grayness rather than just observing it
When there's no right answer, readers can't judge from a comfortable distance. They're forced to ask themselves: What would I do in this situation?
As the writer, your job is to construct these dilemmas intentionally.
Look at your character's worldview, their goal, and their code—then design situations that put those things in conflict with each other. Ask questions like:
- What would force them to choose between two things they value?
- What would make them compromise their own code?
- What situation would force them to become the thing they hate?
As an example, consider Kaz Brekker from Six of Crows.
Kaz is constantly caught between impossible choices. His need for revenge wars with his responsibility to protect his crew. His feelings for Inej war with his inability to let anyone close. His trauma makes even simple touch unbearable—but intimacy requires vulnerability. And so, choosing to protect himself emotionally means pushing away the person he cares about most. Choosing vulnerability feels like annihilation. There's no clean answer, and that tension drives his entire arc.
Tip #3: Let Your Character Make Questionable Choices (With Real Consequences)
It's not enough to put your character in difficult situations. You have to let them make the ugly choice—and then make sure it has real consequences.
This is where many writers pull back. They soften the gray. They let their character make "bad" choices that turn out to be secretly justified—which means the character isn't really morally gray. They're just a hero with edgy branding.
Morally gray characters need to do things that genuinely cost something. Things the reader might not forgive. Things that don't get neatly redeemed—damaged relationships, lost trust, guilt that lingers.
When a character makes a morally questionable decision and walks away unscathed, it feels like the narrative is letting them off the hook. But the discomfort is the point.
Readers should sometimes wince. They should sometimes disagree. They should sometimes wonder if they can keep rooting for this person.
That said, there's a difference between "morally complex" and "irredeemable." Certain lines, once crossed, will lose the reader entirely. A character can do terrible things and remain compelling—but some actions will make readers close the book. So, it’s important to know where that line is for your story and your audience.
As an example, consider Severus Snape from Harry Potter.
Snape is cruel to children, petty, and driven by an obsessive love that borders on possessiveness. He bullies students, holds grudges for decades, and makes a child's life miserable because of who his father was. But at the end of the series, he makes the ultimate sacrifice for Harry. This sacrifice doesn’t erase the harm he caused—it complicates it. Readers are left holding both truths: he was heroic, and he was unkind. The narrative doesn't let him off the hook, and neither do readers. That unresolved tension is exactly why he's still being talked about decades later.
Tip #4: Give Readers a Reason to Stay Invested in Your Morally Gray Character
Readers need a reason to care about your character beyond their moral grayness. They need something that keeps them rooting for (or at least fascinated by) this character even when their choices are hard to stomach.
For example, this could look like vulnerability beneath the hard exterior. Or a relationship that humanizes them. Or a goal the reader can get behind, even if the methods are questionable. Or maybe even moments of genuine goodness that complicate the bigger picture.
You’ll also want to show your morally gray character wrestling with their choices.
A character who is perfectly fine doing terrible things reads as a villain. A character who struggles—who feels the weight of their decisions, even if they make them anyway—retains their humanity. Readers need to see that internal conflict, even if it doesn't stop the character from acting.
The goal isn't to make your morally gray character likable—plenty of compelling characters aren't. It's to make them someone readers want to keep watching, someone they can't look away from, even when they're not sure they should be rooting for them.
As an example, consider Cardan from The Cruel Prince.
Cardan is introduced as a cruel bully who torments the protagonist. There's no obvious reason to root for him. But as the story unfolds, we see the vulnerability beneath his cruelty—his abusive upbringing, his self-loathing, and his desperate need to be loved. We watch him wrestle with who he's been in the past and who he might become in the future. That crack in the armor transforms him from a villain readers hate into someone they're desperate to understand.
Related: Questions to Help You Write Better Characters
Tip #5: Resist the Redemption Arc Shortcut
One of the biggest mistakes writers make with morally gray characters is rushing to "fix" them. They want the character to learn their lesson, make amends, and become good.
But moral grayness isn't a problem to be solved. It's the point.
This doesn't mean your character can't evolve. They can definitely grow, change, and make different choices. But that evolution should feel earned and complicated—not a clean pivot from gray to good. If the character's arc wraps up too neatly, it can feel like you're letting them (and the reader) off the hook.
In other words, the best morally gray arcs don't erase the gray. They deepen it, complicate it, or force the character (and the reader) to sit with it.
Sometimes the character becomes more morally compromised, not less. Sometimes they find peace without ever fully redeeming themselves. Sometimes they stay exactly who they are—and the story is honest about what that costs them.
As an example, consider Rin in The Poppy War.
Rin begins as a scrappy underdog fighting her way out of poverty. By the end of the series, she has committed genocide. Her arc doesn't redeem her—it darkens. She becomes more morally compromised as the story progresses, and the narrative doesn't flinch from that. It doesn't excuse her choices or soften their impact. Rin's moral grayness isn't resolved; it's confronted. That's what makes her arc so devastating and so memorable.
Final Thoughts
Morally gray characters work because they reflect something true about human nature: that people are complicated, that good people do bad things, and that understanding someone isn't the same as excusing them.
The key is in making their grayness feel intentional—rooted in worldview, tested by impossible choices, and honest about the costs. You're not just making a character "edgy" or "complex" for its own sake. You're building someone whose choices make sense from the inside, even when they're hard to accept from the outside.
When you get it right, you create characters readers can't look away from—even when they want to.
Like this post? You might also like…