Suggestion - Time to Fix your Rotten Attitude Son.

  • We have updated our Community Code of Conduct. Please read through the new rules for the forum that are an integral part of Paradox Interactive’s User Agreement.

Vishaing

MM Prime Minister in Exile
12 Badges
Jan 25, 2008
1.420
724
  • Crusader Kings II
  • Europa Universalis III
  • Europa Universalis IV
  • Heir to the Throne
  • Europa Universalis III Complete
  • March of the Eagles
  • Europa Universalis III Complete
  • Victoria 2: A House Divided
  • Victoria 2
  • 500k Club
  • Crusader Kings II: Holy Knight (pre-order)
  • Europa Universalis IV: Pre-order
Hello everyone I'm back again to drop another absurdly long post on the forum. The largest yet! The file is 60 Kb of Pure Text, beating the previous record holder; Re-Re-Thinking Ideas which was a downright puny 27 kb by more than double!

This time, I'm talking about a subject very dear to me; Diplomacy.

I will state this right out; EUIV actually has a very good Diplomacy AI, probably one of the best in the entire game industry. It is not without its flaws, however overall the system is incredibly dynamic and AI countries are generally pretty good at figuring out what is in their best interest.

However after examining the files for my own modding efforts, and in particular in an attempt to make Coalition Membership a bit more sensible as I will definitely agree it is currently not, I have come up with a decent sized list of things I don't like.

So here is that list along with my recommendations. I'm going to start off with a general complaint, which is really more of a request for a specific script hook, and then I'll look at each Attitude individually, note what I feel is wrong with it, and provide an overview of how to fix it. I will also be providing an updated bit of code for each Attitude with the modifications that are currently possible and the ones I want to make commented out.

At the Bottom are the files I have already modified, and I'll drop a download link here too. I would very much like it if anyone who tries this out reports their findings. A lot of the numbers are ones I have arrived at arbitrarily and this will likely need a Shite Tonne of Balancing Work.

We need a "has_ai_attitude" Trigger
This may already exist, as the EUIV Wiki does list an "attitude" condition, however it is unsorted and does not describe the syntax of the command. My attempts to figure out the syntax did not appear to work, so I am assuming it is not intended for this purpose.

There is a "set_ai_attitude" event effect, which I have seen used precisely once; to set the ai_attitude of a country to Friendly towards the Netherlands when they rebel.

Quite frankly, we need a way to detect what attitude a country has towards another. Not only will this radically expand the diplomatic events we can introduce and provide useful MTTH modifiers to events like the border dispute event to make it less likely to happen to countries you are friendly with, it will mean we can introduce a bit of reciprocity into the Attitude System itself. Having a Friendly attitude with another country should provide a small boost to their weight on being Friendly towards you. Not enough to completely override their situation, but enough that it will give the AI, and the Players, another way of interacting with each other.

Ideally, I would use the following.
Code:
has_ai_attitude = {
	who = FROM
	value = attitude_friendly
}

Changes to Individual Attitudes
So here are the changes that I would make to the existing attitudes. And at the end I will detail the two new Attitudes I have created. I will cover each attitude in the order they appear in the ai_attitudes.txt file.

attitude_human
....The Human Attitude. This is the attitude that the Player Country is hard locked into always having and was introduced in a patch as a response to player's complaints about the AI choosing their attitude for them and selecting nonsensical attitudes and thus breaking alliances and doing other silly things.

So what's Wrong with it?
THE FACT THAT IT EXISTS IN THE FIRST PLACE!

I will never for the life of me understand why Paradox introduced this attitude. Yes, the fact that the AI was choosing our Country's Attitudes for us was a problem, but the solution to that problem was to Give Us Control, not remove us from the system entirely.

The AI already has enough trouble "reading" the player because we don't have numbers to direct our goals that the AI can look at. And so Paradox went and removed the one thing that Players did still have that the AI could look at and get an idea of our goals from.

Now the Player is even more of a shapeless unknowable mass, some eldritch horror that the AI cannot comprehend, and while we'll never have an AI that can truly understand how the Human mind works, the least we can do is give a way for the AI to look at our actual goals.

There was a problem, I won't deny that, but Paradox chose the absolute worst possible method of handling it short of ignoring it entirely.

So How do we Fix it?
Put the Player country back into the Attitude System, just let us control the Attitude. Plop a Pull Down Menu into the Diplomacy Interface that lets us choose our Attitude towards a country.

Now there would need to be other changes to accommodate this, but it won't actually require anything fancy like a trigger entry. Just make it so if the AI weight for an Attitude is 0, the player cannot select it. The only time this is true is in Hard Lock cases like for the Overlord/Vassal Attitudes. Hostile/Neutral/Friendly would always be available between countries except in the case of the Vassal Situation.

Some Attitudes would be automatically adopted depending on what you do. Selecting a country as a Rival for instance will lock you into the Rivalry Attitude until you remove them from your Rival List. Joining a Coalition will put you into the Outraged Attitude. In the event you fall under a Union or become a Vassal it will automatically give you the Vassal attitude but you will be able to select Hostile whenever you want.

Now there will be one other set of changes that need to be made, namely the introduction of a system to prevent or discourage the player from "lying" to the AI while providing certain incentives to choose fitting attitudes. Something that would prevent the Player from selecting "Friendly" as their Attitude and then declaring war the next day, but which could also give them bonuses if they choose an appropriate attitude for what they are doing.

First, Some attitudes would prevent or penalize certain actions. Personally, I think having the "Friendly" attitude should outright prevent you from declaring war on another country, but if that's too strong for people, move the "Good Relations" stability hit from Opinion to Attitude. You declare war on someone you had the Friendly or Cordial attitude with? -2 Stability and +4 War exhaustion plus some AE for good measure and kiss your Trust goodbye.

On the other hand, we can provide certain bonuses to having an attitude towards a country. For instance, having the Threatened attitude towards a country can provide a small Morale Boost that scales with the difference in strength between the two countries. Small little Albania will be Threatened by the Big Scary Ottomans, and because of the massive difference in power will receive a considerable Morale Boost. However if your countries are about the same strength the Morale boost will shrink to nothing, and you will instead get a constant Prestige Drain, growing to a large prestige Drain if you are actually stronger than them.

Likewise, being Outraged, IE in a Coalition, will provide a similar boost to Morale and Manpower Recovery, again, one that scales with the strength difference.

I'll talk more about what specific bonuses/penalties I feel Attitudes should have.

In addition to those bonuses and penalties, we can work the changing of Attitudes into a system that currently exists as pretty much just window dressing; Trust. The Trust system is horribly under-utilized at the moment, being something that you just gradually build up simply by existing. Trust should be heavily involved in the Attitude System, and should be gained by maintaining consistent Attitudes, in addition to honoring calls to arms, not breaking truces, stuff like that. And it should be lost by changing your Attitude, with the magnitude of the change determining how much you lose and with who. Going from Friendly to Neutral will lose you a bit of trust with that country. Going from Friendly to Hostile, should lose you a lot of trust with not only that country, but all of the other countries you are "Friendly" with, much like how Claiming a Throne damages your relations with countries you have a Royal Marriage with.

And this wouldn't just help the AI. Players have been asking, practically begging, for something, anything that we can use to communicate our goals to the AI since the first bloody version of this game. Attitude is the perfect system to use for that. It can even be incorporated into the Call to Arms system. Flagging a country as Friendly will be a way of telling your allies "We won't fight these guys", so they won't issue you the call to arms.

Likewise, by letting the Player control their country's Attitude towards another, that means we'll give the Player control of the Opinion Bonuses and Penalties associated with certain Attitudes. So now the Player will be able to choose the Hostile Attitude towards the Pope and pass the Popery Act. And if we get the Attitude Detection script hook we can modify the decision to be based on Attitude and have the Popery Act automatically removed if your Attitude shifts back to Friendly.

Furthermore, by providing actual gameplay bonuses to certain attitudes we can help balance smaller countries against larger ones, and provide a natural and dynamic method of strengthening Coalitions that Isn't dependent on arbitrarily constricting your Peace Options or just cramming the Coalition full of major powers.

Now then, on to the other Attitudes themselves and how I would change them;

attitude_neutral
The Neutral Attitude.... Not much to say about it. It's Neutral.

So what's Wrong with it?
There isn't really anything truly wrong with it, but I have made some slight modifications.

So How do we Fix it?
Well, I added Distance Calculations. Countries who are very far away from each other will naturally be neutral to each other. I expanded the Hard Lock Overrides to include any relation between the two countries, and also to look at the distance between the FROM Country and subjects of the ROOT country. You won't be able to conquer a continent by Vassals and keep everyone on that continent Neutral to you.

In Particular, this should help prevent you from getting World Spanning Coalitions unless you are yourself a World Spanning Empire.

