# 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&#x26;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&#x26;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.


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://pororoca-works.gitbook.io/s.b.i-simple-basic-interaction-documentation/interactable-actors.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
