Part of the problem with Sturgia getting rolled early:

Users who are viewing this thread

BBTW, just checking in game and Derthert has Mercy trait, while Lucon (Northern Empire) and Garios (Western Empire) has Valor trait. It is maybe not the main reason because these factions are constantly going to war against everyone, but who knows.

Concerning Sturgia, I think the main reason because this faction gets usually wrecked is because strenght calculation. Sturgia starts at war against Vlandia, which is always one of the strongest factions in early, mid, and late game. Vlandia starts with more clans and fiefs than anyone (well, just Aserai starts with one more fief).

Let's trust in @mexxico he will probably deal with this issue when has time.
 
Last edited:
BBTW, just checking in game and Derthert has Mercy trait, while Lucon (Northern Empire) and Garios (Western Empire) has Valor trait. It is maybe not the main reason because these factions are constantly going to war against everyone, but who knows.
These are traits of the clan leaders who proposing or supporting the war.

Concerning Sturgia, I think the main reason because this faction gets usually wrecked is because strenght calculation. Sturgia starts at war against Vlandia, which is always one of the strongest factions in early, mid, and late game. Vlandia starts with more clans and fiefs than anyone (well, just Aserai starts with one more fief).
Agree.
 
Some code analysis here. Most of calculations done in GetScoreOfWarInternal() function. From that, we can tell which factors will increase score and which will decrease the score of war. If score > 50 then war will be declared.

Factors that increase the score:

Clan leaders Valor trait;
Target faction aggressiveness;
Benefit Score for the attacker faction;
Top Dog score;
The negative relationship between rulers of the factions;
Add score if total strength of the attacker faction > total strength of the target faction;
Number of settlements in Target faction with the culture same as the attacker's culture;

Factors that decrease the score:

Clan leaders Mercy trait;
Benefit Score for the target faction;
The positive relationship between rulers of the factions;
War fatigue score;
Decrease score if the attacker of the target faction are already in war;

Also, there one very suspicious function - CalculateBenefitScore(), this function calculates if the faction can get some benefit of the war.
C#:
        private float CalculateBenefitScore(ref DefaultDiplomacyModel.WarStats faction1Stats, ref DefaultDiplomacyModel.WarStats faction2Stats, bool calculatingRisk = false)
        {
            float num = MathF.Clamp(faction2Stats.ValueOfSettlements + 1f, DefaultDiplomacyModel._MinValue, DefaultDiplomacyModel._MaxValue);
            float num2 = (faction2Stats.Strength + 10f) / (faction1Stats.Strength + 10f);
            float num3 = (faction2Stats.Strength + 0.3f * faction1Stats.TotalStrengthOfEnemies + 10f) / (faction1Stats.Strength + 0.3f * faction2Stats.TotalStrengthOfEnemies + 10f);
            float num4 = MathF.Pow(num2 * num3, 0.4f);
            float num5 = MathF.Sqrt(faction1Stats.DistanceToClosestEnemyFief / faction2Stats.DistanceToClosestEnemyFief);
            num4 *= num5;
            if (!calculatingRisk)
            {
                float x = Math.Min(1f, 2f * (faction1Stats.Strength + 10f) / (faction1Stats.Strength + faction1Stats.TotalStrengthOfEnemies + 10f));
                num4 /= MathF.Pow(x, 0.5f);
            }
            float num6 = 1f / (1f + num4);
            num6 = MathF.Clamp(num6, 0.01f, 0.99f);
            float num7 = num * num6;
            float num8 = 150f / (150f + faction1Stats.DistanceToClosestEnemyFief);
            return num7 * num8;
        }
It looks very obscured, however, we do not need to know what exactly it does, we only need to understand the general idea.

Result of this function is:
Target faction Settlements value * Strength Factor / Distance to Closest Enemy Fief;

And the suspicious part of it is a Strength Factor that in the code "num6".

Strength Factor ~ (Total strength of Attacker faction + Total strength of all enemies of Target faction) / (Total strength of Target faction + Total strength of all enemies of Attacker faction);

The Strength Factor has a greater score when the Target faction is in war with multiple factions. And it's even greater if Target faction is weakened by war.

This explains why everyone in Calradia gang banging weak factions.
Yeah that makes a lot of sense. Would make sense to for factions with more surface area like those spread out farther or that are in more contact with other factions to have more wars judging by the “distance to closest fief” factor. So basically in my mind it means factions in contact with more factions have a higher probability of declaring war which then leads to other factions having higher probability to declare war on them. That’s the spiral I think.

