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.
Note
- If the same script is to be executed more than one time, declaring it as a Function is recommended to avoid recompiling and wasting performance with every execution.
- 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.
Important
- The
.sqffile 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.
Syntax
Syntax 1
arguments execVM filename
Parameters:
arguments: Anything - arguments accessible as_thisin the scriptfilename: String - path to the SQF script file
Returns: Script Handle
Syntax 2
execVM filename
Parameters:
Returns: Script Handle
Examples
Example 1
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";
See also
call · spawn · exec · execFSM · scriptDone · scriptNull · terminate · sleep · uiSleep · waitUntil · canSuspend · diag_activeScripts · diag_activeSQFScripts · SQF Syntax · Control Structures