Magic Variables

From Bohemia Interactive Community
Revision as of 11:56, 16 January 2024 by Lou Montana (talk | contribs) (Add ctrlAddEventHandler and displayAddEventHandler to _thisEventHandler and _thisEvent + reordering)
Jump to navigation Jump to search

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.