Arma 3 Scripting

Command in Variables

private

Also available as Markdown and JSON, or read the original wiki page.

Description

Sets a variable to the innermost scope. See also param and params.

Warning

Syntax

Syntax 1

private variableName

Parameters:

Returns: Nothing

Syntax 2

private variableNameList

Parameters:

Returns: Nothing

Syntax 3

since arma3 1.54

private _identifier = value From Arma 2 v1.00 to Arma 3 v1.52: see local

Parameters:

Returns: Nothing

Examples

Example 1

private _varname = "this is my new variable"; // since Arma 3 v1.54

// identical, but less performant
private "_varname";
_varname = "this is my new variable";

Example 2

private ["_varname1", "_varname2"];
_varname1 = "variable 1";
_varname2 = "variable 2";

Example 3

_lol = 123; call { hint str [_lol] }; // [123]
_lol = 123; call { private "_lol"; hint str [_lol] }; // [any]

Example 4

_myvar = 123;
systemChat str [_myvar];        // [123]
call {
    systemChat str [_myvar];    // [123]
    private "_myvar";
    systemChat str [_myvar];    // [any]
    _myvar = 345;
    systemChat str [_myvar];    // [345]
};
systemChat str [_myvar];        // [123]

See also

param · params · privateAll

Community notes

Faguss

The higher scope is also the script from which the function has been called.

in script2.sqf:

_a = 2;

in script1.sqf:

_a = 1;
call compile preprocessFileLineNumbers "script2.sqf";
hint format ["%1", _a];

Game will display 2.

Inserting private "_a" in the function prevents the change and so number 1 will be displayed on the screen.

DreadedEntity

Recursive loops require the use of private. Without it, your variables will be overwritten.

654wak654

This command is similar to javascript's let keyword.

EDIT: in the way that it scopes the variable to the innermost scope. Otherwise, let and private can behave differently - Lou Montana (talk)