{"name":"checkVisibility","operator":null,"title":"checkVisibility","type":"command","url":"https://community.bistudio.com/wiki/checkVisibility","revid":377827,"updated":"2026-01-03T04:27:56Z","groups":["Math - Geometry"],"status":"ok","replaced_by":[],"games":[{"game":"arma3","name":"Arma 3","version":"1.56"}],"since":{"game":"arma3","name":"Arma 3","version":"1.56"},"arma3_since":"1.56","branch":null,"locality":{"argument":null,"effect":null,"server_exec":false},"exec":null,"description":"| Affected by | Not affected by |\n|---|---|\n| - terrain grid<br>- obstacles<br>- particles<br>(with `blockAIVisibility = 1`) | - daylight<br>- distance<br>- overcast<br>- fog |\n\nChecks if one position is visible from another position and how much.\n\n> [!NOTE]\n> Particles that have `blockAIVisibility` set to 1 will influence the result, but will never make checkVisibility return 0; an extremely small number will be returned instead.","syntaxes":[{"syntax":"[ignore, LOD, ignore2] checkVisibility [beg, end]","since":null,"effect":null,"exec":null,"params":[{"name":"ignore","type":"Object","optional":false,"default":null,"description":"object to exclude from calculations","types":["Object"],"since":null,"text":"ignore: Object - object to exclude from calculations"},{"name":"LOD","type":"String","optional":false,"default":null,"description":"level of details to use. Possible values are: `\"FIRE\"`, `\"VIEW\"`, `\"GEOM\"`, `\"IFIRE\"`, and Arma 3 v2.02 `\"PHYSX\"`","types":["String"],"since":null,"text":"LOD: String - level of details to use. Possible values are: `\"FIRE\"`, `\"VIEW\"`, `\"GEOM\"`, `\"IFIRE\"`, and Arma 3 v2.02 `\"PHYSX\"`"},{"name":"ignore2","type":"Object","optional":true,"default":"objNull","description":"second object to exclude from calculations","types":["Object"],"since":"arma3 1.62","text":"ignore2: Object - (Optional, default objNull) second object to exclude from calculations"},{"name":"beg","type":"PositionASL","optional":false,"default":null,"description":"start position","types":["PositionASL"],"since":null,"text":"beg: PositionASL - start position"},{"name":"end","type":"PositionASL","optional":false,"default":null,"description":"end position","types":["PositionASL"],"since":null,"text":"end: PositionASL - end position"}],"returns":{"type":"Number","types":["Number"],"description":"how much end position is visible to start position in range 0..1, where 1 is fully visible.","text":"Number - how much end position is visible to start position in range 0..1, where 1 is fully visible."},"form":"binary","operator":null,"left":{"text":"[ignore, LOD, ignore2]","types":["Array"]},"right":{"text":"[beg, end]","types":["Array"]}}],"examples":[{"text":"```sqf\nprivate _canSee = [objNull, \"VIEW\"] checkVisibility [eyePos player, eyePos unit1];\n```","code":["private _canSee = [objNull, \"VIEW\"] checkVisibility [eyePos player, eyePos unit1];"]}],"multiplayer":null,"problems":null,"aliases":[],"see_also":["lineIntersectsWith","lineIntersectsSurfaces","lineIntersectsObjs","intersect","terrainIntersect","terrainIntersectASL","terrainIntersectAtASL","lineIntersects","cursorObject","cursorTarget","disableRemoteSensors"],"notes":[],"categories":["Arma 3: New Scripting Commands","Arma 3: Scripting Commands","Command Group: Math - Geometry","Introduced with Arma 3 version 1.56","Scripting Commands"]}