The Neutral Attitude should not provide any benefits, but if you declare war on a country you have the Neutral Attitude towards you should gain 2 War Exhaustion immediately.
"Why are we fighting them again? I don't even know who they are..."
Code:
# Neutral - not really interested in diplomacy/war
attitude_neutral = {
	icon = 2

	antagonize = no
	annex = no
	weaken = no
	coalition = no
	warn = no
	vassalize = no
	ally = no
	befriend = no
	protect = no
	threat = no
	ignore = yes

	chance = {
		factor = 50
			#Hard Locks
			#They own a Province that is connected to us by claim/core/culture/etc
		modifier = { factor = 0.0 
			OR = { 
				FROM = { any_owned_province = { is_claim = ROOT } }
				FROM = { any_owned_province = { is_core = ROOT } }
				FROM = { any_owned_province = { accepted_culture = ROOT } }
				FROM = { any_owned_province = { primary_culture = ROOT } }
				FROM = { any_owned_province = { culture_group = ROOT } }
				FROM = { any_owned_province = { religion = ROOT } }
			}
		}
			#They have Relations with us or border one of our subjects
		modifier = { factor = 0.0
			OR = {
				overlord_of = FROM
				is_subject_of = FROM
				alliance_with = FROM
				senior_union_with = FROM
				junior_union_with = FROM
				is_rival = FROM
				marriage_with = FROM
				FROM = { any_neighbor_country = { is_subject_of = ROOT } }
				FROM = { any_neighbor_country = { alliance_with = ROOT } }
				FROM = { any_neighbor_country = { senior_union_with = ROOT } }
				FROM = { any_neighbor_country = { junior_union_with = ROOT } }
			}
		}
		
			#Distance Modifiers - FROM to ROOT
		modifier = { factor = 5.0 border_distance = { who = FROM distance = 2000 } }
		modifier = { factor = 2.5 border_distance = { who = FROM distance = 1500 } }
		modifier = { factor = 2.5 border_distance = { who = FROM distance = 1000 } }
		modifier = { factor = 1.5 border_distance = { who = FROM distance = 800 } }
		
			#Distance Modifiers - FROM to ROOT Subjects
		modifier = { factor = 0.5 any_known_country = { is_subject_of = ROOT NOT = { border_distance = { who = FROM distance = 800 } } } }
		modifier = { factor = 0.5 any_known_country = { is_subject_of = ROOT NOT = { border_distance = { who = FROM distance = 400 } } } }
		modifier = { factor = 0.5 any_known_country = { is_subject_of = ROOT NOT = { border_distance = { who = FROM distance = 200 } } } }
		
			#Distance Modifiers - ROOT to FROM Subjects
		modifier = { factor = 0.5 any_known_country = { is_subject_of = FROM NOT = { border_distance = { who = ROOT distance = 800 } } } }
		modifier = { factor = 0.5 any_known_country = { is_subject_of = FROM NOT = { border_distance = { who = ROOT distance = 400 } } } }
		modifier = { factor = 0.5 any_known_country = { is_subject_of = FROM NOT = { border_distance = { who = ROOT distance = 200 } } } }
		
			#AI Logic
		modifier = { factor = 0.5
			OR = { 
				threat = { who = FROM value = 100 }	
				befriend = { who = FROM value = 100 }	
				antagonize = { who = FROM value = 100 }	
				vassalize = { who = FROM value = 100 }	
				protect = { who = FROM value = 100 }					
			}
		}			
		modifier = { factor = 0.5
			OR = {
				threat = { who = FROM value = 200 }
				befriend = { who = FROM value = 200 }	
				antagonize = { who = FROM value = 200 }	
				vassalize = { who = FROM value = 200 }	
				protect = { who = FROM value = 200 }					
			}
		}
	}
}

attitude_hostile
The Hostile Attitude indicates that they don't like you any more than that weird alien in Star Wars liked Luke and they want to conquer your provinces so you better hack off their arm because that's a totally reasonable response to a guy punching someone. It is also used to determine when an AI Subject will seek independence, that's why it has all those Colonial Nation checks and Liberty Desire Checks.

So what's Wrong with it?
Nothing Actually, I don't mind it. It could probably be a bit more nuanced, but then again it probably is and its just that the Nuance is in The Engine and thus hidden from my view.

So How do we Fix it?
We Don't? Yeah this Attitude is pretty good. I suppose we could have more checks for how Vassals behave, but those checks are already largely in the Vassal Attitude.

So what tangible effects should this have? Well, a Morale Boost when fighting a Nation with this Attitude for one. Other than that, I would say nothing. The Hostile Attitude should not provide much, you should still have to Work for your Conquest. It should provide a heavy mutual Opinion Penalty, and switching to this from another attitude should reduce the FROM Nation's Trust in you. If you switch to this from Friendly it should reduce the Trust of all Nations with you.
Code:
# Hostile - desires conquest
attitude_hostile = {
	icon = 3

	antagonize = yes
	annex = yes
	weaken = no
	coalition = no
	warn = yes
	vassalize = no
	ally = no
	befriend = no
	protect = no
	threat = no
	ignore = no

	chance = {
		factor = 100
			#Hard Locks
			
			#Colonial Nations Independence
		modifier = { factor = 2.0 is_colonial_nation = yes liberty_desire = 0.5 }
		modifier = { factor = 2.0 is_colonial_nation = yes liberty_desire = 0.6 }	
		modifier = { factor = 5.0  is_colonial_nation = yes liberty_desire = 0.7 }
		modifier = { factor = 25  is_colonial_nation = yes liberty_desire = 0.8 }	
		modifier = { factor = 100 is_colonial_nation = yes liberty_desire = 0.9 }								 #SCREW YOUR TEA
		
			#AI Personality
		modifier = { factor = 1.5 personality = ai_militarist }	
		
			#Diplomatic Situation
		modifier = { factor = 0.5 alliance_with = FROM }

			#Military Strength Concerns
		modifier = { factor = 1.5         military_strength = { who = FROM value = 2.0 } }		
		modifier = { factor = 1.5         military_strength = { who = FROM value = 1.5 } }
		modifier = { factor = 0.5 NOT = { military_strength = { who = FROM value = 0.75 } } }	
		modifier = { factor = 0.5 NOT = { military_strength = { who = FROM value = 0.50 } } }	
		modifier = { factor = 0.5 NOT = { military_strength = { who = FROM value = 0.25 } } }
		
			#AI Logic
		modifier = { factor = 2.0         antagonize = { who = FROM value = 400 } }		
		modifier = { factor = 2.0         antagonize = { who = FROM value = 300 } }		
		modifier = { factor = 2.0         antagonize = { who = FROM value = 200 } }	
		modifier = { factor = 0.5 NOT = { antagonize = { who = FROM value = 100 } } }		
		modifier = { factor = 0.0 NOT = { antagonize = { who = FROM value =  25 } } NOT = { AND = { is_colonial_nation = yes liberty_desire = 0.5 } } }
		modifier = { factor = 0         protectorate = { who = FROM value = 100 } }		
		modifier = { factor = 0            vassalize = { who = FROM value = 100 } }	

			#Opinion
		modifier = { factor = 2.0 NOT = { has_opinion = { who = FROM value = -199 } } }		
		modifier = { factor = 2.0 NOT = { has_opinion = { who = FROM value = -150 } } }		
		modifier = { factor = 2.0 NOT = { has_opinion = { who = FROM value = -100 } } }		
		modifier = { factor = 2.0 NOT = { has_opinion = { who = FROM value =  -50 } } }	
		modifier = { factor = 2.0 NOT = { has_opinion = { who = FROM value =    0 } } }	
		modifier = { factor = 0.5         has_opinion = { who = FROM value =   50 } }
		modifier = { factor = 0.5         has_opinion = { who = FROM value =   75 } }
		modifier = { factor = 0.5         has_opinion = { who = FROM value =  100 } }
		modifier = { factor = 0.5         has_opinion = { who = FROM value =  125 } }
		modifier = { factor = 0.5         has_opinion = { who = FROM value =  150 } }
		modifier = { factor = 0.5         has_opinion = { who = FROM value =  175 } }
		modifier = { factor = 0.5         has_opinion = { who = FROM value =  200 } }
	}
}

attitude_rivalry
The Rivalry Attitude is not a full Attitude like the others, all of the Logic is actually in The Engine and this Attitude is only chosen by an AI if they select a country as a Rival. The single line of Code is a check to make the AI chance 0 if the FROM country is not a Rival of ROOT.

So what's Wrong with it?
All of the Rivalry Selection code is in the Engine and thus I cannot Modify it? Yeah there's nothing really I can do with this which is kind of annoying, but what are you gonna do. I suppose I could actually modify it so the AI could select this attitude even for countries it has not selected as a Rival, and that could be interesting as I do think the 3 country limit is pretty damn arbitrary, but I don't know what sort of unintended side effects this could have. To be fair, with the 3 country limit and the new strict rules about appropriate rivals the game needs more complex calculations than are realistically possible in the Attitude Files.

So How do we Fix it?
There's really not much to fix, as this Attitude doesn't have any actual logic in it, all of the Rivalry Selection Logic is in the Engine. I suppose I can talk about what bonuses Rivalry Attitude should have?

Well, there's already Power Projection. I think Declaring War on your Rival should provide a slight Morale Boost when fighting them. Maybe a small Manpower Recovery Boost. Oh yeah, this Attitude should only be available and should be automatically selected for any country you select as your Rival, obviously, and as it currently works for the AI. It should still provide a major mutual Opinion Penalty, allowing you to actively worsen your relations with another country, again, really only important for the Popery Act I mentioned above.

Actually this right here is a pretty good place to talk about how this Attitude System would be a good place to relocate AI code that is currently in the Engine which would allow us to greatly open up the scripting potential of The AI. In particular, with respect to Attitudes, Veritas et Fortitudo has already started creating unique Attitudes for different Nations, and I think that is an absolutely brilliant method of scripting historical strategies without hard coding the AI into those strategies.

This is an area of game development with a lot of potential for really cool things. If we could port the AI Logic that goes into selecting Rivals to this block we could do a lot of cool things. For instance, we could create our own dynamic Historical Friend checks. So if you maintain an alliance for 3 centuries in game we could provide an Opinion Modifier via event. This could then be checked for in the Attitude Logic.

We could also, if the Attitudes had an "Effect" block that could scope to the ROOT or FROM countries, we could provide scriptable bonuses for our unique Attitudes. We could provide a serious Morale or Defensiveness Boost to Albania via an "Albanian Resistance" attitude. We could create a "Protestant League" attitude for Protestant HRE states targeting a Catholic Emperor that gives considerable Morale Boosts to make the Reformation more interesting.

There's a lot of potential in this system that is sadly unrealized at this point.

If you Got a Problem with Coalitions, Here's To You
attitude_outraged
Oh Man, the first of the Attitudes (other than attitude_human) I have a serious Problem with!

The Outraged Attitude is how the AI selects when to join into a Coalition against a country. It is thus the Attitude that is most commonly noticed by The Players as they tend to get Coalitions against them, like a lot.

