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?