thanks for posting this!

now what could change about this to make it more even is thequestion
 
Concerning Sturgia, I think the main reason because this faction gets usually wrecked is because strenght calculation. Sturgia starts at war against Vlandia, which is always one of the strongest factions in early, mid, and late game. Vlandia starts with more clans and fiefs than anyone (well, just Aserai starts with one more fief).

Sure, you as a player care, but TW doesn´t play this game. They want your money, they got it.
 
Some code analysis here.
Awesome! Thank you for taking the time to type all of that out.

I'll elaborate on some parts of the system a little more:

  • This is how a war declaration vote is initially put forth:
    • Every day, each clan that has > 200 influence has a random chance of putting forth a vote to declare war for a faction.
    • If the roll succeeds, then a random faction is chosen out of the list of factions that have been at peace for > 20 days.
    • At this point it calculates the score of declaring war on the randomly selected faction, and as zenDee says, and only proceeds with initialing the vote if the score is > 50.
    • Even though there is randomness in deciding whether or not to declare war and who to attack, a faction will not go to war if the output of the War Score is not high enough, and the War Score does not involve any randomness.

  • The War Fatigue Scoreis determined through the following:
    • The first factor is based on the prosperity of all the towns in the faction that have < 65 loyalty. It adds a multiplier to this factor the lower a town's loyalty goes.
    • The second factor is based on the number of settlements with < 100 food in their stocks. Towns are weighted higher than castles.
    • The third factor is based on all of the villages that are currently looted and all of the villages that have < 300 hearths. The lower the hearths, the greater the weight it has.
    • This function is also used when deciding to declare peace with a faction they are already at war with, and it will additionally factor in the amount of days the two factions have been at war with each other in that case.
    • Essentially, if a faction has greatly suffered from the effects of current and past wars, they are less eager to declare new wars.

  • The Kingdom Aggressiveness mechanic works the following way:
    • Each kingdom has an aggressiveness value between 0 and 100. I don't know what the initial values of these are.
    • Every time a war is declared, the aggressiveness of the attacking faction increases. The amount it increases is based on the aggressiveness of the defending faction. If the aggressiveness of the defending faction is low, then the boost to the attacking faction's aggressiveness is high, and vice versa. If a faction declares war on a peaceful faction, then the attacking faction's aggressiveness will skyrocket. If a faction declares war on a highly aggressive faction, then the attacking faction's aggressiveness will barely increase.
    • Each day, the aggressiveness of all factions goes down by 0.5 points. If a faction does not declare war ever, their aggressiveness will eventually fall to 0.
    • Overall, this mechanic has the effect of increasing the likelihood of a faction declaring war on an aggressive faction, and decreasing likelihood of war with a peaceful faction. Essentially, a faction that has declared war many times will have a higher chance of having war declared on them, and a faction that is peaceful will have a reduced chance of other factions declaring war on them.

  • The Top Dog Score can either increase or decrease the likelihood of war being declared:
    • The "top dog" is the strongest faction in the world. This is based on the total strength of the kingdom (lord + garrison parties).
    • If the faction that is getting war declared on it is the top dog, then the score increases. The stronger the top dog relative to others, the higher the score. This increases the likelihood that war will be declared on the strongest faction in the world.
    • If the faction getting war declared on it is currently at war with the top dog, then the score becomes negative, meaning war is less likely to be declared on a faction that is already at war with the strongest faction in the game. The stronger the top dog relative to others, the more it decreases the likelihood of war.
    • If the attacking faction is not declaring war on the top dog, or if the faction that they are attacking is not at war with the top dog, then this score is 0.
    • This mechanic makes factions more likely to gang up on the strongest faction in the world, and less likely to declare war on each other if currently at war with the top dog.

  • Daily Tribute currently being paid to the attacking faction to the defending faction is factored in the following way:
    • If the target faction is currently paying tribute to the attacking faction, then the likelihood of war being declared decreases. The more tribute being paid per day, the greater the reduction in the likelihood of war.
    • The amount of tribute paid from a truce is heavily based on the output of the same War Score that is used for declaring war.

FYI, the reason the Total Strength of kingdoms has gone down across the board is that it used to include militia parties from towns and villages in the strength, but no longer does so. Total strength only includes lord parties and garrison parties now.

