> For the complete documentation index, see [llms.txt](https://docs.engagevr.io/developer/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.engagevr.io/developer/afx/node-dictionary/variable/list.md).

# List

## List Add

Appends an object to the end of a list each time that the flow is activated. The object must be of the same type as the list.

**Inputs:**

<table><thead><tr><th width="172">Name</th><th width="174">Type</th><th>Description</th></tr></thead><tbody><tr><td>Enter</td><td>Flow</td><td>Flow to activate the node.</td></tr><tr><td>List</td><td>List &#x3C;varies></td><td>The list to add an object to.</td></tr><tr><td>Item to Add</td><td>&#x3C;varies></td><td>The object to add to the list.</td></tr></tbody></table>

**Outputs:**

<table><thead><tr><th width="172">Name</th><th width="174">Type</th><th>Description</th></tr></thead><tbody><tr><td>Exit</td><td>Flow</td><td>Continue the activating flow.</td></tr></tbody></table>

## List Clear

Removes all objects from a list.

**Inputs:**

<table><thead><tr><th width="172">Name</th><th width="174">Type</th><th>Description</th></tr></thead><tbody><tr><td>Enter</td><td>Flow</td><td>Flow to activate the node.</td></tr><tr><td>List</td><td>List &#x3C;varies></td><td>The list to clear.</td></tr></tbody></table>

**Outputs:**

<table><thead><tr><th width="172">Name</th><th width="174">Type</th><th>Description</th></tr></thead><tbody><tr><td>Exit</td><td>Flow</td><td>Continue the activating flow.</td></tr></tbody></table>

## List Contains

Tests whether a referenced list contains the specified object.

**Inputs:**

<table><thead><tr><th width="172">Name</th><th width="174">Type</th><th>Description</th></tr></thead><tbody><tr><td>List</td><td>List &#x3C;varies></td><td>The list to be searched.</td></tr><tr><td>Object</td><td>&#x3C;varies></td><td>The object to search for.</td></tr></tbody></table>

**Outputs:**

<table><thead><tr><th width="172">Name</th><th width="174">Type</th><th>Description</th></tr></thead><tbody><tr><td>Bool Out</td><td>Boolean</td><td>True if <code>Object</code> is in <code>List</code>. False otherwise.</td></tr></tbody></table>

## List Count

Outputs the number of objects in a list.

**Inputs:**

<table><thead><tr><th width="172">Name</th><th width="174">Type</th><th>Description</th></tr></thead><tbody><tr><td>List</td><td>List &#x3C;varies></td><td>The list to evaluate.</td></tr></tbody></table>

**Outputs:**

<table><thead><tr><th width="172">Name</th><th width="174">Type</th><th>Description</th></tr></thead><tbody><tr><td>Count</td><td>Integer</td><td>The number of objects in the list.</td></tr></tbody></table>

## List Get At Index

Outputs the object at the given index in a list.

**Inputs:**

<table><thead><tr><th width="172">Name</th><th width="174">Type</th><th>Description</th></tr></thead><tbody><tr><td>Index</td><td>Integer [editable]</td><td>The index of the object to retrieve. Lists are zero indexed.</td></tr><tr><td>List</td><td>List &#x3C;varies></td><td>The list to retrieve an object from.</td></tr></tbody></table>

**Outputs:**

<table><thead><tr><th width="172">Name</th><th width="174">Type</th><th>Description</th></tr></thead><tbody><tr><td>Output</td><td>&#x3C;varies></td><td>The object at the given index.</td></tr></tbody></table>

## List Index Of

Outputs the index of the given object, or -1 if the object is not in the list.

**Inputs:**

<table><thead><tr><th width="172">Name</th><th width="174">Type</th><th>Description</th></tr></thead><tbody><tr><td>List</td><td>List &#x3C;varies></td><td>The list to search.</td></tr><tr><td>Object</td><td>&#x3C;varies></td><td>The object to search for.</td></tr></tbody></table>

**Outputs:**

<table><thead><tr><th width="172">Name</th><th width="174">Type</th><th>Description</th></tr></thead><tbody><tr><td>Index</td><td>Integer</td><td>The index of <code>Object</code> in <code>List</code>, or -1 if <code>Object</code> is not in <code>List</code>.</td></tr></tbody></table>

## List Insert

Inserts an object into a list at the given index. The objects at that index and higher are displaced to the next index up. The result is that the length of the list increases by 1.

To replace an object at a given index, see [#list-replace-at](#list-replace-at "mention"). To append to the end of a list, see [#list-add](#list-add "mention").

**Inputs:**

<table><thead><tr><th width="172">Name</th><th width="174">Type</th><th>Description</th></tr></thead><tbody><tr><td>Enter</td><td>Flow</td><td>Flow to activate the node.</td></tr><tr><td>Index</td><td>Integer [editable]</td><td>The location where the object is to be inserted.</td></tr><tr><td>List</td><td>List &#x3C;varies></td><td>The list into which the object will be inserted.</td></tr></tbody></table>

**Outputs:**

<table><thead><tr><th width="172">Name</th><th width="174">Type</th><th>Description</th></tr></thead><tbody><tr><td>Exit</td><td>Flow</td><td>Continue the activating flow.</td></tr></tbody></table>

## List Remove At Index

Removes an object from a list at the given index. Objects at higher indexes are shifted down. The result is that the length of the list is reduced by 1.

**Inputs:**

<table><thead><tr><th width="172">Name</th><th width="174">Type</th><th>Description</th></tr></thead><tbody><tr><td>Enter</td><td>Flow</td><td>Flow to activate the node.</td></tr><tr><td>Index</td><td>Integer [editable]</td><td>The index of the object to remove.</td></tr><tr><td>List</td><td>List &#x3C;varies></td><td>The list to remove the object from.</td></tr></tbody></table>

**Outputs:**

<table><thead><tr><th width="172">Name</th><th width="174">Type</th><th>Description</th></tr></thead><tbody><tr><td>Exit</td><td>Flow</td><td>Continue the activating flow.</td></tr></tbody></table>

## List Remove Item

Remove a matching object from a list. If there are multiple matching objects in the list, the object with the lowest index is removed. If the object is not found, no action is taken.

**Inputs:**

<table><thead><tr><th width="172">Name</th><th width="174">Type</th><th>Description</th></tr></thead><tbody><tr><td>Enter</td><td>Flow</td><td>Flow to activate the node.</td></tr><tr><td>List</td><td>List &#x3C;varies></td><td>The list from which to remove the object.</td></tr><tr><td>Item To Remove</td><td>&#x3C;varies></td><td>The object to remove.</td></tr></tbody></table>

**Outputs:**

<table><thead><tr><th width="172">Name</th><th width="174">Type</th><th>Description</th></tr></thead><tbody><tr><td>Exit</td><td>Flow</td><td>Continue the activating flow.</td></tr></tbody></table>

## List Replace At

Replaces the object at the given index in a list with the input object.

**Inputs:**

<table><thead><tr><th width="172">Name</th><th width="174">Type</th><th>Description</th></tr></thead><tbody><tr><td>Enter</td><td>Flow</td><td>Flow to activate the node.</td></tr><tr><td>Index</td><td>Integer [editable]</td><td>The index of the object to replace.</td></tr><tr><td>List</td><td>List &#x3C;varies></td><td>The list in which to replace the object.</td></tr><tr><td>Item To Replace</td><td>&#x3C;varies></td><td>The replacement object.</td></tr></tbody></table>

**Outputs:**

<table><thead><tr><th width="172">Name</th><th width="174">Type</th><th>Description</th></tr></thead><tbody><tr><td>Exit</td><td>Flow</td><td>Continue the activating flow.</td></tr></tbody></table>
