Author: CBA Team
Author Website:

Requirements: No addons required

Signed: Yes, serverkey included

Short description: This is a 3rd Party Mod, providing Event Handler compatibility amongst other things, now shared among many add-ons and mods to Arma 3.

Date: 2016-02-20 17:28
Submitted by: ViperMaul

Comments: (33)


Community Base addons A3

CBA Team

What does the name Community Base Addons mean? It is a system that:
  • Offers a range of features for addon-makers and mission designers.
  • Aims to have community wide acceptance and to be used as much as possible by community addons to maintain compatibility.
  • The community is very much encouraged to request or submit functionality
      - The most obvious example would be to submit functions to be included in the CBA function library.

- Extended Eventhandlers (XEH)
- Function and Macro Libraries
- Key Management
- Custom Events System
- Author and Credits system (Displayed during Main Menu and Pause Menu)
- Nil Check
- Help System
- Versioning System
- UI System

To install the Community Base addons A3 you should use modfolders to keep it seperate from the official game content to prevent issues.
With Arma 3 you can use different ways to set up your modfolders to use custom content you have downloaded.
Please visit the Arma 3 Mod install instructions page for more information about using custom mods and addons in Arma 3.

Included files:

Online wiki at
Online function library reference at

Known issues:
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.

Steam Workshop:
- Subscribe

Credits & Thanks:
CBA Team, with contributions of:
- Alef
- Denisko-Redisko
- Dr EyeBall
- Jaynus
- Killswitch
- kju
- Kronzky
- MuzzleFlash
- Nou
- q1184
- Rocko
- Rommel
- Sickboy
- Solus
- Spooner
- tcp
- Vigilante
- Wolffy.Au
- Xeno

Special thanks to:
- Mikero - for his excellent PBO tools and support
- The community - for testing, feedback, mass adoption
- ACE team - for contributions, mass adoption and testing opportunity
- Dev-Heaven - for project hosting, issue tracker.
- SIX Updater - for hosting and distributing development versions.
- Bohemia Interactive - for creating the ultimate simulation
- Big thanks to ViperMaul, BarmArmy and Rocko for their work on the conversion.