There is also evidence of a provocation/casus belli system either being worked on or scrapped in the PoliticalStagnationAndBorderIncidentCampaignBehavior class. There are some functional parts of this class, but the "BorderIncidents" method is currently empty. The "political stagnation" value that this class calculates is functional, but is not applied to anything else. Here is the list of "Provocation Types" that is dormant in the code:

Provocation-Type.png

There's plenty of interesting stuff in the code...
 
Awesome! Thank you for taking the time to type all of that out.

I'll elaborate on some parts of the system a little more:

  • This is how a war declaration vote is initially put forth:
    • Every day, each clan that has > 200 influence has a random chance of putting forth a vote to declare war for a faction.
    • If the roll succeeds, then a random faction is chosen out of the list of factions that have been at peace for > 20 days.
    • At this point it calculates the score of declaring war on the randomly selected faction, and as zenDee says, and only proceeds with initialing the vote if the score is > 50.
    • Even though there is randomness in deciding whether or not to declare war and who to attack, a faction will not go to war if the output of the War Score is not high enough, and the War Score does not involve any randomness.

  • The War Fatigue Scoreis determined through the following:
    • The first factor is based on the prosperity of all the towns in the faction that have < 65 loyalty. It adds a multiplier to this factor the lower a town's loyalty goes.
    • The second factor is based on the number of settlements with < 100 food in their stocks. Towns are weighted higher than castles.
    • The third factor is based on all of the villages that are currently looted and all of the villages that have < 300 hearths. The lower the hearths, the greater the weight it has.
    • This function is also used when deciding to declare peace with a faction they are already at war with, and it will additionally factor in the amount of days the two factions have been at war with each other in that case.
    • Essentially, if a faction has greatly suffered from the effects of current and past wars, they are less eager to declare new wars.

  • The Kingdom Aggressiveness mechanic works the following way:
    • Each kingdom has an aggressiveness value between 0 and 100. I don't know what the initial values of these are.
    • Every time a war is declared, the aggressiveness of the attacking faction increases. The amount it increases is based on the aggressiveness of the defending faction. If the aggressiveness of the defending faction is low, then the boost to the attacking faction's aggressiveness is high, and vice versa. If a faction declares war on a peaceful faction, then the attacking faction's aggressiveness will skyrocket. If a faction declares war on a highly aggressive faction, then the attacking faction's aggressiveness will barely increase.
    • Each day, the aggressiveness of all factions goes down by 0.5 points. If a faction does not declare war ever, their aggressiveness will eventually fall to 0.
    • Overall, this mechanic has the effect of increasing the likelihood of a faction declaring war on an aggressive faction, and decreasing likelihood of war with a peaceful faction. Essentially, a faction that has declared war many times will have a higher chance of having war declared on them, and a faction that is peaceful will have a reduced chance of other factions declaring war on them.

  • The Top Dog Score can either increase or decrease the likelihood of war being declared:
    • The "top dog" is the strongest faction in the world. This is based on the total strength of the kingdom (lord + garrison parties).
    • If the faction that is getting war declared on it is the top dog, then the score increases. The stronger the top dog relative to others, the higher the score. This increases the likelihood that war will be declared on the strongest faction in the world.
    • If the faction getting war declared on it is currently at war with the top dog, then the score becomes negative, meaning war is less likely to be declared on a faction that is already at war with the strongest faction in the game. The stronger the top dog relative to others, the more it decreases the likelihood of war.
    • If the attacking faction is not declaring war on the top dog, or if the faction that they are attacking is not at war with the top dog, then this score is 0.
    • This mechanic makes factions more likely to gang up on the strongest faction in the world, and less likely to declare war on each other if currently at war with the top dog.

  • Daily Tributecurrently being paid to the attacking faction to the defending faction is factored in the following way:
    • If the target faction is currently paying tribute to the attacking faction, then the likelihood of war being declared decreases. The more tribute being paid per day, the greater the reduction in the likelihood of war.
    • The amount of tribute paid from a truce is heavily based on the output of the same War Score that is used for declaring war.

FYI, the reason the Total Strength of kingdoms has gone down across the board is that it used to include militia parties from towns and villages in the strength, but no longer does so. Total strength only includes lord parties and garrison parties now.

