Templates
Categories:
All GS_Interaction extension types are generated through the ClassWizard CLI. The wizard handles UUID generation, cmake file-list registration, and reflection automatically.
For usage guides and setup examples, see The Basics: GS_Interaction.
python ClassWizard.py \
--template <TemplateName> \
--gem <GemPath> \
--name <SymbolName> \
[--input-var key=value ...]
Contents
Pulsor Pulse
Template: PulsorPulse
Creates a Pulse — the sender side of the Pulsor system. A Pulse fires on a named channel and carries a typed payload. Any PulsorReactor on the same entity listening to the same channel will receive it.
Generated files:
Source/${Name}_Pulse.h/.cpp
CLI:
python ClassWizard.py --template PulsorPulse --gem <GemPath> --name <Name> \
--input-var type_display_name="My Pulse" \
--input-var type_category="Input"
Input vars:
| Var | Type | Default | Description |
|---|---|---|---|
type_display_name | text | ${Name} | Label shown in the Pulse type dropdown in the editor |
type_category | text | (empty) | Grouping category in the dropdown (e.g. Input, Physics, Timer) |
Post-generation: Implement Fire() with the data payload your channel requires. Match the channel string to the Reactor that will receive it. Each Pulse/Reactor pair is one interaction channel — channels are string-matched.
See also: Pulsors — full pulsor architecture, built-in pulse types, and extension guide.
Pulsor Reactor
Template: PulsorReactor
Creates a Reactor — the receiver side of the Pulsor system. Listens on a specific named channel and executes a response when a matching Pulse fires on the same entity.
Generated files:
Source/${Name}_Reactor.h/.cpp
CLI:
python ClassWizard.py --template PulsorReactor --gem <GemPath> --name <Name> \
--input-var pulse_channel=MyChannel \
--input-var type_display_name="My Reactor" \
--input-var type_category="Input"
Input vars:
| Var | Type | Required | Description |
|---|---|---|---|
pulse_channel | text | yes | The channel name this reactor subscribes to — must match the Pulse’s channel |
type_display_name | text | no | Label shown in the Reactor type dropdown |
type_category | text | no | Grouping category in the dropdown |
Important: pulse_channel is required. The channel string is baked into the header at generation time. If you need to change it later, edit the m_channel field directly in the generated header.
Post-generation: Implement OnPulse(...) with the response logic. Multiple Reactor instances of different types can coexist on one entity, each listening to a different channel.
See also: Pulsors — full pulsor architecture, built-in reactor types, and extension guide.
World Trigger
Template: WorldTrigger
Creates a WorldTrigger component — a logical trigger in the world that fires a named event when activated. Used to start dialogue sequences, cutscenes, or other scripted events from gameplay code or Script Canvas.
Generated files:
Source/${Name}_WorldTrigger.h/.cpp
CLI:
python ClassWizard.py --template WorldTrigger --gem <GemPath> --name <Name>
Post-generation: Wire the trigger activation to whatever condition suits the design (physics overlap, input event, distance check, etc.). Override Trigger() — call the parent first to check channels and conditions. Override Reset() for reversible triggers.
See also: World Triggers — full world trigger architecture and extension guide.
Trigger Sensor
Template: TriggerSensor
Creates a TriggerSensor — the listening side of a trigger pair. Registers to receive named trigger events from a WorldTrigger and executes a response action.
Generated files:
Source/${Name}_TriggerSensor.h/.cpp
CLI:
python ClassWizard.py --template TriggerSensor --gem <GemPath> --name <Name>
Post-generation: Subscribe to the matching trigger event name in Activate(). Override EvaluateAction() to define your trigger condition. Override DoAction() — call the parent first, then add custom behavior if it succeeds. Stack sensors to react to the same trigger in different ways.
See also: Trigger Sensors — full trigger sensor reference.
See Also
For the full API, component properties, and C++ extension guide:
For all ClassWizard templates across GS_Play gems:
Get GS_Interaction
GS_Interaction — Explore this gem on the product page and add it to your project.