> 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/2022.2/toolbox/flow-control/sequential.md).

# Sequential

## Overview

![The Sequential Node.](/files/fHHHywHm6Q9VYBEwvzOB)

The **Sequential Node** generates a user-defined number of **Output Pulses**, and executes their **Logic** sequentially (one after the other), with the top-most **Pulses** being executed first. The one caveat to this is that if any **Nodes** that pause or delay the flow of **Logic** are used, they will only affect that particular **Branch**, not the other **Output Pulses** (See **Execution Order** below).

They are used primarily as a means of grouping and organizing blocks of **Logic** with a similar or combined purpose into a more visually readable way.

[**Scope**](/incari-studio/2022.2/toolbox/overview.md#scopes): **Project**, **Scene**, **Function**, **Prefab**.

## Attributes

![The Sequential Node Attributes.](/files/PpYITREKeMXqvISZcFkn)

### Outputs

| Attribute     | Type    | Description                                                            |
| ------------- | ------- | ---------------------------------------------------------------------- |
| `Pulse Count` | **Int** | The number of **Output Pulses** that will be executed in the sequence. |

## Inputs

| Input             | Type      | Description                                                           |
| ----------------- | --------- | --------------------------------------------------------------------- |
| *Pulse Input* (►) | **Pulse** | A standard input **Pulse**, to trigger the execution of the **Node**. |

## Outputs

| Output      | Type      | Description                                                                                                                                  |
| ----------- | --------- | -------------------------------------------------------------------------------------------------------------------------------------------- |
| `Pulse [n]` | **Pulse** | A **Pulse** which is executed sequentially from top-to-bottom. The total number of **Pulses** is defined in the `Pulse Count` **Attribute**. |

## Execution Order

### Example 1

![](/files/cppOKQX8u284yZ4ZmQOp)

Here, we output three written numbers to the console, using the **Sequential Node**. As one might expect, the numbers are shown immediately after one another, in the correct order:

```
One   [0 seconds]
Two   [0 seconds]
Three [0 seconds]
```

### Example 2

![](/files/qR6xexHY0jaThBxsAFWK)

When we add a **Start Timeout Node**, which delays the execution of **Branch**, one might expect the numbers to be output in order, with a delay between "One" and "Two". This, however, is not the case, as **Timeout Nodes** only affect the **Branch** that they are on. You will instead see the following output, exactly as before:

```
One   [0 seconds]
Two   [0 seconds]
Three [0 seconds]
```

### Example 3

![](/files/B6clRjFftUmexHMb54k2)

This becomes much clearer, when we insert a **Start Timeout Node** *before* the **Console Node** is executed. Now we see that "Two" and "Three" are shown immediately, whereas "One" is output to the console after the given time has elapsed.

```
Two   [0 seconds]
Three [0 seconds]
One   [1 second]
```