There is also evidence of a provocation/casus belli system either being worked on or scrapped in the PoliticalStagnationAndBorderIncidentCampaignBehavior class. There are some functional parts of this class, but the "BorderIncidents" method is currently empty. The "political stagnation" value that this class calculates is functional, but is not applied to anything else. Here is the list of "Provocation Types" that is dormant in the code:

Provocation-Type.png

There's plenty of interesting stuff in the code...

My friend, you are amazing.

I have to say that I am glad to see how many options and how elaborated diplomacy system is. There are plenty of options to balance this correctly if someone invests enough time to try to find right numbers (hopefully Mexxico :smile: ).

- I hope that factions which are already in 1 war, do not declare new wars (or at least rarely) if they are already losing a war.
- Would be nice if war fatigue would be more relevant in terms to make that some factions accept paying tribute for peace, and avoiding declare new wars.
- Kingdoms which too many fiefs should get some kind of aggro and get more wars declarations from other kingdoms.
- Kingdoms fighting 3 wars and losing, should try to get peace as fast as possible with at least one enemy.
- Maybe the random part of war declarations should be slower and not trigger every day.
- The top dog score sounds great on papper, but It is not working as good as It should.

There are tons of possible suggestions with the information you guys have shared, really thanks for that.

(Nice to know about why faction strenght has been torned down, really interesting stuff)
 
Last edited:
Awesome! Thank you for taking the time to type all of that out.

I'll elaborate on some parts of the system a little more:

  • This is how a war declaration vote is initially put forth:
    • Every day, each clan that has > 200 influence has a random chance of putting forth a vote to declare war for a faction.
    • If the roll succeeds, then a random faction is chosen out of the list of factions that have been at peace for > 20 days.
    • At this point it calculates the score of declaring war on the randomly selected faction, and as zenDee says, and only proceeds with initialing the vote if the score is > 50.
    • Even though there is randomness in deciding whether or not to declare war and who to attack, a faction will not go to war if the output of the War Score is not high enough, and the War Score does not involve any randomness.

  • The War Fatigue Scoreis determined through the following:
    • The first factor is based on the prosperity of all the towns in the faction that have < 65 loyalty. It adds a multiplier to this factor the lower a town's loyalty goes.
    • The second factor is based on the number of settlements with < 100 food in their stocks. Towns are weighted higher than castles.
    • The third factor is based on all of the villages that are currently looted and all of the villages that have < 300 hearths. The lower the hearths, the greater the weight it has.
    • This function is also used when deciding to declare peace with a faction they are already at war with, and it will additionally factor in the amount of days the two factions have been at war with each other in that case.
    • Essentially, if a faction has greatly suffered from the effects of current and past wars, they are less eager to declare new wars.

  • The Kingdom Aggressiveness mechanic works the following way:
    • Each kingdom has an aggressiveness value between 0 and 100. I don't know what the initial values of these are.
    • Every time a war is declared, the aggressiveness of the attacking faction increases. The amount it increases is based on the aggressiveness of the defending faction. If the aggressiveness of the defending faction is low, then the boost to the attacking faction's aggressiveness is high, and vice versa. If a faction declares war on a peaceful faction, then the attacking faction's aggressiveness will skyrocket. If a faction declares war on a highly aggressive faction, then the attacking faction's aggressiveness will barely increase.
    • Each day, the aggressiveness of all factions goes down by 0.5 points. If a faction does not declare war ever, their aggressiveness will eventually fall to 0.
    • Overall, this mechanic has the effect of increasing the likelihood of a faction declaring war on an aggressive faction, and decreasing likelihood of war with a peaceful faction. Essentially, a faction that has declared war many times will have a higher chance of having war declared on them, and a faction that is peaceful will have a reduced chance of other factions declaring war on them.

  • The Top Dog Score can either increase or decrease the likelihood of war being declared:
    • The "top dog" is the strongest faction in the world. This is based on the total strength of the kingdom (lord + garrison parties).
    • If the faction that is getting war declared on it is the top dog, then the score increases. The stronger the top dog relative to others, the higher the score. This increases the likelihood that war will be declared on the strongest faction in the world.
    • If the faction getting war declared on it is currently at war with the top dog, then the score becomes negative, meaning war is less likely to be declared on a faction that is already at war with the strongest faction in the game. The stronger the top dog relative to others, the more it decreases the likelihood of war.
    • If the attacking faction is not declaring war on the top dog, or if the faction that they are attacking is not at war with the top dog, then this score is 0.
    • This mechanic makes factions more likely to gang up on the strongest faction in the world, and less likely to declare war on each other if currently at war with the top dog.

  • Daily Tributecurrently being paid to the attacking faction to the defending faction is factored in the following way:
    • If the target faction is currently paying tribute to the attacking faction, then the likelihood of war being declared decreases. The more tribute being paid per day, the greater the reduction in the likelihood of war.
    • The amount of tribute paid from a truce is heavily based on the output of the same War Score that is used for declaring war.

