CoT Markers¶
CoT (Cursor on Target) markers are the live position indicators displayed on the tactical map. They represent connected TAK clients, devices, and sensors, updating in real time via WebSocket as CoT messages flow through the platform.
How CoT Markers Work¶
The data flow for CoT markers follows this path:
- A TAK client (ATAK, iTAK, WinTAK, or WebTAK) sends a CoT position report
- The TAK Service receives the CoT XML message via TCP or SSL
- The TAK Service publishes the message to RabbitMQ on the
magk.cotfanout exchange - The WebSocket Gateway picks up the message and broadcasts it to connected browser clients
- The tactical map renders or updates the marker at the reported coordinates
Markers update continuously as new CoT messages arrive. The update frequency depends on the TAK client's reporting interval (typically every 5–15 seconds).
Marker Types¶
| Type | Icon | Description |
|---|---|---|
| Player | Person icon | A human operator using a TAK client (ATAK, iTAK, WinTAK, or WebTAK) |
| Device | Device icon | A MAGK Node or other tracked hardware device |
| Sensor | Sensor icon | An automated sensor feed (AIS ship tracking, ADS-B aircraft, weather stations) |
Marker icons follow TAK symbology conventions. The icon shape and style indicate the entity type at a glance.
Affiliation Colors¶
Every CoT marker is colored based on its tactical affiliation. These colors follow standard military symbology conventions:
| Affiliation | Color | CSS Class | Usage |
|---|---|---|---|
| Friendly | Blue | text-blue-400 | Your team and allied forces |
| Hostile | Red | text-red-400 | Opposing teams and threat entities |
| Neutral | Green | text-green-400 | Non-aligned entities, civilians, infrastructure |
| Unknown | Yellow | text-yellow-400 | Unidentified or unclassified entities |
Affiliation is determined by the CoT message's type field and the team assignment configured in the event. During an active event, players on your team appear blue, opposing teams appear red, and unaffiliated entities appear green or yellow.
Color Assignment
Affiliation colors are relative to the viewer's team. A player who appears blue on their own team's map appears red on the opposing team's map. Organizers and admins see all teams with their assigned colors.
Marker Information¶
Click or tap a CoT marker to view its details in a popup:
| Field | Description |
|---|---|
| Callsign | The operator's callsign or device name |
| Affiliation | Friendly, Hostile, Neutral, or Unknown |
| Type | Player, Device, or Sensor |
| Team | Team name (during events) |
| Coordinates | Latitude and longitude |
| Speed | Current speed (if reported by the TAK client) |
| Course | Heading direction in degrees (if reported) |
| Last Update | Timestamp of the most recent CoT message |
Marker Staleness¶
CoT markers have a built-in staleness model. If a marker hasn't received an update within its stale time (defined in the CoT message), it transitions through visual states:
| State | Appearance | Meaning |
|---|---|---|
| Current | Solid, full opacity | Position was updated recently |
| Stale | Faded, reduced opacity | No update received within the stale threshold |
| Gone | Removed from map | No update received past the expiry time |
This prevents the map from showing outdated positions as if they were current.
WebSocket Updates¶
CoT markers are delivered to the browser via WebSocket messages with the following structure:
| Field | Type | Description |
|---|---|---|
type | "cot" | Message type identifier |
payload.uid | string | Unique identifier for the CoT entity |
payload.callsign | string | Display name |
payload.lat | number | Latitude |
payload.lon | number | Longitude |
payload.speed | number | Speed in m/s (optional) |
payload.course | number | Heading in degrees (optional) |
payload.affiliation | string | friendly, hostile, neutral, or unknown |
payload.type | string | CoT type string (e.g., a-f-G-U-C for friendly ground unit) |
payload.staleTime | string | ISO timestamp when the marker becomes stale |
The useCoTStream hook manages the WebSocket connection, auto-reconnects on disconnection, and provides the current set of tracked markers to the map component.
Visibility Rules¶
During events, organizers can configure visibility rules that control which markers each team can see:
- Full visibility — All teams see all markers (default)
- Fog of war — Teams only see their own markers and nearby entities
- Custom rules — Organizers define per-team visibility based on event requirements
Visibility rules are enforced server-side. The WebSocket Gateway filters CoT messages before broadcasting them to each client.
Related Pages¶
- Interface — Map controls, layers, and provider configuration
- Overlays — Overlay display on the tactical map
- WebTAK — Browser-based TAK client for sending CoT from the browser
- Player Event View — Player perspective on live markers
- TAK Client Setup — Configuring TAK clients that generate CoT markers