AI Config Reference – Arma 3

From Bohemia Interactive Community
Revision as of 11:59, 28 October 2020 by Freddo3000 (talk | contribs)
Jump to navigation Jump to search

Template:Stub Template:wip

Note that this is the relevant page for Arma 3 AI configuration. Implementations for older Arma titles differ somewhat, but are irrelevant for Arma 3.

Template:Cfg ref

CfgBrains Config Reference

As of Arma 3 logo black.png2.00 it contains three classes

  • DefaultAnimalBrain
  • DefaultCivilianBrain
  • DefaultSoldierBrain

Each of which contains a Components class. Only DefaultSoldierBrain includes any components by default.

AIBrainAimingErrorComponent

bestDecreaseTime

How long (in seconds) it should take 1 skilled soldier to stabilize the aim completely

Float

bestDecreaseTime = 0.2;

damageCoef

Importance of damage of entity, multiplier

Float

damageCoef = 10;

fatigueCoef

Importance of fatigue of entity, multiplier

Float

fatigueCoef = 10;

lostTargetCoef

Importance of loosing target event, multiplier

Float

lostTargetCoef = 3;

lostTargetTimeMax

How long error is raising after loosing sight of target

Float

lostTargetTimeMax = 3;

lostTargetTimeMin

How soon after loosing sight of target, error starts to raise

Float

lostTargetTimeMax = 0.5;

maxAngularError

Half of the error cone in radians

Float

maxAngularError = 0.1309;

maxAngularErrorTurrets

Half of the error cone in radians, used for turrets

Float

maxAngularErrorTurrets = 0.0872;

movingInfluence

Importance of moving in algorithm, multiplier

Float

movingInfluence = 1;

shootingInfluence

Importance of shooting in algorithm, multiplier

Float

movingInfluence = 0.4;

suppressionCoef

Importance of suppression value, multiplier

Float

suppressionCoef = 0.5;

turningInfluence

Importance of turning in algorithm, multiplier

Float

turningInfluence = 1;

worstDecreaseTime

How long (in seconds) it should take 0 skilled soldier to stabilize the aim completely

Float

worstDecreaseTime = 2;

AIBrainCountermeasuresComponent

useSmokeGrenadeDelay

Integer

useSmokeGrenadeDelay = 20;

CMCheckDelay

Float

CMCheckDelay = 0.8;

suppressionThreshold

Float

suppressionThreshold = 0.8;

nonLeaderSmokeProbability

Float

nonLeaderSmokeProbability = 0.1;

CMOnTargettedProbability

Float

CMOnTargettedProbability = 0.1;

suppressionTimerMax

Float

suppressionTimerMax = 2;

minimalThrowDistance

Integer

minimalThrowDistance = 900;

minReactionTime

Float

minReactionTime = 0.1;

maxReactionTime

Float

maxReactionTime = 3;

randomReactionTimePercent

Float

randomReactionTimePercent = 0.2;

AIBrainSuppressionComponent

bestDecreaseTime

Float

bestDecreaseTime = 1; // in seconds for 1 skill

causeBulletCloseWeight

Float

causeBulletCloseWeight = 0.5;

causeExplosionWeight

Float

causeExplosionWeight = 0.5;

causeFireWeight

Float

causeFireWeight = 0.5;

causeHitWeight

Float

causeHitWeight = 0.5;

maxSuppression

Float

maxSuppression = 1;

suppressionRange

Integer

suppressionRange = 20;

suppressionThreshold

Float

suppressionThreshold = 0.7;

worstDecreaseTime

Float

worstDecreaseTime = 10;

AI Skill

CfgAILevelPresets

This sets the values for the different presets available in Game Settings, by default there are four classes available:

  • AILevelHigh
  • AILevelMedium
  • AILevelLow
  • Custom

Each of which feature the following properties

displayName

Text displayed in the dropdown menu

String

displayName = "Custom"

precisionAI

Coefficient applied to all accuracy skills

Float

precisionAI = 0.5;

skillAI

Coefficient applied to all utility skills

Float

skillAI = 0.5;

CfgAISkill

aimingAccuracy

Array

aimingAccuracy[] = {0,0,1,1};

aimingShake

Array

aimingShake[] = {0,0,1,1};

aimingSpeed

Array

aimingSpeed[] = {0,0.5,1,1};

commanding

Array

commanding[] = {0,0,1,1};

courage

Array

courage[] = {0,0,1,1};

general

Array

general[] = {0,0,1,1};

reloadSpeed

Array

reloadSpeed[] = {0,0,1,1};

spotDistance

Array

spotDistance[] = {0,0,1,1};

spotTime

Array

spotTime[] = {0,0,1,1};

CfgDifficultyPresets

levelAI

Refers to CfgAILevelPresets

String

levelAI = "AILevelMedium";

CfgWeapons

aiBurstTerminable

Class
ModeClass
Type
Boolean
Description
AI firemode parameter, when true, AI will terminate burst when target is dead or out of sight

