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
1.0.3 → 1.0.4, files changed:
1.0.3 → 1.0.4, changes in
1.0.4 → 1.0.5, files changed:
1.0.4 → 1.0.5, changes in
1.0.5 → 1.0.6, files changed:
1.0.5 → 1.0.6, changes in
1.0.6 → 1.1, files changed:
1.0.6 → 1.1, files added:
1.0.6 → 1.1, changes in
removed section:
1.1.0 → 1.1.1, files changed:
1.1.1 → 1.1.2, files changed:
1.1.1 → 1.1.2 changes in
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 details1.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
- 3