So what's Wrong with it?
Everything. Not really, but the major problem with this attitude is a flaw in the fundamental concept behind it; The major problem is that it's too damn dependent on Aggressive Expansion!
This Attitude is almost completely based on AE when in reality it should be far more based on Threat and a comparison between the Army Sizes of the two countries. There is currently a token effort to represent threat, but no effort at all to compare sizes, which is why you get things like France entering into a Coalition against the Palatinate for annexing Mainz.

So How do we Fix it?
First off, we make Threat far more important. AE is still important, but at the lower levels, up until -200, I reduced the impact by a lot. Threat is always a considerable factor, and I added checks for Threat above 400, which provides huge bonuses to this Attitude.

I Left in the Hard Lock which prevents this attitude if the country has 0 AE, primarily because if I didn't it led to every country bordering the Ming entering a Coalition and just completely wrecking them in the first decade of the game. The same thing happened to Burgundy and I can't have that, if Burgundy gets destroyed what will I (Austria) Inherit?!? On the other hand, I also added a check to Threat, such that if a country's Threat level is below 50 they Will Not join a Coalition against that country. This means you Can in fact play as a "Gentle Giant" who everyone regards as a Threat but, because you aren't actually expanding at all, does not enter into a Coalition. It also means you won't need to worry about countries in parts of the world you have no presence in joining a Coalition just because enough AE Bled out to them.

Next, I added a block that compares Army Strength, so countries with vastly larger armies will not join coalitions against their weaker neighbours. I added a third Hard Lock, if the Army Strength of ROOT is 1.5 times greater than the Army Strength of FROM, then ROOT will not join a coalition.

Lastly, I added a block of checks dealing with the HRE specifically. HRE countries are more likely to join Coalitions in general, but this is especially true if FROM holds non-core HRE Territory, and that is more than doubly so if FROM is a non-HRE country Or The Emperor.
Code:
# Outraged - wants to prevent expansion
attitude_outraged = {
	icon = 5

	antagonize = yes
	annex = no
	weaken = yes
	coalition = yes
	warn = yes
	vassalize = no
	ally = no
	befriend = no
	protect = no
	threat = yes
	ignore = no

	chance = {
		factor = 100
			#Hard Locks
		modifier = { factor = 0 OR = { overlord_of = from is_subject_of = from } }		
		modifier = { factor = 0 is_rival = FROM }		#JC.... That don't actually Lock...
		
			#AE
		modifier = { factor = 2.0 NOT = { has_opinion_modifier = { modifier = aggressive_expansion who = FROM value = -900 } } }	
		modifier = { factor = 2.0 NOT = { has_opinion_modifier = { modifier = aggressive_expansion who = FROM value = -800 } } }	
		modifier = { factor = 2.0 NOT = { has_opinion_modifier = { modifier = aggressive_expansion who = FROM value = -700 } } }	
		modifier = { factor = 2.0 NOT = { has_opinion_modifier = { modifier = aggressive_expansion who = FROM value = -600 } } }	
		modifier = { factor = 2.0 NOT = { has_opinion_modifier = { modifier = aggressive_expansion who = FROM value = -500 } } }	
		modifier = { factor = 1.5 NOT = { has_opinion_modifier = { modifier = aggressive_expansion who = FROM value = -400 } } }	
		modifier = { factor = 1.5 NOT = { has_opinion_modifier = { modifier = aggressive_expansion who = FROM value = -300 } } }	
		modifier = { factor = 1.5 NOT = { has_opinion_modifier = { modifier = aggressive_expansion who = FROM value = -200 } } }	
		modifier = { factor = 1.2 NOT = { has_opinion_modifier = { modifier = aggressive_expansion who = FROM value = -100 } } }	
		modifier = { factor = 1.2 NOT = { has_opinion_modifier = { modifier = aggressive_expansion who = FROM value =  -75 } } }	
		modifier = { factor = 1.2 NOT = { has_opinion_modifier = { modifier = aggressive_expansion who = FROM value =  -50 } } }
		modifier = { factor = 0.5         has_opinion_modifier = { modifier = aggressive_expansion who = FROM value = -40 } NOT = { coalition_target = FROM } }			
		modifier = { factor = 0.5         has_opinion_modifier = { modifier = aggressive_expansion who = FROM value = -30 } NOT = { coalition_target = FROM } }			
		modifier = { factor = 0.5         has_opinion_modifier = { modifier = aggressive_expansion who = FROM value = -20 } NOT = { coalition_target = FROM } }			
		modifier = { factor = 0.5         has_opinion_modifier = { modifier = aggressive_expansion who = FROM value = -10 } NOT = { coalition_target = FROM } }	
		modifier = { factor = 0 NOT = { has_opinion_modifier = { modifier = aggressive_expansion who = FROM } } }		
		
			#AI Logic
		modifier = { factor = 20.0        threat = { who = FROM value = 900 } }
		modifier = { factor = 10.0        threat = { who = FROM value = 800 } }
		modifier = { factor = 5.0         threat = { who = FROM value = 700 } }
		modifier = { factor = 5.0         threat = { who = FROM value = 600 } }
		modifier = { factor = 5.0         threat = { who = FROM value = 500 } }
		modifier = { factor = 3.0         threat = { who = FROM value = 400 } }
		modifier = { factor = 3.0         threat = { who = FROM value = 300 } }
		modifier = { factor = 2.0         threat = { who = FROM value = 200 } }
		modifier = { factor = 2.0         threat = { who = FROM value = 400 } }
		modifier = { factor = 0.5 NOT = { threat = { who = FROM value = 100 } } }
		modifier = { factor = 0.5 NOT = { threat = { who = FROM value =  75 } } }
		modifier = { factor = 0.0 NOT = { threat = { who = FROM value =  50 } } }
		
			#Opinion
		modifier = { factor = 1.5 NOT = { has_opinion = { who = FROM value = -199 } } }		
		modifier = { factor = 1.5 NOT = { has_opinion = { who = FROM value = -150 } } }		
		modifier = { factor = 1.5 NOT = { has_opinion = { who = FROM value = -110 } } }		
		modifier = { factor = 1.5 NOT = { has_opinion = { who = FROM value =  -50 } } }	
		modifier = { factor = 0           has_opinion = { who = FROM value = 0 } NOT = { coalition_target = FROM } }
		modifier = { factor = 0           has_opinion = { who = FROM value = 50 } }		
		
			#Military Strength Concerns	
		modifier = { factor = 0.0         military_strength = { who = FROM value = 1.5 } }
		modifier = { factor = 1.5 NOT = { military_strength = { who = FROM value = 0.75 } } }	
		modifier = { factor = 2.0 NOT = { military_strength = { who = FROM value = 0.50 } } }	
		modifier = { factor = 2.5 NOT = { military_strength = { who = FROM value = 0.25 } } }
		modifier = { factor = 5.0 NOT = { military_strength = { who = FROM value = 0.10 } } }
		
			#Holy Roman Empire
		modifier = { factor = 1.5 capital_scope = { is_part_of_hre = yes } }
		modifier = { factor = 1.5 capital_scope = { is_part_of_hre = yes } FROM = { capital_scope = { is_part_of_hre = no } } }
		modifier = { factor = 1.5 capital_scope = { is_part_of_hre = yes } FROM = { is_emperor = yes } }
		modifier = { factor = 2.0 capital_scope = { is_part_of_hre = yes } FROM = { any_owned_province = { is_part_of_hre = yes NOT = { is_core = FROM } } } }
		modifier = { factor = 2.5 capital_scope = { is_part_of_hre = yes } FROM = { any_owned_province = { is_part_of_hre = yes NOT = { is_core = FROM } } capital_scope = { is_part_of_hre = no } } }
		modifier = { factor = 2.5 capital_scope = { is_part_of_hre = yes } FROM = { any_owned_province = { is_part_of_hre = yes NOT = { is_core = FROM } } is_emperor = yes } }
		
			#MISC
		modifier = { factor = 1.5 is_neighbor_of = FROM }				
	}
}

attitude_cordial
Cordial Attitude means they want to be your friend. I think. One would assume this would be the purview of the "Friendly" Attitude, and, it actually is, as that is where all the checks for the "befriend" AI Logic are located. In truth, looking into the code It appears that Cordial is the "We are Allies" attitude as not having an Alliance will disable it.

So what's Wrong with it?
It might be completely redundant? I'm not sure what the actual goal of the Cordial Attitude is, as it seems be purely an Ally Specific version of Friendly....but Friendly has a chance boost if there is an Alliance....And Cordial has Ally=no. Curiously, it is also disabled if they Want to Befriend you, Is Cordial the Attitude for countries that are already Friends? Wouldn't the AI befriend Logic still be positive if you are currently friends as a way of telling the AI to Stay Friends?

So How do we Fix it?
I don't know what I'm supposed to be fixing...

attitude_friendly
Friendly Attitude means they want to be your friend. Wait, didn't I already say that?

Seriously what is supposed to be the difference between Friendly and Cordial?

So what's Wrong with it?
It seems fine, although this is probably where we would put our major Reciprocity check, so Friendly Nations would be likely to get other nations to select Friendly towards them.

So How do we Fix it?
Not really anything to Fix. The Code that I want to add isn't possible at this point because we just don't have the script hook for it.

attitude_protective
Oh Man, it's the other Attitude I have a major problem with.

Protective is the Attitude chosen when an AI country has another smaller country they want to protect....

So what's Wrong with it?
...Or So it Says at the top, but this Attitude is Lying its damn Pants off. Protect may check for the "Protect" AI Logic, but the Attitude cannot be selected unless the Ai also wants to Vassalize the Country, so Really this Attitude is only about "Protecting" another country until you can successfully eat them. Now that's fine, there's nothing wrong with that, and in truth, most of the time a Large country "Protected" a smaller country it was just because they wanted to maintain their own influence. But...

There's already an "attitude_dominating" entry later in the file.

