Logic relay: Difference between revisions
SirYodaJedi (talk | contribs)   | 
				|||
| (81 intermediate revisions by 38 users not shown) | |||
| Line 1: | Line 1: | ||
{{  | {{LanguageBar}}  | ||
==  | {{TabsBar|main=s2|base=logic relay}}  | ||
{{This is a|logical entity|name=logic_relay|sprite=1}}   | |||
{{CD|CLogicRelay|file1=logicrelay.cpp}}  | |||
It is a Output forwarder, which can be used to fire many [[Inputs and Outputs#Outputs|output]]s at once from just one input, or, by being disabled, to break an I/O chain. It can also be very helpful for organization and keeping you from having to edit MANY instances of the same outputs, as opposed to just one.  | |||
After a <code>logic_relay</code> is triggered, it cannot be triggered again until all of its outputs are fired. This is useful for when a relay has a sequence of delayed outputs that shouldn't be repeated until the sequence is finished. This behavior can be disabled with the "Allow fast retrigger" spawnflag.  | |||
==Keyvalues==  | {{ent|logic_relay}} combines the functionality of {{ent|trigger_relay|game=Half-Life: Source}} and {{ent|multi_manager|game=Half-Life: Source}} from {{goldsrc|2}}. The older entities still exist in {{hls|2}}, but are deprecated.  | ||
__NOTOC__  | |||
== Keyvalues ==  | |||
{{KV Targetname}}  | |||
{{KV|Start Disabled|boolean|intn=StartDisabled|When disabled, <code>OnTrigger</code> output won't fire.}}  | |||
== Flags ==  | |||
{{fl|1|Only trigger once}}   | |||
{{fl|2|Allow fast retrigger}}    | |||
== Inputs ==  | |||
{{I|Trigger|param=void|Trigger the relay, causing its OnTrigger output to fire if it is enabled.}}  | |||
{{I|Enable|param=void|Allows the relay to fire the OnTrigger outputs after being disabled.}}  | |||
{{I|Disable|param=void|Prevents the relay from firing OnTrigger outputs in response to Trigger inputs.}}  | |||
{{I|Toggle|param=void|Toggle the relay between enabled and disabled.}}  | |||
{{I|CancelPending|param=void|Cancel any events fired by this relay that are currently pending in the I/O event queue   | |||
:{{bug|hidetested=1|If the caller of this input is the logic_relay itself it will break the I/O event queue which leads to a crash.}}}}  | |||
{{I|EnableRefire|param=void|Automatically fired on a relay after any delayed outputs finish firing, allowing it to fire again.|nofgd=1}}  | |||
{{I|TriggerWithParameter|param=variant|only={{mapbase}}|Triggers the relay with a parameter, causing its OnTriggerParameter output to fire if it is enabled.}}  | |||
==  | == Outputs ==  | ||
{{O|OnSpawn|param=void|ac-is-this=1|Fired when the relay is spawned. If the relay is set to only trigger once, it will delete itself after firing this output.{{note|Every level load (including save loads!) triggers this output, unless "Fire once only" is checked.}}}}  | |||
{{O|OnTrigger|param=void|activator = activator of Trigger input|Fired when the relay is triggered. If the relay is set to only trigger once, it will delete itself after firing this output.}}  | |||
{{O|OnTriggerParameter|param=variant|only={{mapbase}}|activator = activator of TriggerWithParameter input|Fired when the relay is triggered with a parameter. If the relay is set to only trigger once, it will delete itself after firing this output.}}  | |||
== See Also ==  | |||
* {{ent|logic_case}}  | |||
*   | |||
[[Category:IO System]]  | |||
[[Category:  | |||
Latest revision as of 06:59, 31 October 2025

logic_relay  is a   logical entity  available in all 
 Source games. 
| CLogicRelay | 
It is a Output forwarder, which can be used to fire many outputs at once from just one input, or, by being disabled, to break an I/O chain. It can also be very helpful for organization and keeping you from having to edit MANY instances of the same outputs, as opposed to just one.
After a logic_relay is triggered, it cannot be triggered again until all of its outputs are fired. This is useful for when a relay has a sequence of delayed outputs that shouldn't be repeated until the sequence is finished. This behavior can be disabled with the "Allow fast retrigger" spawnflag.
logic_relay combines the functionality of trigger_relay and multi_manager from 
 GoldSrc. The older entities still exist in 
 Half-Life: Source, but are deprecated.
Keyvalues
- Name (targetname) <string>[ Edit ]
 - The name that other entities refer to this entity by, via Inputs/Outputs or other keyvalues (e.g. 
parentnameortarget).
Also displayed in Hammer's 2D views and Entity Report.See also: Generic Keyvalues, Inputs and Outputs available to all entities 
- Start Disabled (StartDisabled) <boolean>
 - When disabled, 
OnTriggeroutput won't fire. 
Flags
- Only trigger once : [1]
 
- Allow fast retrigger : [2]
 
Inputs
- Trigger <void>
 - Trigger the relay, causing its OnTrigger output to fire if it is enabled.
 
- Enable <void>
 - Allows the relay to fire the OnTrigger outputs after being disabled.
 
- Disable <void>
 - Prevents the relay from firing OnTrigger outputs in response to Trigger inputs.
 
- Toggle <void>
 - Toggle the relay between enabled and disabled.
 
- CancelPending <void>
 - Cancel any events fired by this relay that are currently pending in the I/O event queue
 
Bug:If the caller of this input is the logic_relay itself it will break the I/O event queue which leads to a crash.
- EnableRefire <void> !FGD
 - Automatically fired on a relay after any delayed outputs finish firing, allowing it to fire again.
 
- TriggerWithParameter  <variant> (only in 
) - Triggers the relay with a parameter, causing its OnTriggerParameter output to fire if it is enabled.
 
Outputs
- OnSpawn <void>
 - !activator = !caller = this entity
Fired when the relay is spawned. If the relay is set to only trigger once, it will delete itself after firing this output.
Note:Every level load (including save loads!) triggers this output, unless "Fire once only" is checked. 
- OnTrigger <void>
 - !activator = activator of Trigger input
!caller = this entity
Fired when the relay is triggered. If the relay is set to only trigger once, it will delete itself after firing this output. 
- OnTriggerParameter  <variant> (only in 
) - !activator = activator of TriggerWithParameter input
!caller = this entity
Fired when the relay is triggered with a parameter. If the relay is set to only trigger once, it will delete itself after firing this output.