> For the complete documentation index, see [llms.txt](https://hiveminddocs.gitbook.io/hivemind/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://hiveminddocs.gitbook.io/hivemind/code-systems/ultimate-interaction-system-uis/classes/components/interaction-component.md).

# Interaction Component

Adding this to an actor effectively makes it into an interactable.

To make an actor able to handle interaction events you'll need to add this component to the actor.

This component has a set of bindable events and some properties to help you set up your interactions for your actors.

## <mark style="color:blue;">Functions</mark>

### <mark style="color:blue;">Bindable Events</mark>

* <mark style="color:yellow;">On Interaction Started</mark>: Executed upon interaction start - Handle any logic you wish here upon interaction start.
* <mark style="color:yellow;">On Interaction Triggered</mark>: Executed upon triggering the interaction. This is the most commonly used function, this is where your logic resides for what should happen when the when this actor has been interacted with.
* <mark style="color:yellow;">On Interaction Release</mark>: Executed upon player releasing the interaction. Any logic that should happen upon releasing an interaction should be placed here. Example could be damaging the player upon releasing the interaction before it had finished.
* <mark style="color:yellow;">On Interaction Cancelled</mark>: Executed upon cancelling the interaction. Any logic you want to happen if the interaction has been cancelled should be placed here.

### <mark style="color:blue;">Editable Properties</mark>

* <mark style="color:yellow;">Interaction Execution Mode</mark>: Set the type of player interaction for this interactable here.
* <mark style="color:yellow;">Custom Mode</mark>: The custom mode index
* <mark style="color:yellow;">Time Length</mark>: Determines the length of Timed Interaction Execution mode, or when using the Execute Timed Event function.
* <mark style="color:yellow;">Time Animation Curve</mark>: If you want to change the Timed Event progress update animation (default is linear) then set a curve here to change progress update animation beheavior.
* <mark style="color:yellow;">Use Interaction Limit</mark>: Enables or Disables Use Interaction Limit. This allows you to only let this interactable to be interacted with a Certain amount of times.
* <mark style="color:yellow;">Interaction Limit</mark>: Amount of times this interactable can be interacted with.
