First, I put this here because I'm not sure where else it would be appropriate, it isn't modding per se since I don't intend to change anything and am not running any mods, but it isn't a glitch or anything like that. Hopefully this is the right place.
So I was always curious why lots of diplomacy in HOI3 is basically hopeless, with many interesting avenues of play met with a demoralizing "Impossible" response when trying to do things like offer alliances and what not to chart your own course against history. I decided to look into the scripts and I found two things:
That's Hearts of Iron 3/tfh/scripts/ai_diplomacy.lua.
Now, my intuition is that this is supposed to be the target country's "strategy" in the sense that this is how they view the nations of the world and these values are hardcoded somewhere to try to get countries to be friendly with their historical friends and enemies with their historical enemies. So the function is probably doing little more than grabbing a value from a map or something. But it does change over the course of the game. Probably just decays over time (though maybe not at a constant rate, nor one that is consistent between countries), but I REALLY wanted to just ask for the hell of it how one can change it if possible. Can I influence it with diplomatic actions? Intelligence? I don't think it has to do with alignment either, but I could be wrong.
If anyone else has dug into this before and pulled up answers, please share them!
Or, if anyone at paradox is interested in pulling back the veil on these two functions and satisfying my curiosity, I would be very grateful. I beg you!
So I was always curious why lots of diplomacy in HOI3 is basically hopeless, with many interesting avenues of play met with a demoralizing "Impossible" response when trying to do things like offer alliances and what not to chart your own course against history. I decided to look into the scripts and I found two things:
- Diplomatic distance is broken - say you are playing as Poland and want to try to ally with one of your neighbors to help when Germany attacks. Well, even if I border, say, Romania, their evaluation of me gets a -60 plus modifier because diplomatic distance is literally just the kilometer distance between capitals, and that divided by 10 is the calculated malus to acceptance chances.
- There are "Friendliness" and "Antagonism" values. Half of antagonism is a malus to the acceptance score, half of friendliness is a bonus - this is NOT relations. Relations is separate and is a direct malus if negative, or is divided by 10 and added as a bonus if positive.
Code:
loDiploScoreObj.Score = loDiploScoreObj.Score + loDiploScoreObj.TargetStrategy:GetFriendliness(loDiploScoreObj.ministerTag) / 2
loDiploScoreObj.Score = loDiploScoreObj.Score - loDiploScoreObj.TargetStrategy:GetAntagonism(loDiploScoreObj.ministerTag) / 2
That's Hearts of Iron 3/tfh/scripts/ai_diplomacy.lua.
Now, my intuition is that this is supposed to be the target country's "strategy" in the sense that this is how they view the nations of the world and these values are hardcoded somewhere to try to get countries to be friendly with their historical friends and enemies with their historical enemies. So the function is probably doing little more than grabbing a value from a map or something. But it does change over the course of the game. Probably just decays over time (though maybe not at a constant rate, nor one that is consistent between countries), but I REALLY wanted to just ask for the hell of it how one can change it if possible. Can I influence it with diplomatic actions? Intelligence? I don't think it has to do with alignment either, but I could be wrong.
If anyone else has dug into this before and pulled up answers, please share them!
Or, if anyone at paradox is interested in pulling back the veil on these two functions and satisfying my curiosity, I would be very grateful. I beg you!