[an error occurred while processing this directive] Modification: Data File Definitions

\CTP2_DATA\DEFAULT\AIDATA\Strategies.txt

The Strategies.txt file defines the various strategic states for the AI. See the AI customization document for details on how the strategic states are used by the AI.

Variables:
Inherit - Strategy ID of a strategy to inherit. This strategy will be loaded first before setting the variable in the current strategy.
PopAssignmentElement - This defines how workers and specialist should be assigned. Multiple population assignment elements can be defined
Specialists - Percentage of workers to be assigned as specialists after minimum levels have been reached. Valid values between 0 and 1
FarmerPercent - Percentage of specialists to be assigned as Farmers. Total specialist assignment (Farmer, Laborer, Merchant, Entertainer & Scientist) must equal 1.0
LaborerPercent - Percentage of specialists to be assigned as Laborers. Total specialist assignment (Farmer, Laborer, Merchant, Entertainer & Scientist) must equal 1.0
MerchantPercent - Percentage of specialists to be assigned as Merchants. Total specialist assignment (Farmer, Laborer, Merchant, Entertainer & Scientist) must equal 1.0
EntertainerPercent - Percentage of specialists to be assigned as Entertainers. Total specialist assignment (Farmer, Laborer, Merchant, Entertainer & Scientist) must equal 1.0
ScientistPercent - Percentage of specialists to be assigned as Scientists. Total specialist assignment (Farmer, Laborer, Merchant, Entertainer & Scientist) must equal 1.0
The following variables define which cities are to use this PopAssignmentElement. The Top & Bottom flags are mutually exclusive as are the ProductionCities, GrowthCities & GoldCities flags. One flag from each group should be used to specify the type of city to receive this assignment setting. The Default flag is special and should be used on the last PopAssignmentElement.
Top - Top percentage of cities to receive assignment setting. Valid values between 0 and 1
Bottom - Bottom percentage of cities to receive assignment setting. Valid values between 0 and 1
ProductionCities - Evaluate based on city’s production rate
GrowthCities - Evaluate based on city’s growth rate
GoldCities - Evaluate based on city’s gold rate
Default - Use this setting if no other setting matched
 
