Difference between revisions of "execVM"

From Bohemia Interactive Community
Jump to navigation Jump to search
m (Text replacement - "<tt>([a-zA-Z0-9\. _"']+)<\/tt>" to "{{hl|$1}}")
m (Text replacement - "<tt>([^= ]+)<\/tt>" to "{{hl|$1}}")
Line 37: Line 37:
|s1= arguments [[execVM]] filename
|s1= arguments [[execVM]] filename
|p1= arguments: [[Anything]] - arguments accessible as <tt>[[Magic Variables#this|_this]]</tt> in the script
|p1= arguments: [[Anything]] - arguments accessible as {{hl|[[Magic Variables#this|_this]]}} in the script
|p2= filename: [[String]] - path to the [[SQF Syntax|SQF]] script file
|p2= filename: [[String]] - path to the [[SQF Syntax|SQF]] script file

Revision as of 00:17, 16 November 2021

Hover & click on the images for description


Compiles and adds an SQF script to the scheduler queue and returns script handle (see also Example 4). The script does not execute immediately upon running execVM command but with some delay depending on the VM's scripts queue and engine load.
  • If the same script is to be executed more than one time, declaring it as a Function is recommended.
  • The script is searched for in the following directories in that order:
    • mission directory
    • campaign scripts directory
    • global scripts directory.
  • To see what VM scripts are currently in the scheduler, use diag_activeSQFScripts command.
  • The .sqf file extension is not mandatory but is strongly recommended as using non-standard extensions may cause problems during binarisation
  • If the script file is not prepared using UTF-8 encoding and contains some characters with codes > 127, they might convert incorrectly.
Program Flow


arguments execVM filename
arguments: Anything - arguments accessible as _this in the script
filename: String - path to the SQF script file
Return Value:
Script Handle

Alternative Syntax

execVM filename
filename: String - path to the SQF script file
Return Value:
Script Handle


Example 1:
_handle = execVM "test.sqf";
Example 2:
_handle = player execVM "test.sqf"; waitUntil { scriptDone _handle }; The following is also possible in Arma 3: private _handle = execVM "123.sqf"; waitUntil { isNull _handle };
Example 3:
[player, 0.75] execVM "setDamage.sqf"; setDamage.sqf: params ["_unit", "_damage"]; _unit setDamage _damage;
Example 4:
execVM equivalence:private _handle = _args execVM "someFile.sqf"; // is practically identical to private _handle = _args spawn compile preprocessFileLineNumbers "someFile.sqf";

Additional Information

See also:
callspawnexecexecFSMscriptDonescriptNullterminatesleepuiSleepwaitUntilcanSuspenddiag_activeScriptsdiag_activeSQFScriptsSQF SyntaxControl Structures


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