Info gamemode: Difference between revisions

From Valve Developer Community
Jump to navigation Jump to search
mNo edit summary
No edit summary
Line 4: Line 4:


== Outputs ==
== Outputs ==
{{IO|OnCoop}}
{{O|OnCoop}}
{{IO|OnVersus}}
{{O|OnVersus}}
{{IO|OnSurvival}}
{{O|OnSurvival}}
{{IO|OnScavenge|Fired when the map spawns in specified mode.  
{{O|OnScavenge|Fired when the map spawns in specified mode.  
:{{note|OnCoop fires in realism}}
:{{note|OnCoop fires in realism}}
:{{bug|Killing the info_gamemode itself in one of these outputs with 0 delay crashes the game|tested=l4d2}}|in=L4D2}}
:{{bug|Killing the info_gamemode itself in one of these outputs with 0 delay crashes the game|tested=l4d2}}|in=L4D2}}


{{IO|OnCoopPostIO|since=L4D2}}
{{O|OnCoopPostIO|only={{l4d2}}}}
{{IO|OnVersusPostIO|since=L4D2}}
{{O|OnVersusPostIO|only={{l4d2}}}}
{{IO|OnSurvivalPostIO|since=L4D2}}
{{O|OnSurvivalPostIO|only={{l4d2}}}}
{{IO|OnScavengePostIO|Fired shortly after all scavenge items have been populated|since=L4D2}}
{{O|OnScavengePostIO|Fired shortly after all scavenge items have been populated|only={{l4d2}}}}
:{{note|This doesn't mean item populating causes the output to be fired, mentioning item being populated just as a frame of reference}}
:{{note|This doesn't mean item populating causes the output to be fired, mentioning item being populated just as a frame of reference}}
:{{tip|Useful when wanting to spawn templated weapon_* entities and not have it affected by info_map_parameters densities {{confirm}}}}
:{{tip|Useful when wanting to spawn templated weapon_* entities and not have it affected by info_map_parameters densities {{confirm}}}}
Line 20: Line 20:
{{bug*|On<mode> and On<mode>PostIO outputs simply check base gamemode to determine whether to fire. So if a [[mode file]] specifies something else than coop, realism, versus, scavenge, survival as its base none of them will fire}} <!-- not sure if this warning should be on this page since it feels quite useless to whoever works with info_gamemode -->
{{bug*|On<mode> and On<mode>PostIO outputs simply check base gamemode to determine whether to fire. So if a [[mode file]] specifies something else than coop, realism, versus, scavenge, survival as its base none of them will fire}} <!-- not sure if this warning should be on this page since it feels quite useless to whoever works with info_gamemode -->


{{IO|OnScavengeMatchStart|Fired on the first map load of a scavenge match. Doesn't fire on round restarts. {{note|Fires shortly after OnGameplayStart of info_director is fired}}|since=L4D2}}
{{O|OnScavengeMatchStart|Fired on the first map load of a scavenge match. Doesn't fire on round restarts. {{note|Fires shortly after OnGameplayStart of info_director is fired}}|only={{l4d2}}}}
{{IO|OnNavAnalyze|Fired when the map is loaded with -navanalyze on the command line.|since=L4D2}}
{{O|OnNavAnalyze|Fired when the map is loaded with -navanalyze on the command line.|only={{l4d2}}}}


== Inputs ==
== Inputs ==
{{IO|PostSpawnActivate|Fired internally and causes On<Mode> output to fire. |nofgd=1}}
{{I|PostSpawnActivate|Fired internally and causes On<Mode> output to fire. |nofgd=1}}
{{IO|PreRoundActivate|Fired internally and causes On<Mode>PostIO output to fire.|nofgd=1}}
{{I|PreRoundActivate|Fired internally and causes On<Mode>PostIO output to fire.|nofgd=1}}
{{IO|FireScavengeMatchStart|Fired internally and causes OnScavengeMapStart output to fire.|nofgd=1}}
{{I|FireScavengeMatchStart|Fired internally and causes OnScavengeMapStart output to fire.|nofgd=1}}


{{Idea|Vscripts [[Left_4_Dead_2/Script_Functions#Hooks|Input{{!(}}InputName{{)!}}]] hook can be used  on these. {{todo| What happens when preventing these to fire by returning false ?}} }}
{{Idea|Vscripts [[Left_4_Dead_2/Script_Functions#Hooks|Input{{!(}}InputName{{)!}}]] hook can be used  on these. {{todo| What happens when preventing these to fire by returning false ?}} }}

Revision as of 22:20, 21 March 2025

English (en)Translate (Translate)
C++ Class hierarchy
CInfoGameMode
CBaseEntity
Info gamemode.png

info_gamemode is a point entity available in Left 4 Dead seriesLeft 4 Dead series Left 4 Dead series. When a map is loaded, this entity can fire outputs depending on the current game mode. This allows the all game modes to be available in a single map instead of having separate maps for each game mode.

Outputs

OnCoop
OnVersus
OnSurvival
OnScavenge
Fired when the map spawns in specified mode.
Note.pngNote:OnCoop fires in realism
Icon-Bug.pngBug:Killing the info_gamemode itself in one of these outputs with 0 delay crashes the game  (tested in: l4d2)


OnCoopPostIO  (only in Left 4 Dead 2)
OnVersusPostIO  (only in Left 4 Dead 2)
OnSurvivalPostIO  (only in Left 4 Dead 2)
OnScavengePostIO  (only in Left 4 Dead 2)
Fired shortly after all scavenge items have been populated
Note.pngNote:This doesn't mean item populating causes the output to be fired, mentioning item being populated just as a frame of reference
Tip.pngTip:Useful when wanting to spawn templated weapon_* entities and not have it affected by info_map_parameters densities [confirm]
Warning.pngRisk of Confusion:Description in FGD is not correct. This output does fire later than On<Mode> outputs but it doesn't wait until IO generated by it finishes. Doesn't even wait for the delays specified in On<Mode> outputs to expire.
Icon-Bug.pngBug*:On<mode> and On<mode>PostIO outputs simply check base gamemode to determine whether to fire. So if a mode file specifies something else than coop, realism, versus, scavenge, survival as its base none of them will fire


OnScavengeMatchStart  (only in Left 4 Dead 2)
Fired on the first map load of a scavenge match. Doesn't fire on round restarts.
Note.pngNote:Fires shortly after OnGameplayStart of info_director is fired
OnNavAnalyze  (only in Left 4 Dead 2)
Fired when the map is loaded with -navanalyze on the command line.

Inputs

PostSpawnActivate  !FGD
Fired internally and causes On<Mode> output to fire.
PreRoundActivate  !FGD
Fired internally and causes On<Mode>PostIO output to fire.
FireScavengeMatchStart  !FGD
Fired internally and causes OnScavengeMapStart output to fire.
Tip.pngIdea:Vscripts Input[InputName] hook can be used on these.
Todo:  What happens when preventing these to fire by returning false ?

See also