# 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="/pages/IEmpnzZYSg6RDdZBeg8e#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>


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://bestway-1.gitbook.io/documentation/animation/animation-system-for-actor/animation-selection-setup/human-specific-conditions.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
