# Is Equal

## Overview

![The Is Equal Node.](https://2561100106-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Ff6JZovzOqBctA4C1o76u%2Fuploads%2Fgit-blob-7307208515cb0340a55d6b68f14904c7c60709f8%2Fisequalupdatedimage.png?alt=media)

**Is Equal** is a ***Relational Expression*** **Node**, which compares two input values, and returns a **Boolean**, based on how the two values compare to each other in terms of *equality*. The **Node** has two modes, determined by the `Mode` **Attribute**:

1. `IsEqual` - Are the two values equal in value.
2. `IsNotEqual` - Are the two values *not* equal in value.

*Relational expressions* are frequently used in combination with **Branch Nodes** and *logical operator* **Nodes** ([**AND**](https://docs.incari.com/incari-studio/2023.2/toolbox/math/boolean/and), [**OR**](https://docs.incari.com/incari-studio/2023.2/toolbox/math/boolean/or), and [**Negate**](https://docs.incari.com/incari-studio/2023.2/toolbox/math/boolean/negate)) to create *conditional logic*, and are essential for building complex systems.

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

## Attributes

![The Is Equal Node Attributes.](https://2561100106-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Ff6JZovzOqBctA4C1o76u%2Fuploads%2Fgit-blob-b87f21a24ef28e028b192067c235ae2b8fe89061%2Fisequalattributes.png?alt=media)

### Inputs

| Attribute         | Type                                          | Description                                                             |
| ----------------- | --------------------------------------------- | ----------------------------------------------------------------------- |
| `Data Type`       | **Drop-down**                                 | The type of data that will be plugged into the `A` and `B` **Sockets**. |
| `Mode`            | **Drop-down**                                 | The type of expression that will be used when comparing the values.     |
| `Default Value A` | *Defined in the `Data Type`* ***Attribute**.* | The value of `A` if no value is provided via the **Node's** **Socket**. |
| `Default Value B` | *Defined in the `Data Type`* ***Attribute**.* | The value of `B` if no value is provided via the **Node's** **Socket**. |

## Inputs

| Input             | Type                                          | Description                                                           |
| ----------------- | --------------------------------------------- | --------------------------------------------------------------------- |
| *Pulse Input* (►) | **Pulse**                                     | A standard input **Pulse**, to trigger the execution of the **Node**. |
| `A`               | *Defined in the `Data Type`* ***Attribute**.* | The value to be compared with `B`.                                    |
| `B`               | *Defined in the* `Data Type` ***Attribute***  | The value to be compared with `A`.                                    |

## 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.                                                                                                                                                                                                            |
| `C`                | Bool  | <p>In <code>IsEqual</code> <code>Mode</code>: Returns <em>true</em> if <code>A</code> is equal to <code>B</code>. If not, then it returns <em>false</em>.</p><p>In <code>IsNotEqual</code> <code>Mode</code>: Returns <em>true</em> if <code>A</code> and <code>B</code> are not equal. Otherwise, it returns <em>false</em>.</p> |

## External Links

* [*Relational operator*](https://en.wikipedia.org/wiki/Relational_operator) on Wikipedia.
