How to write morally grey characters
The difference between a morally ‘white’ character and a morally ‘grey’ character is how far they’ll go to pursue their ideals.
So make your morally grey character hold and implement an idea that is technically morally wrong, but for the right reason.
The vast majority of us on this planet is ‘Morally grey.’ We lie, we hurt each other, we cheat, we fail, we gossip about each other. It is more than likely that if you write your character to be realistic enough, he/she will eventually have to make some hard decisions that make them fall on the morally grey line. How much will they sacrifice for their ideal? For their family? For their pride?
EXAMPLE: War. War is horrible, but if a nation is under attack, it has to retaliate. But who has to right to draft innocent civilians, some about 19 or 20 years old, and force them to kill each other?
Now, this may seem like a feeble excuse for a morally grey character. After all, many people support war. But back to my point on humans: The vast majority of us on this planet is ‘Morally grey.’ But our grey area is just not very obvious.
So, you have a character who is already toeing the greyline for his/her opinions; now, you have to make them implement it. Are they army generals? Make them blow up a village to repel the enemy troops. Are they scientists? Choose between developing weapons to kill, or sitting passively as their nation crumbles.
Torture your characters. Give them a black-or-white decision, where both choices will lead to success for a certain ideal, but for a terrible price.
Humans don’t show much of their true nature when we’re just going about with our normal lives. But when we are put at the edge, we must make choices on how far we will go to protect and pursue the things we hold dear to ourselves.
A lot of people reveal their ‘Morally grey’ side when they’re pushed to the edge
Give the character a hard decision that forces them to sacrifice something/someone for the ‘greater good.’