• 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.

Grzegorz Grzybek

Captain
99 Badges
Apr 1, 2016
355
1.188
  • Surviving Mars
  • Hearts of Iron 4: Arms Against Tyranny
  • Hearts of Iron IV: No Step Back
  • Hearts of Iron IV: By Blood Alone
  • Victoria 3 Sign Up
  • Stellaris: Nemesis
  • Crusader Kings III
  • Surviving Mars: First Colony Edition
  • Surviving Mars: First Colony Edition
  • Surviving Mars: Digital Deluxe Edition
  • Hearts of Iron IV Sign-up
  • Stellaris: Galaxy Edition
  • Imperator: Rome Deluxe Edition
  • Hearts of Iron IV: Expansion Pass
  • Stellaris: Galaxy Edition
  • Europa Universalis IV
  • Europa Universalis IV: Pre-order
  • Hearts of Iron III
  • Hearts of Iron IV: Colonel
  • Victoria 2
  • Crusader Kings II
  • Steel Division: Normandy 44
  • Cities: Skylines Deluxe Edition
Hello

Since Hearts of Iron 4 (and my hacky tool to parse PDX "json" files: https://github.com/grgrzybek/hoi4-db) I like to track changes to game data files. The best way is to simply put everything (relevant) to local Git repository.

As asked in this post: https://forum.paradoxplaza.com/forum/threads/patch-notes-for-1-0-6.1557300/post-28621470, I can try adding raw changes between versions.

Sometimes there are really many changes, some of the lines are just whitespace differences, so let's start with showing the changes in common/defines/00_defines.txt file + a list of changed files in general, but without details

1.0.3 → 1.0.4, files changed:
Code:
M       common/ai_strategies/00_default_strategy.txt
M       common/ai_strategies/02_diplomatic_strategies.txt
M       common/building_groups/00_building_groups.txt
M       common/country_ranks/00_country_ranks.txt
M       common/defines/00_defines.txt
M       common/history/trade_routes/00_trade_routes.txt
M       common/interest_group_traits/00_intelligentsia_traits.txt
M       common/law_groups/00_laws.txt
M       common/laws/00_internal_security.txt
M       common/modifiers/00_static_modifiers.txt
M       common/modifiers/06_conscription_modifiers.txt
M       common/objective_subgoals/00_subgoals_tutorial.txt
M       common/production_methods/12_subsistence.txt
M       common/trigger_localization/00_trigger_localization.txt
M       events/cultural_homeland_events.txt
M       events/heavenly_kingdom_events.txt

1.0.3 → 1.0.4, changes in common/defines/00_defines.txt:
Code:
diff --git a/common/defines/00_defines.txt b/common/defines/00_defines.txt
index 8a59ff6..e87db94 100755
--- a/common/defines/00_defines.txt
+++ b/common/defines/00_defines.txt
@@ -50,8 +50,8 @@ NAI = {
     DECLARE_BANKRUPTCY_MIN_DAYS_IN_DEFAULT = 30 # After this many days in default, the AI will declare bankruptcy
 
     BASE_AGGRESSION = 0.5 # Base chance that AI will consider starting a diplo play each time the goal is checked (1 = 1%)
-    UNIFICATION_AGRESSION_MULT_HIGHER_TIR = 20 # AI aggression is multiplied by this for calculating whether they should try to start a unification/leadership play, if the country would end up forming a nation of a higher tier
-    UNIFICATION_AGRESSION_MULT_SAME_TIER = 0.1 # AI aggression is multiplied by this for calculating whether they should try to start a unification/leadership play, if the country would end up forming a nation of the same tier
+    UNIFICATION_AGGRESSION_MULT_HIGHER_TIER = 20 # AI aggression is multiplied by this for calculating whether they should try to start a unification/leadership play, if the country would end up forming a nation of a higher tier
+    UNIFICATION_AGGRESSION_MULT_SAME_TIER = 0.1 # AI aggression is multiplied by this for calculating whether they should try to start a unification/leadership play, if the country would end up forming a nation of the same tier
 
     DIPLO_PROPOSAL_DAYS_LEFT_MAX = 12  # AI will not answer a proposal when it has more than this amount of days left (should map to DIPLOMATIC_ACTION_PENDING_APPROVAL_DAYS)
     DIPLO_PROPOSAL_DAYS_LEFT_MIN = 4    # AI will always answer a proposal when it has this or less amount of days left (should map to DIPLOMATIC_ACTION_PENDING_APPROVAL_DAYS)
@@ -99,7 +99,7 @@ NAI = {
     RECRUITABLE_COMMANDER_DISFAVORED_IG_FACTOR = 0.5    # If a recruitable commander comes from an IG the AI dislikes, multiply score by this
 
     COMBAT_UNIT_ASSIGNMENT_THRESHOLD = 0.75            # If combat units assigned to a HQ is at least this of wanted amount, don't try to assign more units
-    COMBAT_UNIT_ASSIGNMENT_STICKYNESS = 0.10        # If moving a commander makes a HQ's unit ratio worse than the ratio of target HQ + this, don't do the move
+    COMBAT_UNIT_ASSIGNMENT_STICKINESS = 0.10        # If moving a commander makes a HQ's unit ratio worse than the ratio of target HQ + this, don't do the move
 
     CONSCRIPTION_ESTIMATED_MILITARY_POWER_MULT = 0.5         # AI multiplies the value of conscriptable battalions by this to estimate potential combat power
 
@@ -188,24 +188,25 @@ NAI = {
     START_DIPLO_PLAY_LIKELY_ALLY_STRENGTH_WEIGHT = 0.5 # Consider participants that will likely to join a side with this amount of their forces
     START_DIPLO_PLAY_POTENTIAL_ALLY_STRENGTH_WEIGHT = 0.33 # Consider participants that might be swayed to our side with with this amount of their forces
 
-    DIPLO_PLAY_BACK_DOWN_CHANCE_THRESHOLD = 25 # If ( confidence + boldness ) is less than this, consider backing down
+    DIPLO_PLAY_BACK_DOWN_CHANCE_THRESHOLD = 0 # If ( confidence + boldness ) is less than this, consider backing down
     DIPLO_PLAY_BACK_DOWN_CHANCE_ESCALATION = 30 # Above this escalation, AI will consider backing down
-    DIPLO_PLAY_BACK_DOWN_GUARANTEED_THRESHOLD = -25 # If ( confidence + boldness ) is less than this, always back down before the play goes to war
+    DIPLO_PLAY_BACK_DOWN_GUARANTEED_THRESHOLD = -50 # If ( confidence + boldness ) is less than this, always back down before the play goes to war
     DIPLO_PLAY_BACK_DOWN_GUARANTEED_ESCALATION = 95 # Above this escalation, AI will always back down if it's supposed to
     DIPLO_PLAY_BACK_DOWN_CHANCE_LOW_ESCALATION = 0.1 # 1.0 = 1% (chance each tick) - used before countdown to war starts
     DIPLO_PLAY_BACK_DOWN_CHANCE_HIGH_ESCALATION = 0.5 # 1.0 = 1% (chance each tick) - used after countdown to war starts
-    DIPLO_PLAY_BACK_DOWN_CHANCE_WAR_LOSSES_MULT = 0.5 # Multiply chance of backing down due to additional wargoal demands ( 1 + this * relative impact of additional wargoals )
+    DIPLO_PLAY_BACK_DOWN_CHANCE_WAR_LOSSES_MULT = 0.05 # Multiply chance of backing down due to additional wargoal demands ( 1 + this * relative impact of additional wargoals )
     DIPLO_PLAY_BACK_DOWN_CHANCE_WAR_LOSSES_MAX = 3.0 # Max multiplier for impact of additional wargoal demands (including the base of 1)
     DIPLO_PLAY_SWAY_THRESHOLD = 2.0 # If AI has this much military strength compared to enemy, don't bother trying to sway anyone
     DIPLO_PLAY_DECIDE_ON_SUPPORT_ESCALATION = 30 # Above this escalation, AI will potentially start taking sides (or declare neutrality) even if not swayed
-    DIPLO_PLAY_TAKE_SIDES_MIN_BOLDNESS = 50 # Boldness must be at least this for AI to want to take a side with no gain
+    DIPLO_PLAY_TAKE_SIDES_MIN_BOLDNESS = 25 # Boldness must be at least this for AI to want to take a side with no gain
     DIPLO_PLAY_TAKE_SIDES_CHANCE = 0.001 # Multiplied by boldness for chance of taking sides each tick
     DIPLO_PLAY_TAKE_SIDES_CONTAINMENT_MULT = 10 # Chance of taking sides in a containment play is multiplied by this
     DIPLO_PLAY_DECLARE_NEUTRALITY_CHANCE = 0.001 # Multiplied by neutrality for chance of declaring neutrality each tick (only if there's no side the country prefers OR play has reached countdown to war)
     DIPLO_PLAY_DECLARE_NEUTRALITY_HIGH_ESCALATION_MULT = 20 # Chance of declaring neutrality during countdown to war is multiplied by this
     DIPLO_PLAY_ABANDON_SUPPORT_CHANCE = 0.1 # Multiplied with negative support score
     DIPLO_PLAY_SWAY_COUNTRIES_ESCALATION = 20 # Above this escalation, AI will potentially start swaying countries
-    DIPLO_PLAY_SWAY_COUNTRIES_CHANCE = 5 # Chance each tick that the AI will try to sway someone
+    DIPLO_PLAY_SWAY_COUNTRIES_CHANCE_SCALED = 5 # Chance each tick that the AI will try to sway someone (scaled by relative strength of the two sides)
+    DIPLO_PLAY_SWAY_COUNTRIES_CHANCE_MAX = 25 # Max chance each tick that the AI will try to sway someone
     DIPLO_PLAY_TIMED_WEIGHT_DURATION = 12 # When AI randomly determines sympathy for one side of a diplo play, how long does that weight stay
     DIPLO_PLAY_PREFERENCE_THRESHOLD = 25 # At this delta, an AI country is considered to have a preference for that side of the diplo play
     DIPLO_PLAY_WEAK_ABANDON_SUPPORT_THRESHOLD = -25 # If support for the side an AI country is backing drops below this, consider abandoning it
@@ -263,7 +264,7 @@ NAI = {
     DIPLO_PLAY_NEUTRALITY_FROM_DEVASTATION_LEVEL = 100 # At 100% devastation across the country (weighted by state population), add this amount of neutrality score
     DIPLO_PLAY_NEUTRALITY_FROM_TURMOIL = 100 # At 100% turmoil across the country (weighted by state population), add this amount of neutrality score
     DIPLO_PLAY_NEUTRALITY_IN_SUBJECT_CONFLICT = -50 # If either side in the play is a subject, subtract this amount of neutrality score
-    DIPLO_PLAY_NEUTRALITY_IN_NATIVE_UPRISING = 50 # Added to neutrality score for native uprising type conflicts
+    DIPLO_PLAY_NEUTRALITY_IN_NATIVE_UPRISING = 25 # Added to neutrality score for native uprising type conflicts
     DIPLO_PLAY_NEUTRALITY_FROM_ONGOING_CONFLICTS = 200 # If in a conflict where military strength compared to the enemy is equal to or above DIPLO_PLAY_FORCE_BALANCE_SCALE, add this amount of neutrality score
     DIPLO_PLAY_NEUTRALITY_FROM_LOWER_RANK = 5 # For each rank value difference between us and the lowest ranked participant in the play, if we're higher rank than them
     DIPLO_PLAY_NEUTRALITY_FROM_NO_ARMY = 1000 # If we have no army at all, add this to neutrality score
@@ -278,9 +279,9 @@ NAI = {
     DIPLO_PLAY_SYMPATHY_ENEMY_OF_SUBJECT_TARGET = -25 # Subtracted from sympathy range for enemies of our subjects if the enemy is the defender
     DIPLO_PLAY_SYMPATHY_ENEMY_OF_ALLY_INITIATOR = -50 # Subtracted from sympathy range for enemies of our allies if the enemy is the attacker
     DIPLO_PLAY_SYMPATHY_ENEMY_OF_ALLY_TARGET = -25 # Subtracted from sympathy range for enemies of our allies if the enemy is the defender
-    DIPLO_PLAY_SYMPATHY_ENEMY_OF_INFAMOUS_COUNTRY = 25 # Added to sympathy range for enemy of infamous country
-    DIPLO_PLAY_SYMPATHY_ENEMY_OF_NOTORIOUS_COUNTRY = 50 # Added to sympathy range for enemy of notorious country
-    DIPLO_PLAY_SYMPATHY_ENEMY_OF_PARIAH_COUNTRY = 100 # Added to sympathy range for enemy of pariah country
+    DIPLO_PLAY_SYMPATHY_ENEMY_OF_INFAMOUS_COUNTRY = 35 # Added to sympathy range for enemy of infamous country
+    DIPLO_PLAY_SYMPATHY_ENEMY_OF_NOTORIOUS_COUNTRY = 75 # Added to sympathy range for enemy of notorious country
+    DIPLO_PLAY_SYMPATHY_ENEMY_OF_PARIAH_COUNTRY = 200 # Added to sympathy range for enemy of pariah country
     DIPLO_PLAY_SYMPATHY_LENIENT_AI_GAME_RULE = 35 # Added to sympathy range for player when using lenient AI game rule
     DIPLO_PLAY_SYMPATHY_HARSH_AI_GAME_RULE = -35 # Subtracted to sympathy range for player when using harsh AI game rule
     DIPLO_PLAY_SYMPATHY_INCREASE_GAINED_BACKER = 100 # Sympathy is increased by up to this amount for enemy of a side which receives a new backer, scaled by their number of battalions compared to total forces in the play
@@ -391,7 +392,7 @@ NAI = {
 
     # Below data is used for General Orders:
     HQ_DEFENSE_MIN_THEATER_SCORE = 100                                # Theater of local HQ must have at least this importance score to have a minimum garrison
-    HQ_DEFENSE_MIN_WANTED_LAND_GARRISON = 0.15                        # Keep at least this number of local troops to garrison important HQs against enemy invasion
+    HQ_DEFENSE_MIN_WANTED_GARRISON = 0.15                        # Keep at least this number of local troops to garrison important HQs against enemy invasion
 
     MAX_CONVOY_USAGE_FOR_SUPPLY_ROUTES = 0.5                        # AI will not commit more than this fraction of its convoys to supporting overseas operations
 
@@ -574,7 +575,7 @@ NAI = {
     EMBARGO_BUILDING_CONSUMPTION_VALUE_FACTOR = 10 # For each % of ( buy orders * base price ) in the market that is building consumption of this good, add this score
     EMBARGO_GOODS_HIGH_PRICE_LEVEL_MULT = 5.0     # Goods price level above baseline is multiplied by this and then applied as a multiplicative effect on embargo score
     EMBARGO_GOODS_EXPORTED_SHORTAGE_MULT = 10.0     # If a goods is in shortage and being exported, multiply embargo score by this (overrides EMBARGO_GOODS_HIGH_PRICE_LEVEL_MULT)
-    EMBARGO_STICKYNESS = 1.5                 # How much higher is an existing embargo scored
+    EMBARGO_STICKINESS = 1.5                 # How much higher is an existing embargo scored
     EMBARGO_MIN_DURATION = 12                 # AI will not consider removing a recently placed embargo for this number of months
     EMBARGO_MAX_SPENDING_FRACTION = 0.25     # How much of its total Influence production is the AI willing to use for embargos
 
@@ -595,7 +596,7 @@ NAI = {
     PRODUCTION_BUILDING_OUTPUT_NEW_GOODS_FACTOR = 2.0 # Add this value to a building for each unit of money worth of goods that currently isn't available in our market but the AI wants to prioritize
     PRODUCTION_BUILDING_OUTPUT_WANTED_INDUSTRIAL_GOODS_FACTOR = 0.25 # Add this value to a building for each unit of money worth of industrial goods that aren't overproduced in the country and are used by buildings
     PRODUCTION_BUILDING_OUTPUT_WANTED_MILITARY_GOODS_FACTOR = 0.25 # Add this value to a building for each unit of money worth of military goods that aren't overproduced in the country and are used by buildings
-    RODUCTION_BUILDING_OUTPUT_NEEDED_INDUSTRIAL_GOODS_FACTOR = 0.5 # Add this value to a building for each unit of money worth of industrial goods that are underproduced in the country and are used by buildings
+    PRODUCTION_BUILDING_OUTPUT_NEEDED_INDUSTRIAL_GOODS_FACTOR = 0.5 # Add this value to a building for each unit of money worth of industrial goods that are underproduced in the country and are used by buildings
     PRODUCTION_BUILDING_OUTPUT_NEEDED_MILITARY_GOODS_FACTOR = 0.5 # Add this value to a building for each unit of money worth of military goods that are underproduced in the country and are used by buildings
     PRODUCTION_BUILDING_CAN_USE_INVESTMENT_POOL_MULT = 1.25 #  Total weight is multiplied by this if the building can be funded by the country's investment pool
     PRODUCTION_BUILDING_NEW_GOODS_OUTPUT_MULT = 1.25 #  Total weight is multiplied by this if the building outputs a good not available in our market
@@ -638,7 +639,7 @@ NAI = {
     PRODUCTION_METHOD_DISFAVORED_GOODS_FACTOR = -0.25 # Per base cost * units of goods produced that the AI disfavors
     PRODUCTION_METHOD_UNDESIRABLE_GOODS_PRICE_THRESHOLD = 1.5 # If a PM using the 'most productive' logic makes use of a good whose price is above ( base * this ), reduce the score
     PRODUCTION_METHOD_UNDESIRABLE_GOODS_PRICE_FACTOR = -0.5 # Per base cost * units of goods whose price is above undesirable price threshold
-    PRODUCTION_METHOD_STICKYNESS = 1.25 # Score of current method is multiplied by this
+    PRODUCTION_METHOD_STICKINESS = 1.25 # Score of current method is multiplied by this
     PRODUCTION_METHOD_CHANCE_TO_CHANGE = 0.1 # Chance that the AI will consider changing a production method when evaluating methods
     PRODUCTION_METHOD_LOW_POP_THRESHOLD = 50000 # If a state's population is less than this, use the scoring factor below for low-pop PMs
     PRODUCTION_METHOD_LOW_POP_FACTOR = 100 # If a state's population is less than PRODUCTION_METHOD_LOW_POP_THRESHOLD, multiply score by this
@@ -671,7 +672,7 @@ NAI = {
     AI_PEACE_DESIRE_FROM_GOLD_RESERVES = -50 # Subtract this amount of peace desire at 100% gold reserves
 
     # AI country-specific goal data
-    SECRET_GOAL_STICKYNESS = 2.0 # The higher this is, the less likely the AI is to change an established secret goal during recalculation
+    SECRET_GOAL_STICKINESS = 2.0 # The higher this is, the less likely the AI is to change an established secret goal during recalculation
     SECRET_GOAL_SAME_GOAL_BONUS = 1.5
     SECRET_GOAL_WRONG_TYPE_FOR_DIPLOMATIC_PLAY_MULTIPLIER = 0.25 # Added to friendly secret goals for enemies in a play, and hostile secret goals for allies in a play
     ATTITUDE_STRONG_GOAL_SCORE_THRESHOLD = 100
@@ -823,7 +824,7 @@ NPolitics = {
     IG_IN_GOVERNMENT_APPROVAL = 0        # Added if IG is in government
     IG_IN_OPPOSITION_APPROVAL = 0        # Added if IG is in opposition (and not powerful)
     IG_POWERFUL_IN_OPPOSITION_APPROVAL = -1 # Added if powerful IG in opposition
-    STARTUP_MIN_LEGITIMACY_IG_BARIER = 40 # Min legitimacy when on startup we allow to remove IGs from goverment that decrease legitimacy
+    STARTUP_MIN_LEGITIMACY_IG_BARRIER = 40 # Min legitimacy when on startup we allow to remove IGs from goverment that decrease legitimacy
     APPROVAL_THRESHOLD_ANGRY = -10        # At this or below approval, IG is considered angry
     APPROVAL_THRESHOLD_UNHAPPY = -5        # At this or below approval, IG is considered unhappy
     APPROVAL_THRESHOLD_HAPPY = 5        # At this or above approval, IG is considered happy
@@ -836,7 +837,7 @@ NPolitics = {
     LAW_ENACTMENT_ADVANCE_FACTOR = 2        # The _base_ advance chance is the success chance multiplied by this factor [>=1]
     LAW_ENACTMENT_RULER_IDEOLOGY_EFFECT = 0.05 # Ruler ideology has this impact on a law's chance to pass or stall depending on relative approval
     LAW_ENACTMENT_MOVEMENT_SUPPORT_PASS_EFFECT = 0.01 # Movement support has this impact on a law's chance to pass
-    LAW_ENACTMENT_MOVEMENT_SUPPORT_STALL_EFFECT = 0.005 # Movement support has this impact on a law's chance to stall
+    LAW_ENACTMENT_MOVEMENT_SUPPORT_STALL_EFFECT = 0.01 # Movement support has this impact on a law's chance to stall
 
     STATE_BUREAUCRACY_BASE_COST = 10        # The base cost per incorporated state
     STATE_BUREAUCRACY_POP_BASE_COST = 4        # The base BUR multiplier per population multiple
@@ -861,8 +862,8 @@ NPolitics = {
     POLITICAL_MOVEMENT_START_CHANCE_SCALED = 0.05 # Additional chance of a political movement starting scaled with potential support
     POLITICAL_MOVEMENT_START_CHANCE_NUM_MOVEMENTS_DIVISOR = 2 # If we already have movements, divide start chance of a new movement by ( 1 + this * cur num movements )
     POLITICAL_MOVEMENT_TO_PRESERVE_CHECK_TO_START_CHANCE = 25 # Chance that a political movement is checked at all on a daily basis if it's a movement to preserve (for performance reasons)
-    POLITICAL_MOVEMENT_TO_RESTORE_CHECK_TO_START_CHANCE = 0.5 # Chance that a political movement is checked at all on a daily basis if it's a movement to restore (for performance reasons)
-    POLITICAL_MOVEMENT_TO_ENACT_CHECK_TO_START_CHANCE = 0.2 # Chance that a political movement is checked at all on a daily basis if it's a movement to enact (for performance reasons)
+    POLITICAL_MOVEMENT_TO_RESTORE_CHECK_TO_START_CHANCE = 2.0 # Chance that a political movement is checked at all on a daily basis if it's a movement to restore (for performance reasons)
+    POLITICAL_MOVEMENT_TO_ENACT_CHECK_TO_START_CHANCE = 1.0 # Chance that a political movement is checked at all on a daily basis if it's a movement to enact (for performance reasons)
     POLITICAL_MOVEMENT_MIN_SUPPORT_TO_START = 10 # If a political movement would have less support than this, it can't start
     POLITICAL_MOVEMENT_MIN_SUPPORT_TO_REMAIN = 5 # If a political movement falls to less support than this, disband it
     POLITICAL_MOVEMENT_RADICALISM_TARGET_FROM_ANGRY_IG_CLOUT = 300 # At 100% clout of angry IGs supporting this, increase radicalism by this much
@@ -1089,8 +1090,10 @@ NEconomy = {
     SLAVE_BASKET_SCALED_MIN = 0.5                # Multiplied by lowest non-slave wealth in the building
     SLAVE_BASKET_SCALED_MAX = 1                    # Multiplied by lowest non-slave wealth in the building
 
-    DEBT_SLAVERY_ENSLAVEMENT_RATE = 0.05        # Under debt slavery up to this much of a state's populace can be enslaved for their debts
-    DEBT_SLAVERY_ENSLAVEMENT_RATE_DROP_OFF_PER_WEALTH = 0.2 # Under debt slavery every point of wealth protects this much of a pop's size from enslavement
+    DEBT_SLAVERY_ENSLAVEMENT_RATE = 0.005        # Under debt slavery up to this much of a state's populace can be enslaved for their debts each week
+    DEBT_SLAVERY_ENSLAVEMENT_RATE_PER_POP = 0.1 # No more than this fraction of a single pop can be enslaved each week
+    DEBT_SLAVERY_ENSLAVEMENT_RATE_DROP_OFF_PER_WEALTH = 0.01 # Each point of wealth reduces max enslavement rate on a pop by this
+    DEBT_SLAVERY_MAX_STATE_SLAVE_FRACTION = 0.2 # If more than this % of a state's population are slaves, do not enslave any more pops under debt slavery
 
     SLAVE_TRADE_MIN_VACANCIES_NEEDED_TO_IMPORT = 500 # There needs to be at least this many (non-subsistence) vacancies in buildings that can be filled by slaves in order for slave import to happen
     SLAVE_TRADE_MIN_POPULATION_TO_EXPORT = 100000     # There needs to be at least this many people in the state in order for it to be selected, or remain valid, as a slave import target
@@ -1279,7 +1282,7 @@ NDiplomacy = {
     TENSION_NUM_PROVINCE_SCALING_BASE = 10 # Below this amount of provinces a decentralized country gets additional tension when their provinces are colonized
     TENSION_NUM_PROVINCE_SCALING_RATE = 2.0 # Max multiplier increase in tension per province taken from having only a few provinces
     TENSION_INCREASE_RATE_ADJACENT = 0.5 # Multiplied to tension increase when it is neighboring countries' provinces that are colonized
-    TENSION_UPRISING_CHANCE = 0.05 # Chance of war breaking out instead of the next province being colonized (base when tension is at least TENSION_THRESHOLD_VOLATILE)
+    TENSION_UPRISING_CHANCE = 0.01 # Chance of war breaking out instead of the next province being colonized (base when tension is at least TENSION_THRESHOLD_VOLATILE)
 
     SWAY_OFFER_TIMEOUT_DAYS = 14
     SWAY_OFFER_OBLIGATION_MANEUVERS_COST = 20

1.0.4 → 1.0.5, files changed:
Code:
M       common/building_groups/00_building_groups.txt

1.0.4 → 1.0.5, changes in common/building_groups/00_building_groups.txt (because it's the only file changed):
Code:
diff --git a/common/building_groups/00_building_groups.txt b/common/building_groups/00_building_groups.txt
index 937060a..c6a508a 100755
--- a/common/building_groups/00_building_groups.txt
+++ b/common/building_groups/00_building_groups.txt
@@ -546,7 +546,7 @@ bg_trade = {
    
        urbanization = 5
    
-       infrastructure_usage_per_level = 1
+       infrastructure_usage_per_level = 0.1
    
        fired_pops_become_radical = no

1.0.5 → 1.0.6, files changed:
Code:
M       common/achievements/standard_achievments.txt
M       common/defines/00_defines.txt
M       common/diplomatic_actions/03_violate_sovereignty.txt
M       common/diplomatic_actions/19_subject_protectorate.txt
M       common/diplomatic_actions/24_subject_tributary.txt
M       common/journal_entries/00_tutorial.txt
M       common/modifiers/105_modifiers.txt
M       common/pop_types/_pop_types.info
M       common/pop_types/laborers.txt

1.0.5 → 1.0.6, changes in common/defines/00_defines.txt:
Code:
diff --git a/common/defines/00_defines.txt b/common/defines/00_defines.txt
index e87db94..9bca427 100755
--- a/common/defines/00_defines.txt
+++ b/common/defines/00_defines.txt
@@ -211,8 +211,8 @@ NAI = {
     DIPLO_PLAY_PREFERENCE_THRESHOLD = 25 # At this delta, an AI country is considered to have a preference for that side of the diplo play
     DIPLO_PLAY_WEAK_ABANDON_SUPPORT_THRESHOLD = -25 # If support for the side an AI country is backing drops below this, consider abandoning it
     DIPLO_PLAY_STRONG_ABANDON_SUPPORT_THRESHOLD = -50 # If support for the side an AI country is backing drops below this, abandon it immediately
-    DIPLO_PLAY_ABANDON_ALLY_RELUCTANCE = 25 # Added to support score when considering whether to abandon an ally
-    DIPLO_PLAY_ABANDON_SUBJECT_RELUCTANCE = 50 # Added to support score when considering whether to abandon a subject
+    DIPLO_PLAY_ABANDON_ALLY_RELUCTANCE = 50 # Added to support score when considering whether to abandon an ally
+    DIPLO_PLAY_ABANDON_SUBJECT_RELUCTANCE = 100 # Added to support score when considering whether to abandon a subject
     DIPLO_PLAY_SWAY_DAYS_LEFT_MAX = 5  # AI will not answer a sway offer when it has more than this amount of days left (should map to SWAY_OFFER_TIMEOUT_DAYS)
     DIPLO_PLAY_SWAY_DAYS_LEFT_MIN = 2    # AI will always answer a sway offer when it has this or less amount of days left (should map to SWAY_OFFER_TIMEOUT_DAYS)
     DIPLO_PLAY_SWAY_ANSWER_CHANCE = 10 # Chance per tick of AI answering a sway offer (1 = 1%)
@@ -875,7 +875,8 @@ NPolitics = {
     POLITICAL_MOVEMENT_LAW_APPROVAL_POP_SUPPORT_SCALED_FACTOR = 0.25 # How many pops belonging to an IG that approves of enacting a law supports the movement to enact the law (for each approval after 1)
     POLITICAL_MOVEMENT_LAW_APPROVAL_POP_SUPPORT_RESTORE_FACTOR = 0.25 # How many (extra) pops belonging to an IG that approves of enacting a law supports a movement to restore a law
     POLITICAL_MOVEMENT_MIN_DURATION = 12
-    POLITICAL_MOVEMENT_MONTHLY_RADICALS = 0.01         # This fraction of pops backing a non-placated political movement become more radical each month
+    POLITICAL_MOVEMENT_MONTHLY_RADICALS = 0.002                 # This fraction of pops backing a non-placated political movement to enact or restore become more radical each month
+    POLITICAL_MOVEMENT_TO_PRESERVE_MONTHLY_RADICALS = 0.01         # This fraction of pops backing a non-placated political movement to preserve become more radical each month
     POLITICAL_MOVEMENT_LOYALISTS_AT_SUCCESS = 0.25     # This fraction of pops backing a political movement become more loyalist if movement succeeds
     POLITICAL_MOVEMENT_DISBAND_CHANCE = 0.02 # Chance of a political movement that has lasted longer than POLITICAL_MOVEMENT_MIN_DURATION disbanding each day if radicalism for it is below REVOLUTIONARY_PROGRESSION_FROM_RADICALISM - scales with number of months that have passed (1 = 1%)
     POLITICAL_MOVEMENT_DISBAND_CHANCE_SUPPORT_DIVISOR = 0.01 # Political movement's chance to randomly disband is divided by ( 1 + support * this )
@@ -1556,6 +1557,10 @@ NPops = {
     QUALIFICATIONS_NUM_MONTHS_AT_START = 60                # How many months of qualifications should be seeded to pops at start of game?
 
     INDIVIDUALS_TAXED_PER_TAX_CAPACITY = 10000            # How many pops can be taxed efficiently for each tax capacity
+
+    POP_MERGE_MAX_WORKFORCE = 10                        # Pops with workforce smaller than this may get merged with other pops of the same type in their building / unemployment pool; if zero, no small pop merging will occur, which may have an adverse effect on late-game performance
+    POP_MERGE_MIN_NUM_POPS_SAME_PROFESSION = 4            # Employed Pops will not get merged with others in their same building if there aren't at least this many Pops of the same type in the building
+    WORKFORCE_RATIO_MAX_UNEMPLOYMENT_FACTOR = 2            # Unemployed Pops with less than POP_MERGE_MAX_WORKFORCE and a Workforce:Dependent ratio that's this much worse than the ideal will be all turned into Dependents and merged back into Pops in the same state
 }
 
 ### Pop Growth Constants

1.0.6 → 1.1, files changed:
Code:
M    common/achievements/standard_achievments.txt
M    common/ai_strategies/00_default_strategy.txt
M    common/ai_strategies/01_admin_strategies.txt
M    common/ai_strategies/03_political_strategies.txt
M    common/alert_groups/00_alert_groups.txt
M    common/alert_types/00_alert_types.txt
M    common/battle_conditions/00_battle_conditions.txt
M    common/building_groups/00_building_groups.txt
M    common/buildings/07_government.txt
M    common/buy_packages/00_buy_packages.txt
M    common/character_templates/historical_commanders_americas.txt
M    common/character_templates/historical_commanders_asia.txt
M    common/character_templates/historical_leaders_americas.txt
M    common/character_traits/condition_traits.txt
M    common/character_traits/personality_traits.txt
M    common/character_traits/skill_traits.txt
M    common/coat_of_arms/coat_of_arms/02_countries.txt
M    common/country_creation/00_releasable_countries.txt
M    common/country_formation/00_formable_countries.txt
M    common/country_ranks/00_country_ranks.txt
M    common/cultures/00_cultures.txt
M    common/customizable_localization/99_ru_custom_loc.txt
M    common/decisions/alaska_purchase.txt
M    common/decisions/canada_australia.txt
M    common/decisions/canal_decisions.txt
M    common/decisions/doctrine_of_lapse_decision.txt
M    common/decisions/expand_east_indies.txt
M    common/decisions/goods_ban_decisions.txt
M    common/decisions/manifest_destiny.txt
M    common/defines/00_defines.txt
M    common/defines/00_graphics.txt
M    common/defines/00_interfaces.txt
M    common/diplomatic_actions/15_customs_union.txt
M    common/diplomatic_plays/00_diplomatic_plays.txt
M    common/dynamic_country_names/00_dynamic_country_names.txt
M    common/flag_definitions/00_flag_definitions.txt
M    common/flag_definitions/01_flag_definitions_usa.txt
M    common/game_concepts/00_game_concepts.txt
M    common/government_types/02_presidential_republics.txt
M    common/history/buildings/00_west_europe.txt
M    common/history/buildings/01_south_europe.txt
M    common/history/buildings/05_north_america.txt
M    common/history/buildings/06_central_america.txt
M    common/history/buildings/07_south_america.txt
M    common/history/buildings/08_middle_east.txt
M    common/history/buildings/09_central_asia.txt
M    common/history/buildings/11_east_asia.txt
M    common/history/countries/gbr - great britain.txt
M    common/history/countries/kor - korea.txt
M    common/history/countries/pru - prussia.txt
M    common/history/diplomacy/00_subject_relationships.txt
M    common/history/interests/00_interests.txt
M    common/history/pops/11_east_asia.txt
M    common/history/states/00_states.txt
M    common/history/trade_routes/00_trade_routes.txt
M    common/ideologies/00_ig_ideologies_flavored.txt
M    common/interest_groups/00_devout.txt
M    common/interest_groups/00_industrialists.txt
M    common/interest_groups/00_landowners.txt
M    common/interest_groups/00_rural_folk.txt
M    common/journal_entries/00_antarctica.txt
M    common/journal_entries/00_canals.txt
M    common/journal_entries/00_central_africa.txt
M    common/journal_entries/00_communism.txt
M    common/journal_entries/00_congo.txt
M    common/journal_entries/00_dual_monarchy.txt
M    common/journal_entries/00_fascism.txt
M    common/journal_entries/00_german_unification.txt
M    common/journal_entries/00_italian_unification.txt
M    common/journal_entries/00_niger_river.txt
M    common/journal_entries/00_secret_police.txt
M    common/journal_entries/00_technology_society.txt
M    common/journal_entries/00_tutorial.txt
M    common/journal_entries/00_underground_railway.txt
M    common/journal_entries/00_west_america.txt
M    common/journal_entries/01_acw_entries.txt
M    common/journal_entries/01_peoples_springtime_je.txt
M    common/journal_entries/01_taiping.txt
M    common/laws/00_army_model.txt
M    common/laws/00_church_and_state.txt
M    common/laws/00_citizenship.txt
M    common/laws/00_distribution_of_power.txt
M    common/laws/00_governance_principles.txt
M    common/laws/00_policing.txt
M    common/laws/00_slavery.txt
M    common/modifier_types/00_modifier_types.txt
M    common/modifiers/00_static_modifiers.txt
M    common/modifiers/02_event_modifiers.txt
M    common/modifiers/03_event_ig_opinion_modifiers.txt
M    common/modifiers/06_conscription_modifiers.txt
M    common/modifiers/104_modifiers.txt
M    common/modifiers/content_1_modifiers.txt
M    common/notification_types/00_notification_types.txt
M    common/objective_subgoals/00_subgoals_tutorial.txt
M    common/objective_subgoals/01_subgoals_player_objectives_economic_dominance.txt
M    common/objectives/00_objective_tutorial.txt
M    common/on_actions/00_code_on_actions.txt
M    common/pop_types/bureaucrats.txt
M    common/pop_types/capitalists.txt
M    common/pop_types/farmers.txt
M    common/pop_types/shopkeepers.txt
M    common/production_method_groups/07_government.txt
M    common/production_method_groups/09_misc_resource.txt
M    common/production_methods/05_military.txt
M    common/production_methods/06_urban_center.txt
M    common/production_methods/07_government.txt
M    common/production_methods/09_misc_resource.txt
M    common/production_methods/12_subsistence.txt
M    common/script_values/command_values.txt
M    common/script_values/event_values.txt
M    common/scripted_effects/00_expedition_effects.txt
M    common/scripted_effects/00_starting_inventions.txt
M    common/scripted_triggers/00_clothes_triggers.txt
M    common/technology/technologies/10_production.txt
M    common/technology/technologies/20_military.txt
M    common/technology/technologies/30_society.txt
M    common/trigger_localization/00_trigger_localization.txt
M    common/tutorial_lessons/00_tutorial_lessons_buildings.txt
M    common/tutorial_lessons/00_tutorial_lessons_intro.txt
M    events/1848.txt
M    events/africa_colonial_events_02.txt
M    events/africa_colonial_events_03.txt
M    events/american_civil_war/acw_je_events.txt
M    events/canada_australia_events.txt
M    events/character_events.txt
M    events/commander_events.txt
M    events/communism.txt
M    events/crime_events.txt
M    events/cultural_homeland_events.txt
M    events/debug_events.txt
M    events/election_events/election_contextual_events.txt
M    events/election_events/election_neutral_events.txt
M    events/expedition_events/west_america_expedition_events.txt
M    events/famine_political_events.txt
M    events/fascism_events.txt
M    events/general_events.txt
M    events/german_unification.txt
M    events/gold_rush.txt
M    events/heavenly_kingdom_events.txt
M    events/italian_unification.txt
M    events/law_events/economy_laws.txt
M    events/law_events/education_laws.txt
M    events/law_events/isolationism_law.txt
M    events/law_events/labor_rights_laws.txt
M    events/law_events/law_events.txt
M    events/law_events/slavery_laws.txt
M    events/meiji_restoration.txt
M    events/native_resettlement.txt
M    events/natural_disasters_events.txt
M    events/opium_wars_events.txt
M    events/peoples_springtime.txt
M    events/south_america_events.txt
M    events/standard_of_living_events.txt
M    events/tanzimat_events.txt
M    events/tech_events/production_tech_events.txt
M    events/tech_events/rubber_events.txt
M    events/tech_events/society_tech_events.txt
M    events/tech_events/war_crimes_events.txt
M    events/warlord_china_events.txt

1.0.6 → 1.1, files added:
Code:
A    common/legitimacy_levels/00_legitimacy_levels.txt

1.0.6 → 1.1, changes in common/defines/00_defines.txt:

NGame section, removed properties:
Code:
    DEFAULT_INCREMENT_DECREMENT_MAGNITUDE = 1
    DEFAULT_INCREMENT_DECREMENT_MAGNITUDE_SHIFT = 10
    DEFAULT_INCREMENT_DECREMENT_MAGNITUDE_CONTROL = 100

NAI section, added properties:
Code:
MOBILIZATION_DEFAULT_CONSCRIPT_POWER_PROJECTION = 1     # If conscript power projection can't be calculated due to lack of a regular army, use this default value

DIPLO_PLAY_CONFIDENCE_FROM_BANKRUPTCY = -25         # Subtract this amount of confidence when bankrupt
DIPLO_PLAY_CONFIDENCE_FROM_ENEMY_BANKRUPTCY = 10     # If enemy is bankrupt, add this amount of confidence
DIPLO_PLAY_NEUTRALITY_FROM_BANKRUPTCY = 100 # When bankrupt, add this amount of neutrality score

NUM_DAYS_TO_REMEMBER_FAILED_FRONT_ASSIGNMENT = 100                 # For how many days should the AI remember failing to assign a general to a front (and thus not try with that front again)

PRODUCTION_METHOD_FAVORED_MILITARY_GOODS_FACTOR = 1.0 # Per base cost * units of goods produced that the AI favors (for military goods)

PRODUCTION_METHOD_STICKINESS_UPGRADE = 0.95 # Score of non-current method is multiplied by this when it produces more goods base value in total
PRODUCTION_METHOD_STICKINESS_DOWNGRADE = 0.75 # Score of non-current method is multiplied by this when it produces less (or equal) goods base value in total

AI_PEACE_AGREEMENT_WHITE_PEACE_BASE = 10 # If no wargoals are being enforced on either side
AI_PEACE_AGREEMENT_WHITE_PEACE_WAR_DURATION = 1 # For each month the war goes on add this to the acceptance for a white peace

AI_PEACE_DESIRE_FROM_BANKRUPTCY = 100 # Add this amount of peace desire when bankrupt

NAI section, removed properties:
Code:
COMBAT_UNIT_ASSIGNMENT_THRESHOLD = 0.75            # If combat units assigned to a HQ is at least this of wanted amount, don't try to assign more units
COMBAT_UNIT_ASSIGNMENT_STICKINESS = 0.10        # If moving a commander makes a HQ's unit ratio worse than the ratio of target HQ + this, don't do the move

CONSTRUCTION_WANTED_SUPPLY_OF_CONSTRUCTION_GOODS = 1.0 # Try to import construction goods if supply-to-demand ratio is below this

MONEY_SPENDING_TECH_RIVAL_THRESHOLD = 0.25 # If a rival has this much more weekly innovation than AI does, it wants to increase spending on universities

PRODUCTION_METHOD_STICKINESS = 1.25 # Score of current method is multiplied by this

AI_PEACE_AGREEMENT_WHITE_PEACE = 10 # If no wargoals are being enforced on either side

TRADE_ROUTE_MIN_AVAILABLE_WORKFORCE = 5000 # If trade center state has less than this amount of available workforce, don't start a new trade route
TAKE_NO_DECISION_WEIGHT = 5

NAI section, changed properties:
Code:
- DIPLO_PLAY_CONFIDENCE_CIVIL_WAR_OR_UPRISING = 50      # Add this confidence to both sides in a civil war or native uprising
+ DIPLO_PLAY_CONFIDENCE_CIVIL_WAR_OR_UPRISING = 75      # Add this confidence to both sides in a civil war or native uprising

- MONEY_SPENDING_MIN_SURPLUS_TO_ALWAYS_ADD_SHOULD_HAVE = 25000 # If AI has this surplus in absolute money, it's always fine to increase spending on a 'should-have' project, regardless of income ratio
- MONEY_SPENDING_MIN_SURPLUS_TO_ALWAYS_ADD_WANTS_TO_HAVE = 50000 # If AI has this surplus in absolute money, it's always fine to increase spending on a 'wants-to-have' project, regardless of income ratio
- MONEY_SPENDING_MIN_SURPLUS_TO_ALWAYS_ADD_NICE_TO_HAVE = 100000 # If AI has this surplus in absolute money, it's always fine to increase spending on a 'nice-to-have' project, regardless of income ratio
+ MONEY_SPENDING_MIN_SURPLUS_TO_ALWAYS_ADD_SHOULD_HAVE = 20000 # If AI has this surplus in absolute money, it's always fine to increase spending on a 'should-have' project, regardless of income ratio
+ MONEY_SPENDING_MIN_SURPLUS_TO_ALWAYS_ADD_WANTS_TO_HAVE = 40000 # If AI has this surplus in absolute money, it's always fine to increase spending on a 'wants-to-have' project, regardless of income ratio
+ MONEY_SPENDING_MIN_SURPLUS_TO_ALWAYS_ADD_NICE_TO_HAVE = 60000 # If AI has this surplus in absolute money, it's always fine to increase spending on a 'nice-to-have' project, regardless of income ratio

- AI_MONTHS_OF_REDUCED_PEACE_DESIRE = 6 # Before this amount of months, reduce AI peace desire
- AI_PEACE_DESIRE_FROM_SHORT_WAR = -100 # Subtract this amount of peace desire for the above number of months
+ AI_MONTHS_OF_REDUCED_PEACE_DESIRE = 10 # Before this amount of months, reduce AI peace desire
+ AI_PEACE_DESIRE_FROM_SHORT_WAR = -10 # Subtract this amount of peace desire for the above number of months (multiplied by AI_MONTHS_OF_REDUCED_PEACE_DESIRE - months of war duration)

NCountry section, removed properties:
Code:
MIN_DISAPPROVAL_VALUE = 0          
MAX_DISAPPROVAL_VALUE = 100

NPolitics section, removed properties:
Code:
LEADER_IDEOLOGY_RANDOM_FACTOR = 5    # The higher this is, the more random leader ideologies will be

NEconomy section, added properties:
Code:
CREDIT_RATIO_MAX_OVERRUN = 0.01             # Countries can accumulate this percentage more of a debt "hole" than their credit limit when in default

BUILDING_RAISE_WAGES_MIN_RELEVANT_POP_SIZE = 50 # Pops with less workforce than this are ignored when checking whether a profitable building should raise wages because of radicalizing workers
BUILDING_RAISE_WAGES_DISCRIMINATION_FACTOR = 0.75 # Profitable buildings only care to raise wages for discriminated pops if their wealth to expected SoL ratio is less than this

NEconomy section, removed properties:
Code:
MARKET_UPDATE_COUNT = 5                        # How many markets have their buy package caches updated per tick

COIN_ICON_EARNINGS_COMPARISON_STEP = 0.15
COIN_ICON_WAGE_COMPARISON_STEP = 0.05

EXPENSIVE_GOODS_THRESHOLD = 1.24            # Used for some triggers and gui functions
CHEAP_GOODS_THRESHOLD = 0.76                # Used for some triggers and gui functions

NEconomy section, changed properties:
Code:
- BUILDING_INIT_PROFIT_TARGET_MAX = 0.20         # Maximum % income a building wants to have as profit during initialization (will increase wages towards this)
+ BUILDING_INIT_PROFIT_TARGET_MAX = 0.30         # Maximum % income a building wants to have as profit during initialization (will increase wages towards this)

- DEBT_SLAVERY_MAX_STATE_SLAVE_FRACTION = 0.2 # If more than this % of a state's population are slaves, do not enslave any more pops under debt slavery
+ DEBT_SLAVERY_MAX_STATE_SLAVE_FRACTION = 0.15 # If more than this % of a state's population are slaves, do not enslave any more pops under debt slavery

NMilitary section, added properties:
Code:
BATTLE_MAX_CASUALTY_DISADVANTAGE_PENALTY = 1.0  # a limit for the battle_casualties_disadvantage static modifier. 1.0 means a maximum of 100% penalty is applied.

NMilitary section, removed properties:
Code:
PLANNING_COUNTER_DAILY_INCREMENT = 0.01         # Planning counter will be incremented with this value on every partial daily tick
PLANNING_COUNTER_DIV_ON_BATTLE_END = 2.0         # Planning counter will be divided with this value when a battle ends
CMDR_CAUTION_FACTOR = 1.75                        # The "strength factor" compared to expected average resistance the Commander wants in a Battle Plan before attacking
CONCENTRATION_GAIN_PER_TICK = 0.01
BATTLE_PLAN_COOLDOWN_TICKS_PER_DAY = 4
BATTLE_PLAN_COOLDOWN_BASE = 6                    # In ticks (4 ticks = 1 day)      
BATTLE_PLAN_COOLDOWN_MIN = 2                    # In ticks (4 ticks = 1 day)  
BATTLE_PLAN_COOLDOWN_MAX = 20                    # In ticks (4 ticks = 1 day)  

BATTLE_PICKING_BASE_RANDOM = 0.5                # Base weight is 0 to this to ensure some randomness between provinces with similar weight
BATTLE_PICKING_STRENGTH_WEIGHT = 1.0            # Weight for picking province to attack, this is how important it is to attack under-defended provinces
BATTLE_PICKING_WIDTH_WEIGHT = 1.0                # this is for attacking provinces with a wide combat width
BATTLE_PICKING_NEIGHBOR_WEIGHT = 1.3            # this is for attacking provinces where we control many neighbors
BATTLE_PICKING_UNCONTROLLED_STATE = 2.0            # Add weight to ensure full control of contested States before advancing into new ones
BATTLE_PICKING_INVASION_TARGET = 2.0            # for target state of invasion
BATTLE_PICKING_INVASION_TARGET_CLOSENESS = 0.8    # added weight for being closer to the invasion target. Scaled by how close province is relative to other in the front

MIN_CE = 0.01                                    # to make sure countries have atleast 0.01 CE
MORALE_GAIN_ON_WIN_MULT = 0.01
WAR_SUPPORT_ON_BATTLE_WIN = 0.01
MORALE_CHANGE = 0.1                                # Maximum percentage of morale change
SUPPLY_CHANGE_RATE = 0.5                        # How much we try to move towards the current supply per week
SUPPLY_MIN_CHANGE = 0.05                        # Minimum amount of supply change per week
SUPPLY_PENALTY_PER_SEA_ZONE = -0.05                # Supply rating penalty for each Sea Zone jump from the closest port
SUPPLY_SEA_COASTAL = 0.1
SUPPLY_SEA_OCEAN = 0.05

# How manpower packages are selected in battle plans with several countries
BATTLE_PLAN_MULTI_ARMY_MORALE_WEIGHT = 1.5        # scale weight by how demoralized a country army is overall. Zero means its ignored.
BATTLE_PLAN_MULTI_ARMY_PER_COMMITTED = 0.2        # flat weight added per manpower package already committed to battle plan for country

# How manpower packages are selected in attacking battle plans with any number of countries. As the name suggest they are only applied to the attacker
BATTLE_PLAN_ATTACK_NO_SUPPLY_WEIGHT = 2.0        # the weight of a manpower package at 0% supply (applied last) (linearly interpolated with BATTLE_PLAN_ATTACK_FULL_SUPPLY_WEIGHT)
BATTLE_PLAN_ATTACK_FULL_SUPPLY_WEIGHT = 1.0        # the weight of a manpower package at 100% supply (applied last) (linearly interpolated with BATTLE_PLAN_ATTACK_NO_SUPPLY_WEIGHT)

BATTLE_BATTALIONS_MIN_BASELINE = 10                    # minimum num combat units in Battle
BATTLE_BATTALIONS_MAX_PERCENTAGE = 1.0                # max num combat units as percentage of commanders units. Default 100%
BATTLE_BATTALIONS_MAX_BASELINE_GARRISON = 10        # max num combat units in Battle unassigned units in a HQ can give
BATTLE_REINFORCEMENT_CHANCE_POW = 2.0                # Random chance POW'd to this value to get final reinforcement percentage over baseline
BATTLE_REINFORCEMENT_COMMANDERLESS_FACTOR = 0.5        # Troops without a commander take this penalty to the number of reinforcements they can bring

BATTLE_PROVINCES_TAKEN_MAX_UNIT_RATIO_SCALE = 0.03            # Attacker gains 1 + ( this * attacking units left standing at end of battle ) taken province multiplier

NDiplomacy section, added properties:
Code:
WAR_GOAL_REPARATIONS_MONTHS = 60    # [>= 0]
WAR_GOAL_OPEN_MARKET_MONTHS = 60    # [>= 0]
WAR_GOAL_BAN_SLAVERY_MONTHS = 60    # [>= 0]
WAR_GOAL_HUMILIATION_PACT_TYPE = "humiliation"
WAR_GOAL_HUMILIATION_MONTHS = 60    # [>= 0]
WAR_GOAL_REGIME_CHANGE_MONTHS = 60 # Government in country with forced regime change is locked in for this number of months [>= 0]

NDiplomacy section, removed properties:
Code:
WAR_GOAL_REPARATIONS_DURATION = 60 # In months
WAR_GOAL_OPEN_MARKET_DURATION = 60 # In months
WAR_GOAL_BAN_SLAVERY_DURATION = 60 # In months
WAR_GOAL_HUMILIATION_DURATION = 60 # In months
WAR_GOAL_REGIME_CHANGE_DURATION = 60 # Government in country with forced regime change is locked in for this number of months

BASE_COLONIAL_PROGRESS = 3 # Per day
MIN_COLONIAL_PROGRESS = 0.1 # Per day

BATTLE_WS_WINNER = 2
BATTLE_WS_LOSER = -1
BATTLE_WS_LOSSES_MULT = -0.2
BATTLE_WS_KILLS_MULT = 0.1

ESCALATION_THRESHOLD_TO_SWITCH_COUNTRY = 50

NPops section, added properties:
Code:
LOYALTIES_GAIN_GRACE_PERIOD = "1838.1.1"    # Until this date, only a scaling part of the Radicals and Loyalists gained from SOL changes will be applied
SOL_INCREASE_POP_IMPACT_FACTOR = 0.04        # How large part of a pop become more loyalist as a result of an increase in standard of living
SOL_DECREASE_POP_IMPACT_FACTOR = 0.06        # How large part of a pop become more radical as a result of a decrease in standard of living

NPops section, removed properties:
Code:
SOL_ADJUSTMENT_POP_IMPACT_FACTOR = 0.05        # How large part of a pop become revolutary/loyalist or stop being revolutionary/loyalist as a result of a change in standard of living

NPops section, changed properties:
Code:
- MIGRATION_CULTURE_TARGET_MIN_ARABLE_LAND = 30        # A state must have at least this much arable land to be a mass migration target
+ MIGRATION_CULTURE_TARGET_MIN_ARABLE_LAND = 50        # A state must have at least this much arable land to be a mass migration target

NCharacters section, added properties:
Code:
COMMANDER_START_RANK = 1
OLD_AGE = 60 # Characters above this age may get some specific traits and events [>= ADULT_AGE]

MIN_CHARACTER_HEALTH = 0.0                    # Baseline is 1.0 (meaning 100%), defined in the base_values modifier. 0.0 means -100% from baseline. [any value]
MAX_CHARACTER_HEALTH = 2.0                    # Baseline is 1.0 (meaning 100%), defined in the base_values modifier. 2.0 means +100% from baseline. [>= MIN_CHARACTER_HEALTH]
CHARACTER_LIFE_EXPECTANCY_BASE_YEARS = 75    # The median life expecancy in years at baseline health. It's the µ parameter of the normal distribution [> 0]
CHARACTER_LIFE_EXPECTANCY_STDDEV = 5        # The standard deviation for the life expectancy distribution. It's the σ parameter [> 0]
CHARACTER_LIFE_EXPECTANCY_DELTA_YEARS = 10    # Amount of years that life expectancy is increased or decreased by, for every point of distance to baseline health [>= 0]
CHARACTER_LIFE_EXPECTANCY_CUTOFF = 3        # We clamp the distribution between this amount of σ in both directions. A range of [-3σ; +3σ] accounts for 99.73% of values. [> 0]

GUARANTEED_SURVIVABILITY_DAYS_MIN = 30        # A character that stops being immortal and that should have died when it happens will instead live at least this amount of days, to avoid situations like a character dieing immediately upon finishing an expedition [>= 0]
GUARANTEED_SURVIVABILITY_DAYS_MAX = 180        # As above, but the upper limit of the range [>= GUARANTEED_SURVIVABILITY_DAYS_MIN]

NCharacters section, removed properties:
Code:
DEATH_CHECKS_YEAR_BEGIN = 60        # first year to start checking for death by natural causes
DEATH_CHECKS_YEAR_END = 100            # definately dead by this year

RANDOM_MIN_RANK_DEFAULT = 1
RANDOM_MAX_RANK_DEFAULT = 3

removed section:
Code:
NCommands = {
    BASE_ADVANCE_CHANCE = 0.1    # Base chance for an AO to advance each tick
    RETREAT_CUTOFF = 0.8    # Start considering retreat from a battle after the ratio of current manpower to initial manpower is below this
    RESOLVED_COMBAT_TIME_DAYS = 30
    PAST_COMBAT_LINGER_TIME_DAYS = 365
    MIN_REINFORCE_FACTOR = 0.02
    MAX_REINFORCE_FACTOR = 0.10
    WINNER_SPIRIT_REGAIN_FACTOR = 0.5    # Give back some spirit used for reinforcement to the winner after a battle
    LOSER_SPIRIT_REGAIN_FACTOR = 0    # Give back some spirit used for reinforcement to the loser after a battle
    WINNER_SPIRIT_REDUCTION = 0.5 # spirit lost after winning a battle
    LOSER_SPIRIT_REDUCTION = 0.2 # spirit lost after losing a battle
    REGENERATE_ORGSPIRIT_THRESHOLD = 0.9 # when organisation/spirit begins to regenerate linearly
    CONCENTRATION_ORG_LOSS_CUTOFF = 0.25 # when concentration starts to affect ao organisation gain and loss
    SECOND_ROW_TERRAIN_WEIGHT = 0.33
    BATTLEFIELD_WEIGHT_BASE = 1.0
    BATTLEFIELD_WEIGHT_PROVINCE_OCCUPIED_BY_ENEMY = 1.0
    BATTLEFIELD_WEIGHT_INVADED_ENEMY_STATE = 1.0
    SCOUTING_POWER_PER_PROVINCE = 0.1
}

NBattle section, removed properties:
Code:
LEADING_ATTACKER_NAVAL_SP_MIN = 0.5
LEADING_ATTACKER_NAVAL_SP_MAX = 0.7
LEADING_DEFENDER_NAVAL_SP_MIN = 0.3
LEADING_DEFENDER_NAVAL_SP_MAX = 0.5
SEA_RETREAT_CUTOFF = 0.75
NAVAL_BATTLE_ROUND_DEVIATION = 0.5
NAVAL_BATTLE_MIN_PURSUIT_FIRE_ROUNDS = 0
NAVAL_BATTLE_MAX_PURSUIT_FIRE_ROUNDS = 4
NAVAL_MORALE_FACTOR = 0.2                        # Normal Morale damage is multiplied by this factor if the battle is naval
MASTER_CASUALTY_RATIO_ADD = 0.01
MASTER_CASUALTY_RATIO_MULT = 0.04

1.1.0 → 1.1.1, files changed:
Code:
modified:   common/law_groups/00_laws.txt
modified:   common/pop_types/bureaucrats.txt
modified:   common/pop_types/capitalists.txt
modified:   common/pop_types/shopkeepers.txt
modified:   common/script_values/command_values.txt

1.1.1 → 1.1.2, files changed:
Code:
modified:   common/defines/00_defines.txt
modified:   common/laws/00_distribution_of_power.txt
modified:   common/laws/00_governance_principles.txt
modified:   common/modifier_types/00_modifier_types.txt
modified:   common/modifiers/00_static_modifiers.txt

1.1.1 → 1.1.2 changes in common/defines/00_defines.txt:
Code:
+       MONEY_SPENDING_WANTED_CONVOYS_PER_BARRACKS_LEVEL = 5 # If the AI has fewer free convoys than this per level of barracks, it wants more ports

+       INCOHERENCE_FACTOR = 5                                                          # The amount to multiply the approval value with to get an incoherence score for legitimacy
+       LEGITIMACY_PENALTY_FOR_EACH_EXCESS_ENTITY = 20          # How much Legitimacy is lost for each group in government above the allowance determined by country_legitimacy_govt_size_add

-       BATTLE_PROVINCES_TAKEN_THEATER_MIN_SCALE = 0.5                  # Number of provinces captured cannot be multiplied by less than this due to the above
+       BATTLE_PROVINCES_TAKEN_THEATER_MIN_SCALE = 0.01                 # Number of provinces captured cannot result in a lower scaling factor than this due to BATTLE_PROVINCES_TAKEN_THEATER_UNIT_SCALE
+       BATTLE_PROVINCES_TAKEN_ABSOLUTE_MIN = 1                                 # The absolute least number of provinces that can be captured in a successful advance, after all scaling has been applied
 
Last edited:
  • 11
  • 3Like
Reactions: