# Character Interaction Catalog

Level: Reference

This catalog lists the current Flow Character and Flow Interaction authoring surface: asset types, instruction names, condition names, Marker fields, State/Gesture modes, and event payload concepts.

Use this page when you need to check a graph name, compare designer-facing options, or decide where an extension should attach.

Related pages:

* Designer: Flow Character
* Designer: Flow Interaction
* Programmer: Character Interaction Runtime
* Terminology

## Asset Types

| Asset or Component                  | Purpose                                                                                             |
| ----------------------------------- | --------------------------------------------------------------------------------------------------- |
| `Flow Character`                    | Runtime character component used by Character instructions and conditions.                          |
| `FlowCharacterClipStateAsset`       | State asset backed by a specific animation clip.                                                    |
| `FlowCharacterLocomotionStateAsset` | State asset for locomotion-style animation behavior.                                                |
| `FlowCharacterGestureAsset`         | Gesture asset for bounded actions, layered gestures, and Entry/exit segment behavior.               |
| `Flow Interaction Owner`            | Actor-side interaction component that scans, focuses, and interacts with targets.                   |
| `Flow Interaction Target`           | Target-side interaction component that registers as a candidate and receives focus/interact events. |

Scene creation menus:

* `GameObject/Flow Core/Flow Player`
* `GameObject/Flow Core/Flow NPC`
* `GameObject/Flow Core/Flow Interaction Target`

Character asset menus:

* `Flow Core/Character/Clip State`
* `Flow Core/Character/Locomotion State`
* `Flow Core/Character/Gesture`

## Shared Animation Settings

These settings exist on State assets and Gesture assets.

| Setting     | Meaning                                                                                                |
| ----------- | ------------------------------------------------------------------------------------------------------ |
| AvatarMask  | Limits the animation layer to selected bones. Empty means whole body.                                  |
| Blend Mode  | `Override` replaces lower pose data; `Additive` adds on top of lower pose data.                        |
| Delay       | Seconds before the layer starts contributing weight.                                                   |
| Speed       | Playback speed multiplier for the layer.                                                               |
| Weight      | Target layer weight after blending.                                                                    |
| Blend In    | Seconds used to fade in.                                                                               |
| Blend Out   | Seconds used to fade out.                                                                              |
| Root Motion | Allows animation root motion to feed the Character driver when the Character animation units allow it. |

## State Settings

| State Type       | Settings                                                                                                       |
| ---------------- | -------------------------------------------------------------------------------------------------------------- |
| Clip State       | Animation Settings, Clip, Lifecycle Enter, Lifecycle Exit, Motor Overrides, Event Graph.                       |
| Locomotion State | Animation Settings, Movement Clips, Jump Clips, Lifecycle Enter, Lifecycle Exit, Motor Overrides, Event Graph. |

Clip State uses one main Clip Track. Locomotion State uses multiple Clip Tracks and blends them from local planar movement.

## Locomotion State Tracks

| Track or Setting   | Meaning                                                                |
| ------------------ | ---------------------------------------------------------------------- |
| Idle               | Track used when local planar movement is low.                          |
| Forward            | Track used for forward local movement.                                 |
| Backward           | Track used for backward local movement.                                |
| Left               | Track used for left local movement.                                    |
| Right              | Track used for right local movement.                                   |
| Forward Left       | Optional diagonal track.                                               |
| Forward Right      | Optional diagonal track.                                               |
| Backward Left      | Optional diagonal track.                                               |
| Backward Right     | Optional diagonal track.                                               |
| Use Diagonal Clips | Allows diagonal tracks to contribute to locomotion blending.           |
| Full Speed         | Local planar speed that represents full locomotion weight.             |
| Jump Enter         | Overlay track for the default jump-enter phase.                        |
| Air Jump Enter     | Overlay track for air-jump-enter; falls back to Jump Enter when empty. |
| Jump               | Looping overlay track for the jump phase.                              |
| Jump Exit          | Overlay track for the jump-exit phase.                                 |

## Gesture Settings

