# Branch

## Overview

![The Branch Node.](https://2628349686-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fwnv17cpjDin2deSlOz0z%2Fuploads%2Fgit-blob-186a97d8e374e79691b6053615980ddaa9a8a1de%2Fbranchupdatedimage.png?alt=media)

**Branch** triggers one of two **Pulses**, based on whether or not the `Input` value is *true* or *false*. Branching is a fundamental part of *conditional logic* and at a high level it basically means "*If this is true, do this; if not, do that*". Although the **Node** takes a single condition, this condition can be composed of multiple other conditions when used in conjunction with ***Relational Expression*** **Nodes** ([**Is Equal**](https://docs.incari.com/incari-studio/2023.1/toolbox/flow-control/is-equal), [**Is Greater Equal**](https://docs.incari.com/incari-studio/2023.1/toolbox/flow-control/is-greater-equal), and [**Is Less Equal**](https://docs.incari.com/incari-studio/2023.1/toolbox/flow-control/is-less-equal)), ***Logical Operator*** **Nodes** ([**AND**](https://docs.incari.com/incari-studio/2023.1/toolbox/math/boolean/and), [**OR**](https://docs.incari.com/incari-studio/2023.1/toolbox/math/boolean/or), and [**Negate**](https://docs.incari.com/incari-studio/2023.1/toolbox/math/boolean/negate)), and other **Branch Nodes**.

[**Scope**](https://docs.incari.com/incari-studio/2023.1/overview#scopes): **Project**, **Scene**, **Function**, **Prefab**.

## Attributes

![The Branch Node Attributes.](https://2628349686-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fwnv17cpjDin2deSlOz0z%2Fuploads%2Fgit-blob-a989709eeaba2af2f23ed5e34b65296f646f8339%2Fbranchattributes.png?alt=media)

### Inputs

| Attribute       | Type     | Description                                                          |
| --------------- | -------- | -------------------------------------------------------------------- |
| `Default Value` | **Bool** | The default value, if one is not provided in the `Input` **Socket.** |

## Inputs

| Input             | Type      | Description                                                                                  |
| ----------------- | --------- | -------------------------------------------------------------------------------------------- |
| *Pulse Input* (►) | **Pulse** | A standard input **Pulse**, to trigger the execution of the **Node**.                        |
| `Input`           | **Bool**  | The *true* or *false* condition to determine which of the two output **Pulses** is executed. |

## Outputs

| Output        | Type      | Description                                                 |
| ------------- | --------- | ----------------------------------------------------------- |
| `OnTrue` (►)  | **Pulse** | The **Pulse** that will be triggered if `Input` is *true*.  |
| `OnFalse` (►) | **Pulse** | The **Pulse** that will be triggered if `Input` is *false*. |

## External Links

* [*Conditional (computer programming)*](https://en.wikipedia.org/wiki/Conditional_\(computer_programming\)) on Wikipedia.
