-
Notifications
You must be signed in to change notification settings - Fork 0
Valhalla Vehicle Climbing Assist
Source-verified 2026-06-21 against then-current master cf2a6d6a4; later branch-intel notes below name exact refs for current-head claims. Paths relative to Missions/[55-2hc]warfarev2_073v48co.chernarus/ unless noted. Arma 2 OA 1.64.
The Valhalla module is a client-side velocity-boost system that assists player-driven and AI-driven vehicles over steep terrain. It applies a progressive speed multiplier when the vehicle is already moving forward but too slowly — it does not cap top speed and does not brake above the target assist speed. Current stable master (includes commit 63e6b4142) keeps player actions for Tank, Car, and the AN-2 (An2_TK_EP1, Air class) vehicles. The AN-2 low-gear actions were added at Common/Init/Init_Unit.sqf:115-118; see Branch Intel below for the merge history.
New upstream-mining branch origin/claude/upstream-an2-climb-boost@63e6b4142 is a small branch-only candidate, not current stable behavior. Its merge-base with current stable is be2bbd084, which is an ancestor of origin/master@f8a76de34; direct diffs against current stable also include B74.1 Init_CommonConstants.sqf:914-920 player-stats drift, so porting this branch must preserve current WFBE_C_STATS_ENABLED = true.
| Ref | Payload | Status |
|---|---|---|
Current stable (includes commit 63e6b4142) |
Both maintained roots have an Air target block at Func_Client_LowGear.sqf:68-75 (_min = 100) and AN-2 Low Gear On/Off actions at Init_Unit.sqf:115-118. |
Merged to master — this is now stable behavior, not branch-only. |
origin/claude/upstream-an2-climb-boost@63e6b4142 |
Against merge-base be2bbd084, payload is four files / +32 / -2 and git diff --check is clean. Both maintained roots add an Air target of _min = 100 at Func_Client_LowGear.sqf:68-75 and add An2_TK_EP1 low-gear on/off actions at Init_Unit.sqf:87-90 without adding the Flip action. |
Branch-only candidate. Smoke AN-2 takeoff/climb with low gear off/on, heavy load, runway departure, normal cruise speed, action visibility and maintained Vanilla parity before promotion. |
| Step | Where | Source |
|---|---|---|
Init_Valhalla.sqf called (spawned) |
Init_Client.sqf:1075 |
Runs during client init; compiles VALHALLA_FNC_LowGear and installs the key EHs |
Func_Client_AI_LowGear_Manager.sqf spawned |
Init_Client.sqf:968 |
Separate [] spawn at end of client init; runs for the full session |
| Profile variable read | Client/Init/Init_ProfileVariables.sqf:27-34 |
WFBE_HIGH_CLIMBING_DEFAULT_ENABLED loaded from profileNamespace before Valhalla init |
Init_Valhalla.sqf binds two display-level event handlers on display 46 (the main game display):
(findDisplay 46) displayAddEventHandler ["KeyDown", "_this call VALHALLA_FNC_HandleLowGearKeyDown"];
(findDisplay 46) displayAddEventHandler ["KeyUp", "_this call VALHALLA_FNC_HandleLowGearKeyUp"];Init_Valhalla.sqf:57-58
The tracked keys are the union of three action-key arrays resolved at startup:
Local_HighClimbingForwardActionKeys =
(actionKeys "carForward") +
(actionKeys "carFastForward") +
(actionKeys "carSlowForward");Init_Valhalla.sqf:15-18
KeyDown pushes a matching key into Local_HighClimbingForwardKeys and sets Local_KeyPressedForward = true. Init_Valhalla.sqf:34-38
KeyUp removes the key from the list and resets Local_KeyPressedForward to count Local_HighClimbingForwardKeys > 0, so multi-key holds are handled correctly. Init_Valhalla.sqf:49-52
State locals initialised by Init_Valhalla.sqf:
| Local variable | Initial value | Purpose |
|---|---|---|
Local_HighClimbingModeOn |
false |
Whether climb assist is currently active |
Local_HighClimbingRunning |
false |
Re-entry guard for the boost loop |
Local_KeyPressedForward |
false |
Forward key currently held |
Local_HighClimbingForwardKeys |
[] |
List of currently held forward keys |
Init_Valhalla.sqf:12-14,19
WFBE_HighClimbingDefaultEnabled / WFBE_HIGH_CLIMBING_DEFAULT_ENABLED is the player's saved preference for whether newly-entered vehicles start with climb assist enabled.
| Location | Behaviour | Source |
|---|---|---|
Init_ProfileVariables.sqf:27-34 |
Loaded from profileNamespace into missionNamespace as WFBE_HighClimbingDefaultEnabled; defaults to false if absent or wrong type |
Client init, before Valhalla |
Init_Valhalla.sqf:6-11 |
Secondary nil-guard: if WFBE_HighClimbingDefaultEnabled is not yet defined, reads it again from profileNamespace
|
Runs slightly later than Init_ProfileVariables.sqf; guard is defensive |
GUI_Menu_Team.sqf:14-17 |
Button label reflects current value on dialog open | Client/GUI/GUI_Menu_Team.sqf |
GUI_Menu_Team.sqf:164-181 |
MenuAction == 14 toggles the value, updates missionNamespace, updates button label, and persists via WFBE_CO_FNC_SetProfileVariable if available, otherwise direct profileNamespace setVariable + saveProfileNamespace
|
Client/GUI/GUI_Menu_Team.sqf |
The preference toggle is in the Team Menu (dialog idd 13000), button idc 13020, localised as STR_WF_TEAM_HighClimbingDefaultOn / STR_WF_TEAM_HighClimbingDefaultOff.
Each eligible vehicle carries a broadcast variable that gates the boost loop:
| Detail | Value | Source |
|---|---|---|
| Variable name | WFBE_HighClimbingEnabled |
Func_Client_LowGear.sqf:71, LowGear_Toggle.sqf:11
|
| Scope |
setVariable [name, value, true] — broadcast to all machines |
LowGear_Toggle.sqf:13, Func_Client_AI_LowGear_Manager.sqf:34
|
| Default when unset on a Tank or Car | Value of WFBE_HighClimbingDefaultEnabled
|
Func_Client_AI_LowGear_Manager.sqf:21-34 |
| Default for all other vehicle classes |
false (not assigned) |
Func_Client_AI_LowGear_Manager.sqf:21-34 |
LowGear_Toggle.sqf is the per-vehicle runtime toggle. It flips WFBE_HighClimbingEnabled on the vehicle, broadcasts it, and if the local player is the driver it updates Local_HighClimbingModeOn and spawns the boost loop if needed. LowGear_Toggle.sqf:1-21
Spawned against the vehicle object (_vehicle spawn VALHALLA_FNC_LowGear). Protected by a re-entry guard on Local_HighClimbingRunning.
Loop exit condition — any of the following ends the loop:
player != driver _vehicle!Local_HighClimbingModeOn!(_vehicle getVariable ["WFBE_HighClimbingEnabled", false])!canMove _vehicle
Func_Client_LowGear.sqf:77-81
Speed parameters:
| Parameter | Cars | Tanks | Source |
|---|---|---|---|
_min — target assist speed (km/h) |
40 | 30 | Func_Client_LowGear.sqf:52,65 |
_minBoostSpeed — minimum speed before boost is applied |
1 | 1 | Func_Client_LowGear.sqf:56 |
Boost coefficient curve:
| Coefficient | Value | Source |
|---|---|---|
_baseBoostCoef (applied near _min) |
1.05 | Func_Client_LowGear.sqf:60 |
_maxBoostCoef (applied near 0 km/h) |
1.30 | Func_Client_LowGear.sqf:61 |
The multiplier is interpolated linearly between _baseBoostCoef and _maxBoostCoef based on how far below _min the current speed is:
_boostCoef = _baseBoostCoef + (((_min - _speed) / _min) * (_maxBoostCoef - _baseBoostCoef));
if (_boostCoef > _maxBoostCoef) then {_boostCoef = _maxBoostCoef};Func_Client_LowGear.sqf:88-89
Boost is only applied when ALL conditions hold: Local_KeyPressedForward, engine on, _speed > _minBoostSpeed, _speed < _min, and velocity direction within 15 degrees of vehicle heading. Func_Client_LowGear.sqf:78-99
The Z component of velocity is not modified — vertical movement is unaffected. Func_Client_LowGear.sqf:91-95
Loop sleep interval: 0.1 seconds. Func_Client_LowGear.sqf:101
On exit, both Local_HighClimbingModeOn and Local_HighClimbingRunning are reset to false. Func_Client_LowGear.sqf:104-105
A while {!gameOver} loop spawned once at client init (Init_Client.sqf:968). It runs on the owning client for all AI-driven tanks in the player's group.
Each iteration (every 5 seconds):
- Checks the player's current vehicle: if the player is the driver of a Tank or Car and
WFBE_HighClimbingEnabledis not yet set, assigns it fromWFBE_HighClimbingDefaultEnabledand broadcasts it.Func_Client_AI_LowGear_Manager.sqf:21-34 - If the player is driving and the flag is enabled and both
!Local_HighClimbingModeOnand!Local_HighClimbingRunning, starts the boost loop.Func_Client_AI_LowGear_Manager.sqf:37 - Iterates
units group player: for every AI-driven Tank that islocaland does not already haveAI_LowGear_Running == true, spawnsCommon_AI_LowGear.sqfagainst that vehicle.Func_Client_AI_LowGear_Manager.sqf:47-69
Performance audit integration: the manager records a sample every iteration:
["ai_lowgear_manager", diag_tickTime - _perfStart, Format["groupUnits:%1;started:%2", _perfUnits, _perfStarted], "CLIENT"] Call PerformanceAudit_Record;Func_Client_AI_LowGear_Manager.sqf:72-75
The record is conditional on PerformanceAuditEnabled (defaults true) and skipped if PerformanceAudit_Record is nil. The payload includes group unit count and count of low-gear scripts started that tick.
Scalability note: on a large group the manager spawns one Common_AI_LowGear.sqf script per un-assisted AI tank per iteration. Each spawned script self-terminates when the vehicle becomes null, is destroyed (!alive), can no longer move (!canMove), or is no longer local to this client; it does not rely on the manager to clean it up. AI_LowGear_Running is a re-entry guard only — it is not a live termination signal.
Runs client-side on the machine that owns (is local to) the vehicle. Guards:
- Exits immediately if vehicle is null, not a
Tank, or not local.Common_AI_LowGear.sqf:43-47 - Re-entry guard via
AI_LowGear_Runningvehicle variable (local-only, not broadcast).Common_AI_LowGear.sqf:50-51
Speed parameters (same curve as player variant, tank-specific values):
| Parameter | Value | Source |
|---|---|---|
_min |
30 km/h | Common_AI_LowGear.sqf:72 |
_minBoostSpeed |
3 km/h | Common_AI_LowGear.sqf:76 |
_baseBoostCoef |
1.05 | Common_AI_LowGear.sqf:80 |
_maxBoostCoef |
1.30 | Common_AI_LowGear.sqf:81 |
Additional AI-specific guards before applying boost:
| Guard | Effect | Source |
|---|---|---|
WFBE_HighClimbingEnabled on vehicle |
If player crew is present, reads WFBE_HighClimbingEnabled from the vehicle; if no player crew, always true (AI tanks without a player crew are always assisted) |
Common_AI_LowGear.sqf:103-107 |
!isPlayer _driver |
Human-driven tanks are not boosted by this script | Common_AI_LowGear.sqf:96 |
!(stopped _driver) |
No boost if AI driver is stopped | Common_AI_LowGear.sqf:112 |
!(_currentCommand in ["WAIT", "STOP"]) |
No boost during explicit hold orders | Common_AI_LowGear.sqf:112 |
Sleep delay is adaptive: 0.1 s when the engine is running and assist is enabled, 0.5 s otherwise. Common_AI_LowGear.sqf:98,141
On loop exit, AI_LowGear_Running is reset to false (local-only). Common_AI_LowGear.sqf:144
| Variable | Namespace | Type | Purpose |
|---|---|---|---|
WFBE_HIGH_CLIMBING_DEFAULT_ENABLED |
profileNamespace |
BOOL | Persisted player preference |
WFBE_HighClimbingDefaultEnabled |
missionNamespace |
BOOL | Session copy of above |
WFBE_HighClimbingEnabled |
vehicle (broadcast) | BOOL | Per-vehicle climb-assist gate |
AI_LowGear_Running |
vehicle (local only) | BOOL | Re-entry guard for Common_AI_LowGear
|
Local_HighClimbingModeOn |
missionNamespace (local) |
BOOL | Boost loop active flag |
Local_HighClimbingRunning |
missionNamespace (local) |
BOOL | Re-entry guard for player boost loop |
Local_KeyPressedForward |
missionNamespace (local) |
BOOL | Forward key currently held |
Local_HighClimbingForwardKeys |
missionNamespace (local) |
ARRAY | List of held forward-key codes |
VALHALLA_FNC_LowGear |
missionNamespace |
CODE | Compiled player boost loop |
- Modules-Atlas — inventory of all client modules including the one-line Valhalla entry this page expands
- Player-Vehicle-And-Travel-Actions-Reference — action-map route for adjacent vehicle scroll actions such as manual flip, Push, HALO, Cargo Eject and Taxi Reverse
-
AI-Headless-And-Performance — broader context for client-side AI performance and the Performance Audit system that
ai_lowgear_managerrecords into - Faction-Unit-And-Vehicle-Roster-Catalog — which Tank and Car classnames exist per faction; determines which vehicles the climb assist is eligible for
-
Variable-And-Naming-Conventions —
WFBE_C_*/WFBE_UP_*/Local_*naming rules - Client-UI-And-Server-Loop-Perf-Findings — performance findings relevant to the per-group polling loop in the AI manager
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 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