Then you don’t need 2 variables. If you want Logical/Emotional show up as opposed pair in stats, you should only create one variable:
*create logical 50
Then set up this code for your stats:
*stat_chart
opposed_pair Logical
Emotional
So, adding points to Logical would automatically subtract the same amount from Emotional. If you want to raise Emotional, subtract from Logical instead of using another variable. For more information, read this.
That means your code for the choice option you provided should have this general structure:
*choice
# Well? I say, deciding that the Detective is being truthful.
*set optimistic %+10
*set genuin %+10
*set D_relationship %+3
*if logical >60
*set logical %+10
*if logical <= 40
*set logical %-10
"Well, I say. It's blood, now. More text.
*goto end_conversation
Notice how emotional > 60 turned into logical <= 40. There is no condition for an unemotional and illogical character because such a character cannot exist if you set up variables like this.
However, if a character made a mix of logical and emotional decisions and now has Logical between 40 and 60, the game cannot decide their motivation!
There are more problems with this choice. Usually, players 1) don’t like their character’s motivation decided for them, 2) want to know how an option will affect their stats when they choose it. Imagine a hypothetical player who started playing as emotional character and decided to make more logical decisions later. They think about the text you presented them, logically decide the Detective is telling the truth, choose the option… Only to realise later their Emotional meter raised for no apparent reason! They are now stuck on the path of making emotional decisions.
To avoid such a scenario, I suggest making separate options for different motivations, like this:
"It's blood," the Detective says.
*choice
#My logical conclusion is the same as the Detective's.
*set optimistic %+10
*set genuin %+10
*set D_relationship %+3
*set logical %+10
*goto D_conversation_truthfull
#My gut feeling is telling me the Detective is truthful.
*set optimistic %+10
*set genuin %+10
*set D_relationship %+3
*set logical %-10
*label D_conversation_truthfull
"Well, I say. It's blood, now. More text.
*goto end_conversation
#According to my calculations, that cannot be blood. The Detective is lying.
*set optimistic %-10
*set genuin %-10
*set D_relationship %-3
*set logical %+10
"Something doesn't add up, Detective. Are you honest with me?"
*goto end_conversation
#This bastard cop is bullshitting me, and I should tell that!
*set optimistic %-10
*set genuin %-10
*set D_relationship %-3
*set logical %-10
"That is not blood! Stop deceiving me!"
*goto end_conversation
*label end_conversation
Or something more suitable for your game.
Yes. For more information, read this.