Action Executor

v1.0

The Action Executor is the heart of the Juicy Actions. It is the component that holds and runs your sequences of actions. You’ll typically add it to any GameObject where you want actions to play out — whether that’s a character, an effect spawner, or a UI element.

Defining Actions

An ActionExecutor is essentially a container of Action Groups and Actions. Each group defines how its actions are executed: in Serial, Parallel, Race, or Barrier mode.

  • Serial – actions run one after another.

  • Parallel – actions run at the same time.

  • Race – multiple actions start together, the first to complete ends the group.

  • Barrier – all actions must complete before continuing.

In this example from the demo scene, the Character class has two ActionExecutor fields, one for onHit and one for onDeath.

Running Actions

You run the whole sequence via the executor:

  • Call ExecuteActions() from code.

  • Or let helper components like ActionOnStart, ActionOnCollision, or ActionRunner trigger the executor automatically.

[IMAGE] – Example: ActionOnStart with an ActionExecutor field


Overrides & Flexibility

In the inspector you can override parameters of specific actions per step — great for reusing a single Action asset in multiple contexts.

For example, you might reuse the same “Play Sound” action but override the audio clip per step.

[IMAGE] – Inspector showing override fields per action step


Integration with the Global Clock

All executors automatically use the ActionSystemClock (lazy-loaded global clock). This means actions can:

  • Pause/resume with one call.

  • Run in slow motion or fast-forward.

  • Be bridged to your game’s own time system, if you already have one.


✨ In summary: ActionExecutor gives you a visual, configurable way to define sequences of reusable actions, and to trigger them either from code or via event-based components.

Last updated

Was this helpful?