From Bohemia Interactive Community
Revision as of 18:29, 13 June 2021 by Lou Montana (talk | contribs) (Some wiki formatting)
Jump to navigation Jump to search
The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.
Hover & click on the images for description


Loop stacked code/function with timing and conditional control. Code and conditions are executed in non-scheduled environment.
Program Flow


[action, parameters] call BIS_fnc_loop
action: String - can be one of:
  • "initialize" - Initializes game loop (not required as internal AUTO_INITIALIZE variable is set to true)
  • "terminate" - Terminates game loop (required as internal AUTO_TERMINATE variable is not set to true)
  • "itemAdd" - Adds an item to loop
  • "itemRemove" - Remove item from loop with id "uniqueId"
  • "onEachFrame" - internally used by "initialize"
  • "itemExecute" - internally used by "onEachFrame"
parameters: Array - used with "itemAdd" and "itemRemove" action ("itemRemove" only takes id):
  • id: String - loop unique id
  • code: Code or String - code to be executed
  • timer: Number - (Optional, default 0) delay between executions
  • timerType: String - (Optional, default "seconds") can be "seconds" or "frames"
  • conditionStart: Code - (Optional, default { true }) will wait until the condition is met to start the code
  • conditionEnd: Code - (Optional, default { false }) stops the loop as soon as the ending condition is met (after the end of code)
  • executeOnce: Boolean - (Optional, default false)
Return Value:


Example 1:
// hints time every five seconds ["itemAdd", ["uniqueId", { hint str time; }, 5]] call BIS_fnc_loop;
Example 2:
// removes stacked loop with id of uniqueId ["itemRemove", ["uniqueId"]] call BIS_fnc_loop;
Example 3:
// hints time every frame after BIS_variable is assigned ["itemAdd", ["uniqueId", { hint str time; }, nil, nil, { !isNil { BIS_variable } }]] call BIS_fnc_loop;
Example 4:
// hints time every five seconds after BIS_variable is assigned ["itemAdd", ["uniqueId", { hint str time; }, 5, "seconds", { !isNil { BIS_variable } }]] call BIS_fnc_loop;
Example 5:
// hints time every frame ["itemAdd", ["uniqueId", { hint str time; }]] call BIS_fnc_loop;
Example 6:
// remove item from loop with id "uniqueId" ["itemRemove", ["uniqueId"]] call BIS_fnc_loop;

Additional Information

See also:


Report bugs on the Feedback Tracker and/or discuss them on the Arma Discord or on the Forums.
Only post proven facts here! Add Note