# Events



# AI Agent

### ![Event_AiAgent_StartTalk.png](https://simlab-soft.com/help/uploads/images/gallery/2026-03/scaled-1680-/event-aiagent-starttalk.png) AI Agent Start Talk

![image.png](https://simlab-soft.com/help/uploads/images/gallery/2026-03/scaled-1680-/eqJimage.png)The **AI Agent Start Talk** node activates the exact moment an assigned AI Agent begins delivering its response.

### ![Event_AiAgent_EndTalk.png](https://simlab-soft.com/help/uploads/images/gallery/2026-03/scaled-1680-/event-aiagent-endtalk.png) AI Agent End Talk

[![image.png](https://simlab-soft.com/help/uploads/images/gallery/2026-03/scaled-1680-/6yzimage.png)](https://simlab-soft.com/help/uploads/images/gallery/2026-03/6yzimage.png)

The **AI Agent End Talk** node activates as soon as the assigned AI Agent finishes delivering its response.

For more information, please watch the AI Start/End talk tutorial:

<iframe allowfullscreen="allowfullscreen" height="314" src="https://www.youtube.com/embed/YEMeCS8QcFY" width="560"></iframe>

# SceneNode \ Dynamic Menu

### ![Event_DynamicMenu_Item_Triggered.png](https://simlab-soft.com/help/uploads/images/gallery/2026-03/scaled-1680-/event-dynamicmenu-item-triggered.png) Dynamic Menu Item Triggered

[![image.png](https://simlab-soft.com/help/uploads/images/gallery/2026-03/scaled-1680-/NdHimage.png)](https://simlab-soft.com/help/uploads/images/gallery/2026-03/NdHimage.png)

The **Dynamic Menu Item Triggered** event node acts as a universal listener, activating the moment a user interacts with *any* dynamic menu button within the VR scene. Upon execution, it outputs the specific **SceneNode** the menu is attached to, the **ID** of the clicked button, and the **User** who triggered it.

### ![Event_DynamicMenu_Item_Triggered.png](https://simlab-soft.com/help/uploads/images/gallery/2026-03/scaled-1680-/event-dynamicmenu-item-triggered.png) Dynamic Menu Item Triggered(ID)

[![image.png](https://simlab-soft.com/help/uploads/images/gallery/2026-03/scaled-1680-/pnVimage.png)](https://simlab-soft.com/help/uploads/images/gallery/2026-03/pnVimage.png)

The **Dynamic Menu Item Triggered (ID)** event node activates only when a button with a specific **ID** is pressed. It ignores all other button interactions, allowing you to trigger a specific function

### ![Event_DynamicMenu_Item_Triggered.png](https://simlab-soft.com/help/uploads/images/gallery/2026-03/scaled-1680-/event-dynamicmenu-item-triggered.png) Dynamic Menu Item Triggered(Node + ID)

[![image.png](https://simlab-soft.com/help/uploads/images/gallery/2026-03/scaled-1680-/rOEimage.png)](https://simlab-soft.com/help/uploads/images/gallery/2026-03/rOEimage.png)

The **Dynamic Menu Item Triggered (Node + ID)** event node provides the most specific control by activating only when a button with a precise **ID** is pressed on a menu linked to a specific **SceneNode**. This prevents execution overlap by ensuring the logic only triggers for one unique button on one specific object.

**Example:**

[![image.png](https://simlab-soft.com/help/uploads/images/gallery/2026-03/scaled-1680-/Osbimage.png)](https://simlab-soft.com/help/uploads/images/gallery/2026-03/Osbimage.png)

In this example, the **Dynamic Menu Item Triggered (Node + ID)** node is configured to act as a "Help" button. By setting the **SceneNode** to "Main Menu" and the **ID** to "3", the system listens exclusively for that exact button press on that specific menu object. Once the user clicks this button, the execution flow passes to a **Show/Hide** node configured to display an "Instructions Window" by setting its state to True. Immediately following this, the flow triggers a **Set Node Glow State** node, which applies a visual highlight to a designated "Hint Object" to guide the user.

### ![Event_DynamicMenu_Item_Triggered.png](https://simlab-soft.com/help/uploads/images/gallery/2026-03/scaled-1680-/event-dynamicmenu-item-triggered.png) Dynamic Menu Item Triggered(Node)

[![image.png](https://simlab-soft.com/help/uploads/images/gallery/2026-03/scaled-1680-/KW5image.png)](https://simlab-soft.com/help/uploads/images/gallery/2026-03/KW5image.png)

The **Dynamic Menu Item Triggered (Node)** event node activates only when a button is pressed on a menu attached to a designated **SceneNode**. This node isolates interactions to a single object, ensuring that the logic only runs for the menus linked to that specific item in the scene.

Dynamic Menu Triggered nodes are used in the following add-ons:

<iframe allowfullscreen="allowfullscreen" height="314" src="https://www.youtube.com/embed/8NtfNkBr_Z0" width="560"></iframe>

<iframe allowfullscreen="allowfullscreen" height="314" src="https://www.youtube.com/embed/7Ct8UpF9ce4" width="560"></iframe>

# SceneNode \ Query

### ![Event_Query_NodeAdded.png](https://simlab-soft.com/help/uploads/images/gallery/2026-03/scaled-1680-/event-query-nodeadded.png) Node Added to Query

[![image.png](https://simlab-soft.com/help/uploads/images/gallery/2026-03/scaled-1680-/Ye8image.png)](https://simlab-soft.com/help/uploads/images/gallery/2026-03/Ye8image.png)

The Node Added to Query event node constantly monitors the scene and triggers its Execute output whenever a 3D object's attributes are modified to match the specific conditions defined by a connected Scene Node Query. By plugging a query into the node's SceneNode input, it listens for any object that newly meets these criteria—essentially being "added" to the query's list of valid results—and subsequently passes both the execution signal and the specific SceneNode that triggered the event through their respective outputs, allowing for dynamic, attribute-driven logic without needing to manually target individual objects.

##### Example:

[![image.png](https://simlab-soft.com/help/uploads/images/gallery/2026-03/scaled-1680-/Wbgimage.png)](https://simlab-soft.com/help/uploads/images/gallery/2026-03/Wbgimage.png)

In this example, a Scene Node Query is configured to continuously look for any object that has an attribute named "Parts" with a value containing "Part\_". This query is connected directly to Node Added to Query event node. During the experience, whenever an object has its attributes updated to successfully meet this exact condition, the event node automatically triggers and passes that specific object through its SceneNode output into a Set Node Glow State node.

---

### ![Event_Query_NodeRemoved.png](https://simlab-soft.com/help/uploads/images/gallery/2026-03/scaled-1680-/event-query-noderemoved.png) Node Removed From Query

[![image.png](https://simlab-soft.com/help/uploads/images/gallery/2026-03/scaled-1680-/3MHimage.png)](https://simlab-soft.com/help/uploads/images/gallery/2026-03/3MHimage.png)

The Node Removed From Query event node continuously monitors the scene and triggers its Execute output whenever a 3D object's attributes change so that they no longer match the conditions of a connected Scene Node Query. By connecting a query to the node's SceneNode input, it watches for any object that falls out of the query's criteria—essentially being "removed" from the list of valid results.

##### Example:

[![image.png](https://simlab-soft.com/help/uploads/images/gallery/2026-03/scaled-1680-/8Iximage.png)](https://simlab-soft.com/help/uploads/images/gallery/2026-03/8Iximage.png)

In this example, a Scene Node Query is configured to track any object that has an attribute named "Bullet\_Instance". This query is connected directly to the SceneNode input of the Node Removed From Query event node. During the experience, if an object's attributes are altered so it no longer possesses the "Bullet\_Instance" attribute (for example, if the attribute is removed after a collision), the event node automatically triggers and passes that specific object through its SceneNode output into a Delete SceneNode node.

# Scene Node \ Overlap

### [![Event_Node_EntersNode.png](https://simlab-soft.com/help/uploads/images/gallery/2026-03/scaled-1680-/event-node-entersnode.png)](https://simlab-soft.com/help/uploads/images/gallery/2026-03/event-node-entersnode.png) Node Enter Node

[![image.png](https://simlab-soft.com/help/uploads/images/gallery/2026-03/scaled-1680-/LFQimage.png)](https://simlab-soft.com/help/uploads/images/gallery/2026-03/LFQimage.png)

The **Node Enter Node** event is triggered when Scene Node A enters Scene Node B. Both nodes can be any nodes in the assembly tree — for example, Node A could be a screwdriver and Node B could be a screw.

---

### [![Event_Node_ExitsNode.png](https://simlab-soft.com/help/uploads/images/gallery/2026-03/scaled-1680-/event-node-exitsnode.png)](https://simlab-soft.com/help/uploads/images/gallery/2026-03/event-node-exitsnode.png) Node Exited Node 

[![image.png](https://simlab-soft.com/help/uploads/images/gallery/2026-03/scaled-1680-/hJ3image.png)](https://simlab-soft.com/help/uploads/images/gallery/2026-03/hJ3image.png)

The **Node Excited Node** event is triggered when Scene Node A exits Scene Node B. Both nodes can be any nodes in the assembly tree — for example, Node A could be a screwdriver and Node B could be a screw.

# SceneNode \ Triggered

### [![Event_Node_Triggered.png](https://simlab-soft.com/help/uploads/images/gallery/2025-12/scaled-1680-/event-node-triggered.png)](https://simlab-soft.com/help/uploads/images/gallery/2025-12/event-node-triggered.png) Node Triggered 

[![image.png](https://simlab-soft.com/help/uploads/images/gallery/2025-12/scaled-1680-/Wjpimage.png)](https://simlab-soft.com/help/uploads/images/gallery/2025-12/Wjpimage.png)**Node Triggered** event is executed when the selected Scene Node is triggered within VR environment.

### ![Events_SceneNode_Triggered_NodeTriggeredLocation.png](https://simlab-soft.com/help/uploads/images/gallery/2024-09/events-scenenode-triggered-nodetriggeredlocation.png) Node Triggered Location

![Ceiling Node.png](https://simlab-soft.com/help/uploads/images/gallery/2024-09/scaled-1680-/Wk8image.png)The **Node Triggered Location** is used to capture the specific location or position of a triggered event within the VR environment. It enables tracking where a particular interaction occurred, which can be useful for dynamic object placement, analytics, or event-triggered responses based on spatial coordinates.

####   


#### Example

![image.png](https://simlab-soft.com/help/uploads/images/gallery/2024-09/scaled-1680-/oSEimage.png)

In this example, the **Node Triggered Location** is used to capture the location where the user triggers the target. When the target is hit, the node records the exact spot, and a bullet hole is placed using the **Set Node Location**. The **Make Node Copy** is used to enable the user to shoot more than one bullet, creating a new bullet hole at each triggered location. This setup allows for repeated interactions, with each shot creating a new bullet hole in the correct spot.

---

<div class="mt-1 flex gap-3 empty:hidden -ml-2" id="bkmrk--6"><div class="items-center justify-start rounded-xl p-1 flex"><div class="flex items-center"><button aria-label="Read Aloud" class="rounded-lg text-token-text-secondary hover:bg-token-main-surface-secondary" data-testid="voice-play-turn-action-button"><svg class="icon-md-heavy" fill="none" height="24" viewbox="0 0 24 24" width="24" xmlns="http://www.w3.org/2000/svg"></svg></button><button aria-label="Copy" class="rounded-lg text-token-text-secondary hover:bg-token-main-surface-secondary" data-testid="copy-turn-action-button"><svg class="icon-md-heavy" fill="none" height="24" viewbox="0 0 24 24" width="24" xmlns="http://www.w3.org/2000/svg"></svg></button><button aria-label="Regenerate" class="rounded-lg text-token-text-secondary hover:bg-token-main-surface-secondary" data-testid="regenerate-turn-action-button"><svg class="icon-md-heavy" fill="none" height="24" viewbox="0 0 24 24" width="24" xmlns="http://www.w3.org/2000/svg"></svg></button><div class="flex"><button aria-label="Good response" class="rounded-lg text-token-text-secondary hover:bg-token-main-surface-secondary" data-testid="good-response-turn-action-button"><svg class="icon-md-heavy" fill="none" height="24" viewbox="0 0 24 24" width="24" xmlns="http://www.w3.org/2000/svg"></svg></button><button aria-label="Bad response" class="rounded-lg text-token-text-secondary hover:bg-token-main-surface-secondary" data-testid="bad-response-turn-action-button"><svg class="icon-md-heavy" fill="none" height="24" viewbox="0 0 24 24" width="24" xmlns="http://www.w3.org/2000/svg"></svg></button>  
</div><div class="flex items-center pb-0"><div class="[&_svg]:h-full [&_svg]:w-full icon-md h-4 w-4"><svg fill="none" height="24" viewbox="0 0 24 24" width="24" xmlns="http://www.w3.org/2000/svg"></svg>  
</div></div><button aria-expanded="false" aria-haspopup="menu" class="cursor-pointer h-[30px] rounded-md px-1 text-token-text-secondary hover:bg-token-main-surface-secondary" data-state="closed" id="bkmrk--8" type="button"></button></div></div></div><div class="pointer-container" id="bkmrk-%C2%A0-3"><div class="pointer anim is-page-editable"><svg class="svg-icon" data-icon="link" role="presentation" viewbox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"></svg><div class="input-group inline block"> <button class="button outline icon" data-clipboard-target="#pointer-url" title="Copy Link" type="button"><svg class="svg-icon" data-icon="copy" role="presentation" viewbox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"></svg></button></div><svg class="svg-icon" data-icon="edit" role="presentation" viewbox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"></svg></div></div>

# Controller

---

### [![Event_User_Grip_Pressed.png](https://simlab-soft.com/help/uploads/images/gallery/2024-08/event-user-grip-pressed.png)](https://simlab-soft.com/help/uploads/images/gallery/2024-08/response-value-number-add.png) Grip Pressed

  
![Ceiling Node.png](https://simlab-soft.com/help/uploads/images/gallery/2024-08/scaled-1680-/EBFimage.png)

The **Grip Pressed node** enables the user to detect when the VR controller's grip is pressed. By connecting a response to this node, the specified action is executed each time the grip is pressed, allowing for interactive controls within the VR Experience.

####   


#### Example

![image.png](https://simlab-soft.com/help/uploads/images/gallery/2024-08/scaled-1680-/euiimage.png)

In this example, a **Grip Pressed node** is used to execute a response. Once the Grip press is triggered, the Grip Pressed node checks the boolean value. If the condition is met, the connected response executes, and the animation plays during the VR Experience.

---

### [![Event_User_Grip_Released.png](https://simlab-soft.com/help/uploads/images/gallery/2024-08/event-user-grip-released.png)](https://simlab-soft.com/help/uploads/images/gallery/2024-08/response-value-number-add.png) Grip Released

  
![Ceiling Node.png](https://simlab-soft.com/help/uploads/images/gallery/2024-08/scaled-1680-/4kIimage.png)

The **Grip Released node** enables the user to detect when the VR controller's grip is released. By connecting a response to this node, the specified action is executed each time the grip is released, allowing for interactive controls within the VR Experience.

####   


#### Example

![image.png](https://simlab-soft.com/help/uploads/images/gallery/2024-08/scaled-1680-/kHOimage.png)

In this example, a **Grip Released node** is used to execute a response. Once the Grip released is triggered, the Grip Released node checks the boolean value. If the condition is met, the connected response executes, and the animation plays during the VR Experience.

---

### [![image.png](https://simlab-soft.com/help/uploads/images/gallery/2025-09/scaled-1680-/y1Vimage.png) ](https://simlab-soft.com/help/uploads/images/gallery/2025-09/y1Vimage.png)Hand

<div id="bkmrk-hand-gestures-in-vr-">Hand gestures in VR are becoming more natural and intuitive than ever. No need for the user to fully close hand to grab objects — now, a drawer can be opened effortlessly using just two fingers, just like in real life.</div><div id="bkmrk--9">  
</div><div id="bkmrk-with-enhanced-gestur">With enhanced gesture control, users can interact with virtual world in a way that feels smooth, and precise, check this [tutorial](https://youtu.be/YkPAQTO5GKE).</div><div id="bkmrk--10"></div><div id="bkmrk--11"><iframe allowfullscreen="allowfullscreen" height="314" src="https://www.youtube.com/embed/YkPAQTO5GKE" width="560"></iframe>

</div>

# Keyboard

<div id="bkmrk-adding-an-interactiv">Adding an interactive 3D menu in VR is simple, but using the same menu on a desktop can be challenging, as you have to adjust your view every time you want to make a change.</div><div id="bkmrk-">  
</div><div id="bkmrk-to-solve-this%2C-we%E2%80%99ve">To solve this, "**Key Press**" and "**Key Release**" events were introduced. By separating these events, designers now have more control when creating VR experiences.</div>### Key Pressed

Right click in the Dynamic Training Builder and type in the

[![image.png](https://simlab-soft.com/help/uploads/images/gallery/2025-09/scaled-1680-/XMVimage.png)](https://simlab-soft.com/help/uploads/images/gallery/2025-09/XMVimage.png)

"Keyboard" or look under "**Events**" to get this node. As the name implies when a keyboard key is pressed this event is triggered.

#### Example

<div id="bkmrk--1"></div>### Key Released

Same as above node but when key is released.

Check this [tutorial ](https://youtu.be/ACQPYu1sdf0)to learn more about these events.  
![dLmimage.png](https://simlab-soft.com/help/uploads/images/gallery/2025-09/scaled-1680-/dlmimage.png)

<iframe allowfullscreen="allowfullscreen" height="295" src="https://www.youtube.com/embed/ACQPYu1sdf0" style="width: 526px; height: 295px;" width="526"></iframe>

# User

### ![Event_User_EntersNode.png](https://simlab-soft.com/help/uploads/images/gallery/2026-03/scaled-1680-/event-user-entersnode.png) User Enter Node

[![image.png](https://simlab-soft.com/help/uploads/images/gallery/2026-03/scaled-1680-/F48image.png)](https://simlab-soft.com/help/uploads/images/gallery/2026-03/F48image.png)

The **User Enter Node event node** continuously monitors the physical boundaries of a specific 3D object and activates the moment a user's avatar collides with or enters its volume. While enabled, it passes forward a reference to the specific User involved before continuing the logic flow. This functionality applies to all participants within multiplayer VR collaboration scenes.

---

### ![Event_User_ExitsNode.png](https://simlab-soft.com/help/uploads/images/gallery/2026-03/scaled-1680-/event-user-exitsnode.png) User Exit Node

[![image.png](https://simlab-soft.com/help/uploads/images/gallery/2026-03/scaled-1680-/6ogimage.png)](https://simlab-soft.com/help/uploads/images/gallery/2026-03/6ogimage.png)

The **User Exited Node event node** tracks the physical boundaries of a specific 3D object and activates the exact moment a user's avatar stops colliding with or fully exits its volume. While enabled, the node watches the targeted SceneNode and triggers its output as soon as the user completely separates from the object, passing forward a reference to the specific User who left before continuing the execution logic. And like **User Enter Node**, it also applies to all participants within multiplayer VR collaboration scenes.

# Variable

### ![Events_Variable_Change.png](https://simlab-soft.com/help/uploads/images/gallery/2025-02/events-variable-change.png) Variable Changed

  
![Ceiling Node.png](https://simlab-soft.com/help/uploads/images/gallery/2025-02/scaled-1680-/yCFimage.png)The **Variable Changed** event activates when the value of a specified variable is modified. This event helps users detect real-time changes and trigger actions accordingly, enabling dynamic and responsive interactions within the VR Experience.

#### Example

[![image.png](https://simlab-soft.com/help/uploads/images/gallery/2025-02/scaled-1680-/VBwimage.png)](https://simlab-soft.com/help/uploads/images/gallery/2025-02/VBwimage.png)

<div class="pointer-container" id="bkmrk-%C2%A0-0"><div class="pointer anim is-page-editable"><svg class="svg-icon" data-icon="link" role="presentation" viewbox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"></svg><div class="input-group inline block"> <button class="button outline icon" data-clipboard-target="#pointer-url" title="Copy Link" type="button"><svg class="svg-icon" data-icon="copy" role="presentation" viewbox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"></svg></button></div><svg class="svg-icon" data-icon="edit" role="presentation" viewbox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"></svg></div></div>In this example, the **Variable Changed** event is set to monitor changes in the variable **Door**. When the value of this variable is modified, the event triggers the **Play Animation Sequence** node, which activates the **Door Anim** animation sequence.

<div class="mb-2 flex gap-3 empty:hidden -ml-2" id="bkmrk--0"><div class="items-center justify-start rounded-xl p-1 flex"><div class="flex items-center"><button aria-label="Read aloud" class="rounded-lg text-token-text-secondary hover:bg-token-main-surface-secondary" data-testid="voice-play-turn-action-button"><svg class="icon-md-heavy" fill="none" height="24" viewbox="0 0 24 24" width="24" xmlns="http://www.w3.org/2000/svg"></svg></button><button aria-label="Copy" class="rounded-lg text-token-text-secondary hover:bg-token-main-surface-secondary" data-testid="copy-turn-action-button"><svg class="icon-md-heavy" fill="none" height="24" viewbox="0 0 24 24" width="24" xmlns="http://www.w3.org/2000/svg"></svg></button><div class="flex"><button aria-label="Good response" class="rounded-lg text-token-text-secondary hover:bg-token-main-surface-secondary" data-testid="good-response-turn-action-button"><svg class="icon-md-heavy" fill="none" height="24" viewbox="0 0 24 24" width="24" xmlns="http://www.w3.org/2000/svg"></svg></button><button aria-label="Bad response" class="rounded-lg text-token-text-secondary hover:bg-token-main-surface-secondary" data-testid="bad-response-turn-action-button"><svg class="icon-md-heavy" fill="none" height="24" viewbox="0 0 24 24" width="24" xmlns="http://www.w3.org/2000/svg"></svg></button>  
</div><button aria-label="Edit in canvas" class="rounded-lg text-token-text-secondary hover:bg-token-main-surface-secondary"><svg class="icon-md-heavy" fill="none" height="24" viewbox="0 0 24 24" width="24" xmlns="http://www.w3.org/2000/svg"></svg></button><div class="flex items-center pb-0"><svg class="icon-md" fill="none" height="24" viewbox="0 0 24 24" width="24" xmlns="http://www.w3.org/2000/svg"></svg>  
</div><button aria-expanded="false" aria-haspopup="menu" class="cursor-pointer h-[30px] rounded-md px-1 text-token-text-secondary hover:bg-token-main-surface-secondary" data-state="closed" id="bkmrk--2" type="button"></button></div></div></div>

# On Message Received

SimLab Composer 14 introduces WebSocket support, enabling seamless integration with external systems, allowing it to work with external hardware, co-simulation engines, and websites, unlocking numerous possibilities.

Use the node **On Message Received** to trigger an event when a message is received.  
  
The **On Message Received** node triggers an event when an unhandled message is received from the external connection. This node allows you to access the incoming message and take appropriate action based on its content. It is useful for responding to external data or commands and processing messages within the VR Experience.

This node is related to Open External Connection node

[![Screenshot 2025-02-02 161759.jpg](https://simlab-soft.com/help/uploads/images/gallery/2025-02/scaled-1680-/screenshot-2025-02-02-161759.jpg)](https://simlab-soft.com/help/uploads/images/gallery/2025-02/screenshot-2025-02-02-161759.jpg)

**Input Ports:**

- Enable

**Output Ports:**

- Execute
- Message

  
The WebSocket nodes (Open External Connection, Send Message, and Receive Message) are exclusively available in the Ultimate Edition.

# Voice Command

### [![Response_Gadget_EquipToUser.png](https://simlab-soft.com/help/uploads/images/gallery/2024-08/response-gadget-equiptouser.png)](https://simlab-soft.com/help/uploads/images/gallery/2024-08/response-value-number-add.png) Voice Command Recognized 

![Ceiling Node.png](https://simlab-soft.com/help/uploads/images/gallery/2024-09/scaled-1680-/ba6image.png)

The **Voice Command Recognized event** is used to activate a response when the user says a specific command. This event listens for predefined voice commands and triggers the associated actions or responses within the VR environment upon recognizing the command.

#### Example

![image.png](https://simlab-soft.com/help/uploads/images/gallery/2024-09/scaled-1680-/Dkrimage.png)

In this example, a new voice command named "Door Open" is created by accessing the Voice Command section from the Interaction menu and adding the command in the Voice Commands window.

![image.png](https://simlab-soft.com/help/uploads/images/gallery/2024-09/scaled-1680-/QIFimage.png)

The **Voice Command Recognized** **event** is used to link the newly created "Door Open" command. When the user says "Open the door", the door open sequence is triggered and plays.

---

# Execution

### [![Event_CustomEvent_Triggered.png](https://simlab-soft.com/help/uploads/images/gallery/2026-03/scaled-1680-/event-customevent-triggered.png)](https://simlab-soft.com/help/uploads/images/gallery/2026-03/event-customevent-triggered.png) Custom Event 

[![image.png](https://simlab-soft.com/help/uploads/images/gallery/2026-03/scaled-1680-/0hbimage.png)](https://simlab-soft.com/help/uploads/images/gallery/2026-03/0hbimage.png)

This event is activated manually by the user. It's useful when you want multiple different paths or actions to lead to the same response.

To set it up, use the [**Trigger Custom Event** response](https://simlab-soft.com/help/link/365#bkmrk-trigger-custom-actio) and assign it a unique ID (e.g., `path1`). You can place this trigger in as many locations as needed.

Whenever a **Trigger Custom Event** is called, it will execute the **Custom Event** that has a matching ID.

If you want to pass additional info, you can use the info field in **Trigger Custom Event** response, this data will be passed to the even in the info port

---

### [![Event_Scene_Start.png](https://simlab-soft.com/help/uploads/images/gallery/2026-03/scaled-1680-/event-scene-start.png)](https://simlab-soft.com/help/uploads/images/gallery/2026-03/event-scene-start.png) Scene Start

[![image.png](https://simlab-soft.com/help/uploads/images/gallery/2026-03/scaled-1680-/2T1image.png)](https://simlab-soft.com/help/uploads/images/gallery/2026-03/2T1image.png)

This event is triggered automatically when the scene begins. Use it to initialize elements at startup, such as playing videos, running background animations, or any other setup tasks.

> **Note:** Since this event fires the moment the scene loads, it's recommended to add a small delay before making additional scene changes — this ensures all scene elements have fully initialized before anything else runs.

---

### ![Event_Ticker.png](https://simlab-soft.com/help/uploads/images/gallery/2026-03/scaled-1680-/event-ticker.png) Ticker

[![image.png](https://simlab-soft.com/help/uploads/images/gallery/2026-03/scaled-1680-/pYZimage.png)](https://simlab-soft.com/help/uploads/images/gallery/2026-03/pYZimage.png)

The **Ticker** event node functions as a continuous, time-based loop that repeatedly activates subsequent nodes at a consistent rate. As long as its Enable input is set to *True*, the node constantly triggers its Execute output every time the duration specified in the numerical Interval input (measured in seconds) elapses. Once activated, it continually outputs this time value through the Period pin, allowing the logic flow to perform recurring actions or background checks for as long as the node remains enabled.

**Example:**

[![image.png](https://simlab-soft.com/help/uploads/images/gallery/2026-03/scaled-1680-/OfNimage.png)](https://simlab-soft.com/help/uploads/images/gallery/2026-03/OfNimage.png)

In this example, we use the Ticker node to create a loop that randomly changes a material's color every 2.5 seconds:

1. A **Watch Boolean Expression** node continuously monitors the "speed1" variable and activates the **Ticker** node once the value equals 1.
2. While enabled, the **Ticker** node creates a continuous loop that triggers its execution output every 2.5 seconds.
3. The Ticker simultaneously executes three **Set Number Variable By Expression** nodes to generate random values using the `math.random()` function for the variables r1, g1, and b1.
4. These three random numbers are passed into an **RGB To Color** node, where they are combined to formulate a new color.
5. Finally, this new color is sent to a **Set Material Color** node, which immediately applies the randomly generated color to the target material.

# Snapping

### ![Event_Node_Snapping_CanSnap.png](https://simlab-soft.com/help/uploads/images/gallery/2026-03/scaled-1680-/event-node-snapping-cansnap.png) Node Ready To Snap

[![image.png](https://simlab-soft.com/help/uploads/images/gallery/2026-03/scaled-1680-/3Lvimage.png)](https://simlab-soft.com/help/uploads/images/gallery/2026-03/3Lvimage.png)

The **Node Ready to Snap** event node activates the exact moment a designated SceneNode enters the valid snapping range of an eligible target. This node is highly useful for triggering immediate visual or audio feedback—such as highlighting a destination socket green or playing a hovering sound—letting the user know the object is ready to be released and snapped.

### ![Event_Node_Snapping_Snapped.png](https://simlab-soft.com/help/uploads/images/gallery/2026-03/scaled-1680-/event-node-snapping-snapped.png) Node Snapped

[![image.png](https://simlab-soft.com/help/uploads/images/gallery/2026-03/scaled-1680-/djHimage.png)](https://simlab-soft.com/help/uploads/images/gallery/2026-03/djHimage.png)

The **Node Snapped** event node activates immediately after a SceneNode has successfully completed its snapping action onto a target socket. This event is typically used to seamlessly progress a sequence, such as locking the snapped part in place, playing a mechanical click sound, or advancing the user to the next step of an assembly training scenario.

# sceneNode \ Attributes

### ![Event_Node_Attribute_Added.png](https://simlab-soft.com/help/uploads/images/gallery/2026-03/scaled-1680-/event-node-attribute-added.png) Node Attribute Added

[![image.png](https://simlab-soft.com/help/uploads/images/gallery/2026-03/scaled-1680-/SPvimage.png)](https://simlab-soft.com/help/uploads/images/gallery/2026-03/SPvimage.png)

The **Node Attribute Added** event node continuously monitors the targeted SceneNode and activates whenever a completely new attribute is attached to it. This event is typically used in conjunction with **Set Node Attribute nodes** to trigger subsequent actions. Once activated, it outputs the affected SceneNode along with the specific Category and Name of the newly created attribute.

---

### ![Event_Node_Attribute_Changed.png](https://simlab-soft.com/help/uploads/images/gallery/2026-03/scaled-1680-/event-node-attribute-changed.png) Node Attribute Changed

[![image.png](https://simlab-soft.com/help/uploads/images/gallery/2026-03/scaled-1680-/Ciwimage.png)](https://simlab-soft.com/help/uploads/images/gallery/2026-03/Ciwimage.png)

The **Node Attribute Changed** event node observes the targeted SceneNode and activates whenever the value of any of its existing attributes is modified. Once activated, the node outputs the affected SceneNode alongside the exact Category and Name of the altered attribute.

---

### ![Event_Node_Attribute_Removed.png](https://simlab-soft.com/help/uploads/images/gallery/2026-03/scaled-1680-/event-node-attribute-removed.png) Node Attribute Removed

[![image.png](https://simlab-soft.com/help/uploads/images/gallery/2026-03/scaled-1680-/0Lcimage.png)](https://simlab-soft.com/help/uploads/images/gallery/2026-03/0Lcimage.png)

The **Node Attribute Removed** event node tracks the targeted SceneNode and activates the moment an existing attribute is deleted from the object. This event is typically used alongside the **Remove Node Attribute** node to initiate reactions to data clearance. Once activated, it outputs the affected SceneNode forward along with the specific Category and Name of the deleted attribute.