team_control_point
Todo:The deprecated template
{{Base point}}
, {{Point ent}}
or {{Tf2 point}}
(and similar) was used. Use {{Entity}}
instead.team_control_point
is a point entity available in Team Fortress 2. It marks the location of where a capture point should be at, and comes with various specific configurations that determine how it should look in the world, look in the hud, what points a team must own before it's available, etc.
By itself, it is not capable of influencing the game, and requires a trigger_capture_area alongside it to allow it be captured. A single of either team_control_point_master or team_control_point_round must also exist in the map.

Contents
Keyvalues
- Start locked
(point_start_locked)
<boolean> - Locked means the point will not be available for capture until it is unlocked via its input.
- Print Name
(point_printname)
<string> - LOCALIZED name to print on the HUD.
- Group Index
(point_index)
<integer> - Used for grouping points together under a team_control_point_master (not using control point rounds).
- Default Owner
(point_default_owner)
<choices> - Default Owner of the control point.
- 0 : Neither
- 2 : Red
- 3 : Blue
- Index
(point_start_locked)
<integer> - Index of this point (must be unique).
- Warning Type
(point_warn_on_cap)
<choices> - Type of warning to issue to the team that owns the control point when the opposing team starts to capture it. Note that the "We have lost the control point" voiceline will still play even if the point is neutral or "No Announcements" is set.
- 0 : Normal Announcements
- 1 : Final Capture Point Warning
- 2 : No Announcements
- Warning sound
(point_warn_sound)
<string> - Sound to be played when this point is being captured (if warn on capture is set).
- Randomly set the owner on restart
(random_owner_on_restart)
<boolean> - Randomly set the owner of this point during a full restart of the map. The ratio of default owners among the points with this flag will be kept when selecting random owners.
- Time-based point value for RED.
(team_timedpoints_2)
<integer>
- Time-based point value for BLUE.
(team_timedpoints_3)
<integer>
- Reset Sound
(team_capsound_0)
<sound> - Sound made when point resets.
- Red Capture Sound
(team_capsound_1)
<sound> - Sound made when RED captures.
- Blue Capture Sound
(team_capsound_2)
<sound> - Sound made when BLUE captures.
- Reset model bodygroup
(team_bodygroup_0)
<integer> - Control point model bodygroup used when point reverts to neutral state.
- RED model bodygroup
(team_bodygroup_1)
<integer> - Control point model bodygroup used when RED owns the point.
- BLUE model bodygroup
(team_bodygroup_2)
<integer> - Control point model bodygroup used when RED owns the point.
- HUD overlay neutral
(team_overlay_0)
<material> - HUD material that will overlay the icon when no one owns the point.
- HUD overlay RED
(team_overlay_2)
<material> - HUD material that will overlay the icon when RED owns the point.
- HUD overlay BLUE
(team_overlay_3)
<material> - HUD material that will overlay the icon when BLUE owns the point.
- RED Previous Required Point 1
(team_previouspoint_2_0)
<targetname> - The name of a previous capture point that RED must own to be able to capture this point. If empty, the team must own all points preceding this one. Pointing to itself means no previous point required.
- RED Previous Required Point 2
(team_previouspoint_2_1)
<targetname> - The name of a second previous capture point that RED must own to be abl!pe to capture this point.
- RED Previous Required Point 3
(team_previouspoint_2_2)
<targetname> - The name of a third previous capture point that RED must own to be able to capture this point.
- BLUE Previous Required Point 1
(team_previouspoint_3_0)
<targetname> - The name of a previous capture point that BLUE must own to be able to capture this point. If empty, the team must own all points preceding this one. Pointing to itself means no previous point required.
- BLUE Previous Required Point 2
(team_previouspoint_3_1)
<targetname> - The name of a second previous capture point that BLUE must own to be able to capture this point.
- BLUE Previous Required Point 3
(team_previouspoint_3_2)
<targetname> - The name of a third previous capture point that BLUE must own to be able to capture this point.
EnableDisable:
- Start Disabled
(StartDisabled)
<boolean> - Stay dormant until activated (with the
Enable
input).
Base:
- Parent
(parentname)
<targetname> - Maintain the same initial offset to this entity. An attachment point can also be used if separated by a comma at the end. (
parentname [targetname],[attachment]
)Tip: Entities transition to the next map with their parents

