---
name: "getAllUnitTraits"
type: command
status: ok
groups: ["Object Manipulation"]
arma3_since: "2.00"
locality: {"argument": null, "effect": null, "server_exec": false}
source: https://community.bistudio.com/wiki/getAllUnitTraits
revid: 379083
updated: 2026-09-27T08:11:53Z
---

# getAllUnitTraits

*Command · Object Manipulation · Arma 3 v2.00*

## Description

Returns unit traits (native or set by [setUnitTrait](../commands/setUnitTrait.md)).

## Syntax

```sqf
getAllUnitTraits unit
```

**Parameters:**

- `unit`: [Object](../topics/Object.md) or Arma 3 v2.18 [String](../topics/String.md) - a unit or a class name

**Returns:** [Array](../topics/Array.md) of [Array](../topics/Array.md)s with [name, value]
- name: [String](../topics/String.md) - trait's name
- value: [String](../topics/String.md) or [Boolean](../topics/Boolean.md) - trait's value

## Examples

### Example 1

```sqf
private _playerTraits = getAllUnitTraits player;
/*
Could return something like this:
[
    ["Medic", false],
    ["Engineer", false],
    ["ExplosiveSpecialist", false],
    ["UavHacker", false],
    ["CamouflageCoef", 1],
    ["AudibleCoef", 1],
    ["LoadCoef", 1],
    ["test", "custom"]
]
*/
```

### Example 2

```sqf
private _unitTraits = getAllUnitTraits _unit;
private _indexes = [_unitTraits, "Medic"] call BIS_fnc_findNestedElement;
private _unitCanHeal = _unitTraits select (_indexes select 0) select 1;
```

### Example 3

Since Arma 3 v2.18:

```sqf
hint str getAllUnitTraits "O_Engineer_F";
/*
[
    ["Medic", false],
    ["Engineer", true],
    ["ExplosiveSpecialist", true],
    ["UavHacker", false],
    ["CamouflageCoef", 1],
    ["AudibleCoef", 1],
    ["LoadCoef", 1]
]
*/
```

## See also

[getUnitTrait](../commands/getUnitTrait.md) · [setUnitTrait](../commands/setUnitTrait.md)

## Community notes

**BrettMayson** — 2023-11-27

Local argument assumed, needs confirmation

<sub>Source: [BI Community Wiki — getAllUnitTraits](https://community.bistudio.com/wiki/getAllUnitTraits) (revision 379083).</sub>
