From Bohemia Interactive Community
Jump to: navigation, search
Introduced with Armed Assault version 1.00

Click on the images for descriptions

Introduced in

Armed Assault


Tests whether the variable defined by the String argument is undefined, or whether an expression result passed as Code is undefined.
The command returns true if the variable or the expression result is undefined (i.e. the expression result is Void), and false in all other cases.


isNil variableName
variableName: String - name of missionNamespace variable (for example "someVar") or local variable (for example "_someVar")
Return Value:
Boolean - true if variable is not nil

Alternative Syntax

isNil code
code: Code
Return Value:
Boolean - true if code returns something other than Nothing


Example 1:
if (isNil "_pokus") then {_pokus = 0};
Example 2:
isNil {player getVariable "someVar"};

Additional Information

See also:


Only post proven facts here. Report bugs on the feedback tracker. Use the talk page or the forums for discussions.
Add New Note | How To



I recently had a strange experience with this command. I forgot to wrap the name of the variable with quotes, and it returned the opposite of the true null status of the variable. Just something to watch out for.
General Barron

^ If you don't wrap the name of the variable in quotes, then it will instead read the value of the variable itself. If that variable is a string or code, then the command will use that string or code held by the variable. Example:
_myvar = "_hisvar";
isnil _myvar;
//will return true if _hisvar is null
_myvar = {tank1};
sleep (random 50);
isnil _myvar;
//will return if tank1 is nil, at the time the isnil command is checked (not at the time _myvar is established)

--General Barron 10:37, 30 December 2009 (CET)


isNil is also able to check if an expression is undefined. As such, an alternative way to check variables would be:

isNil {variable}

you can use this method to also check if variables defined using setVariable exist as well:

isNil {player getVariable "Something"}

As well as testing if a function returns a value

func_ChangeVehicleName = 
   _this setVehicleVarName "newName";

if (isNil {player call func_ChangeVehicleName})    // returns true, because this function does not return anything

Bottom Section

Posted on September 25, 2014 - 09:48 (UTC)
While isNil isn't available in OFP/CWA you can easily emulate it with something like this:
_nil = format["%1",_nilstring];
?(format["%1",foo]==_nil): foo = "Hello World!"

Posted on October 25, 2014 - 01:51 (UTC)
You can also use isNil to check if an array element exists or if a setVariable variable exists _array = [0,1,2,3]; if (isNil {_array select 4}) then {hint "Element does not exist";}; if (isNil {missionNamespace getVariable "MY_VARIABLE"}) When trying to test array elements, you can only test elements that are 1 element out of range. Testing elements 2 or more elements out of range will result in a script error.
Posted on June 25, 2017 - 15:04 (UTC)
isNil in combination with code will execute that code so be aware.
Posted on July 18, 2017 - 10:25 (UTC)
isNil CODE will execute the code in unscheduled environment