FYI, the reason the Total Strength of kingdoms has gone down across the board is that it used to include militia parties from towns and villages in the strength, but no longer does so. Total strength only includes lord parties and garrison parties now.

There is also evidence of a provocation/casus belli system either being worked on or scrapped in the PoliticalStagnationAndBorderIncidentCampaignBehavior class. There are some functional parts of this class, but the "BorderIncidents" method is currently empty. The "political stagnation" value that this class calculates is functional, but is not applied to anything else. Here is the list of "Provocation Types" that is dormant in the code:

Provocation-Type.png

There's plenty of interesting stuff in the code...
Awesome post man thanks. TW should pay you to do this honestly. It makes it way easier to see that thought has gone into the game, and how complex stuff like this gets.

I wonder if editing the amount the code weighs number of wars currently present for declaring faction would help. Something like 1*strength of current enemies if 1 war is present then 2* strength of current enemies. Idk if thats feasible, but would help with having so many wars going on at once
 
Last edited:
Awesome! Thank you for taking the time to type all of that out.

I'll elaborate on some parts of the system a little more:

  • This is how a war declaration vote is initially put forth:
    • Every day, each clan that has > 200 influence has a random chance of putting forth a vote to declare war for a faction.
    • If the roll succeeds, then a random faction is chosen out of the list of factions that have been at peace for > 20 days.
    • At this point it calculates the score of declaring war on the randomly selected faction, and as zenDee says, and only proceeds with initialing the vote if the score is > 50.
    • Even though there is randomness in deciding whether or not to declare war and who to attack, a faction will not go to war if the output of the War Score is not high enough, and the War Score does not involve any randomness.

  • The War Fatigue Scoreis determined through the following:
    • The first factor is based on the prosperity of all the towns in the faction that have < 65 loyalty. It adds a multiplier to this factor the lower a town's loyalty goes.
    • The second factor is based on the number of settlements with < 100 food in their stocks. Towns are weighted higher than castles.
    • The third factor is based on all of the villages that are currently looted and all of the villages that have < 300 hearths. The lower the hearths, the greater the weight it has.
    • This function is also used when deciding to declare peace with a faction they are already at war with, and it will additionally factor in the amount of days the two factions have been at war with each other in that case.
    • Essentially, if a faction has greatly suffered from the effects of current and past wars, they are less eager to declare new wars.

  • The Kingdom Aggressiveness mechanic works the following way:
    • Each kingdom has an aggressiveness value between 0 and 100. I don't know what the initial values of these are.
    • Every time a war is declared, the aggressiveness of the attacking faction increases. The amount it increases is based on the aggressiveness of the defending faction. If the aggressiveness of the defending faction is low, then the boost to the attacking faction's aggressiveness is high, and vice versa. If a faction declares war on a peaceful faction, then the attacking faction's aggressiveness will skyrocket. If a faction declares war on a highly aggressive faction, then the attacking faction's aggressiveness will barely increase.
    • Each day, the aggressiveness of all factions goes down by 0.5 points. If a faction does not declare war ever, their aggressiveness will eventually fall to 0.
    • Overall, this mechanic has the effect of increasing the likelihood of a faction declaring war on an aggressive faction, and decreasing likelihood of war with a peaceful faction. Essentially, a faction that has declared war many times will have a higher chance of having war declared on them, and a faction that is peaceful will have a reduced chance of other factions declaring war on them.

  • The Top Dog Score can either increase or decrease the likelihood of war being declared:
    • The "top dog" is the strongest faction in the world. This is based on the total strength of the kingdom (lord + garrison parties).
    • If the faction that is getting war declared on it is the top dog, then the score increases. The stronger the top dog relative to others, the higher the score. This increases the likelihood that war will be declared on the strongest faction in the world.
    • If the faction getting war declared on it is currently at war with the top dog, then the score becomes negative, meaning war is less likely to be declared on a faction that is already at war with the strongest faction in the game. The stronger the top dog relative to others, the more it decreases the likelihood of war.
    • If the attacking faction is not declaring war on the top dog, or if the faction that they are attacking is not at war with the top dog, then this score is 0.
    • This mechanic makes factions more likely to gang up on the strongest faction in the world, and less likely to declare war on each other if currently at war with the top dog.

  • Daily Tributecurrently being paid to the attacking faction to the defending faction is factored in the following way:
    • If the target faction is currently paying tribute to the attacking faction, then the likelihood of war being declared decreases. The more tribute being paid per day, the greater the reduction in the likelihood of war.
    • The amount of tribute paid from a truce is heavily based on the output of the same War Score that is used for declaring war.

