# NOTE: Parameters marked "CHANGE" or "NEW" are not yet implemented. switch = [yes/no] # Default is "yes". If turned off, the AI will not automatically try to switch to a more appropriate AI file every year. # Inter-Agent distribution variables flags = { testflag = yes invade_albania = no assist_finland = no } # Modifier to chance that country will accept a demand for territory. claim_acceptance = X # The countries we will demand territory from if we have claims on them. demand_claims = { EST LAT ROM LIT FIN } # The countries we will set free if we control their territory. liberate = { LIT FIN } # Special resistance against "influence" by the listed nations. Value range = [0 - 10] resistance = { ROM = 8 } # Country tags listed with a value specifying how much we want to destroy them. combat = { ENG = 60 FRA = 70 } # Countries listed here are considered withing our 'sphere of influence'. We will strive to guarantee their independence. protect = { TUR = 100 DAN = 100 } # Countries listed here are considered our natural allies. We will try to influence them and ally with them. befriend = { TUR = 100 DAN = 100 } # Provinces with an assigned priority. These are strategic goals for the AI (it will try to take them in wars and demand them in peace treaties.) target = { 324 = 50 # 1 - 100 } infrastructure = 0.1 #max % of ic used on this slider. upgrading = 0.1 #max % of ic used on this slider. reinforcement = 0.1 #max % of ic used on this slider. desperation = 0.3 #If more than this % of ic is occupied by enemy, panic and build militia hordes. # The ETA at which the AI uses strat. redeploy. strat_redeploy_threshold = [days] # Proportion of divisions that may be strategically redeploying at the same time. Default: 0.25 max_redeploying = X # if the ai should use offensive supply use_offensive_supply = yes/no # only use offensive supply if the fuel needed for it is less than this divided by unit strength. Default: 100 max_fuel_offensive = x #if ai should evacuate troops from island with low value evac_islands = yes/no # The "war monger" value affects the propensity of a country for declaring wars: war = 50 # The tendency of a nation to create and accept alliances, and accept military access. The higher the value, the more "neutral" the nation. NOTE: this does not affect the tendency of a nation to start wars. neutrality = 0 # Total neutrality at about 100 to 150 max_front_ratio = X # The max wanted friendly-to-enemy division ratio along the front. Default is 4.0. # Override the default against specific countries. Ignored against humans. max_front_ratios = { FIN = 2.0 ... } # Proportion of our land divisions that we are prepared to relinquish control over. # NOTE: Do not set too low - the AI must be allowed to give over control of its forces in "allied war zones". Default: 0.75. exp_force_ratio = 0.75 # Will never send exp. forces _overseas_ to these countries: # NOTE: May still give some to neighboring allies though. no_exp_forces_to = { TAG ... } max_garrison_prop = [0.0-1.0] # The war-time desired proportion of troops allocated to garrison duty min_garrison_prop = [0.0-1.0] # The war-time minimum proportion of troops allocated to garrison duty # NOTE: In areas without fronts, _all_ land units are controlled by the Garrison AI (except forces preparing for an invasion.) construction = { max_factor = [0.0-1.0] # Proportion of Production IC that should be used for province buildings. AA_batteries = [yes/no/atwar/not_atwar] # yes = all the time, no = none, atwar = build during wars, not_atwar = build during peace max_AA_level = X # Don't improve beyond this level. AA_provs = { ... } # List of prioritized provinces coastal_fort = [yes/no/atwar/not_atwar] max_coastal_level = X # Don't improve beyond this level. coastal_fort_provs = { ... } # List of prioritized provinces radar_station = [yes/no/atwar/not_atwar] max_radar = X # Don't improve beyond this level. radar_provs = { ... } # List of prioritized provinces air_base = [yes/no/atwar/not_atwar] max_air_base = X # Don't improve beyond this level. air_base_provs = { ... } # List of prioritized provinces naval_base = [yes/no/atwar/not_atwar] max_naval_base = X # Don't improve beyond this level. naval_base_provs = { ... } # List of prioritized provinces land_fort = [yes/no/atwar/not_atwar] max_land_level = X # Don't improve land forts beyond this level. fort_borders = { GER, ITA, ... } # Build land forts along these borders fort_provs = { ... } # List of prioritized provinces ic_at_war = [yes/no] # Normally, we always build IC if there is a large resource surplus. The exception could be during wars. force_ic_until = X # Ignore presence of a resource surplus and build IC anyway, until year X. (Useful for countries anticipating expansion.) ic_end_year = X # Stop building IC at the end of year X. IC_provs = { ... } # List of prioritized provinces nuclear_reactor = [yes/no/atwar/not_atwar] nuclear_reactor_prov = province #province ai will try to build nuclear reactors in max_nuclear = 10 #max nuclear reactor size ai will try to get rocket_test = [yes/no/atwar/not_atwar] rocket_test_prov = province #province to build rocket test site in max_rocket = 10 #max rocket test site size } # OVERSEAS GARRISONING: garrison = { defend_overseas_beaches = [yes/no] # "no" is default # Basic need is X divisions per area where X is: number of provinces - attrition provinces home_multiplier = X # In home area, multiply basic need by X. Default: 0.5 overseas_multiplier = X # In other area, multiply basic need by X. Default: 0.3333 home_peace_cap = X # If at peace, we need at most X divisions in our capital area. war_zone_odds = X # Default: 2.0 (strive to transport in 2x enemy nr of divisions) area_multiplier = { 155 = 1.5 .... } # If an area contains a specific province, multiply the basic need by value (overrides overseas_multiplier, but if it is the home area it is ignored.) # PRIORITIES: beach = 50 # Beach prio capital = 100 # Our capital human_border = 210 # Ignored for allied human players war_target = 100 # The next country targeted for attack by this AI reserves = 20 # bonus for provinces just behind a frontline. opposing_alliance = 100 # For neutrals, all alliances are "opposing" claim_threat = 100 # If we are neutral, countries with claims on us get this unstable_border = 50 # Bordering countries at war with someone else get this # Borders with specific countries country_priorities = { ENG = 30 FRA = -1 ... ... } # -1: Override "opposing_alliance", "claim_threat" and "unstable_border" values and set to 0. # Specific provinces province_priorities = { 527 = 50 # Province 527 has prio 50 1123 = -1 # Negative value will override _all_ other priorities and set to 0. ... } ignore = { 1123 #Will set prio to 0... } key_point_prio_mult = [Value] # Value * key point value in a province = prio for that province } front = { river = x # (What to multiply attacking power with if crossing a river. < 1.0 is an advantage..) # the following modifies the odds-strength for defender. (1.0 = no difference.) largefort = x #for forts above level 6. smallfort = x #for forts 6 and below occupied = x #for surrounded pocket at enemy territory owned = x #for surrounded pocket at own territory #Odds modifiying variables # the following is to reduce odds-strength for attacker. frozen_attack = 0.50 snow_attack = 0.50 blizzard_attack = 0.25 storm_attack = 0.60 muddy_attack = 0.75 #reduces the size of odds in total.. (1.0 = no difference, 0.5 = halved.) jungle_attack = 0.85 mountain_attack = 0.60 swamp_attack = 0.60 forest_attack = 0.85 hill_attack = 0.75 urban_attack = 0.40 # Proportion of divisions in a front province that may be used to support the defense of neighboring provinces. Default 0.33 support_defense_prop = X recklessness = [0-3] # Even - Distribute forces evenly along the whole front. # Reactive - Try to match enemy troop concentrations. # Defensive - More troops in strategically important provinces (IC, Victory Points, Oil, etc) # Offensive - Concentrate more troops where the enemy us weak # Operational Defensive - The fewer avenues of escape, the less troops (to avoid encirclement.) distrib_vs_ai = [even/reactive/defensive/offensive/op_defensive] distrib_vs_human = [even/reactive/defensive/offensive/op_defensive] # Countries we do not counter-attack for a certain number of days enemy_handicap = { # NOTE: These values are ignored for human-controlled enemies. # CAUTION: Values apply for _every_new_ war with a set nation. ENG = 100 FRA = 120 ... ... } passivity = { # Against specified enemies. # Valid values: 0-100 (%) ENG = 0 FRA = 50 ... ... } province_priorities = { 527 = 0.2 #Only assign 20% of desired forces to cover the province 527 ... } reserve_prop = [0.0-1.0] # Maximum proportion of total divisions in a front allowed to remain behind the front line ( HQs and divisions needing to recover.) panic_ratio_vs_ai = X # Front requests more troops if outnumbered by this factor. NOTE: this results in troops being drawn from garrison duties, etc, so set HIGH. panic_ratio_vs_human = X # Front requests more troops if outnumbered by this factor. NOTE: this results in troops being drawn from garrison duties, etc, so set HIGH. enemy_reinf_days = X # Count enemy units less than X days from a target province in odds calculations base_attack_odds = X # Will attack at X odds or better min_attack_odds = X # If stalemated for a long period, may go as low as these attack odds max_attack_odds = X # Don't use more force than necessary to reach these odds reinforce_odds = X # Send in more troops if the attacking force is at these odds withdraw_odds = X # Break off attacks and withdraw at these odds # NOTE: the calculations for retreating from _defensive_ positions are too complex to condense to a few variables # NOTE: will _also_ retreat if the average organization is too low } military = { relative_build_scheme = [yes/no] # Should the AI strive to maintain a relative balance between unit types [yes] or simply allocate percentages (see below) of the total production [no]. Default: yes max_batch_peace = 800 # Max production run length in DAYS while at peace max_batch_war = 500 # Max production run length in DAYS while at war with no home front max_batch_home_front = 190 # Max production run length in DAYS while at war with home fronts # NOTE: AI production run size is also limited by other factors, such as Total IC capacity, days until end of scenario, and desperation. # Example Build scheme: infantry = 3 cavalry = 0 motorized = 5 mechanized = 6 light_armor = 0 armor = 10 paratrooper = 0 marine = 6 bergsjaeger = 3 garrison = 0 hq = 2 militia = 0 # 35 % multi_role = 7 interceptor = 3 strategic_bomber = 4 tactical_bomber = 6 naval_bomber = 5 cas = 5 transport_plane = 0 flying_bomb = 0 flying_rocket = 0 # 35 % battleship = 2 light_cruiser = 4 heavy_cruiser = 3 battlecruiser = 0 destroyer = 6 carrier = 6 escort_carrier = 0 submarine = 4 nuclear_submarine = 0 transport = 5 # 30 % # NOTE: The sum _must_ be exactly 100%! # Brigade preferences: # (% of eligible division types that should be built with a certain brigade type) # Land types: artillery = 15 sp_artillery = 5 rocket_artillery = 0 sp_rocket_artillery = 2 anti_tank = 3 tank_destroyer = 5 light_armor_brigade = 0 heavy_armor = 0 super_heavy_armor = 0 armored_car = 0 anti_air = 5 police = 0 engineer = 5 # Sum of these should be <= 100 # Naval types: cag = 100 # Sum of these should be <= 100 #The AI will always build escort fighters when it builds tactical bombers and strategic bombers. } # bomber is now obsolete and NOT USED AT ALL replace and use Air Marshal instead air_marshal = { icxdayscostfactor = 10.0 # How to value true industrial cost when calculating expect causalties manpowercostfactor = 100.0 # How to value manpower cost when calculating expect causalties destructionriskthreashold = 0.2 # when to fear a divisiopn might be destroyed airsuperioritydesirability = 10.0 # desirability is a multiplier used when calcualting the mission desirability airsuperioritylosstolerance = 1.0 # tolerance is the required kill:loss ration expected to do mission, 2.0 accept twice the losses of your enemy, 0.5 accept half groundattacklosstolerance = 1.0 groundattackdesirability = 1.0 interdictionlosstolerance = 1.5 inderdictiondesirability = 1.0 logisticalstrikelosstolerance = 4.5 logisticalstrikeefficency = 0.01 # efficency is a tweakable param to adjust according to how much actual damage comes from doing this mission (not to be confused with desirability) logisticalstrikedesirability = 100000.0 runwaycrateringlosstolerance = 1.5 runwaycrateringefficency = 0.01 runwaycrateringdesirability = 20000.0 strategicstriketolerance = 4.5 strategicstrikeefficency = 0.01 strategicstrikedesirability = 1000000.0 installationstriketolerance = 1.5 installationstrikeefficency = 0.01 installationstrikedesirability = 10.0 navalstriketolerance = 1.0 navalstrikedesirability = 10.0 portstriketolerance = 1.0 portstrikedesirability = 9.0 portstriketolerance = 1.0 portstrikedesirability = 0.0 # You can have any number of task forces, but if you add one you must add ALL the kinds you want # as then the defaults aren't set. # The defaults currently are: taskforcetype = { name = "Air Superiority" # Name can be anything and is only used to ease debugging desiredratio = 0.400 # What ratio taskforces of this type should a nation try to form? rangeweight = 10.000 # How important the range for an air divisions in this taskforce-type? airkillpowerweight = 2000.000 # How important is an air divisions ability to kill air in this taskforce-type? hardkillpowerweight = 0.000 softkillpowerweight = 0.000 navalkillpowerweight = 0.000 strategickillpowerweight = 0.000 transportcapacityweight = -1000000.000 # A huge negative number here keeps transports out of this taskforce-type airvulnurabilityweight = -1.000 # How bad is being vulnurable to enemy air (vulnurable is a mix of cost and defence value) surfacevulnurabilityweight = 0.000 # What AI missions should this task force consider? # Idle is the "mission" the AI is on when doing nothing, # Reorganize is the "mission" the AI is on when trying to reform its # air OOB to be more optimal. The other missions listed here correspond # to the standard tactical missions AND a rebase to the best airbase. # Possible missions are: idle = yes reorganize = yes air_superiority = yes #Others not supported by the "Air Superiority" default taskforce type #interdiction #ground_attack #logistical_strike #runway_cratering #strategic_bombardment #installation_strike #naval_strike #port_strike #convoy_air_raiding #airborne_assault #air_supply } # the other defaults taskforcetype = { name = "Soft Bombing" desiredratio = 0.200 rangeweight = 10.000 airkillpowerweight = 0.000 hardkillpowerweight = 0.000 softkillpowerweight = 2000.000 navalkillpowerweight = 0.000 strategickillpowerweight = 0.000 transportcapacityweight = -1000000.000 airvulnurabilityweight = 0.000 surfacevulnurabilityweight = -1.000 idle = yes reorganize = yes interdiction = yes ground_attack = yes } taskforcetype = { name = "Hard Bombing" desiredratio = 0.100 rangeweight = 10.000 airkillpowerweight = 0.000 hardkillpowerweight = 2000.000 softkillpowerweight = 0.000 navalkillpowerweight = 0.000 strategickillpowerweight = 0.000 transportcapacityweight = -1000000.000 airvulnurabilityweight = 0.000 surfacevulnurabilityweight = -1.000 idle = yes reorganize = yes interdiction = yes ground_attack = yes } taskforcetype = { name = "Strategic Bombing" desiredratio = 0.100 rangeweight = 10.000 airkillpowerweight = 0.000 hardkillpowerweight = 0.000 softkillpowerweight = 0.000 navalkillpowerweight = 0.000 strategickillpowerweight = 2000.000 transportcapacityweight = -1000000.000 airvulnurabilityweight = -0.500 surfacevulnurabilityweight = -0.500 idle = yes reorganize = yes logistical_strike = yes runway_cratering = yes strategic_bombardment = yes installation_strike = yes } taskforcetype = { name = "Naval Bombing" desiredratio = 0.100 rangeweight = 10.000 airkillpowerweight = 0.000 hardkillpowerweight = 0.000 softkillpowerweight = 0.000 navalkillpowerweight = 2000.000 strategickillpowerweight = 0.000 transportcapacityweight = -1000000.000 airvulnurabilityweight = 0.000 surfacevulnurabilityweight = -1.000 idle = yes reorganize = yes naval_strike = yes port_strike = yes convoy_air_raiding = yes } taskforcetype = { name = "Airlift" desiredratio = 0.100 rangeweight = 10.000 airkillpowerweight = 0.000 hardkillpowerweight = -2000.000 softkillpowerweight = -2000.000 navalkillpowerweight = 0.000 strategickillpowerweight = -2000.000 transportcapacityweight = 1000000.000 airvulnurabilityweight = -1.000 surfacevulnurabilityweight = 0.000 idle = yes reorganize = yes airborne_assault = yes air_supply = yes } } #The number of leaders of a given type is equal to the number of units multiplied with the leader_rartio. #For example if you have 101 land units and land_field_marsal = 0.02 you will have two field marshals. #For example if you have 101 sea units and sea_admiral = 0.06 you will have six admirals. leader_ratio = { land_field_marshal =0.02 land_general =0.031 land_lt_general =0.41 sea_grand_admiral =0.02 sea_admiral =0.061 sea_vice_admiral =0.401 air_marshal =0.02 air_general =0.091 air_lt_General =0.11 } #Factors regarding amphibious invasions by ai. invasion = { #for evaluating specific province target. base = 1.0 # Relative modifier. (lower = specific targets much more important.) random = 1.0 # How big a random range. (1.0 = 1%) coastal = 1.0 # increase to avoid coastal forts more. beach = 1.0 # higher, avoid worst beaches. distance = 1.0 # higher = avoid long distance. max_distance = 20.0 # ignore distances at higher distance than this.. 1 = 100km ingame. pocket = 1.0 # prioritise pockets, ie provinces with no adjacent controlled by same. island = 1.0 # prioritise taking pure islands. enemy = 1.0 # higher = much more wary of troops in province. adjacentenemy = 1.0 # higher = much more wary of troops nearby air_base = 0.1 # add this priority for air bases within adjacentenemy naval_base = 0.1 # add this priority for naval bases within adjacentenemy air_support = 0.1 # add this priority for beaches within reach of air_bases ignore = [yes/no] # Launch invasions even if we have a home front. Default: no. redirect = priority/nearest/home # priority refers to targets in the AI file, # nearest is the closest enemy beach where the AI has # good attack odds and home is to return back to port #specific provinces can be targetted to get special bonuses.. target = { 898 = 1000 } } # Invasion of South Sicily (898) has super high priority. Negative values preclude invasions there. #Factors controlling the naval AI admiral = { #specific provinces can be targetted to get special bonuses.. target = { 592 = 200 # patrolling the south north sea have a big priority. ... } #This is used to determine that it's a core seazone and its control is important. core = { 592 ... } #Which provinces to use as bases.. base = { 592 ... } #Which areas to ignore. ignore = { #PLEASE NOTE THAT ITS AREAS.. Not province-names "northern baltic" "southern baltic" } min_org = 95% # NEW: Percent of org gained back before the unit can leave port min_dmg = 95% # NEW: Percent of dmg gained back before the unit can leave port return_org = 60% # NEW: PERCENT OF ORG LOST BEFORE RETURNING TO PORT applies to all fleets/ships return_dmg = 50% # NEW: PERCENT OF DMG LOST BEFORE RETURNING TO PORT for repairs applies to all fleets/ships } # Factors to modify for technological development. technology = { endgoal = { ... } #list of endgoals to achieve. preference = { ... } # list of techs to give bonus too. ignore = { ... } # Techs we will never research #preference to weight importance of research in these field.s armor = 2.0 infantry = 3.0 industry = 2.5 aircraft = 0.6 naval = 0.1 land_doctrines = 4.0 air_doctrines = 0.9 naval_doctrines = 0.1 secret_weapons = 0.4 } # Factors to modify Trade Agreements. trade = { favored = { TAG = X # Preferred Countries to trade resources with. } embargo = { TAG # Will not trade resources with these countries. } # A threshold for when the AI should cancel trade agreements. Default is 4.0. A lower value means the AI will be more eager to cancel bad deals. cancel_deal_threshold = X # These override the resource values in "db\resource_values.csv" for this AI unless set to -1 (default.) energy = -1 rare_materials = -1 metal = -1 oil = -1 supplies = -1 money = -1 # These block the selling of these resources, for example germany might stop selling Oil to others in 38 block_metal_trade = 0 block_rare_materials_trade = 0 block_energy_trade = 0 block_oil_trade = 1 block_money_trade = 0 block_supplies_trade = 0 } # Factors to modify Tech Sharing tech_sharing = { favored = { TAG = X # Preferred Countries to trade techs with. Higher value also means better techs. ... } embargo = { TAG # Will not trade techs with these countries. ... } not = { ID # List of techs never to trade. ... } prioritized ID = X # Priority to accepting trades with these techs. ... } } #prevents ai from accepting peace deals ferocity = yes #controls how much forces ai can send to different countries (not implemented internally) exp_force_ratios = { USA = 0.75 ENG = 0.25 } ########################################################### # SPY ########################################################### spyprefs = { percentage_on_spies = 0.2 #percentage_on_spies: the amount of the income a country will spend on intelligence. percentage_foreign_mission = 0.7 #The amount of the income a country will spend on intelligence. } spyprefsdata = { country_priorities= 10 #Is an integer value between 0 and 10. The higher the value is the more spy actions will be preformed in the target nation. number_of_spies10 #This is the number of spies a nation desire too has in the target nation. min_number_of_spies = 2 #When this number is reacted a nation will start to do spy action in the target nation. #All the values below must be integers. steal_blueprint = 10 minister_assassination = 15 smear_campaign = 1 coup = 1 sabotage_industry = 10 nuclear_sabotage = 0 found_partisans = 0 massmedia = 0 counter_espionage = 2 disrupt_techteam = 1 #The target country. country = USA } # when country is the same as the AI file that data will be used for intelligence protecting the country i.e. counter espionage. spyprefsdata = { NumberOfSpies = 3 counter_espionage = 10 country = GER } #An Example : # #steal_blueprint = 10 #minister_assassination = 1 #sabotage_industry = 20 # #In the long run the nation will perform 10 more “steal_blueprint” then minister_assassination and 10 more “sabotage_industry” then “steal_blueprint”.