“Not every hero wears white. Not every villain twirls a moustache.”
Let’s be honest: morally gray characters are having a moment. They dominate TikTok, swoon across the pages of romantasy, and spark endless discourse in fandom circles. And as someone who writes fantasy (and reads way too much of it), I totally get the appeal. They’re deliciously complicated, impossible to predict, and often the ones who steal the show.
But here’s the catch — just giving a character a tragic backstory and letting them occasionally stab someone isn’t enough. If you want them to actually matter to the reader, they need to be more than just broody and mysterious.
So, let’s talk about how to write morally gray characters that feel real, layered, and anything but hollow.
😈 Motivation Is Everything
A morally gray character isn’t just someone who does bad things. They’re someone whose choices make sense within their worldview — and who likely sees themselves as the hero of their own story.
Think of Kaz Brekker from Six of Crows. He’s ruthless, manipulative, and has a taste for vengeance — but his motivations are crystal clear. Every calculated move is rooted in trauma, loyalty, and survival. We don’t just see what he does — we understand why.
As writers, it’s our job to excavate that internal logic. Why do they make the choices they do? What event in their past made them decide the world was cruel — and how do they plan to survive it?
Give your morally gray characters a moral code — even if it’s twisted. What lines will they never cross? What principles do they cling to, even in the darkest moments? These internal rules define them more than the chaos they unleash.
🧨 Actions Have Consequences
One of my biggest pet peeves? Morally gray characters who commit atrocities and face zero pushback. It’s lazy writing and undercuts the whole point.
If your character lies, steals, or betrays their friends, let that cost them something. Maybe people stop trusting them. Maybe their choices backfire in unexpected ways. Maybe they regret it and spiral into self-loathing. Maybe they don’t — and that makes them even more terrifying.
Whatever the fallout, show it. Let it ripple through their relationships, their plans, their own sense of identity. The messier, the better.
Consequences create depth. They force reflection. And they help the reader see the humanity (or lack thereof) beneath the mask. No one exists in a vacuum — not even a morally questionable warlord with a secret soft spot for cats.
🔥 Give Them Someone Who Sees the Good (Even If It’s Tiny)
Even your most morally ambiguous character should have someone who believes there’s something redeemable about them. It could be a love interest, a sibling, a dog — whoever. That dynamic makes things interesting.
This doesn’t mean the character is secretly a cinnamon roll. It just means there’s conflict. That tension between who they are and who they could be? That’s where the magic happens.
Think Nyktos from The Flesh and Fire series. He’s powerful, dangerous, and often unflinchingly brutal — but there’s a softness buried beneath the steel, especially when it comes to Sera. Her belief in the good he hides (and sometimes denies) adds emotional weight to every brutal choice he makes.
It also adds stakes. If someone sees the good in them, there’s something to lose — something that might tug them toward redemption. Or make their downfall even more devastating.
😏 Let Them Surprise Us
Gray characters should keep us on our toes. Let them make a selfless choice just when we’ve written them off. Let them double-cross someone when we think they’ve finally turned a corner.
But here’s the trick: their decisions still have to make sense. If a character suddenly acts out of character just to shock the reader, it feels cheap. Instead, plant the seeds early. Give us just enough foreshadowing that we look back and go, “Of course they did. I should’ve seen it coming.”
Consistency is key — but that doesn’t mean predictability. The best morally gray characters are walking contradictions, and watching those contradictions collide is where the narrative gold lies.
📚 Don’t Confuse Edge With Depth
Not every brooding assassin is morally gray. Sometimes they’re just mean.
It’s easy to fall into the trap of thinking that violence or trauma automatically makes a character compelling. But real moral complexity comes from choice — and the awareness of that choice. The internal struggle. The rationalisation. The guilt. Or lack of it.
Your character might kill without remorse, but do they wrestle with it later? Do they justify it? Do they compartmentalise it? Do they hide it from those they love? That’s where the nuance lives.
Being morally gray is about layers — not just edge. If your character’s only trait is “angry and hot,” they’re not morally gray. They’re just a Tumblr aesthetic with a knife.
Writing a great morally gray character is like walking a tightrope. You want them flawed, but not irredeemable. Dangerous, but relatable. The goal isn’t to make readers like them — it’s to make them care.
So go ahead — write the thief with a soft spot. The villain with a conscience. The hero who occasionally sets things on fire. Just give them the depth they deserve.
Make us root for them. Question them. Argue about them in comment sections. Because if readers are still thinking about your morally gray character long after the book ends? You’ve done your job.
About the Creator
Georgia
Fantasy writer. Romantasy addict. Here to help you craft unforgettable worlds, slow-burn tension, and characters who make readers ache. Expect writing tips, trope deep-dives, and the occasional spicy take.


Comments
There are no comments for this story
Be the first to respond and start the conversation.