-
Notifications
You must be signed in to change notification settings - Fork 0
Networking And Public Variables
Arma 2 OA networking here is built around public variables, public-variable event handlers and wrapper functions that dispatch named PVF commands.
Common/Init/Init_PublicVariables.sqf creates two command lists:
Server PVF commands:
RequestVehicleLockRequestOnUnitKilledRequestChangeScoreRequestCommanderVoteRequestNewCommanderRequestStructureRequestDefenseRequestJoinRequestMHQRepairRequestSpecialRequestTeamUpdateRequestUpgradeRequestAutoWallConstructinChange
Client PVF commands:
AllCampsCapturedAwardBountyAwardBountyPlayerCampCapturedChangeScoreHandleSpecialLocalizeMessageSetTaskSetVehicleLockTownCapturedSetMHQLockAvailableRequestBaseAreaNukeIncoming
Each command is compiled into either SRVFNC... or CLTFNC..., and WFBE_PVF_<Command> receives an event handler that passes payloads to Server_HandlePVF or Client_HandlePVF.
-
Common_SendToServer: sends a server PVF; uses optimizedpublicVariableServeroutside vanilla mode. -
Common_SendToClients: broadcasts client PVF to all clients. -
Common_SendToClient: targets one client where supported.
These wrappers are preferred over hand-coded public variable dispatch for new features.
Some systems use explicit public-variable channels outside the generic PVF list:
| Channel | Direction | Evidence | Notes |
|---|---|---|---|
WFBE_DAYNIGHT_DATE |
server -> clients |
Server/Module/Server_DayNightCycle.sqf:88-89, initJIPCompatible.sqf:176-182
|
Server-authoritative date sync. |
SEND_MESSAGE |
mixed broadcast/client receive |
Client/FSM/updateclient.sqf:10-24, Common/Functions/Common_SendMessage.sqf:37-38
|
Bare message channel outside PVF routing. |
MARKER_CREATION |
mixed broadcast/client receive |
Client/FSM/updateclient.sqf:10-24, Common/Functions/Common_CreateMarker.sqf:82-83
|
Marker creation channel. |
ICBM_launched, PLAYER_RADIATED
|
nuke/radiation module -> clients |
Client/FSM/updateclient.sqf:10-24, Common/Module/ICBM/radzone.sqf:103-104
|
ICBM marker/radiation notifications. |
REQUEST_SUPPLY_VALUE, SUPPLY_VALUE_REQUESTED
|
client request -> server response |
Common/Functions/Common_GetSideSupply.sqf:14-41, Server/Functions/Server_PV_RequestSupplyValue.sqf:1-8, Client/Functions/Client_ReceiveSupplyValue.sqf:1-7
|
Side-supply value request/response. |
WFBE_Client_PV_IsSupplyMissionActiveInTown, WFBE_Client_PV_SupplyMissionStarted
|
client -> server | Client/Module/supplyMission/supplyMissionStart.sqf:6-49 |
Supply mission start/availability requests. |
WFBE_Server_PV_IsSupplyMissionActiveInTown, WFBE_Server_PV_SupplyMissionCompleted, WFBE_Server_PV_SupplyMissionCompletedMessage
|
server local/PV -> clients |
Server/Module/supplyMission/isSupplyMissionActiveInTown.sqf:1-18, supplyMissionStarted.sqf:1-65, supplyMissionCompleted.sqf:2-34
|
Supply mission state and completion publication. |
WFBE_CLIENT_HAS_CONNECTED_AT_LAUNCH, WFBE_P_HAS_CONNECTED_AT_LAUNCH_ACK, WFBE_C_PLAYER_OBJECT
|
client/server anti-stack and supply support |
Client/Init/Init_Client.sqf:442-454, Server/Module/AntiStack/clientHasConnectedAtLaunch.sqf:1-15
|
Launch-side/anti-stack and player object bookkeeping. |
AFKthresholdExceededName, kickAFK
|
client -> server/BattlEye |
Client/Module/AFK/monitorAFK.sqf:25, Server/Module/AFK/initAFKkickHandler.sqf:9, BattlEyeFilter/publicvariable.txt:1-2
|
kickAFK is intentionally caught by BattlEye because serverCommand is unavailable. |
SERVER_FPS_GUI, WFBE_VAR_SERVER_FPS
|
server -> clients |
Server/Module/serverFPS/serverFpsGUI.sqf:7-8, Server/Init/Init_Server.sqf:578,595
|
Two server-FPS publication paths exist. |
Archimedes/James and Galileo's second-pass reports expanded the direct-channel map. These are not automatically covered by the WFBE_PVF_* registration list or a future PVF dispatcher fix, so treat them as separate review targets when hardening the network layer.
| Channel | Direction | Owner / evidence | Trust or lifecycle note |
|---|---|---|---|
ATTACK_WAVE_INIT, ATTACK_WAVE_DETAILS, CLIENT_INIT_READY
|
client/common -> server; server/PVEH coordination |
Common/Functions/Common_AttackWaveActivate.sqf, Server/Functions/Server_AttackWave.sqf, Server/PVFunctions/AttackWave.sqf, Client/Init/Init_Client.sqf
|
DR-41 confirmed high-risk authority gap: ATTACK_WAVE_INIT is forgeable, outside the PVF list and trusts client _supply / _side for a side-wide price modifier. |
wfbe_supply_temp_west, wfbe_supply_temp_east, wfbe_supply_<side>
|
common/client -> server; server -> clients |
Common/Functions/Common_ChangeSideSupply.sqf, Server/Functions/Server_ChangeSideSupply.sqf
|
West/east server handlers recompute supply; no resistance handler was found. DR-22 found the overspend windfall in the server clamp. |
WFBE_Client_PV_IsSupplyMissionActiveInTown, WFBE_Client_PV_SupplyMissionStarted
|
client -> server |
Client/Module/supplyMission/supplyMissionStart.sqf, Server/Module/supplyMission/isSupplyMissionActiveInTown.sqf, supplyMissionStarted.sqf
|
Client starts availability/completion flow. DR-18 found first-use cooldown nil risk; supply reward variables still need server-side recompute. |
WFBE_Server_PV_IsSupplyMissionActiveInTown, WFBE_Server_PV_SupplyMissionCompleted, WFBE_Server_PV_SupplyMissionCompletedMessage
|
server -> clients / server local PVEH |
Server/Module/supplyMission/*.sqf, Client/Module/supplyMission/*.sqf
|
Completion publication is live-only and intertwined with supply vehicle object variables. |
WFBE_CL_MASH_MARKER_CREATED, WFBE_SE_MASH_MARKER_SENT
|
client -> server -> clients |
Server/Module/MASH/MASHMarker.sqf, Client/Module/MASH/receiverMASHmarker.sqf
|
Server relay is live, but the client receiver compile is commented; MASH markers are broken (DR-3). |
IS_WEST_HQ_ALIVE, IS_EAST_HQ_ALIVE, HQ_WEST_MARKER_INFOS, HQ_EAST_MARKER_INFOS
|
server -> clients |
Server/Functions/Server_MHQRepair.sqf, Server/Functions/Server_OnHQKilled.sqf
|
HQ state is broadcast directly; DR-20 found the HQ-killed consumer is not idempotent when multiple clients detect the same death. |
SUPPLY_COMPENSATION_AMOUNT_EAST, SUPPLY_COMPENSATION_AMOUNT_WEST
|
server -> clients | Server/Module/AntiStack/skillDiffCompensation.sqf |
AntiStack skill compensation publishes side-specific supply deltas outside PVF; depends on external DB/skill data when AntiStack is enabled. |
TEAM_WEST_TICKS_NO_PLAYERS, TEAM_EAST_TICKS_NO_PLAYERS
|
common/server -> clients | Common/Functions/Common_StagnateSupplyIncomeNoPlayers.sqf |
No-player stagnation state is a direct broadcast channel. |
CLIENT_INIT_READY |
client -> server |
Client/Init/Init_Client.sqf, Server/PVFunctions/AttackWave.sqf
|
Despite the Server/PVFunctions path, this is a direct PVEH channel and not part of _serverCommandPV. |
- Fix PVF dispatcher command resolution first (DR-1), because that closes arbitrary command-string execution.
- Harden registered high-impact handlers next: construction, upgrades, score, vehicle lock, commander/team changes.
- Review the direct channels above separately, because they will not be protected by a
WFBE_PVF_*allow-list. - Design BattlEye
publicvariable.txtfrom both lists: registeredWFBE_PVF_*channels plus explicit direct channels such askickAFK, supply mission PVs, day/night, HQ markers, attack waves and AntiStack compensation.
Locke's direct-PV pass split the non-PVF channels by whether they are durable state, transient events, or heartbeats. This matters for JIP: a late player only receives retained mission/engine state or the next heartbeat, not a replay of old publicVariable events.
| Channel family | Semantics | JIP implication | Risk note |
|---|---|---|---|
WFBE_DAYNIGHT_DATE |
Absolute server date state. | JIP can sync from the latest date value; clients use it for drift correction rather than replaying a timeline. | Low/medium; time-authoritative. |
wfbe_supply_temp_* -> wfbe_supply_<side>
|
Temp request PV plus authoritative side-supply state. | JIP sees current side supply after sync, not the delta event history. | High; economy mutation path and no resistance-side handler. |
IS_*_HQ_ALIVE, HQ_*_MARKER_INFOS
|
Server-owned HQ state and marker payload. | JIP sees current HQ state, while client marker loops poll/refresh from it. | Medium; repair/kill transitions can race with marker refresh. |
ATTACK_WAVE_INIT / ATTACK_WAVE_DETAILS
|
Two-step live broadcast. | Event-only; no explicit replay contract for late joiners beyond whatever current details remain in namespace. | High after DR-41; initiation trusts client-side _supply / _side and can forge side-wide free or negative-price unit modifiers. |
WFBE_CL_MASH_MARKER_CREATED -> WFBE_SE_MASH_MARKER_SENT
|
Event-only relay. | No replay list; if revived, joiners miss old MASH marker events unless the server stores and re-sends them. | High while broken; marker lifetime also couples to the tent object. |
SERVER_FPS_GUI, WFBE_VAR_SERVER_FPS
|
Periodic heartbeat overwrite. | JIP receives the next tick, not history. | Low/medium; two parallel publishers exist. |
AFKthresholdExceededName, kickAFK
|
One-shot operational alerts. | No JIP meaning. kickAFK is caught by BattlEye, not a mission script receiver. |
Medium/high operationally; depends on server BE config. |
SEND_MESSAGE |
Event-only message broadcast. | Late joiners do not receive old messages. | Medium; message shape and localization payloads matter. |
MARKER_CREATION |
Transient PV causes persistent marker creation. | The PV is not replayed, but global markers can persist for late joiners through engine marker state. | Medium; persistence comes from marker object state, not the channel. |
- Keep payloads small and structured; Arma 2 public-variable traffic can be expensive.
- Prefer server authority for state changes. Client scripts should request, not mutate, team/base/economy state directly.
- When adding a PVF command, update both the registration list and the target
Client/PVFunctionsorServer/PVFunctionsfile. - Hosted-server paths often call the handler locally in addition to broadcasting. Preserve those branches when modernizing code.
Claude independently deep-read the dispatch path and confirmed these runtime details. Paths are relative to Missions/[55-2hc]warfarev2_073v48co.chernarus/.
Common/Init/Init_PublicVariables.sqf:43-51 creates one public-variable name per command, such as WFBE_PVF_RequestJoin and WFBE_PVF_TownCaptured, each with its own addPublicVariableEventHandler. This is not one numeric multiplexed protocol channel. Client handlers register under if (!isServer || local player); server handlers register under if (isServer).
Client/Functions/Client_HandlePVF.sqf uses payload element 0 as the destination filter:
| Element 0 | Client behavior |
|---|---|
nil |
Run on all clients. |
SIDE |
Run only if sideJoined == destination. |
STRING |
Run only if getPlayerUID player == destination. |
The actual function name comes from element 1 (CLTFNC<Command>) and is executed with _parameters Spawn (Call Compile _script). Server/Functions/Server_HandlePVF.sqf is simpler: it resolves SRVFNC<Command> and spawns it with no destination filtering.
| Wrapper | Direction | Engine primitive | Destination handling |
|---|---|---|---|
Common_SendToServer / optimized variant |
client -> server |
publicVariable or publicVariableServer
|
Server PVF receives command payload. |
Common_SendToClients |
server -> clients | publicVariable |
Payload element 0 is nil, side, or UID. |
Common_SendToClient |
server -> one client |
publicVariableClient to owner _player
|
Player object is rewritten to UID for the client filter. |
Some registered commands are broad routers:
-
Client/PVFunctions/HandleSpecial.sqfswitches over tags such asjoin-answer,attack-wave,commander-voteandendgame. -
Client/PVFunctions/LocalizeMessage.sqfswitches over message keys such asTeamkill,FundsTransferandAttackModeActivated.
When tracing one feature, grep the string tag as well as the PVF command name.
- UID-targeted
SendToClientsstill broadcasts to every client and lets non-matching clients discard locally. UseSendToClientfor true unicast when possible. - PVF handlers use
Spawn, so rapid messages that mutate shared state have no strict ordering guarantee. - Both dispatchers use
Call Compileon the generated function-name string per dispatch. DR-38 notes this is redundant as well as unsafe:Init_PublicVariables.sqfalready precompilesSRVFNC*/CLTFNC*globals at init, so a validatedmissionNamespace getVariablelookup removes per-message recompilation and closes the DR-1 RCE with the same change. - Some bare PV channels are copied per side, such as
wfbe_supply_temp_westandwfbe_supply_temp_east; there is no resistance-side handler in that path. - A real BattlEye PV filter must include direct non-PVF channels as well as
WFBE_PVF_*; the current repo filter only containskickAFK. - The master/Chernarus branch documented here does not ship PR #1 supply-helicopter source; it has the older truck supply mission path plus direct support/supply/ICBM channels. Treat supply-heli mechanics as PR-only until the branch is merged.
Server_HandlePVF.sqf / Client_HandlePVF.sqf run Call Compile on the function-name string taken from the value a remote machine broadcast (select 0 / select 1), with no check that it names a registered command — and the shipped BattlEyeFilter/publicvariable.txt only carries the kickAFK feature rule, not a security filter. Validate the command string against the known SRVFNC*/CLTFNC* set before compiling, and add a real BattlEye PV filter (restrictive default + whitelist of WFBE_PVF_* and the direct channels, keeping kickAFK). Full analysis and remediation playbook: Deep-review findings DR-1.
Replacing Call Compile with mission-namespace lookup closes arbitrary code execution from forged function-name strings, but it does not make registered commands authoritative. Hilbert's PV boundary pass found several handlers that still need per-handler sender and payload validation:
| Handler | Trust issue | Evidence |
|---|---|---|
RequestChangeScore |
Client payload can overwrite score and broadcast the result. | Server/PVFunctions/RequestChangeScore.sqf:3-13 |
RequestStructure / RequestDefense
|
Server side mostly checks class existence, then trusts side, position, direction and manning. |
Server/PVFunctions/RequestStructure.sqf:3-21, RequestDefense.sqf:2-10
|
RequestUpgrade |
Directly spawns upgrade processing; handler itself does not show commander/funds validation. |
Server/PVFunctions/RequestUpgrade.sqf:5, Server/Functions/Server_ProcessUpgrade.sqf:40-43
|
RequestVehicleLock |
Locks the payload vehicle without visible owner/side/range check. | Server/PVFunctions/RequestVehicleLock.sqf:3-8 |
RequestTeamUpdate |
Accepts array or side and mutates group behavior/combat/formation/speed. | Server/PVFunctions/RequestTeamUpdate.sqf:3-26 |
RequestSpecial |
Broad router for paratroops, support, ICBM, camp repair, teamleader update and HC registration. Claude DR-27 found the "ICBM" branch can be forged to server-spawn NukeDammage at a client-chosen position with no upgrade/commander/funds validation. |
Client/Module/Nuke/nukeincoming.sqf:23, Server/PVFunctions/RequestSpecial.sqf:1, Server/Functions/Server_HandleSpecial.sqf:97-112
|
DR-27 makes RequestSpecial the highest-priority registered-command hardening target discovered so far. The Tactical menu does client-side ICBM gating and the client sends ["RequestSpecial", ["ICBM", side, baseObj, cruiseObj, team]]; the server's HandleSpecial "ICBM" case trusts the payload and spawns nuke damage from it. A forged PV therefore becomes a server-applied map-wide kill. Fixes belong server-side in the "ICBM" branch, paired with BattlEye restrictions around RequestSpecial.
McClintock's 2026-06-02 PV scout found one direct-channel authority issue outside the generic PVF dispatcher, and Claude DR-41 source-verified it as high risk:
-
Client/FSM/updateclient.sqf:240gates the action with a client-sideGetSideSupply >= 25000condition. -
Common/Functions/Common_AttackWaveActivate.sqf:3-8sendsATTACK_WAVE_INIT = [_supply, _side]viapublicVariableServer. -
Server/Functions/Server_AttackWave.sqf:5-15takes both values directly from the payload and computesATTACK_WAVE_PRICE_MODIFIER. -
WFBE_C_ECONOMY_SUPPLY_MAX_TEAM_LIMIT = 50000atCommon/Init/Init_CommonConstants.sqf:166, so a forged_supply >= 70000can drive the side-wide unit price modifier to zero; larger values can make it negative. - The repo's
BattlEyeFilter/publicvariable.txtdoes not coverATTACK_WAVE_INIT.
A PVF lookup hardening patch does not touch this path. The forgery class has two surfaces: registered PVF commands and direct publicVariableServer channels. The attack-wave fix should treat ATTACK_WAVE_INIT as a request, re-derive real side supply and permissions server-side, deduct any intended cost server-side, clamp the resulting modifier and ignore client-supplied economic fields.
Previous: Function/module index | Next: Gameplay atlas
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