====== ArmA 2 Function Library ====== [[https://www.pmctactical.org/forum/viewforum.php?f=50|ArmA 2 Forum]], [[:arma2|ArmA 2 Home]], [[arma2:config|ArmA 2 Config]], [[arma2:file_formats|ArmA 2 File Formats]], [[arma2:missions|ArmA 2 Missions]], [[arma2:modeling|ArmA 2 3D Modeling]], [[arma2:scripting|ArmA 2 Scripting]], [[arma2:terrain|ArmA 2 Terrain]], [[arma2:texturing|ArmA 2 Texturing]], [[arma2:tools|ArmA 2 Tools]] Functions Library Function Library is pack of script functions available from anywhere in game. Initialization Paths Editor: Units (F1) > Game Logic > Modules > Function Library Data: ca\modules\functions Startup Place Function manager on map. No additional synchronizing needed. Usage First, you need to check if Functions were already initialized: waituntil {!isnil "bis_fnc_init"}; **Always check for 'BIS_fnc_init', not specific functions (e.g. 'BIS_fnc_setpitchbank')!\\ Never set value of 'BIS_fnc_init' in any part of mission! It may lead to breakdown of some modules!** After that, you can call any function using following syntax: _fnc = [params] call TAG_fnc_functionName. In-game functions viewer See BIS_fnc_help (TODO) Adding new functions List of functions is defined in config - CfgFunctions. New ones can be also added in Description.ext file of mission or campaign. class cfgFunctions { class BIS { class category1 { class Test1 { description = "Testing file 1"; }; }; }; class CSLA { class category1 { class Test2 { description = "Testing file 2"; file = "test.sqf"; }; }; }; }; If 'file' path is not set, system will search for file 'functions\category\fn_function.sqf" (if function is defined in description.ext) or 'ca\modules\functions\category\fn_function.sqf" (if function is in config.cpp). Result is: * BIS_fnc_Test1 - will load script \functions\category1\test1.sqf from mission or campaign directory * CSLA_fnc_Test2 - will load script \ca\modules\functions\category1\test2.sqf