@commy2 commy2 released this May 30, 2016 · 1094 commits to master since this release

Assets 3

This release improves and expands the CBA Events system and brings compatibility with the Linux/MacOS build of the game.

Another goal was to simplify, refactor and clean up old code stemming from Arma 1/2 using new commands and methods, making CBA even more lightweight. For security reasons we changed CBA_fnc_globalExecute to use remoteExec internally and replaced all functions that made use of whitelisting via CfgRemoteExec. Our release now contains a meta.cpp file, so the Arma 3-Launcher should be able to detect and update a manual installation via Steam Workshop.


  • ADDED: JM (Joint Muzzles) support for MX, Katiba, Rahim and Mk200 (#252, #281) robalo
  • ADDED: JIP synched and savegame compatible CBA_missionTime variable (#273) commy2
  • ADDED: Shortcuts for debug console, functions and config viewer in 3den-editor (#274) commy2
  • ADDED: meta.cpp file for server browser and Steam Workshop support (#277) bux578
  • ADDED: Ability to disable all XEH for specific object classes (#279) commy2
  • ADDED: XEH support for seatSwitchedMan, reloaded, getInMan and getOutMan (#286, #293) commy2
  • ADDED: Delayed execution functions CBA_fnc_waitAndExecute, CBA_fnc_execNextFrame and CBA_fnc_waitUntilAndExecute (#288) esteldunedain
  • ADDED: CBA_fnc_addItem, CBA_fnc_removeItem, CBA_fnc_addItemCargo and CBA_fnc_addBackpackCargo (#291) commy2
  • ADDED: CBA_fnc_getItemConfig and CBA_fnc_getObjectConfig which report the config entry of objects and classnames (#291) commy2
  • ADDED: CBA_fnc_getMuzzles which reports all muzzle names of a weapon (#291) commy2
  • ADDED: CBA_fnc_getWeaponModes which reports all weapon modes of a weapon (#291) commy2
  • ADDED: CBA_fnc_vehicleRole which reports the soldiers role in the current vehicle (#291) commy2
  • ADDED: CBA_fnc_turretPath, CBA_fnc_turretPathWeapon to report the turret path of a unit or weapon of a vehicle (#291) commy2
  • ADDED: CBA_fnc_getMagazineIndex and CBA_fnc_currentMagazineIndex (#291) commy2
  • ADDED: CBA_Extended_EventHandlers_base class for easy class inheritance (#294) commy2
  • ADDED: Macros - QFUNC, QFUNCMAIN, QFUNC_INNER, QEFUNC, PATHTOEF, QPATHTOF, QPATHTOEF (#307, #308, #309) jonpas, BaerMitUmlaut
  • ADDED: CBA_fnc_addBISEventHandler to add events to objects, controls, displays or the mission with parameters and additional meta variables (#313) commy2
  • ADDED: Optional parameter to CBA_fnc_addClassEventHandler to retroactively call 'init' events on already existing objects (#324) PabstMirror
  • ADDED: CBA_fnc_binocularMagazine, CBA_fnc_addBinocularMagazine and CBA_fnc_removeBinocularMagazine (#325) commy2
  • ADDED: Functions to execute CBA events on certain remote machines CBA_fnc_targetEvent, CBA_fnc_serverEvent and CBA_fnc_globalEventJIP (#284, #314) commy2
  • ADDED: Support for all display events in CBA_fnc_addDisplayHandler (#284) commy2
  • ADDED: CBA_fnc_addPlayerEventHandler and CBA_fnc_removePlayerEventHandler (#328, #332) commy2
  • ADDED: CBA_fnc_clearWaypoints to clear a group of all existing waypoints and halt their preplanned movement (#333) SilentSpike
  • IMPROVED: Rewrote CBA Events system, deprecating and replacing old functions (#284, #319) commy2
  • IMPROVED: Performance of CBA_fnc_compatibleItems by adding caching methods (#268, #299) jokoho48
  • IMPROVED: Use remoteExec in CBA_fnc_globalExecute for security (#269, #275, #327) commy2
  • IMPROVED: Precompile functions on game start instead of on first mission start (#271) commy2
  • IMPROVED: Hash functions (#278, #280) jokoho48
  • IMPROVED: Categories of CBA functions in ingame Functions viewer (#291) commy2
  • IMPROVED: Removed broken and deprecated functions from Common module (#291, #296, #312, #316) commy2
  • IMPROVED: CBA_fnc_addWeapon, CBA_fnc_addMagazine, CBA_fnc_removeMagazine, CBA_fnc_addWeaponCargo and CBA_fnc_addMagazineCargo with additional parameters (#291) commy2
  • IMPROVED: Performance of CBA_fnc_getTurret, CBA_fnc_getFirer and CBA_fnc_getGroupIndex and better support of certain edge cases (#291) commy2
  • IMPROVED: Compatibilty with 1.54 version of Linux/MacOS build (#301, #330) commy2
  • IMPROVED: Per Frame Handler with "EachFrame" mission event (#303) commy2
  • IMPROVED: Use CBA event for CBA_fnc_switchPlayer (#304, #305) PabstMirror
  • IMPROVED: Use new "PlayerConnected" mission event for improved compatibility (#306) commy2
  • IMPROVED: Some function headers for documentation (#321) Killswitch00
  • IMPROVED: CBA_fnc_taskPatrol, CBA_fnc_taskDefend and CBA_fnc_taskSearchArea clear all existing waypoints before assigning the AI task (#333) SilentSpike
  • IMPROVED: CBA_fnc_taskPatrol completes the patrol loop by placing the "cycle" waypoint back at the start (#333) SilentSpike
  • IMPROVED: Performance and behaviour of CBA_fnc_searchNearby. In small groups the leader will join the search; search movement is more fluid (#333) SilentSpike
  • IMPROVED: Performance and behaviour of CBA_fnc_taskDefend. Groups tasked to defend overlapping areas will not double up unit positions (#333) SilentSpike
  • FIXED: CBA_fnc_addMagazine, CBA_fnc_removeWeapon and CBA_fnc_removeMagazine don't work for remote objects (#291) commy2
  • FIXED: XEH preInit functions are skipped when entering 3den-editor for the first time (#292, #295, #283, #285) commy2
  • FIXED: Diary displays all keybindings that were ever used instead of those of the currently active mods (#322, #323) Killswitch00
  • FIXED: onRespawn flag not working for initPost XEH event (#318, #320) commy2
  • FIXED: CBA Versioning broken (#290) PabstMirror
  • FIXED: Replace some true in configs that are converted to 1 by Mikeros tools (#302) PabstMirror
  • FIXED: CBA_fnc_replace broken for non-ASCII characters (#331) BaerMitUmlaut
  • FIXED: Handling of killed units in CBA_fnc_searchNearby (#333) SilentSpike

CHANGELOG for CBA v2.4.0



  • CBA_fnc_addPlayerEventHandler and CBA_fnc_addBinocularMagazine will not work in the current Linux/MacOS version of the game (currently at v1.54)
  • Some CBA keybinds might not appear in the controls menu. The easiest currently known workaround is to create a new user profile.
  • A potential crash on missions longer than 5 hrs. RPT logs are appreciated.