Home Scripting Commands Variables getVariable getVariable
Global argument Arma 3 v0.50 First in Armed Assault v1.00
Command · also in Namespaces , Multiplayer · Markdown · JSON · original wiki page
Description
Returns the value of variable in the variable space assigned to various data types.
All available data types combinations:
Important
When variable is set on a Task , it is not actually set on the task itself, but on the FSM attached to the task.
If there is no FSM, getVariable will not work.
Note
Arma 3: In the case of Alt Syntax usage in Arma 3, defaultValue will be returned if:
Requested variable is either undefined or nil
Variable namespace is null (objNull , grpNull , etc.)
Syntax
Syntax 1
varspace getVariable name
Parameters:
Returns: Anything or Nothing if the variable doesn't exist
Syntax 2
varspace getVariable [name , defaultValue]
Parameters:
varspace: Namespace , Object , Display , Control , Group , Location , Task , Team Member , Display , Control
name: String - variable name in given namespace
defaultValue: Anything - value to return if variable doesn't exist
Warning
A dynamic defaultValue e.g random 500 will always be executed, even if the variable is defined.
Returns: Anything - current value of the variable or defaultValue if the variable doesn't exist.
Examples
Example 1
private _variable = myTruck getVariable "myVariable" ;
Example 2
private _variable = myTruck getVariable ["myVariable" , 50 ];
Example 3
for "_i" from 0 to 5 do
{
_car = missionNamespace getVariable ("car" + str _i );
_car setDamage 0 ;
};
Example 4
myMissionVar = 2015 ;
missionNamespace getVariable "myMissionVar" ;
Example 5
Get current value of a variable and if it is undefined, define it and get the defined value:
private _var = missionNamespace getVariable "varName" ;
if (isNil "_var" ) then
{
missionNamespace setVariable ["varName" , 123 ];
_var = 123 ;
};
See also
setVariable · allVariables · getFSMVariable
NOTE: Arma 2 only! In Arma 3 this will return default value:
Warning: the alternative syntax returns undefined when the namespace is an object and that object is null. Example:
_test = objNull getVariable ["test" , "0" ];
systemChat _test ;
Errors because _test is undefined. Tested in Arma 2: Operation Arrowhead 1.63.131129
You can do typechecking using param :
private _myVar = [player getVariable "myVar" ] param [0 , "" , ["" ]];
and params :
[player getVariable "myVar" ] params [["_myVar" , "" , ["" ]]];