aiDispersionCoefX

Type
Float
Description
Dispersion multiplier for AI units (axis X - left to right).

aiDispersionCoefY

Type
Float
Description
Dispersion multiplier for AI units (axis Y - top-down).

aiRateOfFire

Class
ModeClass
Type
Float
Description
Delay between shots at given aiRateOfFireDistance.

aiRateOfFireDistance

Class
ModeClass
Type
Integer
Description
At shorter distance delay (aiRateOfFire) goes linearly to zero.

aiRateOfFireDispersion

Class
ModeClass
Type
Float
Description
Property that affects the randomness of delay between shots. Value sets the maximum of the range in which a random number influencing the delay between shots is generated. 0 means the delay between shots will be the same (with given actual distance). The bigger the value the longer delay can be generated.
// randomized delay after shot
timeToShot = aiRateOfFire + aiRateOfFireDispersion * Random<0,1>

min/mid/maxRange...

Class
ArmaModeClass
Type
Integer
Description
Together with range and rangeProbab values, defines probability to use this weapon for AI units at given distance.

minRange

Type
Integer

minRangeProbab

Type
Float

midRange

Type
Integer

midRangeProbab

Type
Float

maxRange

Type
Integer

maxRangeProbab

Type
Float

showToPlayer

Class
ModeClass
Type
Boolean
Description
Some modes defined for AI usage (e.g. burst modes for full auto weapons) can be hidden from player with this parameter.

CfgVehicles

CfgMoves

variantsAI[]

Type
Array
Description
Found in States when there are several variations on the same animation (usually idles) that can be played randomly.

It lists the animations to be randomly cycled. The numbers represent the probability of that animation being played, the higher the number, the more likely the animation will get to play.

The sum of these numbers is always 1.

//Default
variantsAI[] = {""};    
//AidlPercMstpSnonWnonDnon          
variantsAI[] = {"AidlPercMstpSnonWnonDnon01", 0.01,
    "AidlPercMstpSnonWnonDnon02", 0.01,
    "AidlPercMstpSnonWnonDnon03", 0.01,
    "AidlPercMstpSnonWnonDnon04", 0.01,
    "AidlPercMstpSnonWnonDnon05", 0.01,
    "AidlPercMstpSnonWnonDnon06", 0.01,
    "AidlPercMstpSnonWnonDnon07", 0.01,
    "AidlPercMstpSnonWnonDnon08", 0.01,
    "AidlPercMstpSnonWnonDnon_idleSteady04", 0.23,
    "AidlPercMstpSnonWnonDnon_idleSteady03", 0.23,
    "AidlPercMstpSnonWnonDnon_idleSteady02", 0.23,
    "AidlPercMstpSnonWnonDnon_idleSteady01", 0.23};
//ActsPsitMstpSnonWnonDnon_varSittingOnTheWall
variantsAI[] = {"Mi17_Cargo02", 0.4, "Mi17_Cargo02_V1", 0.1, "Mi17_Cargo02_V2", 0.1, "Mi17_Cargo02_V3", 0.1,
    "Mi17_Cargo02_V4", 0.1, "Mi17_Cargo02_V5", 0.1, "Mi17_Cargo02_V6", 0.1};
//aidlpercmstpsraswlnrdnon_S
variantsAI[] = {"aidlpercmstpsraswlnrdnon_1", 0.333, "aidlpercmstpsraswlnrdnon_2", 0.333, "aidlpercmstpsraswlnrdnon_3", 0.334};

visibleSize

Type
Float
Description
Found in States, probably used for calculating how visible a character is for the AI, based on his stance/animation.
visibleSize = 1.00012;       //SprintBaseDf                  when sprinting more visible than..
visibleSize = 0.700121;      //AmovPercMstpSrasWrflDnon      ..when stopped > visible than..
visibleSize = 0.300122;      //AmovPknlMstpSlowWrflDnon      ..when kneeling > visible than..
visibleSize = 0.100123;      //AmovPpneMstpSrasWrflDnon      ..when prone.

CfgSurfaces

AIAvoidStance

Integer: Allows restricting the AI from entering prone with two levels of emphasis

Value Description
0 No change in behavior
1 Less preference for going prone - avoid prone (unless stealth or suppressed or *)
2 Almost never going prone - never prone (unless *)
* means commanded, injured, animated, forced, ...

grassCover

Float: Reduces visibleSize (taken from CfgMovesBasic) of unit for AI visibility movement computations (cannot make fully invisible) - it is NOT about visual drawing

grassCover = 0;		// Used by GdtStratisConcrete, there will be no simulated grass cover at a distance
grassCover = 0.05;	// Used by GdtStratisGreenGrass, there will be some simulated grass cover at a distance

CfgCloudlets

blockAIVisibility

Sets if particles are in the AI visibility tests (default true) - false for better performance but AI is able to see through particles

Boolean

blockAIVisibility = true;

Template:Cfg ref