So Protect is effectively pulling double duty and ignoring its more useful objective; telling the AI how to stop other country's Expansion. The end Result is that, using my latest game as an Example, AI France was completely incapable of realizing that it should guarantee the independence of the small Imperial States bordering me. Because it did not plan to vassalize them, it just sat there regarding them with a "neutral" attitude while they desperately pleaded with France for Protection. That's Bad.

And here's where we get into one of my major problems with the current Attitude Logic from a conceptual standpoint, a problem with is exemplified by the failings of the Protective Attitude. If we were to remove the Hard Lock preventing this attitude from being chosen when the country does not have an interest in vassalizing the target, there would still be one major problem with the Attitude Logic, a problem which might be resolved in the underlying code that goes into the "Protect" AI Logic, but which might not;

The Attitudes only ever take into account ROOT and FROM.

That might not seem like a big deal with Attitudes like Hostile and Friendly, but it is a major failing for Protective.

Because if Large Country A is Protecting Small Country B, there's a third country involved in that equation; Large Country C that is menacing Small Country B.

When you get right down to it, The Relationship between Country A and Country B is not really dependent on how A and B see each other, it is based far more on how A and C see each other. Do you think the USA would give any solitary damns about Ukraine if Russia weren't breathing down their neck? Do you think France kept allying with Bavaria because they liked their beer? Or did they do it to spite Austria? The Protective Attitude's failure to capture that dynamic, again unless this all goes down under the hood in The Engine in which case the AI in game is not working properly, is one of the great failings of the Attitude System and the single biggest thing preventing the AI from understanding the concept of Soft Power and country containment.

So How do we Fix it?
Well first off we get rid of that silly check that disables this attitude if the country doesn't want to vassalize the target. Protecting a country because you want to vassalize it will be handled by the Dominating Attitude. Next, we add a series of checks to Third Party countries to see how they feel about the FROM Country. In this case, I limited my checks to Rivals, using the handy dandy "is_rival = ROOT" check.

Here is where the "has_ai_attitude" check and incorporating The Player into the Attitude system will help immensely, as right now I have to make do with the very limited checks I have available for the AI Logic. This means that either I code Human-Specific conditions to double the Value of a country the small AI country feels threatened by, or just deal with the fact that Countries The Player is targeting will only ever be able to get half the Protect Weight as AI Countries being menaced by other AI Countries. This is also a problem because the AI does assign those AI Logic values to the Player country, so the AI will be treating the player like an AI country that would expand like the AI wants, rather than a Player that is doing whatever he pleases. In my case, the AI will probably be making friends with Imperial States while I inherit England and establish a Naval Empire.

Either way, its just not a good way of doing it, as it leads to the Player being disconnected, however slightly, from the system.

Also I made the AI Attitude less likely if the FROM Country is around the same strength as the ROOT Country (and impossible if the FROM Country is stronger) and made it vastly less likely if FROM is a Rival of ROOT.

When it comes to Tangible Effects, having a Protective Attitude towards a country should reduce the AE you incur with that country for taking provinces from countries it feels threatened by unless it also feels threatened by you. Switching from Protective to Hostile or Dominating should cause a major Trust Penalty to the Target Country and a minor one for all of the small countries near it.
Code:
# Protective - wants to defend
attitude_protective = {
	icon = 8

	antagonize = no
	annex = no
	weaken = no
	coalition = no
	warn = no
	vassalize = yes
	ally = yes
	befriend = yes
	protect = yes
	threat = no
	ignore = no

	chance = {
		factor = 100
			#Hard Locks
		modifier = { factor = 0 OR = { overlord_of = from is_subject_of = from } }
		modifier = { factor = 0 FROM = { is_subject = yes } }

			#AI Personality		
		modifier = { factor = 1.5 personality = ai_diplomat }
		
			#Diplomacy
		modifier = { factor = 0.2          is_rival = FROM }
		modifier = { factor = 0.2 FROM = { is_rival = ROOT } }
		
			#AI Logic
		modifier = { factor = 1.5         protect = { who = FROM value = 400 } }
		modifier = { factor = 1.5         protect = { who = FROM value = 300 } }
		modifier = { factor = 1.5         protect = { who = FROM value = 200 } }
		modifier = { factor = 1.5         protect = { who = FROM value = 100 } }
		modifier = { factor = 0.5 NOT = { protect = { who = FROM value =  80 } } }
		modifier = { factor = 0.0 NOT = { protect = { who = FROM value =  50 } } }
		modifier = { factor = 1.2       vassalize = { who = FROM value = 400 } }
		modifier = { factor = 1.2       vassalize = { who = FROM value = 300 } }
		modifier = { factor = 1.2       vassalize = { who = FROM value = 200 } }
		modifier = { factor = 1.2       vassalize = { who = FROM value = 100 } }
		modifier = { factor = 1.2    protectorate = { who = FROM value = 400 } }
		modifier = { factor = 1.2    protectorate = { who = FROM value = 300 } }
		modifier = { factor = 1.2    protectorate = { who = FROM value = 200 } }
		modifier = { factor = 1.2    protectorate = { who = FROM value = 100 } }
		modifier = { factor = 0.0      antagonize = { who = FROM value =  50 } }
		
			#Soft Power - Rivals
		modifier = { factor = 1.5 any_known_country = { is_rival = ROOT    vassalize = { who = FROM value = 400 } } }
		modifier = { factor = 1.5 any_known_country = { is_rival = ROOT    vassalize = { who = FROM value = 300 } } }
		modifier = { factor = 1.5 any_known_country = { is_rival = ROOT    vassalize = { who = FROM value = 200 } } }
		modifier = { factor = 1.5 any_known_country = { is_rival = ROOT    vassalize = { who = FROM value = 100 } } }
		modifier = { factor = 1.5 any_known_country = { is_rival = ROOT protectorate = { who = FROM value = 400 } } }
		modifier = { factor = 1.5 any_known_country = { is_rival = ROOT protectorate = { who = FROM value = 300 } } }
		modifier = { factor = 1.5 any_known_country = { is_rival = ROOT protectorate = { who = FROM value = 200 } } }
		modifier = { factor = 1.5 any_known_country = { is_rival = ROOT protectorate = { who = FROM value = 100 } } }
		modifier = { factor = 1.5 any_known_country = { is_rival = ROOT   antagonize = { who = FROM value = 400 } } }
		modifier = { factor = 1.5 any_known_country = { is_rival = ROOT   antagonize = { who = FROM value = 300 } } }
		modifier = { factor = 1.5 any_known_country = { is_rival = ROOT   antagonize = { who = FROM value = 200 } } }
		modifier = { factor = 1.5 any_known_country = { is_rival = ROOT   antagonize = { who = FROM value = 100 } } }
		
		modifier = { factor = 2.0 any_known_country = { is_rival = ROOT  FROM = { threat = { who = PREV value = 600 } } } }
		modifier = { factor = 2.0 any_known_country = { is_rival = ROOT  FROM = { threat = { who = PREV value = 500 } } } }
		modifier = { factor = 2.0 any_known_country = { is_rival = ROOT  FROM = { threat = { who = PREV value = 400 } } } }
		modifier = { factor = 1.5 any_known_country = { is_rival = ROOT  FROM = { threat = { who = PREV value = 300 } } } }
		modifier = { factor = 1.5 any_known_country = { is_rival = ROOT  FROM = { threat = { who = PREV value = 200 } } } }
		modifier = { factor = 1.5 any_known_country = { is_rival = ROOT  FROM = { threat = { who = PREV value = 100 } } } }
		
			#Military Strength Concerns
		modifier = { factor = 5.0         military_strength = { who = FROM value = 5.00 } }
		modifier = { factor = 2.5         military_strength = { who = FROM value = 2.50 } }
		modifier = { factor = 2.5         military_strength = { who = FROM value = 2.00 } }
		modifier = { factor = 0.5 NOT = { military_strength = { who = FROM value = 1.50 } } }
		modifier = { factor = 0.0 NOT = { military_strength = { who = FROM value = 1.00 } } }
		
		#JC: Removed - modifier = { factor = 0 NOT = { vassalize = { who = FROM value = 25 } protectorate = { who = FROM value = 25 } } }
	}
}

attitude_vassal
Ah the Vassal Attitude. This is where Happy Subjects sit, while Angry ones will slide instead into Hostile and seek Independence.

So what's Wrong with it?
Unlike virtually all of the other Attitudes, this one is heavily dependent on Opinion. Seriously. Having an Opinion over 100 will almost guarantee that the country doesn't turn Hostile given how high the base Factor is. Given how easy it is to get above 100 Opinion, what with the cap being raised to 200, this is trivial in almost all situations.

And frankly, the fact that there are only two possible attitudes for Vassals, and only one possible attitude for Overlords is just kind of boring. The system is shallow, and this could be a great place to expand it by providing multiple different attitudes for a Vassal and for an Overlord.

For instance, take Integration. Right now, a Vassal has two attitudes; Seeking Independence, and Properly waiting for Annexation. Why not add a Third Vassal Attitude called "Autonomous Vassal" or something similar, which does not provide as much of a relations boost, thereby not allowing you to integrate them, but also prevents them from declaring independence. This would let us create a system where some vassals, such as Wallachia/Moldavia for the Ottomans, are Long Term Vassals that you are not meant to integrate.

Trying to integrate them, if we had a trigger to check to see if the process is started... Which we Don't... hint hint... would shift the vassal down into Hostile.

