{"name":"distance","operator":null,"title":"distance","type":"command","url":"https://community.bistudio.com/wiki/distance","revid":377523,"updated":"2026-01-02T06:52:13Z","groups":["Math - Geometry"],"status":"ok","replaced_by":[],"games":[{"game":"ofp","name":"Operation Flashpoint","version":"1.00"},{"game":"ofpe","name":"Operation Flashpoint: Elite","version":"1.00"},{"game":"arma1","name":"Armed Assault","version":"1.00"},{"game":"arma2","name":"Arma 2","version":"1.00"},{"game":"arma2oa","name":"Arma 2: Operation Arrowhead","version":"1.50"},{"game":"tkoh","name":"Take On Helicopters","version":"1.00"},{"game":"arma3","name":"Arma 3","version":"0.50"}],"since":{"game":"ofp","name":"Operation Flashpoint","version":"1.00"},"arma3_since":"0.50","branch":null,"locality":{"argument":"global","effect":null,"server_exec":false},"exec":null,"description":"Returns a distance in meters between Objects, Positions or Locations.\n\n> [!IMPORTANT]\n> If positions are supplied as arguments, the coordinates are treated as PositionAGL. If Position2D is supplied, z is assumed 0. If you need distance between two Position3D coordinates, use vectorDistance.","syntaxes":[{"syntax":"param1 distance param2","since":null,"effect":null,"exec":null,"params":[{"name":"param1","type":"Object or PositionAGL or Position2D","optional":false,"default":null,"description":null,"types":["Object","PositionAGL","Position2D"],"since":null,"text":"param1: Object or PositionAGL or Position2D"},{"name":"param2","type":"Object or PositionAGL or Position2D","optional":false,"default":null,"description":null,"types":["Object","PositionAGL","Position2D"],"since":null,"text":"param2: Object or PositionAGL or Position2D"}],"returns":{"type":"Number","types":["Number"],"description":"distance in meters or 1e10 if distance cannot be calculated","text":"Number - distance in meters or 1e10 if distance cannot be calculated"},"form":"binary","operator":null,"left":{"text":"param1","types":["Object","PositionAGL","Position2D"]},"right":{"text":"param2","types":["Object","PositionAGL","Position2D"]}},{"syntax":"location1 distance location2","since":null,"effect":null,"exec":null,"params":[{"name":"location1","type":"Location or Position or Position2D","optional":false,"default":null,"description":null,"types":["Location","Position","Position2D"],"since":null,"text":"location1: Location or Position or Position2D"},{"name":"location2","type":"Location or Position or Position2D","optional":false,"default":null,"description":null,"types":["Location","Position","Position2D"],"since":null,"text":"location2: Location or Position or Position2D"}],"returns":{"type":"Number","types":["Number"],"description":"distance in meters or 1e10 if distance cannot be calculated","text":"Number - distance in meters or 1e10 if distance cannot be calculated"},"form":"binary","operator":null,"left":{"text":"location1","types":["Location","Position","Position2D"]},"right":{"text":"location2","types":["Location","Position","Position2D"]}},{"syntax":"a distance b","since":"arma3 2.18","effect":null,"exec":null,"params":[{"name":"a","type":"Number","optional":false,"default":null,"description":null,"types":["Number"],"since":null,"text":"a: Number"},{"name":"b","type":"Number","optional":false,"default":null,"description":null,"types":["Number"],"since":null,"text":"b: Number"}],"returns":{"type":"Number","types":["Number"],"description":"distance c calculated as c = sqrt(a * a + b * b);","text":"Number - distance c calculated as c = sqrt(a * a + b * b);"},"form":"binary","operator":null,"left":{"text":"a","types":["Number"]},"right":{"text":"b","types":["Number"]}}],"examples":[{"text":"```sqf\n_meters = player distance _object;\n```","code":["_meters = player distance _object;"]},{"text":"```sqf\n_meters = player distance [1,2,3];\n```","code":["_meters = player distance [1,2,3];"]},{"text":"```sqf\n_meters = [1,2,3] distance [4,5,6];\n```","code":["_meters = [1,2,3] distance [4,5,6];"]},{"text":"```sqf\n_meters = position player distance nearestLocation [position player, \"hill\"];\n```","code":["_meters = position player distance nearestLocation [position player, \"hill\"];"]}],"multiplayer":null,"problems":null,"aliases":[],"see_also":["distanceSqr","vectorDistance","distance2D"],"notes":[{"user":"Sudden Death","date":"2007-02-14T16:47:00Z","text":"Distance to position3D (array) does not work with Operation Flashpoint, only objects\n\nArmed Assault:\nposition3D (array) and object works"},{"user":"Rommel","date":"2010-03-10T07:54:00Z","text":"This returns the map distance, not the vector distance, [0,0,0] distance [0,0,1] can be >1 or <1, not exactly 1; unlike the vector math."},{"user":"Igneous01","date":"2012-08-03T10:15:00Z","text":"If a position in format [x, y, z] is provided for both arguments, distance also checks the z dimension as well. Ie:\nplayer distance [0,0,200]\nwill return 200, if the player is at this position at ground/sea level."},{"user":"AgentRev01","date":"2014-03-23T02:52:00Z","text":"When objects are supplied as arguments, distance is calculated from their model center (object modelToWorld [0,0,0]), and not the position returned by getPos/ATL/ASL.\n\nHowever, this is not relevant for units, as their model center matches their world position."}],"categories":["ArmA: Armed Assault: Scripting Commands","Arma 2: Operation Arrowhead: Scripting Commands","Arma 2: Scripting Commands","Arma 3: Scripting Commands","Command Group: Math - Geometry","Introduced with Operation Flashpoint version 1.00","Operation Flashpoint: Elite: Scripting Commands","Operation Flashpoint: New Scripting Commands","Operation Flashpoint: Scripting Commands","Scripting Commands","Take On Helicopters: Scripting Commands"]}