> For the complete documentation index, see [llms.txt](https://docs.bestway.com.ua/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.bestway.com.ua/animation/animation-system-for-actor/animation-selection-setup/human-specific-conditions.md).

# Human-specific conditions

The following conditions are used in the Animation Selector specifically for actors of type `human`.

<table><thead><tr><th width="387.65625" valign="top">Condition</th><th>Description</th></tr></thead><tbody><tr><td valign="top"><code>human_fsm_semaphore "&#x3C;name>"</code></td><td><p>Checks whether the specified semaphore is currently active.</p><p>See: <a href="/animation/animation-system-for-actor/animation-selection-setup/configuring-idle-for-human-actor.md#semaphores-in-the-idle-request-selector"><strong>Semaphore documentation</strong></a></p></td></tr><tr><td valign="top"><code>human_fsm_state "&#x3C;state_name>"</code></td><td>Checks whether the current FSM state matches the specified one. Registered FSM state names can be found in FSM definitions (<code>state</code> blocks).</td></tr><tr><td valign="top"><code>human_kill_flags "&#x3C;kill_flag_name>" [...]</code></td><td>Checks whether all listed kill flags are active for the <code>human</code> actor.<br>See: <a href="#kill-flags-reference"><strong>Kill flags reference</strong></a>.</td></tr><tr><td valign="top"><code>human_fsm_counter</code></td><td>Checks the value of an FSM counter for a <code>human</code> actor.<br>See: <a href="#conditions-for-checking-fsm-counters"><strong>FSM counters reference</strong></a>.</td></tr><tr><td valign="top"><code>human_hold_strap</code></td><td>Checks whether the unit needs to hold the strap of a weapon slung over their back.</td></tr><tr><td valign="top"><code>human_throw_type</code></td><td>Checks which grenade throwing method has been selected.<br>See: <strong>Grenade throw types</strong>.</td></tr><tr><td valign="top"><code>human_stuff [holding | mounting | picking] "&#x3C;item_type>"</code></td><td><p>Checks the unit’s interaction with the specified items at the current moment:</p><ul><li><code>holding</code> — the item is currently held in hands</li><li><code>mounting</code> — the item is being equipped</li><li><code>picking</code> — the item is being picked up from the ground</li></ul><p>The item type is determined by the <code>props</code> names defined in the item’s <code>.def</code> file.<br>Multiple item types can be checked simultaneously.<br>See: <a href="#item-type-to-props-mapping"><strong>Item type to props mapping</strong></a></p></td></tr></tbody></table>

<details>

<summary>Item type to props mapping</summary>

| Item type | Properties names (props)   | Description                       |
| --------- | -------------------------- | --------------------------------- |
| `nothing` | —                          | Unit is holding nothing           |
| `bazooka` | `weapon`, `rocketlauncher` | Shoulder-fired rocket launcher    |
| `mgun`    | `weapon`, `mgun`           | Machine gun                       |
| `smg`     | `weapon`, `smg`            | Submachine gun                    |
| `rifle`   | `weapon`, `rifle`          | Rifle                             |
| `pistol`  | `weapon`, `pistol`         | Pistol                            |
| `flamer`  | `weapon`, `flame_thrower`  | Flamethrower                      |
| `small`   | `smallitemin1hand`         | Small item, e.g., a grenade       |
| `1hand`   | `itemin1hand`              | One-handed item, e.g., a canister |
| `2hands`  | `itemin2hands`             | Two-handed item, e.g., a crate    |
| `body`    | `human`                    | Corpse                            |
| `flag`    | `flag`                     | Flag                              |

</details>

<details>

<summary>Kill flags reference</summary>

<table><thead><tr><th width="160.14453125">Flag</th><th width="449.42578125">Description</th></tr></thead><tbody><tr><td><code>front</code></td><td>Killed from the front</td></tr><tr><td><code>back</code></td><td>Killed from behind</td></tr><tr><td><code>blast</code></td><td>Killed by explosion</td></tr><tr><td><code>piercing</code></td><td>Killed by bullet</td></tr><tr><td><code>go</code></td><td>The soldier was moving</td></tr><tr><td><code>run</code></td><td>The soldier was running</td></tr><tr><td><code>cover_in_trench</code></td><td>The soldier was in a trench in <code>snipe</code> state<br>⚠️ Note: The standard <code>linked</code> check won’t work here because at the moment of death, the unit is already unlinked.</td></tr></tbody></table>

</details>

#### Conditions for checking FSM counters

> **FSM counter condition syntax**
>
> ```
> if human_fsm_counter <name> [inc|get|once] <value> of <loop_number>
> ```
>
> Where:
>
> * `<name>` — the name of the counter
> * The available check modes are:
>   * `inc` — increment the counter by 1 and compare it to `<value>`
>   * `get` — check the current value without changing it
>   * `once` — return `true` if the counter value is greater than 0, and reset it to 0

<details>

<summary>FSM counter names for <code>human</code> actors</summary>

* `knife` — knife throw
* `down` — going prone
* `alert` — dodge from grenade
* `pose` — pose selection
* `forced_smoke` — smoking request triggered by script

</details>

<details>

<summary><strong>Examples:</strong> FSM counter check</summary>

```
{if human_fsm_counter "down" inc 0 of 2 [...]}
{if human_fsm_counter "down" get 0 of 2 [...]}
```

</details>
