---
name: "Arma 3: AI Skill"
type: topic
aliases: ["AI Sub-skills", "Arma 3 AI Skill", "CfgAISkill"]
source: https://community.bistudio.com/wiki/Arma_3:_AI_Skill
revid: 364214
updated: 2024-05-06T08:54:31Z
---

# Arma 3: AI Skill

> [!NOTE]
> Some information on this page were not confirmed by Bohemia Interactive!

### AI Skill

The AI is characterized by a set of [sub-skills](../topics/AI_Skill.md#sub-skills).
The [final AI skill](../commands/skillFinal.md) is unfluenced by [several factors](../topics/AI_Skill.md#changing-ai-skill).
Additionally each sub-skill is then interpolated with the values set in CfgAISkill.

### Changing AI Skill

#### Players

- As player one can only influence AI skill by changing the global skill settings **Skill** and **Precision**. One has also the option to choose one of the default **AI Levels**.
  - Skill: Influences multiple sub-skills related to the AIs "intelligence". If the value is set too low, the AI will be dumb.
  - Precision: Influences sub-skills related to AIs precision. If the value is set too high, the AI will have a super human precision. Lower values result mostly in interesting fire fights.

> [!NOTE]
> Changing the AI difficulty settings during a scenario will have no effect until the scenario is restarted.

#### Scenario Designers

- A scenario designer has four ways to influence the AI skill:
  - By changing the skill slider in [Eden Editor](../topics/Eden_Editor~3A_Object.md#attributes) for each individual unit.
  - By using functions like [BIS_fnc_EXP_camp_setSkill](../functions/BIS_fnc_EXP_camp_setSkill.md) or [BIS_fnc_EXP_camp_dynamicAISkill](../functions/BIS_fnc_EXP_camp_dynamicAISkill.md) to set the skill of multiple AI entities at once.
  - By using commands like [setSkill](../commands/setSkill.md).
  - By using the **Set Skill** module which allows to change the skill of AI entities for example when a trigger was activated.

#### Modders

- A modder can influence the AI skill by overwriting [CfgAISkill](../topics/AI_Skill.md#cfgaiskill).

#### Server Admins

- Server admins can change the AI skill by changing the **aiLevelPreset** config parameter found in server config. See [Arma 3 Server Profile](../topics/server.armaprofile.md#arma-3) for more information.

### Sub-Skills

Sub-skills are a set of parameters ultimately defining the individual AI unit performance in the game.

| Sub-Skill | Effect | Influence |
|---|---|---|
| aimingAccuracy | - Affects how well the AI can lead a target<br>- Affects how accurately the AI estimate range and calculates bullet drop<br>- Affects how well the AI compensates for weapon dispersion<br>- Affects how much the AI will know to compensate for recoil<br>- Affects how certain the AI must be about its aim on target before opening fire | - Higher value means the AI can lead a target better<br>- Higher value means the Ai can estimate range and calculate bullet drop more precicely<br>- Higher value means the AI can compensate weapon dispersion better<br>- Higher value means the AI can control the recoil better<br>- Higher value means the AI needs to now less to open up fire |
| aimingSpeed | - Affects how quickly the AI can rotate and stabilize its aim | - Higher value means the AI can rotate and stabilize its aim faster |
| commanding | - Affects how quickly recognized targets are shared with the group | - Higher value means the AI can report targets faster |
| courage | - Affects unit's subordinates' morale | - Higher value means the AI has got more courage |
| endurance | - *Disabled in Arma 3* | - *Disabled* |
| 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 means the AI can switch or reload weapons faster |
| spotDistance | - Affects the AI ability to spot targets within it is visual or audible range<br>- Affects the accuracy of the information | - Higher value means the AI is better at spotting targets<br>- Higher value means the AI will collect information about targets more precisely |
| spotTime | - Affects how quick the AI react to death, damage or observing an enemy | - Higher value means the AI will react faster to death, damage or enemies |
| aimingShake | - Affects how steadily the AI can hold a weapon | - Higher value means the AI will be more precise |

### CfgAISkill

CfgAISkill is a set of arrays, related to [Sub-Skills](../topics/AI_Skill.md#sub-skills), defining the interpolation curve of each of the sub-skill.
They can be changed by a mod for example.

#### 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.
- `_unit setSkill ["spotDistance", 0.5];`
  - Results in `_unit skill "spotDistance"` returning *0.3*

> [!NOTE]
> 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.

#### Arma 3 Defaults

##### Table

| Sub-Skill | minInputSkillLimit (w) | resultingSubSkillLowerBoundary (x) | maxInputSkillLimit (y) | resultingSubSkillLowerBoundary (z) |
|---|---|---|---|---|
| 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 |

##### Config

```cpp
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 }; // disabled in Arma 3
general[] = { 0, 0, 1, 1 };
reloadSpeed[] = { 0, 0, 1, 1 };
spotDistance[] = { 0, 0, 1, 1 };
spotTime[] = { 0, 0, 1, 1 };
```

### Related Commands

- [skill](../commands/skill.md)
- [setSkill](../commands/setSkill.md)
- [skillFinal](../commands/skillFinal.md)
- [allowFleeing](../commands/allowFleeing.md)

### External Links

- [BIS Forums AI Skill](https://forums.bohemia.net/forums/topic/219929-the-mystical-skillfinal-formula-reverse-engineering-it/)
- [AI Facts & Myths Compilation List](https://forums.bohemia.net/forums/topic/223493-ai-facts-myths-compilation-list/)

<sub>Source: [BI Community Wiki — Arma 3: AI Skill](https://community.bistudio.com/wiki/Arma_3:_AI_Skill) (revision 364214).</sub>
