---
name: "selectionPosition"
type: command
status: ok
groups: ["Object Manipulation", "Render Time Scope"]
arma3_since: "0.50"
locality: {"argument": "global", "effect": null, "server_exec": false}
source: https://community.bistudio.com/wiki/selectionPosition
revid: 377819
updated: 2026-01-03T04:18:08Z
---

# selectionPosition

*Command · Object Manipulation, Render Time Scope · Arma 3 v0.50 · introduced in Armed Assault v1.00*

Locality: arguments **global**

## Description

Returns selection position in model space pertaining to the current animation in render time scope.
When the default syntax is used, command searches first in Memory LOD, then in Geometry LOD, FireGeometry LOD, LandContact LOD, HitPoints LOD and finally in ViewGeometry LOD and returns the first matching find.
The second syntax allows to specify which one of these LODs to search in instead.

> [!IMPORTANT]
> Sometimes internally "ViewGeometry" could be equal to "Geometry", and "FireGeometry" could be equal to "ViewGeometry".
> In order to pinpoint the actual LOD, use [allLODs](../commands/allLODs.md) and LOD resolution as argument for selecting the LOD.
>
> Also note that similar models can have different LOD indexes, for example a soldier model differs from a model of civilian in this regard.

## Syntax

### Syntax 1

```sqf
object selectionPosition selectionName
```

**Parameters:**

- `object`: [Object](../topics/Object.md)
- `selectionName`: [String](../topics/String.md)

**Returns:** [relative position](../topics/Position.md#positionrelative) - If selection does not exist, [0, 0, 0] is returned.

### Syntax 2

*since arma3 1.50*

```sqf
object selectionPosition [selectionName, LOD, returnMode]
```

**Parameters:**

- `object`: [Object](../topics/Object.md)
- `selectionName`: [String](../topics/String.md)
- `LOD`: [String](../topics/String.md) or [Number](../topics/Number.md) - can be one of:
  - `"Memory"`
  - `"Geometry"`
  - `"FireGeometry"`
  - `"LandContact"`
  - `"HitPoints"`
  - Arma 3 v2.06 `"ViewGeometry"`
  When [Number](../topics/Number.md) is used, command searches for a LOD with the similar LOD resolution *(since arma3 2.06)*
- `returnMode`: [String](../topics/String.md) - (Optional, default `"FirstPoint"`) can be one of:
  - `"FirstPoint"`
  - `"AveragePoint"`
  - `"BoundingBox"` *(since arma3 2.08)*

**Returns:** [relative position](../topics/Position.md#positionrelative) - If selection does not exist, [0, 0, 0] is returned. If returnMode is `"BoundingBox"`, [Array](../topics/Array.md) of [Array](../topics/Array.md)s

### Syntax 3

*since arma3 2.06*

```sqf
selectionPosition [object, selectionName, LODIndex, isVisual, returnMode]
```

**Parameters:**

- `object`: [Object](../topics/Object.md)
- `selectionName`: [String](../topics/String.md)
- `LODIndex`: [Number](../topics/Number.md) - the index of the target LOD (see [allLODs](../commands/allLODs.md))
- `isVisual`: [Boolean](../topics/Boolean.md) - (Optional, default [true](../commands/true.md)) [true](../commands/true.md) for Render, [false](../commands/false.md) for Simulation time scope
- `returnMode`: [String](../topics/String.md) - (Optional, default `"FirstPoint"`) can be one of:
  - `"FirstPoint"`
  - `"AveragePoint"`
  - `"BoundingBox"` *(since arma3 2.08)*

**Returns:** [relative position](../topics/Position.md#positionrelative) - If selection does not exist, [0, 0, 0] is returned. If returnMode is `"BoundingBox"`, [Array](../topics/Array.md) of [Array](../topics/Array.md)s

## Examples

### Example 1

```sqf
_inModelPosition = player selectionPosition "head_hit";
```

### Example 2

```sqf
_inModelPosition = player selectionPosition "pelvis";
```

### Example 3

```sqf
_inModelPosition = player selectionPosition "head";
```

### Example 4

```sqf
_inModelPosition = player selectionPosition "camera";
```

### Example 5

```sqf
stomper selectionPosition ["wheel_1_1", "HitPoints", "FirstPoint"];    // [-0.774058,0.860854,-1.40365]
stomper selectionPosition ["wheel_1_1", "HitPoints", "AveragePoint"];    // [-0.597142,1.35486,-1.58345]
stomper selectionPosition ["wheel_1_1", "HitPoints", "BoundingBox"];    // [[-0.774058,0.860854,-2.07746],[-0.420225,1.84887,-1.08944]]
```

## See also

[selectionVectorDirAndUp](../commands/selectionVectorDirAndUp.md) · [modelToWorld](../commands/modelToWorld.md) · [selectionNames](../commands/selectionNames.md) · [getAllHitPointsDamage](../commands/getAllHitPointsDamage.md) · [allLODs](../commands/allLODs.md) · LOD resolutions

## Community notes

**Killzone_Kid** — 2017-06-25

Do use the filter that comes with [#Syntax 2](../commands/selectionPosition.md#syntax-2) to suit your needs. For example [player](../commands/player.md) has 3 selections called "head" and their [selectionPosition](../commands/selectionPosition.md)s are quite different from each other:

```sqf
player selectionPosition ["head", "Memory"];        // [0.173798,0.330415,1.37783]
player selectionPosition ["head", "FireGeometry"];    // [0.14375,0.206039,1.44689]
player selectionPosition ["head", "HitPoints"];    // [0.144257,0.306769,1.53471]
```

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