So How do we Fix it?
Well that's all hypothetical stuff. For more immediate changes, I lowered the bonus from having +100 Opinion, and added a Hard Lock such that if the vassal ever has a stronger Military than the Overlord they will be disbarred from this attitude and will be forced into Hostile. I also added a small check so they are less likely to choose this Attitude when At War, but more likely to stick with it if there is a large threatening country nearby.
Code:
# Vassal - is vassal of
attitude_vassal = {
	icon = 9

	antagonize = no
	annex = no
	weaken = no
	coalition = no
	warn = no
	vassalize = no
	ally = yes
	befriend = yes
	protect = no
	threat = no
	ignore = no

	chance = {
		factor = 10000
			#Hard Locks
		modifier = { factor = 0 NOT = { is_subject_of = from } }
		modifier = { factor = 0 government = daimyo }
		
			#Vassal - Opinion
		modifier = { factor = 0.0 is_colonial_nation = no NOT = { has_opinion = { who = FROM value =   0 } } }
		modifier = { factor = 2.0 is_colonial_nation = no         has_opinion = { who = from value =  50 } }
		modifier = { factor = 5.0 is_colonial_nation = no         has_opinion = { who = from value = 100 } }
		
			#Vassal - Military Strength
		modifier = { factor = 0.5 is_colonial_nation = no military_strength = { who = from value = 0.50 } }
		modifier = { factor = 0.5 is_colonial_nation = no military_strength = { who = from value = 0.75 } }
		modifier = { factor = 0.1 is_colonial_nation = no military_strength = { who = from value = 1.00 } }
		modifier = { factor = 0.0                         military_strength = { who = from value = 1.25 } }
		
			#Colonial Nation - Liberty Desire
		modifier = { factor = 0.1 is_colonial_nation = yes liberty_desire = 0.5 }
		modifier = { factor = 0.5 is_colonial_nation = yes liberty_desire = 0.6 }
		modifier = { factor = 0.5 is_colonial_nation = yes liberty_desire = 0.7 }
		modifier = { factor = 0.5 is_colonial_nation = yes liberty_desire = 0.8 }
		modifier = { factor = 0.0 is_colonial_nation = yes liberty_desire = 0.9 }
		
			#At War
		modifier = { factor = 0.8 FROM = { is_at_war = yes } }
		
			#Big Scary Neighbour
		modifier = { factor = 1.5 any_neighbor_country = { ROOT = { threat = { who = PREV value = 400 } } } }
		modifier = { factor = 1.5 any_neighbor_country = { ROOT = { threat = { who = PREV value = 300 } } } }
		modifier = { factor = 1.2 any_neighbor_country = { ROOT = { threat = { who = PREV value = 200 } } } }
		modifier = { factor = 1.2 any_neighbor_country = { ROOT = { threat = { who = PREV value = 100 } } } }
	}
}

attitude_overlord
And the counterpart to the Vassal Attitude, here is the Overlord one. Of course the Overlord Attitude is the only attitude available for Overlords, they cannot shift to Hostile to combat a Vassal they don't like, unless they are Japan.

So what's Wrong with it?
Eh it's mostly just a placeholder attitude, and it shows. It only has Hard Locks and only two of them at that. Expanding on the system I suggested above, it would be cool to also get different attitudes for the Overlord so that we can communicate what the Overlord's Intentions are to the Vassal. There could be separate attitudes for Overlords who intend to preserve the vassal's autonomy and local rule, and Overlords who intend to integrate them eventually. This would then feed back into the Vassal's Opinion/Attitude.

But none of that is possible right now. Well, once Captain Gars finishes porting the Diplomacy Actions to an editable text file I'll be able to restrict when you integrate a Vassal, but again this system would be intended to operate in a game where the Player is included in the Attitude System.

If we implement the system where attitudes have bonuses, then the different Vassal/Overlord Attitudes could give bonuses to the Overlord/Vassal depending on whcih Attitude is chosen. For instance, if you want your Vassal to develop their lands there could be a "Vassal - Economic Aid" attitude which provided Subsidies.

