---
name: "surfaceType"
type: command
status: ok
groups: ["Positions"]
arma3_since: "0.50"
locality: {"argument": null, "effect": null, "server_exec": false}
source: https://community.bistudio.com/wiki/surfaceType
revid: 379085
updated: 2026-09-27T08:28:22Z
---

# surfaceType

*Command · Positions · Arma 3 v0.50 · introduced in Operation Flashpoint: Elite v1.00*

## Description

Returns what surface type is at the given position. For surface texture see [surfaceTexture](../commands/surfaceTexture.md) command.

> [!NOTE]
> The command returns surface type of the ground, even underneath objects such as buildings and roads

- #GRASSSOUTH
- #GRASSGENERAL
- #SANDGENERAL

- #UTGRASS - for natural surfaces
- #UTCONCRETE - for urban surfaces

- BuildingRubble
- BuildingRubble_exp
- cardboard
- cardboard_exp
- carpet
- carpet_exp
- carpet_inside
- carpet_in_exp
- concrete
- concrete_exp
- concrete_hall
- concrete_hall_exp
- concrete_inside
- concrete_in_exp
- concrete_out
- Default
- dirtrunway
- floor
- floor_exp
- floor_inside
- floor_in_exp
- GdtAsphalt
- GdtBeach
- GdtCliff
- GdtConcrete
- GdtDead
- GdtDesert
- GdtDirt
- GdtField
- GdtForest
- GdtForestMalden
- GdtForestPine
- GdtGrassDry
- GdtGrassGreen
- GdtGrassLong
- GdtGrassShort
- GdtGrassTall
- GdtGrassWild
- GdtKLCobblestone
- GdtKLDirt
- GdtKlField
- GdtKLForestCon
- GdtKLForestDec
- GdtKLGrass1
- GdtKLGrass2
- GdtKlSoil
- GdtKlStubble
- GdtKlTarmac
- GdtKlWeatheredTarmac
- GdtMarsh
- GdtMud
- GdtRedDirt
- GdtRock
- GdtRubble
- GdtSeabed
- GdtSeabedExp
- GdtSoil
- GdtStony
- GdtStonyThistle
- GdtStratisBeach
- GdtStratisConcrete
- GdtStratisDirt
- GdtStratisDryGrass
- GdtStratisForestPine
- GdtStratisGreenGrass
- GdtStratisRocky
- GdtStratisSeabed
- GdtStratisSeabedCluttered
- GdtStratisThistles
- GdtThorn
- GdtVolcano
- GdtVolcanoBeach
- GdtVRsurface01
- GdtWeed
- GdtWildField
- grid
- grid_exp
- lino
- lino_exp
- lino_in_exp
- mat_in_exp
- metalPlate
- metalPlatePressed_exp
- metalPlate_exp
- metalPlate_in_exp
- mud
- mud_exp
- parquet
- planks
- planks_exp
- planks_inside
- planks_in_exp
- road
- road_exp
- roof_tiles_exp
- rubble
- rubble_exp
- sand
- sand_exp
- softwood_in_exp
- steel
- steel_exp
- stones
- stones_exp
- straw_exp
- SurfIntConcrete
- SurfIntMetal
- SurfIntTiles
- SurfIntWood
- surfint_concrete
- surfint_metal
- surfint_tiles
- surfint_wood
- SurfMetal
- SurfRoadConcrete
- SurfRoadConcrete_exp
- SurfRoadDirt
- SurfRoadDirt_Enoch
- SurfRoadDirt_exp
- SurfRoadTarmac
- SurfRoadTarmac1_Enoch
- SurfRoadTarmac2_Enoch
- SurfRoadTarmac3_Enoch
- SurfRoadTarmac_exp
- SurfRoofTiles
- SurfRoofTin
- SurfTrailDirt_Enoch
- SurfTrailDirt_exp
- SurfWater
- SurfWood
- surf_metal
- surf_roadconcrete
- surf_roaddirt
- surf_roadtarmac
- surf_rooftiles
- surf_rooftin
- surf_wood
- TEST_SurfNormal
- tiling
- trash
- trash_exp
- Water
- wavyMetal
- wavyMetal_exp
- woodenFloor

## Syntax

```sqf
surfaceType [x, y, z or useLayerMask]
```

**Parameters:**

- `x`: [Number](../topics/Number.md) - world x coordinate of the position
- `y`: [Number](../topics/Number.md) - world y coordinate of the position
- `z or useLayerMask`: [Number](../topics/Number.md) or [Boolean](../topics/Boolean.md) - (Optional) When a number is provided (Z in 3D positions), it is ignored. When a boolean is provided, it defines whether the layer mask should be used. Using the layer mask is more accurate but slightly slower. *(since arma3 2.18)*

**Returns:** [String](../topics/String.md) - Surface type

## Examples

### Example 1

```sqf
private _surface = surfaceType [4500, 4500];
```

### Example 2

```sqf
hint surfaceType getPosWorld player;
```

### Example 3

```sqf
private _pos = getPosWorld player;
_pos set [2, true]; // use layer mask
surfaceType _pos;
```

## See also

[surfaceTexture](../commands/surfaceTexture.md) · [surfaceIsWater](../commands/surfaceIsWater.md) · [surfaceNormal](../commands/surfaceNormal.md) · [getAllEnvSoundControllers](../commands/getAllEnvSoundControllers.md)

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