Licensed Under GPLv2
Any addon which calls CBA-defined functions need not be licensed under the GPLv2
or released under a free software license. Only if you are directly including CBA code
in your addon's binarized PBO or redistributing a modified version of CBA itself would
your work be considered derivative and therefore be legally required to be released under
the terms of the GPL. (And there's no reason to ever do either of these.)

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: 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

ADDED: XEH DisplayLoad and DisplayUnload event handlers (#264) commy2
FIXED: Wrong order of arguments in Extended_Fired_EventHandlers (#266) (#267) commy2
FIXED: Conflict between CBA Events and Help prevents mission from loading (#244) commy2
FIXED: Potential script error on mission start (#258) commy2
IMPROVED: Performance improvements in Help module (#265) commy2
IMPROVED: Delay installing PlayerActions PFEH until first use (#262) PabstMirror
IMPROVED: replace PUSH() Macro with pushback (#247) johoko482

FIXED: High zoom optics broken on all LMGs (#159) robalo
FIXED: CBA keybinds did not work in the Zeus interface (#206) commy2
FIXED: CBA_fnc_splitString broken in A3 1.54 (#209, #210), PabstMirror, Killswitch
FIXED: Support configNull and teamMemberNull in CBA_fnc_findNull (#212) commy2
FIXED: CBA_fnc_findMin was broken (#257, #207) commy2
FIXED: CBA_fnc_formatNumber decimals with negative numbers (#214) PabstMirror
FIXED: CBA_fnc_selectWeapon broken (#219)
FIXED: CBA_fnc_addClassEventHandlers for units that spawn inside vehicles (#221) commy2
FIXED: Various issues with CBA per-frame handlers (#230, #236) commy2
FIXED: Many other performance improvements and bug fixes.
IMPROVED: Extended Event Handler system rewritten commy2
ADDED: CBA_fnc_isPerson and CBA_fnc_canUseWeapon (#219) commy2
ADDED: CBA_fnc_createNamespace and CBA_fnc_deleteNamespace (#260) commy2

FIXED: 1.54 local keyword deprecation commy2, Nou
FIXED: Eden editor crash (#198) PabstMirror
FIXED: "Updating base class" RPT warnings robalo
FIXED: "No owner" RPT warnings commy2
FIXED: CBA_fnc_getPos robustness. (#187) commy2
FIXED: Unbound CBA key assignment display (#205) PabstMirror
ADDED: Multiplayer fireteam color synchronization (#185) BaerMitUmlaut
ADDED: Run-time extended event handlers: CBA_fnc_addClassEventHandler commy2
ADDED: Backpack and cargo item removal functions: CBA_fnc_removeBackpackCargo, CBA_fnc_removeBackpackCargoGlobal, CBA_fnc_removeItemCargo, CBA_fnc_removeItemCargoGlobal jonpas

FIXED: AI functions broken due to getGroup error (#178) - Dorbedo
CHANGED: Improvement for "script_macros_mission.hpp" (#180) - Dorbedo

FIXED: RTP issue in PFH main Loop (#171) - Joko
FIXED: Bounds checking on removePFEH (#172) - PabstMirror
FIXED: MP waypoint duplication issue in the AI task functions - SilentSpike
FIXED: Restore equivalent position handling in taskDefend - SilentSpike
FIXED: script_macros_mission.hpp dcoumentation/comment - Glowbal

FIXED: Keybinding Issue with Controllers connected - Joko
FIXED: Issues with perFrameEventHandlers - Joko
FIXED: Animal randomization issue causing RPT Spam Error in expression (#114) - robalo, killswitch
CHANGED: Improved PFH code Performance (#148, #152) - Joko
ADDED: Make use of the new joinString command in A3 1.50 enhancement - killswitch
ADDED: XEH support for SeatSwitched event handlers - killswitch
ADDED: Polish localization - gienkov
ADDED: 6 New Array Functions: CBA_fnc_findMax, CBA_fnc_findMin, CBA_fnc_findNil, CBA_fnc_findTypeName, CBA_fnc_findTypeOf and CBA_fnc_findNull (#131,#143) - Joko,mikematrix

  • ADDED: New function CBA_fnc_randPosArea - SilentSpike[/*]
  • ADDED: New function CBA_fnc_substr - Joko[/*]
  • ADDED: ASDG Joint Rails(JR) Integration (more info) - robalo[/*]
  • FIXED: XEH for a lot of stock A3 vehicles and units - Killswitch, PabstMirror[/*]
  • FIXED: Show CBA keybindings in the briefing - Killswitch[/*]
  • FIXED: Headgear and animal randomization compatible with A3 1.50+ - robalo[/*]
  • IMPROVED: Key binding system - Vipermaul[/*]
  • IMPROVED: Function and macro optimizations. - Glowbal, Jonpas, Dixon13, SilentSpike, Joko, SzwedzikPL[/*]
Change Log for CBA_A3 v2.0 - Milestone v2.0
v1.1.23.150604 RC7 Hotfix 2
IMPROVED: Move the XEH initialization out of the init event handler. - Killswitch
ADDED: Optional addon to enable an automatic 'adding XEH' to incompatible mods - Killswitch

v1.1.22.150602 RC7 Hotfix
FIXED: Restore XEH init EH for the BLUFOR FIA, Story and other Civilian units. - Killswitch
FIXED: Restore XEH fired EH for Attack Helicopter units - Killswitch
IMPROVED: Replaced BIS_fnc_areEqual by IsEqualTo - Glowbal
IMPROVED: CBA_fnc_strLen - count now works on strings - Glowbal
IMPROVED: CBA_fnc_addPerFrameHandler - Replaced set count for pushback - Glowbal
IMPROVED: CBA Fleximenu - params support in code exec (#48) - SzwedzikPL

CHANGED: Make the CBA per-frame handlers work during mission briefing (76243) - Killswitch
IMPROVED: Server performance (76242) - Killswitch
IMPROVED: CBA_fnc_split fails on char count > 10000 (76263) - Pabst Mirror
FIXED: CBA is overwriting textures of the offroad vehicle (75924) - Killswitch
FIXED: Animals from the Misc-Animals module are invisible (76205) - Killswitch
FIXED: CBA uses old vehicle customization init event handlers (76268) - Killswitch
FIXED: CBA_fnc_addPlayerAction is broken in latest CBA DEV 150425 (76206) - ViperMaul
FIXED: Improper handling of key press timings (76228) - ViperMaul
FIXED: Using R.Ctrl as a modifier while binding a key combination always ends up becoming R.Ctrl+Ctrl (76175) - ViperMaul

RC6 hotfix
FIXED: Game freezes using CBA_fnc_Replace in certain methods - Killswich
FIXED: MI_Skip button missing when CBA Mod is used. (76187) - Killswich

WARNING: The old keybinds will revert to their defaults
WARNING: These old keybinds defaults will be locked and cannot be changed.
WARNING: So they will work however there will be warnings in the RPT to change to the new API so players can change their keys.
ADDED: New keybind API CBA_fnc_addKeybind - Nou
ADDED: New keybind API CBA_fnc_registerKeybindModPrettyName - Nou
ADDED: New Keybind API CBA_fnc_addKeybindToFleximenu - ViperMaul
ADDED: New Keybind support for ACER keyboards.- Nou
ADDED: New Keyup support for Keybind - Nou
ADDED: New holdkey feature for Keybinds. - Nou
ADDED: New Debug Enhancement ( - Nou
FIXED: The inability to return to default keybinds after starting a new mission. - Nou
FIXED: EH FiredBIS fixes - ViperMaul
FIXED: RPT Errors with Updating Base Class and Cannot Delete.... - ViperMaul
FIXED: Arma 3 v1.42 RC Issues - Updating Base Classes - ViperMaul
FIXED: Arma 3 v142 RC Issues - fn_undefCheck.sqf not found - ViperMaul
FIXED: Bugs in CBA_fnc_switchPlayer - Killswitch
IMPROVED: Keybind optimizations. PerFrameHandler support. Must faster! - Nou
IMPROVED: Keybind localization support. - Nou
IMPROVED: Caching Changes. - Nou
IMPROVED: String Functions Optimizations. Much faster. - Jaynus
IMPROVED: XEH Support for "ReammoBox_F" enabled. - ViperMaul
IMPROVED: Removed usage of BIS_fnc_MP from core functions like cba_network - Killswitch
DEPRICATED: Keybinding API CBA_fnc_registerKeybind - Nou
DEPRICATED: Keybinding API CBA_fnc_registerKeybindToFleximenu - ViperMaul

RC5 - Not released due to a bug - it is now fixed in RC6.
FIXED: Arma 3 v1.38 Issues - Updating Base Classes - ViperMaul
FIXED: Keybinding system initialization - (75752) KillSwitch
FIXED: Bug in Hashes - (7538) KillSwitch

- FIXED: Hashes/fnc_isHash.sqf leaks local variable to global scope. (74961) - killswitch
- FIXED: Cancel and ESC key does not revert your key assignment (74913) - Taosenai
- FIXED: Warning Message: Addon 'cba_xeh_a3' requires addon 'CAData' in 1.29 or later - ViperMaul
- ADDED: Warning for Duplicate Keybinds (74914) - Taosenai
- ADDED: Support for ContainerClosed and ContainerOpened event handlers (75094) - killswitch
- IMPROVED: Functions with the new pushBack command. (74884) - killswitch

RC3 hotfix
- FIXED: Wrongly formatted Keybind arrary can permanently corrupt the variable array that holds all CBA Keybinds changes - Taosenai
- FIXED: Changing the keybind breaks KeyUp handling in a rare case. (74912) - Taosenai

- IMPROVED: Improve isTurnedOut function to support methods used by Arma's core engine. (74888) - Nou
- FIXED: Error if no mods are registered keybinds when you click the delete or default button - Taosenai
- ADDED: Keybinding should allow selection of KeyDown and KeyUp - Taosenai
- ADDED: RegisterKeybind should take {code}, functionNames, and "functionNames" - Taosenai

- FIXED: CBA_fnc_taskPatrol not showing properly in the BIS_fnc_help viewer - killswitch
- FIXED: CBA_A3 RC1: XEH no longer works for Ammo boxes - killswitch
- IMPROVED: Optimize all dynamic code from Call Compile Format to the missionNamespace setVariable method - ViperMaul
- ADDED: New event handlers supported: InventoryClosed, InventoryOpened and SoundPlayed. - killswitch
- ADDED: New Keybinding System (74765) - Taosenai

- FIXED: CBA_A3 interferes with Arma3's weather sync values - ViperMaul
- FIXED: CBA_fnc_isTurnedOut relies on animation name ending in out (74432) - killswitch - thanks LordHeart
- FIXED: Fixed Parachute Explosion when landing too fast. As well as other EH fixes (74393) - killswitch
- IMPROVED: Slight improvements in EventHandlers - killswitch
- IMPROVED: Per-Frame Handler (PFH) is now based off the BIS stacked event handler system - killswitch
- IMPROVED: CBA_fnc_getFov function (74230) - Thanks ceeeb
- IMPROVED: Revert hack for HashSet designed for Arma 3 Alpha - no longer needed for Arma 3 Final - ViperMaul

- Changelog

Forum topic:
- BI forums

Enable javascript to be able to download from Armaholic please!

Tags: Cba