Action Executor
v1.0
The Action Executor is the engine of 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 on Objects
An ActionExecutor is a container of actions individually or organized in Action Groups.
Actions are executed in order, with a time gap between based on the "Time Before Next Action" value, which can be 0. When the value is 0, actions are executed on the same frame, though in order.
Each group defines how their actions are executed: in Sequential, Barrier, Race, or Timed.
Sequential — actions run one after another, following the Time Before Next Action values.
Barrier — All actions in the group must complete execution before the group is considered complete.
Race — The group is considered complete when at least one action is complete.
Timed — The group completes after a specific amount of time.
When a group is complete, the executor will move on to the next action or group.

Running Actions
You run the whole sequence via the executor:
Call
actionExecutor.Execute(this);from code.Or let helper components like
ActionOnStart,ActionOnCollision, orActionRunnertrigger the executor automatically.
Action Executors can restart by default, with a cooldown period of 0 seconds. You can toggle "Can Restart" off to disable this, or change the cooldown period which will ensure the executor doesn't restart for a specific amount of time.
When restarting, the actions OnRestart() method will be called, ensuring actions are propertly able to restart without resetting key values like cached base values.
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.
Actions & Action Groups
Each Action and Action Group has additional options.
In the Inspector you can override parameters of specific actions per step — great for reusing a single Action asset in multiple contexts. Each Action will expose the options that you may wish to override. By default, values are set by the Scriptable Object.
Alternatively, you can set specific values on a Scriptable Object for an Action, and use that in your Action Executor list. You can have as many Scriptable Object versions of a single Action as you'd like.

Conditionals
Individual Actions and Action Group can run Conditional check before executing. This is a powerful way to ensure the proper actions execute at the right time based on in-game data and state.
Conditionals✨ 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