Government - This defines the governments the AI desires to use. Multiple governments can be defined and the order they are defined sets the priority. Must use valid government IDs from Govern.txt
The following variables control how the AI sets the Rations, Workday & Wages sliders.
MinimumHappiness - Try to keep city happiness above this level. Valid values: 0 - 100
DeficitSpending - Percentage of savings that can be spent each turn. Valid values: 0.0 - 1.0
MaximumWagePercent - Maximum percentage of Commerce that can be spent on Wages. Valid value: 0.0 -1.0
SliderElement - Slider element settings. One should be set for each slider (Production, Gold & Food)
Delta - Setting changes from baseline (-3 to 3)
Production - Change workday
Gold - Change wages
Food - Change food
The follow variables control Empire level settings.
SciencePercent - Percentage of Commerce to be spent on science. Valid values: 0 - 100
MaxSupportCostPercent - Max percentage of Production to be spent on unit support. Valid values: 0 - 100
ReadinessLevel - Military readiness setting. Valid values: 0 = Peace, 1 = Alert, 2 = War
PublicWorksPercent - Percent of Commerce to put into Public Works. Valid values: 0 - 100
PublicWorksReserve - Amount of public works (materials) to keep in reserve
MaxEvalTileImprovements - Number of Tile Improvements to consider building each turn.
TimeToFixRoads - Turns to wait before fixing roads
TimeToFixPollution - Turns to wait before fixing polluted tiles
FixPollutionThreshold - Stored PW must exceed cost to fix + threshold
RoadUtilityBonus - Bonus for building road improvements
ImproveProductionBonus - Bonus for building production improvements
ImproveGrowthBonus - Bonus for building growth improvements
ImproveGoodBonus - Bonus to apply to cells with goods
ImproveSmallCityGrowthBonus  - Bonus for growth improvements in smallest 20% of our cities
ImproveLargeCityProductionBonus - Bonus for production improvements in largest 20% of our cities
ImproveGrowthList - Ordered list of terrain improvements that increase growth. Must be valid Improvement List ID from ImprovementLists.txt
ImproveProductionList - Ordered list of terrain improvements that increase production Must be valid Improvement List ID from ImprovementLists.txt
ImproveRandomList - Ordered list of terrain improvements to be randomly spread around Must be valid Improvement List ID from ImprovementLists.txt
The following variables control the priorities of goals and usage of units.
GoalElement - Each GoalElement defines the attributes for a single Goal. Each goal can only be defined once, if it is redefined within the strategy then the previous settings will be overridden.
Goal - Goal ID. Must be a valid Goal ID from the Goals.txt
Priority - Base priority of the goal
MaxEval - Number of times this goal should be considered per turn
MaxExec - Maximum number of time this goal can be executed per turn
ExecPerCity - This flag makes the MaxExec value based on the number of cities
EvalPerCity - This flag makes the MaxEval value based on the number of cities
PerCity - This flag makes both the MaxExec & MaxEval values based on the number of cities
DistanceModifierFactor - Bonus to add to goal priority based on distance (value * rounds to target)
DisbandArmyCount - Number of armies to try and disband units from per turn
MinSettleDistance - Minimum distance (in cells) between settled cities
MinSettleScore - Cells with settle scores below this threshold will not be used
The following variables control how the AI builds items in cities.
RushBuyThreatBonus - Bonus to be added to threatened cities when considering to rush buy items
RushBuyReservePercent - Percent of gold expenses last turn to keep in reserve when rush buying. Valid values: 1.0 = 100%
UnitSupportPercent - Percent of civilization support dedicated to units. Valid values: 0.0 - 1.0
MaxSettlerBuildTurns - Maximum build time allowed to build Settlers
MaxUnitBuildTurns - Maximum build time allowed to build Units
MaxWonderBuildTurns - Maximum build time allowed to build Wonders
BuildTransportProductionLevel - Maximum percent of conventional units to build before building Transports. Valid values: 0.0 - 1.0
BuildSettlerProductionLevel - Maximum percent of conventional units to build before building Settlers. Valid values: 0.0 - 1.0
OffensiveUnitsPercent - Percentage of Offensive units in total army. Sum of Offensive, Defensive, Ranged, Sea & Air unit percentages must equal 1.0
DefensiveUnitsPercent - Percentage of Defensive units in total army. Sum of Offensive, Defensive, Ranged, Sea & Air unit percentages must equal 1.0
RangedUnitsPercent - Percentage of Ranged units in total army. Sum of Offensive, Defensive, Ranged, Sea & Air unit percentages must equal 1.0
SeaUnitsPercent - Percentage of Sea units in total army. Sum of Offensive, Defensive, Ranged, Sea & Air unit percentages must equal 1.0
AirUnitsPercent - Percentage of Air units in total army. Sum of Offensive, Defensive, Ranged, Sea & Air unit percentages must equal 1.0
SettlerUnitsCount - Number of Settlers to maintain in army
SpecialUnitsCount - Number of Special Units to maintain in army
SeaTransportUnitsCount - Number of Sea Transports to maintain in army
AirTransportUnitsCount - Number of Air Transports to maintain in army
OffensiveUnitList - Unit list to use when building Offensive units. List must be valid Unit List ID from UnitBuildLists.txt
DefensiveUnitList - Unit list to use when building Defensive units. List must be valid Unit List ID from UnitBuildLists.txt
RangedUnitList - Unit list to use when building Ranged units. List must be valid Unit List ID from UnitBuildLists.txt
SeaUnitList - Unit list to use when building Sea units. List must be valid Unit List ID from UnitBuildLists.txt
AirUnitList - Unit list to use when building Air units. List must be valid Unit List ID from UnitBuildLists.txt
SettlerUnitList - Unit list to use when building Settler units. List must be valid Unit List ID from UnitBuildLists.txt
SpecialUnitList - Unit list to use when building Special units. List must be valid Unit List ID from UnitBuildLists.txt
SeaTransportUnitList - Unit list to use when building Sea Transport units. List must be valid Unit List ID from UnitBuildLists.txt
AirTransportUnitList - Unit list to use when building Air Transport units. List must be valid Unit List ID from UnitBuildLists.txt
FreightUnitList - Unit list to use when building Freight units. List must be valid Unit List ID from UnitBuildLists.txt
OffensiveGarrisonCount - Minimum number of Offensive units to keep as garrison in a city
DefensiveGarrisonCount - Minimum number of Defensive units to keep as garrison in a city
RangedGarrisonCount - Minimum number of Ranged units to keep as garrison in a city
The following structure defines the Build List Sequence Elements. They are used to determine which build lists should be used in which cities. One element should be defined for each BuildListSequence in BuildListSequences.txt. Only one element can be defined at any time for each sequence. If an element is redefined for a particular sequence then the previous settings will be overridden.
BuildListSequenceElement - The structure sets the parameters for a build list sequence
Priority - The priority of the sequence. If a city meets the criteria of multiple elements it will use the one with the higher priority
BuildListSequence - Name of the build list sequence. Must reference a valid ID from BuildListSequences.txt
Top - Top X percentage of cities. Valid values: 0.0 - 1.0
Bottom - Bottom X percentage of cities. Valid values 0.0 - 1.0
ProductionCities - Evaluate based on city’s Production rate
GrowthCities - Evaluate based on city’s Growth rate
CommerceCities - Evaluate based on city’s Commerce income
HappyCities - Evaluate based on city’s Happiness rating
ThreatenedCities - Evaluate based on enemy threat to city
PowerCities - Evaluate based on domestic attack strength near city
Default - If neither top or bottom, then use default
Advice - Advice to give player if selected. Must reference a valid string ID from one of the string files.
 