phys_constraint
can be used as a workaround if parenting fails.
- Origin (X Y Z)
(origin)
<coordinates> - The position of this entity's center in the world. Rotating entities typically rotate around their origin.
Note: Hammer does not move the entities accordingly only in the editor.
- Pitch Yaw Roll (X Y Z)
(angles)
<angle> - 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.
Note: This works on brush entities, although Hammer doesn't show the new angles.
- Classname
(classname)
<string> !FGD - Determines the characteristics of the entity before it spawns.
Tip: Changing this on runtime still has use, like making matching an entry in S_PreserveEnts will persist the entity on new rounds!
- Flags
(spawnflags)
<integer> !FGD - Toggles exclusive features of an entity, its specific number is determined by the combination of flags added.
Flags
- 1 : Hide Control Point on HUD
- 2 : Start with model hidden
- 4 : Disable shadow
- 8 : Disable sounds
Inputs
Base:
AddContext
<string>- Adds to the entity's list of response contexts. Format is
<key>:<value>
.
AddOutput
<string>- Assigns a new keyvalue/output on this entity. For keyvalues, some rely on extra necessary code to be ran and won't work if its simply just changed through this input. There is a strict format that must be followed:
Syntax:
// Format of changing KeyValues: "AddOutput [key] [value]"
//// Raw text:
"OnUser1" "!self,AddOutput,targetname new_name"
// Format of adding an Output: "AddOutput {targetname}:{inputname}:{parameter}:{delay}:{max times to fire, -1 means infinite}"
//// Raw text:
"OnUser1" "!self,AddOutput,OnUser1:SetParent:!activator:0.0:-1"
// Arguments can be left blank, but the empty blank should still be contained.
//// Raw text:
"OnUser1" "!self,AddOutput,OnUser1:ClearParent::0.0:-1"
ClearContext
- Removes all contexts from this entity's list.
ClearParent
- Removes this entity from the the movement hierarchy, leaving it free to move independently.
FireUser1
toFireUser4
- Fires the respective
OnUser
outputs; see User Inputs and Outputs.
Kill
- Removes this entity and any entities parented to it from the world.
KillHierarchy
- Functions the same as
Kill
, although this entity and any entities parented to it are killed on the same frame, being marginally faster thanKill
input.
RemoveContext
<string>- Remove a context from this entity's list. The name should match the key of an existing context.
SetParent
<string>- Move with this entity. See Entity Hierarchy (parenting).
SetParentAttachment
<string>- 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.
SetParentAttachmentMaintainOffset
<string>- As above, but without teleporting. The entity retains its position relative to the attachment at the time of the input being received.
EnableDisable:
Enable
Disable
- Enable/disable this entity from performing its task. It might also disappear from view.
SetOwner
<integer>- Set the owner of the point.
HideModel
- Hide the control point model.
ShowModel
- Show the control point model again.
SetLocked
<integer>- Lock the control point. 0 = unlocked, 1 = locked
SetUnlockTime
<integer>- This will automatically unlock the control point in the specified amound of time (seconds).
RoundActivate
- Fires the
OnRoundStartOwnedByTeam1
andOnRoundStartOwnedByTeam2
outputs, then applies theStart Locked
keyvalue's setting
Outputs
Base:
OnUser1
toOnUser4
- These outputs each fire in response to the firing of the like-numbered
FireUser1
toFireUser4
Input; see User Inputs and Outputs.
OnOwnerChangedToTeam1
- Sent when owner is changed to RED.
OnOwnerChangedToTeam2
- Sent when owner is changed to BLUE.
OnCapReset
- Sent when owner is changed to neutral.
OnRoundStartOwnedByTeam1
- Sent when a round is starting and the point is owned by RED.
OnRoundStartOwnedByTeam2
- Sent when a round is starting and the point is owned by BLUE.
OnCapTeam1
- Sent when RED capture this point.
OnCapTeam2
- Sent when BLUE capture this point.
OnUnlocked
- Sent when point unlocks.