-
Notifications
You must be signed in to change notification settings - Fork 0
Client UI Systems Atlas
This page maps the client-facing UI layer from source: description.ext, Rsc/*.hpp, Client/GUI, client FSM loops, map marker scripts, HUD/title resources and WASP overlays. For a player-facing workflow tour before diving into implementation, use Player UI workflow map; for a compact quick reference, use Client UI, HUD and menus.
All paths are relative to Missions/[55-2hc]warfarev2_073v48co.chernarus/.
Unless a row names another ref, source anchors below are valid for docs head docs/developer-wiki-index 68bd4dc5. Rechecked 2026-06-14: targeted source diffs from a03a1fb5 and b5219d47 to HEAD over checked Chernarus and maintained Vanilla UI/Rsc paths return no changes, preserving the earlier a71b42fe, 2fef1e3d and f7bc72a8 source-anchor snapshots. The vote/help/main-menu matrix was separately refreshed on 2026-06-23 at docs head 322ef95e; checked vote/help/router paths are unchanged from 087152f5 and 68bd4dc5, while current stable/B74.1 is origin/master@f8a76de34 / origin/claude/b74.1-aicom@f8a76de34. Current B74.2 origin/claude/b74.2-aicom@21b62b04 changes source-Chernarus Init_Client.sqf for tint-resource guarding and join/connect ACK failovers, but not the checked vote/help/router controller debt. The Economy dialog/resource route was refreshed on 2026-06-24 at repo docs branch HEAD@427346b0d; checked Economy paths are unchanged from 21f0d53b, d2a3f995 and b5219d47, while current stable/B74.1 f8a76de34 and current B74.2 21b62b04 both keep the stable-shaped 23020 dashboard repair in both maintained roots. The stale old upgrade dialog route was refreshed on 2026-06-24 at repo docs branch HEAD@208062b4e; checked upgrade dialog/controller paths are unchanged from 427346b0d, 0fdd5602 and d4cfef80, while current stable/B74.1 f8a76de34, current B74.2 21b62b04, B69 8d465fce, B74 b23f557f and historical a96fdda2 have no maintained-root stale RscMenu_Upgrade hits. The duplicate-IDD route was refreshed on 2026-06-24 at repo docs branch HEAD@5990557155b0; checked Dialogs/Titles IDD paths are unchanged from edbd341e / b5219d47, while current stable/B74.1 f8a76de34, current B74.2 21b62b04, B69 8d465fce, B74 b23f557f and historical a96fdda2 split EASA to 24000 in both maintained roots. Miksuu b8389e748243 and origin/perf/quick-wins 0076040f still keep the old duplicate dialog IDD.
Use this atlas for UI ownership, controller routing, title/display lifecycle, marker/UI surfaces and compact source anchors. Do not put full patch matrices here when a narrower owner page already exists.
| Need | Open this |
|---|---|
| Resource, IDD and image-reference cleanup | UI resource parity cleanup, UI IDD collision repair |
| Vote, commander reassignment and task/objective controls | Commander vote/reassignment, Commander reassignment call shape |
| Buy Units UI, queue, price and purchase semantics | Factory and purchase systems atlas |
| Gear, EASA, service and profile-template details | Gear/loadout/EASA atlas, Service menu affordability guards, Gear template profile filter |
| Tactical supports, paratrooper/MASH/UAV/artillery markers | Support specials and tactical modules atlas, Abandoned feature revival |
| Cadence/performance evidence | Performance opportunity sweep, Testing workflow |
Use this table before turning a UI atlas line ref into a branch claim. Detailed matrices stay in the owner sections and linked pages; this table is only the route map.
| Ref | UI source shape | Practical route |
|---|---|---|
Docs head 322ef95e for vote/help/router, 427346b0d for Economy-control routing, 208062b4e for stale-upgrade dialog routing, 5990557155b0 for duplicate-IDD routing and 68bd4dc5 for broader UI anchors |
Checked Chernarus and maintained Vanilla UI/Rsc paths are unchanged from a03a1fb5, b5219d47 and the older a71b42fe, 2fef1e3d and f7bc72a8 atlas/resource snapshots; the stale-upgrade checked paths are also unchanged from 427346b0d, 0fdd5602 and d4cfef80, Economy controller/resource paths are unchanged from 21f0d53b / d2a3f995 / b5219d47, Dialogs/Titles IDD paths are unchanged from edbd341e / b5219d47, and vote/help/router paths are unchanged from 087152f5. That archived docs/source shape still has visible MenuAction = 19 as FPS HUD, handler-only 17/18 GPS zoom routes, stale RscMenu_Upgrade at Rsc/Dialogs.hpp:2425,2428 with missing GUI_Menu_Upgrade.sqf and missing wf_*.paa icon block, Economy stale writes to 23004/23005/23006 while RscMenu_Economy lacks those controls and 23020, EASA/Economy duplicate 23000, duplicate title 10200, shared currentCutDisplay title ownership and malformed RscClickableText.soundPush[]. |
Use this page for orientation and current docs-source line refs; use UI resource parity cleanup, UI IDD collision repair, Commander vote/reassignment and the clickable-text matrix before making patch-ready claims. Current stable/B74.1 origin/master@f8a76de34, current B74.2 21b62b04, B69 8d465fce, B74 b23f557f and historical a96fdda2 remove the stale Economy writes, use declared dashboard 23020, remove the stale old upgrade class and split EASA to idd = 24000; current stable also fixes the clickable-text base config. Title IDD/handle, vote/help/router and other branch-scoped UI work remain open. |
Current stable/B74.1 origin/master@f8a76de34 / origin/claude/b74.1-aicom@f8a76de34; current B74.2 origin/claude/b74.2-aicom@21b62b04
|
Current stable/B74.1 maintained roots remove stale RscMenu_Upgrade, split EASA to idd = 24000, rewrite Economy around declared dashboard control 23020, expose visible action 19 as GPS enablement and carry valid RscClickableText.soundPush[] = {"", 0.2, 1}; at Rsc/Ressources.hpp:556. Current B74.2 has no checked stale-upgrade or Economy dialog/resource delta over current stable and no checked d472da6a..21b62b04 stale-upgrade/Economy delta; both maintained roots keep only live WFBE_UpgradeMenu at Rsc/Dialogs.hpp:4-7, opened from GUI_Menu.sqf:190. They still keep vote/help cleanup debt, handler-only 17/18 GPS zoom routes, duplicate title IDD and shared currentCutDisplay title ownership. Scoped diff 0139a3468609..origin/master is empty for checked stale-upgrade paths, changes only source-Chernarus Economy dashboard label text among checked Economy paths and only Init_Client.sqf among checked vote/help/router paths. Current B74.2 has no vote/help/router controller rescue, though source-Chernarus Init_Client.sqf now line-drifts through tint-resource and join/connect ACK failover work. |
Treat current stable/B74.1/B74.2 as source-present for stale-upgrade deletion, Economy/resource parity and clickable-text base config only; do not import that status into archived docs/Miksuu/perf/release refs. Title and vote/help/router work remain open, and B74.2 is branch-only source Chernarus work outside these controller/resource clusters. |
B74.2 AICOM branch origin/claude/b74.2-aicom@21b62b04
|
Branch merge-base is current stable/B74.1 origin/master@f8a76de34; gh pr list --head claude/b74.2-aicom --state all returned []; payload is 29 source Chernarus files / +424 / -38, git diff --check clean, and has no Missions_Vanilla diff. UI-touching changes include live pop-tier player-AI caps in RHUD (Client_UpdateRHUD.sqf:354-360) and Buy Units (GUI_Menu_BuyUnits.sqf:37-43), bounded AICOM marker-feed requests (updateaicommarkers.sqf:47-55) with targeted server replay (Init_Server.sqf:927-943), carrier airfield fallback (Client_GetClosestAirport.sqf:27-35), carrier respawn availability/execution (Client_GetRespawnAvailable.sqf:117-124; Client_OnRespawnHandler.sqf:50-61), default vehicle tints off (Init_CommonConstants.sqf:840), tint legend resource guarding (Init_Client.sqf:351) and join/connect ACK failovers (Init_Client.sqf:654-681,693-714). |
Branch-only UI/runtime candidate; route AI/pop-tier through AI commander autonomy, carrier capture through Towns/camps, stats through Player stats branch audit and smoke through Testing workflow. Before promotion, smoke JIP marker feed replay, RHUD/buy cap updates across pop tiers, carrier air-shop fallback, carrier deck respawn, tint resource guard, join/connect failover and Chernarus-only versus maintained Vanilla scope. |
B74.5 primitive roster branch origin/claude/b745@b996bcb3
|
Branch includes B74.2 as an ancestor and adds the 4d16fad70 primitive vote-roster fallback only in source Chernarus among the checked vote/JIP paths. GUI_VoteMenu.sqf:10-35 builds from live WFBE_Client_Teams when any team has a player leader, otherwise adds names from WFBE_JIP_ROSTER_PRIMS with row value -1; :75-99 hands over once live groups arrive; :119-125 gates the per-tick name/vote/color update while primitives are visible. GUI_Commander_VoteMenu.sqf:10-32,69-91 mirrors the primitive build/prune gate. No WFBE_JIP_ROSTER_PRIMS, ROSTER-PUSH or CLIENTROSTER hits were found in origin/master@f8a76de34, origin/claude/b74.2-aicom@21b62b04, miksuu/master@b8389e74 or maintained Vanilla Takistan checked paths. |
Branch-only source-Chernarus vote/JIP display fallback, not current stable or maintained Vanilla behavior. Route server/JIP plumbing through Player join/disconnect, vote outcome caveats through Commander vote/reassignment and branch smoke through Testing workflow. Smoke late join with delayed/broken wfbe_teams, both vote menus, primitive rows staying visible without blank names/RPT spam, and handover from primitive -1 rows to live team-index rows before treating votes as castable player-team choices. |
Trello artillery UI/UX candidates origin/claude/trello-arty-cooldown-hud@471fc0580fd6, origin/claude/trello-arty-to-gunner@2dc3e7403399 and draft PR #79 origin/claude/trello-artillery-ux@c4459d4312ef
|
All three branches merge-base directly on current stable origin/master@f8a76de34. The cooldown branch adds the RHUD artillery row in both maintained roots (Client_UpdateRHUD.sqf:27,259,452; Rsc/Titles.hpp:177,478-490). The crew branch adds Tactical button idc 17040, MenuAction == 50 and the STR_WF_TACTICAL_CrewArtillery* keys in both roots (GUI_Menu_Tactical.sqf:571-626; Rsc/Dialogs.hpp:2364-2371; stringtable.xml:3192-3213). PR #79 changes the Tactical artillery list itself in both roots (GUI_Menu_Tactical.sqf:42-57) so rows show effective min/max range text, then updates the fire-mission warning/marker cleanup path (Client_RequestFireMission.sqf:31-38,58-60; Server_HandleSpecial.sqf Chernarus :144-160 / Vanilla :134-150; stringtable.xml Chernarus :9304-9311 / Vanilla :9304-9310). Current stable has no RUBHUD_Arty, no exact if (MenuAction == 50) tactical action, no crew-artillery string keys, no range-suffixed artillery list rows, no third gun-count placeholder and no ArtyMarkerCleanup tag. |
Branch-only UI/UX candidates; route behavior through Support specials and tactical modules, promotion through Feature status and smoke through Testing workflow. PR #79 also adds a server RequestSpecial marker-cleanup tag, so keep marker deletion authority review with support/networking owners before stable wording. |
Miksuu b8389e74 and origin/perf/quick-wins 0076040f
|
Checked maintained roots keep the docs/source-style stale upgrade/Economy/EASA resource shape, visible action 19 as FPS HUD, handler-only 17/18 GPS zoom routes, malformed clickable-text base config and title-handle risks. |
Recheck exact lines before merge wording. These refs do not rescue the UI resource, title, vote/help/router or clickable-text cleanup lanes. |
Trello upgrade/HQ cost info candidate origin/claude/trello-upgrade-hqcost-info@34fd202c8865 / draft PR #75 |
Branch merge-base is current stable origin/master@f8a76de34; payload is six maintained-root files / +96 and git diff --check clean. In both source Chernarus and maintained Vanilla, Client_FNC_Special.sqf:204,212-223 keeps the existing upgrade-complete command chat and adds extra scalar lines only for WFBE_UP_ARTYTIMEOUT and WFBE_UP_RESPAWNRANGE; GUI_TransferMenu.sqf:124-129 appends STR_WF_INFO_NewHQCost from WFBE_C_STRUCTURES_HQ_COST_DEPLOY; stringtable.xml:459-473,1055-1061 adds the new string keys. Current stable has the existing generic upgrade-complete chat at Client_FNC_Special.sqf:204 and transfer footer at GUI_TransferMenu.sqf:124-125, but no new value-message or New HQ cost string keys. |
Branch-only UI/info-text candidate; route upgrade semantics through Upgrades and research, HQ deploy-cost ownership through Commander/HQ lifecycle, promotion through Feature status and smoke through Testing workflow. |
Trello upgrade-icons candidate origin/claude/trello-upgrade-icons@baf8d9c304ad / draft PR #77 |
Branch merge-base is current stable origin/master@f8a76de34; payload is two maintained-root Client/GUI/GUI_UpgradeMenu.sqf files / +8 and git diff --check clean. In source Chernarus plus maintained Vanilla, the branch keeps the existing _upgrade_images missionNamespace read at GUI_UpgradeMenu.sqf:12, then paints non-empty upgrade images into listbox 504001 column 0 at :27-28 during initial fill and :173-174 after refresh/reordering. Existing image paths come from Common/Config/Core_Upgrades/Labels_Upgrades.sqf:104-125; current stable reads the same image array for the selected detail pane but has no maintained-root lnbSetPicture call in GUI_UpgradeMenu.sqf. Bohemia's lnbSetPicture command documentation describes the command as setting a picture at a ListNBox row/column item. |
Branch-only upgrade-list visual candidate; route upgrade config semantics through Upgrades and research, promotion through Feature status and smoke through Testing workflow. Do not treat it as new image assets, localization, upgrade authority, stale RscMenu_Upgrade cleanup or current stable behavior. |
Trello map-radius circles candidate origin/claude/trello-map-radius-circles@77dd71ba / draft PR #78 |
Branch merge-base is current stable origin/master@f8a76de34; payload is six maintained-root files / +192 / -4 and git diff --check clean. In source Chernarus plus maintained Vanilla Takistan, the branch adds Client/Functions/Client_AmbulanceRedeployCircles.sqf:1-69, spawns it at Init_Client.sqf:1227, and creates client-local yellow AmbRange_ Ellipse/Border markers around own-side ambulance and redeploy-truck classnames. The range comes from WFBE_C_RESPAWN_RANGES at the local WFBE_UP_RESPAWNRANGE level and resizes/repositions every 5 seconds. The same branch adds side-colored local HQBuildRange Ellipse/Border markers in Init_BaseStructure.sqf:54-68 (Vanilla :35-49) using WFBE_C_BASE_AREA_RANGE + WFBE_C_BASE_HQ_BUILD_RANGE, and removes them on structure death at Chernarus :151-158 / Vanilla :132-139. Current stable has the underlying constants/lists and respawn/base validation paths but no maintained-root Client_AmbulanceRedeployCircles, AmbRange_ or HQBuildRange symbols. |
Branch-only local map-marker/map-indicator candidate, not current stable behavior. Route map ownership through Client UI systems, HQ/build-radius ownership through Commander/HQ lifecycle and Construction/CoIn systems, mobile-spawn behavior through Respawn and death lifecycle, redeploy-truck eligibility caveats through Medic redeployment truck, promotion through Feature status and smoke through Testing workflow. |
flowchart TD
Description["description.ext"] --> Rsc["Rsc/Header, Styles, Parameters, Ressources, Dialogs, Titles"]
Rsc --> Dialogs["Dialog classes in Rsc/Dialogs.hpp"]
Rsc --> Titles["Title/cutRsc classes in Rsc/Titles.hpp"]
Dialogs --> GUI["Client/GUI/*.sqf controller loops"]
Titles --> HUD["Client/Client_UpdateRHUD.sqf (no Client/RHUD folder) and Client/FSM/client_title_capture.sqf"]
GUI --> ClientFuncs["Client/Functions UI helpers"]
GUI --> PVF["WFBE_CO_FNC_SendToServer / SendToClient flows"]
ClientInit["Client/Init/Init_Client.sqf"] --> GUI
ClientInit --> HUD
ClientInit --> ActionFSM["Client/FSM/updateactions.fsm and updateavailableactions.fsm"]
ClientInit --> MarkerLoops["Client/FSM marker loops"]
ActionFSM --> Titles
MarkerLoops --> Map["Map markers and display 12 controls"]
description.ext includes the UI stack in this order:
| Include | Role | Evidence |
|---|---|---|
Rsc/Header.hpp |
Mission metadata and loading labels. |
description.ext:46, Header.hpp:9-10
|
Rsc/Styles.hpp |
UI constants such as ST_*, CT_* and style values. |
description.ext:49 |
Rsc/Parameters.hpp |
Mission parameter definitions. Several parameters directly gate UI loops such as map icon blinking, artillery UI, AFK time and EASA. |
description.ext:52, Parameters.hpp:86, :333, :375, :547
|
Rsc/Ressources.hpp |
Base control classes: buttons, listboxes, structured text, maps, controls groups, sliders and combos. |
description.ext:54, Ressources.hpp:46-563
|
Rsc/Dialogs.hpp |
Interactive dialog classes and onLoad hooks into Client/GUI. |
description.ext:56 |
Rsc/Titles.hpp |
cutRsc / title resources: overlay icons, RHUD/FPS HUD, capture bar, end stats and CoIn construction interface. |
description.ext:58, Titles.hpp:23-25
|
Rsc/Identities.hpp |
Non-vanilla identities. | description.ext:62 |
Rsc/Dialogs.hpp defines the mission's modal UI classes. Most large menus are polling loops driven by global action variables (MenuAction or WFBE_MenuAction) set by control actions in the resource file.
| Class | IDD | Controller | Primary purpose |
|---|---|---|---|
WFBE_UpgradeMenu |
504000 | Client/GUI/GUI_UpgradeMenu.sqf |
Newer upgrade list/detail view; sends RequestUpgrade. |
WFBE_VoteMenu |
500000 | Client/GUI/GUI_VoteMenu.sqf |
Commander vote UI; patch route in Commander vote/reassignment. |
WFBE_Commander_VoteMenu |
500999 | Client/GUI/GUI_Commander_VoteMenu.sqf |
Commander-side vote/reassignment handling; patch route in Commander vote/reassignment. |
WFBE_RespawnMenu |
511000 | Client/GUI/GUI_RespawnMenu.sqf |
Death/respawn map and spawn selector. |
WFBE_TransferMenu |
505000 | Client/GUI/GUI_TransferMenu.sqf |
Funds transfer from team menu. |
WFBE_BuyGearMenu |
503000 | Client/GUI/GUI_BuyGearMenu.sqf |
Gear, vehicle cargo, backpacks and profile templates. |
WF_Menu |
11000 | Client/GUI/GUI_Menu.sqf |
Main Warfare menu/router. |
RscMenu_Team |
13000 | Client/GUI/GUI_Menu_Team.sqf |
Team management and transfer entry. |
RscMenu_BuyUnits |
12000 | Client/GUI/GUI_Menu_BuyUnits.sqf |
Unit/vehicle purchase from structures, depots and hangars. |
RscMenu_Command |
14000 | Client/GUI/GUI_Menu_Command.sqf |
Commander/team orders, task assignment and squad behavior. |
RscMenu_Tactical |
17000 | Client/GUI/GUI_Menu_Tactical.sqf |
Fast travel, artillery, support requests, UAV and unit camera entry. |
RscMenu_Upgrade |
18000 | Client/GUI/GUI_Menu_Upgrade.sqf |
Stale legacy upgrade class; controller file is missing. |
RscMenu_Service |
20000 | Client/GUI/GUI_Menu_Service.sqf |
Rearm/repair/refuel/heal and EASA entry. |
RscMenu_UnitCamera |
21000 | Client/GUI/GUI_Menu_UnitCamera.sqf |
Unit camera selection. |
RscDisplay_Parameters |
22000 | Client/GUI/GUI_Display_Parameters.sqf |
Runtime mission parameter display. |
RscMenu_EASA |
23000 | Client/GUI/GUI_Menu_EASA.sqf |
Aircraft loadout selection. |
RscMenu_Economy |
23000 | Client/GUI/GUI_Menu_Economy.sqf |
Commander income/sell/respawn-supply-truck controls. |
RscMenu_Help |
508000 | Client/GUI/GUI_Menu_Help.sqf |
Online/help text panel and WASP branding. |
-
RscDisplay_Parametersis live and still opensClient/GUI/GUI_Display_Parameters.sqf, but the old uptime write to IDC22005is block-commented in current source, maintained Vanilla, modded copies, stable/upstream and release. The resource declares the live listbox/buttons (22003,22004) and no22005; treat this as safe comment cleanup, not a missing-control runtime bug. - UI resource parity cleanup owns the branch/root matrix for the stale old upgrade dialog, Economy missing-control writes and duplicate IDDs. Short version after the 2026-06-24 stale-upgrade, Economy and duplicate-IDD refreshes: docs/source, current Miksuu and perf keep the old dialog class, stale Economy-control writes and EASA/Economy duplicate
23000; current stable/B74.1origin/master@f8a76de34, current B74.221b62b04, B698d465fce, B74b23f557fand historical releasea96fdda2remove the stale old upgrade class, remove the stale Economy writes and use declared dashboard23020in both maintained roots. Current stable/B74.1/B74.2/B69/B74/release split EASA to24000and keep Economy on23000, but still leaveRscOverlay/OptionsAvailableduplicated onidd = 10200and sharing thecurrentCutDisplaytitle-handle path. Use UI resource parity cleanup before changing these rows, then UI IDD collision repair for duplicate-IDD and title-handle patch details. -
GUI_Menu_Service.sqf:240-244still carries a staleTBD: Add dialogcomment even though the live path closes the service menu and opensRscMenu_EASA. Treat it as stale commentary, not evidence that EASA is missing. - UI dialog lifecycle scout 2026-06-04 (RESOLVED, current master f8a76de3):
GUI_Menu_Economy.sqf:6-8now resetsMenuAction,mouseButtonDownandmouseButtonUpall to-1on open, matching comparable map-click dialogs (GUI_Menu_Command.sqf:3-4,GUI_Menu_Tactical.sqf:137-138,GUI_Menu_UnitCamera.sqf:8-9,GUI_RespawnMenu.sqf:28). Its map-sell path consumesmouseButtonUpatGUI_Menu_Economy.sqf:107. The earlier missing-mouseButtonUp-reset latch debt no longer exists; no smoke recommendation remains. - UI dialog lifecycle scout 2026-06-04:
GUI_Menu_EASA.sqf:3-4exits on unsupportedvehicle playerwithout closing the dialog. That can leave a blank/partial EASA surface if the dialog opens from stale context; action-time guards should close or route back cleanly. - DR-16:
GUI_Menu_Economy.sqf:32-35has a commented HQ-death sell guard, while active structure sell/refund logic remains at:105-150. The UI exposes useful commander affordances, but the sell path belongs to the server-authority migration class. -
GUI_Menu_Economy.sqf:93-96keeps oldWFBE_RequestSpecialrelay comments around the liveRespawnSTsend-to-server path, and:136-141still has a cleanup TODO to replace a name/find lookup with object variables. - The main menu and most submenus are not event-driven state machines. They are
while {alive player && dialog}polling loops withsleepdelays. Keep new work small inside those loops and reuse existing update flags. - Several menu files return to
WF_MenubycloseDialog 0; createDialog "WF_Menu"rather than maintaining a stack. Adding nested dialogs must preserve those return paths.
This cadence map is an index for performance triage, not a patch order. It separates dialog-only high-frequency loops from already-instrumented long-running UI/HUD/marker loops. Current Chernarus and maintained Vanilla share the same checked line refs for the .01 and .05 rows below.
| Cadence | Scope | Current-source anchors | Instrumentation state | Owner / next step |
|---|---|---|---|---|
sleep .01 |
Highest under-covered dialog-only cadence. Buy Gear, Transfer, Respawn and Upgrade menus poll menu action/state while the dialog is open. |
Client/GUI/GUI_BuyGearMenu.sqf:503; Client/GUI/GUI_TransferMenu.sqf:94; Client/GUI/GUI_RespawnMenu.sqf:113; Client/GUI/GUI_UpgradeMenu.sqf:282. Maintained Vanilla has the same paths/lines. |
No local PerformanceAudit_Record writer was found in those four controllers. |
Add client-side measurement first, then consider dirty flags, event latches or coarser sleeps only after gear, transfer, respawn selector and upgrade-list smoke proves no UI regression. Route details through Gear/loadout/EASA, Respawn/death lifecycle and Upgrades/research. |
sleep 0.05 |
Commander vote, regular vote and team menu polling while visible. |
Client/GUI/GUI_VoteMenu.sqf:92; Client/GUI/GUI_Commander_VoteMenu.sqf:67; Client/GUI/GUI_Menu_Team.sqf:77. Maintained Vanilla has the same paths/lines. |
No local PerformanceAudit_Record writer was found in those controllers. |
Lower priority than the .01 modal loops. Keep vote refresh, row-color and reassignment smoke tied to Commander vote/reassignment. |
sleep 0.1 |
Standard main/menu controllers. |
Client/GUI/GUI_Menu.sqf:211; Client/GUI/GUI_Menu_BuyUnits.sqf:492; Client/GUI/GUI_Menu_Command.sqf:534; Client/GUI/GUI_Menu_Tactical.sqf:750; Client/GUI/GUI_Display_Parameters.sqf:20; additional service/camera/economy/EASA menus follow the same broad modal pattern. |
Mostly uninstrumented at controller level, but lower cadence and dialog-only. | Treat as owner-page context, not a first performance patch target. Avoid adding work inside these loops when routing new UI features. |
sleep .03 / sleep 0.03
|
Local marker animation / respawn selector visual refresh. |
Client/Functions/Client_UI_Respawn_Selector.sqf:20; Client/Functions/Client_MarkerAnim.sqf:33. |
No local audit writer in the checked helpers. | Visual-only active loops; smoke marker animation and respawn selection before changing cadence. |
| Long-running UI/HUD/marker loops | RHUD/action/title and map marker surfaces. |
Client/Client_UpdateRHUD.sqf:199-201,367-369; Client/FSM/updateavailableactions.fsm:237; Client/FSM/updatetownmarkers.sqf:119-134. |
Already has PerformanceAudit coverage on representative high-value paths. | Prefer collecting client RPT audit rows before touching cadence. Keep these routed through Performance opportunity sweep and the indicator surface matrix. |
This atlas only keeps the routing facts for branch-only UI work. Full evidence, owner decisions and smoke gates live on the branch-review pages below.
| Branch | Atlas-level verdict | Owner route |
|---|---|---|
origin/feat/wf-menu-ops-console 0767c0b5
|
Branch-only UI theme evidence, not stable-master truth. Chernarus and maintained Vanilla both change Rsc/GUI/HUD theme surfaces; visual smoke, font/texture validation, Chernarus/Vanilla parity and branch whitespace cleanup remain required. | Feature status, Pending owner decisions, Testing workflow |
origin/feat/buymenu-easa-qol a66d4691
|
Narrow Chernarus-only UI QoL branch. It is useful Buy Units/EASA evidence, but not merged behavior and not maintained Vanilla truth until propagated and smoked. | BuyMenu EASA QoL branch audit, Feature status, Testing workflow |
Steff asked to track "all indicators" as a future exploration lane. Initial source scan on 2026-06-06 shows this is not one feature; it is a family of visual/state surfaces that should be audited together before UI, UX or performance cleanup.
| Indicator family | Index state | Exact current-source anchors | Canonical owner / next step |
|---|---|---|---|
| HUD/title indicators | Partially indexed |
Rsc/Titles.hpp:44-47,126-132,164-173,532-540,723-729; Client/GUI/GUI_SetCurrentCutDisplay.sqf:1; Client/GUI/GUI_ClearCurrentCutDisplay.sqf:1; Client/Client_UpdateRHUD.sqf:7,89-92,199-201,367-369; Client/FSM/updateavailableactions.fsm:225-230; Client/FSM/client_title_capture.sqf:47-48,74-79; Client/GUI/GUI_EndOfGameStats.sqf:34-44,86-93. |
This page and UI IDD collision repair already own the shared currentCutDisplay risk. Finish a surface/audience/cadence matrix for RHUD, FPS HUD, action icons, capture bar, end stats and CoIn placement feedback. |
| Map and tactical markers | Needs detailed matrix |
Client/Init/Init_Markers.sqf:22-24,45-48; Client/FSM/updatetownmarkers.sqf:20-21,29-30,106,116,129-134; Client/FSM/updateteamsmarkers.sqf:21-24,45-55,165-186,197-208,229; Common/Common_MarkerUpdate.sqf:49-57,67-88,98-109,195-209,218-241; Common/Common_AARadarMarkerUpdate.sqf:10-16,30-33,133,143,156,173,194,198; Client/GUI/GUI_Menu_Tactical.sqf:26-35,202-216,350-359,473-505,760-773; Client/GUI/GUI_RespawnMenu.sqf:73-82,194. |
Keep on this page. Build a marker inventory for towns, camps, teams, HQs, AARadar aircraft, artillery/ICBM/fast-travel rings, respawn selection and commander orders, with cleanup owner and update cadence. |
| Support and special markers | Partly canonical, still fragmented |
Server/Support/Support_Paratroopers.sqf:117; Client/PVFunctions/HandleParatrooperMarkerCreation.sqf:30-45; Server/Module/MASH/MASHMarker.sqf:1-11; Client/Module/MASH/receiverMASHmarker.sqf:1-27; Client/Functions/Client_FNC_Special.sqf:96-108; Client/Functions/Client_RequestFireMission.sqf:20-32,54-57,75; Client/GUI/GUI_Menu_Tactical.sqf:474-505,504-505. |
Route support-specific rows through Support specials and Abandoned feature revival. Reconcile working paratrooper markers, orphan MASH relay, UAV spot markers, artillery markers and ICBM cleanup timing. |
| Menu/list icons and affordance indicators | Partially indexed |
Rsc/Dialogs.hpp:1171-1232,1525-1614,2110-2123,2372-2378,2638-2831,3463-3469; Rsc/Ressources.hpp:92,143,218,300-312,540-556; Client/GUI/GUI_Menu.sqf:29-35,47-57,101-170,191-207; Client/GUI/GUI_Menu_BuyUnits.sqf:84-90,165-176,237,495-496; Client/Functions/Client_UIFillListBuyUnits.sqf:34-62,68-90,105,107; Client/GUI/GUI_Menu_Tactical.sqf:42,64,104,654,660,760-773. |
Fast route is Client UI, HUD and menus; detail stays here or in factory/gear owner pages. Audit factory tab icons, crew/lock icons, gear slots, upgrade images, affordability colors, queue labels and branch-only feat/buymenu-easa-qol affordances. |
| Status/debug/admin channels | Audience split seeded / branch scope refreshed | Repo docs branch HEAD@4a1bc13edde6 remains source-unchanged from a27086cd / d0161083 for checked FPS paths: Server/GUI/serverFpsGUI.sqf:1,6-7; Server/Module/serverFPS/monitorServerFPS.sqf:1,5-6; Client/Client_UpdateRHUD.sqf:113,199-201,367-369; Common/Functions/Common_PerformanceAudit.sqf:84,160,196,234; Client/Module/supplyMission/townSupplyStatus.sqf:1-8; Client/PVFunctions/Available.sqf:1; Client/FSM/updateclient.sqf:12-24,161-163,230-232. |
Player HUD FPS uses SERVER_FPS_GUI; WFBE_VAR_SERVER_FPS is a compatibility/public-variable status channel in docs-source; PerformanceAudit is RPT/tooling output; supply/status scripts are transient player/admin signals. Current stable/B74.1/B74.2/B69/B74 and live FPS-named branches use one guarded SERVER_FPS_GUI publisher. Route PV semantics through Networking and public variables and FPS/runtime cleanup through Hosted server FPS loop sleep plus Performance opportunity sweep. |
| Image/resource references | Missing stale upgrade icon block verified |
Rsc/Ressources.hpp:300-304,312,540-556; Rsc/Dialogs.hpp:654,660,666,672,678,1566,1586,1593,1600,1607,1614,2123,2378,2644,2655,2666,2677,2688,2699,2710,2721,2732,2743,2754,2765,2776,2787,2798,2809,2820,2831,3469; Common/Config/Core_Upgrades/Labels_Upgrades.sqf:105-108,111,125. |
UI resource parity cleanup now owns the verified missing RscMenu_Upgrade wf_*.paa icon block in Chernarus and maintained Vanilla. Continue broader Client\Images\*.paa/.jpg integrity checks there, and keep the malformed RscClickableText.soundPush[] risk in the same cleanup lane. |
This first matrix is a routing map, not a visual redesign. It keeps the broad indicator family inventory above source-backed while giving future UI owners the missing surface, owner script, state source, audience, update cadence, cleanup path, known risk, branch scope and smoke target fields.
| Surface | Owner script / resource | State source | Audience | Update cadence | Cleanup path | Known risk | Branch scope | Smoke target |
|---|---|---|---|---|---|---|---|---|
| RHUD / FPS HUD and action icons |
Rsc/Titles.hpp:164-171; Client/GUI/GUI_SetCurrentCutDisplay.sqf:1; Client/GUI/GUI_ClearCurrentCutDisplay.sqf:1; Client/Client_UpdateRHUD.sqf:89-92,199-201,367-369; Client/FSM/updateavailableactions.fsm:225-230. |
uiNamespace["currentCutDisplay"], RUBHUD, RUBFPSHUD, visible-map state, local action availability and performance-audit enablement. |
Local player. | Long-running client HUD loop plus action FSM refresh. |
OptionsAvailable onUnload clears the shared handle; Client_UpdateRHUD.sqf:89-92 can recreate the title if the handle is null. |
Shared currentCutDisplay handle also services endgame stats, so late-game title ownership can collide with RHUD/action recreation. |
This page owns orientation; UI IDD collision repair owns detailed title-ID/handle patch shape. | Join as player, toggle map/GPS, verify RHUD/FPS/action icons survive map transitions; end mission and confirm end stats are not replaced by OptionsAvailable. |
| Capture and endgame title bars |
Rsc/Titles.hpp:532-540,723-729; Client/FSM/client_title_capture.sqf:47-48,74-79; Client/GUI/GUI_EndOfGameStats.sqf:34-44,86-93,147; Client/Module/CoIn/coin_interface.sqf. |
Town/camp capture progress, endgame stat totals, CoIn placement state and the same title-display namespace helpers. | Local player / commander during build placement. | Event-driven cutRsc/title displays plus local FSM or interface loop writes. | Capture/endgame titles rely on title unload helpers; CoIn interface owns its placement display lifecycle. | Endgame stats and action/RHUD titles share the same namespace handle; CoIn placement feedback belongs with construction smoke rather than generic HUD cleanup. | Current maintained roots carry these title resources; release branch has the same shared-handle title risk. | Capture/lose a camp, place/cancel a CoIn object, and trigger endgame stats while RHUD is active. |
| Town, camp, team, HQ and tactical map markers |
Client/Init/Init_Markers.sqf:22-24,45-48; Client/FSM/updatetownmarkers.sqf:20-21,29-30,106,116,129-134; Client/FSM/updateteamsmarkers.sqf:21-24,45-55,165-186,197-208,229; Common/Common_MarkerUpdate.sqf:49-57,67-88,195-209,218-241; Client/GUI/GUI_Menu_Tactical.sqf:202-216,350-359,473-505,760-773; Client/GUI/GUI_RespawnMenu.sqf:73-82,194. |
Local marker arrays, town/camp side state, team/HQ/object positions, tactical selection variables and respawn selection state. | Local player; commander/tactical menu users see additional command surfaces. | Client marker FSMs poll cheaply while map/GPS is closed and force quicker full refresh when map or GPS opens. Common_MarkerUpdate.sqf loops at marker-specific refresh rates. |
Marker scripts use local marker creation/update; tactical and respawn menus own their transient selection markers. | Map-open cadence and local marker ownership can hide stale-marker bugs unless map/GPS/JIP states are smoked separately. | Current Chernarus and maintained Vanilla carry the same marker loop topology; release changes should be treated as branch-specific until checked per marker family. | Join/JIP, open/close map and GPS, capture towns/camps, move teams/HQ, select respawn/fast travel, and check stale marker cleanup. |
| AARadar, artillery, ICBM, UAV, MASH and paratrooper markers |
Common/Common_AARadarMarkerUpdate.sqf:10-16,30-33,133,143,156,173,194,198; Server/Support/Support_Paratroopers.sqf:117; Client/PVFunctions/HandleParatrooperMarkerCreation.sqf:30-45; old-shape Server/Module/MASH/MASHMarker.sqf:1-11; old-shape Client/Module/MASH/receiverMASHmarker.sqf:1-27; Client/Functions/Client_FNC_Special.sqf:96-108; Client/Functions/Client_RequestFireMission.sqf:20-32,54-57,75. |
Server support calls, client PVF receivers, support request state, marked units/vehicles, side filters and local marker names. | Mostly local player/team/side; support markers may be side- or requester-visible depending on receiver path. | Event-driven marker creation plus client marker loops. | MarkerUpdate handles tracked-unit deletion paths; old-shape MASH and support receivers create/remove their own marker names. | Support marker families are fragmented across support, module and UI pages; paratrooper marker registration and MASH deploy/removal are branch-sensitive. | Current source has the paratrooper sender/receiver files but previous branch matrices still require registration/runtime smoke before calling revival complete; MASH marker/deploy branch scope is owned by the respawn lifecycle atlas. | Drop paratroopers, request artillery/UAV/special support, deploy/remove MASH only on old-shape or revived targets, use AARadar and verify side/audience plus stale-marker removal. |
| Menu/list icons, affordability colors and resource images |
Rsc/Dialogs.hpp:1171-1232,1525-1614,2110-2123,2372-2378,2638-2831,3463-3469; Rsc/Ressources.hpp:92,143,218,300-312,540-556; Client/GUI/GUI_Menu.sqf:29-35,47-57,101-170,191-207; Client/GUI/GUI_Menu_BuyUnits.sqf:84-90,165-176,237,495-496; Client/Functions/Client_UIFillListBuyUnits.sqf:34-62,68-90,105,107. |
Dialog IDC state, factory/unit configs, player funds, queue/build state, upgrade labels and Client\Images\*.paa/.jpg resources. |
Local player using menus. | Dialog open/refresh loops and list-fill functions; buy-menu tabs refresh while the menu is open. | Dialog close controls clear UI state; resource cleanup belongs to UI resource parity cleanup. | Missing/stale image references can break many menus at once; older branches with malformed RscClickableText.soundPush[] need branch-scoped propagation/smoke before reuse. |
Current stable/B74.1 origin/master@f8a76de34, current B74.2 origin/claude/b74.2-aicom@21b62b04, B69/B74 and GUER branch hits keep the clickable-text base-control value fixed in both maintained roots at Rsc/Ressources.hpp:556; archived docs/source HEAD@14d74f9d2, Miksuu b8389e748243, perf 0076040f, historical a96fdda2 and UI theme evidence remains branch-scoped old-shape until rechecked or merged. |
Open main, buy units, gear, tactical, respawn and upgrade menus; verify icons load, unaffordable states are clear and no missing texture/config errors appear. |
| Status, debug, admin and performance counters | Repo docs branch HEAD@4a1bc13edde6: Server/GUI/serverFpsGUI.sqf:1,6-7; Server/Module/serverFPS/monitorServerFPS.sqf:1,5-6; Client/Client_UpdateRHUD.sqf:113,199-201,367-369; Common/Functions/Common_PerformanceAudit.sqf:84,160,196,234; Client/Module/supplyMission/townSupplyStatus.sqf:1-8; Client/PVFunctions/Available.sqf:1; Client/FSM/updateclient.sqf:12-24,161-163,230-232. |
diag_fps, SERVER_FPS_GUI, WFBE_VAR_SERVER_FPS, PerformanceAudit buffers/flushes, supply-status values and client update loop state. |
Split four ways: local player HUD, all-client PV status channels, admin/operator status text, and RPT/tooling consumers. | FPS publisher loops every 8 seconds on dedicated servers, RHUD/client update loops, event-style supply-status scripts and PerformanceAudit flush interval. | PerformanceAudit flushes buffered records; status channels stop with script/runtime termination; SERVER_FPS_GUI HUD use is independent from WFBE_VAR_SERVER_FPS compatibility publishing. |
Do not prune player HUD, compatibility PVs, admin signals and developer RPT counters as one feature. Current docs-source and stable/B74-shaped refs use different FPS publisher shapes, so smoke/consolidation decisions must be branch-scoped. | Docs head 4a1bc13edde6 keeps two guarded publishers in both maintained roots; current stable/B74.1 origin/master@f8a76de34, current B74.2 21b62b04, B69, B74, client-fps, ASR FPS and historical a96fdda2 use one guarded serverFpsGUI.sqf publisher; Miksuu b8389e748243 and perf 0076040f still keep the old two-publisher loop shape. Owner route: Hosted server FPS loop sleep. |
Dedicated FPS-HUD updates, hosted/listen no-spin, WFBE_VAR_SERVER_FPS consumer grep before consolidation, supply mission status smoke, and client/server RPT audit collection with the audit parameter enabled. |
Future indicator cleanup should start from this table: pick one row, verify the branch/root scope for that family, then update the canonical owner page instead of adding another broad "all indicators" checklist.
The status/debug row is not a single UI feature. In current docs-source HEAD@4a1bc13edde6, unchanged from a27086cd / d0161083 for the checked FPS paths, RHUD/FPS HUD reads SERVER_FPS_GUI at Client/Client_UpdateRHUD.sqf:113, and both maintained roots publish it from Server/GUI/serverFpsGUI.sqf:6-7 after the early !isDedicated exit at :1. The second docs-source publisher, Server/Module/serverFPS/monitorServerFPS.sqf:5-6, still publishes WFBE_VAR_SERVER_FPS; no maintained-root player-HUD reader was found in this pass, so treat it as compatibility/status-channel evidence until generated or modded consumers are deliberately retired. Current stable/B74.1/B74.2/B69/B74 and the live FPS-named branches omit that monitor publisher in maintained roots, so target-branch smoke decides the expected contract.
Keep that separate from PerformanceAudit. Common/Functions/Common_PerformanceAudit.sqf:84,160,196,234 writes RPT/tooling counters, and Client/Client_UpdateRHUD.sqf:199-201,367-369 records HUD loop cost when the audit toggle is enabled. Future cleanup should first decide which audience is being changed: player-visible HUD text, public-variable compatibility channel, admin/operator status signal or developer RPT data.
Rsc/Titles.hpp defines long-lived non-modal resources.
| Resource | IDD/channel | Runtime owner | Purpose |
|---|---|---|---|
RscOverlay |
idd=10200, channel 1365 |
Spawned from Init_Client.sqf:147-150
|
Older GPS/option overlay; sets uiNamespace['GUI']. |
CaptureBar |
idd=600100, channel 600200 |
Client/FSM/client_title_capture.sqf |
Town/camp capture progress bar using controls 601000-601002. |
OptionsAvailable |
idd=10200, channel 12450 and default CutRsc
|
Client/Client_UpdateRHUD.sqf, updateavailableactions.fsm
|
Shared action icons plus RHUD/FPS HUD controls. |
EndOfGameStats |
idd=90000 |
Client/GUI/GUI_EndOfGameStats.sqf |
End-of-game stat bars and faction imagery. |
WFBE_ConstructionInterface |
idd=112200, channel 112200 |
Client/Module/CoIn/coin_interface.sqf |
CoIn building placement cursor, hints, controls and cash panel. |
OptionsAvailable uses onLoad = "_this ExecVM ""Client\GUI\GUI_SetCurrentCutDisplay.sqf""" and onUnload = "_this ExecVM ""Client\GUI\GUI_ClearCurrentCutDisplay.sqf""" (Titles.hpp:170-171). Those one-line scripts maintain uiNamespace["currentCutDisplay"], which is then used by:
-
Client/Client_UpdateRHUD.sqf:87-95to recover/recreate the display. -
Client/FSM/updateavailableactions.fsm:225-233to write action icons into controls3500 + index.
Current branch check 2026-06-23: RscOverlay and OptionsAvailable still both use idd=10200 in both maintained roots across docs head edbd341e (same line refs as b5219d47: Titles.hpp:44-46, :164-165), current Miksuu b8389e748243 and perf 0076040f (same refs), current stable origin/master@0139a346, B69 8d465fce, B74 b23f557f and historical a96fdda2 (:44-46, :168-169). No checked maintained root has a hard-coded findDisplay 10200 caller, so treat this as title-resource maintenance/debug debt rather than a proven live lookup bug.
The more direct title lifecycle bug is independent of duplicate IDDs. EndOfGameStats has idd=90000, but it sets and clears uiNamespace["currentCutDisplay"] through the same onLoad/onUnload helpers as OptionsAvailable (Titles.hpp:532-540 in docs/Miksuu/perf, :580-588 in current stable/B74.1/B74.2/B69/B74 and historical release). GUI_EndOfGameStats.sqf:13,34-44,86-93 cuts and writes stat bars through that key on docs/Miksuu/perf/Vanilla stable-shaped roots; current stable/B74.1/B74.2 source Chernarus line-drifts to :15,36-46,88-95 because of the GUER-label addition. The RHUD loop keeps running and can re-cut OptionsAvailable when the shared key is null (Client_UpdateRHUD.sqf:89-92,190 in docs/Miksuu/perf; :89-92,266 in current stable/B74.1/B74.2/B69/B74; :89-92,258 in historical release). The 2026-06-23 B74.2 current-head follow-up found d472da6a..21b62b04 empty for checked title-handle paths; the stable-to-B74.2 diff changes source-Chernarus RHUD AI-cap text only, not the title handle. All checked maintained roots keep this shared-handle shape; patch title work by splitting display ownership or by gating RHUD/action-icon recreation once endgame begins. Use UI IDD collision repair for the patch checklist instead of duplicating it here.
Client/Init/Init_Client.sqf wires the UI layer in several waves:
| Lines | Behavior |
|---|---|
49-80 |
Compiles old-style UI helpers (BuildUnit, UIChangeComboBuyUnits, UIFillListBuyUnits, UIFillListTeamOrders, UIFindLBValue). |
83-85 |
Defines BIS_FNC_GUIset / BIS_FNC_GUIget wrappers over uiNamespace. |
116-127 |
Compiles gear UI helper functions and respawn selector. |
147-150 |
Keeps RscOverlay alive while no map/camera display is active. |
161-162 |
Clears stale title displays before waiting for common init. |
330-339 |
Initializes RUBHUD, RUBFPSHUD, RUBGPS, RUBOSD, then starts Client/Client_UpdateRHUD.sqf. |
356-387 |
Starts client marker/action/resource/update loops after init. |
570-575 |
Applies skill module, starts WASP base repair and WASP action overlay. |
592-593 |
Loads keybind initialization. |
730-736 |
Re-runs Client/Init/Init_Markers.sqf after a short JIP delay. |
779-782 |
Starts blinking marker bookkeeping only when WFBE_C_MAP_ICON_BLINKING_ENABLED is enabled. |
785 |
Plays Videos/intro720p.ogv. |
790 |
Opens WFBE_VoteMenu if a vote is already running. |
959 |
Shows the long new-player hint with Discord and map guidance. |
The current source has a live client-side view-distance system:
- Client init sets
AUTO_DISTANCE_VIEW_TARGET_FPSto 60 and starts automatic mode off (Init_Client.sqf:12-13,175-176). - Display 46 binds
Common_AdjustViewDistance.sqfas aKeyDownhandler (Init_Client.sqf:236-240). -
User18toggles automatic view distance, saving the current distance before enabling and restoring it when disabled (Common_AdjustViewDistance.sqf:17-33). -
User19/User20are dual-purpose. In automatic mode they adjust target FPS by 1 and clamp it to 30..240 while persistingWFBE_TARGET_FPS; in manual mode they adjust view distance by 1000 meters through the timer script (Common_AdjustViewDistance.sqf:35-69). - The automatic loop runs from
updateclient.sqfonly when the toggle is enabled and the map is not visible (updateclient.sqf:102-107). This preserves the old upstream lesson that FPS helpers must not react to map-open view state. - Runtime adjustment uses a target band of +/-4 FPS, hard-clamps view distance to 500..6000, lowers by 200 when below the band and raises by 300 or 50 otherwise (
Common_AutomaticViewDistance.sqf:6-36).
Historical changelog text says +/-2 FPS. Treat that as old provenance; the current source and messages use +/-4.
The player opens the main menu through the scroll action wired by Client/Functions/Client_AddWFMenuAction.sqf:17 and Client/Action/Action_Menu.sqf:1.
Client/GUI/GUI_Menu.sqf polls MenuAction every 0.1 seconds and routes to submenus:
MenuAction |
Result |
|---|---|
| 1 | RscMenu_BuyUnits |
| 2 | WFBE_BuyGearMenu |
| 3 | RscMenu_Team |
| 4 | Vote menu or commander vote flow |
| 5 | RscMenu_Command |
| 6 | RscMenu_Tactical |
| 7 | WFBE_UpgradeMenu |
| 8 | RscMenu_Economy |
| 9 | RscMenu_Service |
| 10 | Unflip nearby/current vehicle |
| 11 | Headbug fix via temporary vehicle move |
| 12 | RscDisplay_Parameters |
| 13 | RscMenu_Help |
| 16 | Toggle full RUBHUD
|
| 17/18 | Dormant/orphaned GPS zoom handlers; GUI_Menu.sqf still handles them in Chernarus and maintained Vanilla, but audited WF_Menu controls expose actions 1-13, 16 and 19 only. |
| 19 | Branch-sensitive: docs checkout/Miksuu/perf toggle the FPS-only HUD; stable origin/master cf2a6d6a and release a96fdda2 reuse this visible slot as the GPS enabler. |
Range booleans such as barracksInRange, gearInRange, commandInRange and serviceInRange are maintained by Client/FSM/updateavailableactions.fsm, not by the main menu itself.
Mini UI scout note 2026-06-04 plus branch recheck 2026-06-14: no live buy/gear/service/tactical/vote/unit-camera control was found with an outright missing handler. The important main-menu mismatch is narrower: MenuAction == 17/18 remains in the router for GPS zoom in docs checkout, stable, release, Miksuu and perf maintained roots, but fixed-string action searches found no MenuAction = 17 or MenuAction = 18 emitter. MenuAction = 19 is visible everywhere checked, but its meaning is branch-sensitive: FPS HUD in docs/Miksuu/perf and GPS enablement on stable/release.
GUI_Menu_BuyUnits.sqf:
- Selects nearest active factory/depot/hangar context (
:48,:214-237). - Refreshes unit lists through
UIChangeComboBuyUnitsandUIFillListBuyUnits(:197-198). - Enforces AI capacity based on
WFBE_C_PLAYERS_AI_MAX, barracks upgrade level and commander bonus (:117-124). - Sends the final purchase to
BuildUnit(:155), which later handles spawn details and salvage FSM entry. - Displays ambulance and supply-truck hints for important support vehicles (
:443-449).
The command menu is easy to misread from source because much of its workflow is icon-driven:
| Interaction | Source evidence | Developer note |
|---|---|---|
| Three icon tabs/modes |
Rsc/Dialogs.hpp:2100-2123; GUI_Menu_Command.sqf:111-170
|
The tab buttons are icons while the title text is the main visible mode cue. Docs and future UI work should name the three modes and keep icon/title state in sync. |
| Multi-select teams plus "All" behavior |
Dialogs.hpp:1913-1923; GUI_Menu_Command.sqf:115-118,277-307,397-404
|
Actions can target a selected subset or all teams depending on the All row/selection state. Smoke both selected-subset and all-teams paths after command-menu edits. |
| Two-step map orders |
Dialogs.hpp:1846-1888,2047-2059; GUI_Menu_Command.sqf:262-313,315-345
|
The player arms an order mode with a button, then clicks the map to place move/patrol/defend/task targets, with marker-color feedback. Do not document task/order buttons as immediate actions. |
For the full source-backed data/runtime/generator map, see Gear, loadout and EASA atlas.
GUI_BuyGearMenu.sqf uses WFBE_MenuAction, not MenuAction, and works across three views:
-
gear: player/AI equipment. -
backpack: OA backpack content where available. -
vehicle: cargo inventory.
The helper functions compiled in Init_Client.sqf:116-126 own list filling, template parsing, sanitizing, inventory display, price calculation and target selection. Profile template saving is compiled only when the OA version gate passes (Init_Client.sqf:169-172).
GUI_Menu_Command.sqf owns team selection, AI team templates, behavior/combat/formation/speed combos, move/task controls and respawn factory choice. Current stable/B74.1 origin/master@f8a76de34, current B74.2 origin/claude/b74.2-aicom@21b62b04, current B69 origin/claude/b69@8d465fce, adjacent B74 origin/claude/b74-aicom-spend@b23f557f and live origin/feat/naval-hvt-objectives@2e1c59317186 carry the targeted Objective Ping path in both maintained roots: the menu gathers task data and HQ speech context at GUI_Menu_Command.sqf:315-344, then sends SetTask to the selected leader or side leaders at :336,344 and registers the client handler at Init_PublicVariables.sqf:40. Repo docs branch HEAD@c5937045f, Miksuu b8389e748243, origin/perf/quick-wins@0076040f and historical c20ce153 still keep those sends commented at GUI_Menu_Command.sqf:335,337,343 while registering SetTask at :33; historical a96fdda2 has live sends with :36 registration but no live release/* head. The old town TaskSystem remains disabled/residue and separate from Objective Ping; current stable/B74.1/B74.2/B69/B74/naval-HVT remove Client_TaskSystem.sqf while docs/Miksuu/perf/c20 keep it.
Vote menu cleanup edge: WFBE_Client_Teams_Count is initialized as count WFBE_Client_Teams (Init_Client.sqf:403 on current stable/B74.1 origin/master@f8a76de34, then refreshed from reconciled side teams at :534; current B74.2 origin/claude/b74.2-aicom@21b62b04 line-drifts source Chernarus to :409,:540 while maintained Vanilla stays :403,:534), but GUI_Commander_VoteMenu.sqf:58-66 and GUI_VoteMenu.sqf:29,61-66 use it as an inclusive for ... to maximum. Existing isNil guards make this mostly a refresh-loop polish bug rather than a proven crash, but vote UI changes should switch to (WFBE_Client_Teams_Count - 1) or forEach.
Vote behavior changes should start from Commander vote/reassignment. That page owns the DR-47 server/UI outcome mismatch, the no-commander/tie decision matrix and the smoke cases that must accompany any GUI_VoteMenu.sqf preview change.
Vote row coloring has a second small indexing edge. In GUI_VoteMenu.sqf:74-83, the loop variable already tracks the list row while scanning lnbSize, but the color write uses [_i+1,0]. If touching vote refresh, audit both the backing team-array loop and this row-color mapping together.
Commander reassignment has a separate selector fragility. GUI_Commander_VoteMenu.sqf:33-46 reads the selected row text, then finds the target team by comparing name leader _x. Because the row already stores the team index with lnbSetValue, future fixes should use the stored value instead of visible names so duplicate names or mid-dialog name changes cannot select the wrong commander. Keep this UI fix aligned with Commander reassignment call shape and Commander vote/reassignment.
Help dialog lifecycle edge: RscMenu_Help stores the display as uiNamespace["dialog_HelpPanel"] on load, but unload clears uiNamespace["cti_dialog_ui_onlinehelpmenu"] and calls GUI_Menu_Help.sqf with onUnload (Rsc/Dialogs.hpp:3446-3447 on docs head 322ef95e; current stable/B74.1/B74.2/B69/B74 use :3172-3173; historical a96fdda2 uses :3108-3109). The controller only implements onLoad and onHelpLBSelChanged (GUI_Menu_Help.sqf:5-10). This looks like stale namespace wiring, so avoid building new help-panel state on the old unload variable without cleaning it.
Main-menu orphan route: docs/source HEAD@72007de93f00 keeps the 322ef95e / 087152f5 / 68bd4dc5 line shape and still handles MenuAction == 17/18 for GPS zoom at GUI_Menu.sqf:202,206, while the audited WF_Menu resource block exposes actions 1-13, 16 and 19 only (Rsc/Dialogs.hpp:1226 emits MenuAction = 19). Current stable/B74.1 origin/master@f8a76de34, current B74.2 origin/claude/b74.2-aicom@21b62b04, current B69 8d465fce and adjacent B74 b23f557f keep handler-only zoom routes at GUI_Menu.sqf:270,274 but reuse the visible MenuAction = 19 control as GPS enablement (Rsc/Dialogs.hpp:1244,1252; GUI_Menu.sqf:241). Current stable/B74.1/B69/B74 refresh WFBE_Client_Teams_Count from reconciled side teams at Init_Client.sqf:534; current B74.2 line-drifts source Chernarus to :540, but it remains count, not a maximum index. Miksuu b8389e74 and perf 0076040f keep the docs-checkout FPS-HUD meaning for visible action 19; historical a96fdda2 matches the stable GPS action shape with Chernarus/Vanilla line drift. Treat the old zoom router cases as dead UX baggage unless a hidden/branch control is deliberately reintroduced and smoke-tested.
This route owns the small UI correctness cluster around vote refresh/list coloring, help-panel lifecycle state and the main-menu GPS zoom router. The WASP marker input-lock wait is adjacent UX debt, but its branch matrix stays on WASP marker wait cleanup.
| Root / branch | Vote refresh and row color | Help menu lifecycle | Main-menu 17/18/19 route |
Status |
|---|---|---|---|---|
Docs/source HEAD@72007de93f00
|
Both maintained roots are unchanged from 322ef95e, 087152f5 and 68bd4dc5 for checked vote/help/router paths: WFBE_Client_Teams_Count = count WFBE_Client_Teams at Init_Client.sqf:273; GUI_VoteMenu.sqf:29,49,61 and GUI_Commander_VoteMenu.sqf:58 loop through that inclusive value; row coloring still writes [_i+1,0] at GUI_VoteMenu.sqf:80,82. |
Both maintained roots set dialog_HelpPanel and clear cti_dialog_ui_onlinehelpmenu at Rsc/Dialogs.hpp:3446-3447; GUI_Menu_Help.sqf:6,10 handles load and selection, not unload. |
Both roots keep handler-only MenuAction == 17/18 zoom at GUI_Menu.sqf:202,206; visible MenuAction = 19 is CA_FPSHUD_Button at Rsc/Dialogs.hpp:1219-1227 and toggles RUBFPSHUD at GUI_Menu.sqf:197. |
Patch-ready UI cleanup; checked docs-source paths are unchanged from the prior matrix. |
Current stable/B74.1 origin/master@f8a76de34 / origin/claude/b74.1-aicom@f8a76de34, current B74.2 origin/claude/b74.2-aicom@21b62b04, current B69 8d465fce and adjacent B74 b23f557f
|
Both maintained roots keep the same inclusive vote-loop and row-color shape. Current stable/B74.1/B69/B74 use Init_Client.sqf:403 plus a reconciled team refresh at :534; current B74.2 line-drifts source Chernarus only to :409,:540 while maintained Vanilla stays :403,:534; GUI_VoteMenu.sqf:29,49,61,80,82 and GUI_Commander_VoteMenu.sqf:58 are unchanged. |
Both maintained roots set dialog_HelpPanel and clear cti_dialog_ui_onlinehelpmenu at Rsc/Dialogs.hpp:3172-3173; GUI_Menu_Help.sqf:6,10 still has no onUnload case. |
Both maintained roots keep MenuAction == 17/18 handlers at GUI_Menu.sqf:270,274; visible MenuAction = 19 is CA_GPS_Button at Rsc/Dialogs.hpp:1244-1252 and GPS enablement at GUI_Menu.sqf:241. d472da6a..21b62b04 and origin/master..origin/claude/b74.2-aicom touch source-Chernarus Init_Client.sqf only among checked paths; the delta is vehicle-tint guard, join/connect ACK failover and intro-music hook, not vote/help/router logic. B69..B74 checked paths are empty. |
Current stable/B74.1/B74.2/B69/B74 change the visible action-19 meaning versus docs/Miksuu/perf, but do not rescue vote loops, row color, help unload or old zoom-router cleanup. Live origin/claude/trello-vote-para-guards@92101abe is server vote/paratrooper/Tactical context and has no checked vote/help/main-menu-router path delta. |
B74.5 origin/claude/b745@b996bcb3
|
Source Chernarus GUI_VoteMenu.sqf:10-35,75-99,119-125 adds primitive name rows from WFBE_JIP_ROSTER_PRIMS when live wfbe_teams group objects are not usable; primitive rows use value -1, skip live prune/update loops, then rebuild from live team indexes once player-led groups arrive. GUI_Commander_VoteMenu.sqf:10-32,69-91 mirrors the same display fallback for commander-side reassignment. |
No checked help-menu lifecycle delta over B74.2. | No checked main-menu 17/18/19 router delta over B74.2. |
Branch-only Chernarus late-JIP display fallback. It does not close the older stable vote-loop/row-color cleanup, help unload mismatch or GPS router debt, and it must not be described as current stable or Vanilla behavior. |
Miksuu b8389e74 and origin/perf/quick-wins 0076040f
|
Same inclusive vote-loop and row-color shape in both maintained roots; Miksuu uses Init_Client.sqf:284, perf uses :285. |
Same help namespace mismatch at Rsc/Dialogs.hpp:3502-3503. |
Same handler-only 17/18 route as docs checkout; visible MenuAction = 19 remains CA_FPSHUD_Button / FPS HUD at Rsc/Dialogs.hpp:1220-1227 in both maintained roots. |
No upstream/perf rescue for this UI cluster. |
Historical release commit a96fdda2
|
Same vote shapes in both maintained roots at Init_Client.sqf:288, GUI_VoteMenu.sqf:29,49,61 and GUI_Commander_VoteMenu.sqf:58. |
Same mismatch in both maintained roots at Rsc/Dialogs.hpp:3108-3109. |
The historical release commit exposes CA_GPS_Button / MenuAction = 19 at Rsc/Dialogs.hpp:1231-1240, but the old 17/18 handlers remain at GUI_Menu.sqf:243,247 in Chernarus and :235,239 in Vanilla. |
Historical release matches stable GPS visibility but does not rescue vote/help or old zoom-router cleanup; current origin exposes no live release/* head in the checked branch scan. |
Patch order:
- Fix vote loops with
count - 1orforEach, and correct the row-color target so highlighted rows match the candidate rows. - Use one help-display namespace key and either implement a real
onUnloadbranch or remove the stale controller call. - Decide whether GPS zoom should be visible again. If not, remove or comment the dead
17/18router cases; if yes, add controls deliberately and smoke HUD/GPS state. - Propagate maintained Vanilla and smoke vote refresh/list coloring, help open/close and main-menu HUD/FPS/GPS behavior together.
GUI_Menu_Tactical.sqf is the support hub. It builds the support list from fast travel, ICBM, paratroopers, ammo/vehicle paradrops, UAV actions and unit camera (:56-64). Availability is recomputed from current upgrades, funds, cooldowns and selected support (:144-290), then requests are sent through RequestSpecial where needed (:373 and later request branches).
GUI_UpgradeMenu.sqf reads side upgrade arrays, costs, descriptions, images, labels, levels, links and times from missionNamespace (:9-18). Commander-only purchase sends RequestUpgrade (:158-161) and starts local progress feedback for pure clients (:168-174).
GUI_Menu_Economy.sqf handles commander income percentage, structure selling and supply-truck respawn. The respawn supply-truck action sends ["RequestSpecial", ["RespawnST", sideJoined]] (:90-96), which ties this UI directly to the partially broken AI/supply-truck feature described in Feature status register.
Current-B74 Economy-control refresh 2026-06-23: docs/source HEAD@21f0d53b is unchanged from d2a3f995 / b5219d47 for checked Economy controller/resource paths and still writes disabled-state controls 23004, 23005 and 23006 from GUI_Menu_Economy.sqf:7-8 in both maintained roots while RscMenu_Economy declares 23002, 23003 and 23008 without 23020 at Rsc/Dialogs.hpp:3327,3339,3346. Current stable origin/master@0139a346, current B69 origin/claude/b69@8d465fce, adjacent B74 origin/claude/b74-aicom-spend@b23f557f and historical a96fdda2 remove those stale writes in both maintained roots, read the dashboard with DisplayCtrl 23020 at GUI_Menu_Economy.sqf:25 and declare 23020 in Rsc/Dialogs.hpp (:3070 on stable/B69/B74, :3006 on historical release). Current Miksuu b8389e748243 and perf 0076040f remain old-shape. B74 changes only Chernarus dashboard label text versus stable among checked paths, not the control-map repair.
Spark UI scout 2026-06-04 control/action map:
| Menu | Control/action | Runtime effect |
|---|---|---|
| Main menu | MenuAction == 7 |
Opens WFBE_UpgradeMenu (GUI_Menu.sqf:161-166). |
| Main menu | MenuAction == 8 |
Opens RscMenu_Economy (GUI_Menu.sqf:168-173). |
WFBE_UpgradeMenu |
idc 504001 |
Upgrade list selection/double-click drives WFBE_MenuAction = 1 or 2 (Rsc/Dialogs.hpp:75-86; GUI_UpgradeMenu.sqf:73-83,129-161). |
WFBE_UpgradeMenu |
idc 504007 |
Purchase button sets WFBE_MenuAction = 1; the controller validates locally and sends RequestUpgrade (Rsc/Dialogs.hpp:122-131; GUI_UpgradeMenu.sqf:129-161). |
WFBE_UpgradeMenu |
WFBE_MenuAction == 1000 |
Returns to WF_Menu (GUI_UpgradeMenu.sqf:206-210). |
RscMenu_Economy |
idc 23010, 23011, 23012
|
Income slider, percent label and Set Income button; MenuAction == 3 applies the split (Rsc/Dialogs.hpp:3360-3380; GUI_Menu_Economy.sqf:74-81). |
RscMenu_Economy |
idc 23013, 23014
|
Commander/player income labels (Rsc/Dialogs.hpp:3381-3391; GUI_Menu_Economy.sqf:70-71). |
RscMenu_Economy |
idc 23015 |
Sell Structure button; MenuAction == 105 runs map-pick, refund and damage/destroy flow (Rsc/Dialogs.hpp:3394-3401; GUI_Menu_Economy.sqf:105-151). |
RscMenu_Economy |
idc 23016 |
Respawn supply-truck control; MenuAction == 4 sends RequestSpecial ["RespawnST", sideJoined] (Rsc/Dialogs.hpp:3407-3415; GUI_Menu_Economy.sqf:91-97). |
Localization note: Economy labels are mostly STR_* backed, but the live WFBE_UpgradeMenu resource still hardcodes "Upgrade Menu :" and "Upgrade" in Rsc/Dialogs.hpp:36,129-130. The Buy Units and Tactical controllers also still carry live hardcoded English player-facing help/status text: vehicle help hints in GUI_Menu_BuyUnits.sqf:443-457 and artillery ammo request status in GUI_Menu_Tactical.sqf:604-605. Treat these as UI consistency/localization debt, not gameplay bugs.
EASA opens from GUI_Menu_Service.sqf and uses generated arrays from Client/Module/EASA/EASA_Init.sqf. In docs/source, current Miksuu and perf its dialog shares idd=23000 with Economy; current stable/B74.1/B74.2/B69/B74 and historical release split EASA to idd = 24000. Detailed runtime is documented in Gear, loadout and EASA atlas, with duplicate-IDD patch detail in UI IDD collision repair.
Respawn flow starts in Client/Functions/Client_OnKilled.sqf:156 with createDialog "WFBE_RespawnMenu". The canonical source-backed flow, spawn-source table, MASH split, AI respawn path and custom-gear penalty edge now live in Respawn and death lifecycle atlas.
There is no standalone Client/RHUD directory in the current checkout. RHUD is the combination of Client/Client_UpdateRHUD.sqf, the OptionsAvailable title resource and the main-menu toggles.
Client/Client_UpdateRHUD.sqf is the optimized HUD loop:
- Starts hidden by default:
RUBHUD = false,RUBFPSHUD = false(:3-7). - Uses
OptionsAvailableas the shared display and repairs it if missing (:87-95). - Caches controls, last texts, last colors and last visibility state (
:22-56). - Has three modes: hidden, FPS-only and full RHUD (
:205-239). - Refreshes expensive town/economy aggregates every 3 seconds instead of every loop (
:338-350). - Records local performance audit samples under
client_rhud(:366-370).
Full RHUD displays health, uptime, commander, AI count, money, income, side supply, supply income/minimum, towns held and client/server FPS. FPS-only mode repositions four controls into a small upper-right overlay.
Wave P clarified the server-FPS contract: player UI reads SERVER_FPS_GUI from Client/Client_UpdateRHUD.sqf:113, populated by Server/GUI/serverFpsGUI.sqf:6-7. The second dedicated publisher Server/Module/serverFPS/monitorServerFPS.sqf:4-6 publishes WFBE_VAR_SERVER_FPS, but no current source Chernarus player-UI reader was found. Treat that as a compatibility/redundancy channel until generated and modded consumers are deliberately retired.
Map UI is split across one-shot initialization, long-running refresh loops and event handlers:
| Script | Role | Performance posture |
|---|---|---|
Client/Init/Init_Markers.sqf |
Creates local town/camp markers. Re-run after JIP delay. | One-shot plus JIP refresh. |
Client/FSM/updatetownmarkers.sqf |
Updates town marker text/status while map is visible. | Sleeps longer when map is closed; records updatetownmarkers. |
Client/FSM/updateteamsmarkers.sqf |
Tracks team/player/AI markers, AFK suffix and alpha/color changes. | Skips most work when no map/GPS/Warfare dialog consumer is visible; records updateteamsmarkers. |
Client/FSM/updateavailableactions.fsm |
Computes range booleans and writes action availability icons. | Tracks nearEntities count and records updateavailableactions. |
Client/Functions/Client_BookkeepBlinkingIcons.sqf |
Optional combat marker blinking bookkeeping. | Fully gated by WFBE_C_MAP_ICON_BLINKING_ENABLED. |
WASP/global_marking_monitor.sqf |
Adds a display-12 map double-click handler that prefixes marker text with the player's name. | Polls for the marker dialog/display before attaching mouseButtonDblClick; current source disables all user input, then runs an unslept wait for up to two seconds before re-enabling input (:57-73). Add a tiny backoff and fail-safe unlock before expansion. |
Branch intel 2026-06-23: origin/claude/upstream-blinking-mapicons@6e31f7fd5 is a branch-only mounted-player blink candidate, not current stable behavior. Its merge-base with current stable is be2bbd084, which is an ancestor of origin/master@f8a76de34; direct diffs against current stable also include unrelated B74.1 Init_CommonConstants.sqf:914-920 player-stats drift. The payload versus be2bbd084 is only Client_BookkeepBlinkingIcons.sqf in source Chernarus and maintained Vanilla (+32, git diff --check clean): current stable pushes only active vehicles into BLINKING_VEHICLES_* at Client_BookkeepBlinkingIcons.sqf:82-94, while the branch also pushes a mounted player gunner/commander into BLINKING_UNITS_* at :96-110 so the soldier marker blinks beside the active vehicle marker. Smoke with WFBE_C_MAP_ICON_BLINKING_ENABLED = 1, mounted gunner and commander seats, map/GPS open and closed, dismount, death/null cleanup and both maintained roots before promotion.
The scroll-action surface is part UI, part gameplay:
-
Client_AddWFMenuAction.sqfstores/removes the WF menu action ID on the current player object so respawn does not leave stale actions. -
updateactions.fsmattaches the blueSTR_WF_Optionsaction to the player's current vehicle and removes it from the previous vehicle. -
Client_AddPlayerAIActions.sqfattaches AI diagnose/recover actions and removes stale IDs first. -
Client_PreRespawnHandler.sqfreapplies WF menu and player AI actions after respawn, then also runs WASPOnKilled/RPG-drop hooks. -
WASP/baserep/viem.sqfattaches a commander-only base-repair action near damaged base structures and removes it when conditions change.
Client/Images contains 45 .paa files plus fps_hud.jpg. Resource users include:
- Gear tabs:
gearicontemplate,geariconall,geariconprimary,geariconsecondary,geariconsidearm,geariconmisc. - Buy-unit controls: factory/category images and crew toggles (
i_driver,i_gunner,i_commander,i_extra,i_lock). See Factory and purchase systems atlas for the full buy/spawn flow. - Action availability icons:
icon_wf_building_*andicon_wf_support_*. - Upgrade category icons:
wf_b,wf_lvf,wf_hvf,wf_air,wf_par,wf_uav,wf_sup,wf_*. - Help branding:
Textures/logo1.paa.
The intro video is Videos/intro720p.ogv, started from Init_Client.sqf:785.
| Route | Local evidence kept here | Canonical owner / action |
|---|---|---|
| Resource, IDD and image cleanup | EASA/Economy IDD overlap, stale RscMenu_Upgrade, shared title IDDs, Economy missing-control writes and RscClickableText.soundPush[] all start in Rsc/*.hpp. |
UI resource parity cleanup, UI IDD collision repair, and this page's clickable-text matrix. |
| Title display ownership |
OptionsAvailable and EndOfGameStats both use the currentCutDisplay helper path, while RHUD/action recovery can recreate OptionsAvailable. |
Keep orientation in HUD Display Ownership; patch details belong in UI IDD collision repair. |
| Controller cadence and marker loops | Modal .01 / .05 loops, RHUD/action loops and marker loops are indexed above with representative anchors. |
Use Client modal loop cadence, Indicator Surface Matrix and Performance opportunity sweep; collect RPT/audit evidence before cadence edits. |
| Vote, help and main-menu router cleanup | Vote inclusive loops, help unload namespace mismatch and old GPS zoom handlers are branch-checked in the matrix above. | Keep small UI patch scope here and route commander outcome semantics through Commander vote/reassignment. |
| Objective Ping versus old town tasks | Current stable/B74.1 origin/master@f8a76de34, current B74.2 origin/claude/b74.2-aicom@21b62b04, B69/B74 and origin/feat/naval-hvt-objectives send SetTask at GUI_Menu_Command.sqf:336,344; docs/source HEAD@c5937045f, Miksuu, perf and historical c20ce153 still comment those sends at :335,:337,:343; historical a96fdda2 has live sends but no live release/* head. |
Treat Objective Ping as source-present / smoke-pending only on the current stable-shaped branches. Keep old town-task revival separate and JIP/task-spam gated. |
| Buy Units UI and authority |
RscMenu_BuyUnits drives local GUI_Menu_BuyUnits.sqf / Client_BuildUnit.sqf; no RequestBuyUnit PVF exists. |
Factory and purchase systems atlas owns price/key, queue, refund and authority detail. |
| Gear, cargo, EASA and service partials | Gear target/content TODOs, profile _u_upgrade, vehicle cargo loop bounds, service/EASA affordability and UI-originated spend all sit outside the generic UI stack. |
Gear/loadout/EASA atlas, Gear template profile filter, Vehicle cargo equip loop bounds, and Service menu affordability guards. |
| Tactical fast travel | Fee mode hides unaffordable towns, draws marker-price text and debits locally on travel click; current stable has already dropped the old completed TODO comment. | Keep branch status in Tactical Fast-Travel Fee Branch Matrix; do not mix with RequestSpecial authority hardening. |
| Support and special indicators | Paratrooper, MASH, UAV, artillery, ICBM and AARadar marker anchors are listed in the indicator matrix. | Support specials and tactical modules atlas, Abandoned feature revival, and Networking and public variables own feature-specific PV/JIP behavior. |
| WASP marker wait/input lock |
WASP/global_marking_monitor.sqf:57-73 still disables input and polls display 54 without a sleep/backoff before final unlock. |
WASP marker wait cleanup owns the tiny patch and smoke route. |
Fast travel is a local Tactical menu flow, not a RequestSpecial server asset path. The menu reads WFBE_C_GAMEPLAY_FAST_TRAVEL and fast-travel range constants at GUI_Menu_Tactical.sqf:22-23; current stable/B74.1 origin/master@f8a76de34 equals origin/claude/b74.1-aicom@f8a76de34, defaults to 1 free travel and uses 2 for fee mode at source Chernarus Common/Init/Init_CommonConstants.sqf:612,621-624 and maintained Vanilla :414,423-426. In fee mode, the destination refresh calculates _fee from distance and WFBE_C_GAMEPLAY_FAST_TRAVEL_PRICE_KM, hides towns the player cannot afford, draws marker-text price labels, and later debits locally when the player clicks the travel destination (GUI_Menu_Tactical.sqf:185,195-196,215,403-404 in both maintained roots). Current B74.2 origin/claude/b74.2-aicom@21b62b04 has no checked Tactical GUI delta and only line-drifts source Chernarus constants to Init_CommonConstants.sqf:625,634-637; checked d472da6a..21b62b04 is empty for the four maintained-root fast-travel paths. The old //--- TODO: Travel fee... comment is absent on current stable/B74.1/B74.2/B69/B74 but still present in docs/source HEAD@003d0c4c044e, current Miksuu, perf and historical release refs, so treat it as stale policy/UX cleanup evidence in those targets rather than proof that fast travel is absent.
| Root / branch | Fee-mode destination list | Debit / prompt shape | Status |
|---|---|---|---|
Current stable/B74.1 origin/master@f8a76de34 / origin/claude/b74.1-aicom@f8a76de34
|
Both maintained roots hide unaffordable town destinations and draw marker text with $fee (GUI_Menu_Tactical.sqf:185,195-196,215). |
Both maintained roots recalculate and locally call ChangePlayerFunds at :403-404; no confirmation prompt or second affordability recheck is present. The old completed TODO is absent. |
Docs-ready owner-decision cleanup; do not reopen stale TODO removal on current stable/B74.1. |
Current B74.2 origin/claude/b74.2-aicom@21b62b04
|
No checked Tactical GUI delta versus current stable/B74.1; source Chernarus constants drift to Init_CommonConstants.sqf:625,634-637 while maintained Vanilla stays current-stable shaped. Checked d472da6a..21b62b04 is empty for the four maintained-root fast-travel paths. |
Same local debit shape at GUI_Menu_Tactical.sqf:403-404; origin/master..origin/claude/b74.2-aicom only touches source Chernarus Init_CommonConstants.sqf among checked fast-travel paths. |
Branch-visible line drift only for this lane; no fast-travel UX rescue. |
B69 origin/claude/b69@8d465fce and B74 origin/claude/b74-aicom-spend@b23f557f
|
Same paid-mode Tactical behavior as current stable, with source Chernarus constants at B69 Init_CommonConstants.sqf:580,589-592 and B74 :593,602-605. |
Same local debit shape at GUI_Menu_Tactical.sqf:403-404; checked B69..B74 fast-travel path delta only touches source Chernarus constants. |
Adjacent B74-era refs are source-present for the same UX debt, not fixes. |
Docs/source HEAD@003d0c4c044e, current Miksuu b8389e748243, perf 0076040f and historical release a96fdda2
|
Same maintained-root behavior with branch line drift; docs/source is unchanged from 1154f5d43 for the checked fast-travel path set and keeps constants at Init_CommonConstants.sqf:218,227-230, while historical release constants sit at :231,240-243. Docs/source, Miksuu, perf and release keep the old TODO at GUI_Menu_Tactical.sqf:147. |
Same local debit shape at GUI_Menu_Tactical.sqf:404-405; adjacent support debits drift between refs, but they are not the fast-travel debit. |
No checked old-shape ref rescues the fee-mode UX/policy debt; current origin exposes no live release/* or fast-travel feature heads on 2026-06-24. |
Practical patch rule: keep this separate from RequestSpecial authority hardening. First decide the user-facing policy: hide unaffordable destinations as today, show them disabled with a reason, or allow selection but block with a hint. If fee mode stays paid, add a final local funds/context recheck immediately before the debit and consider a confirmation prompt for long-distance travel. Smoke WFBE_C_GAMEPLAY_FAST_TRAVEL modes 0/1/2, insufficient/exact/sufficient funds, HQ/town/command-center start points, non-friendly towns, maximum range, vehicle/group teleport, death during travel and maintained Vanilla parity.
RscClickableText is a base UI resource class. B74.2 current-head follow-up 2026-06-24: docs/source HEAD@14d74f9d2 is unchanged from 1d4282eca8fd / 0bb0f89f / b5219d47 for checked resource/dialog/title paths and still carries the malformed base value. Current stable/B74.1 origin/master@f8a76de34 / origin/claude/b74.1-aicom@f8a76de34, current B74.2 origin/claude/b74.2-aicom@21b62b04, current B69 origin/claude/b69@8d465fce, adjacent B74 origin/claude/b74-aicom-spend@b23f557f and the live GUER branch hits define class RscClickableText at Rsc/Ressources.hpp:541 and the valid empty-sound soundPush[] = {"", 0.2, 1}; at :556 in both maintained roots, matching the older valid precedent at :92. Chernarus received the stable fix in 1a5e0b40; maintained Vanilla received the propagated generated-file fix in 9b49883c. Checked d472da6a..21b62b04, origin/master..origin/claude/b74.2-aicom and B69..B74 resource/dialog/title deltas are empty; GUER branch hits touch Dialogs.hpp / Titles.hpp only and retain the valid base value. The blast radius remains branch-sensitive because docs/source, current Miksuu, perf, historical release and UI theme checkpoints carry the malformed base value, and Rsc/Dialogs.hpp derives 14 controls from the base class in current stable/B74.1/B74.2/B69/B74/GUER branch hits while old-shape checked branches derive 17 controls.
| Root / branch | RscClickableText.soundPush[] |
Derived clickable controls | Status |
|---|---|---|---|
Docs/source HEAD@14d74f9d2 Chernarus + maintained Vanilla |
Rsc/Ressources.hpp:556 keeps {, 0.2, 1} in both maintained roots; :92 shows valid {"", 0.2, 1} precedent. Checked Rsc/Ressources.hpp / Rsc/Dialogs.hpp / Rsc/Titles.hpp paths are unchanged from 1d4282eca8fd, 0bb0f89f, b5219d47 and the earlier a71b42fe / f7bc72a8 matrix snapshots. |
17 : RscClickableText controls in each Rsc/Dialogs.hpp root, including gear slots, WF menu toggles, construction/CoIn, artillery and economy controls. |
Patch-ready, docs/source-unpatched; propagate Vanilla with any source edit. |
Current stable/B74.1 origin/master@f8a76de34 / origin/claude/b74.1-aicom@f8a76de34, current B74.2 origin/claude/b74.2-aicom@21b62b04, current B69 8d465fce, adjacent B74 b23f557f and GUER branch hits c8ef67d8 / 0f53f34d Chernarus + maintained Vanilla |
Fixed/source-present in both maintained roots: Rsc/Ressources.hpp:556 keeps {"", 0.2, 1}. The old malformed value is absent from the checked maintained roots; checked 0139a3468609..origin/master, origin/master..origin/claude/b74.2-aicom, d472da6a..origin/claude/b74.2-aicom and origin/claude/b69..origin/claude/b74-aicom-spend resource/dialog/title deltas are empty. GUER branch hits only change adjacent Dialogs.hpp / Titles.hpp surfaces among checked files and retain the valid base value. |
14 derived controls in each maintained root at Rsc/Dialogs.hpp:670,710,742,817,868,1194,1204,1214,1587,1642,2186,2448,2828,3133. |
Current stable/B74.1/B74.2/B69/B74/GUER branch hits no longer need the base config patch; keep propagation/recheck work branch-scoped and run representative Arma 2 OA dialog smoke before release-validated wording. |
Current Miksuu master (b8389e748243) |
Same malformed base-class value in both maintained roots. | 17 derived controls in both maintained roots, with line drift from docs/source. | Direct git ls-remote rechecked this as the current Miksuu head; no upstream rescue. |
origin/perf/quick-wins (0076040f) |
Same malformed base-class value in both maintained roots. | 17 derived controls in both maintained roots. | Old-shape branch and not a rescue for the base config. |
Historical release a96fdda2; no live release/* head exposed on 2026-06-24 |
Same malformed base-class value in both maintained roots. | 14 derived controls in each maintained release root at Rsc/Dialogs.hpp:657,697,729,804,855,1181,1191,1201,1537,1592,2122,2384,2764,3069. |
Historical release evidence does not rescue the base config. |
UI theme branches origin/feat/wf-menu-ops-console (0767c0b5) and origin/feat/wf-menu-ux-phase1 (87d86257) |
Same malformed base-class value in both maintained roots. | 17 derived controls in both maintained roots. | Theme branches still need config smoke before promotion. |
Practical patch rule: for current stable/B74.1/B74.2/B69/B74/GUER branch hits, do not reopen the base-class edit; it is already source-present in Chernarus and maintained Vanilla. For older branches that still carry {, 0.2, 1}, change only the base-class array to the valid local empty-sound precedent {"", 0.2, 1} unless a code owner wants a real click sound, then propagate maintained Vanilla deliberately. In all cases, run an Arma 2 OA dialog smoke that opens representative inheritors from gear, WF menu/HUD toggles, construction/CoIn, artillery and economy; treat modded mission copies as unsupported until their broader conflict/generation blockers are resolved.
The UI layer is reviewed for JIP/headless scope as of 2026-06-02. It is ordinary-client and hosted-client code; headless clients do not run the UI init path.
Client-bound PVF runtime notes are now centralized in Networking and public variables. Use that matrix before reviving SetTask, paratrooper markers, MASH marker replay, attack-wave JIP display, endgame routing or money-changing localized messages.
| Question | Source-backed verdict |
|---|---|
| Does a dedicated headless client run UI scripts? | No. initJIPCompatible.sqf:70-76 and :224-234 run client init only for hosted server or non-headless non-dedicated clients; :237-238 sends detected headless clients to Headless/Init/Init_HC.sqf instead. |
| Does a late-joining client wait for usable side/team state before UI init? | Mostly yes, but without timeouts. initJIPCompatible.sqf:224-233 waits for WFBE_PRESENTSIDES and each side's wfbe_teams before launching Init_Client.sqf; Init_Client.sqf:165, :360, :367-369, :384, :394-397, :463-467, :490, :595, :757 and :787 then wait on common/town/client logic state. This inherits the broader boot/JIP wait-chain caveat in Lifecycle wait-chain: a never-synced variable can hang the client UI path. |
| Are local UI/title displays resilient after JIP or display loss? | Partly. Init_Client.sqf:147-150 keeps the legacy RscOverlay alive, :161-162 clears stale title display refs, Rsc/Titles.hpp:170-171 tracks OptionsAvailable in uiNamespace["currentCutDisplay"], and Client_UpdateRHUD.sqf:87-95 recreates OptionsAvailable if the stored display is null. Caveat: EndOfGameStats also uses the same currentCutDisplay key (Titles.hpp:539-540), so endgame stat rendering should be smoke-tested with RHUD/action icons enabled before claiming title-display resilience. |
| Are markers and vote UI rehydrated for late joiners? | Partly. Init_Client.sqf:730-734 re-runs Client/Init/Init_Markers.sqf after a short JIP delay, updateclient.sqf:41-99 re-evaluates west/east HQ wreck marker state, and Init_Client.sqf:787-789 opens WFBE_VoteMenu if the side logic says a vote is already running. Public-variable marker styling still needs the marker-specific smoke cases from Marker cleanup/restoration. |
| Do respawns restore the UI/action surface? | Yes for the audited local action surface. Client_OnKilled.sqf:49-52 closes active dialogs, :60-87 waits for the new player object and rebinds the killed EH, then calls PreRespawnHandler at :87-89. Client_PreRespawnHandler.sqf:1-38 reapplies skill effects, restarts updateactions.fsm, re-adds the WF menu/player AI actions and restores commander build action when applicable. |
| Is "HC" wording ambiguous in this code? | Yes. updateclient.sqf:203-205 and :227-228 call hcAllGroups / HCRemoveAllGroups, which are player high-command UI/group controls. They are not evidence that the Arma 2 OA headless-client process is running UI code. |
Verdict: mark the UI/HUD/menus JIP/HC coverage cell as reviewed with caveats. No dedicated headless-client UI execution was found. Late-join support exists through client-role gating, marker replay, HQ marker repair and vote/menu recovery, but the UI path depends on multiple unbounded synchronized-variable waits and several event-style publicVariable handlers that require feature-specific smoke rather than a blanket "JIP clean" claim.
- For a new modal workflow, add a distinct class in
Rsc/Dialogs.hpp, a controller underClient/GUI, and a main-menu or action entry. Use a unique IDD. - For status HUD data, extend
OptionsAvailablecontrols and updateClient/Client_UpdateRHUD.sqfwith cached text/color/show writes. - For range/action indicators, extend
_iconsand_usabletogether inupdateavailableactions.fsm, then verify the matchingOptionsIconexists inRsc/Titles.hpp. - For map marker behavior, prefer local markers and preserve map-closed sleep/backoff logic.
- For respawn UI, keep marker selection and actual respawn execution separated: marker loop in
Client_UI_Respawn_Selector.sqf, action inGUI_RespawnMenu.sqf, post-respawn state inClient_OnRespawnHandler.sqf. - For WASP UI additions, check WASP overlay first because some old action chains are commented or missing.
Previous: Player UI workflow map | Next: Tools/build
Main map: Home | Fast path: Quickstart | Agent file: agent-context.json
Home | Agent Guide | Current live state | Release 1.2.2 (B91) | Quickstart | Progress | Lifecycle wait-chain | Join/disconnect | Parameters/build | Assets/config | SQF atlas | PV index | Modules | Support/specials | Commander/HQ | Commander vote/reassign | Construction/CoIn | Construction cleanup | WDDM compositions | Factory/purchase | Upgrades/research | Towns/camps/capture | Victory/endgame | Markers/cleanup | Server runtime | AI runtime/HC | AI commander audit | HC delegation | Town AI safety | Commander reassignment | Resistance supply | Player UI workflow | UI atlas | Respawn/death | Gear template filter | Vehicle cargo loop | Service guards | UI IDD repair | UI design inspiration | WASP overlay | Feature status | Source propagation | release readiness | Tooling readiness | Integration trust | AntiStack DB | Owner decisions | Shelved registry | Abandoned feature revival | Hardening roadmap | PVF dispatch | Server authority | ICBM authority | Attack-wave authority | Telemetry families | AICOM V2 cutover | Consumer port map | Testing workflow | Server ops | Web tools | Ecosystem repos | Arma 2 OA refs | A2 traps | OA compatibility audit | Coverage ledger | Navigation inventory | Pruning ledger | Knowledge roadmap | Agent context | Collab protocol | Worklog | Audit archive 2026-07 | Briefing reference | Utes invasion concept
- Shelved AICOM concepts - revivable someday ideas (owner-shelved 2026-07-03)
Docs rule: source-backed claims only; Arma 2 OA scripting docs only; gameplay edits start in Missions/[55-2hc]warfarev2_073v48co.chernarus.
- Getting started
- Status and coordination
- Agent context
- Agent collaboration protocol
- Agent worklog
- Agent worklog archive
- Progress dashboard
- PR cleanup and integration lab
- Shelved PR #169: gear price double-count
- Shelved PR #194: Chernarus no-trees
- Coordination board
- Codebase coverage ledger
- Bottleneck removal queue
- Current source status
- Wiki mirror reconciliation
- Navigation inventory
- Registers
- Agent orchestration
- Architecture
- Architecture overview
- Mission entrypoints and lifecycle
- Lifecycle wait chain
- Player join/disconnect and AntiStack lifecycle
- Mission parameters/localization/build inputs
- Stringtable localization key-family catalog
- Source inventory
- Content structure and maps
- Assets/config/localization/parameters
- Mission start parameters index
- Code and networking
- Gameplay systems
- Core systems index
- Gameplay systems atlas
- Commander/HQ lifecycle atlas
- Economy, towns and supply
- Economy system reference
- Balance asymmetries
- Anti-stack skill-balance mechanic
- Empty-side supply income stagnation
- Towns, camps and capture atlas
- Victory and endgame atlas
- Victory conditions reference
- Territorial victory reference
- Marker cleanup and restoration
- Marker loop engine and registries
- Map marker families content catalog
- Marker subsystem function reference
- Client marker FSM updater map
- Support specials and tactical modules
- SCUD TEL tactical munitions
- Naval HVT objectives (carriers/SCUD)
- SCUD saturation strike mechanic
- Takistan airfield FPV drone design
- Construction and CoIn systems
- Structure damage reduction & friendly-fire
- Construction logic list cleanup
- Flak tower & WDDM anchor compositions
- Resistance supply scaffold
- GUER Insurgents faction overview
- GUER Insurgents branch audit
- GUER insurgent player economy
- GUER Commissar Panel
- GUER air-defense loop (Ka-137/Mi-24)
- Upgrades and research atlas
- Supply mission architecture
- Supply mission authority cleanup
- Current supply helicopters PR1
- Respawn and death-loop lifecycle
- Vehicle theft economy pitch
- GUER tunnel network pitch
- Content, reference and catalogs
- Faction unit/vehicle roster catalog
- Auxiliary/SF/civilian unit catalog
- Gear store loadout route catalog
- Upgrade research (cross-faction)
- Gear store price and upgrade catalog
- Gear store catalog (complete, per faction)
- Defense structures catalog
- Artillery reference per faction
- AI squad team templates catalog
- Town AI lifecycle reference
- Town AI group composition catalog
- Class-skill system reference
- Player skill abilities reference
- Default gear template content catalog
- Chernarus map content reference
- Takistan map content reference
- Takistan features
- Takistan parity reference
- Takistan oilfields objective reference
- IRS IR-smoke countermeasure
- Arty module special munitions
- Zeta cargo sling-load reference
- Spawn primitive function reference
- Kill and score pipeline
- Waypoint helper function reference
- Position and proximity function reference
- Side/team state function reference
- Player AI watchdog and recovery
- AICOM stuck-recovery v2
- LoadoutManager data-model contributor guide
- Discord status bot setup and reference
- GLOBALGAMESTATS extension reference
- New player quickstart (player guide)
- Optional client mods (player guide)
- Earning funds and score (player guide)
- Vehicle service and logistics (player guide)
- Commander's handbook (player guide)
- Tactical support menu
- Paradrop player experience
- Supply missions (player guide)
- In-game briefing & Diary field manual
- Playable maps catalog
- Faction root variables reference
- Faction base structures catalog
- Counter-battery radar system
- Bank, Reserve and Artillery Radar structures
- Map ruleset model and object config
- Countermeasures module reference
- Vehicle countermeasure (flares/spoofing)
- UAV terminal and spotter system
- Artillery firing function reference
- Service Point pricing model
- Medic redeployment truck (forward spawn)
- Side-patrol runtime and convoy mechanics
- Day/night cycle and weather system
- Config lookup helper reference
- CIPHER sort utilities reference
- Modded maps status and content
- BattlEye filter setup and OA taxonomy
- Player squad/group join protocol
- AutoFlip vehicle recovery
- Engine stealth fuel toggle
- Valhalla vehicle climbing-assist
- Missile and ordnance Fired-EH reference
- Vehicle equip and rearm reference
- Array and collection utilities
- Server composition spawner reference
- Upgrade queue server loop
- Map boundaries and off-map enforcement
- Namespace/profile/diagnostic utilities
- Group bool getVariable A2-OA trap
- Vehicle weapon balance init
- View distance auto-throttle
- Camp & respawn-camp getters
- Performance audit writer
- Site clearance (bulldozer)
- Factory queue cancel & refund
- AI commander tunable constants
- Experimental feature-flag constants
- Flag system quick reference
- Mission tunable constants catalog
- Gear parsing & cargo capacity
- Structure dressing function
- Paradrop delivery functions
- ICBM nuke client VFX & radiation
- Server HandleSpecial router
- LocalizeMessage chat router
- Gear buy-menu render & price functions
- Server broadcast & telemetry loops
- Per-unit client init pipeline
- Vehicle marking & texture pipeline
- Defense category & budget
- Legacy AI order primitives
- Commander-team driver
- AICOM command verbs
- AICOM behavior fix taxonomy
- AI commander wildcard deck reference
- AICOM aircraft and airfield system
- Static-defense manning
- End-of-game stats screen
- AI commander execution loop
- Deployable bipod / weapon resting
- Town-economy getters
- Server-init deadspawn & airfield probe
- GUER VBIED detonate action
- Resource income-tick engine
- AI commander treasury accessors
- PVF send-helper contracts
- AICOM logging & AICOMSTAT telemetry
- AICOMSTAT v2 event census
- WASPSCALE v2 telemetry
- WASPSCALE v2-ext coverage audit
- Telemetry families reference
- Group lifecycle & entity reaping
- Batch AI spawner orchestrator
- Client funds/income HUD readout
- Server group GC & cap warning
- Town runtime tuning constants
- Client input/hotkey handler
- WASP base-repair system
- WASP DropRPG launcher/ordnance
- CoIn construction-interface client engine
- Town-capture garrison & airfield rebuild
- Map-control & minimap templates
- Client FPS & state telemetry
- Client service-proximity getters
- Airfield-exclusive roster & unit hints
- Unit-camera spectator system
- Town-garrison patrol/defense worker
- RequestTeamUpdate squad-discipline
- Arma2Warfare GPT assistant
- LoadoutManager build configs & defines
- GLOBALGAMESTATS extension logging
- Discord bot instrumented logging
- Eden/Everon & Taviana map content
- Cruise missile strike asset
- AI / HC
- AI headless and performance
- AI mods and pathfinding reference
- Headless client scaling and topology
- AI runtime/HC loop map
- Headless client init and stat loop
- HC delegation target selection
- Player AI caps and role balance
- Old WarfareBE FPS comparison
- AI commander autonomy audit
- Upstream BE 2073 AICOM delta
- Parent 2.073 divergence audit
- AI commander capture & fun plan
- AI commander B69 improvement roadmap
- AI commander B69 implementation sketches
- AICOM V2 cutover status
- Headless delegation and failover
- Commander reassignment call shape
- GUER Director living-resistance pitch
- Quality and operations
- Foundation perf findings & Tier-3 dead-ends
- Dead/stale code register
- Commander vote/reassignment
- Attack-wave authority
- Server runtime and operations
- Server ops runbook
- JIP enrollment & client data delivery (b74.2 lessons)
- Server gameplay runtime atlas
- PerformanceAuditAnalyzer
- Performance opportunity sweep
- Documentation plan
- Knowledge platform roadmap
- Wiki quality audit
- Wiki pruning and relevance ledger
- Audit findings queue (2026-06-03)
- Deep review findings
- Client UI / server-loop perf findings
- Performance gain simulation
- Self-host testing field notes
- Cleanup and work lanes
- Hardening and authority
- UI / player workflows
- Client UI, HUD and menus
- UI HUD and dialogs
- Player UI workflow map
- Client UI systems atlas
- UI IDD collision repair
- UI control class library reference
- UI theme palette and style macros
- UI design inspiration 2026-07
- Available-actions client gate FSM
- Gear/loadout/EASA atlas
- Gear template profile filter
- Vehicle cargo equip loop bounds
- Factory and purchase systems atlas
- Service menu affordability guards
- WASP overlay
- Class-skill system reference
- Skin selector and class swap
- Earplugs audio toggle
- Mission audio catalog
- HQ radio knowledge-base catalog
- QoL trio player hints
- Player vehicle/travel actions
- Tooling / release / integrations
- Tools and build workflow
- Warfare web tools
- Ecosystem & companion repos
- Zargabad tooling parity
- July 2026 release readiness
- Operator monitor and CPU affinity tools
- Tooling release readiness audit
- Source fix propagation queue
- Agent release readiness ledger
- Release source intake map
- Testing/debugging/release workflow
- Current RPT release gate
- RPT telemetry consumer port map
- External integrations
- Integration trust boundary audit
- AntiStack database extension audit
- Community & Dev
- Community & Dev
- Miksuu upstream wiki import / archive index
- Upstream changelog feature leads
- Developer history and upstream lessons
- Upstream Miksuu commit intel
- Upstream mining ledger
- Archive script mining v2
- Upstream BE 2073 AICOM delta
- Parent 2.073 divergence audit
- PR8 and Drone upstream lesson match
- Development lessons learned
- External research reports
- Audit archive 2026-07
- Briefing reference
- Utes invasion concept
- Miksuu archive: Home
- Miksuu archive: Welcome
- Miksuu archive: Big announcements
- Miksuu archive: Changelog
- Miksuu archive: Development process
- Miksuu archive: Discord bot
- Miksuu archive: Gameplay videos
- Miksuu archive: LoadoutManager
- Miksuu archive: Chernarus script architecture
- Base-game visual catalogs
- Compatibility and references
- HC upstream history and lessons
- Player stats branch audit
- BuyMenu EASA QoL branch audit
- Perf quick wins branch audit
- Commander positions branch audit
- Zargabad branch audit
- Quad AI Commander concept
- Arma 2 OA external reference guide
- Base-game config & image reference
- Arma 2 OA compatibility audit
- Arma 2 OA agent traps reference
- Arma 2 OA command versions
- Wiki source consistency
- External Arma 2 OA reference index