# User \ Controller

<div dir="auto" id="bkmrk-"><div dir="auto"><div style="clear: left;"></div></div></div>### [![Response_Node_AttachToHand.png](https://simlab-soft.com/help/uploads/images/gallery/2024-08/response-node-attachtohand.png)](https://simlab-soft.com/help/uploads/images/gallery/2024-08/response-value-number-add.png) Attach To Hand

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

The **Attach to Hand** node enables the user to attach objects to specific parts of the hand in a VR environment by selecting the desired hand part. This node allows for precise placement of objects, such as tools or items, enhancing interactivity within the VR Experience. Once the attachment is configured, the object will remain in the chosen part of the hand during interactions.

#### Example

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

In this example, an **Attach to Hand node** is used to attach a syringe to the index finger once the "Hand Enter Node" event is triggered. The syringe is attached to the specified part of the hand automatically when the event occurs, enabling interaction with the object in the VR environment.

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

<div dir="auto" id="bkmrk--3"><div dir="auto">---

</div></div>### [![Response_Node_DetachFromHand.png](https://simlab-soft.com/help/uploads/images/gallery/2026-03/scaled-1680-/response-node-detachfromhand.png)](https://simlab-soft.com/help/uploads/images/gallery/2026-03/response-node-detachfromhand.png) Detach From Hand 

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

