Skip to content

Interactables

The Interactables system lets you define objects the player can use, examine, enter, climb, or otherwise interact with.

Interact Example

At a high level:

  • An Interactable marks a GameObject as something that can be interacted with.
  • An Interactor scans the scene, finds the best valid Interactable, and triggers system events as interactions begin, continue, and end.

This gives you a reusable way to build interactions such as doors, ladders, seats, switches, pickups, vehicles, and terminals.

For FSMs, the main entry point into this system is the InteractorUpdate action. It updates an Interactor, evaluates nearby Interactables, handles optional activation input, writes useful outputs, and sends the interaction system events.

How It Works

The system evaluates nearby Interactables and checks whether each one is valid for the current actor.

An Interactable can define rules such as:

  • how far away the actor can be
  • whether the actor must be inside a trigger
  • whether the actor must approach from a specific side
  • whether the actor must be facing the target
  • whether a raycast hit is required
  • whether the interaction happens automatically or only after activation

The Interactor chooses the best candidate based on those rules and the Interactable priority.

To review all interactables currently loaded in your scenes, use the Interactables Browser.

Core Components

Interactable

Add Component > PlayMaker > Interactable

Add the Interactable component to any object you want the system to detect.

Use it to define:

  • the interaction name, such as Door, Climb, or Seat
  • the target GameObject that should receive events
  • distance and position limits
  • approach and facing requirements
  • optional activation and docking behavior

See: Interactable Component

Interactor

Add Component > PlayMaker > Interactor

Add the Interactor component to the actor that performs interactions, such as the player or an AI character.

Use it to define:

  • where interaction checks start from
  • which layers can contain interactables
  • which layers can block raycast checks
  • the search radius
  • an optional tag filter

See: Interactor Component

Basic Setup

Use this workflow to get a simple interaction working:

  1. Add an Interactable component to the object you want to use.
  2. Make sure the object has a Collider, or a child/related Collider the system can resolve.
  3. Set the interaction name and any range, facing, or activation rules.
  4. Add an Interactor component to the player or actor.
  5. Set the Interactor search radius and layer mask so it can find the target.
  6. In the actor FSM, use InteractorUpdate every frame to update the Interactor.
  7. Read the action outputs or respond to the interaction system events in your FSMs.

Interaction Events

The Interactables system sends events to both the actor and the Interactable target as selection and interaction state changes.

The main events are:

  • OnInteractAvailable
  • OnInteractUnavailable
  • OnInteractFocus
  • OnInteractLostFocus
  • OnInteractStart
  • OnInteract
  • OnInteractEnd

For a full lifecycle walkthrough, event timing, and examples, see Interaction Events.

Example

Here is a common pattern for a button that the player activates with a Use key:

  1. Add an Interactable component to the button.
  2. Set Name to Use.
  3. Enable Needs Activation.
  4. Optionally set the activation ID to Use.
  5. Add an Interactor component to the player.
  6. Configure the Interactor to search the layer used by the button collider.
  7. In the player FSM, run InteractorUpdate every frame and provide activation input when the Use control is pressed.
  8. In the button FSM, handle OnInteract to play the button press animation and trigger your gameplay logic.

For interactions that have a clear enter and exit phase, such as ladders, seats, or elevators, you can also handle OnInteractStart and OnInteractEnd.

For a ladder or climb volume, you would usually use a larger collider, a suitable interaction name such as Climb, and often disable explicit activation if entering the interaction should happen automatically.

Next Steps