# Branch

## Overview

![The Branch Node.](https://3009747178-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MIspkFTPkuGkv4UgQGs-1330240639%2Fuploads%2Fgit-blob-8d4059de8079cb4bb2b811c3dd6ac11d7b21962a%2Fnode-branch.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/2021.1/toolbox/flow-control/is-equal), [**Is Greater Equal**](https://docs.incari.com/incari-studio/2021.1/toolbox/flow-control/is-greater-equal), and [**Is Less Equal**](https://docs.incari.com/incari-studio/2021.1/toolbox/flow-control/is-less-equal)), ***Logical Operator*** **Nodes** ([**AND**](https://docs.incari.com/incari-studio/2021.1/toolbox/math/boolean/and), [**OR**](https://docs.incari.com/incari-studio/2021.1/toolbox/math/boolean/or), and [**Negate**](https://docs.incari.com/incari-studio/2021.1/toolbox/math/boolean/negate)), and other **Branch Nodes**.

## Attributes

### 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.
