Skip to content

Telemetry Families Reference

rayswaynl edited this page Jul 6, 2026 · 1 revision

Telemetry Families Reference

Dev-facing reference. Covers all RPT prefix families emitted by the mission. No live tactical intel is recorded here; see the public/admin split in the Stats V2 plan for what surfaces on public pages vs. the admin console.

Source-verified 2026-07-05 against origin/claude/build84-cmdcon36 Chernarus mission tree

  • Tools/ directory. Emitter counts from workflow wf_a00082ab-7ef census.

All RPT telemetry is emitted via raw diag_log string concatenations on the server or Headless Client, not through WFBE_CO_FNC_LogContent (which is compiled off on live servers). Families below are grouped by ownership and V2 cutover fate.


Verdict key

Verdict Meaning
PORT Commander-owned; content must map to the unified V2 grammar before the old emitters retire
KEEP Not commander-owned; format survives cutover unchanged
RELOCATE KEEP, but the emitting file (AI_Commander.sqf) is shelved at step 4 — emission moves to a different host file, line format stays byte-identical
ADMIN-ONLY Kept as-is; not exposed on any public surface
RETIRE V1-only share of a PORT family; removed at step 4 of the cutover sequence after consumers port

See AICOM V2 Cutover Status for the step sequence.


PORT — commander-owned, must survive under the unified grammar

Family Emitters Files V2 fate Tool consumers
AICOMSTAT 168 in 35 files Server/AI/Commander/AI_Commander*.sqf (primary), Common/Functions/Common_RunCommanderTeam.sqf, others Retire the V1-only share at step 4 after content maps to unified grammar. The v2 EVENT sub-family (74 emitters, 59 distinct event types) ports to `AICOM2 v1
AICOM2 39 in 5 files Server/AI/Commander/AICOM2_Snapshot.sqf, AICOM2_Allocate.sqf, AI_Commander.sqf M5 Becomes the unified V2 base. Grows WHY rows, INTEL families, harness-parseable enums per cutover brief. Zero tool consumers today — analyze_soak.py does not parse `AICOM2 `. Consumer wiring is a parity-soak prerequisite.
STUCKSTAT, CAPDBG, AICOMCOMP, AICOMDBG, AICOMGATE, AICOMHB, AICOMPLACE ~13 total Various AI_Commander_*.sqf Content must re-emit from V2 equivalents: stuck detection, composition decisions, placement audits, version heartbeat. Drop or fold into `AICOM2 ` unified grammar.
CMDRSTAT 3 AI_Commander.sqf PORT content; home moves to V2 supervisor loop analyze_soak.py
ROUNDSTAT 2 AI_Commander.sqf Superseded by planned `MATCH v1
AICOMSTAT FINAL (part of AICOMSTAT) AI_Commander.sqf:455 Superseded by `MATCH v1

KEEP — not commander-owned, survives cutover unchanged

Match record bus (wire-stable — do not modify)

Family Emitters Files Consumers
WASPSTAT 5 Server/FSM/server_playerstat_loop.sqf + kill pipeline MatchReport pipeline; post-match soak scorecard. Wire-stable — do not modify format. See Server Broadcast And Telemetry Loop Reference.
WASPSCALE 1 Server/AI/Commander/AI_Commander.sqf:893-988 Soak KPI backbone incl. v2-EXT fields. Wire-stable. See WASPSCALE V2 Telemetry Reference.

groupsGC and town system diagnostics

Family Notes
DELEGSTAT HC delegation ratio per side. Read by sweep tools. Survives unchanged.
TOWNSTAT Town ownership snapshot per tick. Survives unchanged.
EMPTYGRP Empty-group audit. Known consumer mismatch: mission emits `EMPTYGRP
GCSTAT Group GC audit. Survives unchanged.
ORBATSTAT Order-of-battle snapshot. Survives unchanged.
SCORE Per-player score events. Feeds kill/score pipeline.
GUERCAP GUER capture events.
CONTESTED Town contested state.
BASEGC Base/HQ group audit.

Standalone system families

Family Emitters System
ICBMTEL 19 ICBM / nuke launch and detonation pipeline
OILFIELD 10 Takistan oilfields objective
GUERAIRDEF 12 GUER air-defense loop (Ka-137 / Mi-24 intercepts)
GUERSTIPEND GUER economy stipend events
GUERVBIED GUER VBIED detonation events
AMBSKIRMISH GUER ambush/skirmish summary

HC layer

Family Notes
HCSTAT HC self-reported fps, units, groups, time. Emitted by Server/PVFunctions/HCStat.sqf.
HCSIDE HC side-assignment events. Survives unchanged.
HCDELEG HC delegation ratio emitted by AI_Commander.sqf. RELOCATE — moves host when AI_Commander is shelved, line format stays byte-identical.

Client diagnostics

Family Notes
CLIENTTEAMS Client team roster snapshot
CLIENTROSTER Client player roster at JIP
BUYTRACE, BUYFAIL Gear buy-menu trace and failure events
CLIENTUPGRADE Client-side upgrade queue events
FUNDS_RESTORE Funds restore on JIP
MAPPERF Map-marker render performance
FPSREPORT Client FPS self-report
MODHOOKS Optional-mod hook registration events
[WFBE][BNN] Bracket-tag forensic events (free-text, not pipe-delimited)

Boot identity

Family Notes
WASPRELEASE Mission version and build tag at MISSINIT
SELFTEST Server self-test results at boot
TEAMREG Side team registration at init
DAYLIGHT Day/night cycle state at mission start

RELOCATE — keep format, move host file

Family Current host Target host Reason
GRPBUDGET AI_Commander.sqf (3 emitters) Server/FSM/server_groupsGC.sqf AI_Commander.sqf is shelved at cutover step 4. Cadence: per-side every 300 s + WARN/RECOVER edge triggers.
SRVPERF AI_Commander.sqf (1 emitter) server_groupsGC.sqf or standalone perf loop Same reason. Cadence: 300 s.
HCDELEG AI_Commander.sqf (part of WASPSCALE block) Same target Same reason.

The transition window may carry both old and new hosts behind flag WFBE_C_TELEM_HOST_V2 (default 0). Brief double-emission is acceptable; any V1-only emitter still in the tree after step 4 is a review FAIL.


ADMIN-ONLY

Family Notes
TOWNPOS Coordinate dump; off-by-default extraction tool. Not exposed on any public surface.

Planned new family (Stats V2)

Family Status Notes
MATCH Planned — not yet emitted Working name `MATCH

Known defects in the current pipeline

  1. EMPTYGRP vs GRPEMPTY consumer mismatch. Mission emits EMPTYGRP|v1|; Update-PublicStats.ps1 parses GRPEMPTY|v1|. Dashboard gauge is silently dead. Fix: update the consumer on the box. The mission-side prefix is correct.
  2. AICOM2| has zero tool consumers. analyze_soak.py, the marker sweep, and MatchReport all ignore AICOM2| lines. First consumer work item: extend analyze_soak.py to parse the unified grammar. This is a parity-soak prerequisite — step 3 of the cutover sequence cannot gate anything until it exists.
  3. Score-AicomRounds.ps1 and aicom-watch.ps1 do not exist. The cutover brief names them as parity-soak gates. They must be created in Tools/PrTestHarness/ and wired to the unified grammar before cutover step 3 can close.

Related pages

Sidebar

Clone this wiki locally