GS_Interaction
Not yet publishedPulsors, targeting, cursors and world triggers.
In development See what it does
Three independent subsystems that work together to create responsive gameplay
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.
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.
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.
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
Required: GS_Core, LmbrCentral
UI/Display: LyShine
Rendering: CommonFeaturesAtom
All core O3DE gems — no external libraries needed.
Request Buses: 8 interfaces
Notification Buses: 1 interface
Full EBus integration for both C++ and Script Canvas workflows.
All polymorphic systems support inheritance. Custom types are discovered automatically through O3DE serialization.
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.
Every component is designed for inheritance. Create custom pulse types, reactor behaviors, and trigger actions. Your gameplay-specific logic builds on proven base implementations.
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.
From physics-driven events to player targeting to trigger-based actions — GS_Interaction has you covered.
Pulsors, targeting, cursors and world triggers.
In development See what it does