| Setting            | Meaning                                                                                             |
| ------------------ | --------------------------------------------------------------------------------------------------- |
| Tag                | Optional group name used by conflict and stop rules.                                                |
| Priority           | Sorts active Gesture layers and participates in motor override ordering. Higher values layer later. |
| Animation Settings | Shared animation settings used by Entry, Main, and Exit.                                            |
| Entry              | Optional Clip Track played before Main.                                                             |
| Main               | Primary Clip Track for the Gesture.                                                                 |
| Exit               | Optional Clip Track played when the Gesture exits.                                                  |
| Motor Overrides    | Fixed movement/control overrides applied while the Gesture is active.                               |
| Event Graph        | Graph receiving Gesture animation events and Marker payload.                                        |

## Clip Track Settings

Clip Track appears in Clip State, Locomotion State, State lifecycle tracks, and Gesture segments.

| Setting              | Meaning                                                                                                                             |
| -------------------- | ----------------------------------------------------------------------------------------------------------------------------------- |
| Clip                 | Animation clip played by the track. Empty skips the track.                                                                          |
| Loop                 | Repeats the clip while the track remains active.                                                                                    |
| Use Speed Curve      | Enables Speed Curve evaluation for this track.                                                                                      |
| Speed Curve          | Playback multiplier by normalized time. X is normalized time 0..1; Y is clamped by `CharacterAnimationSpeedCurveMinimumMultiplier`. |
| Markers              | Marker list fired while the track plays.                                                                                            |
| Clip Motor Overrides | Track-level movement/control overrides and normalized-time multiplier curves.                                                       |

The default Speed Curve is flat: 1 at normalized time 0 and 1 at normalized time 1.

## Asset-Level Motor Overrides

Asset-level `Motor Overrides` belong to the whole active State or Gesture. They are fixed values, not normalized-time curves.

| Field          | Meaning                            |
| -------------- | ---------------------------------- |
| Move Speed     | Linear movement speed.             |
| Rotation Speed | Angular turning speed.             |
| Acceleration   | Movement acceleration.             |
| Deceleration   | Movement deceleration.             |
| Air Drag       | Airborne damping.                  |
| Gravity        | Gravity value.                     |
| Jump Force     | Jump impulse.                      |
| Can Move       | Whether movement is allowed.       |
| Can Jump       | Whether jump requests are allowed. |

Each field has an Override toggle. A value is ignored unless its matching Override toggle is enabled.

## Clip Motor Overrides

Clip-level `Clip Motor Overrides` belong to a specific Clip Track. They participate only while that track contributes animation.

| Field          | Value Shape                    | Meaning                                                    |
| -------------- | ------------------------------ | ---------------------------------------------------------- |
| Enable         | Bool                           | Enables the Clip Motor Overrides group.                    |
| Move Speed     | Float value + Multiplier Curve | Evaluates as `Value * Multiplier Curve`.                   |
| Rotation Speed | Float value + Multiplier Curve | Evaluates as `Value * Multiplier Curve`.                   |
| Acceleration   | Float value + Multiplier Curve | Evaluates as `Value * Multiplier Curve`.                   |
| Deceleration   | Float value + Multiplier Curve | Evaluates as `Value * Multiplier Curve`.                   |
| Air Drag       | Float value + Multiplier Curve | Evaluates as `Value * Multiplier Curve`.                   |
| Gravity        | Float value + Multiplier Curve | Evaluates as `Value * Multiplier Curve`.                   |
| Jump Force     | Float value + Multiplier Curve | Evaluates as `Value * Multiplier Curve`.                   |
| Can Move       | Bool value                     | Uses the configured value while the override participates. |
| Can Jump       | Bool value                     | Uses the configured value while the override participates. |

Each motor field also has its own Override toggle. The group Enable toggle and the field Override toggle must both be enabled.

`Flow Core Settings` contains `CharacterAnimationSpeedCurveMinimumMultiplier`, which limits the minimum playback multiplier used by Speed Curve. The built-in default is `0.01`.

## Character Instructions