Research - Advance list to set research order. Must reference a valid advance list ID from AdvanceLists.txt
StopResearch - Advance list of advances that enemies should not research. This controls which advance they will request to stop researching. Must reference a valid advance list from AdvanceLists.txt
The following variables help control the diplomatic desires for the AI. These are used to set the levels of motivations and fears that help determine when specific diplomatic requests are initiated as well as when high-level strategic decisions are made like when to go to war.
FearInvasion - Fear priority based on enemy’s ability to invade
FearCityDefense - Fear priority based on cities defense level
FearPiracy - Fear priority based on piracy risk
FearScienceRank - Fear priority based on relative science levels
FearMilitaryRank - Fear priority based on relative military levels
FearTradeRank - Fear priority based on relative gold income levels
FearPollution - Fear priority based on pollutions levels
DesireAttack - Desire priority to go to war
DesireGold - Desire priority to get gold
DesireScience - Desire priority to get advances
DesireMakeFriend - Desire priority to maintain peace
DesireEnlistFriend - Desire priority to get allied assistance
PiracyMemoryTurns - Length in turns to remember that a route was pirated
MaxPiracyEvents - Number of time a route can be pirated before redirecting the route
The force match structures define the army strength ration desired before attacking. These can be used to fine tune the win ratio of AI attacks. High force match ratios can guarantee that the AI will win every combat but could end up preventing the AI from attacking if it never has enough force launch a successful attack. The force match setting are refernced from Goals.txt
ForceMatch - The force match structure. See the example for proper syntax. Valid values: Offensive, Defensive, StealthAttack, Bombard, Special & Harass
AttackMatch - Ratio of army's attack strength to target's defense strength
DefenseMatch - Ratio of army's defense strength to target's attack strength
RangedMatch - Ratio of army's ranged strength to target's ranged strength
BombardMatch - Ratio of army's bombard strength to target's bombard strength
ValueMatch - Ratio of army's value to target's value
The following variables control how the AI utilizes it’s nuclear capabilities.
NuclearFirstStrike - Controls the AI ability to initiate first strike with nuclear weapons. Valid values: Enabled & Disabled
NuclearTargeting - Controls the AI ability to target enemy cities with nuclear weapons. Valid values: Enabled & Disabled
PreemptiveStrikeRegard - Do not perform first strike if our regard is above some limit
PreemptiveStrikeRiskRatio - Ratio of foreign nukes to wipe us off the map? (eg. if more than 1 foreign nuke to every 4 of our cities would be enough to prevent us from launching, specify 0.25)
PreemptiveStrikeSuperiorityRatio - Ratio when the AI has enough nukes to wipe them off the map? (eg. if having less than 3 nukes to every 4 enemy cities prevents us from launching, specify 0.75)
 


Example:
STRATEGY_SEIGE {
// percent of gold to put into science
SciencePercent 60
 
// Scaled bonus (#turns) to reduce the estimated time to rush buy in most threatened city
// used when deciding what city to rush buy in
RushBuyThreatBonus 10
 
// Percent of gold expenses last turn to keep in reserve when rush buying
RushBuyReservePercent 2.0
 
// Percent of civilization support dedicated to units
UnitSupportPercent 0.35
 
// Unit Percents must total to 1 (100%)
OffensiveUnitsPercent 0.30
DefensiveUnitsPercent 0.20
RangedUnitsPercent 0.30
SeaUnitsPercent 0.10
AirUnitsPercent 0.10
 
// Number of special units that should be built
SeaTransportUnitsCount 6
AirTransportUnitsCount 4
 
GoalElement { Goal GOAL_DEFEND Priority 607000 MaxEval 2 MaxExec 1 PerCity }
GoalElement { Goal GOAL_SEIGE Priority 605000 MaxEval 25 MaxExec 2 }
GoalElement { Goal GOAL_HARASS_CITY Priority 600000 MaxEval 3 MaxExec 1 }
GoalElement { Goal GOAL_ATTACK Priority 600000 MaxEval 25 MaxExec 10 }
GoalElement { Goal GOAL_HARASS Priority 595000 MaxEval 25 MaxExec 10 }
GoalElement { Goal GOAL_BOMBARD Priority 597000 MaxEval 25 MaxExec 4 }
 
// multiplied by #rounds to target
DistanceModifierFactor -150
 
BuildListSequenceElement {
Priority 10500
BuildListSequence BUILD_LIST_SEQUENCE_OFFENSE
Top 0.35
ProductionCities
Advice BUILD_OFFENSE_ADVICE
}
 
BuildListSequenceElement {
Priority 11000
BuildListSequence BUILD_LIST_SEQUENCE_DEFENSE
Top 0.35
ThreatenedCities
Advice BUILD_DEFENSE_ADVICE
}
 
//
// FORCE MATCHING
//
 
Offensive {
AttackMatch 0.7
DefenseMatch 0.3
RangedMatch 0.9
BombardMatch 0.0
ValueMatch 0.5
}
 
Harass {
AttackMatch 0.6
DefenseMatch 0.3
RangedMatch 0.6
BombardMatch 0.0
ValueMatch 0.3
}
}



BACK TO Directory Structure PAGE

BACK TO MODIFICATION INDEX PAGE

[an error occurred while processing this directive]