AI Skill – Arma 3
Overview
This page contains all information about Arma 3`s artificial intelligence, short AI.
AI Skill
The AI is characterized by a set of sub-skills. Each sub-skill is influence by one of the following:
- Inherited from the value set via setSkill
_unit setSkill 0.8;
- Skill set in Eden Editor
- Exact value set by the setSkill command
_unit setSkill ["reloadSpeed", 0.8];
Each sub-skill is then interpolated with the values set in CfgAISkill.
Addionally the AI skill is also influenced by the global setting in the difficulty menu.
Sub-Skills
Sub-skills are a set of parameters ultimately defining the individual AI unit performance in the game.
aimingAccuracy
- Affects how well the AI can lead a target
- Affects how accurately the AI estimate range and calculates bullet drop
- Affects how well the AI compensates for weapon dispersion
- Affects how much the AI will know to compensate for recoil (Higher value = more controlled fire)
- Affects how certain the AI must be about its aim on target before opening fire
aimingShake
- Affects how steadily the AI can hold a weapon (Higher value = less weapon sway)
aimingSpeed
- Affects how quickly the AI can rotate and stabilize its aim (Higher value = faster, less error)
commanding
- Affects how quickly recognized targets are shared with the group (Higher value = faster reporting)
courage
- Affects unit's subordinates' morale (Higher value = more courage)
endurance
- Disabled in Arma3
general
- Raw "Skill", value is distributed to sub-skills unless defined otherwise. Affects the AI's decision making.
reloadSpeed
- Affects the delay between switching or reloading a weapon (Higher value = less delay)
spotDistance
- Affects the AI ability to spot targets within it's visual or audible range (Higher value = more likely to spot)
- Affects the accuracy of the information (Higher value = more accurate information)
spotTime
- Affects how quick the AI react to death, damage or observing an enemy (Higher value = quicker reaction)
CfgAISkill
CfgAISkill is a set of arrays, related to AI Sub-skills, defining the interpolation curve of each of the sub-skill.
Example
In {w, x, y, z} value from (w,y) gets interpolated into (x,z) spotDistance[] = {0,0.2, 1,0.4}; value in a range 0-1 will change into value in a range 0.2-0.4. setSkill ["spotDistance", 0.5] results in skill "spotDistance" returning 0.3
Notes
More than 2 pairs of defining values can be used (minimum is 2 pairs).
The values are used to interpolate on run-time, so even after setting sub-skill by script command it will be interpolated and bound by this array.
Defaults for Arma 3
aimingAccuracy[] = {0, 0, 1, 1}; aimingShake[] = {0, 0, 1, 1}; aimingSpeed[] = {0, 0.5, 1, 1}; commanding[] = {0, 0, 1, 1}; courage[] = {0, 0, 1, 1}; endurance[] = {0, 0, 1, 1}; general[] = {0, 0, 1, 1}; reloadSpeed[] = {0, 0, 1, 1}; spotDistance[] = {0, 0, 1, 1}; spotTime[] = {0, 0, 1, 1};