# Variables (scripting commands)

- [! a](../../commands/~21_a.md): Returns the negation of a Boolean expression. This means `true` becomes `false` and vice versa.
- [a != b](../../commands/a_~21~3D_b.md): Returns whether one value is not equal to another. String comparison is case-insensitive (e.g `"STRINGtext" != "stringTEXT" // returns false - strings are equivalent`).
- [a && b](../../commands/a_~26~26_b.md): Returns true only if both conditions are true. In case of the alternative syntax, lazy evaluation is used - if left operand is false, evaluation of the right side is ignored.
- [a = b](../../commands/a_~3D_b.md): Assigns the result of expression on the right to the variable on the left. Technically this is not a command and it is not listed in supportInfo; this is more of a compiler instruction.
- [a == b](../../commands/a_~3D~3D_b.md): Check if *a* is equal to *b*. String comparison is case-insensitive - use isEqualTo if case sensitivity is needed.
- [a greater b](../../commands/a_greater_b.md): Returns true if a is greater than b, else returns false.
- [a greater= b](../../commands/a_greater~3D_b.md): Returns if *a* is greater than or equal to *b*.
- [a hash b](../../commands/a_hash_b.md): Selects an element from an Array, same as select command for arrays, but has higher precedence.
- [a less b](../../commands/a_less_b.md): Returns if *a* is lesser than *b*.
- [a less= b](../../commands/a_less~3D_b.md): Returns true if a is less than or equal to b, else returns false.
- [a or b](../../commands/a_or_b.md): Returns true if one or both conditions are true. In case of the alternative syntax, lazy evaluation is used. That means that if left operand is true, evaluation of the right side is skipped completely.
- [addPublicVariableEventHandler](../../commands/addPublicVariableEventHandler.md) **[broken]**: This event handler will detect if a missionNamespace variable (it is attached to) has been broadcast over network with publicVariable, publicVariableClient or publicVariableServer commands and will execute EH code upon…
- [allVariables](../../commands/allVariables.md): Returns a list of all variables from the desired namespace.
- [and](../../commands/and.md): Returns true only if both conditions are true. In case of the alternative syntax, lazy evaluation is used - if left operand is false, evaluation of the right side is ignored.
- [configNull](../../commands/configNull.md): A non-existing Config.
- [diaryRecordNull](../../commands/diaryRecordNull.md): A non-existent Diary Record. To compare non-existent objects use isNull or isEqualTo:
- [displayNull](../../commands/displayNull.md): A non-existing Display. To compare non-existent displays use isNull or isEqualTo:
- [false](../../commands/false.md): Always false.
- [getFSMVariable](../../commands/getFSMVariable.md): Return the value of variable in the variable space of given FSM. The FSM handle is the number returned by the execFSM command.
- [getVariable](../../commands/getVariable.md): Returns the value of variable in the variable space assigned to various data types. All available data types combinations:
- [import](../../commands/import.md): Imports one or multiple local variables from the parent scope, and defines them as private variables in the current scope. It can bypass privateAll.
- [isEqualRef](../../commands/isEqualRef.md): Compares two values by reference, returns true if equal.
- [isEqualTo](../../commands/isEqualTo.md): Performs strict comparison between var1 and var2 and returns true if equal, otherwise false. Strict means that it would check that both arguments are of the same data type and then compare the values.
- [isEqualType](../../commands/isEqualType.md): Compares two values' types. A much faster alternative to `typeName a == typeName b`.
- [isEqualTypeAll](../../commands/isEqualTypeAll.md): Compares types of all elements of an array to the type of a single value. Since Arma 3 v2.09.149634 no additional check is needed to make sure the first argument is an Array.
- [isEqualTypeAny](../../commands/isEqualTypeAny.md): Compares type of given value to every type in the given array and if match is found, true is returned.
- [isEqualTypeArray](../../commands/isEqualTypeArray.md): Compares types of all elements of one array to types of all elements of another array. Since Arma 3 v2.09.149634 no additional check is needed to make sure the first argument is an Array.
- [isEqualTypeParams](../../commands/isEqualTypeParams.md): Compares types of all elements of input array to types of all elements of template array.
- [isFinal](../../commands/isFinal.md): Checks if Code or a variable was compiled final with compileFinal.
- [isMissionProfileNamespaceLoaded](../../commands/isMissionProfileNamespaceLoaded.md): The missionProfileNamespace variables are loaded at the start of a mission, before 'init.sqf' is executed.
- [isNil](../../commands/isNil.md): Tests whether a variable is nil or undefined from its identifier, or whether the given expression evaluates to nil or Nothing.
- [isNotEqualRef](../../commands/isNotEqualRef.md): Compares two values by reference, returns true if not equal.
- [isNotEqualTo](../../commands/isNotEqualTo.md): Performs strict comparison between var1 and var2 and returns false if equal, otherwise true.
- [isNull](../../commands/isNull.md): Checks whether the tested item is null.
- [localNamespace](../../commands/localNamespace.md): Returns local Namespace attached to the mission. Has the same lifetime as missionNamespace but variables cannot be broadcasted out of or into this namespace in multiplayer and will not be serialized when game is saved.
- [locationNull](../../commands/locationNull.md): A non-existing Location. To compare non-existent locations use isNull or isEqualTo:
- [missionNamespace](../../commands/missionNamespace.md): Returns the global namespace attached to mission.
- [missionProfileNamespace](../../commands/missionProfileNamespace.md): This namespace has the same lifetime as profileNamespace but is also connected to the mission it is saved from. See saveMissionProfileNamespace for more details.
- [netObjNull](../../commands/netObjNull.md): A non-existent NetObject. To compare non-existent objects use isNull or isEqualTo:
- [nil](../../commands/nil.md): Nil value. This value can be used to undefine existing variables.
- [not](../../commands/not.md): not a is exactly the same as ! a.
- [objNull](../../commands/objNull.md): A non-existent Object. To compare non-existent objects use isNull or isEqualTo:
- [or](../../commands/or.md): Returns true if one or both conditions are true. In case of the alternative syntax, lazy evaluation is used. That means that if left operand is true, evaluation of the right side is skipped completely.
- [param](../../commands/param.md): Extracts a single value with given index from input argument, similar to BIS_fnc_param.
- [params](../../commands/params.md): Parses input argument into array of private variables. When used without argument, as shown in main syntax, internal variable _this, which is usually available inside functions and event handlers, is used as argument.
- [parsingNamespace](../../commands/parsingNamespace.md): Returns the global namespace attached to config parser.
- [private](../../commands/private.md): Sets a variable to the innermost scope. See also param and params.
- [privateAll](../../commands/privateAll.md): Disables the implicit inheritance of local variables, as defined in the parent scope.
- [profileNamespace](../../commands/profileNamespace.md): Returns the global namespace attached to the active user profile. Use setVariable and getVariable to save and load data to and from this Namespace. A variable can be deleted by setting its value to nil.
- [publicVariable](../../commands/publicVariable.md): Reliably broadcasts missionNamespace variable and its current value to all computers (server/client).
- [publicVariableClient](../../commands/publicVariableClient.md): Send the variable value to the client computer - same limitations regarding variable type as publicVariable.
- [publicVariableServer](../../commands/publicVariableServer.md): Send the variable value to the server - same limitations regarding variable type as publicVariable.
- [saveMissionProfileNamespace](../../commands/saveMissionProfileNamespace.md): missionProfileNamespace provides long-term storage solution for mission variables.
- [saveProfileNamespace](../../commands/saveProfileNamespace.md): Saves all variables stored in profileNamespace to the active Profile.
- [saveVar](../../commands/saveVar.md): Save variable value into the campaign space. This variable is available to all following missions in the campaign.
- [scriptNull](../../commands/scriptNull.md): A non-existing or completed Script Handle. To compare non-existent scripts use isNull or isEqualTo:
- [serverNamespace](../../commands/serverNamespace.md): Returns server's namespace. This namespace is only available on the server for the server's uptime duration (same as uiNamespace).
- [setVariable](../../commands/setVariable.md): Set variable to given value in the variable space of given element. Can be used to broadcast variables over the network.
- [taskNull](../../commands/taskNull.md): A non-existing Task. To compare non-existent tasks use isNull or isEqualTo:
- [true](../../commands/true.md): Always true
- [typeName](../../commands/typeName.md): Returns the Data Type of an expression.
- [uiNamespace](../../commands/uiNamespace.md): Returns the global namespace attached to user interface.
