> For the complete documentation index, see [llms.txt](https://docs.incari.com/incari-studio/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.incari.com/incari-studio/2021.4/toolbox/functions/function.md).

# Function

## Overview

![The Function Node.](/files/H9h7kwcVg5vknV9PE0We)

The **Function** **Node** is customized by the user. The number and **Data Types** of the **Input** and **Output** **Sockets** and the functionality are defined in the **Node's** own **Logic**, which is accessed by either double clicking the **Node's** or the **Function** on the **Function's** list.

The **Node's** **Logic** has two special **Nodes**: [**Function Input**](/incari-studio/2021.4/toolbox/functions/function/function-input.md) and [**Function Output**](/incari-studio/2021.4/toolbox/functions/function/function-output.md).

**Functions** can be exported and then imported in a different **Project**.

## Inputs

| Input                 | Type                                           | Description                                                           |
| --------------------- | ---------------------------------------------- | --------------------------------------------------------------------- |
| *Pulse Input* (►)     | **Pulse**                                      | A standard **Input Pulse**, to trigger the execution of the **Node**. |
| `Input Parameter [n]` | *Defined in the **Function Input*** ***Node*** | Parameter received by the **Function**.                               |

## Outputs

| Output                 | Type                                            | Description                                                                                                                            |
| ---------------------- | ----------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------- |
| *Pulse Output* (►)     | **Pulse**                                       | A standard **Output Pulse**, to move onto the next **Node** along the **Logic Branch**, once this **Node** has finished its execution. |
| `Output Parameter [n]` | *Defined in the **Function Output*** ***Node*** | Parameter returned by the **Function**.                                                                                                |

## Creating a Function

To add a **Function**, *click* on the add icon on the top left of the **Functions** tab on the left panel of the **Logic Editor** and type in the desired name of the **Function**. Then, to open the **Function's** **Logic Graph**, *double-click* on the **Function** **Node**. There, the **Logic** of the **Function** can be defined.

See an example in the image below.

![](/files/G7o2ZhAdcUbwmVLKdBj5)

## Exporting and Importing a **Function**

For exporting a **Function**, *right-click* it on the **Function's** list or on the **Node**, select Export and save the **Blueprints** file.

![](/files/gLtbxjA4gNRsYI0Jeopg)

![](/files/NroGdGsxfLoSVdFXy2LM)

For importing a **Function**, *right-click* on the **Function's** list or on the **Logic Graph**, select Import, and find the **Blueprints** file.

## See Also

* [**Logic Editor**](/incari-studio/2021.4/modules/logic-editor.md)
* [**Function Input**](/incari-studio/2021.4/toolbox/functions/function/function-input.md)
* [**Function Output**](/incari-studio/2021.4/toolbox/functions/function/function-output.md)
