# Action Manager

<div align="left"><figure><img src="https://3303637552-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FOAGs3il6rJbkejwPOlEP%2Fuploads%2FT1dlVEDhpsXRenmzZOzK%2FActorComponent_64x.png?alt=media&#x26;token=9125c0e5-7a8a-4ad4-9af0-f701f19c99d5" alt=""><figcaption></figcaption></figure></div>

The **Action Manager (AC\_ActionManager)** is responsible for managing, tracking, and executing all player actions. At runtime, it spawns and initializes action objects, providing a centralized system to find and execute actions dynamically.

It is added to the **Character** class by default **(B\_Soulslike\_Character).**

### **How It Works**

1. **Action Registration**:
   * At runtime, all relevant Actions (e.g., Attack, Dodge, Jump, etc.) are registered and initialized as UObject-based instances.
   * Actions are stored in a map for quick lookup through the usage of Gameplay Tags.
2. **Performing Actions**:
   * When an action is requested (through the **Input Buffer**), the Action Manager looks up the incoming Action in its map.
   * Calls the `ExecuteAction()` method in the found action object, triggering the action's specific behavior.
3. **Action State Management**:

   * Ensures that only valid actions can execute (e.g., preventing a dodge during an attack unless queued).

   <figure><img src="https://3303637552-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FOAGs3il6rJbkejwPOlEP%2Fuploads%2F4bu7e4IsMwTzapQCBkIk%2Fimage.png?alt=media&#x26;token=751c6a2a-ca2c-4bd7-a5f9-6b3dc98a62a8" alt=""><figcaption></figcaption></figure>

### See Next: [How to Create/Edit Actions?](https://soulslike-framework.isik.vip/workflow/editor)
