{"name":"BIS_fnc_randomPos","title":"BIS fnc randomPos","type":"function","url":"https://community.bistudio.com/wiki/BIS_fnc_randomPos","revid":349485,"updated":"2023-11-08T17:09:03Z","groups":["Positions"],"status":"ok","games":{"tkoh":"1.00","arma3":"0.50"},"since":"tkoh 1.00","arma3_since":"0.50","description":"Selects random position according to given params within given area","syntaxes":[{"syntax":"[whitelist, blacklist, code] call BIS_fnc_randomPos","params":[{"name":"whitelist","type":"Array","description":"whitelisted areas. If not given, whole map is used. Areas can be:\n\n- Object - trigger\n- String - marker\n- Array - in format [center, radius] or [center, [a, b, angle, rect]]\n- Location - location","type_expr":"Array"},{"name":"blacklist","type":"Array","optional":true,"default":"`[]`","description":"blacklisted areas. If not given, water is blacklisted. Areas can be:\n\n- Object - trigger\n- String - marker name or special tags names: \"water\" - exclude water, \"ground\" - exclude land\n- Array - in format [center, radius] or [center, [a, b, angle, rect]]\n- Location - location","type_expr":"Array","text":"blacklist: Array - (Optional, default `[]`) blacklisted areas. If not given, water is blacklisted. Areas can be:\n\n- Object - trigger\n- String - marker name or special tags names: \"water\" - exclude water, \"ground\" - exclude land\n- Array - in format [center, radius] or [center, [a, b, angle, rect]]\n- Location - location"},{"name":"code","type":"Code","optional":true,"default":"`{ true }`","description":"custom condition which should return true for current position candidate passed in _this variable to be accepted. If not specified all candidates are accepted","type_expr":"Code","text":"code: Code - (Optional, default `{ true }`) custom condition which should return true for current position candidate passed in _this variable to be accepted. If not specified all candidates are accepted"}],"returns":{"type":"Array","type_expr":"Array","description":"position candidate in format [x,y,z] or [0,0] if position cannot be found"}}],"examples":[{"code":["private _randomPosMapNoWater = [] call BIS_fnc_randomPos;"]},{"code":["private _randomPosMapNoWater = [nil, [\"water\"]] call BIS_fnc_randomPos;"]},{"code":["private _randomPosMapNoLand = [nil, [\"ground\"]] call BIS_fnc_randomPos;"]},{"code":["private _randomPosMap = [nil, []] call BIS_fnc_randomPos;"]},{"code":["private _randomPosAroundPlayer = [[[position player, 50]], []] call BIS_fnc_randomPos;"]}],"see_also":["BIS_fnc_randomPosTrigger","BIS_fnc_getArea","BIS_fnc_findSafePos"],"notes":[{"user":"Tankbuster","date":"2020-03-30T21:33:00Z","text":"The code parameter here can be quite powerful.\nIf using Example 5 above, adding code as below will make the returned positions always be on a road.\n\n```sqf\nprivate _randomRoadPosAroundPlayer = [[[position player, 50]], [], { isOnRoad _this }] call BIS_fnc_randomPos;\n```"}]}