Tf logic training mode: Difference between revisions
		
		
		
		
		
		Jump to navigation
		Jump to search
		
				
		
 
 Tip:This entity, as well as most of its Inputs, can be used on any multiplayer map by spawning this entity after map load and setting the
Tip:This entity, as well as most of its Inputs, can be used on any multiplayer map by spawning this entity after map load and setting the  Workaround:Many of these issues have workarounds:
Workaround:Many of these issues have workarounds:
 Warning:
Warning:
		
	
|  (link, activator/caller info) |  (→Inputs) | ||
| Line 32: | Line 32: | ||
| == Inputs == | == Inputs == | ||
| {{warning|<code>EndTraining</code>, <code>PlaySoundOnPlayer</code>, and <code>ForcePlayerSwapToWeapon</code> will not work on dedicated servers.}} | {{warning|<code>EndTraining</code>, <code>PlaySoundOnPlayer</code>, and <code>ForcePlayerSwapToWeapon</code> will not work on dedicated servers.}} | ||
| {{I|ShowTrainingMsg|Show a training message, for training mode. The parameter  | {{I|ShowTrainingMsg|Show a training message, for training mode. The parameter can be any raw string or a localized string entry from tf_english.txt|param=string}} | ||
| {{I|ShowTrainingObjective|param=string|Sets a training objective to show to the player.}} | {{I|ShowTrainingObjective|param=string|Sets a training objective to show to the player.}} | ||
| {{I|KickBots|Kicks all [[bot]]s from the server.}} | {{I|KickBots|Kicks all [[bot]]s from the server.}} | ||
Revision as of 08:45, 8 May 2025

 
|  Class hierarchy | 
|---|
| CTrainingModeLogic | 
|  tf_gamerules.cpp | 
tf_logic_training_mode  is a   logical entity  available in  Team Fortress 2.
Handles outputs and and messages for training, mainly for the player.
 Team Fortress 2.
Handles outputs and and messages for training, mainly for the player.
 Tip:This entity, as well as most of its Inputs, can be used on any multiplayer map by spawning this entity after map load and setting the
Tip:This entity, as well as most of its Inputs, can be used on any multiplayer map by spawning this entity after map load and setting the m_bIsInTraining NetProp on tf_gamerules to true with VScript, however there are multiple caveats:
- Players loadout will be replaced with stock items
- The server will be hidden from the server browser, this will persist for the entire duration of the map
- Achievement tracking is disabled
- Doesn't print player join or team switch chat messages (they can still be seen when opening chat)
- Team and class switching menus will be disabled, however join_classandautoteamwill still work
- Autobalance is disabled
- Domination/Revenge logic is disabled
 Workaround:Many of these issues have workarounds:
Workaround:Many of these issues have workarounds:
- Iterate player items and store them in an array/table in player scope first, then re-equip them using this method after they are stripped.
- For custom servers, the hide_servercvar must be added to the vscript cvar allowlist, orsv_allow_point_servercommandmust be set toalwaysforSendToServerConsole
- Set m_bAllowTrainingAchievementsto true on tf_gamerules
- Set m_bIsInTrainingto false on player_connect or player_team and set back to true shortly after. However this will disable any active training HUD elements
Todo: No known workaround, need to enable/disable the NetProp or use the console commands for class/team switching
Todo: No known workaround
Todo: Potentially send the 
player_death event manually with domination/revenge death flags, or player_domination, untested.
Keyvalues
- Name (targetname) <string>[ Edit ]
- The name that other entities refer to this entity by, via Inputs/Outputs or other keyvalues (e.g. parentnameortarget).
 Also displayed in Hammer's 2D views and Entity Report.See also: Generic Keyvalues, Inputs and Outputs available to all entities
- Next Map (nextMap) <string>
- Next map to load when the current one is finished. Default choices are tr_dustbowlandtr_target, although any map is accepted.
Inputs
 Warning:
Warning:EndTraining, PlaySoundOnPlayer, and ForcePlayerSwapToWeapon will not work on dedicated servers.- ShowTrainingMsg <string>
- Show a training message, for training mode. The parameter can be any raw string or a localized string entry from tf_english.txt
- ShowTrainingObjective <string>
- Sets a training objective to show to the player.
- KickBots
- Kicks all bots from the server.
- ShowTrainingHUD
- Makes the training objective HUD visible.
- HideTrainingHUD
- Makes the training objective HUD hidden.
- EndTraining <string>
- Ends training mode. The parameter is for displaying ending text from tf_english.txt
- PlaySoundOnPlayer <string>
- Play a sound on the player.
- WaitForTimerOrKeypress <string>
- Wait for the specified logic_timer entity to fire on its interval or for a keypress from the player.
- SetNextMap <string>
- Set the next map for training.
- ForcePlayerSpawnAsClassOutput
- Force the appropriate output to fire for the player spawning as a class. You can use this to essentially ask what class the player is.
Outputs
Todo: See which outputs work in multiplayer
- OnPlayerSpawnAsScout <void>
- !activator = !caller = this entity
 Fired when the player spawns as a Scout.
- OnPlayerSpawnAsSniper <void>
- !activator = !caller = this entity
 Fired when the player spawns as a Sniper.
- OnPlayerSpawnAsSoldier <void>
- !activator = !caller = this entity
 Fired when the player spawns as a Soldier.
- OnPlayerSpawnAsDemoman <void>
- !activator = !caller = this entity
 Fired when the player spawns as a Demoman.
- OnPlayerSpawnAsMedic <void>
- !activator = !caller = this entity
 Fired when the player spawns as a Medic.
- OnPlayerSpawnAsHeavy <void>
- !activator = !caller = this entity
 Fired when the player spawns as a Heavy.
- OnPlayerSpawnAsPyro <void>
- !activator = !caller = this entity
 Fired when the player spawns as a Pyro.
- OnPlayerSpawnAsSpy <void>
- !activator = !caller = this entity
 Fired when the player spawns as a Spy.
- OnPlayerSpawnAsEngineer <void>
- !activator = !caller = this entity
 Fired when the player spawns as an Engineer.
- OnPlayerDied <void>
- !activator = the killer
 !caller = this entity
 Fired when the player dies.
- OnBotDied <void>
- !activator = the killer
 !caller = this entity
 Fired when a bot dies.
- OnPlayerSwappedToPrimary <void>
- !activator = !caller = this entity
 Fired when the player swaps to the item in their primary weapon slot.
- OnPlayerSwappedToSecondary <void>
- !activator = !caller = this entity
 Fired when the player swaps to the item in their secondary weapon slot.
- OnPlayerSwappedToMelee <void>
- !activator = !caller = this entity
 Fired when the player swaps to the item in their melee weapon slot.
- OnPlayerSwappedToBuilding <void>
- !activator = !caller = this entity
 Fired when the player swaps to the item in their building weapon slot.
- OnPlayerSwappedToPDA <void>
- !activator = !caller = this entity
 Fired when the player swaps to the item in their PDA weapon slot.
- OnBuildOutsideArea <void>
- !activator = the building
 !caller = this entity
 Fired when the player builds an object outside a suggested area.
- OnPlayerDetonateBuilding <void>
- !activator = the player
 !caller = the building
 Sent when the player manually detonates one of their buildings.























