Arma 3 Scripting

Function in Object Manipulation

BIS_fnc_setUnitInsignia

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

Description

Sets unit insignia (e.g., shoulder insignia on soldiers). See Arma 3: Unit Insignia for more details and a list of official insignias.

Syntax

[target, className] call BIS_fnc_setUnitInsignia

Parameters:

Returns: Boolean - returns true if successful.

Examples

Example 1

Place insignia:

[player, "111thID"] call BIS_fnc_setUnitInsignia;

Example 2

Remove insignia:

[player, ""] call BIS_fnc_setUnitInsignia;

See also

BIS_fnc_getUnitInsignia · Arma 3: Unit Insignia

Community notes

Pierre MGI

In Arma 3: Unit Insignia, you can read:

You can add a new insignia in Config.cpp and Description.ext.

If it is possible to add a cfgUnitInsignia class in a description.ext, please note that the path of the texture differs for server and client in MP environment. Config.cpp (addon) is more reliable. Description.ext, in this case, should be used for SP mission only.

This function calls setObjectTextureGlobal, which is a broken command in MP (see feedback tracker) August 2016.

Leopard20

To set the insignia after respawn, add this code to initPlayerLocal.sqf

params ["_player"];
_player addMPEventHandler ["MPRespawn", {
    params ["_unit", "_corpse"];
    private _insignia = [_corpse] call BIS_fnc_getUnitInsignia;
    [_unit, _insignia] spawn {
        params ["_unit", "_insignia"];
        sleep 1;
        isNil {
            _unit setVariable ["BIS_fnc_setUnitInsignia_class", nil]; // you can also do [_unit, ""] call BIS_fnc_setUnitInsignia, but this way is faster (plus no network traffic)
            [_unit, _insignia] call BIS_fnc_setUnitInsignia;
        };
    };
}];

Notice that the previous insignia has been cleared first to make the change happen (possibly a bug as of Arma 3 v2.05)