FYI, the reason the Total Strength of kingdoms has gone down across the board is that it used to include militia parties from towns and villages in the strength, but no longer does so. Total strength only includes lord parties and garrison parties now.

There is also evidence of a provocation/casus belli system either being worked on or scrapped in the PoliticalStagnationAndBorderIncidentCampaignBehavior class. There are some functional parts of this class, but the "BorderIncidents" method is currently empty. The "political stagnation" value that this class calculates is functional, but is not applied to anything else. Here is the list of "Provocation Types" that is dormant in the code:

Provocation-Type.png

There's plenty of interesting stuff in the code...

Thanks. This makes sense now. Casus Belli for border incidents isnt in the game yet. That's why Battania and Vlandia never declare war on each other, although it's in both of their best interest to do so.
 
Last edited:
Thanks for the code analysis guys, love it. :grin:

- The top dog score sounds great on papper, but It is not working as good as It should.

If the top dog faction is calculating by comparing kingdom strength at the moment of the "should i declare war"-decision, there will probably be some volatily about who is the top dog, especially in the early game. Consider this scenario:

Day 1: Vlandia and Sturgia are at war, Vlandia is the top dog.
Day 2: Vlandia and Sturgia fight a huge battle. Both lose a lot of man. This drops the strength of both factions and hence Aserai becomes top dog for some days. So Sturgia loses the "fighting top dog protection".
Day 4: Mongols (forgot the name, you know who) declare war at Stugia.
Day 6: Vlandia recovers from battle and is top dog again.

I don't know the numbers, so this is just made up. But i think, this could be possible. Maybe one could use a moving average for calculating the kingdom strength score? :unsure:


This explains why everyone in Calradia gang banging weak factions.

Well, it's also somewhat realistic, isn't it? When you see a kingdom being beaten up badly, everyone will try to get a piece of that cake. A kind of "low risk / possibly high reward" situation. Although i get, it's not so desirable balancing wise.
 
If the top dog faction is calculating by comparing kingdom strength at the moment of the "should i declare war"-decision, there will probably be some volatily about who is the top dog, especially in the early game. Consider this scenario:

Day 1: Vlandia and Sturgia are at war, Vlandia is the top dog.
Day 2: Vlandia and Sturgia fight a huge battle. Both lose a lot of man. This drops the strength of both factions and hence Aserai becomes top dog for some days. So Sturgia loses the "fighting top dog protection".
Day 4: Mongols (forgot the name, you know who) declare war at Stugia.
Day 6: Vlandia recovers from battle and is top dog again.

I don't know the numbers, so this is just made up. But i think, this could be possible. Maybe one could use a moving average for calculating the kingdom strength score?
That's a very good point. It doesn't consider a faction's overall capacity to wage war, only its strength in that moment, but it only takes a moment to declare a war that could last a long time. Another aspect that it could consider is the total maximum party capacity of all of a faction's vassals summed together, since lords tend to try to recruit up to their max capacity when they can.

Casus Belli for border incidents isnt in the game yet.
I know. I just wanted to show that Taleworlds has already considered it, whether they intend to eventually implement it or not. There have been a lot of people asking for it.
 
Last edited:
That's a very good point. It doesn't consider a faction's overall capacity to wage war, only it's strength in that moment, but it only takes a moment to declare a war that could last a long time. Another aspect that it could consider is the total maximum party capacity of all of a faction's vassals summed together, since lords tend to try to recruit up to their max capacity when they can.


