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
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
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
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