The Advanced Interaction System is a modular Blueprint-based framework included in the Advanced ARPG Combat system. It enables dynamic interactions between player-controlled characters (interactors) and interactable world objects (e.g., chests, NPCs, bonfires).

This system solves the common need for a reusable, scalable interaction framework that can power a wide range of gameplay mechanics—from simple prompts to complex context-sensitive behaviors. It is especially useful for developers creating action RPGs, adventure games, or any genre requiring interaction with world elements.

Key Features:

  • Fully interface-driven architecture
  • Modular, customizable interaction logic
  • Widget support for visual prompts
  • Integration-ready with animation, UI, and ability systems

System Architecture

The system is built entirely in Blueprints and uses a component-interface design pattern. Below is a high-level diagram of the interaction flow:

graph TD
    Player[Player Character] --> IC[BP_InteractionComponent]
    IC -->|Trace Detects| Interactable[BP_Interactable or Custom Actor]
    Interactable -->|Implements| II[BP_InteractionInterface]
    Interactable --> Widget[WB_InteractableWidget]
    IC -->|Calls| II.Interact
    IC -->|Calls| II.ToggleInteractableMessage

Key Blueprint Classes

  • BP_InteractionComponent: Manages traces, interaction toggling, and event dispatch.
  • BP_InteractionInterface: Interface used to implement interaction logic on actors.
  • BP_Interactable: Example actor that implements the interface and includes a widget.
  • WB_InteractableWidget: UI element shown when an actor is in range and interactable.
  • ANS_Interact: Animation notify state to trigger interaction states during animations.

Core Features

  • Interactable Tracing: Performs timed capsule traces to detect interactables.
  • Toggle Message Display: Sends ToggleInteractableMessage to display or hide interaction widgets.
  • Interaction Event Handling: Calls Interact with a reference to the initiator, allowing custom reactions.
  • End Interaction: Ends or cleans up ongoing interaction logic.
  • Start Interactable Action: Enables external systems to trigger specific context-sensitive behavior.
  • Animation Notify Integration: Use ANS_Interact to sync interaction states with animation cues.