# 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
}
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.
max_front_ratios = { # Override the default against specific countries. Ignored against humans.
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 = { # Build land forts along these borders
GER,
ITA,
...
}
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
}
garrison = {
# OVERSEAS GARRISONING:
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 = { # 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.)
155 = 1.5
....
}
# 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 # 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.
province_priorities = [yes/no] # Invade only provinces from target = { … } list with priority higher then 0. 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
}
# 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”.}