CraftClass P4: AI Settings

[CraftClass]

RetargetOnStrafe = false
If this is true, when this unit is shot while engaging it's Target, and enters mode STRAFE to evade, it switches it's Target to the object that shot it.

EndSlideWhenCanHit = true
If true, exits SLIDE state as soon as it think it can hit it's Target.

MustBeLinedUpToHit = false
If this is true, AbleToHit calculation accounts for current heading and fire cone angles.
Note: Might not work very well on objects with Turrets.

MustBeLinedUpToFire = false
Same as MustBeLinedUpToHit but only applies to ArtillaryProcess AI. Defaults to true for Class: Artillary.

AITargetLocation = -1
Target Location for where the AI aims at it's target. Valid values: -1 = default, 0 = center, 1 = high, 2 = low, 3 = left, 4 = right

GotoTaskHasLeader = true
If false, Goto task given to Groups will not use Leader/Follower behavior, and all units in the Group will make their own individual paths.

WingmanProcessAttackMines = true
If true, WingmanProcess AI will attacks Mines.

NonWingmanProcessAttackMines = false
If true, Non WingmanProcess AI will attack Mines.

AIWeaponMaskVsCombat = -1
If this is >= 0, controls what weaponMask is used vs non isAssault objects.

AIWeaponMaskVsAssault = -1
If this is >= 0, controls what weaponMask is used vs isAssault objects.

SitTaskEnemySearchDist = 0.0f
This is how far it will search for Targets while sitting idle. Max is the craft's rangeScan.

ClosestEnemyGoodEyes = false
If this is true, GetClosestEnemyWithin() AI function considers objects behind them, else it only considers things in front of them.

GunTowerProcessCheckCantHit = true
If this is true, GunTowerProcess will re-target if it can't hit it's current Target.

DoWeaponCanHitCheck = true
If false, won't perform a CanHit check before trying to fire a Weapon at it's Target. If true, will skip over weapons that can't hit.

IgnoreDestroyedTargets = true
If true, AI ignores things flagged as Destroyed.

IgnorePerceivedTeam = false
If this is true, AI will ignore an Enemy's PercievedTeam setting.

ScanLocalAmmo = false
If true, AIP, MorphTank switching, and MortarBikeProcess code that compares ammoRatio takes all the weapon's LocalAmmo into account.

AircraftAttackMustDeploy = false
If AirCraftFriend/Enemy AI is in use, and this is true, if it is Undeployed when ordered to Attack, it will Deploy to takeoff.

OffensiveProcessIsTenacious = true
If this is true, AI units on a Player's Team will keep attacking it's current Target.

OffensiveProcessIsTenaciousAITeam = false
If this is true, AI units on a non Player Team will keep attacking it's current Target.

OffensiveProcessIsDistractable = false
If this is true, units on a Player's Team that are shot while en-route to their Attack target, will switch to Target their object that shot them.

OffensiveProcessIsDistractableAITeam = true
If this is true, units on an AI's Team that are shot while en-route to their Attack target, will switch to Target their object that shot them.

AttackTaskUsesGroups = true
If true, Attack orders given to Groups will use Leader/Follower behavior. If false, units will path individually.

FireWhenCanHitFriends = false
If true, will fire even if a Friendly unit is in the line of fire.

SitAttackCheckAbleToHit = false
If true, when WAIT task times out or the unit is hit by enemy fire, it does a CanHit check before switching to ATTACK. Default is true for Class: TrackedVehicle and TurretTank.

DoBlastUsesFields = false
If this is true, skips terrain and obstacle avoidance in Pathing when in BLAST state.

SkipSitIfCanHit = true
If true, skips DoSit when it thinks it can hit it's Target. Also skips updating Avoid/Wait, and the Stop request when a ServiceTruck wants to service something.

UseSelectWeapon = true
If true, most AI Processes ignore wepaonMask and use their SelectedWeapon. If false, uses weaponMask instead. SelectWeapon uses AIWeaponMaskVsComat/AIWeaponMaskVsAssault and chooses Assault weapons vs Targets with isAssault.

