# General conditions of Animation Selector

Below are the conditions currently used in the engine. \
However, the engine also supports additional condition types.

{% hint style="info" %}
Conditions used in the editor interface can also be applied in Animation Selector configurations.
{% endhint %}

<table><thead><tr><th width="274.40234375">Condition</th><th>Description</th></tr></thead><tbody><tr><td><code>fsm_tags ["name" ... ]</code></td><td>Checks whether the current FSM state contains the specified tags. The list of valid tags can be found in the FSM configuration files. For human units, these are located in <code>resource\properties\human_fsm\*</code>.</td></tr><tr><td><code>terrain_pp "&#x3C;terrain_type>"</code></td><td>Checks if the unit is located on the specified terrain type. <br>See: <a href="#terrain-type-reference"><strong>Terrain Type reference</strong></a>.</td></tr><tr><td><code>place_mask "&#x3C;mask>"</code></td><td>Checks whether the actor is linked to a place with a name matching the given mask. Wildcard <code>*</code> is supported. If the mask contains no <code>*</code>, the comparison is exact. <br>See: <a href="#actor-to-vehicle-place-linking-reference"><strong>Actor-to-vehicle place linking reference</strong></a>.</td></tr><tr><td><code>linked ["&#x3C;prop>" ... ]</code></td><td>If no properties are specified, checks whether the actor is linked. If properties are listed, checks whether the linked object (via <code>uplink</code>) has the specified tags. Property values can be found in the <code>.def</code>file of the target object.</td></tr><tr><td><code>have_enemy</code></td><td>Returns true if the actor has detected enemies.</td></tr><tr><td><code>movement_mode "&#x3C;mode>"</code></td><td>Checks whether the actor is currently using the specified movement mode. <br>See: <a href="#movement-mode-reference"><strong>Movement mode reference</strong></a>.</td></tr><tr><td><code>throwing_range &#x3C;min> &#x3C;max></code></td><td>Checks if the target is within throwing range. The values are in meters.</td></tr><tr><td><code>cover_type "&#x3C;name>"</code></td><td>Checks whether the unit is currently in a cover of the specified type. <br>See: <a href="#cover-type-reference"><strong>Cover type reference</strong></a>.</td></tr></tbody></table>

<details>

<summary><strong>Terrain Type reference</strong></summary>

In the **Gem RTS** engine, the condition `terrain_pp "<terrain_type>"` uses a predefined set of **Terrain Types**. These are defined in map configurations and influence unit behavior and animation selection (e.g., for walking, cover, vehicle movement, etc.).

* `ground`&#x20;
* `swamp`&#x20;
* `road`&#x20;
* `deep_snow`&#x20;
* `water`&#x20;

</details>

<details>

<summary><strong>Actor-to-vehicle place linking reference</strong></summary>

These are common place names used for linking actors to vehicle or weapon positions:

* `driver`, `driver1`, `driver2` — driver seats
* `commander` — commander seat
* `gunner`, `gunner2`, ... — gunner positions
* `seat1`, `seat2`, ... `seat10` — passenger seats on vehicle hull
* `support1`, `support2` — gun crew positions
* `supportmove1`, `supportmove2` — mobile gun crew positions

</details>

<details>

<summary><strong>Movement mode reference</strong></summary>

Running:

* `slow` — slow run
* `normal` — standard run
* `fast` — fast run
* `bow` — crouch run
* `assault` — assault run

Walking:

* `walk` — standard walk
* `spot` — movement while scanning for targets
* `sneak` — stealth walk with alternate animations

</details>

<details>

<summary><strong>Cover type reference</strong></summary>

* `none` — not in cover
* `look_left`, `look_right`, `look_2way` — vertical covers that allow peeking
* `snipe_cover` — low cover suitable for accurate fire
* `squat_lie` — lying behind a wall
* `hide_stand` — standing cover
* `hide_squat` — crouch cover
* `open_lie` — lying in open terrain
* `terrain_lie` — terrain-based cover (dips, craters)
* `bush_stand`, `bush_squat`, `bush_lie` — cover in bushes (offers no bullet protection)

</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/general-conditions-of-animation-selector.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.
