Magic Variables

From Bohemia Interactive Community
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.

Magic variables are engine-maintained variables that serve a specific purpose within a given scope and are often used by the engine to provide data to a script or code fragment.
They are usually no longer present after leaving the scope (e.g. after code execution or after a forEach-statement).


_this

Used to make the arguments of a script call (call, exec, execVM, spawn) visible and accessible to the script. Also used by Event Handlers to provide parameters.


_x

Represents the current element during iteration with apply, count, configClasses, configProperties, findIf, forEach and select.


_y

Iterating over a HashMap with forEach will return the key as _x and the value as _y.


_exception

Exception handling using a try-catch-statement declares this variable which contains details about the thrown exception in the try-block.


_fnc_scriptName

Not engine-maintained, but added by functions_f/initFunctions.sqf – see scriptName.

Within a Function, the TAG_fnc_functionName function name (e.g. "myTag_fnc_myFunction").


_fnc_scriptNameParent

Not engine-maintained, but added by functions_f/initFunctions.sqf – see scriptName.

Within a Function, the name of the function that called the current function (same as _fnc_scriptName if the function was not called by another function).


_forEachIndex

Represents the (zero-based) index of a forEach- / forEachReversed-loop.


_self

Available in HashMapObject methods. Contains the HashMapObject instance that the method was invoked on (see createHashMapObject).


_thisArgs

Additional Event Handler arguments available with addMissionEventHandler.


_thisEvent

The name of the Event added with addEventHandler, addMPEventHandler, addMissionEventHandler,addUserActionEventHandler, ctrlAddEventHandler and displayAddEventHandler, as well as for config types EHs.


_thisEventHandler

The index for Event Handlers added with addEventHandler, addMPEventHandler, addMissionEventHandler, addUserActionEventHandler, ctrlAddEventHandler and displayAddEventHandler.


_thisFSM

The FSM ID for FSMs executed with execFSM.


_thisScript

The Script Handle of a script started with execVM, call or spawn.


_thisScriptedEventHandler

The index for Scripted Event Handlers added with BIS_fnc_addScriptedEventHandler.


_time

SQS only.

The time elapsed since the script started running.


this

  • Addon Config Files (e.g. UserActions, onInit, etc.): The object to which the entry belongs.
  • Dialogs: The player unit that activated control (e.g. via mouseEnter). false if non-activated.
  • Object Init Fields: The object to which the init field belongs.
  • Triggers:
    • Condition: The Boolean return value of the Trigger's condition (e.g. "East Not Present").
    • On Activation and On Deactivation: Seems to always return false.
  • Waypoints:
    • Condition, On Activation and On Deactivation: The group leader that completed the waypoint (or the driver, if the waypoint is assigned to a vehicle).


thisList

  • Triggers:
    • Accessible in the Condition, On Activation and On Deactivation code.
    • Defines an array of objects that have been detected by the trigger (same as what is returned by the list command).
    • Seems to be undefined in the On Deactivation expression and should not be used. It will either be an empty array, or possibly the contents of a different trigger.
  • Waypoints:
    • Accessible within the Condition or On Activation code.
    • Defines an array containing all group members that completed the waypoint.


thisTrigger

Refers to the trigger object itself - accessible within the Condition, On Activation and On Deactivation code.