I know. I just wanted to show that Taleworlds has already considered it, whether they intend to eventually implement it or not. There have been a lot of people asking for it.

They need it or some sort of mechanic that makes border wars more likely than Khuzait vs. Vlandia.

Thanks for your posts though. They're very informative.
 
I have been playing around the Kings traits and the result has been pretty surprising. I remove mercy and add valor to Derthert, and also add valor trait to Monchug. Plus I gave Mercy trait and remove valor for Garios and Lucon and the result has been amazing in terms of trying to balance my campaigns. Vlandia which usually used to be pretty "passive" in early game and just fights against Sturgia, in both campaigns I have tested, Vlandia declares war on Aserai pretty soon. Plus Khuzait which always fight just against NE the first couple of days, this time has declared war to NE at day 20 or so.

It seems like the Valor trait is pretty decissive interms of declaring new wars or not, at least in the first couple of days. This is one of the reasons because NE and WE are usually involved in tons of wars.

@Bannerman Man @zenDzee

Do you know if there is a way to increse the relevance of one active war, to try to avoid kingdoms currently fighting one war to declare a new one? Thanks!
 
Here you can se the result of just changing Kings' traits, and making OP factions (Khuzait, Vlandia) more aggressive while weak factions (NE and WE) less likely to initiate wars (I did not need to change Sturgia king traits, just making Khuzaits and Vlandia more aggressive against other kingdoms has been enough):

306 days campaign


- Khuzaits has been always figthing against 3 of these kingdoms at he same time: NE, SE, Aserai and Sturgia. Khuzait has been able to keep fighting without problems and even taking some fiefs.
- Vlandia has lost and retaken Sargot a lot of times. Always fighting against two factions (always against Sturgia and eventually against Battania, Aserai or WE).

Conclusions:

- The biggest issue with snowballing is probably related to a purely balancing problem in term that Sstrongest factions are usuarlly fighting just 1 war at the same time in vanilla, while wakest factions are usuarlly fighting against 3 enemies at the same time. The main reason for this are Kings' traits which make some weka kingdoms kings too aggressive while strongest kingdoms kings pretty pacific.
- Khuzait need a nerf in campaign.
- War declarations happens too often, much more often than peace delcarations.
- Making factions more likely to ask for peace when they are figthing against tons of enemies is necessary and will help a lot for sure, but there are other elements which are also making worse the snowballing.
 
Last edited:
Here you can se the result of just changing Kings' traits, and making OP factions (Khuzait, Vlandia) more aggressive while weak factions (NE and WE) less likely to initiate wars (I did not need to change Sturgia king traits, just making Khuzaits and Vlandia more aggressive against other kingdoms has been enough):

306 days campaign


- Khuzaits has been always figthing against 3 of these kingdoms at he same time: NE, SE, Aserai and Sturgia. Khuzait has been able to keep fighting without problems and even taking some fiefs.
- Vlandia has lost and retaken Sargot a lot of times. Always fighting against two factions (always against Sturgia and eventually against Battania, Aserai or WE).

Conclusions:

- The biggest issue with snowballing is probably related to a purely balancing problem in term that Sstrongest factions are usuarlly fighting just 1 war at the same time in vanilla, while wakest factions are usuarlly fighting against 3 enemies at the same time. The main reason for this are Kings' traits which make some weka kingdoms kings too aggressive while strongest kingdoms kings pretty pacific.
- Khuzait need a nerf in campaign.
- War declarations happens too often, much more often than peace delcarations.
- Making factions more likely to ask for peace when they are figthing against tons of enemies is necessary and will help a lot for sure, but there are other elements which are also making worse the snowballing.
Whatever you did, can you make that a mod? Please and thank you?
 
This is how a war declaration vote is initially put forth:
  • Every day, each clan that has > 200 influence has a random chance of putting forth a vote to declare war for a faction.
  • If the roll succeeds, then a random faction is chosen out of the list of factions that have been at peace for > 20 days.
  • At this point it calculates the score of declaring war on the randomly selected faction, and as zenDee says, and only proceeds with initialing the vote if the score is > 50.
  • Even though there is randomness in deciding whether or not to declare war and who to attack, a faction will not go to war if the output of the War Score is not high enough, and the War Score does not involve any randomness.

I am trying tio find where is defined that "Every day, each clan that has > 200 influence has a random chance of putting forth a vote to declare war for a faction". I would like to change this to happens every 3-5 days. Thanks and forgive me is I am making too much questions.

