Env global

From Valve Developer Community
Revision as of 09:58, 18 September 2018 by Blixibon (talk | contribs) (Revision + Extra information on HL2 global states)
Jump to navigation Jump to search
English (en)Translate (Translate)
Env global.png

Template:Base point It controls game-specific global states, such as whether the gravity gun should become the super gravity gun in HL2.

Global states persist across level transitions, regardless of their status. Global states are not stored until an env_global receives any commands that modify the state, such as turning it on or off or changing the counter. Use the Set Initial State flag for the global to be added on spawn.

To remove a global from the table entirely, set the global's state to "Dead" using the Remove input. This will cause the global to remove itself on the next level transition.

Globals and their current state (in integer form) are added to all entities' response data for use in the Response System.

C++ In code, it is represented by theCEnvGlobalclass, defined in thelogicentities.cppfile.

ConVars/Commands

Cvar/Command Parameters or default value Descriptor Effect
dump_globals Dumps data for all set global states.
global_set globalname state Set the status of a global state. First parameter is the name of it, second is a number.
  • 0 = off
  • 1 = on
  • 2 = dead
A global can also be created instantly with this command.

Flags

  • 1: Set Initial State - Whether this entity defines the global state when the map starts.

Keyvalues

Global State to Set (globalstate) ([todo internal name (i)]) <choices>
The global state this entity is linked to. In practice all of Valve's FGDs include the HL2 states regardless of whether the game understands them. Global states are not exclusive to these choices and any text can be used.
gordon_precriminal Creates the pre-criminal behavior seen in Point Insertion.
antlion_allied Makes antlions friendly to the player and allows them to listen to bugbait, as seen in the Nova Prospekt chapters.
suit_no_sprint Disables the HEV suit's sprint function.
(not required if the HEV suit is not equipped)
super_phys_gun Enables the supercharged gravity gun seen in the Citadel levels of Half-Life 2 and Episode One.
Note.pngNote:Doesn't work in HL2:DM.
friendly_encounter Indicates a friendly encounter sequence. (lowers weapons, etc.)
citizens_passive !FGD Makes citizens neutral to the Combine and the player.
(also done by gordon_precriminal)
gordon_invulnerable Makes the player invulnerable to damage.
(Retains knockback, view punches, etc. unlike god mode)
no_seagulls_on_jeep Prevents seagulls from spawning on the jeep.
ep2_alyx_injured Episode 2: Invokes Alyx's "injured" behavior:
Confirm:Does this give Alyx her injured walking animation?
ep_alyx_darknessmode Episodic: Enables "darkness mode", as seen at the beginning of Episode One.
(This affects Alyx, the player, zombies, and even fires.)
hunters_to_run_over Ep2 Counter: The number of hunters that should be ran over before they start dodging vehicles.
If this global's counter is greater than 0, hunters will not try to dodge incoming vehicles.
Instead, this global's counter will decrement by 1 each time a hunter is killed by a vehicle until it reaches 0, after which they return to dodging vehicles.
Initial State (initialstate) ([todo internal name (i)]) <choices>
Used by Set Initial State to determine what the global state should be set to when the map starts.
  • 0: Off
  • 1: On
  • 2: Dead
Counter (counter) ([todo internal name (i)]) <integer> (in all games since Half-Life 2: Episode Two)
An integer counter value associated with this global.
Icon-Bug.pngBug:There is an aliasing problem for this keyvalue (keyvalue and output have the same name). To make it work, simply change its name in the source code DEFINE_OUTPUT declaration.  [todo tested in ?]


Inputs

TurnOn
Sets the global's state to ON.
TurnOff
Sets the global's state to OFF.
Toggle
Switches state of the global between ON and OFF.
Remove
Set state of global to DEAD.
AddToCounter <integerRedirectInput/integer> (in all games since Half-Life 2: Episode Two)
Adds the specified amount to the counter.
SetCounter <integerRedirectInput/integer> (in all games since Half-Life 2: Episode Two)
Sets the value of the counter.
GetCounter  (in all games since Half-Life 2: Episode Two)
Fires this entity's Counter output.


Outputs

Counter <integerRedirectInput/integer> (in all games since Half-Life 2: Episode Two)
Outputs the integer value of this entity. May depend on global state.