GS_Interaction

The tools players use to interface with your world.

From triggering physics events to targeting enemies to interacting with objects — all the systems that make your world reactive and responsive.

Complete Interaction Systems

Three independent subsystems that work together to create responsive gameplay

Pulsors & Reactors

A physics-based signal/response system. Pulsors emit typed events when physics triggers fire. Reactors listen for specific pulse types and respond. Perfect for destructibles, switches, and cascading gameplay events.

  • Type-Safe Events — Define custom pulse types for your game
  • Physics-Driven — Automatically tied to O3DE trigger volumes
  • Extensible Reactions — Built-in destructible and debug reactors, plus full inheritance support
  • Auto-Discovery — Custom pulse/reactor types discovered automatically through O3DE serialization
Explore Pulsors

Targeting System

Complete player focus and cursor management. The Targeting Handler automatically selects the best target from all registered candidates, while the Cursor system displays world-space or screen-space cursors with dynamic visuals.

  • Smart Target Selection — Closest target within interaction range
  • Visual Target Properties — Size, offset, color, and sprite per target
  • Cursor Management — World-space and screen-space cursor support
  • Input Integration — Interact Input Reader maps raw input to targeting events
  • Lock-On Support — Perfect for action games and RPGs
Explore Targeting

World Triggers

Extensible trigger actions that respond to player interaction, collisions, or save record conditions. From simple print-log debugging to complex stage changes — all driven by the same base architecture.

  • Multiple Activation Types — Interact, collision, or record-based triggers
  • Built-in Actions — Log, set records, toggle entities, change stages
  • Extensible Base — Inherit from TriggerSensorComponent or WorldTriggerComponent
  • Trigger/Reset Pattern — All triggers can be reset for repeatable events
Explore World Triggers

Technical Specifications

Components

22 total components

Pulsors & Reactors: PulsorComponent, 2 reactor types

Targeting: TargetingHandler, TargetableComponent, TargetCursor

World Triggers: 6+ trigger action types, WorldTriggerComponent base

Supporting: Interact Input Reader, Cursor Manager

Dependencies

Required: GS_Core, LmbrCentral

UI/Display: LyShine

Rendering: CommonFeaturesAtom

All core O3DE gems — no external libraries needed.

EBus Interfaces

Request Buses: 8 interfaces

Notification Buses: 1 interface

Full EBus integration for both C++ and Script Canvas workflows.

Extensibility

All polymorphic systems support inheritance. Custom types are discovered automatically through O3DE serialization.

Built for Real Games

Mix and Match

Use all three subsystems together or adopt only what you need. Targeting works without Pulsors. World Triggers work independently. The architecture stays out of your way.

Extend Everything

Every component is designed for inheritance. Create custom pulse types, reactor behaviors, and trigger actions. Your gameplay-specific logic builds on proven base implementations.

EBus Integrated

All systems communicate via O3DE’s EBus messaging. Query targets, emit pulses, trigger actions — all decoupled and event-driven. Works seamlessly in C++ and Script Canvas.

Ready to Make Your World Interactive?

From physics-driven events to player targeting to trigger-based actions — GS_Interaction has you covered.

Get GS_Play Read Documentation Explore Other Gems