> For the complete documentation index, see [llms.txt](https://pororoca-works.gitbook.io/s.b.i-simple-basic-interaction-documentation/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://pororoca-works.gitbook.io/s.b.i-simple-basic-interaction-documentation/interactable-actors.md).

# Interactable Actors

### Interactable Actors

The core of the S.B.I. system revolves around two key blueprint types:

* `BP_MasterTarget`
* `BP_MasterControl`

Both of these derive from a shared base class: `BP_MasterInteractable`.

***

#### 🔹 BP\_MasterTarget

Used for actors that **receive inputs** and perform actions.\
Examples: doors, lights, alarms, item pickups.

***

#### 🔹 BP\_MasterControl

Used for actors that **send inputs** to one or more targets.\
Examples: switches, levers, panels.

***

### ⚙️ Shared Base Class: `BP_MasterInteractable`

All interactable actors share a set of core variables for quick setup and customization, editable either in the Blueprint or per instance in the editor.\
\
![](https://2763894655-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FLrKEdL4IPuDIPLmnegKb%2Fuploads%2FksWLpPdppGRTVTcfLroT%2Fimage.png?alt=media\&token=f6de8f41-04d3-4926-9bc0-583350d7d314)

***

#### 📁 Setting Default (BP\_MasterInteractable)

| Variable                                                                    | Type                 | Description                                       |
| --------------------------------------------------------------------------- | -------------------- | ------------------------------------------------- |
| `Type`                                                                      | `EN_InteractionType` | Defines how the actor is interacted with:         |
| • **Press** – Activates on button press                                     |                      |                                                   |
| • **Hold** – Requires hold input (displays progress bar)                    |                      |                                                   |
| • **Area** – No direct interaction; triggered via overlap or external logic |                      |                                                   |
| `HoldTime`                                                                  | `Float`              | How long the button must be held (Hold type only) |

***

#### 🧾 Setting Widget

| Variable      | Type      | Description                                                  |
| ------------- | --------- | ------------------------------------------------------------ |
| `AllowWidget` | `Boolean` | If true, shows interaction prompt when player looks at actor |
| `PopUpText`   | `Name`    | Text to display in the popup widget                          |

***

#### 🎒 Setting Requirement (Item-based Activation)

These variables apply if the interactable requires items to activate.

| Variable                | Type      | Description                                           |
| ----------------------- | --------- | ----------------------------------------------------- |
| `HasItemRequirement?`   | `Boolean` | If true, this actor requires items to activate        |
| `ItemToLookFor`         | `EN_Item` | Item type required                                    |
| `ItemQuantityToLookFor` | `Integer` | Quantity of items required                            |
| `AllItemsAtOnce`        | `Boolean` | If true, all required items must be delivered at once |

***

### 🧩 BP\_MasterControl Specific Variables

#### 📁 Setting Default

| Variable         | Type      | Description                                                       |
| ---------------- | --------- | ----------------------------------------------------------------- |
| `Controls`       | `Array`   | List of `BP_MasterTarget` actors to control                       |
| `Active`         | `Boolean` | Is the control active by default                                  |
| `PairedControls` | `Array`   | Other controls linked to this one (e.g. disable others after use) |
| `FiresOnce`      | `Boolean` | If true, can only be triggered once                               |

***

#### ⏱️ Delay Activation

| Variable              | Type      | Description                                                  |
| --------------------- | --------- | ------------------------------------------------------------ |
| `HasDelay`            | `Boolean` | Enables delay before triggering target                       |
| `Delay`               | `Float`   | Delay time in seconds                                        |
| `AllTargetsWithDelay` | `Boolean` | If true, applies delay to each controlled actor individually |

***

### 🎯 BP\_MasterTarget Specific Variables

| Variable           | Type      | Description                                               |
| ------------------ | --------- | --------------------------------------------------------- |
| `FreeFromControls` | `Boolean` | Can be activated directly by player (no control required) |
| `Active`           | `Boolean` | Is it active by default                                   |
| `FiresOnce`        | `Boolean` | Can it be activated more than once                        |

***

### 🔁 Blueprint Events & Flow

* **`Event Main Interaction`**\
  Core event called when the actor is triggered. This is where you implement the logic for what should happen (open door, toggle light, etc.)
* **`Trigger Control`** (BP\_MasterControl only)\
  Call this to execute all linked `BP_MasterTarget` events.

<figure><img src="https://2763894655-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FLrKEdL4IPuDIPLmnegKb%2Fuploads%2FEhgEktfmXri8SBktYZCY%2Fimage.png?alt=media&amp;token=0ecfe40d-d107-4dd3-bc0d-4c7d64ea580c" alt=""><figcaption></figcaption></figure>

<figure><img src="https://2763894655-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FLrKEdL4IPuDIPLmnegKb%2Fuploads%2FCfsi1U4DWi9b0EN7Deex%2Fimage.png?alt=media&amp;token=180956d9-2928-4f14-84db-4ec1406022a0" alt=""><figcaption></figcaption></figure>

> ⚙️ Note: Individual actor logic like lever movement or door animations are handled inside each actor’s custom Blueprint logic.
