# Plugins

### Introduction

The **Plugins** **Nodes** appear once a **Logic Plugin** is activated. This process will be described in detail. They allow users to customize their **Logic**.

**Logic Plugins** allow the user to add their own customized **Nodes** to their **Projects**, expanding the capabilities of **Incari**. Below is just one example which ultimately provides one **Node** at the end of the process.

## Example

The example **Logic Plugin** is shipped with **Incari** and includes one **Node**: the [**Scale Vector Node**](https://docs.incari.com/incari-studio/2024.1/toolbox/plugins/jsonscalevector). This **Node** appears after a particular process. The user requires access to the *Windows PowerShell* and the folder in which their **Incari Studio** appears, along with all its files. The user will also need to install [*CMake*](https://cmake.org/) and make sure it is added to PATH upon installation.

After clicking on the **Incari Studio** folder, its files should look something like this:

![Incari Studio Folder Example.](https://4263346935-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FLnh3x8s9fddWeG8TaAug%2Fuploads%2Fgit-blob-03068dd75d6a74d75a5fcc664b81f6d4de2053bc%2Flogicplugin1.png?alt=media)

Locate the `PluginExample` folder within the `sdk` folder. If you do not have administrative privileges, copy that to a folder where you have all permissions, such as `Documents`.

This is necessary if the user does not have permission to write to `C:/Program Files`. If the user has administrative rights and can use these when using the *Windows PowerShell* (more on that below), they do not have to copy anything over to `Documents` (or some other folder where they have permissions) and can follow this process in place. Similarly, if **Incari Studio** was installed somewhere that a non-administrative user has rights to, like the `Documents` folder, everything can be done in place as well.

![Locating and Copying the PluginExample Folder.](https://4263346935-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FLnh3x8s9fddWeG8TaAug%2Fuploads%2Fgit-blob-50915790c90258eb97c66faca7ccc53ea7bf135f%2Fpluginsgif1.gif?alt=media)

Once that is done, open the *Windows PowerShell* and choose the file path pointing to the `PluginExample\build` in `Documents` (or the folder where the files were copied to) as directory. This can be done by using the command `cd <directory>`, where `<directory>` is the location of the `build` folder.

Next, the user must use the following command:

`cmake .. -G "Visual Studio 17 2022" -A x64 -DINCARI_DIR="<file-path>"`

Here, copy everything exactly and replace `<file-path>` with the installation path of **Incari Studio**. This will likely be in the `Program Files` folder on your *Windows* device.

The resulting output of the above command is as follows:

![Output of First CMake Command.](https://4263346935-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FLnh3x8s9fddWeG8TaAug%2Fuploads%2Fgit-blob-310c6530817d4e9a0f3642d901bd1ba26e16f97f%2Flogicplugin3.png?alt=media)

The second crucial command to run is:

`cmake --build . --config Release`

When this command has finished running, the user can check back in the `PluginExample` folder that everything executed properly.

![Checking for output Folder.](https://4263346935-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FLnh3x8s9fddWeG8TaAug%2Fuploads%2Fgit-blob-89e72f29e1ac3aef8d5e6d2f8b2d04a837a54bae%2Flogicplugin4.png?alt=media)

The contents of the `output` folder (`plugins`) needs to be copied into the installation folder of the user's **Incari Studio**. Please note that elevated rights might be required to do so (depending on the actual installation path).

![Copying the output Folder to the plugins Folder.](https://4263346935-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FLnh3x8s9fddWeG8TaAug%2Fuploads%2Fgit-blob-e0cbea41422584cd88642c5da572f154c824f00c%2Fpluginsgif2real.gif?alt=media)

Now it's time to open **Incari Studio**. When it's up and running, the user can check that the **Plugins** and the **Logic Editor** have the new data created during the previous process.

![Logic in Plugins.](https://4263346935-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FLnh3x8s9fddWeG8TaAug%2Fuploads%2Fgit-blob-8a5c384d6f5c60eac7eb069a450c65af0b2dbbab%2Flogicpluginresultplugins.png?alt=media)

![New Node in Logic Editor.](https://4263346935-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FLnh3x8s9fddWeG8TaAug%2Fuploads%2Fgit-blob-e38176cdb5d0045f04c01943952e0e0985e79968%2Flogicpluginresultnode.png?alt=media)

Following this process, the user will have successfully added the example **Plugin** to **Incari**. This **Plugin** includes the [**Scale Vector Node**](https://docs.incari.com/incari-studio/2024.1/toolbox/plugins/jsonscalevector)

### Contents

* [**(JSON) Scale Vector**](https://docs.incari.com/incari-studio/2024.1/toolbox/plugins/jsonscalevector)
