> 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/integrations/game-modules-4.md).

# Game Modules 4

v1.0

This is an integration with [**Game Modules 4**](/magic-pig-games/game-modules-4.md), an extremely flexible and extensible data management & toolset framework.

Integrating <mark style="color:blue;">**Game Modules 4**</mark> with <mark style="color:yellow;">**Juicy Actions**</mark> adds additional actions that specifically work with <mark style="color:blue;">**Game Modules 4**</mark>. We will also discuss how to utilize data from <mark style="color:blue;">Stats</mark> and other **Game Modules 4** with the <mark style="color:yellow;">Conditionals</mark> in <mark style="color:yellow;">**Juicy Actions**</mark>, and more.

## Installation

Install <mark style="color:blue;">**Game Modules 4**</mark> from Package Manager.

Find the "*GameModules4Integration*" .unitypackage in `Juicy Actions/Integrations`. Extract that into your project.

{% hint style="info" %}
**Developers Note:**

There are a number of <mark style="color:yellow;">Actions</mark> that target `Stat`, `ItemObject`, `ItemAttribute`, and `Condition` objects. However, I believe that the built-in methods of handling these objects are likely more efficient. There could be some cases where using <mark style="color:yellow;">Juicy Actions</mark> to handle them is ideal, so they are created and included.

The most valuable part of the integration, in my view, is likely the use of <mark style="color:yellow;">Conditionals</mark> to execute actions based on <mark style="color:blue;">Game Modules 4</mark> data, such as the `Stat` value etc.
{% endhint %}

## Action On Events

We have provided a single <mark style="color:blue;">Game Modules 4</mark> based "Action On ..." classes which execute actions automatically: <mark style="color:yellow;">Action On Game Modules Blackboard</mark>.

It is entirely possible that you will want to create <mark style="color:yellow;">Juicy Actions</mark> when certain things occur, such as stats being improved (perhaps "*Hit Points*" or "*Level*") or conditions being added or removed. There are likely thousands of valid use cases here. However, each project is likely different from the rest, and there are no good wide-ranging use cases for specific "*Action On Condition*" classes.

The new `ActionOnGameModulesBlackboard` component, along with the existing [Action on Events & Action Runner](/magic-pig-games/juicy-actions/action-on-events-and-action-runner.md) classes are more than suitable to handle any situation that the <mark style="color:blue;">Game Modules 4</mark> integration may call for.

For example, using the <mark style="color:yellow;">Action Runner</mark> component with the *auto-start* and *auto-restart* values `false` is a great way to execute actions whenever you want to in your code, based on things like a special weapon being equipped, or a <mark style="color:blue;">Condition</mark> being added.

### Action On Game Modules Blackboard

{% content-ref url="/pages/MqvVW7LnmMhvU1QCwoUb" %}
[Conditionals from Game Modules 4 Data](/magic-pig-games/juicy-actions/integrations/game-modules-4/conditionals-from-game-modules-4-data.md)
{% endcontent-ref %}