So How do we Fix it?
Again, most of the potential fixes are all hypothetical at this time. No change to the code, save for me compressing it for easy reading. Seriously Paradox, you have an absolutely excessive number of unecessary newlines. Especially in the Saves! What's up with putting a newline between the '=' and the '{'?

attitude_dominating
Dominating! The Attitude that Protect apparently wants to be for some reason. It's all AI Logic.

So what's Wrong with it?
Nothing really, it's all AI logic after all. Personally I would suggest making it so Dominating is more likely for countries that are Wrong-Culture/Wrong-Religion. This would work better if we get the more complex vassal relations I was talking about above.

So How do we Fix it?
I didn't make any changes. I am still considering adding checks for Culture and Religion, I think that could be interesting, but I expect those sorts of checks already happen in the underlying Ai Logic.

attitude_threatened
And last but not least, the threatened attitude, used to denote when a country feels threatened by another country.

So what's Wrong with it?
Nothin'. Well, looking at the Military Strength checks I think someone made a slight mistake because there's a hard Lock at ROOT having half the military strength of FROM, but there's another check at 3 quarters.

So How do we Fix it?
Nothin' ta fix. Again, save what I suspect was a typo.

That said, if we do get a system where having an Attitude gives bonuses to your country, this one should, like Outraged, provide a major Defensiveness Boost, a decent Morale Boost, a Manpower and Reinfocement Rate Boost, and maybe a small Discipline Boost when fighting against the country you feel threatened by, with the bonus scaling with the difference between the two country's strengths.
Code:
# Threatened - wants to remain safe from
attitude_threatened = {
	icon = 12

	antagonize = no
	annex = no
	weaken = yes
	coalition = no
	warn = no
	vassalize = no
	ally = yes
	befriend = yes
	protect = no
	threat = yes
	ignore = no

	chance = {
		factor = 100
			#Hard Lock
		modifier = { factor = 0.00 OR = { overlord_of = from is_subject_of = from } }
		
			#AI Personality
		modifier = { factor = 1.50 personality = ai_capitalist }
		
			#AI Logic
		modifier = { factor = 2.0         threat = { who = FROM value = 400 } }
		modifier = { factor = 2.0         threat = { who = FROM value = 300 } }
		modifier = { factor = 2.0         threat = { who = FROM value = 200 } }
		modifier = { factor = 2.0         threat = { who = FROM value = 100 } }		
		modifier = { factor = 0.0 NOT = { threat = { who = FROM value =  25 } } }
		
			#Military Strength
		modifier = { factor = 0.80 military_strength = { who = FROM value = 0.75 } }
		modifier = { factor = 1.25 military_strength = { who = FROM value = 0.50 } }
		modifier = { factor = 2.50 military_strength = { who = FROM value = 0.25 } }
		
			#Opinion
		modifier = { factor = 2.0 NOT = { has_opinion = { who = FROM value = -199 } } }
		modifier = { factor = 2.0 NOT = { has_opinion = { who = FROM value = -150 } } }
		modifier = { factor = 2.0 NOT = { has_opinion = { who = FROM value = -100 } } }
		modifier = { factor = 2.0 NOT = { has_opinion = { who = FROM value =  -50 } } }
		modifier = { factor = 2.0 NOT = { has_opinion = { who = FROM value =    0 } } }	
		modifier = { factor = 0.5 has_opinion = { who = FROM value =  50 } }
		modifier = { factor = 0.5 has_opinion = { who = FROM value = 100 } }
		modifier = { factor = 0.5 has_opinion = { who = FROM value = 150 } }
		modifier = { factor = 0.5 has_opinion = { who = FROM value = 200 } }
		
			#Aggressive Expansion
		modifier = { factor = 0.50 has_opinion_modifier = { modifier = aggressive_expansion who = FROM } NOT = { has_opinion_modifier = { modifier = aggressive_expansion who = FROM value = -100 } } }
		modifier = { factor = 0.50 has_opinion_modifier = { modifier = aggressive_expansion who = FROM } NOT = { has_opinion_modifier = { modifier = aggressive_expansion who = FROM value =  -75 } } }
		modifier = { factor = 0.50 has_opinion_modifier = { modifier = aggressive_expansion who = FROM } NOT = { has_opinion_modifier = { modifier = aggressive_expansion who = FROM value =  -50 } } }
		modifier = { factor = 0.75 has_opinion_modifier = { modifier = aggressive_expansion who = FROM } NOT = { has_opinion_modifier = { modifier = aggressive_expansion who = FROM value =  -25 } } }
	}
}

The Two New Attitudes I am adding
So those are my changes to the Existing Attitudes. Here are the two Attitudes I suggest adding.

attitude_EnemyOfEnemy
The "Enemy of My Enemy" is just that, an Attitude designed to help the AI process Triangular Relations and The Balance of Power.

What's This do?
It is primarily based on evaluating the usefullness of the Rivals of Rivals, and unlike most of the attitudes with Military Strength checks it looks for a sweet spot, and tries to find countries that are weaker than ROOT that ROOT can use as a distraction. It also is only likely to apply if the Common Rival is stronger than ROOT. Ideally those somewhat conflicting impulses will lead to an interesting dynamic where, as the strength of the Common Rival grows, then ROOT's willingness to make alliances with stronger powers will grow as well.

This should provide a substantial Opinion Boost, but no other major bonuses.

The Icon is a a Green Heart with a Sword over it, mix of Friendly and Rivalry.
Code:
# Enemy of my Enemy - Build Relations with Rival of Rival
attitude_EnemyOfEnemy = {
	icon = 13

	antagonize = no
	annex = no
	weaken = no
	coalition = no
	warn = no
	vassalize = no
	ally = yes
	befriend = yes
	protect = no
	threat = no
	ignore = no

	chance = {
		factor = 100
			#Hard Lock
		modifier = { factor = 0.00 OR = { overlord_of = from is_subject_of = from } }
		modifier = { factor = 0.0 NOT = { any_known_country = { is_rival = FROM is_rival = ROOT } } }
		
			#AI Personality
		modifier = { factor = 1.50 personality = ai_diplomat }
		
			#Diplomacy
		modifier = { factor = 0.8          is_rival = FROM }
		modifier = { factor = 0.8 FROM = { is_rival = ROOT } }
		
			#AI Logic
		modifier = { factor = 0.0         threat = { who = FROM value = 400 } }
		modifier = { factor = 0.5         threat = { who = FROM value = 300 } }
		modifier = { factor = 0.5         threat = { who = FROM value = 200 } }
		modifier = { factor = 0.8         threat = { who = FROM value = 100 } }
		
			#Military Strength - FROM to ROOT
		modifier = { factor = 0.50         military_strength = { who = FROM value = 1.50 } }
		modifier = { factor = 0.80         military_strength = { who = FROM value = 1.25 } }
		modifier = { factor = 0.90         military_strength = { who = FROM value = 1.10 } }
		modifier = { factor = 1.10         military_strength = { who = FROM value = 0.90 } }
		modifier = { factor = 1.20 NOT = { military_strength = { who = FROM value = 0.75 } } }
		modifier = { factor = 0.50 NOT = { military_strength = { who = FROM value = 0.50 } } }

			#Military Strength - Common Rival to FROM
		modifier = { factor = 0.50 any_known_country = { is_rival = FROM is_rival = ROOT military_strength = { who = FROM value = 2.5 } } }
		modifier = { factor = 0.80 any_known_country = { is_rival = FROM is_rival = ROOT military_strength = { who = FROM value = 2.0 } } }
		modifier = { factor = 0.25 any_known_country = { is_rival = FROM is_rival = ROOT military_strength = { who = FROM value = 1.5 } } }
		
			#Military Strength - Common Rival to ROOT
		modifier = { factor = 5.00 any_known_country = { is_rival = FROM is_rival = ROOT military_strength = { who = ROOT value = 2.5 } } }
		modifier = { factor = 2.00 any_known_country = { is_rival = FROM is_rival = ROOT military_strength = { who = ROOT value = 2.0 } } }
		modifier = { factor = 1.50 any_known_country = { is_rival = FROM is_rival = ROOT military_strength = { who = ROOT value = 1.5 } } }
		modifier = { factor = 1.20 any_known_country = { is_rival = FROM is_rival = ROOT military_strength = { who = ROOT value = 1.2 } } }
		
			#Opinion
		modifier = { factor = 0.0 NOT = { has_opinion = { who = FROM value = -100 } } }
		modifier = { factor = 0.5 NOT = { has_opinion = { who = FROM value =  -50 } } }
		modifier = { factor = 0.5 NOT = { has_opinion = { who = FROM value =    0 } } }
		modifier = { factor = 2.0 has_opinion = { who = FROM value =  50 } }
		modifier = { factor = 2.0 has_opinion = { who = FROM value = 100 } }
		modifier = { factor = 2.0 has_opinion = { who = FROM value = 150 } }
		modifier = { factor = 2.0 has_opinion = { who = FROM value = 200 } }
	}
}

attitude_Benefactor
And lastly, the Benefactor Attitude. This Attitude is designed to help small countries find larger countries to protect them from threats they may be facing.

What's This do?
It is primarily based on evaluating the usefullness of the Benefactor, and devotes many of its checks to making sure the Benefactor is not itself a threat to the country. Lorraine, for instance, would be less interested in choosing Austria as a Benefactor, even if being meanced by France, because Austria is itself a threat. Instead they would try for England, or maybe Spain, or another Major Power that doesn't surround their territory.

This obviously can only happen if the FROM Country is more powerful than the ROOT Country. However it also scales with how much more powerful FROM is than any of the threats to ROOT.

This should provide a substantial Opinion Boost, proportional to how much of a threat the Threat country is and how much of a Threat the FROM Country is not.

The Icon is a a Green Heart with Chess Pieces over it, mix of Friendly and Threatened.
Code:
# Benefactor - Looking for a Guardian
attitude_Benefactor = {
	icon = 14

	antagonize = no
	annex = no
	weaken = no
	coalition = no
	warn = no
	vassalize = no
	ally = yes
	befriend = yes
	protect = no
	threat = no
	ignore = no

	chance = {
		factor = 100
			#Hard Lock
		modifier = { factor = 0.00 OR = { overlord_of = from is_subject_of = from } }
		modifier = { factor = 0.00 NOT = { any_known_country = { is_rival = FROM FROM = { is_rival = PREV } ROOT = { threat = { who = PREV value = 100 } } } } }
		
			#AI Personality
		modifier = { factor = 1.50 personality = ai_diplomat }
		
			#Diplomacy
		modifier = { factor = 0.0          is_rival = FROM }
		modifier = { factor = 0.0 FROM = { is_rival = ROOT } }
		
			#AI Logic
		modifier = { factor = 0.0         threat = { who = FROM value = 400 } }
		modifier = { factor = 0.5         threat = { who = FROM value = 300 } }
		modifier = { factor = 0.5         threat = { who = FROM value = 200 } }
		modifier = { factor = 0.8         threat = { who = FROM value = 100 } }
		
			#AI Logic - Invalidate if FROM is bigger Threat
		modifier = { factor = 0.0         threat = { who = FROM value = 400 } NOT = { any_known_country = { OR = { is_rival = FROM FROM = { is_rival = PREV } } ROOT = { threat = { who = PREV value = 450 } } } } }
		modifier = { factor = 0.0         threat = { who = FROM value = 300 } NOT = { any_known_country = { OR = { is_rival = FROM FROM = { is_rival = PREV } } ROOT = { threat = { who = PREV value = 350 } } } } }
		modifier = { factor = 0.0         threat = { who = FROM value = 200 } NOT = { any_known_country = { OR = { is_rival = FROM FROM = { is_rival = PREV } } ROOT = { threat = { who = PREV value = 250 } } } } }
		modifier = { factor = 0.0         threat = { who = FROM value = 100 } NOT = { any_known_country = { OR = { is_rival = FROM FROM = { is_rival = PREV } } ROOT = { threat = { who = PREV value = 150 } } } } }
		
			#Military Strength - FROM to Threat
		modifier = { factor = 2.00 any_known_country = { OR = { is_rival = FROM FROM = { is_rival = PREV } } ROOT = { threat = { who = PREV value = 400 } } FROM = { military_strength = { who = PREV value = 2.50 } } } }
		modifier = { factor = 2.00 any_known_country = { OR = { is_rival = FROM FROM = { is_rival = PREV } } ROOT = { threat = { who = PREV value = 200 } } FROM = { military_strength = { who = PREV value = 2.50 } } } }
		modifier = { factor = 1.50 any_known_country = { OR = { is_rival = FROM FROM = { is_rival = PREV } } ROOT = { threat = { who = PREV value = 400 } } FROM = { military_strength = { who = PREV value = 2.00 } } } }
		modifier = { factor = 1.50 any_known_country = { OR = { is_rival = FROM FROM = { is_rival = PREV } } ROOT = { threat = { who = PREV value = 200 } } FROM = { military_strength = { who = PREV value = 2.00 } } } }
		modifier = { factor = 1.50 any_known_country = { OR = { is_rival = FROM FROM = { is_rival = PREV } } ROOT = { threat = { who = PREV value = 400 } } FROM = { military_strength = { who = PREV value = 1.20 } } } }
		modifier = { factor = 1.50 any_known_country = { OR = { is_rival = FROM FROM = { is_rival = PREV } } ROOT = { threat = { who = PREV value = 200 } } FROM = { military_strength = { who = PREV value = 1.20 } } } }
		
			#Military Strength - FROM to ROOT
		modifier = { factor = 0.00         military_strength = { who = FROM value = 0.80 } }
		modifier = { factor = 1.50 NOT = { military_strength = { who = FROM value = 0.50 } } }
		modifier = { factor = 2.50 NOT = { military_strength = { who = FROM value = 0.25 } } }
		
			#Opinion
		modifier = { factor = 0.0 NOT = { has_opinion = { who = FROM value = -100 } } }
		modifier = { factor = 0.5 NOT = { has_opinion = { who = FROM value =  -50 } } }
		modifier = { factor = 0.5 NOT = { has_opinion = { who = FROM value =    0 } } }		
		modifier = { factor = 2.0 has_opinion = { who = FROM value =  50 } }	
		modifier = { factor = 2.0 has_opinion = { who = FROM value = 100 } }	
		modifier = { factor = 2.0 has_opinion = { who = FROM value = 150 } }	
		modifier = { factor = 2.0 has_opinion = { who = FROM value = 200 } }
	}
}

Conclusion
So that's it. For now at least. I am still investigating certain possibilities and running some games to see what attitudes are chosen by what situations. Speaking of which, I have a download link to the current system I have created below, and I would be very interested to hear from anyone who wants to run their own tests.

Attitude Problem 6-24-2014

Now I'm goin' ta bed.
G'night.
 
Last edited:
Now this is something I'd like to see a mini-expansion used for.
It's very rare that someone finds underutilized mechanisms and suggests improvement rather than something completely new and troublesome.
First thing I've seen in ages that is likely to help the AI instead of wrecking it further.
 
Last edited:
This is a very nice suggestion. I actually had no idea that the attitudes have any impact on AI decision making. Although I don't think there should be any bonuses or penalties from different attitudes, aside from those tied to relations. Other than that, very well described and thought out proposition.
 
Really like them :)

How about if you are friendly and declare war it can damage the trust of the people around you because it might make them think you are unpredictable.

