{"name":"surfaceNormal","operator":null,"title":"surfaceNormal","type":"command","url":"https://community.bistudio.com/wiki/surfaceNormal","revid":377547,"updated":"2026-01-02T06:54:42Z","groups":["Positions"],"status":"ok","replaced_by":[],"games":[{"game":"arma2oa","name":"Arma 2: Operation Arrowhead","version":"1.60"},{"game":"tkoh","name":"Take On Helicopters","version":"1.00"},{"game":"arma3","name":"Arma 3","version":"0.50"}],"since":{"game":"arma2oa","name":"Arma 2: Operation Arrowhead","version":"1.60"},"arma3_since":"0.50","branch":null,"locality":{"argument":null,"effect":null,"server_exec":false},"exec":null,"description":"Returns terrain's [surface normal](https://en.wikipedia.org/wiki/Normal_(geometry)) on given position.","syntaxes":[{"syntax":"surfaceNormal position","since":null,"effect":null,"exec":null,"params":[{"name":"position","type":"Position2D or Position3D","optional":false,"default":null,"description":"when using Position3D, Z is ignored","types":["Position2D","Position3D"],"since":null,"text":"position: Position2D or Position3D - when using Position3D, Z is ignored"}],"returns":{"type":"Vector3D","types":["Vector3D"],"description":null,"text":"Vector3D"},"form":"unary","operator":null,"left":null,"right":{"text":"position","types":["Position2D","Position3D"]}}],"examples":[{"text":"```sqf\n_normal = surfaceNormal [300, 500];\n```","code":["_normal = surfaceNormal [300, 500];"]},{"text":"```sqf\n_normal = surfaceNormal getPosASL player;\n```","code":["_normal = surfaceNormal getPosASL player;"]}],"multiplayer":null,"problems":null,"aliases":[],"see_also":["setVectorUp","surfaceIsWater","surfaceType"],"notes":[],"categories":["Arma 2: Operation Arrowhead: New Scripting Commands","Arma 2: Operation Arrowhead: Scripting Commands","Arma 3: Scripting Commands","Command Group: Positions","Introduced with Arma 2: Operation Arrowhead version 1.60","Scripting Commands","Take On Helicopters: Scripting Commands"]}