-
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/.
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 now has a canonical branch/root matrix for the stale old upgrade dialog, Economy missing-control writes and duplicate IDDs. Short version: docs/source and stable/upstream keep the old UI resource shape; release Chernarus fixes stale
RscMenu_Upgrade, moves EASA toidd = 24000and rewrites Economy away from23004-23006; release Vanilla still carries the old shape;RscOverlay/OptionsAvailableremain duplicated onidd = 10200everywhere checked. Use UI resource parity cleanup before changing these rows, then UI IDD collision repair for duplicate-IDD 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:
GUI_Menu_Economy.sqf:10resetsMenuActionbut does not resetmouseButtonUp. Its map-sell path consumesmouseButtonUpatGUI_Menu_Economy.sqf:101-106, while comparable map-click dialogs reset the latch on open (GUI_Menu_Command.sqf:3-4,GUI_Menu_Tactical.sqf:137-138,GUI_Menu_UnitCamera.sqf:8-9,GUI_RespawnMenu.sqf:28). Smoke Economy map-sell after any dialog/map interaction work. - 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.
origin/feat/wf-menu-ops-console head 0767c0b5 is a branch-only UI reskin, not stable-master truth. It changes the palette/control layer in Chernarus and maintained Vanilla (Rsc/Styles.hpp:10-40, Rsc/Ressources.hpp:117-131,274-277), adds a chevron and footer to WF_Menu (Rsc/Dialogs.hpp:1057-1064,1240-1249), sets PuristaBold on the hub title (Dialogs.hpp:1173-1179) and sets EtelkaMonospacePro on RHUD numeric values (Rsc/Titles.hpp:178-179). Treat it as visual/theme evidence until Arma 2 OA smoke proves the fonts, texture path, contrast and both Chernarus/Vanilla menu surfaces.
Static caveat for the branch: git diff --check origin/master..origin/feat/wf-menu-ops-console currently reports trailing whitespace in docs/superpowers/plans/2026-06-03-wf-menu-ops-console.md:78,179. Clean that before merge even though it is not mission runtime code.
origin/feat/buymenu-easa-qol head a66d4691 is the smaller UI QoL branch. It changes only three Chernarus client UI files: Client_UIFillListBuyUnits.sqf:1,61-62,104 colors unaffordable displayed base prices red, GUI_Menu_BuyUnits.sqf:201-210 appends live queue counts to factory tabs, GUI_Menu_BuyUnits.sqf:280,335,388,444,487 touches selected-unit cost display and GUI_Menu_EASA.sqf:29-40 colors/preselects the aircraft's current loadout. Treat this as low-blast-radius UI evidence, not merged behavior: maintained Vanilla is not changed on the branch, and Arma smoke still needs to confirm affordability color versus full/crew cost, queue-label refresh/no flicker, final price field and EASA current-loadout selection. See BuyMenu EASA QoL branch audit.
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 | Needs audience split |
Server/GUI/serverFpsGUI.sqf:7-8; Server/Module/serverFPS/monitorServerFPS.sqf:3-5; Client/Client_UpdateRHUD.sqf:113,199-201,367-369; Common/Functions/Common_PerformanceAudit.sqf: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. |
Route publicVariable/status-channel semantics through Networking and public variables and performance counters through Performance opportunity sweep. Split player-facing, admin-only and developer-only outputs before pruning. |
| Image/resource references | Needs integrity pass |
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 owns stale/missing resource cleanup. Verify every Client\Images\*.paa/.jpg reference exists in Chernarus and maintained Vanilla, and fold the known malformed RscClickableText.soundPush[] risk into the same pass. |
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. |
Current source/Vanilla, stable 89ae9dad, Miksuu 89ae9dad and release 7ff18c49 keep the shared title-handle shape already documented in this page. |
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; 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. |
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; MASH and support receivers create/remove their own marker names. | Support marker families are fragmented across support, module and UI pages; paratrooper marker registration is branch-sensitive on older/current stable docs. | Current source has the paratrooper sender/receiver files but previous branch matrices still require registration/runtime smoke before calling revival complete; release evidence remains branch-scoped. | Drop paratroopers, request artillery/UAV/special support, deploy/remove MASH, 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 and malformed RscClickableText.soundPush[] can break many menus at once; branch-only QoL icon/color changes are not current-source behavior. |
Current source/Vanilla, stable 89ae9dad, Miksuu 89ae9dad, perf 0076040f and release 7ff18c49 still keep the malformed clickable-text base-control value per the existing branch matrix. |
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 |
Server/GUI/serverFpsGUI.sqf:7-8; Server/Module/serverFPS/monitorServerFPS.sqf:3-5; Client/Client_UpdateRHUD.sqf:199-201,367-369; Common/Functions/Common_PerformanceAudit.sqf: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, performance-audit buffers, supply-status values and client update loop state. |
Split between all clients, local player, admins/operators and RPT/tooling consumers. | FPS publisher loops, client update loop, supply-status events and performance-audit flush interval. | Performance audit flushes buffered local records; FPS/status channels stop only with script/runtime termination. | Player-facing indicators, admin status and developer-only RPT counters should not be pruned together; hosted/listen FPS loop behavior has separate release-gate smoke. | Current source/stable and release branch status must stay separated through Performance opportunity sweep and Testing workflow. | Dedicated and hosted/listen FPS smoke, 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.
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.
DR-25a branch check 2026-06-05: RscOverlay and OptionsAvailable both use idd=10200 (Titles.hpp:44-51, :164-176) in current source, stable/upstream, maintained Vanilla and the release branch. Treat them as separate cutRsc resources with overlapping IDD values; current mission source has no hard-coded findDisplay 10200 caller, but future title work should not assume IDD lookup is unique.
Wave Q found a separate title lifecycle-handle collision that does not depend on matching IDDs: EndOfGameStats has idd=90000, but it also sets and clears uiNamespace["currentCutDisplay"] through the same onLoad/onUnload helper scripts as OptionsAvailable (Titles.hpp:532-540). GUI_EndOfGameStats.sqf:13,34-44,86-93 cuts EndOfGameStats and writes stat bars through that key, while the RHUD loop keeps running (Client_UpdateRHUD.sqf:183-190) and can re-cut OptionsAvailable when the shared key is null (:89-92). Branch check 2026-06-05 after fresh fetch: current source/Vanilla, stable origin/master, latest miksuu/master and origin/release/2026-06-feature-bundle all keep this shared-handle shape in both maintained roots. Patch title work by splitting display ownership, for example an OptionsAvailable/action-icon/RHUD handle and a separate endgame-stats handle, or by gating RHUD/action-icon recreation once endgame begins. Use UI IDD collision repair before changing title IDs or title display variables.
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 | Toggle FPS-only HUD |
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-05: 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 current source/Vanilla, origin/master, miksuu/master and origin/release/2026-06-feature-bundle, but fixed-string action searches found no MenuAction = 17 or MenuAction = 18 emitter in maintained roots.
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/master task assignment is partial: the dialog exposes the Set Task button (Rsc/Dialogs.hpp:2057) and GUI_Menu_Command.sqf:315-344 gathers task data and plays HQ speech, while the SetTask send calls are commented at :335,337,343. Release 7ff18c49 reuses the same Tasks tab as a branch-only "Objective Ping" path in both maintained roots: it keeps the tab visible (GUI_Menu_Command.sqf:19), sends targeted/client-side SetTask requests at :336,344, and still leaves the old town TaskSystem compile/spawn comments disabled at Init_Client.sqf:75,759 and TownCaptured.sqf:36,88.
Vote menu cleanup edge: WFBE_Client_Teams_Count is initialized as count WFBE_Client_Teams (Init_Client.sqf:273), 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 (Dialogs.hpp:3446-3447). 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: GUI_Menu.sqf:202-208 still handles MenuAction == 17/18 for GPS zoom, but the audited current WF_Menu resource block exposes actions 1-13, 16 and 19 only. The same handler-only 17/18 shape exists in maintained Vanilla, stable master and Miksuu upstream. Current release 7ff18c49 adds a visible MenuAction = 19 GPS show/hide button, but still keeps the old 17/18 zoom handlers at GUI_Menu.sqf:221,225 without maintained-root emitters. Modded Napf/Eden/Lingor also keep copied handlers. 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 GPS route | Status |
|---|---|---|---|---|
| Current source Chernarus |
Init_Client.sqf:285 sets WFBE_Client_Teams_Count = count WFBE_Client_Teams; GUI_VoteMenu.sqf:29,49,61 and GUI_Commander_VoteMenu.sqf:58 loop through that inclusive value; GUI_VoteMenu.sqf:80,82 colors [_i+1,0]. |
Rsc/Dialogs.hpp:3502 stores dialog_HelpPanel; :3503 clears cti_dialog_ui_onlinehelpmenu; GUI_Menu_Help.sqf:5-10 handles load and selection, not unload. |
GUI_Menu.sqf:202,206 handles MenuAction == 17/18; fixed-string searches found no maintained-root MenuAction = 17 or MenuAction = 18 emitter. |
Patch-ready UI cleanup; current source is unpatched. |
| Maintained Vanilla Takistan | Same vote loops, row-color offset, help key mismatch and GPS router-only shape. | Same. | Same. | Needs propagation with Chernarus if code work is claimed. |
Stable origin/master 2cdf5fb8
|
Same shapes in both maintained roots. | Same dialog_HelpPanel / cti_dialog_ui_onlinehelpmenu mismatch. |
Same handler-only 17/18 route. |
No stable rescue. |
Miksuu upstream miksuu/master 89ae9dad
|
Same shapes in both maintained roots. | Same. | Same 17/18 handler-only route. |
No upstream rescue. |
origin/perf/quick-wins 0076040f
|
Same shapes in both maintained roots. | Same. | Same. | Perf branch does not touch this UI cluster. |
Release origin/release/2026-06-feature-bundle 7ff18c49
|
Same vote shapes in both maintained roots; Init_Client.sqf line drifts to :289. |
Same mismatch in both maintained roots at Dialogs.hpp:3106-3107. |
Release exposes MenuAction = 19 GPS show/hide at Dialogs.hpp:1237, but the old 17/18 zoom handlers remain at GUI_Menu.sqf:221,225 without matching maintained-root emitters. |
Release partially changes GPS UI, but does not rescue vote/help or the old zoom-router cleanup. |
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.
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. Its dialog shares idd=23000 with Economy, and the detailed runtime is documented in Gear, loadout and EASA atlas.
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. |
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.
| Area | Evidence | Risk |
|---|---|---|
| Duplicate dialog IDD | EASA/Economy share idd = 23000 in current source/stable/upstream; release Chernarus changes EASA to 24000, but release Vanilla remains duplicated. |
Parity cleanup or formal waiver. Route through UI resource parity cleanup and UI IDD collision repair. |
| Stale old upgrade dialog |
RscMenu_Upgrade references missing Client/GUI/GUI_Menu_Upgrade.sqf and old missing Client\Images\wf_*.paa assets; live flow uses WFBE_UpgradeMenu. |
Treat as dead/stale. Route through UI resource parity cleanup; smoke live WFBE_UpgradeMenu after removal/alias. |
| Shared title IDD |
RscOverlay and OptionsAvailable both use 10200 across current source/stable/upstream/release roots checked. |
Route through UI resource parity cleanup first, then fix title display ownership and smoke RHUD/action icons/endgame together. |
| Shared title lifecycle handle |
OptionsAvailable and EndOfGameStats both set/clear uiNamespace["currentCutDisplay"] from their onLoad/onUnload scripts; current source/Vanilla, stable/upstream and release all keep the shared key. RHUD/action-icon recovery can recreate OptionsAvailable while endgame stats writes through the same key. |
Split title display variables or gate RHUD/action-icon recreation during endgame; smoke RHUD/FPS, action icons and endgame stat bars together. |
| Malformed clickable-text base control config |
Clickable text soundPush branch matrix owns the current branch/root check. Every checked maintained root/branch keeps RscClickableText.soundPush[] = {, 0.2, 1}; at Rsc/Ressources.hpp:556, while the same file shows the valid empty-sound shape {"", 0.2, 1} at :92. |
Patch-ready config cleanup. Fix the base class before deriving new clickable controls from it; then smoke representative gear, WF menu/HUD toggle, CoIn/construction, artillery and economy clickable controls in Arma 2 OA. |
| Economy dialog missing controls | Current source/stable/upstream GUI_Menu_Economy.sqf:7-8 writes to 23004/23005/23006, while RscMenu_Economy declares 23002, 23003 and 23008+; release Chernarus rewrote this, release Vanilla did not. |
Parity cleanup through UI resource parity cleanup. Smoke Economy disabled state, income controls, sell mode and supply-truck respawn after the change. |
| Polling loops |
GUI_Menu.sqf, buy/command/tactical/service/upgrade/respawn menus all run scheduled loops. |
Keep work incremental and cache expensive state. |
| Map marker loops | Marker loops are live-server sensitive and now include performance-audit records. | Preserve map-closed skip behavior and WFBE_C_MAP_ICON_BLINKING_ENABLED gates. |
| WASP marker dialog wait/input lock |
WASP/global_marking_monitor.sqf:57-73 disables all user input and does up to two seconds of unslept display polling before re-enabling input. |
Add a tiny sleep/backoff and a fail-safe unlock; smoke map-marker creation and rapid double-click/dialog-close behavior before adding more WASP marker features. |
| Respawn selector loop |
Client_UI_Respawn_Selector.sqf sleeps 0.03. |
Do not add expensive marker or object scans inside it. |
| Economy supply-truck UI |
GUI_Menu_Economy.sqf can send RespawnST. |
This touches the config-gated broken autonomous supply-truck path. |
| Command task assignment UI | Current stable/master Rsc/Dialogs.hpp:2057 exposes the button and GUI_Menu_Command.sqf:315-344 builds task data/HQ speech, but the SetTask sends are commented at :335,337,343. Release 7ff18c49 re-enables targeted sends in both maintained roots at GUI_Menu_Command.sqf:336,344 as "Objective Ping". |
Current source remains a visible partial feature; release is a branch-only revival that still needs OA menu/JIP/task-spam smoke before promotion. |
| Commander reassignment selection by name |
GUI_Commander_VoteMenu.sqf:33-46 resolves the selected row by visible leader name instead of the row's stored team value. |
Fold into Commander reassignment call shape and Commander vote/reassignment; use row value/team identity when patching DR-15. |
| Vote menu inclusive loops |
GUI_Commander_VoteMenu.sqf:58 and GUI_VoteMenu.sqf:29,61 loop to WFBE_Client_Teams_Count, which equals count WFBE_Client_Teams. |
Treat as UI correctness debt; use count - 1 or forEach if touching vote refresh. |
| Vote row color offset |
GUI_VoteMenu.sqf:74-83 scans list rows but colors row [_i+1,0]. |
Fold into the vote-refresh cleanup; smoke multiple candidates and vote changes so the highlighted/current row still matches the selected team. |
| Help menu stale unload state |
Dialogs.hpp:3446-3447 sets dialog_HelpPanel on load but clears cti_dialog_ui_onlinehelpmenu on unload; GUI_Menu_Help.sqf has no onUnload case. |
Clean namespace key ownership before adding new help-menu state or controller behavior. |
| Economy sell guard commented | DR-16: GUI_Menu_Economy.sqf:32-35 comments an HQ-death guard while :105-150 keeps the sell/refund path active. |
Treat structure selling as part of the server-authority migration class, not as a safe UI-only feature. |
| Economy stale cleanup notes |
GUI_Menu_Economy.sqf:93-96,136-141 contains dead relay comments and a TODO to replace lookup-by-find behavior. |
Clean comments/lookup behavior before using this menu as a model for new commander controls. |
| Service/EASA stale TODO |
GUI_Menu_Service.sqf:240-244 says EASA dialog is TBD, but the live path opens RscMenu_EASA. |
Do not document EASA as missing; update comments if touching service UI. |
| Buy-unit price/key alignment |
GUI_Menu_BuyUnits.sqf and Client_UIFillListBuyUnits.sqf keep three related UI/economy risks: selected-detail price drift, stale UNIT_COST_MODIFIER after discounted list fills and uppercase/lowercase driver-default profile key split. Release and origin/feat/buymenu-easa-qol fix only the Chernarus selected-detail formula; Vanilla, modifier reset and driver key remain open. |
Canonical matrix: Factory and purchase systems atlas. Normalize one price helper/reset path and one profile key before buy-menu polish; smoke list/detail/charge, funds guard, checkbox state, max-out/reset and actual spawned crew/count together. |
| Hardcoded live UI text |
GUI_Menu_BuyUnits.sqf:443-457 shows English vehicle-help hints for ambulances, repair trucks, supply trucks and artillery; GUI_Menu_Tactical.sqf:604-605 shows English artillery ammo request status. |
Move to stringtable keys during UI polish; verify no missing keys and keep tactical status formatting intact. |
| Buy-unit authority |
RscMenu_BuyUnits drives local GUI_Menu_BuyUnits.sqf and Client_BuildUnit.sqf; no RequestBuyUnit PVF exists. |
UI purchase checks are not server authority; see Deep-review findings DR-14 and Factory and purchase systems atlas. |
| Buy-gear authority and partials |
GUI_BuyGearMenu.sqf includes TODOs for target refresh, vehicle target content and template scope; profile-template save filtering has a confirmed _u_upgrade bug; cargo equip helpers have confirmed inclusive loop bounds. |
Avoid expanding templates until gear, cargo, vehicle and backpack behavior is deliberately mapped; buy-gear spend joins DR-28's client-authoritative economy class. See Gear template profile filter, Vehicle cargo equip loop bounds, Gear/loadout/EASA atlas and Deep-review findings DR-28. |
| Buy-gear stale target/content TODOs |
GUI_BuyGearMenu.sqf:64-75 refreshes targets only through _update_target and still says todo refresh targets on click; vehicle view fills from cached _gear_vehicle_content and carries todo update target content at :140-146; primary weapon replacement still has todo update mags at :245-249; inventory pricing later uses cached gear/vehicle content at :480-487. |
Treat target refresh, vehicle cargo and template work as partial before adding more gear QoL. Smoke target switching, dead target refresh, vehicle cargo edits and primary-weapon magazine replacement together. |
| Tactical fast-travel fee UX | Tactical fast-travel fee branch matrix owns the current branch/root check. Every checked maintained root/branch keeps the fee-mode TODO, hidden unaffordable destinations, marker-only fee text and local action-time debit. | Functional but partial UX. Decide whether paid destinations should be shown disabled/explained and whether a confirmation/action-time recheck is needed before debiting. |
| Upgrade progress feedback partial |
GUI_UpgradeMenu.sqf:157-165 locally debits funds/supply and sends RequestUpgrade, then sets wfbe_upgrading/wfbe_upgrading_id, but the local upgrade thread/timer/hint remains TODO. |
Current source has basic "upgrade running" feedback, not a complete local progress timer. Keep server authority work separate from UI progress polish. |
| Hardcoded help menu content |
GUI_Menu_Help.sqf:7-8 hardcodes topic labels and :12-224 embeds large English help strings in the controller. |
Localization/content debt. Move to stringtable or data files only after owner decides whether the help panel should remain in-game documentation. |
| EASA/service authority and service affordability lag |
GUI_Menu_Service.sqf and GUI_Menu_EASA.sqf are live aircraft/service UI paths. The service menu enables the heal button for Man targets using the previous _healPrice before recomputing it at GUI_Menu_Service.sqf:128-137. |
Service/EASA spend and loadout changes are UI-originated; see Deep-review findings DR-28, Gear, loadout and EASA atlas and the local service menu affordability guards. As a local UI fix, recompute price before enabling the button. |
| CoIn title registration |
WFBE_ConstructionInterface is cut from coin_interface.sqf and stores wfbe_title_coin, but it is not listed in RscTitles.titles[]. |
Construction appears intentionally wired; verify in-game before refactoring title registration. |
| Disabled town TaskSystem | Current stable/master, perf and release all keep the old town TaskSystem compile and town task spawn commented in both maintained roots at Init_Client.sqf:75,759; TownCaptured.sqf:35,87 stays commented on master/perf and shifts to :36,88 on release. |
Keep this separate from release's Objective Ping reuse of SetTask; old town tasks remain disabled/residue unless rebuilt with JIP and spam review. |
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; the constant default is 1 free, with 2 meaning fee mode (Common/Init/Init_CommonConstants.sqf:218,227-230). 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 a marker-text price, and later debits locally when the player clicks the travel destination (GUI_Menu_Tactical.sqf:185-217,403-406). The old :146-147 TODO is therefore stale policy/UX debt, not proof that fast travel is absent.
| Root / branch | Fee-mode destination list | Debit / prompt shape | Status |
|---|---|---|---|
| Current source Chernarus |
GUI_Menu_Tactical.sqf:146-147 still carries the fee-policy TODO; :185-199 hides unaffordable town destinations and :208-217 draws marker text with $fee. |
:403-406 recalculates and locally calls ChangePlayerFunds; no confirmation prompt or second affordability recheck is present. |
Docs-ready owner-decision cleanup. |
| Maintained Vanilla Takistan | Same maintained-root shape. | Same local debit shape. | Keep in parity with any source Chernarus UX/policy change. |
Current stable origin/master / local master (89ae9dad) and Miksuu upstream (89ae9dad) |
Same maintained-root shape in Chernarus and Vanilla; targeted 2cdf5fb8..89ae9dad diff has no checked Tactical menu or constants file changes. |
Same local debit shape. | No stable/upstream rescue after the town-defense merge. |
origin/perf/quick-wins (0076040f) |
Same maintained-root shape in Chernarus and Vanilla. | Same local debit shape. | Perf branch does not touch this Tactical UX. |
Release origin/release/2026-06-feature-bundle (7ff18c49) |
Same maintained-root shape in Chernarus and Vanilla; constants drift to Init_CommonConstants.sqf:231,240-243. |
Same local debit shape at GUI_Menu_Tactical.sqf:403-406. |
Release branch does not rescue this lane. |
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. Current source Chernarus and maintained Vanilla both define class RscClickableText at Rsc/Ressources.hpp:541 and the malformed soundPush[] = {, 0.2, 1}; at :556. The same maintained roots derive 17 controls from it in Rsc/Dialogs.hpp, including gear slots (:646-844), WF menu toggles (:1170-1219), construction locks/buttons (:1515, :1570, :2100, :2628), artillery toggle (:2362) and economy respawn supply truck (:3407).
| Root / branch | RscClickableText.soundPush[] |
Derived clickable controls | Status |
|---|---|---|---|
| Current source Chernarus |
Rsc/Ressources.hpp:556 keeps {, 0.2, 1}; :92 shows valid {"", 0.2, 1} precedent. |
17 : RscClickableText controls in Rsc/Dialogs.hpp. |
Patch-ready, current-source-unpatched. |
| Maintained Vanilla Takistan | Same malformed base-class value at Rsc/Ressources.hpp:556. |
Same 17 derived clickable controls. | Needs propagation with Chernarus. |
Current stable origin/master / local master (89ae9dad) and Miksuu upstream (89ae9dad) |
Same malformed base-class value in both maintained roots; targeted 2cdf5fb8..89ae9dad diff has no checked Ressources.hpp / Dialogs.hpp file changes. |
Same 17 derived controls in both maintained roots. | No stable/upstream rescue after the town-defense merge. |
origin/perf/quick-wins (0076040f) |
Same malformed base-class value in both maintained roots. | Same 17 derived controls in both maintained roots. | Perf branch does not touch this UI config. |
Release origin/release/2026-06-feature-bundle (7ff18c49) |
Same malformed base-class value in both maintained roots. | Release Chernarus and maintained release Vanilla both have 16 derived controls after GPS/menu UI drift. | Release branch 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. | Same 17 derived controls in both maintained roots. | Theme branches still need config smoke before promotion. |
Practical patch rule: change only the base-class array to a valid value first, preferably the local empty-sound precedent {"", 0.2, 1} unless a code owner wants a real click sound. Propagate maintained Vanilla deliberately, then 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