D##n! What happened is I copied files en masse from my earlier mod, but might have forgotten to include some AI files. If I get a list of several bugs like that then I'll release 0.14a.
Copy-paste this into Notepad and save the file in the \ai folder as 'international.ai'
You can run the game without it and ignore the error message. Probably the key item is the neutrality = 150 line that stops a stupid player from allying with 'International Community'
Copy-paste this into Notepad and save the file in the \ai folder as 'international.ai'
Code:
# copy of Swiss file modified
switch = no # [yes/no]
max_front_ratio = 1.2
max_garrison_prop = 0.30
min_garrison_prop = 0.20
neutrality = 150
war = 0
upgrading = 0.35
reinforcement = 0.2
strat_redeploy_threshold = 25
exp_force_ratio = 0.750
exp_force_ratios = { }
no_exp_forces_to = { }
use_offensive_supply = no
###################################
# Diplomacy
###################################
combat = { }
befriend = { }
protect = { }
target = { }
trade = {
cancel_deal_threshold = 2
energy = -1
rare_materials = -1
metal = -1
oil = -1
supplies = -1
money = -1
favored = {
}
embargo = { }
}
tech_sharing = {
favored = {
}
embargo = { }
not = { }
prioritized = {
# Arcriculture
5020 = 100
5030 = 100
5040 = 100
# Inf support
1310 = 100
1320 = 100
1330 = 100
1340 = 100
1350 = 100
1360 = 100
# Production
5050 = 100
5060 = 100
5070 = 100
5080 = 100
5090 = 100
5100 = 100
5110 = 100
5120 = 100
5130 = 100
5150 = 100
5180 = 100
# Mountain Unit techs
1110 = 100
1120 = 100
1130 = 100
1140 = 100
}
}
###################################
# Spying
###################################
spyprefs =
{
percentage_on_spies = 0.2
percentage_foreign_mission = 0.7
# Used for Homeland Defense Spying
spyprefsdata =
{
NumberOfSpies = 3
counter_espionage = 10
country = ALS
}
# Defaul Spy parms used for countries the AI is atwar with but has no specific entry
spyprefsdata = {
country_priorities = 3
NumberOfSpies = 3
min_number_of_spies = 1
steal_blueprint = 10
minister_assassination = 1
smear_campaign = 3
coup = 4
sabotage_industry = 5
nuclear_sabotage = 0
found_partisans = 0
massmedia = 3
counter_espionage = 5
disrupt_techteam = 5
country = NONE
}
}
###################################
# Construction and Tech Research
###################################
#Default values
construction = {
max_factor = 0.00
AA_batteries = no
max_AA_level = 4
AA_provs = {
}
coastal_fort = no
max_coastal_level = 2
coastal_fort_provs = { }
radar_station = no
max_radar = 5
radar_provs = { }
air_base = no
max_air_base = 2
air_base_provs = { }
naval_base = no
max_naval_base = 2
naval_base_provs = { }
land_fort = no
max_land_level = 2
fort_borders = { }
ic_at_war = no
force_ic_until = 1935
ic_end_year = 1940
IC_provs = {
}
}
military = {
relative_build_scheme = no
max_batch_peace = 360
max_batch_war = 180
max_batch_home_front = 180
#### Divisions etc...
infantry = 30
cavalry = 0
motorized = 0
mechanized = 0
light_armor = 0
armor = 0
paratrooper = 0
marine = 0
bergsjaeger = 48
garrison = 0
hq = 0
militia = 0
# 78 %
interceptor = 10
multi_role = 0
cas = 7
strategic_bomber = 0
tactical_bomber = 5
naval_bomber = 0
transport_plane = 0
flying_bomb = 0
flying_rocket = 0
# 22 %
battleship = 0
carrier = 0
escort_carrier = 0
destroyer = 0
light_cruiser = 0
heavy_cruiser = 0
battlecruiser = 0
submarine = 0
nuclear_submarine = 0
transports = 0
# 0 %
#### Brigades
artillery = 40
sp_artillery = 0
rocket_artillery = 0
sp_rct_artillery = 0
anti_tank = 10
tank_destroyer = 0
light_armor_brigade = 0
heavy_armor = 0
super_heavy_armor = 0
armored_car = 0
anti_air = 0
police = 0
engineer = 0
cag = 100.000
}
technology = {
endgoal = { }
preference = {
# Tools
5050 5060 5070
# Engineering
5080 5090 5100
# Production Control
5110 5120
# Assembly Line
5130 5140 5180
#Infantry
1010 1020 1030 1040 1050 1060
# Mountain Unit techs
1110 1120 1130 1140
# Land Doctrines
6030 6150
# Air Doctrines
9040 9050 9060 9080 9100 9110 9120 9130 9140 9190 9200 9210 9220 9230 9240 9250 9260 9270 9280 9290 9300 9310 9320 9330 9340 9350 9360 9370 9380 9390 9400 9410 9420
# CAS
4170 4280 4180
}
ignore = {
# Assembly Line
5150 5160 5170
# Airborne
1070 1080 1090 1100
# Motorized
1230 1240 1250
# Marines
1150 1160 1170 1180
# Cavalry
1190 1200 1210 1220
# Mechanized
1260 1270 1280 1290
# Air Transports
4250 4260 4270
# Multirole Fighters
4040 4070 4100
# Naval Bomber
4190 4200 4210
# Strategic Bomber
4220 4230 4240
# Rocketry
5550 5560 5570 5580 5590
# Atomic Research
5470 5480 5490 5500 5510 5520 5530 5540
# Bas Decimetric
5410 5420 5430 5440 5450 5460
# Light tanks
2020 2030 2040 2050 2060
# Medium tanks
2010 2070 2080 2090
# Tank destroyers
2170 2180 2190 2200 2210
# SP guns
2220 2230 2240 2250
# SP Rocket Artillery
2260 2270 2280
# Static Anti-Air
2450 2460 2470 2480 2490 2500
# Anti Air Brigade
2510 2520 2530 2540
# Rocket Artillery
2370 2380 2390
# Armoured Cars
2150 2160
# Strategic Air Doctrines 9140
9150 9160 9170 9180 9430 9440 9450 9460
}
armor = 3
infantry = 4
industry = 4
aircraft = 1
naval = 0
land_doctrines = 1
secret_weapons = 0
air_doctrines = 1
naval_doctrines = 0
}
###################################
# Ground Combat, Leaders and Garrisons
###################################
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
}
garrison = {
defend_overseas_beaches = yes
home_multiplier = 1.0
overseas_multiplier = 0.5
home_peace_cap = 20
war_zone_odds = 2.0
key_point_prio_mult = 0
revolt_risk_mult = 1.0
# PRIORITIES:
beach = 20 # Beach level 2
capital = 40 # Our capital
human_border = 0 # Ignored for allied human players
war_target = 50 # The next country targeted for attack by this AI
opposing_alliance = 50 # For neutrals, all alliances are "opposing"
claim_threat = 0 # 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 = {
GER = 50
ITA = 50
FRA = 50
AUS = 50
}
province_priorities = { }
area_multiplier = { }
}
front = {
recklessness = 1 # 0-3
distrib_vs_ai = even
distrib_vs_human = even
enemy_reinf_days = 6
reserve_prop = 0.1
panic_ratio_vs_ai = 2.5
panic_ratio_vs_human = 2.5
base_attack_odds = 1.3
min_attack_odds = 1.1
max_attack_odds = 3.0
reinforce_odds = 1.2
withdraw_odds = 0.6
strength = 1.0
organisation = 1.0
soft_attack = 1.0
hard_attack = 1.0
ground_defense = 1.0
dig_in = 1.0 # Against defender
frozen_attack = 1.0
snow_attack = 1.0
blizzard_attack = 1.0
storm_attack = 1.0
muddy_attack = 1.0
occupied = 0.7
owned = 0.7
jungle_attack = 1.0
mountain_attack = 1.0
swamp_attack = 1.0
forest_attack = 1.0
hill_attack = 1.0
urban_attack = 1.0
river = 1.0
enemy_handicap = { }
passivity = { }
}
###################################
# Air bombardment and defense
###################################
# Air AI File For Ground Bombings as priority
# bomber is now obsolete and NOT USED AT ALL replace and use Air Marshal instead
air_marshal = {
min_mission_strength_org = 0.8
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
# desirability is a multiplier used when calcualting the mission desirability
airsuperioritydesirability = 30.0
groundattackdesirability = 40.0
inderdictiondesirability = 20.0
logisticalstrikedesirability = 2.0
runwaycrateringdesirability = 10.0
strategicstrikedesirability = 10.0
installationstrikedesirability = 5.0
navalstrikedesirability = 15.0
portstrikedesirability = 9.0
convoyraiddesirability = 9.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
airsuperioritylosstolerance = 1.0
groundattacklosstolerance = 1.0
interdictionlosstolerance = 2.0
logisticalstrikelosstolerance = 0.5
runwaycrateringlosstolerance = 1.5
strategicstriketolerance = 4.5
installationstriketolerance = 1.5
navalstriketolerance = 1.0
portstriketolerance = 1.0
convoyraidtolerance = 1.0
# efficency is a tweakable param to adjust according to how
# much actual damage comes from doing this mission (not to be confused with desirability)
logisticalstrikeefficency = 0.01
runwaycrateringefficency = 0.01
strategicstrikeefficency = 0.01
installationstrikeefficency = 0.01
taskforcetype = { name = "Air Superiority" desiredratio = 0.400 rangeweight = 10.000 airkillpowerweight = 2000.000 hardkillpowerweight = 0.000 softkillpowerweight = 0.000 navalkillpowerweight = 0.000 strategickillpowerweight = 0.000 transportcapacityweight = -1000000.000 airvulnurabilityweight = -1.000 surfacevulnurabilityweight = 0.000 idle = yes reorganize = yes air_superiority = yes }
taskforcetype = { name = "Soft Bombing" desiredratio = 0.250 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.050 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 }
}
###################################
# Invasions and Naval
###################################
invasion = {
base = 0.1 #Relative modifier. (lower = specific targets much more important.)
random = 8.0 #How big a random range. (1.0 = 1%)
coastal = 0.1 #increase to avoid coastal forts more.
beach = 0.1 #higher, avoid worst beaches.
distance = 20.0 #higher = avoid long distance.
pocket = 20.0 #prioritise pockets, ie provinces with no adjacent controlled by same.
island = 0.1 #prioritise taking pure islands.
enemy = 2.0 #higher = much more vary of troops in province.
adjacentenemy = 2.0 #higher = much more vary of troops nearby
air_base = 1.5
naval_base = 0.1
air_support = 3.0
redirect = nearest
ignore = no
target = { }
}
admiral = {
min_org = 100 # NEW: Percent of org gained back before the unit can leave port
min_dmg = 98 # 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 = 80 # NEW: PERCENT OF DMG LOST BEFORE RETURNING TO PORT for repairs applies to all fleets/ships
target = { }
core = { }
}
You can run the game without it and ignore the error message. Probably the key item is the neutrality = 150 line that stops a stupid player from allying with 'International Community'