Magic Variables

From Bohemia Interactive Community
Revision as of 14:51, 17 February 2022 by Leopard20 (talk | contribs)
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 push data to a given 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

Is used to make arguments of a script call (call, exec, execVM, spawn) visible and accessible to the script, also used in Event Handlers to pass appropriate params.


_x

Represents the current element during a loop with: apply, count, configClasses, configProperties, findIf, forEach, 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.


_forEachIndex

Represents the (zero-based) index of a forEach _x element.


_thisArgs

Additional Event Handler arguments available with addMissionEventHandler


_thisEventHandler

The index for Event Handlers added with addEventHandler, addMPEventHandler, addMissionEventHandler or addUserActionEventHandler.


_thisScriptedEventHandler

The index for Scripted Event Handlers added with BIS_fnc_addScriptedEventHandler.


_thisEvent

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


_thisFSM

The FSM id for FSMs executed with execFSM.


_thisScript

The execVMed, called or spawned script handle from within itself.


_time

SQS ONLY. The time elapsed since the script started running.


_fnc_scriptName

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

From within a Function, the TAG_fnc_functionName function name as string (e.g. "myTag_fnc_myFunction")


_fnc_scriptNameParent

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

From within a Function, name of the function that called the current one (_fnc_scriptName used when not defined)


this

  • In Addons' config files (e.g. UserActions, onInit, etc.): The object to which the entry belongs
  • In Dialogs: The player unit that activated control (e.g. via mouseEnter). false if non-activated
  • In Object's "Init" line: The object to which the init line belongs
  • In Triggers
    • "Condition" line: The Boolean return value of the trigger's conditions (e.g. "East Not Present" etc)
    • "On Activation/Deactivation" line: Seems to always return false
  • In Waypoints
    • "Condition" or "On Activation/Deactivation" line: The group leader that completed the respective waypoint (or driver, if waypoint is assigned to a vehicle)


thisList

Variable defined by Triggers and Waypoints:

  • Triggers:
    • accessible within the Condition, On Activation or On Deactivation script
    • defines an array of objects that have been detected by the trigger (same as what is returned by the list command)
    • thisList in a trigger's On Deactivation field seems to be undefined, and should not be used. It will either return an empty array, or possibly the contents of a different trigger.
  • Waypoints:
    • accessible within the Condition or On Activation script
    • defines an array containing all group members that completed the respective waypoint


thisTrigger

Refers to the trigger object itself - accessible within the Condition, On Activation or On Deactivation script.