The **Detach From Hand** , detaches an object currently attached by the [Attach To Hand ](https://simlab-soft.com/help/link/369#bkmrk-number-variable-valu)response, so the object no more moves with the hand

<div dir="auto" id="bkmrk--6"><div dir="auto">---

</div></div>### [![Response_User_SetShowBeam.png](https://simlab-soft.com/help/uploads/images/gallery/2024-08/response-user-setshowbeam.png)](https://simlab-soft.com/help/uploads/images/gallery/2024-08/response-value-number-add.png) Trigger Beam<span style="color: rgb(34, 34, 34); font-size: 2.333em; font-weight: 400;"> </span>  


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

The **Trigger Beam node** enables the user to control the visibility of a beam coming out of the controller in the VR Experience, once the node is executed.

#### Example

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

In this example, a **Trigger Beam node** is used to hide the beam coming out of the controller once the object named Activate is triggered. When the event is triggered, the change is reflected during the VR Experience.

<div dir="auto" id="bkmrk--13"><div dir="auto">---

</div></div><div dir="auto" id="bkmrk--15"><div dir="auto">---

</div></div>### Enable Controller Vibration

Makes a participant’s VR controller buzz, so you can give them a physical nudge of feedback during a scene.

#### What it does

When this node runs, the chosen user’s controller vibrates in their hand. You pick which hand buzzes, how strong the buzz feels, how fast it pulses, and how long it lasts. This is great for confirming an action, drawing attention to something, or signalling a mistake.

It only triggers a buzz — it doesn’t change anything about the user or the scene. The same user is passed straight back out, so you can keep chaining more user nodes after it.

#### Inputs

<div dir="auto" id="bkmrk-port-type-what-to-co"><div dir="auto"><table><thead><tr><th style="white-space: nowrap;">Port</th><th style="white-space: nowrap;">Type</th><th>What to connect</th></tr></thead><tbody><tr><td style="white-space: nowrap;">**Execute**</td><td style="white-space: nowrap;">Trigger</td><td>Wire this from the previous node’s Execute output.</td></tr><tr><td style="white-space: nowrap;">**User**</td><td style="white-space: nowrap;">User</td><td>Choose who feels the buzz. Pick `Host Only` to vibrate just the host’s controller, or `All Users` to vibrate everyone’s. You can also connect a User coming from an earlier node.</td></tr><tr><td style="white-space: nowrap;">**Hand**</td><td style="white-space: nowrap;">Choice</td><td>Which controller buzzes: `Right`, `Left`, or `Both`. Choosing `Both` vibrates both controllers at once.</td></tr><tr><td style="white-space: nowrap;">**Strength**</td><td style="white-space: nowrap;">Choice</td><td>How intense the buzz feels: `High`, `Medium`, or `Low`.</td></tr><tr><td style="white-space: nowrap;">**Frequency**</td><td style="white-space: nowrap;">Choice</td><td>How fast the buzz pulses: `High`, `Medium`, or `Low`.</td></tr><tr><td style="white-space: nowrap;">**Duration**</td><td style="white-space: nowrap;">Number</td><td>How long the buzz lasts, in seconds (0 or more). For example, `1` is a one-second buzz.</td></tr></tbody></table>

</div></div>#### Outputs

<div dir="auto" id="bkmrk-port-type-what-you-g"><div dir="auto"><table><thead><tr><th style="white-space: nowrap;">Port</th><th style="white-space: nowrap;">Type</th><th>What you get</th></tr></thead><tbody><tr><td style="white-space: nowrap;">**Execute**</td><td style="white-space: nowrap;">Trigger</td><td>Fires once the node has finished.</td></tr><tr><td style="white-space: nowrap;">**User**</td><td style="white-space: nowrap;">User</td><td>The same user you chose, passed along so you can connect more user nodes after this one.</td></tr></tbody></table>

</div></div>#### Example

<div dir="auto" id="bkmrk-user-input-host-only"><div dir="auto"><table><tbody><tr><td style="white-space: nowrap;">**User** input</td><td>`Host Only`</td></tr><tr><td style="white-space: nowrap;">**Hand** input</td><td>`Right`</td></tr><tr><td style="white-space: nowrap;">**Strength** input</td><td>`High`</td></tr><tr><td style="white-space: nowrap;">**Frequency** input</td><td>`Medium`</td></tr><tr><td style="white-space: nowrap;">**Duration** input</td><td>`1` (a one-second buzz)</td></tr><tr><td style="white-space: nowrap;">**User** output</td><td>The host, ready to pass on to the next node</td></tr></tbody></table>

</div></div>#### Tips

<div dir="auto" id="bkmrk-use-a-short%2C-strong-"><div dir="auto">- Use a short, strong buzz to confirm a correct action, and a longer or gentler one to warn of a mistake.
- Pick `Both` for the Hand when you want a buzz the participant can’t miss.

---

</div></div>### Disable Controller Vibration

Turns off the buzzing (haptic feedback) in a participant’s VR controller.

#### What it does

This node stops the vibration in the chosen hand’s controller for the user you pick. Use it to silence the controller after a buzz, or to make sure a controller stays quiet during a particular part of your scene.

You choose which participant it affects (the host only, or everyone) and which hand to quiet down — the right controller, the left controller, or both. It only controls the vibration; it doesn’t change anything else about the controller or the user, and the same user is passed straight back out so you can connect more user nodes after it.

#### Inputs

<div dir="auto" id="bkmrk-port-type-what-to-co-0"><div dir="auto"><table><thead><tr><th style="white-space: nowrap;">Port</th><th style="white-space: nowrap;">Type</th><th>What to connect</th></tr></thead><tbody><tr><td style="white-space: nowrap;">**Execute**</td><td style="white-space: nowrap;">Trigger</td><td>Wire this from the previous node’s Execute output to run the node.</td></tr><tr><td style="white-space: nowrap;">**User**</td><td style="white-space: nowrap;">User</td><td>Chooses which participant to act on. Pick **Host Only** to quiet just the main user’s controller, or **All Users** to quiet everyone’s.</td></tr><tr><td style="white-space: nowrap;">**Hand**</td><td style="white-space: nowrap;">Choice</td><td>Which controller to turn off the vibration on: **Right**, **Left**, or **Both**.</td></tr></tbody></table>

</div></div>#### Outputs

<div dir="auto" id="bkmrk-port-type-what-you-g-0"><div dir="auto"><table><thead><tr><th style="white-space: nowrap;">Port</th><th style="white-space: nowrap;">Type</th><th>What you get</th></tr></thead><tbody><tr><td style="white-space: nowrap;">**Execute**</td><td style="white-space: nowrap;">Trigger</td><td>Fires once the vibration has been turned off, so you can continue to the next node.</td></tr><tr><td style="white-space: nowrap;">**User**</td><td style="white-space: nowrap;">User</td><td>The same user you chose, passed along so you can chain more user nodes after this one.</td></tr></tbody></table>

</div></div>#### Example

<div dir="auto" id="bkmrk-user-input-host-only-0"><div dir="auto"><table><tbody><tr><td style="white-space: nowrap;">**User** input</td><td>`Host Only`</td></tr><tr><td style="white-space: nowrap;">**Hand** input</td><td>`Both`</td></tr><tr><td style="white-space: nowrap;">**User** output</td><td>The same host user, ready to connect to the next node</td></tr></tbody></table>

</div></div>#### Tips

<div dir="auto" id="bkmrk-pair-this-with-the-e">- Pair this with the **Enable Controller Vibration** node: turn the buzzing on for a moment of feedback, then use this node to switch it back off.
- Choose **Both** when you want both controllers to stop at the same time, rather than adding two separate nodes for the left and right hands.

</div>