-
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. - DR-24:
RscMenu_Upgradeis stale: it points to missingClient/GUI/GUI_Menu_Upgrade.sqf(Dialogs.hpp:2425-2428). The same old dialog block references missingClient\Images\wf_*.paaupgrade icons atDialogs.hpp:2634-2821; no matchingwf_*.paafiles were found under source ChernarusClient\Imagesduring the 2026-06-04 UI scout. The live main menu opensWFBE_UpgradeMenu/Client/GUI/GUI_UpgradeMenu.sqfinstead (GUI_Menu.sqf:165). Branch check 2026-06-05:origin/master,miksuu/masterand docs/source keep the stale class in Chernarus plus maintained Vanilla; release branch Chernarus removed it in460c0312, but release Vanilla still carries the old class. - DR-17 branch check 2026-06-05: current source,
origin/masterandmiksuu/masterkeepRscMenu_EASAandRscMenu_Economyboth onidd = 23000in Chernarus and maintained Vanilla. Release Chernarus moves EASA to24000, but release Vanilla still has both dialogs on23000. They are not opened together in normal flow and no current mission sourcefindDisplay 23000caller was found, so IDD reuse is a maintenance/debug/future-script trap rather than a proven live lookup bug. Use UI IDD collision repair for the patch shape and smoke plan. -
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. - Economy IDC branch check 2026-06-05: current source Chernarus and maintained Vanilla,
origin/masterandmiksuu/masterall keepGUI_Menu_Economy.sqf:7-8writes to controls23004,23005and23006, while theRscMenu_Economycontrol block declares23002,23003, and23008through23016instead. The release branch rewrites Chernarus away from those stale writes and adds dashboard control23020, but release Vanilla still carries the old23004/23005/23006writes. Treat this as a parity cleanup: port/compare the Chernarus release fix or remove/update the stale controller writes consistently across maintained roots, then smoke Economy disabled state, income controls, sell mode and supply-truck respawn. - 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.
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). 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. The move/order helpers are live, but task assignment is partial: the dialog exposes the Set Task button (Rsc/Dialogs.hpp:2052-2053) and GUI_Menu_Command.sqf:315-344 gathers task data and plays HQ speech, while the SetTask send calls are commented at :335-337 and :343.
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 WF_Menu resource block exposes actions 1-13, 16 and 19 only. The same handler-only shape exists in maintained Vanilla, stable master, Miksuu upstream and the current release branch; modded Napf/Eden/Lingor also keep copied handlers. Treat those router cases as dead UX baggage unless a hidden/branch control is deliberately reintroduced and smoke-tested.
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 | DR-17: current source/stable/upstream EASA and Economy both use idd = 23000; release Chernarus changes EASA to 24000, but release Vanilla remains duplicated. |
Parity cleanup or formal waiver. Avoid introducing findDisplay 23000 assumptions; assign a new IDD before adding scripted cross-dialog control work. |
| Stale old upgrade dialog | DR-24: RscMenu_Upgrade references missing Client/GUI/GUI_Menu_Upgrade.sqf; its old icon controls also point at missing Client\Images\wf_*.paa assets. Live flow uses WFBE_UpgradeMenu. Release branch Chernarus removed the stale class through 460c0312, but release Vanilla still carries it. |
Treat RscMenu_Upgrade as dead/stale. Prefer a consistent deletion or explicit compatibility alias across source Chernarus and maintained Vanilla; smoke the live WFBE_UpgradeMenu path afterward. |
| Shared title IDD |
RscOverlay and OptionsAvailable both use 10200 across current source/stable/upstream/release roots checked. |
Use explicit display ownership rather than IDD uniqueness; do not introduce findDisplay 10200 assumptions. |
| Shared title lifecycle handle |
OptionsAvailable and EndOfGameStats both set/clear uiNamespace["currentCutDisplay"] from their onLoad/onUnload scripts; 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 | DR-25b: RscClickableText.soundPush[] = {, 0.2, 1}; in Rsc/Ressources.hpp:556; the same shape is present in source Chernarus, maintained Vanilla Takistan and the main modded forks. Ressources.hpp:92 shows the valid empty-sound shape as {"", 0.2, 1}. |
Fix the base class before deriving new clickable controls from it; then smoke representative buttons/resources 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 branch Chernarus no longer has those writes and uses dashboard 23020, but release Vanilla still has them. |
Parity cleanup. Import/compare the Chernarus release shape or remove/update stale writes across maintained roots; 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 |
Rsc/Dialogs.hpp:2052-2053 exposes the button and GUI_Menu_Command.sqf:315-344 builds task data/HQ speech, but the SetTask sends are commented. |
Visible partial feature; revive only with JIP/task-spam review, or hide the affordance. |
| 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 driver-default variable split |
GUI_Menu_BuyUnits.sqf:39-42,173 initializes/toggles WFBE_C_DRIVER_ENABLED_BY_DEFAULT, while cost, crew and list refresh logic mostly reads/writes lowercase wfbe_c_driver_enabled_by_default (:95,136,154,284,308,328-341,366,373,385). |
Normalize the profileNamespace key before buy-menu polish; smoke checkbox state, displayed crew cost 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 |
GUI_Menu_Tactical.sqf:146-147 still has a travel-fee policy TODO; fee mode hides destinations when funds are too low (:185-199) and draws fee text without a confirmation prompt (:208-217), then debits on travel at :403-406. |
Functional but partial UX. Decide whether paid destinations should be shown disabled/explained and whether a confirmation prompt 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 task UI |
TaskSystem compile and town task spawn are commented in Init_Client.sqf:75 and :744-745. |
Task UI behavior is partial/disabled; revive only with JIP and spam review. |
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