Logic auto: Difference between revisions
Jump to navigation
Jump to search

Warning:Attempting to directly access or modify the player may cause Access Violation errors, because the outputs are fired before the player has spawned. Adding a slight time delay may overcome this.
Warning:This entity counts as an edict, not a logical entity as one would expect, and therefore it can contribute to the networked entity limit. If this is an issue, use logic_relay and its
Note:In
Counter-Strike: Source and
Counter-Strike: Global Offensive when a map loads and when the round is reset (
CS:GO including resets for warmup and resets in any other game mode), this entity fires the 3 outputs
Note:In
CS:GO the output
Note:All activators of these outputs are NULL and caller is this entity. (see special targetnames)
mNo edit summary |
No edit summary |
||
(39 intermediate revisions by 9 users not shown) | |||
Line 1: | Line 1: | ||
{{ | {{LanguageBar}} | ||
{{ | {{TabsBar|main=Logic auto}} | ||
{{this is a|logical entity|name=logic_auto|sprite=1}} | |||
{{CD|CLogicAuto|file1=logicauto.cpp}} | {{CD|CLogicAuto|file1=logicauto.cpp}} | ||
It fires [[Inputs and Outputs#Outputs|output]]s immediately after a map loads, unlike most other [[Entity|entities]] that wait for input first. It can be set to check a [[env_global|global state]] before firing, which allows you to fire events based on what took place in a previous map. | |||
{{warning|Attempting to directly access or modify the [[player]] may cause Access Violation errors, because the outputs are fired before the player has spawned. Adding a slight time delay may overcome this.}} | {{warning|Attempting to directly access or modify the [[player]] may cause Access Violation errors, because the outputs are fired before the player has spawned. Adding a slight time delay may overcome this.}} | ||
{{warning|This entity counts as an [[edict_t|edict]], not a logical entity as one would expect, and therefore it can contribute to the [[entity limit]]. If this is an issue, use {{ent|logic_relay}} and its <code>OnSpawn</code> output.}} | {{warning|This entity counts as an [[edict_t|edict]], not a logical entity as one would expect, and therefore it can contribute to the networked [[entity limit]]. If this is an issue, use {{ent|logic_relay}} and its <code>OnSpawn</code> output.}} | ||
{{note|In {{css|4}} and {{csgo|4}} when a map loads and when the round is reset ({{csgo|nt=1|4}} including resets for warmup and resets in any other [[CS:GO Game Modes|game mode]]), this entity fires the 3 outputs <code>OnNewGame</code>/<code>OnBackgroundMap</code> (exactly one of these, see below), <code>OnMapSpawn</code> and <code>OnMultiNewMap</code> in this order.}} | {{note|In {{css|4}} and {{csgo|4}} when a map loads and when the round is reset ({{csgo|nt=1|4}} including resets for warmup and resets in any other [[CS:GO Game Modes|game mode]]), this entity fires the 3 outputs <code>OnNewGame</code>/<code>OnBackgroundMap</code> (exactly one of these, see below), <code>OnMapSpawn</code> and <code>OnMultiNewMap</code> in this order.}} | ||
{{note|In {{csgo|nt=1|4}} the output <code>OnMultiNewRound</code> is actually fired in response to the game events <code>round_start</code> and <code>teamplay_round_start</code> and does not depend on the <code>Global State to Read</code>. When a round is reset, it is fired before the previous 3, but not when a map is loaded.}} | {{note|In {{csgo|nt=1|4}} the output <code>OnMultiNewRound</code> is actually fired in response to the game events <code>round_start</code> and <code>teamplay_round_start</code> and does not depend on the <code>Global State to Read</code>. When a round is reset, it is fired before the previous 3, but not when a map is loaded.}} | ||
==Keyvalues== | == Keyvalues == | ||
{{ | {{KV|Global State to Read|intn=globalstate|string choices|If set, this specifies a global state to check before firing. Outputs are only fired if this global state exists and if it is turned on. {{note|Valve's [[FGD]]s always include the {{hl2|4}} global states here, but any value can be entered. See {{ent|env_global}} for a list of default global states in each game.}}}} | ||
==Flags== | ==Flags== | ||
{{ | {{fl|1|Remove on fire|Whether the {{ent|logic_auto}} is deleted after firing. Delayed outputs will still work, however.}} | ||
==Outputs== | ==Outputs== | ||
{{ | {{O|OnMapSpawn|Fired shortly after the entity spawns (''including loading saves'').}} | ||
{{ | {{O|OnNewGame|Fired when the map is loaded to start a new game.}} | ||
{{ | {{O|OnLoadGame|Fired when the map is loaded from a saved game.}} | ||
{{ | {{O|OnMapTransition|Fired when the map is loaded due to a level transition.}} | ||
{{ | {{O|OnBackgroundMap|Fired when the map is loaded as a background to the main menu using {{ent|Map (console command)|alt=map_background}}.}} | ||
{{ | {{O|OnMultiNewMap|Fired shortly after the entity spawns but only in multiplayer and if the round wasn't restarted | ||
{{ | :{{note|In {{l4ds}} fires only on first map load in a session. Any subsequent round restart or transition to next chapter will have OnMultiNewRound fired}} | ||
{{ | }} | ||
{{ | {{O|OnMultiNewRound|Fired shortly after the entity spawns but only in multiplayer and if round was restarted}} {{warning|{{tf2}} Does not get fired when tournament mode is enabled (<code>mp_tournament</code> 1). Use <code>OnMapSpawn</code> instead}} | ||
{{O|OnDemoMapSpawn|Fired when the map is loaded in Demo Mode.|only={{l4d2}}}} | |||
{{expand|title=Only in {{sineps|4}}| | |||
{{O|OnViolenceLow|Fired when the map is loaded for any reason if the game is in low-violence mode.}} | |||
{{O|OnViolenceHigh|Fired when the map is loaded for any reason if the game is not in low-violence mode.}} | |||
}} | |||
{{note|All activators of these outputs are NULL and caller is this entity. (see [[Targetname#Special targetnames|special targetnames]])}} | |||
== See Also == | |||
* {{l4dseries}} {{ent|info_gamemode}} | |||
* {{goldsrc}} {{ent|trigger_auto|engine=goldsrc}} | |||
[[Category:IO System]] | [[Category:IO System]] |
Latest revision as of 04:06, 20 May 2025

logic_auto
is a logical entity available in all Source games.
![]() |
---|
CLogicAuto |
![]() |
It fires outputs immediately after a map loads, unlike most other entities that wait for input first. It can be set to check a global state before firing, which allows you to fire events based on what took place in a previous map.


OnSpawn
output.



OnNewGame
/OnBackgroundMap
(exactly one of these, see below), OnMapSpawn
and OnMultiNewMap
in this order.

OnMultiNewRound
is actually fired in response to the game events round_start
and teamplay_round_start
and does not depend on the Global State to Read
. When a round is reset, it is fired before the previous 3, but not when a map is loaded.Keyvalues
- Global State to Read (globalstate) <string choices>
- If set, this specifies a global state to check before firing. Outputs are only fired if this global state exists and if it is turned on.
Note:Valve's FGDs always include the
Half-Life 2 global states here, but any value can be entered. See env_global for a list of default global states in each game.
Flags
- Remove on fire : [1]
- Whether the logic_auto is deleted after firing. Delayed outputs will still work, however.
Outputs
- OnMapSpawn
- Fired shortly after the entity spawns (including loading saves).
- OnNewGame
- Fired when the map is loaded to start a new game.
- OnLoadGame
- Fired when the map is loaded from a saved game.
- OnMapTransition
- Fired when the map is loaded due to a level transition.
- OnBackgroundMap
- Fired when the map is loaded as a background to the main menu using map_background.
- OnMultiNewMap
- Fired shortly after the entity spawns but only in multiplayer and if the round wasn't restarted
- OnMultiNewRound
- Fired shortly after the entity spawns but only in multiplayer and if round was restarted
|