Whatever you did, can you make that a mod? Please and thank you?

I am doing two more runs to check if I just had a lucky campaign. If it works well, i can share with you the lords.xml file which I have modified. What I did is just change some Kings traits to make more aggressive the right ones. It is "lorebreaking" though because these personalities do not make sense taking into account the game history when you talk with evey leader.
 
* Second run: everything were going well until Sturgia gets ganked by everyone at day 156 o so.


* Third run: everything were going pretty good until WE is getting ganked by everyne at day 176:


at day 206


WE has been figthing pretty well against everyone during 30 days but now it is starting to fall:


There is something really wrong with diplomacy system were some factions get eventually ganked by everyone. Anyway, the Kings traits have been proved to be pretty devissive in terms of declaring new wars.
 
Do you know if there is a way to increase the relevance of one active war, to try to avoid kingdoms currently fighting one war to declare a new one? Thanks!
Previously I thought that score of current wars is calculated in the function GetScoreOfWarInternal()
C#:
            float num8 = 100f * Kingdom.All.Sum(delegate(Kingdom k)
            {
                if (!k.IsAtWarWith(factionDeclaresWar) || !k.IsAtWarWith(factionDeclaredWar))
                {
                    return 0f;
                }
                return Math.Min(k.TotalStrength, factionDeclaredWar.TotalStrength);
            });
            float num9 = topDogScore - num8 - warFatiqueScoreNew;

However, after converting this piece of code into a human-readable format, I see that I was wrong.
C#:
            float num8 = 100f * Kingdom.All.Sum(delegate(Kingdom k)
            {
                if (k.IsAtWarWith(factionDeclaresWar) && k.IsAtWarWith(factionDeclaredWar))
                {
                    return Math.Min(k.TotalStrength, factionDeclaredWar.TotalStrength);
                }
                return 0f;
            });
            float warsScore = topDogScore - num8 - warFatiqueScoreNew;
num8 here is just a sum of the strength of the common enemies.

Clans do not take current wars into account when they propose a new war or when they vote for war.

I can make a mod that decreases the ScoreOfDeclaringWar if the faction is already at war. But later, now I'm busy with other things.
 
I am trying to find where is defined that "Every day, each clan that has > 200 influence has a random chance of putting forth a vote to declare war for a faction".
Class KingdomDecisionProposalBehavior
Method GetRandomWarDecision(Clan clan)

I would like to change this to happens every 3-5 days.
War/Peace decisions made by clans, and there a lot of blood-thirsty clans. Statistically, nothing will change if you change the rate to every 5 days.
 
Previously I thought that score of current wars is calculated in the function GetScoreOfWarInternal()
C#:
            float num8 = 100f * Kingdom.All.Sum(delegate(Kingdom k)
            {
                if (!k.IsAtWarWith(factionDeclaresWar) || !k.IsAtWarWith(factionDeclaredWar))
                {
                    return 0f;
                }
                return Math.Min(k.TotalStrength, factionDeclaredWar.TotalStrength);
            });
            float num9 = topDogScore - num8 - warFatiqueScoreNew;

However, after converting this piece of code into a human-readable format, I see that I was wrong.
C#:
            float num8 = 100f * Kingdom.All.Sum(delegate(Kingdom k)
            {
                if (k.IsAtWarWith(factionDeclaresWar) && k.IsAtWarWith(factionDeclaredWar))
                {
                    return Math.Min(k.TotalStrength, factionDeclaredWar.TotalStrength);
                }
                return 0f;
            });
            float warsScore = topDogScore - num8 - warFatiqueScoreNew;
num8 here is just a sum of the strength of the common enemies.

Clans do not take current wars into account when they propose a new war or when they vote for war.

I can make a mod that decreases the ScoreOfDeclaringWar if the faction is already at war. But later, now I'm busy with other things.

Ok thanks, that woulb be great.

Class KingdomDecisionProposalBehavior
Method GetRandomWarDecision(Clan clan)


War/Peace decisions made by clans, and there a lot of blood-thirsty clans. Statistically, nothing will change if you change the rate to every 5 days.

Ok, then an alternative could be to increase required influence to declare war from 200 to 400. Going to test if changing this helps. Thanks.

EDIT: Ok tested and it does not change much.
 
Last edited:
Back
Top Bottom