| Instruction                       | Typical Use                             |
| --------------------------------- | --------------------------------------- |
| `Character Enter State`           | Start or switch a sustained State.      |
| `Character Stop State`            | Stop an active State.                   |
| `Character Change State Weight`   | Adjust State blending weight.           |
| `Character Play Gesture`          | Play a bounded Gesture.                 |
| `Character Stop Gesture`          | Stop an active Gesture.                 |
| `Character Move To`               | Move toward a world position or target. |
| `Character Move Direction`        | Apply directional movement input.       |
| `Character Stop`                  | Stop movement.                          |
| `Character Teleport`              | Move immediately to a position.         |
| `Character Face Direction`        | Rotate toward a direction.              |
| `Character Face Target`           | Rotate toward a target.                 |
| `Character Clear Face Target`     | Clear current face target behavior.     |
| `Character Jump`                  | Request a jump.                         |
| `Character Set Controllable`      | Enable or disable player/control input. |
| `Character Set Alive/Dead`        | Change alive state.                     |
| `Character Set Busy/Available`    | Change character-wide busy state.       |
| `Character Set Busy Limb`         | Mark a limb route as busy or available. |
| `Character Set Movement Property` | Change a movement tuning property.      |
| `Character Set Movement Enabled`  | Enable or disable movement.             |
| `Character Wait For Arrival`      | Wait until movement arrival.            |
| `Character Wait For Grounded`     | Wait until grounded.                    |
| `Character Set IK Enabled`        | Enable or disable IK behavior.          |
| `Character Set IK Look Target`    | Set an IK look target.                  |
| `Character Clear IK Look Target`  | Clear the IK look target.               |

## Character Conditions

| Condition                        | Typical Use                                           |
| -------------------------------- | ----------------------------------------------------- |
| `Character Is Alive`             | Gate logic by alive/dead state.                       |
| `Character Is Player`            | Branch player and non-player behavior.                |
| `Character Has State`            | Check if a State is active.                           |
| `Character Has Gesture`          | Check if a Gesture is active.                         |
| `Character Animation Event Type` | Filter animation event payload by event type.         |
| `Character Animation Marker`     | Filter animation event payload by Marker route or Id. |
| `Character Is Grounded`          | Check grounded state.                                 |
| `Character Has Arrived`          | Check movement arrival.                               |
| `Character Is Moving To`         | Check active move-to behavior.                        |
| `Character Can Move`             | Check movement availability.                          |
| `Character Can Jump`             | Check jump availability.                              |
| `Character Is Busy`              | Check character-wide busy state.                      |
| `Character NavMesh Path`         | Check navigation path state.                          |
| `Character IK Enabled`           | Check whether IK is enabled.                          |
| `Character IK Foot Grounded`     | Check foot grounding state for IK.                    |

## Flow Interaction Instructions

| Instruction                                   | Typical Use                                   |
| --------------------------------------------- | --------------------------------------------- |
| `Flow Interaction Owner Interact`             | Interact with the currently selected target.  |
| `Flow Interaction Owner Interact With Target` | Interact with a specific target.              |
| `Flow Interaction Owner Set Target`           | Force an explicit target.                     |
| `Flow Interaction Owner Clear Target`         | Clear the current target.                     |
| `Flow Interaction Owner Set Can Interact`     | Enable or disable owner interaction.          |
| `Flow Interaction Owner Get Target`           | Read the current target.                      |
| `Flow Interaction Owner Get Candidate Count`  | Read how many candidates are available.       |
| `Flow Interaction Owner Set Mode`             | Change target selection mode.                 |
| `Flow Interaction Owner Set Scan Property`    | Change scan settings such as range or angle.  |
| `Flow Interaction Target Interact By Owner`   | Run target interaction from a specific owner. |
| `Flow Interaction Target Show Canvas`         | Show target canvas feedback.                  |
| `Flow Interaction Target Hide Canvas`         | Hide target canvas feedback.                  |
| `Flow Interaction Target Set Canvas Visible`  | Set target canvas visibility directly.        |
| `Flow Interaction Target Set Float Property`  | Change a target float property.               |
| `Flow Interaction Target Set Position Offset` | Change target position offset.                |
| `Flow Interaction Target Set Can Interact`    | Enable or disable target interaction.         |

## Flow Interaction Conditions

