Logic auto

From Valve Developer Community
Revision as of 16:55, 21 October 2022 by Stack man (talk | contribs) (In TF2, bug occurs with OnMapSpawn, but not OnMultiNewRound. Potentially originally misplaced, but cannot confirm behavior in other games.)
Jump to navigation Jump to search
English (en)Português do Brasil (pt-br)Русский (ru)中文 (zh)Translate (Translate)
logic_auto
Logic auto.png
TypePoint entity
EngineSource Source
AvailabilityIn all games
 

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.

Warning.pngWarning: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.pngWarning:This entity counts as an edict, not a logical entity as one would expect, and therefore it can contribute to the entity limit. If this is an issue, use logic_relay and its OnSpawn output.
Note.pngNote:In Counter-Strike: Source Counter-Strike: Source and Counter-Strike: Global Offensive Counter-Strike: Global Offensive when a map loads and when the round is reset (Counter-Strike: Global Offensive CS:GO including resets for warmup and resets in any other game mode), this entity fires the 3 outputs OnNewGame/OnBackgroundMap (exactly one of these, see below), OnMapSpawn and OnMultiNewMap in this order.
Note.pngNote:In Counter-Strike: Global Offensive CS:GO the output 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)<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.pngNote:Valve's FGDs always include the Half-Life 2 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

[ 1 ] : Remove on fire
Whether the logic_auto is deleted after firing. Delayed outputs will still work, however.

Outputs

OnMapSpawn
Fired when the map is loaded for any reason including saves.
Icon-Bug.pngBug:Team Fortress 2 Also fires when a new round starts, making it behave identically to OnMultiNewRound, except that it is also fired when the map is loaded.
Todo: Does this occur in other games?
  [todo tested in ?]
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 only in multiplayer, when a new map is loaded.
OnMultiNewRound
Fired only in multiplayer, when a new round is started. Only fired in multiplayer games that use round-based gameplay.
Icon-Bug.pngBug:except: Team Fortress 2 Also fires when a new round starts, making it behave identically to OnMultiNewRound, except that it is also fired when the map is loaded.
Todo: Confirm if present in any game.
  [todo tested in ?]
OnViolenceLow (only in SiN)
Fired when the map is loaded for any reason if the game is in low-violence mode.
OnViolenceHigh (only in SiN)
Fired when the map is loaded for any reason if the game is not in low-violence mode.