For Enemy of Enemy there could be a factor in alliances making them easier to get until the target country has a weaker threat level. ( for example Austria and England have a better chance to get an alliance until France get's weaker )
 
This post is a nightmare to talk about if you aim to use quotes to show what you're talking about.

All of this seems pretty good EXCEPT for your suggestions on the Human Attitude. I can't really get behind a system that pushes forward penalizing the player for underhanded diplomacy and backstabbing. I feel like the incentive to 'role-play' your attitude with the AI nation should be bonuses for role-playing it correctly. Penalizing it for role-playing it incorrectly is just shoe-horning gameplay and basically, from a developer standpoint, forces the players to play in certain ways. You're taking options away from the player.

Going from Friendly to Hostile shouldn't damage your relations/trust with other nations you're Friendly towards mainly because of changing scenarios in the world around you. For example, currently in 1.6 France and Castile have been permanent butt-buddies, likely due to a mutual hatred of Aragon. If Spain then forms, France should be allowed to go from Friendly to Hostile with Spain, as now Spain owns land that France wants (Aragonese land). This shouldn't ruin relations with every other nation France happens to like, as the situations with those other nations hasn't changed either, and I'm pretty sure a real-world Bavaria who is best friends with France would understand France's sudden hatred towards Spain for owning French-claimed lands.

Other than that, this is a pretty good post though. I like it.
 
I haven't read the "spoilers" because I'm too tired for now. But I like the idea you are suggesting. But I don't know if I missed it but shouldn't I as a nation be able to set my attitude to AI nation. In a multiplayer AI is completely handicapped because players have opinions to each other and AI but AI doesn't know. When you've picked an attitude it's locked until following: You change ruler, AI nation changes ruler, attitude is neutral, AI nation declared war, AI changed opinion of you.
 
Looks really good, I hope we at some point get either this, or something like this in EU4.

Regarding Cordial however, I think it's supposed to be the "Positive Acquaintance" opinion. They are hapy to entertain your ambassadors and attend your balls, maybe cement some other friendly relations, but they don't want to fight, bleed and die beside you. Notice that while the attitude is disabled by not having an alliance, IIRC there's a penalty to the AI accepting any (offensive at leadt) call to arms if they are cordial.
 
Penalising attitude changes seems wrong, as does linking it to trust. I can obviously see that there is fear that people are going to just twist this as another tool, but they're going to do that anyway. Just put a timer on changes of a few months, with a cost to change if done before that timer. Linking to trust will probably really damage the AI, who I see flip-flopping quite a lot. Unless of course the AI is exempt from this, which would just be another stupid change.

I personally disagree you can't attack someone with a neutral attitude without consequences. It limits the ability to respond to emerging situations. That said, I like the idea of managing attitudes. It would make the diplomacy game a lot more involved.
 
I like most of the suggestions you make very much (though I admit my reading got sloppy towards the end of your post). I disagree on a few points though.

I do not think there should be any bonuses to things like morale, when fighting nations you have a certain attitude towards. First, I just don't feel the attitude system should confer non-diplomatic bonuses (this is of course not an argument, but merely the statement of an opinion). Second, the suggestion that certain attitudes should provide morale boosts when fighting seems to ignore the distinction between the attitude of a country, and the attitude of a people. Since the game mostly takes place before nationalism were a thing, this is two quite different things. I doubt that the soldiers of German Minor #1 thought that the people of German Minor #2 were so threatening and evil that they would get a morale boost fighting them, even if the Monarchs of the two countries hated each other. In fact I even doubt that the people of German Minor #1 cared whether they they were ruled by the Monarch of German Minor #1 or German Minor #2 (all else (e.g. tax rates and religion) being equal).


I think your suggestions about outraged is reasonable, but nevertheless I actually disagree quite strongly with the main idea. As I am sure you agree, we really cannot separate the "outraged" attittude from the question of coalitions, and this creates a problem for your tweak. You seem to ignore what the purpose of the coalition system is: To replace the much maligned (and justly so) infamy-system of EUIII. That is coalitions are meant to be a response to aggressive expansion. You seem to want to turn them into a response to mere powerfulness - with aggressive expansion playing only a minor role - even though this is probably historically plausible, I don't think it is optimal from a game-play perspective, because I think the game should respond to what you do, not what you are (to put it a bit polemically). I think the fact that you had to hardlock a minimum of 1 AE in order for nations to become outraged in order to avoid Ming being torn apart by a coalition that forms on day 1, ought to be a warning sign that your tweak is not optimal. You may of course just deny that coalitions should be tied to AE instead of threat, which I guess is reasonable, but then we disagree on a more fundamental level. I must admit, I also think that the problems with coalitions stem from HOW coalitions work (no separate peace mainly), not from the conditions under which they form (though, I acknowledge the absurdity of native Americans, Mali and Ache creating a coalition).

I like your other changes to "outraged" though: Preventing countries that are vastly more powerful than you from joining coaltions against you, are a very good change.. I also like your last change, making the HRE more likely to form coalitions. However, you should probably be aware that this will make a lot of people who hate coalitions even MORE outraged (pun-like choice of words intended), seeing as the quickness with which coalitions form in the HRE is already one of the most criticized aspects of coalitions.


As a last thing, what is way more important than my agreements and disagreements with your post about AI attitudes, is that your attitude is commendable. The quality of this forum has plumetted for the last couple of months - it used to be a nice place, like the EUIII forum was, and the CKII forum still is, but now the tone has become hostile and non-constructive in a lot of posts. This sort of thread are the way forward - of course people do not have to post in such a great detail as you do, that would be unreasonable to expect. But the way your post moves beyond the "everything sucks vs. nothing is wrong at all"-dichotomy and instead starts off with a "this system is pretty good, but here are some problems, and here is how to fix them" is admirable. Another commendable point is your ability to separate the sub-features of the attitude system that needs work, and the one's that work instead of just calling attitudes "broken". The forum needs posts of your sort. Even if I thought all your ideas were crap - which I hope it has been made clear that I do not, far from it - your approach still makes it a good post.

Anyway, that is my honest opinion.
 
Last edited:
I'm going to add myself to the list of -- wow, this is nice. Oh, yes, I'd put my money were my mouth is.

In addition, it is so nice to see a constructive mature post instead of the whine...
 
This really constructive post needs a deeper reading from me, but I have to congratulate its author for his work.
The major idea of this post, allowing the player to set his attitude toward the other countries is really cool.
 
Last edited:
Ahhh, well that was a nice nap. On to responses.

@magitsu, Arjik, oblio-, Gustav91, kierun, yahiko; Thanks!

@XFXColor; That is the goal. I don't want a single broken Attitude to permanently destroy your relations, but I think Trust is a sadly under-utilized method of encouraging and rewarding consistency and honesty. And the Enemy of my Enemy attitude should be doing exactly that. It won't be impossible for two countries to stay friends after they have destroyed their common rival, but it will require something to connect them enough to make the Friendly Attitude the one that is chosen. Of course, I'll need to keep playing to see if it is actually working the way I want, the initial tests were promising, I saw EomEies and Benefactors being sensibly applied, but as always, I can only test so much.

@Freudia; Sorry about that. I admit my goal with all of the Spoilers and Code and the Length was to get everything collected and easily readable, and I may have sacrificed respondability in the process.

The Trust penalty from one attitude change would not be strong enough for you to wreck all of your alliances, and I would like to see a system where certain Attitude Changes that "Make Sense" don't incur as strong of a response and how consistently you've been inconsistent. Much like how I think AE gain should increase if you already have AE, the Trust Penalty should be higher if you've already received a Trust Penalty recently. The goal is less to penalize aggressive or underhanded diplomacy and more to prevent the Player from Gaming the System in ways the AI either cannot or does not.

Believe me, I would love a system that encouraged underhanded diplomacy, the main problem is just that the AI is currently completely incapable of doing that. They always wear their heart on their sleeve, to the point that you can always see every AI's attitude towards you and everyone else.

That said, I have been thinking of various ways to get the AI to be more.... devious. My first idea is to create 'transition' AI Attitudes. These would look like the Attitude the AI currently has, but the underlying logic would behave according to the Attitude they are transitioning into.

For instance, one of the major criticisms of the AI is that it cannot plan ahead when it decides to go Hostile and Break an Alliance. What I would do, is modify the current Hostile Attitude to check to make sure the country and its allies (sans FROM) could defeat the target and its allies (sans ROOT of course). If that check evaluates to True, then the country slips straight into Hostile and attacks once it can. If it evaluates to False, the country slips into a "Privately Hostile" attitude which looks like Friendly. It will maintain the Alliance with the Target, but refuse any Calls to Arms, even Defensive Ones. It will also try to get an Alliance with someone who Enemy of my Enemy is triggered for or some other country that can tip the balance in its favour.

For the Spain example, it would start being Privately Hostile towards France, start building relations with Austria/England, and once it was ready, it would break the Alliance with France and attack. If Austria attacked France before then, the "Refuse CTAs" check would trigger, and Spain would refuse the Defensive CTA from France while honouring the Offensive CTA from Austria, and immediately switch their Attitude to Hostile.

It's something I'm still kicking around. For Project Rex I'm going to give each entity the ability to set a Public Attitude and a Private Attitude towards other Entities. But that's still way in the future.

@Haccoude; Maybe, I suppose an attitude to denote friendly nations who don't want to ally is a sensible thing to have.

@AurochsAway; I'm not really trying to punish the Player, and I would hope the system of changing attitudes would be flexible enough that setting the proper attitude before you take action is not difficult. I just think that if there is a system where the Player has Attitudes that the AI will be basing their judgement on we need something to encourage the Player to actually use those Attitudes appropriately, something that encourages honesty, given how powerful dishonesty will be. It was my hope that by tying tangible effects to it there could be a system with both carrots and sticks.

@DrLulz; Again, I'm mainly just trying to find a way to encourage the Player to actively pay attention to the Attitude their country has towards another country. I do think Morale Boosts are a good way to do this, and even if it is German Minor 1 vs German Minor 2 that didn't stop The Swiss from giving a great showing against Austria above and beyond what their numbers suggested would happen, a showing that is virtually impossible to replicate in game as The Swiss tend to get walked all over by everyone.

It would be interesting if threatened countries could unlock more bonuses if the attacking power was wrong religion/wrong culture. Again, this would go a long way towards representing Albania's Resistance to the Ottomans.

As for Outraged, well when I first started modifying the Outraged Attitude I was pretty much looking to create a sort of International Community, and I wanted the Coalitions to be relatively permanent to simulate that. It didn't work, I'll freely admit that, however most of the things I was trying there are either still in the Outraged Attitude itself, or formed the foundation of the Enemy of my Enemy and Benefactor Attitudes.

I think if Coalitions were more flexible my original goal for the Outraged Attitude would work, but so far I think having Hard Locks on both AE and Threat is working very well. My current goal is for Neither AE nor Threat to really be the Sole Factor for Coalitions the way AE is in the base game and Threat was in my early variations, but for both to have to come together. That way countries who feel threatened will not form Coalitions if the target is not expanding, but if the target is expanding they will not attract opposition, via Coalitions at least, from countries they do not Threaten.

Instead, that sort of Soft Power dynamic will be handled by the Enemy of my Enemy and Benefactor Attitudes. I am considering adding a "Common Threat" attitude as well.

And thanks. I must admit even I am pretty discouraged by EUIV's current state, enough so that I've started my own unconnected project, but I do think the game has definite potential and that getting it to realize that potential would not even really be that hard.
 
The Trust penalty from one attitude change would not be strong enough for you to wreck all of your alliances, and I would like to see a system where certain Attitude Changes that "Make Sense" don't incur as strong of a response and how consistently you've been inconsistent.

But would the trust penalty stack on itself, like a majority of other maluses do? There's only two nations in all of Europe that I feel are worth being friends with, and I'm concerned that making trust penalties stack on itself for penalizing the player doing underhanded diplomacy with the rest of Europe might be a bit iffy. It'd also complicate playing small nations far more than it would complicate playing a nation like France, and I'm not sure how I feel about that.

Much like how I think AE gain should increase if you already have AE

I realize this is detached from pretty much the entire discussion at hand, but this is literally a bogus idea. A change like this promotes just sitting on your hands even more than coalitions already do. It might sound cool on paper, but it would probably play absolutely terribly.

the Trust Penalty should be higher if you've already received a Trust Penalty recently.

...So it would stack on itself. Yeah I don't think I like this either, sorry.

The goal is less to penalize aggressive or underhanded diplomacy and more to prevent the Player from Gaming the System in ways the AI either cannot or does not.

I do not think limiting the player's options just because the AI cannot take advantage of those same options is a good design choice. It's like balancing competitive fighting games for the lowest common skill bracket. The AI also gets a lot of perks that the player currently does not, so the player gaming the system is an equivalent trade.

Believe me, I would love a system that encouraged underhanded diplomacy, the main problem is just that the AI is currently completely incapable of doing that. They always wear their heart on their sleeve, to the point that you can always see every AI's attitude towards you and everyone else.

That said, I have been thinking of various ways to get the AI to be more.... devious. My first idea is to create 'transition' AI Attitudes. These would look like the Attitude the AI currently has, but the underlying logic would behave according to the Attitude they are transitioning into.

For instance, one of the major criticisms of the AI is that it cannot plan ahead when it decides to go Hostile and Break an Alliance. What I would do, is modify the current Hostile Attitude to check to make sure the country and its allies (sans FROM) could defeat the target and its allies (sans ROOT of course). If that check evaluates to True, then the country slips straight into Hostile and attacks once it can. If it evaluates to False, the country slips into a "Privately Hostile" attitude which looks like Friendly. It will maintain the Alliance with the Target, but refuse any Calls to Arms, even Defensive Ones. It will also try to get an Alliance with someone who Enemy of my Enemy is triggered for or some other country that can tip the balance in its favour.

For the Spain example, it would start being Privately Hostile towards France, start building relations with Austria/England, and once it was ready, it would break the Alliance with France and attack. If Austria attacked France before then, the "Refuse CTAs" check would trigger, and Spain would refuse the Defensive CTA from France while honouring the Offensive CTA from Austria, and immediately switch their Attitude to Hostile.

It's something I'm still kicking around. For Project Rex I'm going to give each entity the ability to set a Public Attitude and a Private Attitude towards other Entities. But that's still way in the future.

This would require a reworking of the way the AI currently decides a lot of things, including what wars to join on whose side. I'm also not sure how I'd feel about how this impacts the game as a minor state, as knowing you have a big power at your back if you get declared on simplifies a lot of problems of playing a minor. Your system, while it sounds like it'd be cool for major power vs major power, would give more incentive for the AI to backstab minor nations because they can gobble them up with relative ease if presented with an opportunity to do so.

Towards the end of the game it'd also create this weird situation where the player can get allies that won't do anything to help him but will never break the alliance and declare war on him either, because no amount of allies that nation can get will be good enough to beat the player at that point. You get these alliance blocks that actually mean nothing.
 
Well this took absurdly long. No really good reason for that, I've just been losing interest in EUIV lately. However with Paradox changing the localization of Cordial to Defensive, which I am totally going to take credit for, I feel a bit more interested.

So Responses;

I keep forgetting that Paradox still hasn't implemented a way of actively burning AE as it seems like such a simple concept that features in games should actually have gameplay associated with them. My general suggestion was that surplus warscore should decrease AE by up to a maximum of 50% for 100 unspent warscore.

Currently, I think it should be tied in some way to the "Concede Defeat" peace option, that way said option may actually get some use as something other than just a consolation prize. I would say forcing a a country/alliance to Concede Defeat will apply your warscore to decrease the AE you have with the countries in the war against you. A Peace without Concede Defeat will cause a smaller decrease, but still could be useful depending on the situation, of course if you don't even have the warscore to get them to Concede Defeat you probably don't have the warscore to get a decent AE Reduction Anyways. Demanding Tribute would not prevent the AE Reduction from surplus Warscore, but would reduce it by quite a bit (I would say by 5% per warscore spent demanding tribute, so once you demand 20 warscore the AE reduction from surplus Warscore is reduced by 100% to 0). Forcing a Coalition to Concede Defeat will increase the AE Reduction, while doing it in a war you declared will cut the possible AE Reduction in Half.

In addition, I've always thought that Paradox is far to Linear with their Decay Rates. I think it would be far more interesting and realistic if instead of a linear decay rate they gave those values a Half Life decay rate.

Between the two of these it would give people a lot more options for dealing with AE. Sitting and staying peaceful would be a viable option even when you have absurd AE levels, and with a Half Life decay rate it would prevent a single forced Union from getting you an Eternal Coalition, while on the other hand you might be able to break the back of a Coalition against you by forcing them to recognize your conquests through the Concede Defeat Option, which is what I would say The Ottomans historically did against the Crusaders at Varna, and what Napoleon failed to do against his Coalitions.

This could get even more interesting if Paradox had variable Truce Lengths. Then Concede Defeat could enforce a 10 year Truce or something similar. Well hey lookit that they've got Variable Truce Lengths now. Not quite how I wanted though, but I'm unsurprised that Paradox took an oft requested feature and implemented it in a way that it was beyond player control and will likely just be tedious to deal with. SEE ALSO: the Protectorate/Vassal Dichotomy, Rival Choices, Personal Unions.

All of that said remember under my system AE is far less important for Coalition Membership. In one of my games for instance Moscowvy managed to take a massive bite out of the Golden Horde without getting anyone notable in a Coalition against them. The Ottomans were too strong to feel they needed one and Poland-Lithuania is still trying to start a Coalition against The Ottomans. Similarly, France annexed all of Britany in a single war and the Coalition against them consisted of England and Provence. Me, an Austria, might have joined if I had been an AI, but I just settled for allying with England.

Also, Trust won't, and currently doesn't, have an overriding effect on Attitude choices and thus on diplomacy. Even if you tank your trust with a major power nearby, they'll still be willing to protect you to keep you from falling into the hands of a Rival, they just won't be so willing to honour your offensive calls, which I think is valid. That said, I don't really have a problem with people being able to paint themselves into a diplomatic corner as it were, but even then the Majors will still have a reason to support even the least trustworthy of Minors. That said, I'm fine with Majors selling out Minors whenever they feel like because that's pretty much what happened. Majors supported Minors so long as it was in their interest, and the moment that was no longer the case, unless those Minors had managed to build some other relationship, well see ya latter sucker.

That said I would support a way of actively building trust as well. Personally, I would like to see the "Improve Relations" option help build it mutually. Likewise, I think Improve Relations really needs to be remade so it improves mutual relations, but only half as much. If two countries are both friendly, they'll both improve relations up to a maximum of 100, but one country trying to befriend another who wants nothing to do with you will only be able to get up to 50.

It's kind of ridiculous that another country can just decide that they want you to like them more and there's literally nothing you can do to stop that short of declaring war. There's no "Rebuff their attempts" option, which is beyond dumb considering what high relations allows another country to do to you. It also remains pretty stupid that the Player has absolutely no control over their own country's opinion of other countries despite said opinion being so important for so many things.

ALLLLLLL of that said, has anyone else tried the modifications I had in the original post out? I have run some handsoff games and been pretty happy with my results, but I hadn't really tested Coalitions all of that much because I'm generally not a Warmonger. Need to get Jomini or TheMeInTeam up in this joint.
 
There was a download hidden in normal text size in the first post, I centered it and made it larger. It comes pre-packaged as a fully functional mod, and should still be compatible with 1.7 once it comes out, although as soon as I get the patch I will take a look and make sure.

Actually, if they renamed "Cordial" in the actual code then it might not be compatible. Or it could just undo that rename. Or they could have just changed the Localization in which case it will still be fully compatible. Either way I will take a look at what changes they made and see if I like any of them.
 
There was a download hidden in normal text size in the first post, I centered it and made it larger. It comes pre-packaged as a fully functional mod, and should still be compatible with 1.7 once it comes out, although as soon as I get the patch I will take a look and make sure.

Actually, if they renamed "Cordial" in the actual code then it might not be compatible. Or it could just undo that rename. Or they could have just changed the Localization in which case it will still be fully compatible. Either way I will take a look at what changes they made and see if I like any of them.

Awesome, thanks! I'm going to install it and try a playthrough and see what happens. Do you need me to playtest any countries or styles? I'll give you whatever feedback I can, because like I said, I fully support this implementation. It's a sprawling but surprisingly strong solution to one of the game's primary underpinnings and one of its most consistent problems.