---
name: "surfaceNormal"
type: command
status: ok
groups: ["Positions"]
arma3_since: "0.50"
locality: {"argument": null, "effect": null, "server_exec": false}
source: https://community.bistudio.com/wiki/surfaceNormal
revid: 377547
updated: 2026-01-02T06:54:42Z
---

# surfaceNormal

*Command · Positions · Arma 3 v0.50 · introduced in Arma 2: Operation Arrowhead v1.60*

## Description

Returns terrain's [surface normal](https://en.wikipedia.org/wiki/Normal_(geometry)) on given position.

## Syntax

```sqf
surfaceNormal position
```

**Parameters:**

- `position`: [Position2D](../topics/Position.md#introduction) or [Position3D](../topics/Position.md#introduction) - when using [Position3D](../topics/Position.md#introduction), Z is ignored

**Returns:** [Vector3D](../topics/Vector3D.md)

## Examples

### Example 1

```sqf
_normal = surfaceNormal [300, 500];
```

### Example 2

```sqf
_normal = surfaceNormal getPosASL player;
```

## See also

[setVectorUp](../commands/setVectorUp.md) · [surfaceIsWater](../commands/surfaceIsWater.md) · [surfaceType](../commands/surfaceType.md)

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