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)
(In TF2, bug occurs with OnMapSpawn, but not OnMultiNewRound. Potentially originally misplaced, but cannot confirm behavior in other games.) |
No edit summary |
||
(42 intermediate revisions by 10 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}} | ||
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
|