SitAttackAllowIndependence = false
If true, units in SIT state (idle) will automatically move to engage an Enemy within engageRange.

SitAttackAllowCounterattack = false
If this is true, the unit will switch to ATTACK state if it is shot from out side it's engageRange.
Note: Default is true for Class: HoverCraft.

Use13Aim = true
If this is false, 1.2 patch's Aim code, which uses the Aim12* skill settings below.

AII Skill Settings


Note: These settings all have 4 settings, one for each Skill level: 0 - 3. Defaults are listed in that order.
filterFactor0 ... filterFactor3 = 0.4, 0.6, 0.8, 1.0
If Use13Aim is true, how much Craft AimAt can change the pitch and steering values per simulation turn (0.0 is none, 1.0 is full).

StrafeTimeBase0 ... StrafeTimeBase3 = 0.5, 1.0, 3.0, 5.0
The minimum time that WingmanProcess wants to stay in the STRAFE state.

StrafeTimeRandom0 ... StrafeTimeRandom3 = 0.5, 1.0, 1.5, 2.0
The maximum Random time added to StrafeTimeBase#.

Aim12Delay0 ... Aim12Delay3 = 0.1, 0.06, 0.2, 0.3
Only used if Use13Aim is false. How much Craft AimAt can change the steering value per simulation turn (0.0 is none, 1.0 is full).

HoverAim12Delay0 ... HoverAim12Delay3 = 0.5, 0.2, 0.666
Only used if Use13Aim is false. How much HoverCraft AimAt can change the steering value per simulation turn (0.0 is none, 1.0 is full)

AssaultAim12Delay0 ... AssaultAim12Delay3 = 0.7, 0.7, 0.7, 0.7
Only used if Use13Aim is false. How much AssaultTank AimAt can change the turret steering value per simulation turn (0.0 is none, 1.0 is full)

Aim12CannonError0 ... Aim12CannonError3 = 0.75, 0.5, 0.2, 0.0
Only used if Use13Aim is false. How much to subtract from the Cannon GetLeadPosition leading time when aiming.

AttackTaskAttackTimeout0 ... AttackTaskAttackTimeout3 = 8.0, 12.0, 16.0, 20.0
How long AttackTask will remain in the STAND state before timing out and proceeding to the FLEE state to move to a new location.

AttackTaskFleeTimeout0 ... AttackTaskFleeTimeout3 = 50.0, 40.0, 30.0, 20.0
How long AttackTask will remain in the FLEE state before timing out and proceeding to the STRAFE or BLAST state.

AttackTaskStrafeAfterFlee0 ... AttackTaskStrafeAfterFlee3 = false, false,
false, true
If true, AttackTask switches to STRAFE, else switches to BLAST states.

AttackTaskStrafeToFleeTimeout0 ... AttackTaskStrafeToFleeTimeout3 = 0.0, 25.0,
50.0, 75.0
How long AttackTask will remain in the STRAFE state before timing out and proceeding to the "flee" state to move to a new location.

evadeRandomFactor0 ... evadeRandomFactor3 = 0.0, 5.0, 10.0 15.0
How much random Evasion force UnitTask applies (0 = none, 40 = comparable to maximum object or cliff avoidance).

evadeSightFactor0 ... evadeSightFactor3 = 0.0, 10.0, 20.0, 20.0
how much line-of-sight Evasion force UnitTask applies (0 = none, 40 = comparable to maximum object or cliff avoidance).

evadeOrdnanceFactor0 ... evadeOrdnanceFactor3 = 0.0, 0.0, 0.0, 20.0
how much ordnance Evasion force UnitTask applies (0 = none, 40 = comparable to maximum object or cliff avoidance).

evadeFilterFactor0 ... evadeFilterFactor3 = 0.0, 3.0, 4.0, 5.0
Low-pass filtering constant for Evasion controls (0 disabling the feature entirely and higher values having tighter control).
On this page