Skip to content
Back to wiki

Interaction System

A

Author

Author

Created: Apr 14, 2025Updated: Oct 19, 2026

Table of contents

Overview

The GenericGameSystem interaction module provides candidate, option, and authoritative state management around Smart Objects. It can support pickups, doors, seats, and multi-entry interactions, while your project supplies object search, UI presentation, and the actual gameplay behavior.

Search and candidates

The server owns the candidate list and refreshes interaction state. SearchInteractableActors() only broadcasts a search trigger; it does not run Trace, Overlap, or Targeting queries. A project listener implements its search strategy and passes results to the component with SetInteractableActors().

The component updates the current actor and available options from those candidates. Interaction definitions, Smart Object slots, and project filters together determine which entries are usable.

Multiplayer authority and execution

StartInteraction(), EndInteraction(), and InstantInteraction() are server-authoritative operations. The candidate actor array stays on the server; the owning client receives presentation state such as the candidate count, current actor, options, and active index. The current component source does not promise client prediction. If a project Ability flow predicts input, validate that behavior through the project's own Ability networking strategy.

For Smart Object Gameplay Behaviors, an Ability flow can use UGGS_AbilityTask_UseSmartObjectWithGameplayBehavior to start the behavior. The project defines Smart Objects, slots, occupancy rules, behavior assets, search, and UI presentation.

Interaction examples in the companion project

The current GenericGame project's InteractionCore folder contains GA_GGS_Interaction, TP_QueryPotentialSmartObjects, and WB_GGS_InteractionBox: useful inspection points for an interaction Ability, Smart Object query Targeting Preset, and interaction prompt Widget. They show how a project can connect the plugin components to gameplay, while trace/overlap search, object setup, and final presentation remain project-owned. These assets live in the companion project, not plugin Content. See Companion Project Content and Example Assets for full paths.

Integration and use cases

Search from the server with a project Trace, Overlap, Targeting task, or custom rules, then update candidates through the component's authority-only API. Multi-slot seating, interactive doors, contextual rescue options, and instant pickups can use this composition; concurrency and rules depend on the Smart Object setup and project behavior.

See How to Integrate and the interaction Targeting filter task in Shared Gameplay Utilities.