<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>World_triggers on GS_Play Gameplay Framework</title><link>https://gsplay.genomestudios.ca/categories/world_triggers/</link><description>Recent content in World_triggers on GS_Play Gameplay Framework</description><generator>Hugo</generator><language>en-us</language><atom:link href="https://gsplay.genomestudios.ca/categories/world_triggers/index.xml" rel="self" type="application/rss+xml"/><item><title>Trigger Sensors</title><link>https://gsplay.genomestudios.ca/docs/framework/interaction/world_triggers/trigger_sensors/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://gsplay.genomestudios.ca/docs/framework/interaction/world_triggers/trigger_sensors/</guid><description>&lt;p&gt;&lt;code&gt;TriggerSensorComponent&lt;/code&gt; is the condition container of the World Trigger system. It owns arrays of &lt;code&gt;TriggerSensorType&lt;/code&gt; objects that define evaluation logic — collisions, interactions, record checks. When conditions pass, it fires &lt;code&gt;WorldTriggerRequestBus::Trigger&lt;/code&gt; on the same entity.&lt;/p&gt;
&lt;p&gt;For usage guides and setup examples, see &lt;a href="../../../../the_basics/interaction/world_triggers/"&gt;The Basics: GS_Interaction&lt;/a&gt;.&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id="container"&gt;Container Component&lt;/h2&gt;
&lt;h3 id="trigger-sensor-component"&gt;TriggerSensorComponent&lt;/h3&gt;
&lt;p&gt;&lt;img src="https://gsplay.genomestudios.ca/images/interaction/TriggerSensorComponent.png" alt="Trigger Sensor component in the O3DE Inspector"&gt;&lt;/p&gt;
&lt;p&gt;Owns and evaluates all sensor type objects. Not subclassed — extended by adding &lt;code&gt;TriggerSensorType&lt;/code&gt; objects to its arrays.&lt;/p&gt;</description></item><item><title>SensorType_Record</title><link>https://gsplay.genomestudios.ca/docs/framework/interaction/world_triggers/trigger_sensors/record_trigger_sensor/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://gsplay.genomestudios.ca/docs/framework/interaction/world_triggers/trigger_sensors/record_trigger_sensor/</guid><description>&lt;p&gt;For usage guides and setup examples, see &lt;a href="../../../../../the_basics/interaction/world_triggers/"&gt;The Basics: GS_Interaction&lt;/a&gt;.&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id="overview"&gt;Overview&lt;/h2&gt;
&lt;p&gt;&lt;code&gt;SensorType_Record&lt;/code&gt; is a &lt;code&gt;TriggerSensorType&lt;/code&gt; that fires when a named save record is changed to a configured value. Add it to the &lt;code&gt;andConditions&lt;/code&gt; or &lt;code&gt;orConditions&lt;/code&gt; array on a &lt;code&gt;TriggerSensorComponent&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;Inherits from &lt;code&gt;RecordKeeperNotificationBus&lt;/code&gt; — connects automatically on &lt;code&gt;Activate&lt;/code&gt; and listens for record changes without polling. When a matching record change arrives, it calls &lt;code&gt;TriggerSensorRequestBus::DoAction&lt;/code&gt; on the owning component, which runs the full condition evaluation pipeline.&lt;/p&gt;</description></item><item><title>World Triggers</title><link>https://gsplay.genomestudios.ca/docs/framework/interaction/world_triggers/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://gsplay.genomestudios.ca/docs/framework/interaction/world_triggers/</guid><description>&lt;p&gt;The World Trigger system pairs a &lt;code&gt;TriggerSensorComponent&lt;/code&gt; (condition side) with a &lt;code&gt;WorldTriggerComponent&lt;/code&gt; (response side) to create event-driven world state changes. Each component owns an array of polymorphic type objects — sensor types define what conditions to evaluate, trigger types define what happens when the condition passes. Any combination of types can be composed on a single entity without scripting.&lt;/p&gt;
&lt;p&gt;For usage guides and setup examples, see &lt;a href="../../../the_basics/interaction/world_triggers/"&gt;The Basics: GS_Interaction&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;h2 id="contents"&gt;Contents&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="#architecture"&gt;Architecture&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#trigger-actions"&gt;Trigger Sensors&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#world-triggers"&gt;World Triggers&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#extension"&gt;Extension Guide&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#see-also"&gt;See Also&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;hr&gt;
&lt;h2 id="architecture"&gt;Architecture&lt;/h2&gt;
&lt;div class="row docs-cols"&gt;

 &lt;div class="col-md-6 docs-col"&gt;
 &lt;center&gt;
 &lt;img
 src="https://gsplay.genomestudios.ca/images/interaction/WorldTriggerPattern.png"
 alt="World Trigger Pattern Graph"
 style="max-width:100%; height:auto;"
 &gt;
 &lt;/center&gt;
 &lt;/div&gt;

 &lt;div class="col-md-6 docs-col"&gt;
 &lt;h2 id="breakdown"&gt;Breakdown&lt;/h2&gt;
&lt;p&gt;World Triggers split conditions from responses using a polymorphic type/component pattern. The two container components sit on the entity; logic lives in the type objects they own.&lt;/p&gt;</description></item><item><title>World Triggers</title><link>https://gsplay.genomestudios.ca/docs/framework/interaction/world_triggers/world_triggers/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://gsplay.genomestudios.ca/docs/framework/interaction/world_triggers/world_triggers/</guid><description>&lt;p&gt;&lt;code&gt;WorldTriggerComponent&lt;/code&gt; is the response container of the World Trigger system. It owns an array of &lt;code&gt;WorldTriggerType&lt;/code&gt; objects that execute when triggered — toggling entities, setting records, changing stages, logging messages.&lt;/p&gt;
&lt;p&gt;For usage guides and setup examples, see &lt;a href="../../../../the_basics/interaction/world_triggers/"&gt;The Basics: GS_Interaction&lt;/a&gt;.&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id="container"&gt;Container Component&lt;/h2&gt;
&lt;h3 id="world-trigger-component"&gt;WorldTriggerComponent&lt;/h3&gt;
&lt;p&gt;&lt;img src="https://gsplay.genomestudios.ca/images/interaction/WorldTriggerComponent.png" alt="World Trigger component in the O3DE Inspector"&gt;&lt;/p&gt;
&lt;p&gt;Owns and drives all trigger type objects. Not subclassed — extended by adding &lt;code&gt;WorldTriggerType&lt;/code&gt; objects to &lt;code&gt;triggerTypes&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Bus:&lt;/strong&gt; &lt;code&gt;WorldTriggerRequestBus&lt;/code&gt; (ById)&lt;/p&gt;
&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th&gt;Field&lt;/th&gt;
 &lt;th&gt;Type&lt;/th&gt;
 &lt;th&gt;Description&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;triggerTypes&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;&lt;code&gt;vector&amp;lt;WorldTriggerType*&amp;gt;&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;All types are executed on each trigger or reset event.&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th&gt;Method&lt;/th&gt;
 &lt;th&gt;Description&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;Trigger()&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;Calls &lt;code&gt;Execute(entityId)&lt;/code&gt; on every type in &lt;code&gt;triggerTypes&lt;/code&gt;.&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;Reset()&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;Calls &lt;code&gt;OnReset(entityId)&lt;/code&gt; on every type in &lt;code&gt;triggerTypes&lt;/code&gt;.&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;On &lt;code&gt;Activate()&lt;/code&gt;, calls &lt;code&gt;OnComponentActivate(entityId)&lt;/code&gt; on every type — use this for initial state seeding (e.g. entity visibility setup before any trigger fires).&lt;/p&gt;</description></item></channel></rss>