{"name":"distance","title":"distance","type":"command","url":"https://community.bistudio.com/wiki/distance","revid":377523,"updated":"2026-01-02T06:52:13Z","groups":["Math - Geometry"],"status":"ok","games":{"ofp":"1.00","ofpe":"1.00","arma1":"1.00","arma2":"1.00","arma2oa":"1.50","tkoh":"1.00","arma3":"0.50"},"since":"ofp 1.00","arma3_since":"0.50","locality":{"argument":"global"},"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","params":[{"name":"param1","type":"Object or PositionAGL or Position2D","type_expr":"Object | PositionAGL | Position2D"},{"name":"param2","type":"Object or PositionAGL or Position2D","type_expr":"Object | PositionAGL | Position2D"}],"returns":{"type":"Number","type_expr":"Number","description":"distance in meters or 1e10 if distance cannot be calculated"},"form":"binary","left":{"text":"param1"},"right":{"text":"param2"}},{"syntax":"location1 distance location2","params":[{"name":"location1","type":"Location or Position or Position2D","type_expr":"Location | Position | Position2D"},{"name":"location2","type":"Location or Position or Position2D","type_expr":"Location | Position | Position2D"}],"returns":{"type":"Number","type_expr":"Number","description":"distance in meters or 1e10 if distance cannot be calculated"},"form":"binary","left":{"text":"location1"},"right":{"text":"location2"}},{"syntax":"a distance b","since":"arma3 2.18","params":[{"name":"a","type":"Number","type_expr":"Number"},{"name":"b","type":"Number","type_expr":"Number"}],"returns":{"type":"Number","type_expr":"Number","description":"distance c calculated as c = sqrt(a * a + b * b);"},"form":"binary","left":{"text":"a"},"right":{"text":"b"}}],"examples":[{"code":["_meters = player distance _object;"]},{"code":["_meters = player distance [1,2,3];"]},{"code":["_meters = [1,2,3] distance [4,5,6];"]},{"code":["_meters = position player distance nearestLocation [position player, \"hill\"];"]}],"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.\nHowever, this is not relevant for units, as their model center matches their world position."}]}