| Condition                                            | Typical Use                                                 |
| ---------------------------------------------------- | ----------------------------------------------------------- |
| `Flow Interaction Owner Can Interact`                | Check owner-level interaction availability.                 |
| `Flow Interaction Owner Can Interact Now`            | Check owner, target, and current relationship together.     |
| `Flow Interaction Owner Can Interact With Target`    | Check whether an owner can interact with a specific target. |
| `Flow Interaction Owner Has Target`                  | Check if the owner currently has a target.                  |
| `Flow Interaction Owner Target Is`                   | Compare the current target.                                 |
| `Flow Interaction Owner Has Candidates`              | Check candidate availability.                               |
| `Flow Interaction Target Can Interact`               | Check target-level interaction availability.                |
| `Flow Interaction Target Canvas Visible`             | Check target canvas feedback visibility.                    |
| `Flow Interaction Target Can Be Interacted By Owner` | Check whether a target accepts a specific owner.            |
| `Flow Interaction Event Type Is`                     | Filter interaction event payload by event type.             |
| `Flow Interaction Event Side Is`                     | Filter interaction event payload by owner or target side.   |
| `Flow Interaction Event Owner Is`                    | Compare the event owner.                                    |
| `Flow Interaction Event Target Is`                   | Compare the event target.                                   |

## Marker Fields

| Field            | Meaning                                                                                               |
| ---------------- | ----------------------------------------------------------------------------------------------------- |
| Normalized Time  | The position in the animation clip, from 0 to 1.                                                      |
| Limb             | Semantic route such as `LeftFoot`, `RightFoot`, `LeftHand`, `RightHand`, `Head`, or `Custom`.         |
| Id               | Custom route name used when Limb is `Custom`.                                                         |
| Cooldown Mode    | Controls whether repeated matching is disabled, uses the default cooldown, or uses a custom cooldown. |
| Cooldown Seconds | Custom cooldown duration when Cooldown Mode is set to custom.                                         |
| Comment          | Editor-facing note for designers and programmers.                                                     |

Marker is not only a raw animation event. It is a small semantic routing record. The same graph can react to `LeftFoot`, `RightFoot`, or a custom Id such as `Hit`, `Release`, `Reload`, `Grab`, or `Land` across many clips.

## State and Gesture Event Modes

Common Character animation event concepts:

* `Enter`: the State or Gesture has started.
* `Refresh`: a sustained animation state has been refreshed.
* `Marker`: a Marker route matched an animation event.
* `ExitBegin`: exit handling has started.
* `ExitEnd`: exit handling has finished.
* `Interrupted`: the current animation behavior was stopped before normal completion.
* `Complete`: the Gesture or State finished normally.

State authoring is usually best for sustained identity. Gesture authoring is usually best for bounded action. A Gesture can use Entry and exit segments when the action needs a clear wind-up or recovery instead of one uninterrupted clip.

## Gesture Conflict Modes

Gesture conflict handling is used when a new Gesture would overlap an existing one.

| Mode           | Meaning                                                     |
| -------------- | ----------------------------------------------------------- |
| `StopNone`     | Allow the new Gesture without stopping existing gestures.   |
| `StopSameTag`  | Stop existing gestures with the same tag.                   |
| `StopSameMask` | Stop existing gestures that overlap the same mask or route. |
| `StopAll`      | Stop all existing gestures before playing the new one.      |

Choose the smallest mode that expresses the intended gameplay. For example, a face emote should usually not stop a full-body dodge, but a two-handed attack may need to stop other upper-body gestures.

## Interaction Event Concepts

Interaction events commonly separate three meanings:

* Focus: the owner has selected or hovered a target.
* Blur: the owner has left or lost a target.
* Interact: the owner has requested interaction.

Interaction event side separates where the event graph is running:

* Owner side: logic that belongs to the actor.
* Target side: logic that belongs to the object being interacted with.

Use owner-side logic for player or NPC behavior. Use target-side logic for object behavior such as opening a chest, playing a prompt, starting a dialogue, or consuming a pickup.


---

# 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://flow-core.gitbook.io/flow-core-docs/documentation/reference/character-interaction-catalog.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.
