> For the complete documentation index, see [llms.txt](https://infinitypbr.gitbook.io/magic-pig-games/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://infinitypbr.gitbook.io/magic-pig-games/juicy-actions/actions.md).

# Actions

There are ***hundreds*** of <mark style="color:yellow;">Actions</mark> available out of the box, and it is extremely easy for you (or your favorite AI) to write new <mark style="color:yellow;">Actions</mark>, including custom <mark style="color:yellow;">Actions</mark> that target your custom classes. There are also additional classes which you can inherit from to have pre-built logic and options, keeping standardized features between <mark style="color:yellow;">Actions</mark>.

## Common <mark style="color:yellow;">Action</mark> Types

All <mark style="color:yellow;">Actions</mark> must inherit from Action.cs or a child class. In order to ensure a standard UX and logic between so many different <mark style="color:yellow;">Actions</mark>, we've created standard child classes that bring specific fields and methods to individual <mark style="color:yellow;">Actions</mark>. If you [Write Custom Actions](/magic-pig-games/juicy-actions/actions/write-custom-actions.md), you can utilize this to save time and ensure your <mark style="color:yellow;">Actions</mark> have the same general logic and features as the rest.

### Instant Action

Inherit from `InstantAction.cs` for any <mark style="color:yellow;">Action</mark> that does something instantly. These do not happen over time.

### Action Over Time

Any action that can do something over a period of time can inherit from `ActionOverTime.cs`. This exposes a duration field and an `AnimationCurve` to be optionally used by your <mark style="color:yellow;">Action</mark>.

{% hint style="info" %}
See the [Action Over Time Standards](/magic-pig-games/juicy-actions/actions/action-over-time-standards.md) for details on the common logic and options that you'll find for all <mark style="color:yellow;">Actions</mark> which inherit from `ActionOverTime` or `ActionOverTimeWithBaseValue`.
{% endhint %}

### Action Over Time With Base Value

Many `ActionOverTime` <mark style="color:yellow;">Actions</mark> may require the option to revert to the base value after the duration has expired. Inherit from `ActionOverTimeWithBaseValue.cs` to add additional fields and functionality.

### Action With Forced Time Until Next Action

Less common, `ActionWithForcedTimeUntilNextAction.cs` <mark style="color:yellow;">Actions</mark>, like `WaitAction` or `WaitForBlackboardEvent` action will force the Action Executor to hold until they release.

```
ActionWithForceTimeUntilNextAction
```

{% hint style="info" %}
See full details on creating custom <mark style="color:yellow;">Actions</mark>: [Write Custom Actions](/magic-pig-games/juicy-actions/actions/write-custom-actions.md)
{% endhint %}
