point_commentary_nodeis a point entity available in Half-Life 2: Episode One.
The core entity used in the Commentary System. It appears as a floating speech bubble for the player to +USE, which then starts the commentary playing. This entity is typically placed with the Commentary Editor.
Unlike most entities, the point_commentary_node is often hand-edited into the commentary files, and as a result, there are some extra keys listed here that Hammer would normally fill in automatically for you.
For a commentary node to be able to be activated by a player (+use while looking at the node), the player must have
commentary set to 1 and the map must have a
<map name>_commentary.txt file in the same directory as the BSP . This file may be empty and/or embedded in the BSP.
If a map with a point_commentary_node is being played in multiplayer only the first player to join will be considered the 'commentary player'. As such only their view will be ray traced to determine the active commentary node 
Although not explicitly stated, this entity may use fields from the RenderFields base class. The render options selected will affect the speech bubble model of the node.
- Start disabled.
- The origin of this entity within the map.
- The orientation of this entity within the map.
- The commentary sound file that should be played when this node is used by the player.
- The commentary sound file that should be played when this node is used by the player. If the player has HDR turned off, this file will be used instead of the commentaryfile. If this entry is not specified, the base commentaryfile entry will still be used.
- The name of the speakers of the commentary sound file(s). Will be displayed in the HUD while the commentary sound file is playing.
- A short synopsis of the contents of the commentary.
- A semi-colon delimited list of commands that should entered into the console when the commentary file starts playing. e.g.
ai_disable 1;mat_wireframe 1
- A semi-colon delimited list of commands that should entered into the console when the commentary file finishes playing. e.g.
ai_disable 0;mat_wireframe 0
- The targetname of an entity to which the players view should move while the commentary file is playing. When the commentary file finishes, the players view will move back to the place it was when the commentary started.
- The targetname of an entity that the players view should track while the commentary file is playing. The player will not be able to control their view while the commentary file plays.
- If true, the player will not be able to move while the commentary sound file is playing.
- Entity Scripts
- Space delimited list of VScript files (without file extension) that are executed after all entities have spawned. The scripts are all executed in the same script scope, later ones overwriting any identical variables and functions.
- Script think function
- Name of a function in this entity's script which will be called automatically every 100 milliseconds (ten times a second) for the duration of the script. It can be used to create timers or to simulate autonomous behavior. The return value (if present) will set the time until the next call. Note:Try to avoid expensive operations in this function, as it may cause performance problems.
- Origin (X Y Z) (origin)
- The position of this entity's center in the world. Rotating entities typically rotate around their origin.
- Pitch Yaw Roll (Y Z X) (angles)
- This entity's orientation in the world. Pitch is rotation around the Y axis, yaw is the rotation around the Z axis, roll is the rotation around the X axis.
- Force the commentary node to start.
- Force the commentary node to start, and don't allow the player to stop it in any way.
- Removes this entity from the world.
- Removes this entity and its children from the world. Note:Entities already remove orphaned children upon being removed, but this input removes all children on the same frame, being marginally faster than
- Adds a keyvalue/output to this entity. It can be potentially very dangerous, use with care.
<output name> <targetname>:<inputname>:<parameter>:<delay>:<max times to fire, -1 means infinite>
- Fire the
OnUseroutputs; see User Inputs and Outputs.
- Same as a player invoking +use; may not do anything depending on the entity. Can also be invoked by firing an output that does not specify an input.
- Execute a VScript file from disk, without file extension. The script contents are merged with the script scope of the receiving entity.
- Execute a string of VScript source code in the scope of the entity receiving the input. String quotation may be needed when fired via console. Bug: In , the code is executed in the script scope of the entity that fires the output, not the one receiving the input.Warning: Never try to pass string parameters to a script function with this input. It will corrupt the VMF structure because of the nested quotation marks, which then must be removed manually with a text editor.
- Execute a VScript function in the scope of the receiving entity.
- Send this entity to a spot in the map. If the entity is parented to something, it will be offset from the parent by this amount.
- Set this entity's angles.
- Move with this entity. See Entity Hierarchy (parenting).
- Change this entity to attach to a specific attachment point on its parent. The entity will teleport so that the position of its root bone matches that of the attachment. Entities must be parented before being sent this input.
- As above, but without teleporting. The entity retains its position relative to the attachment at the time of the input being received.
- Removes this entity from the the movement hierarchy, leaving it free to move independently.
- Enable/disable this entity from performing its task. It might also disappear from view.
- Fires when this commentary starts playing.
- Fires when this commentary stops playing. May be caused by the commentary file finishing, or by the player stopping it manually (if the node wasn't started with the
StartUnstoppableCommentaryinput). If the node controls the players view with the
viewpositionkey, then this input will be fired when the players view has finished returning to its original position.
- These outputs each fire in response to the firing of the like-numbered
FireUser4Input; see User Inputs and Outputs.
- This output fires when the entity is killed and removed from the game.