#include "..\script_component.hpp" params [ ["_cfg", configNull, [configNull]], ["_code", {}, [{}]] ]; if (isNull _cfg) exitWith {["Provided config is null!"] call BIS_fnc_error}; private _recurseFnc = { params ["_cfg", "_code", ["_recurseCounter", 0]]; [_cfg, _recurseCounter] call _code; // get children and recurse private _childCfgs = _cfg call BIS_fnc_returnChildren; if (count _childCfgs isEqualTo 0) exitWith {false}; { [_x, _code, _recurseCounter + 1] call _recurseFnc; } forEach _childCfgs; false; }; private _continue = true; while {_continue} do { _continue = [_cfg, _code] call _recurseFnc; };