TF2’s control point system is split across three server-side entities:Documentation Index
Fetch the complete documentation index at: https://mintlify.com/sr2echa/TF2-Source-Code/llms.txt
Use this file to discover all available pages before exploring further.
CTeamControlPoint (the individual point), CTeamControlPointMaster (the map-level orchestrator), and CTFObjectiveResource (the networked HUD state broadcaster). A trigger_area_capture brush volume sits around each point and drives capture progress into the owning CTeamControlPoint.
CTeamControlPoint
Defined ingame/server/team_control_point.h, this entity tracks per-team ownership, capture progress, and locking state.
Spawnflags
| Flag | Value | Effect |
|---|---|---|
SF_CAP_POINT_HIDEFLAG | 1<<0 | Hide HUD flag icon |
SF_CAP_POINT_HIDE_MODEL | 1<<1 | Hide point model |
SF_CAP_POINT_NO_CAP_SOUNDS | 1<<3 | Suppress capture sounds |
SF_CAP_POINT_BOTS_IGNORE | 1<<4 | Bots will not attempt to cap |
HasBeenContested() returns true only after an enemy team has first touched the point. This gates certain announcer lines and HUD cues.CTeamControlPointMaster
Oneteam_control_point_master entity is spawned per level. On activation it enumerates all team_control_point entities in the map and builds the m_ControlPoints list. It runs periodic win-condition checks and fires team-win outputs.
PlayingMiniRounds() returns true on maps like cp_dustbowl that use team_control_point_round entities to define ordered capture sequences. When mini-rounds are active, the master tracks the current active round separately from the full point list.
CTFObjectiveResource
CTFObjectiveResource (server) / C_TFObjectiveResource (client) is a singleton entity that replicates all objective HUD state via CNetworkVar. Clients read this to render cap progress bars, team icons, and MvM wave counters.
CTFGameRules and CPopulationManager on the server.