diff --git a/BepInEx/plugins/DanW-SPTQuestingBots/SPTQuestingBots.dll b/BepInEx/plugins/DanW-SPTQuestingBots/SPTQuestingBots.dll new file mode 100644 index 0000000..97a1928 Binary files /dev/null and b/BepInEx/plugins/DanW-SPTQuestingBots/SPTQuestingBots.dll differ diff --git a/BepInEx/plugins/DanW-SPTQuestingBots/quests/standard/bigmap.json b/BepInEx/plugins/DanW-SPTQuestingBots/quests/standard/bigmap.json new file mode 100644 index 0000000..3f09a85 --- /dev/null +++ b/BepInEx/plugins/DanW-SPTQuestingBots/quests/standard/bigmap.json @@ -0,0 +1,5538 @@ +[ + { + "repeatable": false, + "minLevel": 0, + "maxLevel": 99, + "maxBots": 3, + "desirability": 45, + "requiredSwitches": { + "custom_DesignStuff_00034": false + }, + "name": "Power Switch", + "objectives" : [ + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 200, + "maxRunDistance": 6, + "lootAfterCompleting": "Inhibit", + "steps": [ + { + "waitTimeAfterCompleting": 1, + "position" : { + "x": 352.194763, + "y": 1.23055232, + "z": -39.12735 + } + }, + { + "stepType" : "ToggleSwitch", + "switchID" : "custom_DesignStuff_00034", + "position" : { + "x": 352.194763, + "y": 1.23055232, + "z": -39.12735 + } + } + ] + } + ] + }, + { + "repeatable": false, + "isCamping": true, + "minLevel": 15, + "maxLevel": 99, + "maxBots": 2, + "maxBotsInGroup": 1, + "desirability": 35, + "maxRaidET": 90, + "pmcsOnly": true, + "name": "Marked Room Rush", + "forbiddenWeapons" : [ "sniperRifle" ], + "objectives" : [ + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 300, + "maxRunDistance": 7, + "steps": [ + { + "waitTimeAfterCompleting": 5, + "position" : { + "x": 185.217819, + "y": 5.831592, + "z": 183.20871 + } + }, + { + "stepType" : "HoldAtPosition", + "maxDistance": 3, + "minElapsedTime": { + "min": 15, + "max": 30 + }, + "position" : { + "x": 185.217819, + "y": 5.831592, + "z": 183.20871 + } + }, + { + "waitTimeAfterCompleting": 1, + "position" : { + "x": 173.107376, + "y": 5.831357, + "z": 184.540375 + } + }, + { + "waitTimeAfterCompleting": 1, + "stepType" : "Ambush", + "minElapsedTime": { + "min": 180, + "max": 420 + }, + "position" : { + "x": 173.107376, + "y": 5.831357, + "z": 184.540375 + }, + "lookToPosition" : { + "x": 180.426086, + "y": 5.831575, + "z": 183.350052 + } + }, + { + "stepType" : "RequestExtract", + "position" : { + "x": 173.107376, + "y": 5.831357, + "z": 184.540375 + } + } + ] + } + ] + }, + { + "repeatable": false, + "minLevel": 0, + "maxLevel": 99, + "maxBots": 3, + "desirability": 50, + "maxRaidET": 90, + "pmcsOnly": true, + "name": "Crackhouse Rush", + "objectives" : [ + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 300, + "maxRunDistance": 5, + "steps": [ + { + "position" : { + "x": 84.9620743, + "y": 1.45260346, + "z": -145.769485 + } + } + ] + } + ] + }, + { + "repeatable": false, + "minLevel": 0, + "maxLevel": 99, + "maxBots": 3, + "desirability": 50, + "maxRaidET": 90, + "pmcsOnly": true, + "name": "Dorms 2 Story Rush", + "objectives" : [ + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 300, + "maxRunDistance": 8, + "steps": [ + { + "position" : { + "x": 229.8411, + "y": -0.128419861, + "z": 141.852676 + } + } + ] + } + ] + }, + { + "repeatable": false, + "minLevel": 0, + "maxLevel": 99, + "maxBots": 3, + "desirability": 50, + "maxRaidET": 90, + "pmcsOnly": true, + "name": "Dorms 3 Story Rush", + "objectives" : [ + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 300, + "maxRunDistance": 6, + "steps": [ + { + "position" : { + "x": 178.223465, + "y": -0.168418393, + "z": 155.413559 + } + } + ] + } + ] + }, + { + "repeatable": false, + "minLevel": 0, + "maxLevel": 99, + "maxBots": 3, + "desirability": 50, + "maxRaidET": 90, + "pmcsOnly": true, + "name": "Big Red Rush", + "objectives" : [ + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 300, + "maxRunDistance": 12, + "steps": [ + { + "position" : { + "x": -204.123047, + "y": 1.08683634, + "z": -105.5931 + } + } + ] + } + ] + }, + { + "repeatable": false, + "minLevel": 0, + "maxLevel": 99, + "maxBots": 2, + "desirability": 30, + "name": "Flash-Drive Van", + "objectives" : [ + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 500, + "steps": [ + { + "position" : { + "x": 518.4734, + "y": 1.07456779, + "z": -98.7695 + } + } + ] + } + ] + }, + { + "repeatable": true, + "minLevel": 0, + "maxLevel": 99, + "maxBots": 3, + "desirability": 40, + "canRunBetweenObjectives": false, + "name": "Crackhouse", + "objectives" : [ + { + "repeatable": true, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 9999, + "maxRunDistance": 4, + "steps": [ + { + "position" : { + "x": 79.2678, + "y": 1.47550476, + "z": -155.5014 + } + } + ] + }, + { + "repeatable": true, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 9999, + "maxRunDistance": 6, + "steps": [ + { + "position" : { + "x": 84.9620743, + "y": 1.45260346, + "z": -145.769485 + } + } + ] + }, + { + "repeatable": true, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 9999, + "maxRunDistance": 6, + "steps": [ + { + "position" : { + "x": 87.2804, + "y": 4.672582, + "z": -150.3848 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 9999, + "maxRunDistance": 12, + "steps": [ + { + "position" : { + "x": 87.76665, + "y": 1.45260358, + "z": -149.394943 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 9999, + "maxRunDistance": 4, + "steps": [ + { + "position" : { + "x": 81.71222, + "y": 1.47550452, + "z": -162.108887 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 9999, + "maxRunDistance": 6, + "steps": [ + { + "position" : { + "x": 79.30274, + "y": 4.67290735, + "z": -166.121521 + } + }, + { + "position" : { + "x": 78.8410339, + "y": 4.67266846, + "z": -155.937729 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 9999, + "maxRunDistance": 6, + "steps": [ + { + "position" : { + "x": 78.02431, + "y": 4.67261553, + "z": -152.764526 + } + } + ] + } + ] + }, + { + "repeatable": true, + "minLevel": 0, + "maxLevel": 99, + "maxBots": 3, + "desirability": 40, + "canRunBetweenObjectives": false, + "name": "Dorms 2 Story", + "objectives" : [ + { + "repeatable": true, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 9999, + "maxRunDistance": 7, + "steps": [ + { + "position" : { + "x": 229.8411, + "y": -0.128419861, + "z": 141.852676 + } + } + ] + }, + { + "repeatable": true, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 9999, + "maxRunDistance": 10, + "steps": [ + { + "position" : { + "x": 233.03775, + "y": -0.129546389, + "z": 147.192276 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 9999, + "maxRunDistance": 10, + "steps": [ + { + "position" : { + "x": 226.179886, + "y": -0.128000677, + "z": 135.263123 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 9999, + "maxRunDistance": 4, + "steps": [ + { + "position" : { + "x": 224.064438, + "y": -0.128402025, + "z": 139.567535 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 9999, + "maxRunDistance": 5, + "steps": [ + { + "position" : { + "x": 225.945419, + "y": -0.128403008, + "z": 145.372391 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 9999, + "maxRunDistance": 10, + "steps": [ + { + "position" : { + "x": 227.33728, + "y": -0.128400922, + "z": 147.81781 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 9999, + "maxRunDistance": 7, + "steps": [ + { + "position" : { + "x": 228.6046, + "y": -0.128400892, + "z": 160.147858 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 9999, + "maxRunDistance": 10, + "steps": [ + { + "position" : { + "x": 237.594376, + "y": -0.128402919, + "z": 160.0026 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 9999, + "maxRunDistance": 10, + "steps": [ + { + "position" : { + "x": 224.728409, + "y": 2.871599, + "z": 129.313217 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 9999, + "maxRunDistance": 10, + "steps": [ + { + "position" : { + "x": 236.199188, + "y": 2.87159872, + "z": 156.5993 + } + } + ] + } + ] + }, + { + "repeatable": true, + "minLevel": 0, + "maxLevel": 99, + "maxBots": 4, + "desirability": 40, + "canRunBetweenObjectives": false, + "name": "Dorms 3 Story", + "objectives" : [ + { + "repeatable": true, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 9999, + "maxRunDistance": 6, + "steps": [ + { + "position" : { + "x": 178.223465, + "y": -0.168418393, + "z": 155.413559 + } + } + ] + }, + { + "repeatable": true, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 9999, + "maxRunDistance": 12, + "steps": [ + { + "position" : { + "x": 170.328674, + "y": -0.167545736, + "z": 162.487366 + } + } + ] + }, + { + "repeatable": true, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 9999, + "maxRunDistance": 12, + "steps": [ + { + "waitTimeAfterCompleting": 2, + "position" : { + "x": 182.106155, + "y": -0.168424651, + "z": 171.605209 + } + }, + { + "stepType" : "HoldAtPosition", + "maxDistance": 3, + "minElapsedTime": { + "min": 30, + "max": 120 + }, + "position" : { + "x": 182.106155, + "y": -0.168424651, + "z": 171.605209 + } + } + ] + }, + { + "repeatable": true, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 9999, + "maxRunDistance": 4, + "steps": [ + { + "position" : { + "x": 171.035355, + "y": 2.83199644, + "z": 147.6488 + } + } + ] + }, + { + "repeatable": true, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 9999, + "maxRunDistance": 12, + "steps": [ + { + "position" : { + "x": 171.712265, + "y": 2.83025265, + "z": 168.8498 + } + } + ] + }, + { + "repeatable": true, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 9999, + "maxRunDistance": 6, + "steps": [ + { + "position" : { + "x": 180.4981, + "y": 5.83159971, + "z": 145.925919 + } + } + ] + }, + { + "repeatable": true, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 9999, + "maxRunDistance": 12, + "steps": [ + { + "position" : { + "x": 195.7651, + "y": 5.83152, + "z": 172.441666 + } + }, + { + "position" : { + "x": 194.875687, + "y": 5.8315177, + "z": 182.568375 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 9999, + "maxRunDistance": 12, + "steps": [ + { + "position" : { + "x": 194.466476, + "y": -0.170002818, + "z": 179.937134 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 9999, + "maxRunDistance": 6, + "steps": [ + { + "position" : { + "x": 171.277985, + "y": 2.83159876, + "z": 150.556061 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 9999, + "maxRunDistance": 12, + "steps": [ + { + "waitTimeAfterCompleting": 2, + "position" : { + "x": 172.2655, + "y": 2.82965255, + "z": 172.626465 + } + }, + { + "stepType" : "Ambush", + "minElapsedTime": { + "min": 30, + "max": 120 + }, + "position" : { + "x": 172.2655, + "y": 2.82965255, + "z": 172.626465 + }, + "lookToPosition" : { + "x": 179.367477, + "y": 2.83157659, + "z": 173.356155 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 9999, + "maxRunDistance": 4, + "steps": [ + { + "position" : { + "x": 175.440323, + "y": 2.83158565, + "z": 183.91185 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 9999, + "maxRunDistance": 12, + "steps": [ + { + "position" : { + "x": 194.321274, + "y": 2.83159661, + "z": 179.440414 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 9999, + "maxRunDistance": 7, + "steps": [ + { + "position" : { + "x": 185.1907, + "y": 5.831592, + "z": 182.797409 + } + } + ] + } + ] + }, + { + "repeatable": true, + "minLevel": 0, + "maxLevel": 99, + "maxBots": 3, + "desirability": 40, + "canRunBetweenObjectives": false, + "name": "Big Red", + "objectives" : [ + { + "repeatable": true, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 9999, + "maxRunDistance": 12, + "steps": [ + { + "position" : { + "x": -204.123047, + "y": 1.08683634, + "z": -105.5931 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 9999, + "maxRunDistance": 12, + "steps": [ + { + "position" : { + "x": -219.598053, + "y": 1.086847, + "z": -149.115952 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 9999, + "maxRunDistance": 12, + "steps": [ + { + "position" : { + "x": -203.100311, + "y": 1.08684671, + "z": -142.889389 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 9999, + "maxRunDistance": 12, + "steps": [ + { + "position" : { + "x": -202.459412, + "y": 7.04599857, + "z": -100.497879 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 9999, + "maxRunDistance": 12, + "steps": [ + { + "position" : { + "x": -202.986725, + "y": 7.04599953, + "z": -106.991928 + } + } + ] + } + ] + }, + { + "repeatable": true, + "minLevel": 0, + "maxLevel": 99, + "maxBots": 3, + "desirability": 40, + "canRunBetweenObjectives": false, + "name": "Fortress", + "objectives" : [ + { + "repeatable": true, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 9999, + "maxRunDistance": 10, + "steps": [ + { + "position" : { + "x": 198.327011, + "y": 1.73051393, + "z": -114.268822 + } + } + ] + }, + { + "repeatable": true, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 9999, + "maxRunDistance": 10, + "steps": [ + { + "position" : { + "x": 204.6892, + "y": 7.730347, + "z": -113.15036 + } + } + ] + }, + { + "repeatable": true, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 9999, + "maxRunDistance": 10, + "steps": [ + { + "position" : { + "x": 206.295563, + "y": 7.733179, + "z": -98.26988 + } + } + ] + }, + { + "repeatable": true, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 9999, + "maxRunDistance": 6, + "steps": [ + { + "position" : { + "x": 194.3941, + "y": 7.73258257, + "z": -130.866074 + } + } + ] + }, + { + "repeatable": true, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 9999, + "maxRunDistance": 6, + "steps": [ + { + "position" : { + "x": 216.440857, + "y": 7.73369551, + "z": -143.118912 + } + } + ] + }, + { + "repeatable": true, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 9999, + "maxRunDistance": 14, + "steps": [ + { + "position" : { + "x": 192.952789, + "y": 7.733693, + "z": -102.645027 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 9999, + "maxRunDistance": 1, + "steps": [ + { + "position" : { + "x": 198.195831, + "y": 1.73052108, + "z": -149.103973 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 9999, + "maxRunDistance": 10, + "steps": [ + { + "position" : { + "x": 205.5561, + "y": 1.78782523, + "z": -125.002884 + } + }, + { + "position" : { + "x": 204.4628, + "y": 1.83101928, + "z": -122.759911 + } + }, + { + "position" : { + "x": 203.977112, + "y": 1.73226619, + "z": -117.51429 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 9999, + "maxRunDistance": 14, + "steps": [ + { + "position" : { + "x": 190.1115, + "y": 1.73051548, + "z": -103.7074 + } + }, + { + "position" : { + "x": 188.107941, + "y": 1.73051727, + "z": -101.955849 + } + }, + { + "position" : { + "x": 190.327271, + "y": 1.73051584, + "z": -101.181076 + } + }, + { + "position" : { + "x": 196.421982, + "y": 1.73051262, + "z": -102.10202 + } + } + ] + } + ] + }, + { + "repeatable": false, + "minLevel": 0, + "maxLevel": 99, + "maxBots": 2, + "desirability": 20, + "canRunBetweenObjectives": false, + "name": "Storage Building", + "objectives" : [ + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 300, + "maxRunDistance": 7, + "steps": [ + { + "position" : { + "x": 384.571381, + "y": 1.34112751, + "z": -107.580086 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 500, + "maxRunDistance": 13, + "steps": [ + { + "position" : { + "x": 374.989, + "y": 1.34112656, + "z": -95.73247 + } + } + ] + } + ] + }, + { + "repeatable": false, + "minLevel": 0, + "maxLevel": 99, + "maxBots": 2, + "chanceForSelecting": 20, + "priority": 20, + "desirability": 20, + "canRunBetweenObjectives": false, + "name": "Warehouse 4", + "objectives" : [ + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 300, + "maxRunDistance": 15, + "steps": [ + { + "position" : { + "x": 345.4103, + "y": 1.22812033, + "z": -79.51533 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 300, + "maxRunDistance": 15, + "steps": [ + { + "position" : { + "x": 339.2717, + "y": 1.22811937, + "z": -82.36216 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 300, + "maxRunDistance": 15, + "steps": [ + { + "position" : { + "x": 324.729462, + "y": 2.47084665, + "z": -61.58483 + } + } + ] + } + ] + }, + { + "repeatable": true, + "minLevel": 5, + "maxLevel": 99, + "maxBots": 2, + "desirability": 50, + "name": "Short Cut", + "objectives" : [ + { + "repeatable": true, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 200, + "steps": [ + { + "position" : { + "x": 360.01532, + "y": 1.24000311, + "z": -12.9534025 + } + } + ] + } + ] + }, + { + "repeatable": false, + "minLevel": 0, + "maxLevel": 99, + "maxBots": 2, + "desirability": 20, + "canRunBetweenObjectives": false, + "name": "Container Building", + "objectives" : [ + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 300, + "maxRunDistance": 6, + "steps": [ + { + "position" : { + "x": 464.792725, + "y": 2.59835219, + "z": -64.05687 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 300, + "maxRunDistance": 8, + "steps": [ + { + "position" : { + "x": 467.3879, + "y": 2.78056264, + "z": -50.3472481 + } + } + ] + } + ] + }, + { + "repeatable": false, + "minLevel": 0, + "maxLevel": 99, + "maxBots": 3, + "desirability": 25, + "canRunBetweenObjectives": false, + "name": "Repair Shop", + "objectives" : [ + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 750, + "maxRunDistance": 14, + "steps": [ + { + "position" : { + "x": 560.784668, + "y": 1.38750172, + "z": -86.94279 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 750, + "maxRunDistance": 14, + "steps": [ + { + "position" : { + "x": 565.355652, + "y": 1.38750243, + "z": -49.914 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 750, + "maxRunDistance": 14, + "steps": [ + { + "position" : { + "x": 564.5353, + "y": 6.72268724, + "z": -80.15614 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 750, + "maxRunDistance": 14, + "steps": [ + { + "position" : { + "x": 573.7532, + "y": 6.72044325, + "z": -81.47859 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 750, + "maxRunDistance": 14, + "steps": [ + { + "position" : { + "x": 566.521057, + "y": 6.72074652, + "z": -89.9269562 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 750, + "maxRunDistance": 14, + "steps": [ + { + "position" : { + "x": 564.0532, + "y": 6.675258, + "z": -55.09733 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 750, + "maxRunDistance": 14, + "steps": [ + { + "position" : { + "x": 565.5612, + "y": 6.675257, + "z": -50.6982346 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 750, + "maxRunDistance": 6, + "steps": [ + { + "position" : { + "x": 577.8296, + "y": 6.67525625, + "z": -51.30985 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 750, + "maxRunDistance": 14, + "steps": [ + { + "position" : { + "x": 567.806763, + "y": 6.68160629, + "z": -57.26639 + } + } + ] + } + ] + }, + { + "repeatable": false, + "minLevel": 0, + "maxLevel": 99, + "maxBots": 2, + "desirability": 15, + "name": "Admin Gate", + "objectives" : [ + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 300, + "steps": [ + { + "position" : { + "x": 670.3193, + "y": 1.06621742, + "z": -50.53226 + } + } + ] + } + ] + }, + { + "repeatable": false, + "minLevel": 0, + "maxLevel": 99, + "maxBots": 2, + "desirability": 15, + "name": "Factory Far Corner", + "objectives" : [ + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 300, + "steps": [ + { + "position" : { + "x": 656.911865, + "y": 1.19195032, + "z": -150.099213 + } + } + ] + } + ] + }, + { + "repeatable": false, + "minLevel": 0, + "maxLevel": 99, + "maxBots": 2, + "desirability": 20, + "canRunBetweenObjectives": false, + "name": "Glass Building", + "objectives" : [ + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 500, + "maxRunDistance": 3, + "steps": [ + { + "position" : { + "x": 604.449, + "y": 1.44049871, + "z": -133.874451 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 500, + "maxRunDistance": 12, + "steps": [ + { + "position" : { + "x": 621.847351, + "y": 1.44049513, + "z": -126.365074 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 500, + "maxRunDistance": 3, + "steps": [ + { + "position" : { + "x": 603.1984, + "y": 4.6037035, + "z": -123.357796 + } + }, + { + "position" : { + "x": 609.6877, + "y": 4.60370445, + "z": -123.416328 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 750, + "maxRunDistance": 12, + "steps": [ + { + "position" : { + "x": 622.045, + "y": 4.603695, + "z": -125.294792 + } + } + ] + } + ] + }, + { + "repeatable": false, + "minLevel": 0, + "maxLevel": 99, + "maxBots": 2, + "desirability": 15, + "canRunBetweenObjectives": false, + "name": "Smokestack", + "objectives" : [ + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 300, + "maxRunDistance": 4, + "steps": [ + { + "position" : { + "x": 573.8961, + "y": 1.38278055, + "z": -114.94957 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 300, + "maxRunDistance": 15, + "steps": [ + { + "position" : { + "x": 570.776855, + "y": 9.183576, + "z": -125.470184 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 300, + "maxRunDistance": 15, + "steps": [ + { + "position" : { + "x": 554.2981, + "y": 4.2049284, + "z": -125.835266 + } + } + ] + } + ] + }, + { + "repeatable": true, + "minLevel": 0, + "maxLevel": 99, + "maxBots": 2, + "desirability": 25, + "name": "Scav Checkpoint", + "objectives" : [ + { + "repeatable": true, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 300, + "steps": [ + { + "position" : { + "x": 647.669434, + "y": -0.169173911, + "z": -18.5058174 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 300, + "steps": [ + { + "position" : { + "x": 654.884, + "y": 0.246301517, + "z": -14.8691044 + } + } + ] + } + ] + }, + { + "repeatable": false, + "minLevel": 0, + "maxLevel": 99, + "maxBots": 2, + "desirability": 25, + "name": "Checkpoint", + "objectives" : [ + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 500, + "steps": [ + { + "position" : { + "x": 577.929138, + "y": -0.560220242, + "z": -3.5017283 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 500, + "steps": [ + { + "position" : { + "x": 580.9497, + "y": -0.05667865, + "z": 4.292588 + } + } + ] + } + ] + }, + { + "repeatable": false, + "minLevel": 0, + "maxLevel": 99, + "maxBots": 2, + "desirability": 25, + "name": "Military Base CP", + "objectives" : [ + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 300, + "steps": [ + { + "position" : { + "x": 661.7088, + "y": 1.08081281, + "z": 126.102051 + } + } + ] + } + ] + }, + { + "repeatable": true, + "minLevel": 0, + "maxLevel": 99, + "maxBots": 3, + "desirability": 25, + "name": "Passage between Rocks", + "objectives" : [ + { + "repeatable": true, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 300, + "steps": [ + { + "position" : { + "x": 560.0525, + "y": 12.088109, + "z": 163.370117 + } + } + ] + } + ] + }, + { + "repeatable": false, + "minLevel": 0, + "maxLevel": 99, + "maxBots": 3, + "desirability": 30, + "name": "Substation", + "objectives" : [ + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 500, + "steps": [ + { + "position" : { + "x": 514.9538, + "y": 13.9506426, + "z": 123.623726 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 500, + "steps": [ + { + "position" : { + "x": 507.2564, + "y": 14.0427475, + "z": 117.086273 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 500, + "steps": [ + { + "position" : { + "x": 500.7058, + "y": 14.7876511, + "z": 104.094391 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 500, + "steps": [ + { + "position" : { + "x": 503.134369, + "y": 15.1137123, + "z": 92.669014 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 500, + "steps": [ + { + "position" : { + "x": 492.3563, + "y": 15.7039671, + "z": 104.129562 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 500, + "steps": [ + { + "position" : { + "x": 492.299683, + "y": 14.1915388, + "z": 128.688919 + } + } + ] + } + ] + }, + { + "repeatable": true, + "minLevel": 0, + "maxLevel": 99, + "maxBots": 2, + "desirability": 25, + "name": "Train Car", + "objectives" : [ + { + "repeatable": true, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 300, + "steps": [ + { + "position" : { + "x": 454.71344, + "y": 4.866514, + "z": 178.252792 + } + } + ] + } + ] + }, + { + "repeatable": false, + "minLevel": 0, + "maxLevel": 99, + "maxBots": 3, + "desirability": 25, + "name": "Antenna", + "objectives" : [ + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 300, + "steps": [ + { + "position" : { + "x": 393.525818, + "y": 15.0034666, + "z": 205.37262 + } + } + ] + } + ] + }, + { + "repeatable": true, + "minLevel": 0, + "maxLevel": 99, + "maxBots": 3, + "desirability": 30, + "name": "Dorms Camp 1", + "objectives" : [ + { + "repeatable": true, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 500, + "steps": [ + { + "position" : { + "x": 110.660751, + "y": -2.82671046, + "z": 159.81427 + } + } + ] + } + ] + }, + { + "repeatable": true, + "minLevel": 0, + "maxLevel": 99, + "maxBots": 3, + "desirability": 30, + "name": "Dorms Camp 2", + "objectives" : [ + { + "repeatable": true, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 500, + "steps": [ + { + "position" : { + "x": 303.2833, + "y": 4.32617331, + "z": 155.063446 + } + } + ] + } + ] + }, + { + "repeatable": true, + "minLevel": 0, + "maxLevel": 99, + "maxBots": 2, + "desirability": 30, + "name": "North Shack by Big Red", + "objectives" : [ + { + "repeatable": true, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 500, + "steps": [ + { + "position" : { + "x": -183.91925, + "y": 1.72504163, + "z": -186.796158 + } + } + ] + } + ] + }, + { + "repeatable": true, + "minLevel": 0, + "maxLevel": 99, + "maxBots": 2, + "desirability": 30, + "name": "South Shack by Big Red", + "objectives" : [ + { + "repeatable": true, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 500, + "steps": [ + { + "position" : { + "x": -203.105637, + "y": 1.17891312, + "z": -32.87849 + } + } + ] + } + ] + }, + { + "repeatable": false, + "minLevel": 0, + "maxLevel": 99, + "maxBots": 2, + "desirability": 30, + "name": "Storage", + "objectives" : [ + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 500, + "steps": [ + { + "position" : { + "x": -253.786942, + "y": 0.8812928, + "z": -64.5422058 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 500, + "steps": [ + { + "position" : { + "x": -252.608643, + "y": 0.9686151, + "z": -90.43699 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 500, + "steps": [ + { + "position" : { + "x": -270.975677, + "y": 1.00934827, + "z": -115.456215 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 500, + "steps": [ + { + "position" : { + "x": -295.115, + "y": 0.9198428, + "z": -117.175186 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 500, + "steps": [ + { + "position" : { + "x": -293.1717, + "y": 0.9609374, + "z": -141.540649 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 500, + "steps": [ + { + "position" : { + "x": -293.602844, + "y": 0.881743968, + "z": -173.603668 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 500, + "steps": [ + { + "position" : { + "x": -271.706543, + "y": 0.850721836, + "z": -168.842133 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 500, + "doorIDToUnlock": "trunk_custom_Garage_00014", + "fixedPositionToUnlockDoor" : { + "x": -261.573944, + "y": 0.84999454, + "z": -167.1803 + }, + "steps": [ + { + "position" : { + "x": -261.573944, + "y": 0.84999454, + "z": -167.1803 + } + } + ] + } + ] + }, + { + "repeatable": false, + "minLevel": 0, + "maxLevel": 99, + "maxBots": 2, + "desirability": 15, + "name": "Trailer Park Cabin", + "objectives" : [ + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 300, + "steps": [ + { + "position" : { + "x": -255.625565, + "y": 3.02371025, + "z": -233.673157 + } + } + ] + } + ] + }, + { + "repeatable": true, + "minLevel": 0, + "maxLevel": 99, + "maxBots": 3, + "desirability": 30, + "name": "RUAF Checkpoint", + "objectives" : [ + { + "repeatable": true, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 750, + "steps": [ + { + "position" : { + "x": 2.46469069, + "y": 1.09088957, + "z": -125.952126 + } + } + ] + } + ] + }, + { + "repeatable": true, + "minLevel": 0, + "maxLevel": 99, + "maxBots": 2, + "desirability": 20, + "name": "Warehouse 17 Rear", + "objectives" : [ + { + "repeatable": true, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 300, + "steps": [ + { + "position" : { + "x": 40.3301, + "y": 1.0931567, + "z": -80.56404 + } + } + ] + } + ] + }, + { + "repeatable": true, + "minLevel": 0, + "maxLevel": 99, + "maxBots": 2, + "desirability": 25, + "canRunBetweenObjectives": false, + "name": "Garage", + "objectives" : [ + { + "repeatable": true, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 300, + "maxRunDistance": 8, + "steps": [ + { + "position" : { + "x": 101.444977, + "y": 1.31745863, + "z": -96.9077454 + } + } + ] + }, + { + "repeatable": true, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 300, + "maxRunDistance": 8, + "steps": [ + { + "position" : { + "x": 112.215, + "y": 1.31745744, + "z": -87.60652 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 300, + "maxRunDistance": 8, + "steps": [ + { + "position" : { + "x": 113.125481, + "y": 4.04223061, + "z": -86.43633 + } + } + ] + } + ] + }, + { + "repeatable": true, + "minLevel": 0, + "maxLevel": 99, + "maxBots": 2, + "desirability": 20, + "name": "Porta Potty", + "objectives" : [ + { + "repeatable": true, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 500, + "steps": [ + { + "position" : { + "x": 206.225723, + "y": 4.012152, + "z": -238.95491 + } + } + ] + } + ] + }, + { + "repeatable": false, + "minLevel": 0, + "maxLevel": 99, + "maxBots": 2, + "desirability": 40, + "name": "Giving Tree", + "objectives" : [ + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 500, + "steps": [ + { + "position" : { + "x": 289.550354, + "y": 1.098019, + "z": -191.92691 + } + } + ] + } + ] + }, + { + "repeatable": true, + "minLevel": 0, + "maxLevel": 99, + "maxBots": 3, + "desirability": 30, + "name": "Old Gas", + "objectives" : [ + { + "repeatable": true, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 500, + "steps": [ + { + "position" : { + "x": 316.6372, + "y": 1.30888844, + "z": -185.155518 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 500, + "steps": [ + { + "position" : { + "x": 345.727875, + "y": 1.09885657, + "z": -162.601608 + } + } + ] + } + ] + }, + { + "repeatable": true, + "isSniping": true, + "minLevel": 0, + "maxLevel": 99, + "maxBots": 2, + "desirability": 15, + "pmcsOnly": true, + "name": "Construction", + "forbiddenWeapons" : [ "pistol", "shotgun" ], + "objectives" : [ + { + "repeatable": true, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 500, + "steps": [ + { + "waitTimeAfterCompleting": 0, + "position" : { + "x": 70.8177643, + "y": 6.69176674, + "z": -13.096755 + } + }, + { + "waitTimeAfterCompleting": 1, + "stepType" : "HoldAtPosition", + "maxDistance": 6, + "minElapsedTime": { + "min": 20, + "max": 120 + }, + "position" : { + "x": 70.8177643, + "y": 6.69176674, + "z": -13.096755 + } + } + ] + } + ] + }, + { + "repeatable": false, + "minLevel": 0, + "maxLevel": 99, + "maxBots": 2, + "desirability": 15, + "name": "Skeleton", + "objectives" : [ + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 300, + "steps": [ + { + "position" : { + "x": 218.189117, + "y": 7.316442, + "z": -3.67516 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 300, + "steps": [ + { + "position" : { + "x": 210.613113, + "y": 7.316441, + "z": -3.87202764 + } + } + ] + } + ] + }, + { + "repeatable": true, + "minLevel": 0, + "maxLevel": 99, + "maxBots": 3, + "desirability": 30, + "name": "Factory Shacks", + "objectives" : [ + { + "repeatable": true, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 300, + "steps": [ + { + "position" : { + "x": 203.49411, + "y": 1.06341362, + "z": 15.1276836 + } + } + ] + } + ] + }, + { + "repeatable": true, + "minLevel": 0, + "maxLevel": 99, + "maxBots": 2, + "desirability": 25, + "name": "Bus Terminal", + "objectives" : [ + { + "repeatable": true, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 500, + "maxRunDistance": 8, + "steps": [ + { + "position" : { + "x": 254.029373, + "y": -0.6014962, + "z": 49.99773 + } + } + ] + } + ] + }, + { + "repeatable": false, + "minLevel": 0, + "maxLevel": 99, + "maxBots": 2, + "desirability": 20, + "name": "Container near Dorms", + "objectives" : [ + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 500, + "steps": [ + { + "position" : { + "x": 202.417252, + "y": -3.1580565, + "z": 71.64842 + } + } + ] + } + ] + }, + { + "repeatable": true, + "minLevel": 0, + "maxLevel": 99, + "maxBots": 2, + "desirability": 15, + "name": "Ice Cream", + "objectives" : [ + { + "repeatable": true, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 300, + "steps": [ + { + "position" : { + "x": 13.4792433, + "y": -0.9673722, + "z": 37.39443 + } + } + ] + } + ] + }, + { + "repeatable": true, + "minLevel": 0, + "maxLevel": 99, + "maxBots": 3, + "desirability": 30, + "canRunBetweenObjectives": false, + "name": "New Gas", + "objectives" : [ + { + "repeatable": true, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 750, + "maxRunDistance": 5, + "steps": [ + { + "position" : { + "x": 411.052948, + "y": 1.1950866, + "z": 21.7216644 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 750, + "maxRunDistance": 9, + "steps": [ + { + "position" : { + "x": 417.801178, + "y": 1.1361047, + "z": 38.0835762 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 750, + "maxRunDistance": 9, + "steps": [ + { + "position" : { + "x": 412.315857, + "y": 1.1334542, + "z": 39.5216637 + } + } + ] + } + ] + }, + { + "repeatable": true, + "isCamping": true, + "minLevel": 0, + "maxLevel": 99, + "maxBots": 1, + "maxBotsInGroup": 1, + "desirability": 10, + "pmcsOnly": true, + "name": "RUAF Crossing Camping", + "forbiddenWeapons" : [ "pistol", "shotgun" ], + "objectives" : [ + { + "repeatable": true, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 300, + "lootAfterCompleting": "Inhibit", + "steps": [ + { + "waitTimeAfterCompleting": 1, + "position" : { + "x": -11.95243, + "y": 0.0827226639, + "z": -110.21579 + } + }, + { + "stepType" : "Ambush", + "minElapsedTime": { + "min": 45, + "max": 180 + }, + "position" : { + "x": -11.95243, + "y": 0.0827226639, + "z": -110.21579 + }, + "lookToPosition" : { + "x": -111.718025, + "y": -9.233237, + "z": -133.932327 + } + } + ] + }, + { + "repeatable": true, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 300, + "lootAfterCompleting": "Inhibit", + "steps": [ + { + "waitTimeAfterCompleting": 1, + "position" : { + "x": 6.124784, + "y": 1.092214, + "z": -130.398132 + } + }, + { + "stepType" : "Ambush", + "minElapsedTime": { + "min": 30, + "max": 120 + }, + "position" : { + "x": 6.124784, + "y": 1.092214, + "z": -130.398132 + }, + "lookToPosition" : { + "x": -18.496603, + "y": -0.244944811, + "z": -139.338089 + } + } + ] + } + ] + }, + { + "repeatable": true, + "isCamping": true, + "minLevel": 0, + "maxLevel": 99, + "maxBots": 1, + "maxBotsInGroup": 1, + "minRaidET": 30, + "desirability": 10, + "pmcsOnly": true, + "name": "Center Crossing Camping", + "forbiddenWeapons" : [ "pistol" ], + "objectives" : [ + { + "repeatable": true, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 300, + "lootAfterCompleting": "Inhibit", + "steps": [ + { + "waitTimeAfterCompleting": 1, + "position" : { + "x": 19.99716, + "y": 2.31667423, + "z": -24.3914585 + } + }, + { + "stepType" : "HoldAtPosition", + "maxDistance": 2, + "minElapsedTime": { + "min": 45, + "max": 180 + }, + "position" : { + "x": 19.99716, + "y": 2.31667423, + "z": -24.3914585 + } + } + ] + } + ] + }, + { + "repeatable": true, + "isCamping": true, + "minLevel": 0, + "maxLevel": 99, + "maxBots": 1, + "maxBotsInGroup": 1, + "minRaidET": 30, + "desirability": 10, + "pmcsOnly": true, + "name": "Junk Bridge Crossing Camping", + "forbiddenWeapons" : [ "pistol" ], + "objectives" : [ + { + "repeatable": true, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 300, + "lootAfterCompleting": "Inhibit", + "steps": [ + { + "waitTimeAfterCompleting": 1, + "position" : { + "x": -9.838275, + "y": -3.83657551, + "z": 64.26963 + } + }, + { + "stepType" : "Ambush", + "minElapsedTime": { + "min": 30, + "max": 120 + }, + "position" : { + "x": -9.838275, + "y": -3.83657551, + "z": 64.26963 + }, + "lookToPosition" : { + "x": -46.2355042, + "y": -12.54368, + "z": 46.3045578 + } + } + ] + } + ] + }, + { + "repeatable": true, + "isCamping": true, + "minLevel": 0, + "maxLevel": 99, + "maxBots": 1, + "maxBotsInGroup": 1, + "desirability": 10, + "name": "Dorms 3 Story Bathroom Camping Floor 1", + "forbiddenWeapons" : [ "sniperRifle" ], + "objectives" : [ + { + "repeatable": true, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 500, + "lootAfterCompleting": "Inhibit", + "steps": [ + { + "waitTimeAfterCompleting": 0, + "position" : { + "x": 174.217545, + "y": -0.167547345, + "z": 168.831772 + } + }, + { + "waitTimeAfterCompleting": 0, + "stepType" : "CloseNearbyDoors", + "maxDistance": 3, + "position" : { + "x": 174.217545, + "y": -0.167547345, + "z": 168.831772 + } + }, + { + "waitTimeAfterCompleting": 1, + "position" : { + "x": 174.064163, + "y": -0.16754666, + "z": 165.738785 + } + }, + { + "stepType" : "Ambush", + "minElapsedTime": { + "min": 30, + "max": 120 + }, + "position" : { + "x": 174.064163, + "y": -0.16754666, + "z": 165.738785 + }, + "lookToPosition" : { + "x": 174.217545, + "y": -0.167547345, + "z": 168.831772 + } + } + ] + } + ] + }, + { + "repeatable": true, + "isCamping": true, + "minLevel": 0, + "maxLevel": 99, + "maxBots": 1, + "maxBotsInGroup": 1, + "desirability": 10, + "name": "Dorms 3 Story Bathroom Camping Floor 2", + "forbiddenWeapons" : [ "sniperRifle" ], + "objectives" : [ + { + "repeatable": true, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 500, + "lootAfterCompleting": "Inhibit", + "steps": [ + { + "waitTimeAfterCompleting": 0, + "position" : { + "x": 174.415344, + "y": 2.83025265, + "z": 168.8857 + } + }, + { + "waitTimeAfterCompleting": 0, + "stepType" : "CloseNearbyDoors", + "maxDistance": 3, + "position" : { + "x": 174.415344, + "y": 2.83025265, + "z": 168.8857 + } + }, + { + "waitTimeAfterCompleting": 1, + "position" : { + "x": 174.044876, + "y": 2.83025336, + "z": 165.752853 + } + }, + { + "stepType" : "Ambush", + "minElapsedTime": { + "min": 30, + "max": 120 + }, + "position" : { + "x": 174.044876, + "y": 2.83025336, + "z": 165.752853 + }, + "lookToPosition" : { + "x": 174.415344, + "y": 2.83025265, + "z": 168.8857 + } + } + ] + } + ] + }, + { + "repeatable": true, + "isCamping": true, + "minLevel": 0, + "maxLevel": 99, + "maxBots": 1, + "maxBotsInGroup": 1, + "desirability": 10, + "name": "Dorms 2 Story Bathroom Camping Floor 1", + "forbiddenWeapons" : [ "sniperRifle" ], + "objectives" : [ + { + "repeatable": true, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 500, + "lootAfterCompleting": "Inhibit", + "steps": [ + { + "waitTimeAfterCompleting": 0, + "position" : { + "x": 234.16925, + "y": -0.1295471, + "z": 150.712967 + } + }, + { + "waitTimeAfterCompleting": 0, + "stepType" : "CloseNearbyDoors", + "maxDistance": 3, + "position" : { + "x": 234.16925, + "y": -0.1295471, + "z": 150.712967 + } + }, + { + "waitTimeAfterCompleting": 1, + "position" : { + "x": 234.149628, + "y": -0.130434051, + "z": 147.132141 + } + }, + { + "stepType" : "Ambush", + "minElapsedTime": { + "min": 30, + "max": 120 + }, + "position" : { + "x": 234.149628, + "y": -0.130434051, + "z": 147.132141 + }, + "lookToPosition" : { + "x": 234.16925, + "y": -0.1295471, + "z": 150.712967 + } + } + ] + } + ] + }, + { + "repeatable": true, + "isSniping": true, + "minLevel": 0, + "maxLevel": 99, + "maxBots": 1, + "maxBotsInGroup": 1, + "desirability": 10, + "pmcsOnly": true, + "name": "Dorms 3 Story Roof Sniping", + "forbiddenWeapons" : [ "pistol", "shotgun" ], + "objectives" : [ + { + "repeatable": true, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 500, + "lootAfterCompleting": "Inhibit", + "steps": [ + { + "waitTimeAfterCompleting": 1, + "position" : { + "x": 190.586624, + "y": 5.8315196, + "z": 170.457611 + } + }, + { + "stepType" : "Snipe", + "minElapsedTime": { + "min": 45, + "max": 180 + }, + "position" : { + "x": 190.586624, + "y": 5.8315196, + "z": 170.457611 + }, + "lookToPosition" : { + "x": 182.936172, + "y": -0.747057, + "z": 112.072914 + } + } + ] + } + ] + }, + { + "repeatable": true, + "isSniping": true, + "minLevel": 0, + "maxLevel": 99, + "maxBots": 1, + "maxBotsInGroup": 1, + "desirability": 10, + "pmcsOnly": true, + "name": "New Gas Sniping", + "forbiddenWeapons" : [ "pistol", "shotgun" ], + "objectives" : [ + { + "repeatable": true, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 500, + "lootAfterCompleting": "Inhibit", + "steps": [ + { + "waitTimeAfterCompleting": 1, + "position" : { + "x": 476.315247, + "y": 9.48634, + "z": 66.9717255 + } + }, + { + "stepType" : "Snipe", + "minElapsedTime": { + "min": 45, + "max": 180 + }, + "position" : { + "x": 476.315247, + "y": 9.48634, + "z": 66.9717255 + }, + "lookToPosition" : { + "x": 434.040863, + "y": 1.0296886, + "z": 35.7012444 + } + } + ] + } + ] + }, + { + "repeatable": true, + "isCamping": true, + "minLevel": 0, + "maxLevel": 99, + "maxBots": 1, + "maxBotsInGroup": 1, + "desirability": 10, + "pmcsOnly": true, + "name": "Crackhouse Area Sniping", + "forbiddenWeapons" : [ "pistol" ], + "objectives" : [ + { + "repeatable": true, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 500, + "lootAfterCompleting": "Inhibit", + "steps": [ + { + "waitTimeAfterCompleting": 1, + "position" : { + "x": 71.1528854, + "y": 1.0945611, + "z": -129.199066 + } + }, + { + "stepType" : "Snipe", + "minElapsedTime": { + "min": 45, + "max": 180 + }, + "position" : { + "x": 71.1528854, + "y": 1.0945611, + "z": -129.199066 + }, + "lookToPosition" : { + "x": 33.94431, + "y": 1.14722192, + "z": -103.734337 + } + } + ] + } + ] + }, + { + "repeatable": true, + "isSniping": true, + "minLevel": 0, + "maxLevel": 99, + "maxBots": 1, + "maxBotsInGroup": 1, + "desirability": 10, + "pmcsOnly": true, + "name": "Fortress Sniping", + "forbiddenWeapons" : [ "pistol", "shotgun" ], + "objectives" : [ + { + "repeatable": true, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 500, + "steps": [ + { + "waitTimeAfterCompleting": 2, + "position" : { + "x": 198.772247, + "y": 7.73128128, + "z": -99.7279358 + } + }, + { + "stepType" : "Snipe", + "minElapsedTime": { + "min": 45, + "max": 180 + }, + "position" : { + "x": 198.772247, + "y": 7.73128128, + "z": -99.7279358 + }, + "lookToPosition" : { + "x": 206.202789, + "y": 1.07297981, + "z": -32.9162025 + } + } + ] + }, + { + "repeatable": true, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 500, + "steps": [ + { + "waitTimeAfterCompleting": 2, + "position" : { + "x": 192.248947, + "y": 7.73369265, + "z": -101.744789 + } + }, + { + "stepType" : "Snipe", + "minElapsedTime": { + "min": 45, + "max": 180 + }, + "position" : { + "x": 192.248947, + "y": 7.73369265, + "z": -101.744789 + }, + "lookToPosition" : { + "x": 206.202789, + "y": 1.07297981, + "z": -32.9162025 + } + } + ] + }, + { + "repeatable": true, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 500, + "steps": [ + { + "waitTimeAfterCompleting": 2, + "position" : { + "x": 189.832092, + "y": 7.73369455, + "z": -109.900047 + } + }, + { + "stepType" : "Snipe", + "minElapsedTime": { + "min": 30, + "max": 120 + }, + "position" : { + "x": 189.832092, + "y": 7.73369455, + "z": -109.900047 + }, + "lookToPosition" : { + "x": 123.13324, + "y": 0.9556721, + "z": -136.702927 + } + } + ] + }, + { + "repeatable": true, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 500, + "steps": [ + { + "waitTimeAfterCompleting": 2, + "position" : { + "x": 194.222244, + "y": 7.73273134, + "z": -132.402023 + } + }, + { + "stepType" : "Snipe", + "minElapsedTime": { + "min": 45, + "max": 180 + }, + "position" : { + "x": 194.222244, + "y": 7.73273134, + "z": -132.402023 + }, + "lookToPosition" : { + "x": 123.13324, + "y": 0.9556721, + "z": -136.702927 + } + } + ] + }, + { + "repeatable": true, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 500, + "steps": [ + { + "waitTimeAfterCompleting": 2, + "position" : { + "x": 217.267136, + "y": 7.733696, + "z": -143.66011 + } + }, + { + "stepType" : "Snipe", + "minElapsedTime": { + "min": 30, + "max": 120 + }, + "position" : { + "x": 217.267136, + "y": 7.733696, + "z": -143.66011 + }, + "lookToPosition" : { + "x": 181.29628, + "y": 1.10915828, + "z": -212.707748 + } + } + ] + }, + { + "repeatable": true, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 500, + "steps": [ + { + "waitTimeAfterCompleting": 2, + "position" : { + "x": 213.926559, + "y": 7.733343, + "z": -131.099319 + } + }, + { + "stepType" : "Snipe", + "minElapsedTime": { + "min": 30, + "max": 120 + }, + "position" : { + "x": 213.926559, + "y": 7.733343, + "z": -131.099319 + }, + "lookToPosition" : { + "x": 258.866547, + "y": 1.09487545, + "z": -99.1806259 + } + } + ] + }, + { + "repeatable": true, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 500, + "steps": [ + { + "waitTimeAfterCompleting": 2, + "position" : { + "x": 210.388763, + "y": 7.73300457, + "z": -112.121925 + } + }, + { + "stepType" : "Snipe", + "minElapsedTime": { + "min": 45, + "max": 180 + }, + "position" : { + "x": 210.388763, + "y": 7.73300457, + "z": -112.121925 + }, + "lookToPosition" : { + "x": 258.866547, + "y": 1.09487545, + "z": -99.1806259 + } + } + ] + } + ] + }, + { + "repeatable": true, + "isSniping": true, + "minLevel": 0, + "maxLevel": 99, + "maxBots": 1, + "maxBotsInGroup": 1, + "desirability": 10, + "pmcsOnly": true, + "name": "Old Gas Sniping", + "forbiddenWeapons" : [ "pistol", "shotgun" ], + "objectives" : [ + { + "repeatable": true, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 500, + "lootAfterCompleting": "Inhibit", + "steps": [ + { + "waitTimeAfterCompleting": 1, + "position" : { + "x": 358.0235, + "y": 4.08880758, + "z": -125.596245 + } + }, + { + "stepType" : "Snipe", + "minElapsedTime": { + "min": 45, + "max": 180 + }, + "position" : { + "x": 358.0235, + "y": 4.08880758, + "z": -125.596245 + }, + "lookToPosition" : { + "x": 319.473419, + "y": 1.09529436, + "z": -172.498062 + } + } + ] + } + ] + }, + { + "repeatable": true, + "isCamping": true, + "minLevel": 0, + "maxLevel": 99, + "maxBots": 1, + "maxBotsInGroup": 1, + "desirability": 10, + "pmcsOnly": true, + "name": "Container Building Ambush", + "forbiddenWeapons" : [ "pistol" ], + "objectives" : [ + { + "repeatable": true, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 500, + "lootAfterCompleting": "Inhibit", + "steps": [ + { + "waitTimeAfterCompleting": 1, + "position" : { + "x": 511.061066, + "y": 5.81796932, + "z": -55.2220268 + } + }, + { + "stepType" : "Ambush", + "minElapsedTime": { + "min": 45, + "max": 180 + }, + "position" : { + "x": 511.061066, + "y": 5.81796932, + "z": -55.2220268 + }, + "lookToPosition" : { + "x": 497.4225, + "y": 1.066496, + "z": -28.0084057 + } + } + ] + } + ] + }, + { + "repeatable": true, + "isSniping": true, + "minLevel": 0, + "maxLevel": 99, + "maxBots": 1, + "maxBotsInGroup": 1, + "desirability": 10, + "pmcsOnly": true, + "name": "Checkpoint Sniping", + "forbiddenWeapons" : [ "pistol", "shotgun" ], + "objectives" : [ + { + "repeatable": true, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 500, + "lootAfterCompleting": "Inhibit", + "steps": [ + { + "waitTimeAfterCompleting": 1, + "position" : { + "x": 512.9798, + "y": 9.161013, + "z": 60.3739433 + } + }, + { + "stepType" : "Snipe", + "minElapsedTime": { + "min": 45, + "max": 180 + }, + "position" : { + "x": 512.9798, + "y": 9.161013, + "z": 60.3739433 + }, + "lookToPosition" : { + "x": 548.4006, + "y": -0.212774053, + "z": -9.489813 + } + } + ] + } + ] + }, + { + "repeatable": true, + "isCamping": true, + "minLevel": 0, + "maxLevel": 99, + "maxBots": 1, + "maxBotsInGroup": 1, + "desirability": 10, + "name": "Big Red Camping", + "forbiddenWeapons" : [ "pistol", "sniperRifle" ], + "objectives" : [ + { + "repeatable": true, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 500, + "lootAfterCompleting": "Inhibit", + "steps": [ + { + "waitTimeAfterCompleting": 1, + "position" : { + "x": -217.619766, + "y": 1.08684182, + "z": -132.530685 + } + }, + { + "stepType" : "Ambush", + "minElapsedTime": { + "min": 45, + "max": 180 + }, + "position" : { + "x": -217.619766, + "y": 1.08684182, + "z": -132.530685 + }, + "lookToPosition" : { + "x": -206.120773, + "y": 6.93737745, + "z": -111.242264 + } + } + ] + }, + { + "repeatable": true, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 500, + "lootAfterCompleting": "Inhibit", + "steps": [ + { + "waitTimeAfterCompleting": 0, + "position" : { + "x": -203.519424, + "y": 7.046, + "z": -106.483238 + } + }, + { + "waitTimeAfterCompleting": 0, + "stepType" : "CloseNearbyDoors", + "maxDistance": 3, + "position" : { + "x": -203.519424, + "y": 7.046, + "z": -106.483238 + } + }, + { + "waitTimeAfterCompleting": 1, + "position" : { + "x": -203.223343, + "y": 7.04600048, + "z": -109.223488 + } + }, + { + "stepType" : "Ambush", + "minElapsedTime": { + "min": 45, + "max": 180 + }, + "position" : { + "x": -203.223343, + "y": 7.04600048, + "z": -109.223488 + }, + "lookToPosition" : { + "x": -203.519424, + "y": 7.046, + "z": -106.483238 + } + } + ] + } + ] + }, + { + "repeatable": true, + "isSniping": true, + "minLevel": 0, + "maxLevel": 99, + "maxBots": 1, + "maxBotsInGroup": 1, + "desirability": 10, + "pmcsOnly": true, + "name": "Bridge Sniping", + "forbiddenWeapons" : [ "pistol", "shotgun" ], + "objectives" : [ + { + "repeatable": true, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 500, + "lootAfterCompleting": "Inhibit", + "steps": [ + { + "waitTimeAfterCompleting": 1, + "position" : { + "x": -38.8045464, + "y": 0.3854256, + "z": -5.24403238 + } + }, + { + "stepType" : "Snipe", + "minElapsedTime": { + "min": 45, + "max": 180 + }, + "position" : { + "x": -38.8045464, + "y": 0.3854256, + "z": -5.24403238 + }, + "lookToPosition" : { + "x": -81.43917, + "y": -10.5200768, + "z": -41.25231 + } + } + ] + }, + { + "repeatable": true, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 500, + "lootAfterCompleting": "Inhibit", + "steps": [ + { + "waitTimeAfterCompleting": 1, + "position" : { + "x": -67.10572, + "y": 0.385421634, + "z": 13.5132275 + } + }, + { + "stepType" : "Snipe", + "minElapsedTime": { + "min": 45, + "max": 180 + }, + "position" : { + "x": -67.10572, + "y": 0.385421634, + "z": 13.5132275 + }, + "lookToPosition" : { + "x": -8.344412, + "y": -0.575131834, + "z": 38.67783 + } + } + ] + } + ] + }, + { + "repeatable": false, + "minLevel": 1, + "maxLevel": 99, + "maxBots": 2, + "desirability": 20, + "name": "OLI Logistics Trunk", + "objectives" : [ + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 200, + "doorIDToUnlock": "trunk_custom_factoryStorageZone_00002", + "fixedPositionToUnlockDoor" : { + "x": 343.4478, + "y": 1.09565461, + "z": -10.0575485 + }, + "steps": [ + { + "position" : { + "x": 343.4478, + "y": 1.09565461, + "z": -10.0575485 + } + } + ] + } + ] + }, + { + "repeatable": false, + "minLevel": 1, + "maxLevel": 99, + "maxBots": 2, + "desirability": 35, + "name": "Giving Trunk", + "objectives" : [ + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 400, + "doorIDToUnlock": "trunk_custom_Garage_00003", + "fixedPositionToUnlockDoor" : { + "x": -259.3982, + "y": 0.7883575, + "z": -75.15435 + }, + "steps": [ + { + "position" : { + "x": -259.3982, + "y": 0.7883575, + "z": -75.15435 + } + } + ] + } + ] + }, + { + "repeatable": false, + "minLevel": 1, + "maxLevel": 99, + "maxBots": 3, + "desirability": 20, + "name": "Warehouse 17", + "objectives" : [ + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 200, + "maxRunDistance": 4, + "steps": [ + { + "position" : { + "x": 68.529274, + "y": 1.12000024, + "z": -59.71363 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 200, + "maxRunDistance": 5, + "steps": [ + { + "position" : { + "x": 64.216, + "y": 1.19853282, + "z": -65.63544 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 200, + "maxRunDistance": 4, + "steps": [ + { + "position" : { + "x": 70.576355, + "y": 1.15194583, + "z": -66.65023 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 200, + "maxRunDistance": 12, + "steps": [ + { + "position" : { + "x": 47.00062, + "y": 1.18925023, + "z": -63.3943 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 200, + "maxRunDistance": 11, + "steps": [ + { + "position" : { + "x": 51.57627, + "y": 1.18598258, + "z": -50.96605 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 200, + "maxRunDistance": 7, + "steps": [ + { + "position" : { + "x": 51.101162, + "y": 4.43206072, + "z": -45.907196 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 200, + "maxRunDistance": 6, + "steps": [ + { + "position" : { + "x": 40.0481071, + "y": 4.47745371, + "z": -52.10558 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 200, + "maxRunDistance": 6, + "steps": [ + { + "position" : { + "x": 34.5759926, + "y": 4.493124, + "z": -54.75905 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 200, + "maxRunDistance": 13, + "steps": [ + { + "position" : { + "x": 42.9504166, + "y": 4.461947, + "z": -60.5569344 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 200, + "maxRunDistance": 13, + "steps": [ + { + "position" : { + "x": 47.9340668, + "y": 4.488666, + "z": -58.8684769 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 200, + "maxRunDistance": 5, + "steps": [ + { + "position" : { + "x": 24.9697685, + "y": 4.475165, + "z": -61.0031128 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 200, + "maxRunDistance": 5, + "steps": [ + { + "position" : { + "x": 26.935133, + "y": 4.489907, + "z": -54.6378021 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 200, + "maxRunDistance": 8, + "steps": [ + { + "position" : { + "x": 66.06298, + "y": 7.74369526, + "z": -67.51061 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 200, + "maxRunDistance": 10, + "steps": [ + { + "position" : { + "x": 66.49403, + "y": 9.016801, + "z": -58.1695061 + } + }, + { + "position" : { + "x": 62.2129364, + "y": 9.016801, + "z": -61.2524719 + } + } + ] + } + ] + }, + { + "repeatable": false, + "minLevel": 1, + "maxLevel": 99, + "maxBots": 3, + "desirability": 20, + "name": "Boiler Building", + "objectives" : [ + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 200, + "maxRunDistance": 6, + "steps": [ + { + "position" : { + "x": 91.95067, + "y": 1.37363315, + "z": -44.2229919 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 200, + "maxRunDistance": 4, + "steps": [ + { + "position" : { + "x": 91.73952, + "y": 1.38197732, + "z": -60.0145836 + } + }, + { + "position" : { + "x": 93.4737, + "y": 1.38197732, + "z": -64.081 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 200, + "maxRunDistance": 7, + "steps": [ + { + "position" : { + "x": 93.49845, + "y": 1.38671637, + "z": -67.8876 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 200, + "maxRunDistance": 15, + "steps": [ + { + "position" : { + "x": 113.346893, + "y": 1.34774268, + "z": -58.8230247 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 200, + "maxRunDistance": 14, + "steps": [ + { + "position" : { + "x": 106.7158, + "y": 1.34774268, + "z": -48.5351219 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 200, + "maxRunDistance": 6, + "steps": [ + { + "position" : { + "x": 101.070709, + "y": 1.36020184, + "z": -42.6048965 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 200, + "maxRunDistance": 5, + "steps": [ + { + "position" : { + "x": 113.954552, + "y": 1.344945, + "z": -39.49803 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 200, + "maxRunDistance": 6, + "steps": [ + { + "position" : { + "x": 130.83754, + "y": 1.34189141, + "z": -65.6250458 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 200, + "maxRunDistance": 12, + "steps": [ + { + "position" : { + "x": 101.352821, + "y": 4.861507, + "z": -47.8844528 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 200, + "maxRunDistance": 16, + "steps": [ + { + "position" : { + "x": 122.399132, + "y": 7.13521147, + "z": -46.72534 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 200, + "maxRunDistance": 8, + "steps": [ + { + "position" : { + "x": 117.922546, + "y": 7.13521147, + "z": -37.68929 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 200, + "maxRunDistance": 11, + "steps": [ + { + "position" : { + "x": 94.9696655, + "y": 7.17118263, + "z": -45.4391174 + } + } + ] + } + ] + }, + { + "repeatable": false, + "minLevel": 1, + "maxLevel": 99, + "maxBots": 3, + "desirability": 35, + "name": "Boiler Building Office", + "objectives" : [ + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 400, + "maxRunDistance": 7, + "steps": [ + { + "position" : { + "x": 94.05106, + "y": 7.19466639, + "z": -58.2771873 + } + }, + { + "position" : { + "x": 89.7554, + "y": 7.22180033, + "z": -56.7954521 + } + }, + { + "position" : { + "x": 92.65456, + "y": 7.22180033, + "z": -53.6603546 + } + }, + { + "position" : { + "x": 89.93688, + "y": 7.22180033, + "z": -53.93866 + } + } + ] + } + ] + }, + { + "repeatable": false, + "minLevel": 1, + "maxLevel": 99, + "maxBots": 2, + "desirability": 10, + "name": "Industrial Plant Silos", + "objectives" : [ + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 200, + "maxRunDistance": 8, + "steps": [ + { + "position" : { + "x": 257.714966, + "y": -0.7821574, + "z": -11.0893326 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 200, + "maxRunDistance": 13, + "steps": [ + { + "position" : { + "x": 260.072968, + "y": 5.21607447, + "z": -24.0819683 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 200, + "maxRunDistance": 6, + "steps": [ + { + "position" : { + "x": 249.193649, + "y": 5.21779728, + "z": -35.17588 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 200, + "maxRunDistance": 13, + "steps": [ + { + "position" : { + "x": 256.4247, + "y": 8.508573, + "z": -36.7431259 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 200, + "maxRunDistance": 12, + "steps": [ + { + "position" : { + "x": 252.983719, + "y": 11.7737761, + "z": -18.386219 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 200, + "maxRunDistance": 13, + "steps": [ + { + "position" : { + "x": 251.278519, + "y": 11.7737761, + "z": -36.4937 + } + } + ] + } + ] + }, + { + "repeatable": false, + "minLevel": 1, + "maxLevel": 99, + "maxBots": 3, + "desirability": 20, + "name": "Industrial Plant", + "objectives" : [ + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 200, + "maxRunDistance": 3, + "steps": [ + { + "position" : { + "x": 274.998657, + "y": 1.51017284, + "z": -76.4526 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 200, + "maxRunDistance": 6, + "steps": [ + { + "position" : { + "x": 268.1539, + "y": 1.5380398, + "z": -75.57139 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 200, + "maxRunDistance": 14, + "steps": [ + { + "position" : { + "x": 270.511169, + "y": 1.5380398, + "z": -66.5951462 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 200, + "maxRunDistance": 4, + "steps": [ + { + "position" : { + "x": 257.454224, + "y": 1.529689, + "z": -61.1904755 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 200, + "maxRunDistance": 8, + "steps": [ + { + "position" : { + "x": 267.505951, + "y": 5.99075031, + "z": -74.61332 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 200, + "maxRunDistance": 11, + "steps": [ + { + "position" : { + "x": 274.076782, + "y": 6.42117167, + "z": -34.3192253 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 200, + "maxRunDistance": 13, + "steps": [ + { + "position" : { + "x": 275.371552, + "y": 8.924059, + "z": -19.2065449 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 200, + "maxRunDistance": 10, + "steps": [ + { + "position" : { + "x": 280.942749, + "y": 9.121759, + "z": -15.81267 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 200, + "maxRunDistance": 8, + "steps": [ + { + "position" : { + "x": 271.3655, + "y": 8.159797, + "z": -7.927193 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 200, + "maxRunDistance": 16, + "steps": [ + { + "position" : { + "x": 268.931519, + "y": 8.789104, + "z": -55.93233 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 200, + "maxRunDistance": 8, + "steps": [ + { + "position" : { + "x": 257.773163, + "y": 5.850053, + "z": -65.74299 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 200, + "maxRunDistance": 18, + "steps": [ + { + "position" : { + "x": 268.4001, + "y": 12.68524, + "z": -58.13856 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 200, + "maxRunDistance": 21, + "steps": [ + { + "position" : { + "x": 270.499542, + "y": 12.7018623, + "z": -62.4312019 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 200, + "maxRunDistance": 13, + "steps": [ + { + "position" : { + "x": 269.6476, + "y": 12.8073463, + "z": -72.61168 + } + }, + { + "position" : { + "x": 268.1058, + "y": 12.696126, + "z": -76.39291 + } + } + ] + } + ] + }, + { + "repeatable": true, + "isSniping": true, + "minLevel": 0, + "maxLevel": 99, + "maxBots": 2, + "maxBotsInGroup": 1, + "desirability": 10, + "pmcsOnly": true, + "name": "Industrial Plant Sniping Top Floor", + "forbiddenWeapons" : [ "pistol", "shotgun" ], + "objectives" : [ + { + "repeatable": true, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 300, + "maxRunDistance": 13, + "lootAfterCompleting": "Inhibit", + "steps": [ + { + "waitTimeAfterCompleting": 1, + "position" : { + "x": 253.857147, + "y": 12.72442, + "z": -73.4128342 + } + }, + { + "stepType" : "Snipe", + "minElapsedTime": { + "min": 30, + "max": 120 + }, + "position" : { + "x": 253.857147, + "y": 12.72442, + "z": -73.4128342 + }, + "lookToPosition" : { + "x": 193.680817, + "y": 1.10344481, + "z": -91.75561 + } + } + ] + }, + { + "repeatable": true, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 300, + "maxRunDistance": 13, + "lootAfterCompleting": "Inhibit", + "steps": [ + { + "waitTimeAfterCompleting": 1, + "position" : { + "x": 255.218048, + "y": 12.7165966, + "z": -69.8295746 + } + }, + { + "stepType" : "Snipe", + "minElapsedTime": { + "min": 30, + "max": 120 + }, + "position" : { + "x": 255.218048, + "y": 12.7165966, + "z": -69.8295746 + }, + "lookToPosition" : { + "x": 191.6113, + "y": 1.11437166, + "z": -33.0370178 + } + } + ] + }, + { + "repeatable": true, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 300, + "maxRunDistance": 13, + "lootAfterCompleting": "Inhibit", + "steps": [ + { + "waitTimeAfterCompleting": 1, + "position" : { + "x": 256.606567, + "y": 12.7165966, + "z": -61.948204 + } + }, + { + "stepType" : "Snipe", + "minElapsedTime": { + "min": 30, + "max": 120 + }, + "position" : { + "x": 256.606567, + "y": 12.7165966, + "z": -61.948204 + }, + "lookToPosition" : { + "x": 193.680817, + "y": 1.10344481, + "z": -91.75561 + } + } + ] + }, + { + "repeatable": true, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 300, + "maxRunDistance": 13, + "lootAfterCompleting": "Inhibit", + "steps": [ + { + "waitTimeAfterCompleting": 1, + "position" : { + "x": 258.374634, + "y": 12.7165966, + "z": -54.2689171 + } + }, + { + "stepType" : "Snipe", + "minElapsedTime": { + "min": 30, + "max": 120 + }, + "position" : { + "x": 258.374634, + "y": 12.7165966, + "z": -54.2689171 + }, + "lookToPosition" : { + "x": 193.680817, + "y": 1.10344481, + "z": -91.75561 + } + } + ] + } + ] + }, + { + "repeatable": true, + "isSniping": true, + "minLevel": 0, + "maxLevel": 99, + "maxBots": 2, + "maxBotsInGroup": 1, + "desirability": 10, + "pmcsOnly": true, + "name": "Industrial Plant Sniping Middle Floor", + "forbiddenWeapons" : [ "pistol", "shotgun" ], + "objectives" : [ + { + "repeatable": true, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 300, + "maxRunDistance": 11, + "lootAfterCompleting": "Inhibit", + "steps": [ + { + "waitTimeAfterCompleting": 1, + "position" : { + "x": 280.5519, + "y": 9.121759, + "z": -15.7298069 + } + }, + { + "stepType" : "Snipe", + "minElapsedTime": { + "min": 30, + "max": 120 + }, + "position" : { + "x": 280.5519, + "y": 9.121759, + "z": -15.7298069 + }, + "lookToPosition" : { + "x": 355.398743, + "y": 1.10921526, + "z": -18.28908 + } + } + ] + } + ] + }, + { + "repeatable": true, + "isCamping": true, + "minLevel": 0, + "maxLevel": 99, + "maxBots": 2, + "maxBotsInGroup": 1, + "desirability": 10, + "pmcsOnly": false, + "name": "Industrial Plant Interior Camping", + "forbiddenWeapons" : [ "sniperRifle" ], + "objectives" : [ + { + "repeatable": true, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 200, + "maxRunDistance": 18, + "lootAfterCompleting": "Inhibit", + "steps": [ + { + "waitTimeAfterCompleting": 1, + "position" : { + "x": 269.949677, + "y": 8.717554, + "z": -55.0560036 + } + }, + { + "stepType" : "Ambush", + "minElapsedTime": { + "min": 45, + "max": 180 + }, + "position" : { + "x": -11.95243, + "y": 0.0827226639, + "z": -110.21579 + }, + "lookToPosition" : { + "x": 273.860046, + "y": 7.43475533, + "z": -56.5276947 + } + } + ] + } + ] + }, + { + "repeatable": true, + "isCamping": true, + "minLevel": 0, + "maxLevel": 99, + "maxBots": 2, + "maxBotsInGroup": 1, + "desirability": 10, + "pmcsOnly": false, + "name": "Industrial Plant Exterior Camping", + "forbiddenWeapons" : [ "sniperRifle" ], + "objectives" : [ + { + "repeatable": true, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 200, + "maxRunDistance": 5, + "lootAfterCompleting": "Inhibit", + "steps": [ + { + "waitTimeAfterCompleting": 1, + "position" : { + "x": 269.721283, + "y": 1.109542, + "z": 6.2385025 + } + }, + { + "stepType" : "Ambush", + "minElapsedTime": { + "min": 45, + "max": 180 + }, + "position" : { + "x": 269.721283, + "y": 1.109542, + "z": 6.2385025 + }, + "lookToPosition" : { + "x": 263.289856, + "y": 1.09424686, + "z": 1.81765747 + } + } + ] + } + ] + }, + { + "repeatable": true, + "isSniping": true, + "minLevel": 0, + "maxLevel": 99, + "maxBots": 2, + "maxBotsInGroup": 1, + "desirability": 10, + "pmcsOnly": true, + "name": "Industrial Plant Silos Sniping", + "forbiddenWeapons" : [ "pistol", "shotgun" ], + "objectives" : [ + { + "repeatable": true, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 300, + "maxRunDistance": 11, + "lootAfterCompleting": "Inhibit", + "steps": [ + { + "waitTimeAfterCompleting": 1, + "position" : { + "x": 252.306274, + "y": 11.7592182, + "z": -37.1358223 + } + }, + { + "stepType" : "Snipe", + "minElapsedTime": { + "min": 30, + "max": 120 + }, + "position" : { + "x": 252.306274, + "y": 11.7592182, + "z": -37.1358223 + }, + "lookToPosition" : { + "x": 198.541351, + "y": 1.08471763, + "z": -78.1537857 + } + } + ] + }, + { + "repeatable": true, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 300, + "maxRunDistance": 11, + "lootAfterCompleting": "Inhibit", + "steps": [ + { + "waitTimeAfterCompleting": 1, + "position" : { + "x": 250.0861, + "y": 11.734828, + "z": -29.9137268 + } + }, + { + "stepType" : "Snipe", + "minElapsedTime": { + "min": 30, + "max": 120 + }, + "position" : { + "x": 250.0861, + "y": 11.734828, + "z": -29.9137268 + }, + "lookToPosition" : { + "x": 231.318588, + "y": 1.13894486, + "z": -2.5403738 + } + } + ] + }, + { + "repeatable": true, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 300, + "maxRunDistance": 12, + "lootAfterCompleting": "Inhibit", + "steps": [ + { + "waitTimeAfterCompleting": 1, + "position" : { + "x": 253.226517, + "y": 11.74577, + "z": -14.1752377 + } + }, + { + "stepType" : "Snipe", + "minElapsedTime": { + "min": 30, + "max": 120 + }, + "position" : { + "x": 253.226517, + "y": 11.74577, + "z": -14.1752377 + }, + "lookToPosition" : { + "x": 168.919647, + "y": 2.96254, + "z": -83.783905 + } + } + ] + }, + { + "repeatable": true, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 300, + "maxRunDistance": 11, + "lootAfterCompleting": "Inhibit", + "steps": [ + { + "waitTimeAfterCompleting": 1, + "position" : { + "x": 254.587753, + "y": 11.7294273, + "z": -8.906923 + } + }, + { + "stepType" : "Snipe", + "minElapsedTime": { + "min": 30, + "max": 120 + }, + "position" : { + "x": 254.587753, + "y": 11.7294273, + "z": -8.906923 + }, + "lookToPosition" : { + "x": 219.003784, + "y": -0.7837688, + "z": 43.84088 + } + } + ] + }, + { + "repeatable": true, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 300, + "maxRunDistance": 13, + "steps": [ + { + "waitTimeAfterCompleting": 0, + "position" : { + "x": 263.28363, + "y": 11.7083025, + "z": -5.429489 + } + }, + { + "waitTimeAfterCompleting": 1, + "stepType" : "HoldAtPosition", + "minElapsedTime": { + "min": 30, + "max": 120 + }, + "position" : { + "x": 263.28363, + "y": 11.7083025, + "z": -5.429489 + } + } + ] + }, + { + "repeatable": true, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 300, + "maxRunDistance": 11, + "steps": [ + { + "waitTimeAfterCompleting": 0, + "position" : { + "x": 263.8497, + "y": 8.476963, + "z": -5.958697 + } + }, + { + "waitTimeAfterCompleting": 1, + "stepType" : "HoldAtPosition", + "minElapsedTime": { + "min": 30, + "max": 120 + }, + "position" : { + "x": 263.8497, + "y": 8.476963, + "z": -5.958697 + } + } + ] + }, + { + "repeatable": true, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 300, + "maxRunDistance": 9, + "lootAfterCompleting": "Inhibit", + "steps": [ + { + "waitTimeAfterCompleting": 1, + "position" : { + "x": 253.956, + "y": 8.496915, + "z": -12.9247646 + } + }, + { + "stepType" : "Snipe", + "minElapsedTime": { + "min": 30, + "max": 120 + }, + "position" : { + "x": 253.956, + "y": 8.496915, + "z": -12.9247646 + }, + "lookToPosition" : { + "x": 226.791046, + "y": 7.32628059, + "z": -20.0479221 + } + } + ] + }, + { + "repeatable": true, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 300, + "maxRunDistance": 9, + "lootAfterCompleting": "Inhibit", + "steps": [ + { + "waitTimeAfterCompleting": 1, + "position" : { + "x": 253.2395, + "y": 8.502816, + "z": -16.8088112 + } + }, + { + "stepType" : "Snipe", + "minElapsedTime": { + "min": 30, + "max": 120 + }, + "position" : { + "x": 253.2395, + "y": 8.502816, + "z": -16.8088112 + }, + "lookToPosition" : { + "x": 227.1887, + "y": 1.298941, + "z": 10.6550293 + } + } + ] + }, + { + "repeatable": true, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 300, + "maxRunDistance": 9, + "lootAfterCompleting": "Inhibit", + "steps": [ + { + "waitTimeAfterCompleting": 1, + "position" : { + "x": 249.100021, + "y": 8.447342, + "z": -32.6109467 + } + }, + { + "stepType" : "Snipe", + "minElapsedTime": { + "min": 30, + "max": 120 + }, + "position" : { + "x": 249.100021, + "y": 8.447342, + "z": -32.6109467 + }, + "lookToPosition" : { + "x": 227.1887, + "y": 1.298941, + "z": 10.6550293 + } + } + ] + }, + { + "repeatable": true, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 300, + "maxRunDistance": 9, + "lootAfterCompleting": "Inhibit", + "steps": [ + { + "waitTimeAfterCompleting": 1, + "position" : { + "x": 252.643417, + "y": 8.447342, + "z": -37.3040657 + } + }, + { + "stepType" : "Snipe", + "minElapsedTime": { + "min": 30, + "max": 120 + }, + "position" : { + "x": 252.643417, + "y": 8.447342, + "z": -37.3040657 + }, + "lookToPosition" : { + "x": 244.127716, + "y": 1.10820067, + "z": -70.91008 + } + } + ] + }, + { + "repeatable": true, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 300, + "maxRunDistance": 5, + "lootAfterCompleting": "Inhibit", + "steps": [ + { + "waitTimeAfterCompleting": 1, + "position" : { + "x": 254.97963, + "y": 5.17095757, + "z": -7.106318 + } + }, + { + "stepType" : "Snipe", + "minElapsedTime": { + "min": 30, + "max": 120 + }, + "position" : { + "x": 254.97963, + "y": 5.17095757, + "z": -7.106318 + }, + "lookToPosition" : { + "x": 216.761429, + "y": 1.35842013, + "z": -1.849959 + } + } + ] + }, + { + "repeatable": true, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 300, + "maxRunDistance": 6, + "lootAfterCompleting": "Inhibit", + "steps": [ + { + "waitTimeAfterCompleting": 1, + "position" : { + "x": 250.907028, + "y": 5.253246, + "z": -36.3092461 + } + }, + { + "stepType" : "Snipe", + "minElapsedTime": { + "min": 30, + "max": 120 + }, + "position" : { + "x": 250.907028, + "y": 5.253246, + "z": -36.3092461 + }, + "lookToPosition" : { + "x": 238.168533, + "y": 1.88508081, + "z": -104.6522 + } + } + ] + } + ] + }, + { + "repeatable": true, + "isSniping": true, + "minLevel": 0, + "maxLevel": 99, + "maxBots": 2, + "maxBotsInGroup": 1, + "desirability": 10, + "pmcsOnly": true, + "name": "Boiler Building Upstairs Sniping", + "forbiddenWeapons" : [ "pistol", "shotgun" ], + "objectives" : [ + { + "repeatable": true, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 300, + "maxRunDistance": 7, + "lootAfterCompleting": "Inhibit", + "steps": [ + { + "waitTimeAfterCompleting": 1, + "position" : { + "x": 121.843513, + "y": 7.21238852, + "z": -44.8152275 + } + }, + { + "stepType" : "Snipe", + "minElapsedTime": { + "min": 30, + "max": 120 + }, + "position" : { + "x": 121.843513, + "y": 7.21238852, + "z": -44.8152275 + }, + "lookToPosition" : { + "x": 177.1923, + "y": 1.34380126, + "z": -13.1044359 + } + } + ] + }, + { + "repeatable": true, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 300, + "maxRunDistance": 8, + "lootAfterCompleting": "Inhibit", + "steps": [ + { + "waitTimeAfterCompleting": 1, + "position" : { + "x": 117.2035, + "y": 7.12368727, + "z": -37.647068 + } + }, + { + "stepType" : "Snipe", + "minElapsedTime": { + "min": 30, + "max": 120 + }, + "position" : { + "x": 117.2035, + "y": 7.12368727, + "z": -37.647068 + }, + "lookToPosition" : { + "x": 80.80869, + "y": 1.34798336, + "z": -13.2251692 + } + } + ] + }, + { + "repeatable": true, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 300, + "maxRunDistance": 8, + "lootAfterCompleting": "Inhibit", + "steps": [ + { + "waitTimeAfterCompleting": 1, + "position" : { + "x": 112.00209, + "y": 7.12368441, + "z": -38.86489 + } + }, + { + "stepType" : "Snipe", + "minElapsedTime": { + "min": 30, + "max": 120 + }, + "position" : { + "x": 112.00209, + "y": 7.12368441, + "z": -38.86489 + }, + "lookToPosition" : { + "x": 80.80869, + "y": 1.34798336, + "z": -13.2251692 + } + } + ] + }, + { + "repeatable": true, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 300, + "maxRunDistance": 8, + "lootAfterCompleting": "Inhibit", + "steps": [ + { + "waitTimeAfterCompleting": 1, + "position" : { + "x": 101.9579, + "y": 7.12368441, + "z": -41.3062668 + } + }, + { + "stepType" : "Snipe", + "minElapsedTime": { + "min": 30, + "max": 120 + }, + "position" : { + "x": 101.9579, + "y": 7.12368441, + "z": -41.3062668 + }, + "lookToPosition" : { + "x": 108.383072, + "y": 1.181496, + "z": 4.97027636 + } + } + ] + }, + { + "repeatable": true, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 300, + "maxRunDistance": 9, + "lootAfterCompleting": "Inhibit", + "steps": [ + { + "waitTimeAfterCompleting": 1, + "position" : { + "x": 93.39097, + "y": 7.175949, + "z": -42.78393 + } + }, + { + "stepType" : "Snipe", + "minElapsedTime": { + "min": 30, + "max": 120 + }, + "position" : { + "x": 93.39097, + "y": 7.175949, + "z": -42.78393 + }, + "lookToPosition" : { + "x": 108.383072, + "y": 1.181496, + "z": 4.97027636 + } + } + ] + } + ] + }, + { + "repeatable": true, + "isSniping": true, + "minLevel": 0, + "maxLevel": 99, + "maxBots": 2, + "maxBotsInGroup": 1, + "desirability": 10, + "pmcsOnly": true, + "name": "Boiler Building Downstairs Sniping", + "forbiddenWeapons" : [ "pistol", "shotgun" ], + "objectives" : [ + { + "repeatable": true, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 300, + "maxRunDistance": 4, + "lootAfterCompleting": "Inhibit", + "steps": [ + { + "waitTimeAfterCompleting": 1, + "position" : { + "x": 95.09854, + "y": 1.33135664, + "z": -75.57009 + } + }, + { + "stepType" : "Snipe", + "minElapsedTime": { + "min": 45, + "max": 180 + }, + "position" : { + "x": 95.09854, + "y": 1.33135664, + "z": -75.57009 + }, + "lookToPosition" : { + "x": 43.1684532, + "y": 1.12144041, + "z": -92.07485 + } + } + ] + } + ] + }, + { + "repeatable": true, + "isSniping": true, + "minLevel": 0, + "maxLevel": 99, + "maxBots": 2, + "maxBotsInGroup": 1, + "desirability": 5, + "pmcsOnly": true, + "name": "Warehouse 17 Sniping", + "forbiddenWeapons" : [ "pistol", "shotgun" ], + "objectives" : [ + { + "repeatable": true, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 300, + "maxRunDistance": 5, + "lootAfterCompleting": "Inhibit", + "steps": [ + { + "waitTimeAfterCompleting": 1, + "position" : { + "x": 33.1476822, + "y": 4.467968, + "z": -53.5027771 + } + }, + { + "stepType" : "Snipe", + "minElapsedTime": { + "min": 45, + "max": 180 + }, + "position" : { + "x": 33.1476822, + "y": 4.467968, + "z": -53.5027771 + }, + "lookToPosition" : { + "x": 38.3099442, + "y": 1.06111491, + "z": -28.5177727 + } + } + ] + }, + { + "repeatable": true, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 300, + "maxRunDistance": 5, + "lootAfterCompleting": "Inhibit", + "steps": [ + { + "waitTimeAfterCompleting": 1, + "position" : { + "x": 26.3083324, + "y": 4.476097, + "z": -55.05817 + } + }, + { + "stepType" : "Snipe", + "minElapsedTime": { + "min": 45, + "max": 180 + }, + "position" : { + "x": 26.3083324, + "y": 4.476097, + "z": -55.05817 + }, + "lookToPosition" : { + "x": 19.9348412, + "y": -1.08328843, + "z": 32.6381264 + } + } + ] + }, + { + "repeatable": true, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 300, + "maxRunDistance": 5, + "lootAfterCompleting": "Inhibit", + "steps": [ + { + "waitTimeAfterCompleting": 1, + "position" : { + "x": 24.7335072, + "y": 4.496749, + "z": -56.9123955 + } + }, + { + "stepType" : "Snipe", + "minElapsedTime": { + "min": 45, + "max": 180 + }, + "position" : { + "x": 24.7335072, + "y": 4.496749, + "z": -56.9123955 + }, + "lookToPosition" : { + "x": -74.47109, + "y": 0.408416271, + "z": 1.47672141 + } + } + ] + } + ] + }, + { + "repeatable": true, + "isSniping": true, + "minLevel": 0, + "maxLevel": 99, + "maxBots": 2, + "maxBotsInGroup": 1, + "desirability": 10, + "pmcsOnly": false, + "name": "Industrial Plant Silos Counter-Sniping", + "forbiddenWeapons" : [ "pistol", "shotgun" ], + "objectives" : [ + { + "repeatable": true, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 300, + "lootAfterCompleting": "Inhibit", + "steps": [ + { + "waitTimeAfterCompleting": 1, + "position" : { + "x": 228.5874, + "y": 7.3696723, + "z": -12.8726206 + } + }, + { + "stepType" : "Snipe", + "minElapsedTime": { + "min": 45, + "max": 180 + }, + "position" : { + "x": 228.5874, + "y": 7.3696723, + "z": -12.8726206 + }, + "lookToPosition" : { + "x": 251.603333, + "y": 8.497094, + "z": -25.27257 + } + } + ] + } + ] + }, + { + "repeatable": true, + "isCamping": true, + "minLevel": 0, + "maxLevel": 99, + "maxBots": 2, + "desirability": 15, + "pmcsOnly": false, + "name": "Skeleton Bush Camping", + "forbiddenWeapons" : [ "pistol", "shotgun" ], + "objectives" : [ + { + "repeatable": true, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 300, + "maxRunDistance": 3, + "steps": [ + { + "waitTimeAfterCompleting": 0, + "position" : { + "x": 237.11235, + "y": 1.24006593, + "z": 6.803322 + } + }, + { + "waitTimeAfterCompleting": 1, + "stepType" : "HoldAtPosition", + "maxDistance": 6, + "minElapsedTime": { + "min": 60, + "max": 240 + }, + "position" : { + "x": 237.11235, + "y": 1.24006593, + "z": 6.803322 + } + } + ] + } + ] + } +] \ No newline at end of file diff --git a/BepInEx/plugins/DanW-SPTQuestingBots/quests/standard/factory4_day.json b/BepInEx/plugins/DanW-SPTQuestingBots/quests/standard/factory4_day.json new file mode 100644 index 0000000..71e98ef --- /dev/null +++ b/BepInEx/plugins/DanW-SPTQuestingBots/quests/standard/factory4_day.json @@ -0,0 +1,1946 @@ +[ + { + "repeatable": true, + "isCamping": true, + "minLevel": 0, + "maxLevel": 99, + "maxBots": 2, + "maxBotsInGroup": 1, + "desirability": 50, + "maxRaidET": 300, + "pmcsOnly": true, + "name": "3rd Floor Office Rush", + "objectives" : [ + { + "repeatable": false, + "minDistanceFromBot": 0, + "maxDistanceFromBot": 300, + "maxRunDistance": 2, + "steps": [ + { + "waitTimeAfterCompleting": 1, + "position" : { + "x": 19.6659336, + "y": 8.210877, + "z": 39.32507 + } + }, + { + "waitTimeAfterCompleting": 1, + "position" : { + "x": 13.3895779, + "y": 8.152602, + "z": 40.1110153 + } + } + ] + }, + { + "repeatable": true, + "minDistanceFromBot": 0, + "maxDistanceFromBot": 300, + "maxRunDistance": 4, + "lootAfterCompleting": "Inhibit", + "steps": [ + { + "waitTimeAfterCompleting": 0, + "position" : { + "x": 16.8211918, + "y": 8.210876, + "z": 40.7296944 + } + }, + { + "waitTimeAfterCompleting": 0, + "stepType" : "CloseNearbyDoors", + "maxDistance": 6, + "position" : { + "x": 16.8211918, + "y": 8.210876, + "z": 40.7296944 + } + }, + { + "waitTimeAfterCompleting": 0, + "position" : { + "x": 13.3895779, + "y": 8.152602, + "z": 40.1110153 + } + }, + { + "stepType" : "Ambush", + "minElapsedTime": { + "min": 30, + "max": 180 + }, + "position" : { + "x": 13.3895779, + "y": 8.152602, + "z": 40.1110153 + }, + "lookToPosition" : { + "x": 15.4795837, + "y": 7.929986, + "z": 37.55749 + } + } + ] + } + ] + }, + { + "repeatable": true, + "minLevel": 0, + "maxLevel": 99, + "maxBots": 3, + "desirability": 35, + "name": "3rd Floor Office", + "objectives" : [ + { + "repeatable": true, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 9999, + "maxRunDistance": 2, + "steps": [ + { + "position" : { + "x": 19.6659336, + "y": 8.210877, + "z": 39.32507 + } + }, + { + "position" : { + "x": 13.3895779, + "y": 8.152602, + "z": 40.1110153 + } + } + ] + } + ] + }, + { + "repeatable": true, + "minLevel": 0, + "maxLevel": 99, + "maxBots": 3, + "desirability": 35, + "name": "1st Floor Office", + "objectives" : [ + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 9999, + "maxRunDistance": 5, + "steps": [ + { + "position" : { + "x": 27.93569, + "y": 1.05174947, + "z": 45.4769974 + } + } + ] + }, + { + "repeatable": true, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 9999, + "steps": [ + { + "position" : { + "x": 21.9582081, + "y": 0.992835164, + "z": 41.4553871 + } + } + ] + }, + { + "repeatable": true, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 9999, + "steps": [ + { + "position" : { + "x": 13.09467, + "y": 1.04547358, + "z": 39.8262672 + } + } + ] + } + ] + }, + { + "repeatable": true, + "minLevel": 0, + "maxLevel": 99, + "maxBots": 3, + "desirability": 35, + "name": "Med Tent", + "objectives" : [ + { + "repeatable": true, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 100, + "steps": [ + { + "position" : { + "x": -16.1654949, + "y": 0.259162873, + "z": -25.7997437 + } + }, + { + "position" : { + "x": -16.4820213, + "y": 0.2587055, + "z": -30.8747845 + } + } + ] + } + ] + }, + { + "repeatable": true, + "minLevel": 0, + "maxLevel": 99, + "maxBots": 2, + "desirability": 15, + "name": "Forklift", + "objectives" : [ + { + "repeatable": true, + "minDistanceFromBot": 30, + "maxDistanceFromBot": 125, + "steps": [ + { + "position" : { + "x": 65.87476, + "y": 0.06257654, + "z": -44.1641731 + } + } + ] + } + ] + }, + { + "repeatable": true, + "minLevel": 0, + "maxLevel": 99, + "maxBots": 1, + "desirability": 25, + "pmcsOnly": true, + "name": "Boilers", + "objectives" : [ + { + "repeatable": true, + "minDistanceFromBot": 20, + "maxDistanceFromBot": 150, + "lootAfterCompleting": "Inhibit", + "steps": [ + { + "waitTimeAfterCompleting": 1, + "position" : { + "x": 51.1654968, + "y": 4.309441, + "z": 10.63328 + } + }, + { + "stepType" : "HoldAtPosition", + "maxDistance": 5, + "minElapsedTime": { + "min": 5, + "max": 45 + }, + "position" : { + "x": 51.1654968, + "y": 4.309441, + "z": 10.63328 + } + } + ] + } + ] + }, + { + "repeatable": true, + "isCamping": true, + "minLevel": 0, + "maxLevel": 20, + "maxBots": 1, + "maxBotsInGroup": 1, + "desirability": 10, + "name": "Dumpster Hiding", + "objectives" : [ + { + "repeatable": true, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 75, + "lootAfterCompleting": "Inhibit", + "steps": [ + { + "waitTimeAfterCompleting": 1, + "position" : { + "x": 32.56265, + "y": 0.09880137, + "z": -0.195569143 + } + }, + { + "stepType" : "HoldAtPosition", + "maxDistance": 2, + "minElapsedTime": { + "min": 20, + "max": 90 + }, + "position" : { + "x": 32.56265, + "y": 0.09880137, + "z": -0.195569143 + } + } + ] + } + ] + }, + { + "repeatable": true, + "isCamping": true, + "minLevel": 0, + "maxLevel": 10, + "maxBots": 1, + "maxBotsInGroup": 1, + "desirability": 5, + "name": "Timmy's Forklift Hiding Spot", + "objectives" : [ + { + "repeatable": true, + "minDistanceFromBot": 20, + "maxDistanceFromBot": 75, + "lootAfterCompleting": "Inhibit", + "steps": [ + { + "waitTimeAfterCompleting": 1, + "position" : { + "x": 69.09913, + "y": 0.3025684, + "z": -65.6458 + } + }, + { + "stepType" : "HoldAtPosition", + "maxDistance": 4, + "minElapsedTime": { + "min": 30, + "max": 180 + }, + "position" : { + "x": 69.09913, + "y": 0.3025684, + "z": -65.6458 + } + } + ] + } + ] + }, + { + "repeatable": true, + "isCamping": true, + "minLevel": 0, + "maxLevel": 99, + "maxBots": 1, + "maxBotsInGroup": 1, + "desirability": 10, + "pmcsOnly": true, + "name": "Pumping Station Roof", + "objectives" : [ + { + "repeatable": true, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 150, + "lootAfterCompleting": "Inhibit", + "steps": [ + { + "waitTimeAfterCompleting": 1, + "position" : { + "x": 37.96435, + "y": 3.12471485, + "z": -11.442337 + } + }, + { + "stepType" : "HoldAtPosition", + "maxDistance": 3, + "minElapsedTime": { + "min": 30, + "max": 120 + }, + "position" : { + "x": 37.96435, + "y": 3.12471485, + "z": -11.442337 + } + } + ] + } + ] + }, + { + "repeatable": true, + "isCamping": true, + "minLevel": 0, + "maxLevel": 99, + "maxBots": 1, + "maxBotsInGroup": 1, + "desirability": 5, + "pmcsOnly": true, + "name": "Unloading Area Rafters", + "objectives" : [ + { + "repeatable": true, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 150, + "lootAfterCompleting": "Inhibit", + "steps": [ + { + "waitTimeAfterCompleting": 1, + "position" : { + "x": 50.31439, + "y": 8.414999, + "z": 15.6041031 + } + }, + { + "stepType" : "HoldAtPosition", + "maxDistance": 8, + "minElapsedTime": { + "min": 45, + "max": 180 + }, + "position" : { + "x": 50.31439, + "y": 8.414999, + "z": 15.6041031 + } + } + ] + } + ] + }, + { + "repeatable": true, + "isCamping": true, + "minLevel": 0, + "maxLevel": 99, + "maxBots": 1, + "maxBotsInGroup": 1, + "desirability": 5, + "name": "Workshop Area Rafters", + "objectives" : [ + { + "repeatable": true, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 150, + "lootAfterCompleting": "Inhibit", + "steps": [ + { + "waitTimeAfterCompleting": 1, + "position" : { + "x": 21.4582462, + "y": 8.381361, + "z": 14.2037468 + } + }, + { + "stepType" : "HoldAtPosition", + "maxDistance": 8, + "minElapsedTime": { + "min": 45, + "max": 180 + }, + "position" : { + "x": 21.4582462, + "y": 8.381361, + "z": 14.2037468 + } + } + ] + } + ] + }, + { + "repeatable": true, + "isCamping": true, + "minLevel": 0, + "maxLevel": 99, + "maxBots": 3, + "maxBotsInGroup": 2, + "desirability": 25, + "name": "Basement Intersection Camping", + "objectives" : [ + { + "repeatable": true, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 100, + "lootAfterCompleting": "Inhibit", + "steps": [ + { + "waitTimeAfterCompleting": 1, + "position" : { + "x": 19.4162, + "y": -2.636395, + "z": -14.8612442 + } + }, + { + "stepType" : "HoldAtPosition", + "maxDistance": 5, + "minElapsedTime": { + "min": 30, + "max": 120 + }, + "position" : { + "x": 19.4162, + "y": -2.636395, + "z": -14.8612442 + } + } + ] + } + ] + }, + { + "repeatable": true, + "minLevel": 10, + "maxLevel": 99, + "maxBots": 1, + "desirability": 10, + "name": "Engineer's Office", + "objectives" : [ + { + "repeatable": true, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 500, + "maxRunDistance": 3, + "steps": [ + { + "position" : { + "x": 31.1152, + "y": 8.210876, + "z": 39.4699364 + } + } + ] + } + ] + }, + { + "repeatable": true, + "minLevel": 0, + "maxLevel": 99, + "maxBots": 3, + "desirability": 35, + "name": "Crates Outside of Stairwell", + "objectives" : [ + { + "repeatable": true, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 100, + "steps": [ + { + "position" : { + "x": 34.7748528, + "y": 0.102185175, + "z": 21.2204361 + } + }, + { + "position" : { + "x": 28.2893925, + "y": 0.236073449, + "z": 18.7053452 + } + } + ] + } + ] + }, + { + "repeatable": true, + "minLevel": 0, + "maxLevel": 99, + "maxBots": 3, + "desirability": 35, + "name": "Crates Near Lower Platform", + "objectives" : [ + { + "repeatable": true, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 100, + "steps": [ + { + "position" : { + "x": -8.90471649, + "y": 0.0782203153, + "z": 36.78657 + } + }, + { + "position" : { + "x": -3.35411382, + "y": 1.07015216, + "z": 48.2082138 + } + } + ] + } + ] + }, + { + "repeatable": false, + "minLevel": 0, + "maxLevel": 99, + "maxBots": 2, + "desirability": 10, + "name": "Basement Crates", + "objectives" : [ + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 100, + "steps": [ + { + "position" : { + "x": 15.5488911, + "y": -2.60598826, + "z": -32.5009232 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 100, + "steps": [ + { + "position" : { + "x": -8.283826, + "y": -3.88754916, + "z": -33.3428421 + } + } + ] + } + ] + }, + { + "repeatable": false, + "minLevel": 0, + "maxLevel": 99, + "maxBots": 2, + "desirability": 20, + "name": "NE Crates in Workshop", + "objectives" : [ + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 75, + "steps": [ + { + "position" : { + "x": 19.6262, + "y": 0.0311360471, + "z": -29.8704357 + } + } + ] + } + ] + }, + { + "repeatable": false, + "minLevel": 0, + "maxLevel": 99, + "maxBots": 2, + "desirability": 10, + "name": "Weapon Crates outside Office", + "objectives" : [ + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 75, + "steps": [ + { + "position" : { + "x": 20.5580559, + "y": 0.0246979147, + "z": 24.49675 + } + } + ] + } + ] + }, + { + "repeatable": true, + "minLevel": 0, + "maxLevel": 99, + "maxBots": 3, + "desirability": 35, + "name": "Crates Outside of Gate 3", + "objectives" : [ + { + "repeatable": true, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 100, + "steps": [ + { + "position" : { + "x": 59.4847832, + "y": 0.0442806259, + "z": 23.12022 + } + } + ] + } + ] + }, + { + "repeatable": false, + "minLevel": 0, + "maxLevel": 99, + "maxBots": 2, + "desirability": 10, + "name": "Crates Outside of Scav Bunker", + "objectives" : [ + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 100, + "steps": [ + { + "position" : { + "x": -19.2387371, + "y": 2.80248833, + "z": 25.4677982 + } + } + ] + } + ] + }, + { + "repeatable": true, + "minLevel": 0, + "maxLevel": 99, + "maxBots": 2, + "desirability": 10, + "name": "Holding Area Patrol", + "objectives" : [ + { + "repeatable": true, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 100, + "steps": [ + { + "position" : { + "x": -24.77775, + "y": 1.04092336, + "z": 54.6349144 + } + } + ] + } + ] + }, + { + "repeatable": false, + "minLevel": 0, + "maxLevel": 99, + "maxBots": 2, + "desirability": 15, + "name": "Bathroom Key Spawns", + "objectives" : [ + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 100, + "steps": [ + { + "position" : { + "x": 17.3941059, + "y": 4.53283548, + "z": 40.3690834 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 100, + "steps": [ + { + "position" : { + "x": 31.1609535, + "y": 4.532834, + "z": 48.15273 + } + } + ] + } + ] + }, + { + "repeatable": true, + "minLevel": 0, + "maxLevel": 99, + "maxBots": 2, + "desirability": 15, + "name": "3rd Floor Hallway", + "objectives" : [ + { + "repeatable": true, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 100, + "steps": [ + { + "position" : { + "x": 23.0656872, + "y": 8.210877, + "z": 35.2329865 + } + } + ] + } + ] + }, + { + "repeatable": false, + "minLevel": 0, + "maxLevel": 99, + "maxBots": 2, + "desirability": 20, + "name": "Break Room", + "objectives" : [ + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 100, + "steps": [ + { + "position" : { + "x": 44.3356667, + "y": 4.41316557, + "z": 40.4929771 + } + } + ] + } + ] + }, + { + "repeatable": true, + "minLevel": 0, + "maxLevel": 99, + "maxBots": 2, + "desirability": 10, + "name": "Silos", + "objectives" : [ + { + "repeatable": true, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 100, + "steps": [ + { + "position" : { + "x": 18.1133633, + "y": 0.0688911751, + "z": 1.38644886 + } + } + ] + }, + { + "repeatable": true, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 100, + "steps": [ + { + "position" : { + "x": 0.7443781, + "y": 0.09867087, + "z": 8.002051 + } + } + ] + } + ] + }, + { + "repeatable": false, + "minLevel": 0, + "maxLevel": 99, + "maxBots": 2, + "desirability": 15, + "name": "Kitchen", + "objectives" : [ + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 100, + "steps": [ + { + "position" : { + "x": 32.8393822, + "y": 0.09812004, + "z": -32.25197 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 100, + "steps": [ + { + "position" : { + "x": 29.0506649, + "y": 0.104832157, + "z": -32.8988037 + } + } + ] + } + ] + }, + { + "repeatable": false, + "minLevel": 0, + "maxLevel": 99, + "maxBots": 2, + "desirability": 10, + "name": "Customs Transit Jackets", + "objectives" : [ + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 100, + "steps": [ + { + "position" : { + "x": 15.95244, + "y": 0.110957347, + "z": -37.62961 + } + } + ] + } + ] + }, + { + "repeatable": false, + "minLevel": 0, + "maxLevel": 99, + "maxBots": 2, + "desirability": 25, + "name": "Medical Office", + "objectives" : [ + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 100, + "steps": [ + { + "position" : { + "x": 28.2255745, + "y": 3.6369884, + "z": -31.09007 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 100, + "steps": [ + { + "position" : { + "x": 29.484972, + "y": 3.5772028, + "z": -18.7588329 + } + } + ] + } + ] + }, + { + "repeatable": false, + "minLevel": 15, + "maxLevel": 99, + "maxBots": 3, + "desirability": 35, + "name": "TerraGroup Storage Room", + "objectives" : [ + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 300, + "steps": [ + { + "position" : { + "x": -22.6404247, + "y": -2.606005, + "z": 45.8475952 + } + }, + { + "position" : { + "x": -21.1182747, + "y": -2.606005, + "z": 47.2522 + } + } + ] + } + ] + }, + { + "repeatable": false, + "minLevel": 0, + "maxLevel": 99, + "maxBots": 2, + "desirability": 10, + "name": "Motor Spawn Crate", + "objectives" : [ + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 100, + "steps": [ + { + "position" : { + "x": -24.70332, + "y": 1.11713231, + "z": 65.49462 + } + } + ] + } + ] + }, + { + "repeatable": false, + "minLevel": 0, + "maxLevel": 99, + "maxBots": 2, + "desirability": 10, + "name": "Electrical Room", + "objectives" : [ + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 100, + "steps": [ + { + "position" : { + "x": 1.55971575, + "y": -2.60288215, + "z": 52.56694 + } + } + ] + } + ] + }, + { + "repeatable": false, + "minLevel": 0, + "maxLevel": 99, + "maxBots": 2, + "desirability": 10, + "name": "Office Basement", + "objectives" : [ + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 100, + "steps": [ + { + "position" : { + "x": 10.626318, + "y": -2.598901, + "z": 40.9252167 + } + } + ] + } + ] + }, + { + "repeatable": false, + "minLevel": 0, + "maxLevel": 99, + "maxBots": 2, + "desirability": 10, + "name": "Crate Near Cellars", + "objectives" : [ + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 100, + "steps": [ + { + "position" : { + "x": 49.06068, + "y": -2.59701419, + "z": -22.17233 + } + } + ] + } + ] + }, + { + "repeatable": false, + "minLevel": 0, + "maxLevel": 99, + "maxBots": 2, + "desirability": 10, + "name": "Pumping Station Basement", + "objectives" : [ + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 100, + "steps": [ + { + "position" : { + "x": 39.30435, + "y": -2.59412026, + "z": -14.7634773 + } + } + ] + } + ] + }, + { + "repeatable": false, + "minLevel": 0, + "maxLevel": 99, + "maxBots": 2, + "desirability": 10, + "name": "Create Near Forklift Basement", + "objectives" : [ + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 100, + "steps": [ + { + "position" : { + "x": 33.794735, + "y": -2.612523, + "z": -26.8131313 + } + } + ] + } + ] + }, + { + "repeatable": false, + "minLevel": 0, + "maxLevel": 99, + "maxBots": 2, + "desirability": 15, + "name": "Dead Scav Room", + "objectives" : [ + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 100, + "steps": [ + { + "position" : { + "x": -21.5226784, + "y": 0.106768131, + "z": 23.596838 + } + } + ] + } + ] + }, + { + "repeatable": false, + "minLevel": 0, + "maxLevel": 99, + "maxBots": 2, + "desirability": 10, + "name": "Boilers Basement", + "objectives" : [ + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 100, + "steps": [ + { + "position" : { + "x": 68.6666946, + "y": -2.61377954, + "z": 12.3183289 + } + } + ] + } + ] + }, + { + "repeatable": false, + "minLevel": 0, + "maxLevel": 99, + "maxBots": 2, + "desirability": 10, + "name": "Gate 2", + "objectives" : [ + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 100, + "steps": [ + { + "position" : { + "x": 42.93933, + "y": 0.290730149, + "z": -51.66859 + } + } + ] + } + ] + }, + { + "repeatable": true, + "isCamping": true, + "minLevel": 10, + "maxLevel": 99, + "maxBots": 1, + "maxBotsInGroup": 1, + "minRaidET": 300, + "desirability": 10, + "pmcsOnly": true, + "name": "Gate 0", + "objectives" : [ + { + "repeatable": true, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 300, + "maxRunDistance": 6, + "lootAfterCompleting": "Inhibit", + "steps": [ + { + "waitTimeAfterCompleting": 0, + "position" : { + "x": -54.7612839, + "y": 1.30933273, + "z": 57.02954 + } + }, + { + "waitTimeAfterCompleting": 0, + "stepType" : "CloseNearbyDoors", + "maxDistance": 5, + "position" : { + "x": -54.7612839, + "y": 1.30933273, + "z": 57.02954 + } + }, + { + "waitTimeAfterCompleting": 1, + "position" : { + "x": -60.0108528, + "y": 1.30933273, + "z": 57.03622 + } + }, + { + "stepType" : "Ambush", + "minElapsedTime": { + "min": 45, + "max": 180 + }, + "position" : { + "x": -60.0108528, + "y": 1.30933273, + "z": 57.03622 + }, + "lookToPosition" : { + "x": -54.7612839, + "y": 1.30933273, + "z": 57.02954 + } + } + ] + } + ] + }, + { + "repeatable": true, + "isCamping": true, + "minLevel": 10, + "maxLevel": 99, + "maxBots": 1, + "maxBotsInGroup": 1, + "minRaidET": 300, + "desirability": 10, + "pmcsOnly": true, + "name": "Med Tent Gate", + "objectives" : [ + { + "repeatable": true, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 300, + "maxRunDistance": 5, + "lootAfterCompleting": "Inhibit", + "steps": [ + { + "waitTimeAfterCompleting": 0, + "position" : { + "x": -19.4488735, + "y": 0.172152728, + "z": -50.8474846 + } + }, + { + "waitTimeAfterCompleting": 0, + "stepType" : "CloseNearbyDoors", + "maxDistance": 5, + "position" : { + "x": -19.4488735, + "y": 0.172152728, + "z": -50.8474846 + } + }, + { + "waitTimeAfterCompleting": 1, + "position" : { + "x": -18.3804874, + "y": 0.210918948, + "z": -54.71151 + } + }, + { + "stepType" : "Ambush", + "minElapsedTime": { + "min": 45, + "max": 180 + }, + "position" : { + "x": -18.3804874, + "y": 0.210918948, + "z": -54.71151 + }, + "lookToPosition" : { + "x": -19.6342278, + "y": 1.191838, + "z": -48.1690445 + } + } + ] + } + ] + }, + { + "repeatable": true, + "isCamping": true, + "minLevel": 0, + "maxLevel": 99, + "maxBots": 2, + "maxBotsInGroup": 1, + "minRaidET": 300, + "desirability": 15, + "name": "Gate 3 Entrance", + "objectives" : [ + { + "repeatable": true, + "minDistanceFromBot": 25, + "maxDistanceFromBot": 500, + "maxRunDistance": 5, + "lootAfterCompleting": "Inhibit", + "steps": [ + { + "waitTimeAfterCompleting": 0, + "position" : { + "x": 60.68221, + "y": 0.237433881, + "z": 43.7271233 + } + }, + { + "waitTimeAfterCompleting": 0, + "stepType" : "CloseNearbyDoors", + "maxDistance": 5, + "position" : { + "x": 60.68221, + "y": 0.237433881, + "z": 43.7271233 + } + }, + { + "waitTimeAfterCompleting": 1, + "position" : { + "x": 56.4665833, + "y": 0.208644077, + "z": 46.9904823 + } + }, + { + "stepType" : "Ambush", + "minElapsedTime": { + "min": 45, + "max": 180 + }, + "position" : { + "x": 56.4665833, + "y": 0.208644077, + "z": 46.9904823 + }, + "lookToPosition" : { + "x": 60.8949471, + "y": 0.290820271, + "z": 42.35923 + } + } + ] + } + ] + }, + { + "repeatable": true, + "isCamping": true, + "minLevel": 0, + "maxLevel": 99, + "maxBots": 2, + "maxBotsInGroup": 1, + "minRaidET": 0, + "desirability": 10, + "name": "Gate 3 Camping", + "objectives" : [ + { + "repeatable": true, + "minDistanceFromBot": 25, + "maxDistanceFromBot": 500, + "maxRunDistance": 3, + "lootAfterCompleting": "Inhibit", + "steps": [ + { + "waitTimeAfterCompleting": 1, + "position" : { + "x": 54.1504326, + "y": 0.10168419, + "z": 25.5377655 + } + }, + { + "stepType" : "Ambush", + "minElapsedTime": { + "min": 45, + "max": 180 + }, + "position" : { + "x": 54.1504326, + "y": 0.10168419, + "z": 25.5377655 + }, + "lookToPosition" : { + "x": 60.8949471, + "y": 0.290820271, + "z": 42.35923 + } + } + ] + } + ] + }, + { + "repeatable": true, + "isSniping": true, + "minLevel": 0, + "maxLevel": 99, + "maxBots": 2, + "maxBotsInGroup": 1, + "minRaidET": 0, + "desirability": 10, + "name": "NE Overlook Sniping", + "forbiddenWeapons" : [ "pistol", "shotgun" ], + "objectives" : [ + { + "repeatable": true, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 100, + "maxRunDistance": 3, + "lootAfterCompleting": "Inhibit", + "steps": [ + { + "waitTimeAfterCompleting": 1, + "position" : { + "x": 26.93721, + "y": 7.1638875, + "z": -34.23078 + } + }, + { + "stepType" : "Snipe", + "minElapsedTime": { + "min": 45, + "max": 90 + }, + "position" : { + "x": 26.93721, + "y": 7.1638875, + "z": -34.23078 + }, + "lookToPosition" : { + "x": 0.1440212, + "y": 0.5240916, + "z": -12.7683258 + } + } + ] + }, + { + "repeatable": true, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 100, + "maxRunDistance": 3, + "lootAfterCompleting": "Inhibit", + "steps": [ + { + "waitTimeAfterCompleting": 1, + "position" : { + "x": 26.5837727, + "y": 7.18387556, + "z": -26.3397732 + } + }, + { + "stepType" : "Snipe", + "minElapsedTime": { + "min": 45, + "max": 90 + }, + "position" : { + "x": 26.5837727, + "y": 7.18387556, + "z": -26.3397732 + }, + "lookToPosition" : { + "x": 2.980758, + "y": 0.0533044264, + "z": -25.0165653 + } + } + ] + }, + { + "repeatable": true, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 100, + "maxRunDistance": 3, + "lootAfterCompleting": "Inhibit", + "steps": [ + { + "waitTimeAfterCompleting": 1, + "position" : { + "x": 32.6527634, + "y": 7.163847, + "z": -18.0808849 + } + }, + { + "stepType" : "Snipe", + "minElapsedTime": { + "min": 45, + "max": 90 + }, + "position" : { + "x": 32.6527634, + "y": 7.163847, + "z": -18.0808849 + }, + "lookToPosition" : { + "x": 16.9550438, + "y": 0.0439152047, + "z": -3.2241478 + } + } + ] + } + ] + }, + { + "repeatable": true, + "isSniping": true, + "minLevel": 0, + "maxLevel": 99, + "maxBots": 2, + "maxBotsInGroup": 1, + "minRaidET": 0, + "desirability": 10, + "name": "Forklift Overlook Sniping", + "forbiddenWeapons" : [ "pistol", "shotgun" ], + "objectives" : [ + { + "repeatable": true, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 100, + "maxRunDistance": 3, + "lootAfterCompleting": "Inhibit", + "steps": [ + { + "waitTimeAfterCompleting": 1, + "position" : { + "x": 35.1603355, + "y": 3.357499, + "z": -13.095974 + } + }, + { + "stepType" : "Snipe", + "minElapsedTime": { + "min": 45, + "max": 120 + }, + "position" : { + "x": 35.1603355, + "y": 3.357499, + "z": -13.095974 + }, + "lookToPosition" : { + "x": 8.341753, + "y": 0.06865645, + "z": -11.0077314 + } + } + ] + } + ] + }, + { + "repeatable": true, + "isSniping": true, + "minLevel": 0, + "maxLevel": 99, + "maxBots": 2, + "maxBotsInGroup": 1, + "minRaidET": 0, + "desirability": 10, + "name": "Lower Platform Overlook Sniping", + "forbiddenWeapons" : [ "pistol", "shotgun" ], + "objectives" : [ + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 100, + "steps": [ + { + "position" : { + "x": 5.73753643, + "y": 7.523549, + "z": 58.982357 + } + } + ] + }, + { + "repeatable": true, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 100, + "maxRunDistance": 3, + "lootAfterCompleting": "Inhibit", + "steps": [ + { + "waitTimeAfterCompleting": 1, + "position" : { + "x": 4.81528, + "y": 7.348855, + "z": 63.80513 + } + }, + { + "stepType" : "Snipe", + "minElapsedTime": { + "min": 45, + "max": 120 + }, + "position" : { + "x": 4.81528, + "y": 7.348855, + "z": 63.80513 + }, + "lookToPosition" : { + "x": -13.9115572, + "y": 1.09727836, + "z": 45.75023 + } + } + ] + } + ] + }, + { + "repeatable": true, + "isSniping": true, + "minLevel": 0, + "maxLevel": 99, + "maxBots": 2, + "maxBotsInGroup": 1, + "minRaidET": 0, + "desirability": 10, + "name": "Lower Platform Gate 0 Sniping", + "forbiddenWeapons" : [ "pistol", "shotgun" ], + "objectives" : [ + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 100, + "steps": [ + { + "position" : { + "x": -39.35619, + "y": 7.545757, + "z": 50.0711327 + } + } + ] + }, + { + "repeatable": true, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 100, + "maxRunDistance": 3, + "lootAfterCompleting": "Inhibit", + "steps": [ + { + "waitTimeAfterCompleting": 1, + "position" : { + "x": -40.1399155, + "y": 7.5481596, + "z": 62.6338158 + } + }, + { + "stepType" : "Snipe", + "minElapsedTime": { + "min": 45, + "max": 120 + }, + "position" : { + "x": -40.1399155, + "y": 7.5481596, + "z": 62.6338158 + }, + "lookToPosition" : { + "x": -14.0353928, + "y": 1.085848, + "z": 43.8513527 + } + } + ] + } + ] + }, + { + "repeatable": true, + "isSniping": true, + "minLevel": 0, + "maxLevel": 99, + "maxBots": 2, + "maxBotsInGroup": 1, + "minRaidET": 0, + "desirability": 10, + "name": "Bridge Sniping", + "forbiddenWeapons" : [ "pistol", "shotgun" ], + "objectives" : [ + { + "repeatable": true, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 100, + "maxRunDistance": 3, + "lootAfterCompleting": "Inhibit", + "steps": [ + { + "waitTimeAfterCompleting": 1, + "position" : { + "x": 33.51976, + "y": 7.173575, + "z": -30.2683582 + } + }, + { + "stepType" : "Snipe", + "minElapsedTime": { + "min": 45, + "max": 90 + }, + "position" : { + "x": 33.51976, + "y": 7.173575, + "z": -30.2683582 + }, + "lookToPosition" : { + "x": 34.73927, + "y": 7.74177074, + "z": -3.76280761 + } + } + ] + }, + { + "repeatable": true, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 100, + "maxRunDistance": 3, + "lootAfterCompleting": "Inhibit", + "steps": [ + { + "waitTimeAfterCompleting": 1, + "position" : { + "x": 33.8669243, + "y": 7.74610043, + "z": 20.6869431 + } + }, + { + "stepType" : "Snipe", + "minElapsedTime": { + "min": 45, + "max": 90 + }, + "position" : { + "x": 33.8669243, + "y": 7.74610043, + "z": 20.6869431 + }, + "lookToPosition" : { + "x": 34.9852142, + "y": 7.753605, + "z": -26.2839241 + } + } + ] + } + ] + }, + { + "repeatable": true, + "isSniping": true, + "minLevel": 0, + "maxLevel": 99, + "maxBots": 2, + "maxBotsInGroup": 1, + "minRaidET": 0, + "desirability": 10, + "name": "Outside Sniping", + "forbiddenWeapons" : [ "pistol", "shotgun" ], + "objectives" : [ + { + "repeatable": true, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 100, + "maxRunDistance": 3, + "lootAfterCompleting": "Inhibit", + "steps": [ + { + "waitTimeAfterCompleting": 1, + "position" : { + "x": 9.925807, + "y": 3.67206979, + "z": -37.4831848 + } + }, + { + "stepType" : "Snipe", + "minElapsedTime": { + "min": 45, + "max": 180 + }, + "position" : { + "x": 9.925807, + "y": 3.67206979, + "z": -37.4831848 + }, + "lookToPosition" : { + "x": 18.42118, + "y": 0.0593294725, + "z": -19.0296955 + } + } + ] + } + ] + }, + { + "repeatable": true, + "isSniping": true, + "minLevel": 0, + "maxLevel": 99, + "maxBots": 2, + "maxBotsInGroup": 1, + "minRaidET": 0, + "desirability": 10, + "name": "Silos Overlook Sniping", + "forbiddenWeapons" : [ "pistol", "shotgun" ], + "objectives" : [ + { + "repeatable": true, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 100, + "maxRunDistance": 3, + "lootAfterCompleting": "Inhibit", + "steps": [ + { + "waitTimeAfterCompleting": 1, + "position" : { + "x": -21.5226784, + "y": 0.106768131, + "z": 23.596838 + } + }, + { + "stepType" : "Snipe", + "minElapsedTime": { + "min": 45, + "max": 180 + }, + "position" : { + "x": -21.5226784, + "y": 0.106768131, + "z": 23.596838 + }, + "lookToPosition" : { + "x": -6.225132, + "y": 0.09586, + "z": 10.3652267 + } + } + ] + } + ] + } +] \ No newline at end of file diff --git a/BepInEx/plugins/DanW-SPTQuestingBots/quests/standard/factory4_night.json b/BepInEx/plugins/DanW-SPTQuestingBots/quests/standard/factory4_night.json new file mode 100644 index 0000000..71e98ef --- /dev/null +++ b/BepInEx/plugins/DanW-SPTQuestingBots/quests/standard/factory4_night.json @@ -0,0 +1,1946 @@ +[ + { + "repeatable": true, + "isCamping": true, + "minLevel": 0, + "maxLevel": 99, + "maxBots": 2, + "maxBotsInGroup": 1, + "desirability": 50, + "maxRaidET": 300, + "pmcsOnly": true, + "name": "3rd Floor Office Rush", + "objectives" : [ + { + "repeatable": false, + "minDistanceFromBot": 0, + "maxDistanceFromBot": 300, + "maxRunDistance": 2, + "steps": [ + { + "waitTimeAfterCompleting": 1, + "position" : { + "x": 19.6659336, + "y": 8.210877, + "z": 39.32507 + } + }, + { + "waitTimeAfterCompleting": 1, + "position" : { + "x": 13.3895779, + "y": 8.152602, + "z": 40.1110153 + } + } + ] + }, + { + "repeatable": true, + "minDistanceFromBot": 0, + "maxDistanceFromBot": 300, + "maxRunDistance": 4, + "lootAfterCompleting": "Inhibit", + "steps": [ + { + "waitTimeAfterCompleting": 0, + "position" : { + "x": 16.8211918, + "y": 8.210876, + "z": 40.7296944 + } + }, + { + "waitTimeAfterCompleting": 0, + "stepType" : "CloseNearbyDoors", + "maxDistance": 6, + "position" : { + "x": 16.8211918, + "y": 8.210876, + "z": 40.7296944 + } + }, + { + "waitTimeAfterCompleting": 0, + "position" : { + "x": 13.3895779, + "y": 8.152602, + "z": 40.1110153 + } + }, + { + "stepType" : "Ambush", + "minElapsedTime": { + "min": 30, + "max": 180 + }, + "position" : { + "x": 13.3895779, + "y": 8.152602, + "z": 40.1110153 + }, + "lookToPosition" : { + "x": 15.4795837, + "y": 7.929986, + "z": 37.55749 + } + } + ] + } + ] + }, + { + "repeatable": true, + "minLevel": 0, + "maxLevel": 99, + "maxBots": 3, + "desirability": 35, + "name": "3rd Floor Office", + "objectives" : [ + { + "repeatable": true, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 9999, + "maxRunDistance": 2, + "steps": [ + { + "position" : { + "x": 19.6659336, + "y": 8.210877, + "z": 39.32507 + } + }, + { + "position" : { + "x": 13.3895779, + "y": 8.152602, + "z": 40.1110153 + } + } + ] + } + ] + }, + { + "repeatable": true, + "minLevel": 0, + "maxLevel": 99, + "maxBots": 3, + "desirability": 35, + "name": "1st Floor Office", + "objectives" : [ + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 9999, + "maxRunDistance": 5, + "steps": [ + { + "position" : { + "x": 27.93569, + "y": 1.05174947, + "z": 45.4769974 + } + } + ] + }, + { + "repeatable": true, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 9999, + "steps": [ + { + "position" : { + "x": 21.9582081, + "y": 0.992835164, + "z": 41.4553871 + } + } + ] + }, + { + "repeatable": true, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 9999, + "steps": [ + { + "position" : { + "x": 13.09467, + "y": 1.04547358, + "z": 39.8262672 + } + } + ] + } + ] + }, + { + "repeatable": true, + "minLevel": 0, + "maxLevel": 99, + "maxBots": 3, + "desirability": 35, + "name": "Med Tent", + "objectives" : [ + { + "repeatable": true, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 100, + "steps": [ + { + "position" : { + "x": -16.1654949, + "y": 0.259162873, + "z": -25.7997437 + } + }, + { + "position" : { + "x": -16.4820213, + "y": 0.2587055, + "z": -30.8747845 + } + } + ] + } + ] + }, + { + "repeatable": true, + "minLevel": 0, + "maxLevel": 99, + "maxBots": 2, + "desirability": 15, + "name": "Forklift", + "objectives" : [ + { + "repeatable": true, + "minDistanceFromBot": 30, + "maxDistanceFromBot": 125, + "steps": [ + { + "position" : { + "x": 65.87476, + "y": 0.06257654, + "z": -44.1641731 + } + } + ] + } + ] + }, + { + "repeatable": true, + "minLevel": 0, + "maxLevel": 99, + "maxBots": 1, + "desirability": 25, + "pmcsOnly": true, + "name": "Boilers", + "objectives" : [ + { + "repeatable": true, + "minDistanceFromBot": 20, + "maxDistanceFromBot": 150, + "lootAfterCompleting": "Inhibit", + "steps": [ + { + "waitTimeAfterCompleting": 1, + "position" : { + "x": 51.1654968, + "y": 4.309441, + "z": 10.63328 + } + }, + { + "stepType" : "HoldAtPosition", + "maxDistance": 5, + "minElapsedTime": { + "min": 5, + "max": 45 + }, + "position" : { + "x": 51.1654968, + "y": 4.309441, + "z": 10.63328 + } + } + ] + } + ] + }, + { + "repeatable": true, + "isCamping": true, + "minLevel": 0, + "maxLevel": 20, + "maxBots": 1, + "maxBotsInGroup": 1, + "desirability": 10, + "name": "Dumpster Hiding", + "objectives" : [ + { + "repeatable": true, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 75, + "lootAfterCompleting": "Inhibit", + "steps": [ + { + "waitTimeAfterCompleting": 1, + "position" : { + "x": 32.56265, + "y": 0.09880137, + "z": -0.195569143 + } + }, + { + "stepType" : "HoldAtPosition", + "maxDistance": 2, + "minElapsedTime": { + "min": 20, + "max": 90 + }, + "position" : { + "x": 32.56265, + "y": 0.09880137, + "z": -0.195569143 + } + } + ] + } + ] + }, + { + "repeatable": true, + "isCamping": true, + "minLevel": 0, + "maxLevel": 10, + "maxBots": 1, + "maxBotsInGroup": 1, + "desirability": 5, + "name": "Timmy's Forklift Hiding Spot", + "objectives" : [ + { + "repeatable": true, + "minDistanceFromBot": 20, + "maxDistanceFromBot": 75, + "lootAfterCompleting": "Inhibit", + "steps": [ + { + "waitTimeAfterCompleting": 1, + "position" : { + "x": 69.09913, + "y": 0.3025684, + "z": -65.6458 + } + }, + { + "stepType" : "HoldAtPosition", + "maxDistance": 4, + "minElapsedTime": { + "min": 30, + "max": 180 + }, + "position" : { + "x": 69.09913, + "y": 0.3025684, + "z": -65.6458 + } + } + ] + } + ] + }, + { + "repeatable": true, + "isCamping": true, + "minLevel": 0, + "maxLevel": 99, + "maxBots": 1, + "maxBotsInGroup": 1, + "desirability": 10, + "pmcsOnly": true, + "name": "Pumping Station Roof", + "objectives" : [ + { + "repeatable": true, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 150, + "lootAfterCompleting": "Inhibit", + "steps": [ + { + "waitTimeAfterCompleting": 1, + "position" : { + "x": 37.96435, + "y": 3.12471485, + "z": -11.442337 + } + }, + { + "stepType" : "HoldAtPosition", + "maxDistance": 3, + "minElapsedTime": { + "min": 30, + "max": 120 + }, + "position" : { + "x": 37.96435, + "y": 3.12471485, + "z": -11.442337 + } + } + ] + } + ] + }, + { + "repeatable": true, + "isCamping": true, + "minLevel": 0, + "maxLevel": 99, + "maxBots": 1, + "maxBotsInGroup": 1, + "desirability": 5, + "pmcsOnly": true, + "name": "Unloading Area Rafters", + "objectives" : [ + { + "repeatable": true, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 150, + "lootAfterCompleting": "Inhibit", + "steps": [ + { + "waitTimeAfterCompleting": 1, + "position" : { + "x": 50.31439, + "y": 8.414999, + "z": 15.6041031 + } + }, + { + "stepType" : "HoldAtPosition", + "maxDistance": 8, + "minElapsedTime": { + "min": 45, + "max": 180 + }, + "position" : { + "x": 50.31439, + "y": 8.414999, + "z": 15.6041031 + } + } + ] + } + ] + }, + { + "repeatable": true, + "isCamping": true, + "minLevel": 0, + "maxLevel": 99, + "maxBots": 1, + "maxBotsInGroup": 1, + "desirability": 5, + "name": "Workshop Area Rafters", + "objectives" : [ + { + "repeatable": true, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 150, + "lootAfterCompleting": "Inhibit", + "steps": [ + { + "waitTimeAfterCompleting": 1, + "position" : { + "x": 21.4582462, + "y": 8.381361, + "z": 14.2037468 + } + }, + { + "stepType" : "HoldAtPosition", + "maxDistance": 8, + "minElapsedTime": { + "min": 45, + "max": 180 + }, + "position" : { + "x": 21.4582462, + "y": 8.381361, + "z": 14.2037468 + } + } + ] + } + ] + }, + { + "repeatable": true, + "isCamping": true, + "minLevel": 0, + "maxLevel": 99, + "maxBots": 3, + "maxBotsInGroup": 2, + "desirability": 25, + "name": "Basement Intersection Camping", + "objectives" : [ + { + "repeatable": true, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 100, + "lootAfterCompleting": "Inhibit", + "steps": [ + { + "waitTimeAfterCompleting": 1, + "position" : { + "x": 19.4162, + "y": -2.636395, + "z": -14.8612442 + } + }, + { + "stepType" : "HoldAtPosition", + "maxDistance": 5, + "minElapsedTime": { + "min": 30, + "max": 120 + }, + "position" : { + "x": 19.4162, + "y": -2.636395, + "z": -14.8612442 + } + } + ] + } + ] + }, + { + "repeatable": true, + "minLevel": 10, + "maxLevel": 99, + "maxBots": 1, + "desirability": 10, + "name": "Engineer's Office", + "objectives" : [ + { + "repeatable": true, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 500, + "maxRunDistance": 3, + "steps": [ + { + "position" : { + "x": 31.1152, + "y": 8.210876, + "z": 39.4699364 + } + } + ] + } + ] + }, + { + "repeatable": true, + "minLevel": 0, + "maxLevel": 99, + "maxBots": 3, + "desirability": 35, + "name": "Crates Outside of Stairwell", + "objectives" : [ + { + "repeatable": true, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 100, + "steps": [ + { + "position" : { + "x": 34.7748528, + "y": 0.102185175, + "z": 21.2204361 + } + }, + { + "position" : { + "x": 28.2893925, + "y": 0.236073449, + "z": 18.7053452 + } + } + ] + } + ] + }, + { + "repeatable": true, + "minLevel": 0, + "maxLevel": 99, + "maxBots": 3, + "desirability": 35, + "name": "Crates Near Lower Platform", + "objectives" : [ + { + "repeatable": true, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 100, + "steps": [ + { + "position" : { + "x": -8.90471649, + "y": 0.0782203153, + "z": 36.78657 + } + }, + { + "position" : { + "x": -3.35411382, + "y": 1.07015216, + "z": 48.2082138 + } + } + ] + } + ] + }, + { + "repeatable": false, + "minLevel": 0, + "maxLevel": 99, + "maxBots": 2, + "desirability": 10, + "name": "Basement Crates", + "objectives" : [ + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 100, + "steps": [ + { + "position" : { + "x": 15.5488911, + "y": -2.60598826, + "z": -32.5009232 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 100, + "steps": [ + { + "position" : { + "x": -8.283826, + "y": -3.88754916, + "z": -33.3428421 + } + } + ] + } + ] + }, + { + "repeatable": false, + "minLevel": 0, + "maxLevel": 99, + "maxBots": 2, + "desirability": 20, + "name": "NE Crates in Workshop", + "objectives" : [ + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 75, + "steps": [ + { + "position" : { + "x": 19.6262, + "y": 0.0311360471, + "z": -29.8704357 + } + } + ] + } + ] + }, + { + "repeatable": false, + "minLevel": 0, + "maxLevel": 99, + "maxBots": 2, + "desirability": 10, + "name": "Weapon Crates outside Office", + "objectives" : [ + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 75, + "steps": [ + { + "position" : { + "x": 20.5580559, + "y": 0.0246979147, + "z": 24.49675 + } + } + ] + } + ] + }, + { + "repeatable": true, + "minLevel": 0, + "maxLevel": 99, + "maxBots": 3, + "desirability": 35, + "name": "Crates Outside of Gate 3", + "objectives" : [ + { + "repeatable": true, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 100, + "steps": [ + { + "position" : { + "x": 59.4847832, + "y": 0.0442806259, + "z": 23.12022 + } + } + ] + } + ] + }, + { + "repeatable": false, + "minLevel": 0, + "maxLevel": 99, + "maxBots": 2, + "desirability": 10, + "name": "Crates Outside of Scav Bunker", + "objectives" : [ + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 100, + "steps": [ + { + "position" : { + "x": -19.2387371, + "y": 2.80248833, + "z": 25.4677982 + } + } + ] + } + ] + }, + { + "repeatable": true, + "minLevel": 0, + "maxLevel": 99, + "maxBots": 2, + "desirability": 10, + "name": "Holding Area Patrol", + "objectives" : [ + { + "repeatable": true, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 100, + "steps": [ + { + "position" : { + "x": -24.77775, + "y": 1.04092336, + "z": 54.6349144 + } + } + ] + } + ] + }, + { + "repeatable": false, + "minLevel": 0, + "maxLevel": 99, + "maxBots": 2, + "desirability": 15, + "name": "Bathroom Key Spawns", + "objectives" : [ + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 100, + "steps": [ + { + "position" : { + "x": 17.3941059, + "y": 4.53283548, + "z": 40.3690834 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 100, + "steps": [ + { + "position" : { + "x": 31.1609535, + "y": 4.532834, + "z": 48.15273 + } + } + ] + } + ] + }, + { + "repeatable": true, + "minLevel": 0, + "maxLevel": 99, + "maxBots": 2, + "desirability": 15, + "name": "3rd Floor Hallway", + "objectives" : [ + { + "repeatable": true, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 100, + "steps": [ + { + "position" : { + "x": 23.0656872, + "y": 8.210877, + "z": 35.2329865 + } + } + ] + } + ] + }, + { + "repeatable": false, + "minLevel": 0, + "maxLevel": 99, + "maxBots": 2, + "desirability": 20, + "name": "Break Room", + "objectives" : [ + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 100, + "steps": [ + { + "position" : { + "x": 44.3356667, + "y": 4.41316557, + "z": 40.4929771 + } + } + ] + } + ] + }, + { + "repeatable": true, + "minLevel": 0, + "maxLevel": 99, + "maxBots": 2, + "desirability": 10, + "name": "Silos", + "objectives" : [ + { + "repeatable": true, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 100, + "steps": [ + { + "position" : { + "x": 18.1133633, + "y": 0.0688911751, + "z": 1.38644886 + } + } + ] + }, + { + "repeatable": true, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 100, + "steps": [ + { + "position" : { + "x": 0.7443781, + "y": 0.09867087, + "z": 8.002051 + } + } + ] + } + ] + }, + { + "repeatable": false, + "minLevel": 0, + "maxLevel": 99, + "maxBots": 2, + "desirability": 15, + "name": "Kitchen", + "objectives" : [ + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 100, + "steps": [ + { + "position" : { + "x": 32.8393822, + "y": 0.09812004, + "z": -32.25197 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 100, + "steps": [ + { + "position" : { + "x": 29.0506649, + "y": 0.104832157, + "z": -32.8988037 + } + } + ] + } + ] + }, + { + "repeatable": false, + "minLevel": 0, + "maxLevel": 99, + "maxBots": 2, + "desirability": 10, + "name": "Customs Transit Jackets", + "objectives" : [ + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 100, + "steps": [ + { + "position" : { + "x": 15.95244, + "y": 0.110957347, + "z": -37.62961 + } + } + ] + } + ] + }, + { + "repeatable": false, + "minLevel": 0, + "maxLevel": 99, + "maxBots": 2, + "desirability": 25, + "name": "Medical Office", + "objectives" : [ + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 100, + "steps": [ + { + "position" : { + "x": 28.2255745, + "y": 3.6369884, + "z": -31.09007 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 100, + "steps": [ + { + "position" : { + "x": 29.484972, + "y": 3.5772028, + "z": -18.7588329 + } + } + ] + } + ] + }, + { + "repeatable": false, + "minLevel": 15, + "maxLevel": 99, + "maxBots": 3, + "desirability": 35, + "name": "TerraGroup Storage Room", + "objectives" : [ + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 300, + "steps": [ + { + "position" : { + "x": -22.6404247, + "y": -2.606005, + "z": 45.8475952 + } + }, + { + "position" : { + "x": -21.1182747, + "y": -2.606005, + "z": 47.2522 + } + } + ] + } + ] + }, + { + "repeatable": false, + "minLevel": 0, + "maxLevel": 99, + "maxBots": 2, + "desirability": 10, + "name": "Motor Spawn Crate", + "objectives" : [ + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 100, + "steps": [ + { + "position" : { + "x": -24.70332, + "y": 1.11713231, + "z": 65.49462 + } + } + ] + } + ] + }, + { + "repeatable": false, + "minLevel": 0, + "maxLevel": 99, + "maxBots": 2, + "desirability": 10, + "name": "Electrical Room", + "objectives" : [ + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 100, + "steps": [ + { + "position" : { + "x": 1.55971575, + "y": -2.60288215, + "z": 52.56694 + } + } + ] + } + ] + }, + { + "repeatable": false, + "minLevel": 0, + "maxLevel": 99, + "maxBots": 2, + "desirability": 10, + "name": "Office Basement", + "objectives" : [ + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 100, + "steps": [ + { + "position" : { + "x": 10.626318, + "y": -2.598901, + "z": 40.9252167 + } + } + ] + } + ] + }, + { + "repeatable": false, + "minLevel": 0, + "maxLevel": 99, + "maxBots": 2, + "desirability": 10, + "name": "Crate Near Cellars", + "objectives" : [ + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 100, + "steps": [ + { + "position" : { + "x": 49.06068, + "y": -2.59701419, + "z": -22.17233 + } + } + ] + } + ] + }, + { + "repeatable": false, + "minLevel": 0, + "maxLevel": 99, + "maxBots": 2, + "desirability": 10, + "name": "Pumping Station Basement", + "objectives" : [ + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 100, + "steps": [ + { + "position" : { + "x": 39.30435, + "y": -2.59412026, + "z": -14.7634773 + } + } + ] + } + ] + }, + { + "repeatable": false, + "minLevel": 0, + "maxLevel": 99, + "maxBots": 2, + "desirability": 10, + "name": "Create Near Forklift Basement", + "objectives" : [ + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 100, + "steps": [ + { + "position" : { + "x": 33.794735, + "y": -2.612523, + "z": -26.8131313 + } + } + ] + } + ] + }, + { + "repeatable": false, + "minLevel": 0, + "maxLevel": 99, + "maxBots": 2, + "desirability": 15, + "name": "Dead Scav Room", + "objectives" : [ + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 100, + "steps": [ + { + "position" : { + "x": -21.5226784, + "y": 0.106768131, + "z": 23.596838 + } + } + ] + } + ] + }, + { + "repeatable": false, + "minLevel": 0, + "maxLevel": 99, + "maxBots": 2, + "desirability": 10, + "name": "Boilers Basement", + "objectives" : [ + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 100, + "steps": [ + { + "position" : { + "x": 68.6666946, + "y": -2.61377954, + "z": 12.3183289 + } + } + ] + } + ] + }, + { + "repeatable": false, + "minLevel": 0, + "maxLevel": 99, + "maxBots": 2, + "desirability": 10, + "name": "Gate 2", + "objectives" : [ + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 100, + "steps": [ + { + "position" : { + "x": 42.93933, + "y": 0.290730149, + "z": -51.66859 + } + } + ] + } + ] + }, + { + "repeatable": true, + "isCamping": true, + "minLevel": 10, + "maxLevel": 99, + "maxBots": 1, + "maxBotsInGroup": 1, + "minRaidET": 300, + "desirability": 10, + "pmcsOnly": true, + "name": "Gate 0", + "objectives" : [ + { + "repeatable": true, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 300, + "maxRunDistance": 6, + "lootAfterCompleting": "Inhibit", + "steps": [ + { + "waitTimeAfterCompleting": 0, + "position" : { + "x": -54.7612839, + "y": 1.30933273, + "z": 57.02954 + } + }, + { + "waitTimeAfterCompleting": 0, + "stepType" : "CloseNearbyDoors", + "maxDistance": 5, + "position" : { + "x": -54.7612839, + "y": 1.30933273, + "z": 57.02954 + } + }, + { + "waitTimeAfterCompleting": 1, + "position" : { + "x": -60.0108528, + "y": 1.30933273, + "z": 57.03622 + } + }, + { + "stepType" : "Ambush", + "minElapsedTime": { + "min": 45, + "max": 180 + }, + "position" : { + "x": -60.0108528, + "y": 1.30933273, + "z": 57.03622 + }, + "lookToPosition" : { + "x": -54.7612839, + "y": 1.30933273, + "z": 57.02954 + } + } + ] + } + ] + }, + { + "repeatable": true, + "isCamping": true, + "minLevel": 10, + "maxLevel": 99, + "maxBots": 1, + "maxBotsInGroup": 1, + "minRaidET": 300, + "desirability": 10, + "pmcsOnly": true, + "name": "Med Tent Gate", + "objectives" : [ + { + "repeatable": true, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 300, + "maxRunDistance": 5, + "lootAfterCompleting": "Inhibit", + "steps": [ + { + "waitTimeAfterCompleting": 0, + "position" : { + "x": -19.4488735, + "y": 0.172152728, + "z": -50.8474846 + } + }, + { + "waitTimeAfterCompleting": 0, + "stepType" : "CloseNearbyDoors", + "maxDistance": 5, + "position" : { + "x": -19.4488735, + "y": 0.172152728, + "z": -50.8474846 + } + }, + { + "waitTimeAfterCompleting": 1, + "position" : { + "x": -18.3804874, + "y": 0.210918948, + "z": -54.71151 + } + }, + { + "stepType" : "Ambush", + "minElapsedTime": { + "min": 45, + "max": 180 + }, + "position" : { + "x": -18.3804874, + "y": 0.210918948, + "z": -54.71151 + }, + "lookToPosition" : { + "x": -19.6342278, + "y": 1.191838, + "z": -48.1690445 + } + } + ] + } + ] + }, + { + "repeatable": true, + "isCamping": true, + "minLevel": 0, + "maxLevel": 99, + "maxBots": 2, + "maxBotsInGroup": 1, + "minRaidET": 300, + "desirability": 15, + "name": "Gate 3 Entrance", + "objectives" : [ + { + "repeatable": true, + "minDistanceFromBot": 25, + "maxDistanceFromBot": 500, + "maxRunDistance": 5, + "lootAfterCompleting": "Inhibit", + "steps": [ + { + "waitTimeAfterCompleting": 0, + "position" : { + "x": 60.68221, + "y": 0.237433881, + "z": 43.7271233 + } + }, + { + "waitTimeAfterCompleting": 0, + "stepType" : "CloseNearbyDoors", + "maxDistance": 5, + "position" : { + "x": 60.68221, + "y": 0.237433881, + "z": 43.7271233 + } + }, + { + "waitTimeAfterCompleting": 1, + "position" : { + "x": 56.4665833, + "y": 0.208644077, + "z": 46.9904823 + } + }, + { + "stepType" : "Ambush", + "minElapsedTime": { + "min": 45, + "max": 180 + }, + "position" : { + "x": 56.4665833, + "y": 0.208644077, + "z": 46.9904823 + }, + "lookToPosition" : { + "x": 60.8949471, + "y": 0.290820271, + "z": 42.35923 + } + } + ] + } + ] + }, + { + "repeatable": true, + "isCamping": true, + "minLevel": 0, + "maxLevel": 99, + "maxBots": 2, + "maxBotsInGroup": 1, + "minRaidET": 0, + "desirability": 10, + "name": "Gate 3 Camping", + "objectives" : [ + { + "repeatable": true, + "minDistanceFromBot": 25, + "maxDistanceFromBot": 500, + "maxRunDistance": 3, + "lootAfterCompleting": "Inhibit", + "steps": [ + { + "waitTimeAfterCompleting": 1, + "position" : { + "x": 54.1504326, + "y": 0.10168419, + "z": 25.5377655 + } + }, + { + "stepType" : "Ambush", + "minElapsedTime": { + "min": 45, + "max": 180 + }, + "position" : { + "x": 54.1504326, + "y": 0.10168419, + "z": 25.5377655 + }, + "lookToPosition" : { + "x": 60.8949471, + "y": 0.290820271, + "z": 42.35923 + } + } + ] + } + ] + }, + { + "repeatable": true, + "isSniping": true, + "minLevel": 0, + "maxLevel": 99, + "maxBots": 2, + "maxBotsInGroup": 1, + "minRaidET": 0, + "desirability": 10, + "name": "NE Overlook Sniping", + "forbiddenWeapons" : [ "pistol", "shotgun" ], + "objectives" : [ + { + "repeatable": true, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 100, + "maxRunDistance": 3, + "lootAfterCompleting": "Inhibit", + "steps": [ + { + "waitTimeAfterCompleting": 1, + "position" : { + "x": 26.93721, + "y": 7.1638875, + "z": -34.23078 + } + }, + { + "stepType" : "Snipe", + "minElapsedTime": { + "min": 45, + "max": 90 + }, + "position" : { + "x": 26.93721, + "y": 7.1638875, + "z": -34.23078 + }, + "lookToPosition" : { + "x": 0.1440212, + "y": 0.5240916, + "z": -12.7683258 + } + } + ] + }, + { + "repeatable": true, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 100, + "maxRunDistance": 3, + "lootAfterCompleting": "Inhibit", + "steps": [ + { + "waitTimeAfterCompleting": 1, + "position" : { + "x": 26.5837727, + "y": 7.18387556, + "z": -26.3397732 + } + }, + { + "stepType" : "Snipe", + "minElapsedTime": { + "min": 45, + "max": 90 + }, + "position" : { + "x": 26.5837727, + "y": 7.18387556, + "z": -26.3397732 + }, + "lookToPosition" : { + "x": 2.980758, + "y": 0.0533044264, + "z": -25.0165653 + } + } + ] + }, + { + "repeatable": true, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 100, + "maxRunDistance": 3, + "lootAfterCompleting": "Inhibit", + "steps": [ + { + "waitTimeAfterCompleting": 1, + "position" : { + "x": 32.6527634, + "y": 7.163847, + "z": -18.0808849 + } + }, + { + "stepType" : "Snipe", + "minElapsedTime": { + "min": 45, + "max": 90 + }, + "position" : { + "x": 32.6527634, + "y": 7.163847, + "z": -18.0808849 + }, + "lookToPosition" : { + "x": 16.9550438, + "y": 0.0439152047, + "z": -3.2241478 + } + } + ] + } + ] + }, + { + "repeatable": true, + "isSniping": true, + "minLevel": 0, + "maxLevel": 99, + "maxBots": 2, + "maxBotsInGroup": 1, + "minRaidET": 0, + "desirability": 10, + "name": "Forklift Overlook Sniping", + "forbiddenWeapons" : [ "pistol", "shotgun" ], + "objectives" : [ + { + "repeatable": true, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 100, + "maxRunDistance": 3, + "lootAfterCompleting": "Inhibit", + "steps": [ + { + "waitTimeAfterCompleting": 1, + "position" : { + "x": 35.1603355, + "y": 3.357499, + "z": -13.095974 + } + }, + { + "stepType" : "Snipe", + "minElapsedTime": { + "min": 45, + "max": 120 + }, + "position" : { + "x": 35.1603355, + "y": 3.357499, + "z": -13.095974 + }, + "lookToPosition" : { + "x": 8.341753, + "y": 0.06865645, + "z": -11.0077314 + } + } + ] + } + ] + }, + { + "repeatable": true, + "isSniping": true, + "minLevel": 0, + "maxLevel": 99, + "maxBots": 2, + "maxBotsInGroup": 1, + "minRaidET": 0, + "desirability": 10, + "name": "Lower Platform Overlook Sniping", + "forbiddenWeapons" : [ "pistol", "shotgun" ], + "objectives" : [ + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 100, + "steps": [ + { + "position" : { + "x": 5.73753643, + "y": 7.523549, + "z": 58.982357 + } + } + ] + }, + { + "repeatable": true, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 100, + "maxRunDistance": 3, + "lootAfterCompleting": "Inhibit", + "steps": [ + { + "waitTimeAfterCompleting": 1, + "position" : { + "x": 4.81528, + "y": 7.348855, + "z": 63.80513 + } + }, + { + "stepType" : "Snipe", + "minElapsedTime": { + "min": 45, + "max": 120 + }, + "position" : { + "x": 4.81528, + "y": 7.348855, + "z": 63.80513 + }, + "lookToPosition" : { + "x": -13.9115572, + "y": 1.09727836, + "z": 45.75023 + } + } + ] + } + ] + }, + { + "repeatable": true, + "isSniping": true, + "minLevel": 0, + "maxLevel": 99, + "maxBots": 2, + "maxBotsInGroup": 1, + "minRaidET": 0, + "desirability": 10, + "name": "Lower Platform Gate 0 Sniping", + "forbiddenWeapons" : [ "pistol", "shotgun" ], + "objectives" : [ + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 100, + "steps": [ + { + "position" : { + "x": -39.35619, + "y": 7.545757, + "z": 50.0711327 + } + } + ] + }, + { + "repeatable": true, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 100, + "maxRunDistance": 3, + "lootAfterCompleting": "Inhibit", + "steps": [ + { + "waitTimeAfterCompleting": 1, + "position" : { + "x": -40.1399155, + "y": 7.5481596, + "z": 62.6338158 + } + }, + { + "stepType" : "Snipe", + "minElapsedTime": { + "min": 45, + "max": 120 + }, + "position" : { + "x": -40.1399155, + "y": 7.5481596, + "z": 62.6338158 + }, + "lookToPosition" : { + "x": -14.0353928, + "y": 1.085848, + "z": 43.8513527 + } + } + ] + } + ] + }, + { + "repeatable": true, + "isSniping": true, + "minLevel": 0, + "maxLevel": 99, + "maxBots": 2, + "maxBotsInGroup": 1, + "minRaidET": 0, + "desirability": 10, + "name": "Bridge Sniping", + "forbiddenWeapons" : [ "pistol", "shotgun" ], + "objectives" : [ + { + "repeatable": true, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 100, + "maxRunDistance": 3, + "lootAfterCompleting": "Inhibit", + "steps": [ + { + "waitTimeAfterCompleting": 1, + "position" : { + "x": 33.51976, + "y": 7.173575, + "z": -30.2683582 + } + }, + { + "stepType" : "Snipe", + "minElapsedTime": { + "min": 45, + "max": 90 + }, + "position" : { + "x": 33.51976, + "y": 7.173575, + "z": -30.2683582 + }, + "lookToPosition" : { + "x": 34.73927, + "y": 7.74177074, + "z": -3.76280761 + } + } + ] + }, + { + "repeatable": true, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 100, + "maxRunDistance": 3, + "lootAfterCompleting": "Inhibit", + "steps": [ + { + "waitTimeAfterCompleting": 1, + "position" : { + "x": 33.8669243, + "y": 7.74610043, + "z": 20.6869431 + } + }, + { + "stepType" : "Snipe", + "minElapsedTime": { + "min": 45, + "max": 90 + }, + "position" : { + "x": 33.8669243, + "y": 7.74610043, + "z": 20.6869431 + }, + "lookToPosition" : { + "x": 34.9852142, + "y": 7.753605, + "z": -26.2839241 + } + } + ] + } + ] + }, + { + "repeatable": true, + "isSniping": true, + "minLevel": 0, + "maxLevel": 99, + "maxBots": 2, + "maxBotsInGroup": 1, + "minRaidET": 0, + "desirability": 10, + "name": "Outside Sniping", + "forbiddenWeapons" : [ "pistol", "shotgun" ], + "objectives" : [ + { + "repeatable": true, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 100, + "maxRunDistance": 3, + "lootAfterCompleting": "Inhibit", + "steps": [ + { + "waitTimeAfterCompleting": 1, + "position" : { + "x": 9.925807, + "y": 3.67206979, + "z": -37.4831848 + } + }, + { + "stepType" : "Snipe", + "minElapsedTime": { + "min": 45, + "max": 180 + }, + "position" : { + "x": 9.925807, + "y": 3.67206979, + "z": -37.4831848 + }, + "lookToPosition" : { + "x": 18.42118, + "y": 0.0593294725, + "z": -19.0296955 + } + } + ] + } + ] + }, + { + "repeatable": true, + "isSniping": true, + "minLevel": 0, + "maxLevel": 99, + "maxBots": 2, + "maxBotsInGroup": 1, + "minRaidET": 0, + "desirability": 10, + "name": "Silos Overlook Sniping", + "forbiddenWeapons" : [ "pistol", "shotgun" ], + "objectives" : [ + { + "repeatable": true, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 100, + "maxRunDistance": 3, + "lootAfterCompleting": "Inhibit", + "steps": [ + { + "waitTimeAfterCompleting": 1, + "position" : { + "x": -21.5226784, + "y": 0.106768131, + "z": 23.596838 + } + }, + { + "stepType" : "Snipe", + "minElapsedTime": { + "min": 45, + "max": 180 + }, + "position" : { + "x": -21.5226784, + "y": 0.106768131, + "z": 23.596838 + }, + "lookToPosition" : { + "x": -6.225132, + "y": 0.09586, + "z": 10.3652267 + } + } + ] + } + ] + } +] \ No newline at end of file diff --git a/BepInEx/plugins/DanW-SPTQuestingBots/quests/standard/interchange.json b/BepInEx/plugins/DanW-SPTQuestingBots/quests/standard/interchange.json new file mode 100644 index 0000000..4dafeec --- /dev/null +++ b/BepInEx/plugins/DanW-SPTQuestingBots/quests/standard/interchange.json @@ -0,0 +1,4356 @@ +[ + { + "repeatable": false, + "minLevel": 0, + "maxLevel": 99, + "maxBots": 3, + "desirability": 35, + "requiredSwitches": { + "Shopping_Mall_DesignStuff_00055": false + }, + "name": "Power Station Switch", + "objectives" : [ + { + "repeatable": false, + "minDistanceFromBot": 10, + "maxDistanceFromBot": 9999, + "maxRunDistance": 12, + "steps": [ + { + "waitTimeAfterCompleting": 1, + "position" : { + "x": -202.214783, + "y": 21.3331013, + "z": -357.127777 + } + }, + { + "stepType" : "ToggleSwitch", + "switchID" : "Shopping_Mall_DesignStuff_00055", + "position" : { + "x": -202.214783, + "y": 21.3331013, + "z": -357.127777 + } + } + ] + } + ] + }, + { + "repeatable": false, + "minLevel": 0, + "maxLevel": 99, + "maxBots": 3, + "desirability": 20, + "minRaidET": 180, + "requiredSwitches": { + "Shopping_Mall_DesignStuff_00059": false + }, + "name": "KIBA Alarm Panel 1", + "objectives" : [ + { + "repeatable": false, + "minDistanceFromBot": 10, + "maxDistanceFromBot": 300, + "maxRunDistance": 12, + "lootAfterCompleting": "Inhibit", + "steps": [ + { + "waitTimeAfterCompleting": 1, + "position" : { + "x": -67.0, + "y": 27.1, + "z": 52.7 + } + }, + { + "stepType" : "ToggleSwitch", + "switchID" : "Shopping_Mall_DesignStuff_00059", + "position" : { + "x": -67.0, + "y": 27.1, + "z": 52.7 + } + } + ] + } + ] + }, + { + "repeatable": false, + "minLevel": 0, + "maxLevel": 99, + "maxBots": 3, + "desirability": 20, + "minRaidET": 180, + "requiredSwitches": { + "Shopping_Mall_DesignStuff_00058": false + }, + "name": "KIBA Alarm Panel 2", + "objectives" : [ + { + "repeatable": false, + "minDistanceFromBot": 10, + "maxDistanceFromBot": 300, + "lootAfterCompleting": "Inhibit", + "steps": [ + { + "waitTimeAfterCompleting": 1, + "position" : { + "x": -47.3, + "y": 36.6, + "z": -54.5 + } + }, + { + "stepType" : "ToggleSwitch", + "switchID" : "Shopping_Mall_DesignStuff_00058", + "position" : { + "x": -47.3, + "y": 36.6, + "z": -54.5 + } + } + ] + } + ] + }, + { + "repeatable": false, + "minLevel": 0, + "maxLevel": 99, + "maxBots": 2, + "desirability": 20, + "minRaidET": 180, + "pmcsOnly": true, + "requiredSwitches": { + "Shopping_Mall_DesignStuff_00055": true + }, + "name": "Hidden Panel", + "objectives" : [ + { + "repeatable": false, + "minDistanceFromBot": 10, + "maxDistanceFromBot": 1000, + "maxRunDistance": 25, + "lootAfterCompleting": "Inhibit", + "steps": [ + { + "waitTimeAfterCompleting": 1, + "position" : { + "x": -51.0397339, + "y": 36.5914955, + "z": -123.866776 + } + }, + { + "stepType" : "ToggleSwitch", + "switchID" : "Shopping_Mall_DesignStuff_00064", + "position" : { + "x": -51.0397339, + "y": 36.5914955, + "z": -123.866776 + } + } + ] + } + ] + }, + { + "repeatable": true, + "minLevel": 0, + "maxLevel": 99, + "maxBots": 3, + "desirability": 25, + "name": "Safe Room Area", + "objectives" : [ + { + "repeatable": true, + "minDistanceFromBot": 10, + "maxDistanceFromBot": 1000, + "steps": [ + { + "position" : { + "x": -73.2995, + "y": 21.3255272, + "z": 56.2119751 + } + } + ] + }, + { + "repeatable": true, + "minDistanceFromBot": 10, + "maxDistanceFromBot": 1000, + "steps": [ + { + "position" : { + "x": -51.2987022, + "y": 21.3254528, + "z": 56.0338058 + } + } + ] + } + ] + }, + { + "repeatable": true, + "minLevel": 15, + "maxLevel": 99, + "maxBots": 2, + "desirability": 25, + "minRaidET": 180, + "canRunBetweenObjectives": false, + "requiredSwitches": { + "Shopping_Mall_DesignStuff_00055": true, + "Shopping_Mall_DesignStuff_00064": true + }, + "name": "Safe Room", + "objectives" : [ + { + "repeatable": false, + "minDistanceFromBot": 10, + "maxDistanceFromBot": 1000, + "maxRunDistance": 4, + "steps": [ + { + "waitTimeAfterCompleting": 1, + "position" : { + "x": -47.7, + "y": 22.9, + "z": 42.6 + } + }, + { + "stepType" : "ToggleSwitch", + "switchID" : "Shopping_Mall_DesignStuff_00061", + "position" : { + "x": -47.7, + "y": 22.9, + "z": 42.6 + } + } + ] + } + ] + }, + { + "repeatable": false, + "minLevel": 15, + "maxLevel": 99, + "maxBots": 3, + "desirability": 30, + "name": "Pharmacy", + "objectives" : [ + { + "repeatable": false, + "minDistanceFromBot": 30, + "maxDistanceFromBot": 750, + "maxRunDistance": 6, + "steps": [ + { + "position" : { + "x": 61.0186348, + "y": 21.4291019, + "z": -254.5692 + } + } + ] + } + ] + }, + { + "repeatable": false, + "minLevel": 0, + "maxLevel": 99, + "maxBots": 3, + "desirability": 40, + "canRunBetweenObjectives": false, + "name": "Techlight", + "objectives" : [ + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 9999, + "maxRunDistance": 6, + "steps": [ + { + "position" : { + "x": 96.7576, + "y": 36.56974, + "z": 48.89507 + } + }, + { + "position" : { + "x": 97.2204361, + "y": 36.5697365, + "z": 40.3993034 + } + }, + { + "position" : { + "x": 93.13361, + "y": 36.5697365, + "z": 33.6639366 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 9999, + "maxRunDistance": 6, + "steps": [ + { + "position" : { + "x": 86.7533, + "y": 36.5697365, + "z": 65.76156 + } + }, + { + "position" : { + "x": 96.0959244, + "y": 36.5697365, + "z": 64.74795 + } + }, + { + "position" : { + "x": 92.26458, + "y": 36.5697327, + "z": 56.7840271 + } + } + ] + } + ] + }, + { + "repeatable": false, + "minLevel": 15, + "maxLevel": 99, + "maxBots": 2, + "desirability": 35, + "name": "ULTRA Medical Storage", + "objectives" : [ + { + "repeatable": false, + "minDistanceFromBot": 10, + "maxDistanceFromBot": 9999, + "maxRunDistance": 8, + "steps": [ + { + "position" : { + "x": 65.516, + "y": 36.58001, + "z": 39.4608 + } + } + ] + } + ] + }, + { + "repeatable": false, + "isCamping": true, + "minLevel": 5, + "maxLevel": 99, + "maxBots": 2, + "desirability": 50, + "requiredSwitches": { + "Shopping_Mall_DesignStuff_00055": true, + "Shopping_Mall_DesignStuff_00057": true + }, + "name": "KIBA Investigate", + "forbiddenWeapons" : [ "sniperRifle" ], + "objectives" : [ + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 200, + "lootAfterCompleting": "Inhibit", + "steps": [ + { + "waitTimeAfterCompleting": 1, + "maxRunDistance": 4, + "position" : { + "x": -13.079545, + "y": 27.08647, + "z": -31.6366539 + } + }, + { + "waitTimeAfterCompleting": 1, + "stepType" : "HoldAtPosition", + "maxDistance": 5, + "minElapsedTime": { + "min": 20, + "max": 60 + }, + "position" : { + "x": -13.079545, + "y": 27.08647, + "z": -31.6366539 + } + } + ] + } + ] + }, + { + "repeatable": false, + "minLevel": 15, + "maxLevel": 99, + "maxBots": 3, + "desirability": 50, + "name": "KIBA", + "objectives" : [ + { + "repeatable": false, + "minDistanceFromBot": 10, + "maxDistanceFromBot": 9999, + "maxRunDistance": 12, + "steps": [ + { + "position" : { + "x": -13.079545, + "y": 27.08647, + "z": -31.6366539 + } + }, + { + "position" : { + "x": -22.0525932, + "y": 27.0864754, + "z": -36.247757 + } + }, + { + "position" : { + "x": -21.9208755, + "y": 27.0864735, + "z": -27.8881016 + } + }, + { + "position" : { + "x": -21.2479839, + "y": 27.0864716, + "z": -18.4728146 + } + }, + { + "position" : { + "x": -15.2464447, + "y": 27.08647, + "z": -17.08684 + } + } + ] + } + ] + }, + { + "repeatable": false, + "minLevel": 15, + "maxLevel": 99, + "maxBots": 2, + "desirability": 15, + "name": "Killa's Stash", + "objectives" : [ + { + "repeatable": false, + "minDistanceFromBot": 30, + "maxDistanceFromBot": 1000, + "maxRunDistance": 9, + "steps": [ + { + "position" : { + "x": -59.2878952, + "y": 21.50956, + "z": -291.0813 + } + } + ] + } + ] + }, + { + "repeatable": false, + "minLevel": 15, + "maxLevel": 99, + "maxBots": 2, + "desirability": 15, + "name": "21WS Container", + "objectives" : [ + { + "repeatable": false, + "minDistanceFromBot": 30, + "maxDistanceFromBot": 1000, + "steps": [ + { + "position" : { + "x": 138.426544, + "y": 23.9357662, + "z": 260.7697 + } + } + ] + } + ] + }, + { + "repeatable": false, + "minLevel": 0, + "maxLevel": 99, + "maxBots": 3, + "desirability": 35, + "canRunBetweenObjectives": false, + "name": "Power Station", + "objectives" : [ + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 750, + "maxRunDistance": 6, + "steps": [ + { + "position" : { + "x": -207.755432, + "y": 21.3331, + "z": -347.5293 + } + }, + { + "position" : { + "x": -202.669327, + "y": 21.3331, + "z": -347.2389 + } + }, + { + "position" : { + "x": -199.068329, + "y": 21.3882561, + "z": -345.88443 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 750, + "maxRunDistance": 8, + "steps": [ + { + "position" : { + "x": -205.679886, + "y": 21.4191437, + "z": -361.1064 + } + }, + { + "position" : { + "x": -215.874619, + "y": 21.4191437, + "z": -361.674042 + } + } + ] + } + ] + }, + { + "repeatable": false, + "minLevel": 0, + "maxLevel": 99, + "maxBots": 4, + "desirability": 40, + "canRunBetweenObjectives": false, + "name": "Goshan Food Spawns", + "objectives" : [ + { + "repeatable": false, + "minDistanceFromBot": 10, + "maxDistanceFromBot": 1000, + "maxRunDistance": 15, + "steps": [ + { + "position" : { + "x": -129.021591, + "y": 27.0862026, + "z": -158.126389 + } + }, + { + "position" : { + "x": -129.845718, + "y": 27.0862, + "z": -171.288391 + } + }, + { + "position" : { + "x": -121.564888, + "y": 27.0862, + "z": -168.07312 + } + }, + { + "position" : { + "x": -122.610207, + "y": 27.0861988, + "z": -176.08165 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 10, + "maxDistanceFromBot": 1000, + "maxRunDistance": 15, + "steps": [ + { + "position" : { + "x": -117.549736, + "y": 27.0861988, + "z": -169.706039 + } + }, + { + "position" : { + "x": -118.329826, + "y": 27.0862, + "z": -160.755325 + } + }, + { + "position" : { + "x": -117.865623, + "y": 27.0862, + "z": -145.247787 + } + }, + { + "position" : { + "x": -112.33091, + "y": 27.0862, + "z": -143.400269 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 10, + "maxDistanceFromBot": 1000, + "maxRunDistance": 15, + "steps": [ + { + "position" : { + "x": -111.447861, + "y": 27.0861988, + "z": -159.883545 + } + }, + { + "position" : { + "x": -111.321411, + "y": 27.0861988, + "z": -170.551132 + } + }, + { + "position" : { + "x": -110.923561, + "y": 27.0861969, + "z": -176.3371 + } + }, + { + "position" : { + "x": -105.324974, + "y": 27.0861969, + "z": -176.342056 + } + } + ] + } + ] + }, + { + "repeatable": false, + "minLevel": 0, + "maxLevel": 99, + "maxBots": 3, + "desirability": 30, + "canRunBetweenObjectives": true, + "name": "OLI Logistics Area", + "objectives" : [ + { + "repeatable": false, + "minDistanceFromBot": 10, + "maxDistanceFromBot": 750, + "steps": [ + { + "position" : { + "x": 64.6392, + "y": 27.0864754, + "z": 125.549866 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 10, + "maxDistanceFromBot": 750, + "maxRunDistance": 8, + "steps": [ + { + "position" : { + "x": 85.48859, + "y": 27.0864773, + "z": 100.465462 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 10, + "maxDistanceFromBot": 750, + "maxRunDistance": 3, + "steps": [ + { + "position" : { + "x": 76.7203445, + "y": 27.0864754, + "z": 120.15258 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 10, + "maxDistanceFromBot": 750, + "maxRunDistance": 20, + "steps": [ + { + "position" : { + "x": 86.30561, + "y": 27.0864754, + "z": 118.655792 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 10, + "maxDistanceFromBot": 750, + "maxRunDistance": 11, + "steps": [ + { + "position" : { + "x": 87.0766, + "y": 27.0864754, + "z": 127.735718 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 10, + "maxDistanceFromBot": 750, + "maxRunDistance": 10, + "steps": [ + { + "position" : { + "x": 88.91476, + "y": 27.0864735, + "z": 131.885681 + } + } + ] + } + ] + }, + { + "repeatable": false, + "minLevel": 0, + "maxLevel": 99, + "maxBots": 2, + "desirability": 40, + "canRunBetweenObjectives": false, + "name": "IDEA Office", + "objectives" : [ + { + "repeatable": false, + "minDistanceFromBot": 10, + "maxDistanceFromBot": 1000, + "maxRunDistance": 3, + "steps": [ + { + "position" : { + "x": 10.5951033, + "y": 27.0676823, + "z": -300.161346 + } + }, + { + "position" : { + "x": 1.93288147, + "y": 27.0676823, + "z": -300.695282 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 10, + "maxDistanceFromBot": 1000, + "maxRunDistance": 10, + "steps": [ + { + "position" : { + "x": 5.38705, + "y": 27.0676823, + "z": -293.1303 + } + }, + { + "position" : { + "x": 0.166976988, + "y": 27.0676823, + "z": -292.8316 + } + }, + { + "position" : { + "x": -5.01033449, + "y": 27.0676823, + "z": -294.1325 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 10, + "maxDistanceFromBot": 1000, + "maxRunDistance": 8, + "steps": [ + { + "position" : { + "x": -17.7658958, + "y": 27.0676823, + "z": -300.468964 + } + } + ] + } + ] + }, + { + "repeatable": false, + "minLevel": 15, + "maxLevel": 99, + "maxBots": 3, + "desirability": 35, + "canRunBetweenObjectives": false, + "name": "Emercom", + "objectives" : [ + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 9999, + "maxRunDistance": 6, + "steps": [ + { + "position" : { + "x": 11.4741116, + "y": 27.0864811, + "z": -108.7415 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 9999, + "maxRunDistance": 10, + "steps": [ + { + "position" : { + "x": 22.0656586, + "y": 27.08648, + "z": -102.477364 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 9999, + "maxRunDistance": 7, + "steps": [ + { + "position" : { + "x": 31.4590359, + "y": 27.08648, + "z": -102.539742 + } + } + ] + } + ] + }, + { + "repeatable": false, + "minLevel": 0, + "maxLevel": 99, + "maxBots": 3, + "desirability": 30, + "canRunBetweenObjectives": false, + "name": "Mantis", + "objectives" : [ + { + "repeatable": false, + "minDistanceFromBot": 10, + "maxDistanceFromBot": 750, + "maxRunDistance": 7, + "steps": [ + { + "position" : { + "x": 6.47473049, + "y": 27.0864773, + "z": -79.77219 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 10, + "maxDistanceFromBot": 750, + "maxRunDistance": 15, + "steps": [ + { + "position" : { + "x": 29.5522518, + "y": 27.0864773, + "z": -76.9986 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 10, + "maxDistanceFromBot": 750, + "maxRunDistance": 4, + "steps": [ + { + "position" : { + "x": 24.88681, + "y": 27.0864754, + "z": -64.37563 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 10, + "maxDistanceFromBot": 750, + "maxRunDistance": 6, + "steps": [ + { + "position" : { + "x": 5.94450951, + "y": 27.0864754, + "z": -66.42641 + } + } + ] + } + ] + }, + { + "repeatable": false, + "minLevel": 0, + "maxLevel": 99, + "maxBots": 3, + "desirability": 30, + "canRunBetweenObjectives": false, + "name": "Generic", + "objectives" : [ + { + "repeatable": false, + "minDistanceFromBot": 10, + "maxDistanceFromBot": 750, + "maxRunDistance": 10, + "steps": [ + { + "position" : { + "x": -14.246088, + "y": 27.0901928, + "z": -10.3019514 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 10, + "maxDistanceFromBot": 750, + "maxRunDistance": 11, + "steps": [ + { + "position" : { + "x": -26.49845, + "y": 27.09019, + "z": -7.26151752 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 10, + "maxDistanceFromBot": 750, + "maxRunDistance": 6, + "steps": [ + { + "position" : { + "x": -34.96501, + "y": 27.090189, + "z": -0.126731813 + } + } + ] + } + ] + }, + { + "repeatable": true, + "minLevel": 0, + "maxLevel": 99, + "maxBots": 3, + "desirability": 30, + "name": "East Wall Container", + "objectives" : [ + { + "repeatable": true, + "minDistanceFromBot": 30, + "maxDistanceFromBot": 500, + "steps": [ + { + "position" : { + "x": -210.590912, + "y": 21.4915638, + "z": -153.7846 + } + } + ] + } + ] + }, + { + "repeatable": false, + "minLevel": 0, + "maxLevel": 99, + "maxBots": 3, + "desirability": 25, + "name": "Power Station Stashes", + "objectives" : [ + { + "repeatable": false, + "minDistanceFromBot": 10, + "maxDistanceFromBot": 750, + "maxRunDistance": 3, + "steps": [ + { + "position" : { + "x": -254.771317, + "y": 21.32544, + "z": -256.4923 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 10, + "maxDistanceFromBot": 750, + "maxRunDistance": 2, + "steps": [ + { + "position" : { + "x": -249.850418, + "y": 21.4202766, + "z": -293.662384 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 10, + "maxDistanceFromBot": 750, + "maxRunDistance": 3, + "steps": [ + { + "position" : { + "x": -245.43335, + "y": 21.3254356, + "z": -303.858 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 10, + "maxDistanceFromBot": 750, + "maxRunDistance": 2, + "steps": [ + { + "position" : { + "x": -221.476974, + "y": 21.6761723, + "z": -271.477448 + } + } + ] + } + ] + }, + { + "repeatable": true, + "minLevel": 0, + "maxLevel": 99, + "maxBots": 2, + "desirability": 25, + "name": "Power Station West Shack", + "objectives" : [ + { + "repeatable": true, + "minDistanceFromBot": 30, + "maxDistanceFromBot": 400, + "maxRunDistance": 2, + "steps": [ + { + "position" : { + "x": -153.034515, + "y": 21.4756546, + "z": -353.0229 + } + } + ] + } + ] + }, + { + "repeatable": true, + "minLevel": 0, + "maxLevel": 99, + "maxBots": 2, + "desirability": 25, + "name": "IDEA North Bus", + "objectives" : [ + { + "repeatable": true, + "minDistanceFromBot": 30, + "maxDistanceFromBot": 300, + "steps": [ + { + "position" : { + "x": -12.325388, + "y": 21.3254337, + "z": -331.584961 + } + } + ] + } + ] + }, + { + "repeatable": true, + "minLevel": 0, + "maxLevel": 99, + "maxBots": 2, + "desirability": 20, + "name": "North Construction Site", + "objectives" : [ + { + "repeatable": true, + "minDistanceFromBot": 10, + "maxDistanceFromBot": 750, + "steps": [ + { + "position" : { + "x": 189.023819, + "y": 19.3153057, + "z": -353.033936 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 10, + "maxDistanceFromBot": 750, + "steps": [ + { + "position" : { + "x": 165.605164, + "y": 19.97656, + "z": -347.073669 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 10, + "maxDistanceFromBot": 750, + "steps": [ + { + "position" : { + "x": 216.959641, + "y": 19.0459042, + "z": -355.9758 + } + } + ] + } + ] + }, + { + "repeatable": true, + "minLevel": 0, + "maxLevel": 99, + "maxBots": 2, + "desirability": 20, + "name": "Railway Area", + "objectives" : [ + { + "repeatable": true, + "minDistanceFromBot": 20, + "maxDistanceFromBot": 1000, + "steps": [ + { + "position" : { + "x": 388.504242, + "y": 18.524622, + "z": -410.632324 + } + } + ] + }, + { + "repeatable": true, + "minDistanceFromBot": 20, + "maxDistanceFromBot": 1000, + "steps": [ + { + "position" : { + "x": 395.5372, + "y": 19.1531715, + "z": -369.172028 + } + } + ] + }, + { + "repeatable": true, + "minDistanceFromBot": 20, + "maxDistanceFromBot": 1000, + "steps": [ + { + "position" : { + "x": 449.042175, + "y": 16.9102039, + "z": -375.0599 + } + } + ] + }, + { + "repeatable": true, + "minDistanceFromBot": 20, + "maxDistanceFromBot": 1000, + "steps": [ + { + "position" : { + "x": 475.978271, + "y": 18.27994, + "z": -361.0443 + } + } + ] + } + ] + }, + { + "repeatable": false, + "minLevel": 0, + "maxLevel": 99, + "maxBots": 2, + "desirability": 25, + "name": "Railway Stashes", + "objectives" : [ + { + "repeatable": false, + "minDistanceFromBot": 20, + "maxDistanceFromBot": 750, + "steps": [ + { + "position" : { + "x": 524.1746, + "y": 18.6152439, + "z": -297.084167 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 20, + "maxDistanceFromBot": 750, + "steps": [ + { + "position" : { + "x": 498.3131, + "y": 18.3259869, + "z": -250.306061 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 20, + "maxDistanceFromBot": 750, + "steps": [ + { + "position" : { + "x": 435.369537, + "y": 16.8205318, + "z": -244.881744 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 20, + "maxDistanceFromBot": 750, + "steps": [ + { + "position" : { + "x": 368.37384, + "y": 18.55481, + "z": -212.4813 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 20, + "maxDistanceFromBot": 750, + "steps": [ + { + "position" : { + "x": 340.724335, + "y": 20.7858372, + "z": -159.947433 + } + } + ] + } + ] + }, + { + "repeatable": true, + "minLevel": 0, + "maxLevel": 99, + "maxBots": 2, + "desirability": 10, + "name": "Scav Camp Area", + "objectives" : [ + { + "repeatable": true, + "minDistanceFromBot": 10, + "maxDistanceFromBot": 500, + "steps": [ + { + "position" : { + "x": 266.602478, + "y": 21.3049717, + "z": -112.412971 + } + } + ] + }, + { + "repeatable": true, + "minDistanceFromBot": 10, + "maxDistanceFromBot": 500, + "steps": [ + { + "position" : { + "x": 280.745026, + "y": 21.3289814, + "z": -80.68823 + } + } + ] + }, + { + "repeatable": true, + "minDistanceFromBot": 10, + "maxDistanceFromBot": 500, + "steps": [ + { + "position" : { + "x": 273.512878, + "y": 21.3254375, + "z": -41.10934 + } + } + ] + }, + { + "repeatable": true, + "minDistanceFromBot": 10, + "maxDistanceFromBot": 500, + "maxRunDistance": 4, + "steps": [ + { + "position" : { + "x": 261.08136, + "y": 21.3309441, + "z": -2.32207084 + } + } + ] + }, + { + "repeatable": true, + "minDistanceFromBot": 10, + "maxDistanceFromBot": 500, + "steps": [ + { + "position" : { + "x": 268.4296, + "y": 21.3223438, + "z": 59.4247856 + } + } + ] + } + ] + }, + { + "repeatable": true, + "isCamping": true, + "minLevel": 0, + "maxLevel": 99, + "maxBots": 2, + "maxBotsInGroup": 1, + "minRaidET": 300, + "desirability": 10, + "name": "Emercom Camping Tent", + "forbiddenWeapons" : [ "sniperRifle" ], + "objectives" : [ + { + "repeatable": true, + "minDistanceFromBot": 30, + "maxDistanceFromBot": 1000, + "maxRunDistance": 5, + "lootAfterCompleting": "Inhibit", + "steps": [ + { + "waitTimeAfterCompleting": 1, + "position" : { + "x": -328.105774, + "y": 21.3254375, + "z": 259.336426 + } + }, + { + "stepType" : "Ambush", + "minElapsedTime": { + "min": 60, + "max": 300 + }, + "position" : { + "x": -328.105774, + "y": 21.3254375, + "z": 259.336426 + }, + "lookToPosition" : { + "x": -317.337341, + "y": 21.3254356, + "z": 267.088 + } + } + ] + } + ] + }, + { + "repeatable": true, + "isCamping": true, + "minLevel": 0, + "maxLevel": 99, + "maxBots": 2, + "maxBotsInGroup": 1, + "minRaidET": 300, + "desirability": 10, + "name": "Emercom Camping Bushes", + "forbiddenWeapons" : [ "sniperRifle" ], + "objectives" : [ + { + "repeatable": true, + "minDistanceFromBot": 30, + "maxDistanceFromBot": 1000, + "lootAfterCompleting": "Inhibit", + "steps": [ + { + "waitTimeAfterCompleting": 1, + "position" : { + "x": -331.513672, + "y": 21.7780323, + "z": 253.956451 + } + }, + { + "stepType" : "Ambush", + "minElapsedTime": { + "min": 60, + "max": 300 + }, + "position" : { + "x": -331.513672, + "y": 21.7780323, + "z": 253.956451 + }, + "lookToPosition" : { + "x": -314.042053, + "y": 21.32544, + "z": 256.040039 + } + } + ] + } + ] + }, + { + "repeatable": true, + "isCamping": true, + "minLevel": 0, + "maxLevel": 99, + "maxBots": 2, + "maxBotsInGroup": 1, + "minRaidET": 300, + "desirability": 10, + "name": "Emercom Camping Bushes 2", + "forbiddenWeapons" : [ "sniperRifle" ], + "objectives" : [ + { + "repeatable": true, + "minDistanceFromBot": 30, + "maxDistanceFromBot": 1000, + "lootAfterCompleting": "Inhibit", + "steps": [ + { + "waitTimeAfterCompleting": 1, + "position" : { + "x": -351.59906, + "y": 24.1870937, + "z": 225.808167 + } + }, + { + "stepType" : "Ambush", + "minElapsedTime": { + "min": 60, + "max": 300 + }, + "position" : { + "x": -351.59906, + "y": 24.1870937, + "z": 225.808167 + }, + "lookToPosition" : { + "x": -293.029572, + "y": 21.3254414, + "z": 229.219772 + } + } + ] + } + ] + }, + { + "repeatable": true, + "isCamping": true, + "minLevel": 0, + "maxLevel": 99, + "maxBots": 2, + "maxBotsInGroup": 1, + "minRaidET": 300, + "desirability": 10, + "name": "Emercom Camping Loading Dock", + "forbiddenWeapons" : [ "pistol", "shotgun" ], + "objectives" : [ + { + "repeatable": true, + "minDistanceFromBot": 30, + "maxDistanceFromBot": 1000, + "lootAfterCompleting": "Inhibit", + "steps": [ + { + "waitTimeAfterCompleting": 1, + "position" : { + "x": -153.829926, + "y": 27.1066227, + "z": 202.994034 + } + }, + { + "stepType" : "Ambush", + "minElapsedTime": { + "min": 60, + "max": 300 + }, + "position" : { + "x": -153.829926, + "y": 27.1066227, + "z": 202.994034 + }, + "lookToPosition" : { + "x": -136.6634, + "y": 24.9211922, + "z": 281.90274 + } + } + ] + } + ] + }, + { + "repeatable": true, + "isCamping": true, + "minLevel": 0, + "maxLevel": 99, + "maxBots": 2, + "maxBotsInGroup": 1, + "minRaidET": 300, + "desirability": 10, + "name": "Hole in Fence Camping", + "forbiddenWeapons" : [ "sniperRifle" ], + "objectives" : [ + { + "repeatable": true, + "minDistanceFromBot": 30, + "maxDistanceFromBot": 1000, + "lootAfterCompleting": "Inhibit", + "steps": [ + { + "waitTimeAfterCompleting": 1, + "position" : { + "x": -222.046082, + "y": 21.3254414, + "z": -10.0693922 + } + }, + { + "stepType" : "Ambush", + "minElapsedTime": { + "min": 60, + "max": 300 + }, + "position" : { + "x": -222.046082, + "y": 21.3254414, + "z": -10.0693922 + }, + "lookToPosition" : { + "x": -222.926514, + "y": 21.3254337, + "z": -37.6849 + } + } + ] + } + ] + }, + { + "repeatable": true, + "isCamping": true, + "minLevel": 0, + "maxLevel": 99, + "maxBots": 2, + "maxBotsInGroup": 1, + "minRaidET": 300, + "desirability": 10, + "name": "Hole in Fence Camping Garage", + "forbiddenWeapons" : [ "sniperRifle" ], + "objectives" : [ + { + "repeatable": true, + "minDistanceFromBot": 30, + "maxDistanceFromBot": 1000, + "lootAfterCompleting": "Inhibit", + "steps": [ + { + "waitTimeAfterCompleting": 1, + "position" : { + "x": -192.4741, + "y": 21.3254967, + "z": -12.081954 + } + }, + { + "stepType" : "HoldAtPosition", + "maxDistance": 3, + "minElapsedTime": { + "min": 45, + "max": 180 + }, + "position" : { + "x": -192.4741, + "y": 21.3254967, + "z": -12.081954 + } + } + ] + } + ] + }, + { + "repeatable": false, + "minLevel": 0, + "maxLevel": 99, + "maxBots": 2, + "desirability": 20, + "name": "Emercom Tank", + "objectives" : [ + { + "repeatable": false, + "minDistanceFromBot": 30, + "maxDistanceFromBot": 500, + "steps": [ + { + "position" : { + "x": -259.464417, + "y": 21.3254375, + "z": 213.1366 + } + } + ] + } + ] + }, + { + "repeatable": true, + "minLevel": 0, + "maxLevel": 99, + "maxBots": 2, + "desirability": 20, + "name": "Emercom Extract North Entry", + "objectives" : [ + { + "repeatable": true, + "minDistanceFromBot": 30, + "maxDistanceFromBot": 500, + "steps": [ + { + "position" : { + "x": -253.530014, + "y": 21.3254356, + "z": 70.34992 + } + } + ] + }, + { + "repeatable": true, + "minDistanceFromBot": 30, + "maxDistanceFromBot": 500, + "steps": [ + { + "position" : { + "x": -215.289948, + "y": 21.32544, + "z": -29.26725 + } + } + ] + } + ] + }, + { + "repeatable": true, + "minLevel": 0, + "maxLevel": 99, + "maxBots": 2, + "desirability": 15, + "name": "Collapsed Floor Underside", + "objectives" : [ + { + "repeatable": true, + "minDistanceFromBot": 30, + "maxDistanceFromBot": 500, + "maxRunDistance": 6, + "steps": [ + { + "position" : { + "x": 1.49753761, + "y": 21.3254566, + "z": 14.321393 + } + } + ] + } + ] + }, + { + "repeatable": false, + "minLevel": 0, + "maxLevel": 99, + "maxBots": 2, + "desirability": 15, + "name": "Parking Main Stairs", + "objectives" : [ + { + "repeatable": false, + "minDistanceFromBot": 20, + "maxDistanceFromBot": 500, + "maxRunDistance": 8, + "steps": [ + { + "position" : { + "x": 2.41854763, + "y": 21.3254986, + "z": -35.00708 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 20, + "maxDistanceFromBot": 500, + "maxRunDistance": 8, + "steps": [ + { + "position" : { + "x": 0.935274959, + "y": 21.3255043, + "z": -75.5376358 + } + } + ] + } + ] + }, + { + "repeatable": false, + "minLevel": 0, + "maxLevel": 99, + "maxBots": 2, + "desirability": 15, + "name": "Parking Tents", + "objectives" : [ + { + "repeatable": false, + "minDistanceFromBot": 20, + "maxDistanceFromBot": 500, + "maxRunDistance": 5, + "steps": [ + { + "position" : { + "x": 41.5771751, + "y": 21.3255081, + "z": -114.540428 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 20, + "maxDistanceFromBot": 500, + "maxRunDistance": 7, + "steps": [ + { + "position" : { + "x": 34.24728, + "y": 21.3447819, + "z": -129.463364 + } + } + ] + } + ] + }, + { + "repeatable": true, + "minLevel": 0, + "maxLevel": 99, + "maxBots": 2, + "desirability": 15, + "name": "IDEA Escalator Vestibules", + "objectives" : [ + { + "repeatable": true, + "minDistanceFromBot": 20, + "maxDistanceFromBot": 500, + "maxRunDistance": 7, + "steps": [ + { + "position" : { + "x": 81.5387, + "y": 21.4300156, + "z": -178.379837 + } + } + ] + }, + { + "repeatable": true, + "minDistanceFromBot": 20, + "maxDistanceFromBot": 500, + "maxRunDistance": 12, + "steps": [ + { + "position" : { + "x": 90.11804, + "y": 21.4300156, + "z": -205.424408 + } + } + ] + } + ] + }, + { + "repeatable": true, + "minLevel": 0, + "maxLevel": 99, + "maxBots": 2, + "desirability": 20, + "name": "OLI Loading Dock", + "objectives" : [ + { + "repeatable": true, + "minDistanceFromBot": 10, + "maxDistanceFromBot": 500, + "steps": [ + { + "position" : { + "x": -156.55127, + "y": 27.1066246, + "z": 175.615143 + } + } + ] + }, + { + "repeatable": true, + "minDistanceFromBot": 10, + "maxDistanceFromBot": 500, + "maxRunDistance": 7, + "steps": [ + { + "position" : { + "x": -156.902008, + "y": 27.1066284, + "z": 146.465546 + } + } + ] + }, + { + "repeatable": true, + "minDistanceFromBot": 10, + "maxDistanceFromBot": 500, + "steps": [ + { + "position" : { + "x": -156.737, + "y": 27.10663, + "z": 107.84861 + } + } + ] + }, + { + "repeatable": true, + "minDistanceFromBot": 10, + "maxDistanceFromBot": 500, + "steps": [ + { + "position" : { + "x": -169.516464, + "y": 27.1066322, + "z": 86.74304 + } + } + ] + }, + { + "repeatable": true, + "minDistanceFromBot": 10, + "maxDistanceFromBot": 500, + "steps": [ + { + "position" : { + "x": -192.3945, + "y": 27.1066341, + "z": 86.28606 + } + } + ] + }, + { + "repeatable": true, + "minDistanceFromBot": 10, + "maxDistanceFromBot": 500, + "steps": [ + { + "position" : { + "x": -196.003662, + "y": 27.106638, + "z": 53.420372 + } + } + ] + } + ] + }, + { + "repeatable": false, + "minLevel": 0, + "maxLevel": 99, + "maxBots": 2, + "desirability": 25, + "canRunBetweenObjectives": false, + "name": "OLI Loading Dock Stashes", + "objectives" : [ + { + "repeatable": false, + "minDistanceFromBot": 10, + "maxDistanceFromBot": 500, + "steps": [ + { + "position" : { + "x": -174.546478, + "y": 27.0861664, + "z": 64.1145248 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 10, + "maxDistanceFromBot": 500, + "maxRunDistance": 7, + "steps": [ + { + "position" : { + "x": -160.108109, + "y": 27.2935734, + "z": 60.08739 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 10, + "maxDistanceFromBot": 500, + "maxRunDistance": 7, + "steps": [ + { + "position" : { + "x": -137.364777, + "y": 27.2935734, + "z": 66.70027 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 10, + "maxDistanceFromBot": 500, + "maxRunDistance": 4, + "steps": [ + { + "position" : { + "x": -139.660278, + "y": 27.2935734, + "z": 64.06795 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 10, + "maxDistanceFromBot": 500, + "maxRunDistance": 4, + "steps": [ + { + "position" : { + "x": -133.799454, + "y": 27.0861816, + "z": 50.4203758 + } + } + ] + } + ] + }, + { + "repeatable": true, + "minLevel": 0, + "maxLevel": 99, + "maxBots": 2, + "desirability": 25, + "name": "Goshan Loading Corridor", + "objectives" : [ + { + "repeatable": true, + "minDistanceFromBot": 10, + "maxDistanceFromBot": 500, + "steps": [ + { + "position" : { + "x": -176.8651, + "y": 27.0861759, + "z": -7.598729 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 10, + "maxDistanceFromBot": 500, + "steps": [ + { + "position" : { + "x": -178.462082, + "y": 27.0861778, + "z": -27.7299767 + } + } + ] + }, + { + "repeatable": true, + "minDistanceFromBot": 10, + "maxDistanceFromBot": 500, + "steps": [ + { + "position" : { + "x": -168.347458, + "y": 27.0861835, + "z": -62.43293 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 10, + "maxDistanceFromBot": 500, + "steps": [ + { + "position" : { + "x": -154.9661, + "y": 27.244978, + "z": -57.32388 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 10, + "maxDistanceFromBot": 500, + "steps": [ + { + "position" : { + "x": -174.466324, + "y": 27.0861874, + "z": -107.994423 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 10, + "maxDistanceFromBot": 500, + "steps": [ + { + "position" : { + "x": -162.3512, + "y": 27.2735672, + "z": -164.727356 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 10, + "maxDistanceFromBot": 500, + "steps": [ + { + "position" : { + "x": -138.521652, + "y": 27.0862026, + "z": -153.22522 + } + } + ] + } + ] + }, + { + "repeatable": true, + "minLevel": 0, + "maxLevel": 99, + "maxBots": 2, + "desirability": 10, + "name": "Goshan Loading Corridor Stairs Top", + "objectives" : [ + { + "repeatable": true, + "minDistanceFromBot": 10, + "maxDistanceFromBot": 500, + "maxRunDistance": 3, + "steps": [ + { + "position" : { + "x": -191.973282, + "y": 27.1816559, + "z": -53.12898 + } + } + ] + } + ] + }, + { + "repeatable": true, + "minLevel": 0, + "maxLevel": 99, + "maxBots": 2, + "desirability": 10, + "name": "Goshan Loading Corridor Stairs Bottom", + "objectives" : [ + { + "repeatable": true, + "minDistanceFromBot": 10, + "maxDistanceFromBot": 500, + "maxRunDistance": 5, + "steps": [ + { + "position" : { + "x": -194.609314, + "y": 20.153717, + "z": -57.69243 + } + } + ] + } + ] + }, + { + "repeatable": false, + "minLevel": 0, + "maxLevel": 99, + "maxBots": 2, + "desirability": 15, + "name": "Goshan Automotive Section", + "objectives" : [ + { + "repeatable": false, + "minDistanceFromBot": 10, + "maxDistanceFromBot": 500, + "steps": [ + { + "position" : { + "x": -142.415588, + "y": 27.0861816, + "z": 32.86329 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 10, + "maxDistanceFromBot": 500, + "steps": [ + { + "position" : { + "x": -139.431381, + "y": 27.0861816, + "z": 25.0017624 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 10, + "maxDistanceFromBot": 500, + "steps": [ + { + "position" : { + "x": -152.649338, + "y": 27.08618, + "z": 16.317543 + } + } + ] + } + ] + }, + { + "repeatable": false, + "minLevel": 0, + "maxLevel": 99, + "maxBots": 2, + "desirability": 10, + "name": "Goshan Interior Tents", + "objectives" : [ + { + "repeatable": false, + "minDistanceFromBot": 10, + "maxDistanceFromBot": 500, + "maxRunDistance": 5, + "steps": [ + { + "position" : { + "x": -113.578674, + "y": 27.0862, + "z": -125.651344 + } + } + ] + } + ] + }, + { + "repeatable": false, + "minLevel": 0, + "maxLevel": 99, + "maxBots": 2, + "desirability": 10, + "canRunBetweenObjectives": false, + "name": "Goshan Lockers", + "objectives" : [ + { + "repeatable": false, + "minDistanceFromBot": 10, + "maxDistanceFromBot": 500, + "maxRunDistance": 7, + "steps": [ + { + "position" : { + "x": -65.08832, + "y": 27.0864887, + "z": -0.117376477 + } + }, + { + "position" : { + "x": -68.6599, + "y": 27.0864868, + "z": 7.38663 + } + } + ] + } + ] + }, + { + "repeatable": false, + "minLevel": 0, + "maxLevel": 99, + "maxBots": 2, + "desirability": 25, + "canRunBetweenObjectives": false, + "name": "Goshan South Office", + "objectives" : [ + { + "repeatable": false, + "minDistanceFromBot": 10, + "maxDistanceFromBot": 500, + "maxRunDistance": 10, + "steps": [ + { + "position" : { + "x": -76.67584, + "y": 27.08648, + "z": 42.4231873 + } + }, + { + "position" : { + "x": -69.00478, + "y": 27.0864754, + "z": 40.4756432 + } + }, + { + "position" : { + "x": -77.66552, + "y": 27.0864773, + "z": 48.8652573 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 10, + "maxDistanceFromBot": 500, + "maxRunDistance": 12, + "steps": [ + { + "position" : { + "x": -66.57702, + "y": 27.0864716, + "z": 51.696537 + } + } + ] + } + ] + }, + { + "repeatable": false, + "minLevel": 0, + "maxLevel": 99, + "maxBots": 2, + "desirability": 25, + "canRunBetweenObjectives": false, + "name": "Goshan North Office", + "objectives" : [ + { + "repeatable": false, + "minDistanceFromBot": 10, + "maxDistanceFromBot": 500, + "maxRunDistance": 11, + "steps": [ + { + "position" : { + "x": -77.25731, + "y": 27.0865059, + "z": -150.086624 + } + }, + { + "position" : { + "x": -77.21631, + "y": 27.0865078, + "z": -154.596848 + } + }, + { + "position" : { + "x": -77.18332, + "y": 27.0865078, + "z": -159.620163 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 10, + "maxDistanceFromBot": 500, + "maxRunDistance": 14, + "steps": [ + { + "position" : { + "x": -66.0170059, + "y": 27.0864983, + "z": -160.38028 + } + } + ] + } + ] + }, + { + "repeatable": true, + "minLevel": 0, + "maxLevel": 99, + "maxBots": 3, + "desirability": 20, + "name": "IDEA Escalator Top Room", + "objectives" : [ + { + "repeatable": true, + "minDistanceFromBot": 10, + "maxDistanceFromBot": 500, + "steps": [ + { + "position" : { + "x": 58.0378876, + "y": 27.0860214, + "z": -203.1358 + } + } + ] + } + ] + }, + { + "repeatable": false, + "minLevel": 0, + "maxLevel": 99, + "maxBots": 2, + "desirability": 10, + "name": "IDEA Lockers", + "objectives" : [ + { + "repeatable": false, + "minDistanceFromBot": 10, + "maxDistanceFromBot": 300, + "steps": [ + { + "position" : { + "x": 89.81569, + "y": 27.0676746, + "z": -236.53096 + } + } + ] + } + ] + }, + { + "repeatable": false, + "minLevel": 0, + "maxLevel": 99, + "maxBots": 2, + "desirability": 20, + "canRunBetweenObjectives": false, + "name": "OLI Loading Area", + "objectives" : [ + { + "repeatable": false, + "minDistanceFromBot": 10, + "maxDistanceFromBot": 500, + "maxRunDistance": 9, + "steps": [ + { + "position" : { + "x": -108.470634, + "y": 27.0864811, + "z": 77.8563156 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 10, + "maxDistanceFromBot": 500, + "maxRunDistance": 9, + "steps": [ + { + "position" : { + "x": -111.656548, + "y": 27.0864754, + "z": 118.782806 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 10, + "maxDistanceFromBot": 500, + "maxRunDistance": 9, + "steps": [ + { + "position" : { + "x": -94.5671539, + "y": 27.0864677, + "z": 190.148209 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 10, + "maxDistanceFromBot": 500, + "maxRunDistance": 9, + "steps": [ + { + "position" : { + "x": -76.80244, + "y": 27.0864677, + "z": 183.962616 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 10, + "maxDistanceFromBot": 500, + "maxRunDistance": 9, + "steps": [ + { + "position" : { + "x": -86.66275, + "y": 27.0864677, + "z": 177.917389 + } + } + ] + } + ] + }, + { + "repeatable": true, + "minLevel": 0, + "maxLevel": 99, + "maxBots": 3, + "desirability": 25, + "canRunBetweenObjectives": false, + "name": "OLI Back Storage", + "objectives" : [ + { + "repeatable": true, + "minDistanceFromBot": 10, + "maxDistanceFromBot": 500, + "maxRunDistance": 5, + "steps": [ + { + "position" : { + "x": -93.15129, + "y": 27.0864735, + "z": 141.2594 + } + } + ] + }, + { + "repeatable": true, + "minDistanceFromBot": 10, + "maxDistanceFromBot": 500, + "maxRunDistance": 5, + "steps": [ + { + "position" : { + "x": -80.02157, + "y": 27.08647, + "z": 167.146774 + } + } + ] + } + ] + }, + { + "repeatable": false, + "minLevel": 0, + "maxLevel": 99, + "maxBots": 3, + "desirability": 25, + "canRunBetweenObjectives": false, + "name": "OLI SE Office", + "objectives" : [ + { + "repeatable": false, + "minDistanceFromBot": 10, + "maxDistanceFromBot": 500, + "maxRunDistance": 5, + "steps": [ + { + "position" : { + "x": -99.20864, + "y": 27.089056, + "z": 123.110191 + } + }, + { + "position" : { + "x": -98.889946, + "y": 27.089056, + "z": 116.795349 + } + }, + { + "position" : { + "x": -92.02223, + "y": 27.089056, + "z": 122.250084 + } + }, + { + "position" : { + "x": -92.0259247, + "y": 27.0890541, + "z": 130.637451 + } + } + ] + } + ] + }, + { + "repeatable": false, + "minLevel": 0, + "maxLevel": 99, + "maxBots": 3, + "desirability": 25, + "canRunBetweenObjectives": false, + "name": "OLI NE Office", + "objectives" : [ + { + "repeatable": false, + "minDistanceFromBot": 10, + "maxDistanceFromBot": 500, + "maxRunDistance": 13, + "steps": [ + { + "position" : { + "x": -98.66047, + "y": 27.089056, + "z": 112.417717 + } + }, + { + "position" : { + "x": -92.33623, + "y": 27.0890579, + "z": 100.069061 + } + }, + { + "position" : { + "x": -91.80267, + "y": 27.0890579, + "z": 106.482079 + } + } + ] + } + ] + }, + { + "repeatable": false, + "minLevel": 0, + "maxLevel": 99, + "maxBots": 3, + "desirability": 25, + "canRunBetweenObjectives": false, + "name": "OLI NW Office", + "objectives" : [ + { + "repeatable": false, + "minDistanceFromBot": 10, + "maxDistanceFromBot": 500, + "maxRunDistance": 9, + "steps": [ + { + "position" : { + "x": -87.24678, + "y": 27.0890579, + "z": 97.27374 + } + }, + { + "position" : { + "x": -87.4186, + "y": 27.0890579, + "z": 107.019905 + } + }, + { + "position" : { + "x": -81.17139, + "y": 27.089056, + "z": 111.264992 + } + } + ] + } + ] + }, + { + "repeatable": true, + "minLevel": 0, + "maxLevel": 99, + "maxBots": 3, + "desirability": 20, + "name": "OLI East Bathrooms", + "objectives" : [ + { + "repeatable": true, + "minDistanceFromBot": 10, + "maxDistanceFromBot": 750, + "lootAfterCompleting": "Inhibit", + "steps": [ + { + "position" : { + "x": -77.26531, + "y": 27.08906, + "z": 82.52976 + } + } + ] + } + ] + }, + { + "repeatable": true, + "minLevel": 0, + "maxLevel": 99, + "maxBots": 3, + "desirability": 25, + "canRunBetweenObjectives": false, + "name": "OLI Showroom East", + "objectives" : [ + { + "repeatable": true, + "minDistanceFromBot": 10, + "maxDistanceFromBot": 750, + "steps": [ + { + "position" : { + "x": -47.29352, + "y": 27.0864735, + "z": 129.0653 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 10, + "maxDistanceFromBot": 750, + "steps": [ + { + "position" : { + "x": -38.6161766, + "y": 27.0864716, + "z": 156.983444 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 10, + "maxDistanceFromBot": 750, + "steps": [ + { + "position" : { + "x": -59.9692154, + "y": 27.08647, + "z": 174.832611 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 10, + "maxDistanceFromBot": 750, + "steps": [ + { + "position" : { + "x": -68.06927, + "y": 27.0864677, + "z": 189.494888 + } + } + ] + } + ] + }, + { + "repeatable": true, + "minLevel": 0, + "maxLevel": 99, + "maxBots": 3, + "desirability": 25, + "canRunBetweenObjectives": false, + "name": "OLI Showroom Center", + "objectives" : [ + { + "repeatable": true, + "minDistanceFromBot": 10, + "maxDistanceFromBot": 750, + "steps": [ + { + "position" : { + "x": -42.6305771, + "y": 27.0864754, + "z": 112.01683 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 10, + "maxDistanceFromBot": 750, + "steps": [ + { + "position" : { + "x": -26.6971283, + "y": 27.0864773, + "z": 111.309616 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 10, + "maxDistanceFromBot": 750, + "steps": [ + { + "position" : { + "x": -2.36867857, + "y": 27.0864773, + "z": 107.215172 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 10, + "maxDistanceFromBot": 750, + "steps": [ + { + "position" : { + "x": -19.088913, + "y": 27.0864716, + "z": 148.086624 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 10, + "maxDistanceFromBot": 750, + "steps": [ + { + "position" : { + "x": -4.807571, + "y": 27.0864677, + "z": 188.56012 + } + } + ] + } + ] + }, + { + "repeatable": true, + "minLevel": 0, + "maxLevel": 99, + "maxBots": 3, + "desirability": 25, + "canRunBetweenObjectives": false, + "name": "OLI Showroom West", + "objectives" : [ + { + "repeatable": true, + "minDistanceFromBot": 10, + "maxDistanceFromBot": 750, + "steps": [ + { + "position" : { + "x": 6.80444, + "y": 27.08647, + "z": 170.198486 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 10, + "maxDistanceFromBot": 750, + "steps": [ + { + "position" : { + "x": 22.401823, + "y": 27.0864773, + "z": 112.065407 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 10, + "maxDistanceFromBot": 750, + "steps": [ + { + "position" : { + "x": 42.360054, + "y": 27.0864735, + "z": 129.241562 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 10, + "maxDistanceFromBot": 750, + "steps": [ + { + "position" : { + "x": 18.89523, + "y": 27.08647, + "z": 166.622879 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 10, + "maxDistanceFromBot": 750, + "steps": [ + { + "position" : { + "x": 13.3992748, + "y": 27.3321686, + "z": 139.481552 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 10, + "maxDistanceFromBot": 750, + "steps": [ + { + "position" : { + "x": 54.607193, + "y": 27.0864754, + "z": 119.754753 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 10, + "maxDistanceFromBot": 750, + "steps": [ + { + "position" : { + "x": 38.85411, + "y": 27.0864773, + "z": 99.9045 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 10, + "maxDistanceFromBot": 750, + "steps": [ + { + "position" : { + "x": 47.1382751, + "y": 27.0864716, + "z": 146.033218 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 10, + "maxDistanceFromBot": 750, + "steps": [ + { + "position" : { + "x": 39.12195, + "y": 27.0864716, + "z": 150.038956 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 10, + "maxDistanceFromBot": 750, + "steps": [ + { + "position" : { + "x": 39.3408737, + "y": 27.0864677, + "z": 183.502914 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 10, + "maxDistanceFromBot": 750, + "steps": [ + { + "position" : { + "x": 49.4871368, + "y": 27.0864677, + "z": 180.1992 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 10, + "maxDistanceFromBot": 750, + "steps": [ + { + "position" : { + "x": 58.7034378, + "y": 27.08647, + "z": 167.698639 + } + } + ] + }, + { + "repeatable": true, + "minDistanceFromBot": 10, + "maxDistanceFromBot": 750, + "steps": [ + { + "position" : { + "x": 66.7198, + "y": 27.08647, + "z": 161.730011 + } + } + ] + } + ] + }, + { + "repeatable": false, + "minLevel": 0, + "maxLevel": 99, + "maxBots": 3, + "desirability": 25, + "canRunBetweenObjectives": false, + "name": "OLI Logistics Back Offices", + "objectives" : [ + { + "repeatable": false, + "minDistanceFromBot": 10, + "maxDistanceFromBot": 750, + "maxRunDistance": 15, + "steps": [ + { + "position" : { + "x": 74.1557, + "y": 27.0862885, + "z": 157.568878 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 10, + "maxDistanceFromBot": 750, + "maxRunDistance": 15, + "steps": [ + { + "position" : { + "x": 79.50485, + "y": 27.0862885, + "z": 165.92598 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 10, + "maxDistanceFromBot": 750, + "maxRunDistance": 15, + "steps": [ + { + "position" : { + "x": 83.50744, + "y": 27.0862885, + "z": 159.207291 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 10, + "maxDistanceFromBot": 750, + "maxRunDistance": 15, + "steps": [ + { + "position" : { + "x": 75.30018, + "y": 27.0862885, + "z": 162.669281 + } + } + ] + } + ] + }, + { + "repeatable": false, + "minLevel": 0, + "maxLevel": 99, + "maxBots": 2, + "desirability": 15, + "name": "OLI North Lockers", + "objectives" : [ + { + "repeatable": false, + "minDistanceFromBot": 10, + "maxDistanceFromBot": 300, + "steps": [ + { + "position" : { + "x": -16.3560333, + "y": 27.0864811, + "z": 74.1497955 + } + } + ] + } + ] + }, + { + "repeatable": true, + "minLevel": 0, + "maxLevel": 99, + "maxBots": 2, + "desirability": 25, + "canRunBetweenObjectives": true, + "name": "OLI Mall Entrance", + "objectives" : [ + { + "repeatable": true, + "minDistanceFromBot": 10, + "maxDistanceFromBot": 750, + "steps": [ + { + "position" : { + "x": 15.5234022, + "y": 27.0864563, + "z": 64.19669 + } + } + ] + }, + { + "repeatable": true, + "minDistanceFromBot": 10, + "maxDistanceFromBot": 750, + "steps": [ + { + "position" : { + "x": 31.2907219, + "y": 27.0864582, + "z": 61.1545868 + } + } + ] + }, + { + "repeatable": true, + "minDistanceFromBot": 10, + "maxDistanceFromBot": 750, + "steps": [ + { + "position" : { + "x": 46.7268448, + "y": 27.08646, + "z": 56.277462 + } + } + ] + } + ] + }, + { + "repeatable": true, + "minLevel": 0, + "maxLevel": 99, + "maxBots": 2, + "desirability": 25, + "canRunBetweenObjectives": false, + "name": "DOM", + "objectives" : [ + { + "repeatable": true, + "minDistanceFromBot": 10, + "maxDistanceFromBot": 750, + "maxRunDistance": 5, + "steps": [ + { + "position" : { + "x": 0.126629964, + "y": 27.2458458, + "z": 45.93853 + } + } + ] + }, + { + "repeatable": true, + "minDistanceFromBot": 10, + "maxDistanceFromBot": 750, + "steps": [ + { + "position" : { + "x": 28.8350658, + "y": 27.09361, + "z": 54.8767166 + } + } + ] + }, + { + "repeatable": true, + "minDistanceFromBot": 10, + "maxDistanceFromBot": 750, + "maxRunDistance": 5, + "steps": [ + { + "position" : { + "x": 7.137712, + "y": 27.0936222, + "z": 36.0920677 + } + } + ] + }, + { + "repeatable": true, + "minDistanceFromBot": 10, + "maxDistanceFromBot": 750, + "maxRunDistance": 5, + "steps": [ + { + "position" : { + "x": 1.313048, + "y": 27.0936222, + "z": 36.4208641 + } + } + ] + }, + { + "repeatable": true, + "minDistanceFromBot": 10, + "maxDistanceFromBot": 750, + "maxRunDistance": 5, + "steps": [ + { + "position" : { + "x": -14.1038237, + "y": 27.09362, + "z": 37.3149261 + } + } + ] + } + ] + }, + { + "repeatable": false, + "minLevel": 0, + "maxLevel": 99, + "maxBots": 3, + "desirability": 25, + "canRunBetweenObjectives": false, + "name": "TEXHO", + "objectives" : [ + { + "repeatable": false, + "minDistanceFromBot": 10, + "maxDistanceFromBot": 750, + "maxRunDistance": 7, + "steps": [ + { + "position" : { + "x": 55.8350639, + "y": 27.0934467, + "z": 42.78999 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 10, + "maxDistanceFromBot": 750, + "maxRunDistance": 7, + "steps": [ + { + "position" : { + "x": 71.26176, + "y": 27.0934448, + "z": 46.592308 + } + } + ] + } + ] + }, + { + "repeatable": false, + "minLevel": 0, + "maxLevel": 99, + "maxBots": 2, + "desirability": 15, + "canRunBetweenObjectives": false, + "name": "Pharma", + "objectives" : [ + { + "repeatable": false, + "minDistanceFromBot": 10, + "maxDistanceFromBot": 750, + "maxRunDistance": 10, + "steps": [ + { + "position" : { + "x": 60.48553, + "y": 36.5697479, + "z": -143.448044 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 10, + "maxDistanceFromBot": 750, + "maxRunDistance": 10, + "steps": [ + { + "position" : { + "x": 60.20546, + "y": 36.5697327, + "z": -132.353 + } + } + ] + } + ] + }, + { + "repeatable": false, + "minLevel": 0, + "maxLevel": 99, + "maxBots": 2, + "desirability": 15, + "name": "MK", + "objectives" : [ + { + "repeatable": false, + "minDistanceFromBot": 10, + "maxDistanceFromBot": 500, + "maxRunDistance": 6, + "steps": [ + { + "position" : { + "x": 8.395548, + "y": 36.5697556, + "z": -138.729538 + } + } + ] + } + ] + }, + { + "repeatable": false, + "minLevel": 0, + "maxLevel": 99, + "maxBots": 2, + "desirability": 10, + "canRunBetweenObjectives": false, + "name": "IDEA Showroom", + "objectives" : [ + { + "repeatable": false, + "minDistanceFromBot": 10, + "maxDistanceFromBot": 500, + "maxRunDistance": 3, + "steps": [ + { + "position" : { + "x": -26.1002579, + "y": 27.2446766, + "z": -279.714142 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 10, + "maxDistanceFromBot": 500, + "maxRunDistance": 3, + "steps": [ + { + "position" : { + "x": -49.2692, + "y": 27.2455463, + "z": -271.577545 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 10, + "maxDistanceFromBot": 500, + "maxRunDistance": 3, + "steps": [ + { + "position" : { + "x": -31.68525, + "y": 27.2455463, + "z": -260.681549 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 10, + "maxDistanceFromBot": 500, + "maxRunDistance": 3, + "steps": [ + { + "position" : { + "x": -31.4957485, + "y": 27.2408962, + "z": -239.7634 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 10, + "maxDistanceFromBot": 500, + "maxRunDistance": 3, + "steps": [ + { + "position" : { + "x": -45.98258, + "y": 27.2455368, + "z": -217.727829 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 10, + "maxDistanceFromBot": 500, + "maxRunDistance": 3, + "steps": [ + { + "position" : { + "x": -26.0393066, + "y": 27.2455387, + "z": -202.937531 + } + } + ] + } + ] + }, + { + "repeatable": false, + "minLevel": 0, + "maxLevel": 99, + "maxBots": 2, + "desirability": 20, + "canRunBetweenObjectives": false, + "name": "TTS", + "objectives" : [ + { + "repeatable": false, + "minDistanceFromBot": 10, + "maxDistanceFromBot": 500, + "maxRunDistance": 6, + "steps": [ + { + "position" : { + "x": 9.711948, + "y": 27.0864849, + "z": -139.781372 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 10, + "maxDistanceFromBot": 500, + "maxRunDistance": 6, + "steps": [ + { + "position" : { + "x": 14.2973061, + "y": 27.086483, + "z": -133.168137 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 10, + "maxDistanceFromBot": 500, + "maxRunDistance": 15, + "steps": [ + { + "position" : { + "x": 23.635828, + "y": 27.086483, + "z": -128.874466 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 10, + "maxDistanceFromBot": 500, + "maxRunDistance": 20, + "steps": [ + { + "position" : { + "x": 31.167799, + "y": 27.0864658, + "z": -139.510513 + } + } + ] + } + ] + }, + { + "repeatable": false, + "minLevel": 0, + "maxLevel": 99, + "maxBots": 2, + "desirability": 15, + "name": "German", + "objectives" : [ + { + "repeatable": false, + "minDistanceFromBot": 10, + "maxDistanceFromBot": 500, + "maxRunDistance": 8, + "steps": [ + { + "position" : { + "x": -18.6620655, + "y": 27.0935478, + "z": -76.7630844 + } + } + ] + } + ] + }, + { + "repeatable": false, + "minLevel": 0, + "maxLevel": 99, + "maxBots": 2, + "desirability": 15, + "canRunBetweenObjectives": false, + "name": "ADIK", + "objectives" : [ + { + "repeatable": false, + "minDistanceFromBot": 10, + "maxDistanceFromBot": 500, + "maxRunDistance": 8, + "steps": [ + { + "position" : { + "x": 13.51505, + "y": 27.1010017, + "z": 0.783653557 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 10, + "maxDistanceFromBot": 500, + "maxRunDistance": 25, + "steps": [ + { + "position" : { + "x": 27.6187725, + "y": 27.08647, + "z": -21.2981052 + } + } + ] + } + ] + }, + { + "repeatable": false, + "minLevel": 0, + "maxLevel": 99, + "maxBots": 3, + "desirability": 20, + "canRunBetweenObjectives": false, + "name": "The National", + "objectives" : [ + { + "repeatable": false, + "minDistanceFromBot": 10, + "maxDistanceFromBot": 500, + "maxRunDistance": 4, + "steps": [ + { + "position" : { + "x": 66.7273, + "y": 27.0864773, + "z": -29.4504 + } + }, + { + "position" : { + "x": 61.520668, + "y": 27.0864735, + "z": -29.4815464 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 10, + "maxDistanceFromBot": 500, + "maxRunDistance": 5, + "steps": [ + { + "position" : { + "x": 49.02274, + "y": 27.0864735, + "z": -43.09113 + } + } + ] + } + ] + }, + { + "repeatable": false, + "minLevel": 0, + "maxLevel": 99, + "maxBots": 2, + "desirability": 20, + "canRunBetweenObjectives": false, + "name": "Rasmussen", + "objectives" : [ + { + "repeatable": false, + "minDistanceFromBot": 10, + "maxDistanceFromBot": 500, + "maxRunDistance": 8, + "steps": [ + { + "position" : { + "x": 28.0423279, + "y": 27.0934353, + "z": 30.44507 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 10, + "maxDistanceFromBot": 500, + "maxRunDistance": 6, + "steps": [ + { + "position" : { + "x": 29.9848557, + "y": 27.09344, + "z": 20.2210636 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 10, + "maxDistanceFromBot": 500, + "maxRunDistance": 9, + "steps": [ + { + "position" : { + "x": 16.99273, + "y": 27.09344, + "z": 20.8191624 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 10, + "maxDistanceFromBot": 500, + "maxRunDistance": 8, + "steps": [ + { + "position" : { + "x": 10.7467718, + "y": 27.0934353, + "z": 30.5839615 + } + } + ] + } + ] + }, + { + "repeatable": true, + "isSniping": true, + "minLevel": 0, + "maxLevel": 99, + "maxBots": 2, + "desirability": 5, + "name": "Power Station Roof", + "forbiddenWeapons" : [ "pistol", "shotgun" ], + "objectives" : [ + { + "repeatable": true, + "minDistanceFromBot": 10, + "maxDistanceFromBot": 500, + "lootAfterCompleting": "Inhibit", + "steps": [ + { + "waitTimeAfterCompleting": 1, + "position" : { + "x": -216.995331, + "y": 30.30841, + "z": -345.504456 + } + }, + { + "stepType" : "HoldAtPosition", + "maxDistance": 8, + "minElapsedTime": { + "min": 20, + "max": 60 + }, + "position" : { + "x": -216.995331, + "y": 30.30841, + "z": -345.504456 + } + } + ] + }, + { + "repeatable": true, + "minDistanceFromBot": 10, + "maxDistanceFromBot": 500, + "lootAfterCompleting": "Inhibit", + "steps": [ + { + "waitTimeAfterCompleting": 1, + "position" : { + "x": -194.1136, + "y": 30.30841, + "z": -346.168243 + } + }, + { + "stepType" : "HoldAtPosition", + "maxDistance": 8, + "minElapsedTime": { + "min": 20, + "max": 60 + }, + "position" : { + "x": -194.1136, + "y": 30.30841, + "z": -346.168243 + } + } + ] + }, + { + "repeatable": true, + "minDistanceFromBot": 10, + "maxDistanceFromBot": 500, + "lootAfterCompleting": "Inhibit", + "steps": [ + { + "waitTimeAfterCompleting": 1, + "position" : { + "x": -194.536072, + "y": 30.3084145, + "z": -357.34317 + } + }, + { + "stepType" : "HoldAtPosition", + "maxDistance": 8, + "minElapsedTime": { + "min": 20, + "max": 60 + }, + "position" : { + "x": -194.536072, + "y": 30.3084145, + "z": -357.34317 + } + } + ] + } + ] + }, + { + "repeatable": true, + "isSniping": true, + "minLevel": 0, + "maxLevel": 99, + "maxBots": 2, + "maxBotsInGroup": 1, + "desirability": 10, + "canRunBetweenObjectives": false, + "pmcsOnly": true, + "name": "2nd Floor Sniping", + "forbiddenWeapons" : [ "pistol", "shotgun" ], + "objectives" : [ + { + "repeatable": true, + "minDistanceFromBot": 10, + "maxDistanceFromBot": 1000, + "lootAfterCompleting": "Inhibit", + "steps": [ + { + "waitTimeAfterCompleting": 0, + "position" : { + "x": 105.367462, + "y": 36.5697479, + "z": -46.3224068 + } + }, + { + "stepType" : "Snipe", + "minElapsedTime": { + "min": 45, + "max": 180 + }, + "position" : { + "x": 105.367462, + "y": 36.5697479, + "z": -46.3224068 + }, + "lookToPosition" : { + "x": 188.427948, + "y": 21.3254375, + "z": -9.714791 + } + } + ] + }, + { + "repeatable": true, + "minDistanceFromBot": 10, + "maxDistanceFromBot": 1000, + "lootAfterCompleting": "Inhibit", + "steps": [ + { + "waitTimeAfterCompleting": 0, + "position" : { + "x": 106.787888, + "y": 36.54494, + "z": -56.30941 + } + }, + { + "stepType" : "Snipe", + "minElapsedTime": { + "min": 45, + "max": 180 + }, + "position" : { + "x": 106.787888, + "y": 36.54494, + "z": -56.30941 + }, + "lookToPosition" : { + "x": 257.034515, + "y": 21.3254375, + "z": -50.74417 + } + } + ] + }, + { + "repeatable": true, + "minDistanceFromBot": 10, + "maxDistanceFromBot": 1000, + "lootAfterCompleting": "Inhibit", + "steps": [ + { + "waitTimeAfterCompleting": 0, + "position" : { + "x": 105.244492, + "y": 36.5697479, + "z": -63.89896 + } + }, + { + "stepType" : "Snipe", + "minElapsedTime": { + "min": 45, + "max": 180 + }, + "position" : { + "x": 105.244492, + "y": 36.5697479, + "z": -63.89896 + }, + "lookToPosition" : { + "x": 187.9247, + "y": 21.3254414, + "z": -99.28289 + } + } + ] + } + ] + }, + + { + "repeatable": true, + "isSniping": true, + "minLevel": 0, + "maxLevel": 99, + "maxBots": 2, + "maxBotsInGroup": 1, + "desirability": 5, + "pmcsOnly": true, + "name": "OLI Loading Dock Sniping Spot", + "forbiddenWeapons" : [ "pistol", "shotgun" ], + "objectives" : [ + { + "repeatable": true, + "minDistanceFromBot": 10, + "maxDistanceFromBot": 300, + "lootAfterCompleting": "Inhibit", + "steps": [ + { + "waitTimeAfterCompleting": 1, + "position" : { + "x": -133.942871, + "y": 35.63311, + "z": 93.55811 + } + }, + { + "stepType" : "HoldAtPosition", + "maxDistance": 2, + "minElapsedTime": { + "min": 45, + "max": 180 + }, + "position" : { + "x": -133.942871, + "y": 35.63311, + "z": 93.55811 + } + } + ] + } + ] + }, + + { + "repeatable": true, + "isSniping": true, + "minLevel": 0, + "maxLevel": 99, + "maxBots": 2, + "maxBotsInGroup": 1, + "desirability": 5, + "pmcsOnly": true, + "name": "SW Sniping Tower", + "forbiddenWeapons" : [ "pistol", "shotgun" ], + "objectives" : [ + { + "repeatable": true, + "minDistanceFromBot": 30, + "maxDistanceFromBot": 1000, + "lootAfterCompleting": "Inhibit", + "steps": [ + { + "waitTimeAfterCompleting": 1, + "position" : { + "x": 207.219925, + "y": 31.4509182, + "z": 215.5884 + } + }, + { + "stepType" : "HoldAtPosition", + "maxDistance": 2, + "minElapsedTime": { + "min": 45, + "max": 180 + }, + "position" : { + "x": -133.942871, + "y": 35.63311, + "z": 93.55811 + } + } + ] + } + ] + }, + { + "repeatable": true, + "isSniping": true, + "minLevel": 0, + "maxLevel": 99, + "maxBots": 2, + "maxBotsInGroup": 1, + "desirability": 5, + "pmcsOnly": true, + "name": "IDEA North Sniping Tower", + "forbiddenWeapons" : [ "pistol", "shotgun" ], + "objectives" : [ + { + "repeatable": true, + "minDistanceFromBot": 30, + "maxDistanceFromBot": 1000, + "lootAfterCompleting": "Inhibit", + "steps": [ + { + "waitTimeAfterCompleting": 1, + "position" : { + "x": 48.796154, + "y": 37.3335075, + "z": -371.58255 + } + }, + { + "stepType" : "HoldAtPosition", + "maxDistance": 2, + "minElapsedTime": { + "min": 45, + "max": 180 + }, + "position" : { + "x": -133.942871, + "y": 35.63311, + "z": 93.55811 + } + } + ] + } + ] + }, + { + "repeatable": true, + "isSniping": true, + "minLevel": 0, + "maxLevel": 99, + "maxBots": 2, + "maxBotsInGroup": 1, + "desirability": 5, + "canRunBetweenObjectives": false, + "pmcsOnly": true, + "name": "IDEA 2nd Floor", + "forbiddenWeapons" : [ "pistol", "shotgun" ], + "objectives" : [ + { + "repeatable": true, + "minDistanceFromBot": 10, + "maxDistanceFromBot": 750, + "maxRunDistance": 10, + "lootAfterCompleting": "Inhibit", + "steps": [ + { + "waitTimeAfterCompleting": 1, + "position" : { + "x": 61.186306, + "y": 32.1979, + "z": -286.7073 + } + }, + { + "stepType" : "Snipe", + "minElapsedTime": { + "min": 60, + "max": 180 + }, + "position" : { + "x": 61.186306, + "y": 32.1979, + "z": -286.7073 + }, + "lookToPosition" : { + "x": 47.4138451, + "y": 27.0676785, + "z": -267.19 + } + } + ] + }, + { + "repeatable": true, + "minDistanceFromBot": 10, + "maxDistanceFromBot": 500, + "maxRunDistance": 25, + "lootAfterCompleting": "Inhibit", + "steps": [ + { + "waitTimeAfterCompleting": 1, + "position" : { + "x": 77.39655, + "y": 32.1979, + "z": -286.4888 + } + }, + { + "stepType" : "Snipe", + "minElapsedTime": { + "min": 60, + "max": 180 + }, + "position" : { + "x": 77.39655, + "y": 32.1979, + "z": -286.4888 + }, + "lookToPosition" : { + "x": 73.42521, + "y": 21.4291649, + "z": -260.075043 + } + } + ] + } + ] + }, + { + "repeatable": false, + "minLevel": 10, + "maxLevel": 45, + "maxBots": 2, + "desirability": 5, + "name": "OLI Utility Room", + "objectives" : [ + { + "repeatable": false, + "minDistanceFromBot": 10, + "maxDistanceFromBot": 300, + "maxRunDistance": 4, + "steps": [ + { + "position" : { + "x": -104.396469, + "y": 27.08906, + "z": 76.9635849 + } + } + ] + } + ] + }, + + { + "repeatable": true, + "minLevel": 0, + "maxLevel": 99, + "maxBots": 2, + "desirability": 10, + "name": "IDEA Registers", + "objectives" : [ + { + "repeatable": true, + "minDistanceFromBot": 10, + "maxDistanceFromBot": 300, + "steps": [ + { + "position" : { + "x": 10.5109415, + "y": 27.0676746, + "z": -242.93573 + } + } + ] + } + ] + } +] \ No newline at end of file diff --git a/BepInEx/plugins/DanW-SPTQuestingBots/quests/standard/laboratory.json b/BepInEx/plugins/DanW-SPTQuestingBots/quests/standard/laboratory.json new file mode 100644 index 0000000..ea66801 --- /dev/null +++ b/BepInEx/plugins/DanW-SPTQuestingBots/quests/standard/laboratory.json @@ -0,0 +1,3122 @@ +[ + { + "repeatable": false, + "minLevel": 0, + "maxLevel": 99, + "maxBots": 3, + "desirability": 30, + "minRaidET": 0, + "requiredSwitches": { + "Use": false + }, + "name": "Containment Block Power Switch", + "objectives" : [ + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 300, + "maxRunDistance": 3, + "lootAfterCompleting": "Inhibit", + "steps": [ + { + "waitTimeAfterCompleting": 1, + "position" : { + "x": -113.726326, + "y": 0.119773269, + "z": -435.327271 + } + }, + { + "stepType" : "ToggleSwitch", + "switchID" : "Use", + "position" : { + "x": -113.726326, + "y": 0.119773269, + "z": -435.327271 + } + } + ] + } + ] + }, + { + "repeatable": false, + "minLevel": 0, + "maxLevel": 99, + "maxBots": 4, + "desirability": 35, + "minRaidET": 0, + "requiredSwitches": { + "00415": false + }, + "name": "Sewage Conduit Pump Switch", + "objectives" : [ + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 200, + "lootAfterCompleting": "Inhibit", + "steps": [ + { + "waitTimeAfterCompleting": 1, + "position" : { + "x": -137.0, + "y": -4.2, + "z": -255.9 + } + }, + { + "stepType" : "ToggleSwitch", + "switchID" : "00415", + "position" : { + "x": -137.0, + "y": -4.2, + "z": -255.9 + } + } + ] + } + ] + }, + { + "repeatable": false, + "minLevel": 0, + "maxLevel": 99, + "maxBots": 4, + "desirability": 35, + "requiredSwitches": { + "00409": false + }, + "name": "Medical Block Elevator Power Switch", + "objectives" : [ + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 300, + "lootAfterCompleting": "Inhibit", + "maxRunDistance": 7, + "steps": [ + { + "waitTimeAfterCompleting": 1, + "position" : { + "x": -123.752342, + "y": -4.05300045, + "z": -314.403473 + } + }, + { + "stepType" : "ToggleSwitch", + "switchID" : "00409", + "position" : { + "x": -123.752342, + "y": -4.05300045, + "z": -314.403473 + } + } + ] + } + ] + }, + { + "repeatable": false, + "minLevel": 0, + "maxLevel": 99, + "maxBots": 3, + "desirability": 30, + "requiredSwitches": { + "autoId_00007_EXFIL": false + }, + "name": "Cargo Block Elevator Power Switch", + "objectives" : [ + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 300, + "maxRunDistance": 7, + "lootAfterCompleting": "Inhibit", + "steps": [ + { + "waitTimeAfterCompleting": 1, + "position" : { + "x": -122.649429, + "y": -4.043658, + "z": -353.8349 + } + }, + { + "stepType" : "ToggleSwitch", + "switchID" : "autoId_00007_EXFIL", + "position" : { + "x": -122.649429, + "y": -4.043658, + "z": -353.8349 + } + } + ] + } + ] + }, + { + "repeatable": false, + "minLevel": 0, + "maxLevel": 99, + "maxBots": 3, + "desirability": 30, + "requiredSwitches": { + "00404": false + }, + "name": "Main Elevator Power Switch", + "objectives" : [ + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 300, + "lootAfterCompleting": "Inhibit", + "steps": [ + { + "waitTimeAfterCompleting": 1, + "position" : { + "x": -272.8778, + "y": -4.0509634, + "z": -366.44696 + } + }, + { + "stepType" : "ToggleSwitch", + "switchID" : "00404", + "position" : { + "x": -272.8778, + "y": -4.0509634, + "z": -366.44696 + } + } + ] + } + ] + }, + { + "repeatable": false, + "minLevel": 0, + "maxLevel": 99, + "maxBots": 3, + "desirability": 40, + "minRaidET": 420, + "requiredSwitches": { + "autoId_00014_EXFIL": false + }, + "name": "Parking Gate Controls", + "objectives" : [ + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 300, + "maxRunDistance": 8, + "steps": [ + { + "waitTimeAfterCompleting": 1, + "position" : { + "x": -244.059341, + "y": 4.10415459, + "z": -380.751038 + } + }, + { + "stepType" : "ToggleSwitch", + "switchID" : "autoId_00014_EXFIL", + "position" : { + "x": -244.059341, + "y": 4.10415459, + "z": -380.751038 + } + } + ] + } + ] + }, + { + "repeatable": false, + "minLevel": 0, + "maxLevel": 99, + "maxBots": 2, + "desirability": 25, + "minRaidET": 420, + "requiredSwitches": { + "autoId_00014_EXFIL": true, + "00418": false + }, + "name": "Parking Gate Alarm Controls", + "objectives" : [ + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 200, + "maxRunDistance": 8, + "steps": [ + { + "waitTimeAfterCompleting": 1, + "position" : { + "x": -219.552612, + "y": 4.104169, + "z": -381.1039 + } + }, + { + "stepType" : "ToggleSwitch", + "switchID" : "00418", + "position" : { + "x": -219.552612, + "y": 4.104169, + "z": -381.1039 + } + } + ] + } + ] + }, + { + "repeatable": false, + "minLevel": 0, + "maxLevel": 99, + "maxBots": 3, + "desirability": 40, + "minRaidET": 420, + "requiredSwitches": { + "autoId_00632_EXFIL": false + }, + "name": "Hangar Gate Controls", + "objectives" : [ + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 300, + "maxRunDistance": 4, + "steps": [ + { + "waitTimeAfterCompleting": 1, + "position" : { + "x": -171.800674, + "y": 4.261299, + "z": -283.171753 + } + }, + { + "stepType" : "ToggleSwitch", + "switchID" : "autoId_00632_EXFIL", + "position" : { + "x": -171.800674, + "y": 4.261299, + "z": -283.171753 + } + } + ] + } + ] + }, + { + "repeatable": false, + "minLevel": 15, + "maxLevel": 99, + "maxBots": 3, + "desirability": 40, + "name": "Weapons Testing Area Room", + "objectives" : [ + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 500, + "maxRunDistance": 2, + "steps": [ + { + "position" : { + "x": -182.764542, + "y": 0.329985082, + "z": -315.938141 + } + } + ] + } + ] + }, + { + "repeatable": true, + "minLevel": 0, + "maxLevel": 99, + "maxBots": 3, + "desirability": 40, + "name": "Conference Room", + "objectives" : [ + { + "repeatable": false, + "minDistanceFromBot": 2, + "maxDistanceFromBot": 9999, + "steps": [ + { + "position" : { + "x": -222.1007, + "y": 4.10213566, + "z": -355.6739 + } + } + ] + }, + { + "repeatable": true, + "minDistanceFromBot": 2, + "maxDistanceFromBot": 9999, + "steps": [ + { + "position" : { + "x": -230.408325, + "y": 4.11446857, + "z": -340.188873 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 2, + "maxDistanceFromBot": 9999, + "steps": [ + { + "position" : { + "x": -221.847031, + "y": 4.1021266, + "z": -331.040955 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 2, + "maxDistanceFromBot": 9999, + "steps": [ + { + "position" : { + "x": -234.552353, + "y": 4.11446953, + "z": -346.634 + } + } + ] + } + ] + }, + { + "repeatable": false, + "minLevel": 15, + "maxLevel": 99, + "maxBots": 3, + "desirability": 40, + "name": "Manager's Office", + "objectives" : [ + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 500, + "maxRunDistance": 13, + "steps": [ + { + "position" : { + "x": -162.915466, + "y": 4.1250844, + "z": -348.669464 + } + }, + { + "position" : { + "x": -161.779419, + "y": 4.125084, + "z": -343.954742 + } + } + ] + } + ] + }, + { + "repeatable": false, + "minLevel": 15, + "maxLevel": 99, + "maxBots": 4, + "desirability": 40, + "name": "Red Room", + "objectives" : [ + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 9999, + "maxRunDistance": 6, + "steps": [ + { + "position" : { + "x": -254.140717, + "y": 4.09802771, + "z": -326.1588 + } + }, + { + "position" : { + "x": -254.910522, + "y": 4.09802675, + "z": -322.516 + } + }, + { + "position" : { + "x": -251.303284, + "y": 4.098027, + "z": -324.7422 + } + }, + { + "position" : { + "x": -251.416031, + "y": 4.098028, + "z": -327.650665 + } + } + ] + } + ] + }, + { + "repeatable": false, + "minLevel": 15, + "maxLevel": 99, + "maxBots": 4, + "desirability": 40, + "name": "Violet Room", + "objectives" : [ + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 9999, + "maxRunDistance": 6, + "steps": [ + { + "position" : { + "x": -267.2484, + "y": 4.09802675, + "z": -321.633545 + } + }, + { + "position" : { + "x": -267.126984, + "y": 4.098026, + "z": -317.808441 + } + }, + { + "position" : { + "x": -264.02536, + "y": 4.09802628, + "z": -319.848022 + } + }, + { + "position" : { + "x": -263.373383, + "y": 4.09802628, + "z": -322.6669 + } + } + ] + } + ] + }, + { + "repeatable": false, + "minLevel": 15, + "maxLevel": 99, + "maxBots": 4, + "desirability": 40, + "canRunBetweenObjectives": false, + "name": "Black Room", + "objectives" : [ + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 9999, + "maxRunDistance": 13, + "steps": [ + { + "position" : { + "x": -126.287308, + "y": 0.009015537, + "z": -361.782043 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 9999, + "maxRunDistance": 8, + "steps": [ + { + "position" : { + "x": -138.046768, + "y": 0.009014728, + "z": -356.126434 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 9999, + "maxRunDistance": 11, + "steps": [ + { + "position" : { + "x": -130.3463, + "y": 0.04799983, + "z": -357.6004 + } + } + ] + } + ] + }, + { + "repeatable": false, + "minLevel": 15, + "maxLevel": 99, + "maxBots": 3, + "desirability": 40, + "canRunBetweenObjectives": false, + "name": "Blue Room", + "objectives" : [ + { + "repeatable": false, + "minDistanceFromBot": 10, + "maxDistanceFromBot": 500, + "maxRunDistance": 13, + "steps": [ + { + "position" : { + "x": -136.559189, + "y": 0.008748697, + "z": -403.93515 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 10, + "maxDistanceFromBot": 500, + "maxRunDistance": 7, + "steps": [ + { + "position" : { + "x": -124.239128, + "y": 0.008747022, + "z": -398.360535 + } + } + ] + } + ] + }, + { + "repeatable": false, + "minLevel": 15, + "maxLevel": 99, + "maxBots": 3, + "desirability": 40, + "canRunBetweenObjectives": false, + "name": "Green Room", + "objectives" : [ + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 1000, + "maxRunDistance": 6, + "steps": [ + { + "position" : { + "x": -132.090469, + "y": 4.09999132, + "z": -350.505585 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 1000, + "maxRunDistance": 6, + "steps": [ + { + "position" : { + "x": -124.59465, + "y": 4.099992, + "z": -351.075745 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 1000, + "maxRunDistance": 5, + "steps": [ + { + "position" : { + "x": -123.247391, + "y": 4.09999132, + "z": -356.2137 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 1000, + "maxRunDistance": 7, + "steps": [ + { + "position" : { + "x": -137.107269, + "y": 4.09999275, + "z": -368.396942 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 1000, + "maxRunDistance": 5, + "steps": [ + { + "position" : { + "x": -124.027824, + "y": 4.09999275, + "z": -364.899261 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 1000, + "maxRunDistance": 5, + "steps": [ + { + "position" : { + "x": -128.072128, + "y": 4.099995, + "z": -376.822937 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 1000, + "maxRunDistance": 6, + "steps": [ + { + "position" : { + "x": -137.671463, + "y": 4.09999371, + "z": -376.482635 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 1000, + "maxRunDistance": 6, + "steps": [ + { + "position" : { + "x": -138.272766, + "y": 4.099992, + "z": -357.422058 + } + } + ] + } + ] + }, + { + "repeatable": false, + "minLevel": 15, + "maxLevel": 99, + "maxBots": 2, + "desirability": 20, + "name": "Sanitar's Room", + "objectives" : [ + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 300, + "maxRunDistance": 3, + "steps": [ + { + "position" : { + "x": -131.376175, + "y": 4.10000944, + "z": -336.304 + } + } + ] + } + ] + }, + { + "repeatable": true, + "minLevel": 0, + "maxLevel": 99, + "maxBots": 3, + "desirability": 25, + "name": "Server Room", + "objectives" : [ + { + "repeatable": true, + "minDistanceFromBot": 10, + "maxDistanceFromBot": 200, + "steps": [ + { + "position" : { + "x": -115.895058, + "y": 1.36848474, + "z": -308.942963 + } + } + ] + }, + { + "repeatable": true, + "minDistanceFromBot": 10, + "maxDistanceFromBot": 200, + "steps": [ + { + "position" : { + "x": -126.698868, + "y": 1.36848056, + "z": -290.835724 + } + } + ] + }, + { + "repeatable": true, + "minDistanceFromBot": 10, + "maxDistanceFromBot": 200, + "steps": [ + { + "position" : { + "x": -137.589188, + "y": 1.36848271, + "z": -309.430756 + } + } + ] + }, + { + "repeatable": true, + "minDistanceFromBot": 10, + "maxDistanceFromBot": 200, + "steps": [ + { + "position" : { + "x": -138.421249, + "y": 4.09078169, + "z": -318.788147 + } + } + ] + }, + { + "repeatable": true, + "minDistanceFromBot": 10, + "maxDistanceFromBot": 200, + "steps": [ + { + "position" : { + "x": -138.506561, + "y": 4.09080458, + "z": -291.280548 + } + } + ] + } + ] + }, + { + "repeatable": false, + "minLevel": 0, + "maxLevel": 99, + "maxBots": 3, + "desirability": 35, + "canRunBetweenObjectives": false, + "name": "Server Room Control Room", + "objectives" : [ + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 500, + "maxRunDistance": 5, + "steps": [ + { + "position" : { + "x": -138.2993, + "y": 4.121007, + "z": -281.725433 + } + }, + { + "position" : { + "x": -133.237747, + "y": 4.10687542, + "z": -285.21698 + } + }, + { + "position" : { + "x": -125.381157, + "y": 4.10687542, + "z": -285.2149 + } + } + ] + } + ] + }, + { + "repeatable": false, + "minLevel": 0, + "maxLevel": 99, + "maxBots": 3, + "desirability": 25, + "name": "Main Working Area East", + "objectives" : [ + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 300, + "maxRunDistance": 3, + "steps": [ + { + "position" : { + "x": -183.340866, + "y": 0.0115770483, + "z": -327.968719 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 300, + "steps": [ + { + "position" : { + "x": -166.003082, + "y": 0.0110259727, + "z": -323.198517 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 300, + "steps": [ + { + "position" : { + "x": -158.598633, + "y": 0.08644405, + "z": -317.9223 + } + } + ] + } + ] + }, + { + "repeatable": false, + "minLevel": 0, + "maxLevel": 99, + "maxBots": 3, + "desirability": 35, + "name": "Main Working Area West", + "objectives" : [ + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 9999, + "maxRunDistance": 6, + "steps": [ + { + "position" : { + "x": -174.603912, + "y": 0.0111746341, + "z": -372.8383 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 9999, + "steps": [ + { + "position" : { + "x": -184.400528, + "y": 0.028476391, + "z": -370.521973 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 9999, + "maxRunDistance": 7, + "steps": [ + { + "position" : { + "x": -163.113708, + "y": 0.01118581, + "z": -372.695465 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 9999, + "steps": [ + { + "position" : { + "x": -160.918823, + "y": 0.0111489492, + "z": -360.408875 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 9999, + "steps": [ + { + "position" : { + "x": -169.325089, + "y": 0.120026574, + "z": -358.212158 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 9999, + "steps": [ + { + "position" : { + "x": -181.8382, + "y": 0.0114936717, + "z": -358.7257 + } + } + ] + } + ] + }, + { + "repeatable": false, + "minLevel": 0, + "maxLevel": 99, + "maxBots": 3, + "desirability": 40, + "canRunBetweenObjectives": false, + "name": "Security Office", + "objectives" : [ + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 9999, + "maxRunDistance": 10, + "steps": [ + { + "position" : { + "x": -266.900757, + "y": 4.09802771, + "z": -326.3459 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 9999, + "steps": [ + { + "position" : { + "x": -258.14978, + "y": 4.098026, + "z": -318.1145 + } + } + ] + } + ] + }, + { + "repeatable": false, + "minLevel": 0, + "maxLevel": 99, + "maxBots": 3, + "desirability": 35, + "name": "Board Room", + "objectives" : [ + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 500, + "maxRunDistance": 7, + "steps": [ + { + "position" : { + "x": -168.036743, + "y": 4.1250844, + "z": -345.191559 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 500, + "steps": [ + { + "position" : { + "x": -177.072372, + "y": 4.125084, + "z": -342.47113 + } + } + ] + } + ] + }, + { + "repeatable": true, + "isCamping": true, + "minLevel": 0, + "maxLevel": 99, + "maxBots": 3, + "desirability": 25, + "pmcsOnly": true, + "name": "Medical Block Elevator Stairwell", + "forbiddenWeapons" : [ "sniperRifle" ], + "objectives" : [ + { + "repeatable": true, + "minDistanceFromBot": 10, + "maxDistanceFromBot": 200, + "maxRunDistance": 6, + "lootAfterCompleting": "Inhibit", + "steps": [ + { + "waitTimeAfterCompleting": 1, + "position" : { + "x": -127.416527, + "y": -2.04215121, + "z": -333.259125 + } + }, + { + "waitTimeAfterCompleting": 1, + "stepType" : "HoldAtPosition", + "maxDistance": 3, + "minElapsedTime": { + "min": 30, + "max": 180 + }, + "position" : { + "x": -127.416527, + "y": -2.04215121, + "z": -333.259125 + } + } + ] + } + ] + }, + { + "repeatable": true, + "isCamping": true, + "minLevel": 0, + "maxLevel": 99, + "maxBots": 2, + "desirability": 10, + "pmcsOnly": true, + "name": "Ventilation Shaft Stairwell", + "forbiddenWeapons" : [ "sniperRifle" ], + "objectives" : [ + { + "repeatable": true, + "minDistanceFromBot": 10, + "maxDistanceFromBot": 200, + "maxRunDistance": 6, + "lootAfterCompleting": "Inhibit", + "steps": [ + { + "waitTimeAfterCompleting": 1, + "position" : { + "x": -108.057037, + "y": -2.04115081, + "z": -419.187439 + } + }, + { + "waitTimeAfterCompleting": 1, + "stepType" : "HoldAtPosition", + "maxDistance": 3, + "minElapsedTime": { + "min": 30, + "max": 180 + }, + "position" : { + "x": -108.057037, + "y": -2.04115081, + "z": -419.187439 + } + } + ] + } + ] + }, + { + "repeatable": true, + "isCamping": true, + "minLevel": 0, + "maxLevel": 99, + "maxBots": 2, + "desirability": 10, + "pmcsOnly": true, + "name": "Parking Stairwell", + "forbiddenWeapons" : [ "sniperRifle" ], + "objectives" : [ + { + "repeatable": true, + "minDistanceFromBot": 10, + "maxDistanceFromBot": 200, + "maxRunDistance": 5, + "lootAfterCompleting": "Inhibit", + "steps": [ + { + "waitTimeAfterCompleting": 1, + "position" : { + "x": -269.415863, + "y": -2.070192, + "z": -392.331116 + } + }, + { + "waitTimeAfterCompleting": 1, + "stepType" : "HoldAtPosition", + "maxDistance": 3, + "minElapsedTime": { + "min": 30, + "max": 180 + }, + "position" : { + "x": -269.415863, + "y": -2.070192, + "z": -392.331116 + } + } + ] + } + ] + }, + { + "repeatable": true, + "isCamping": true, + "minLevel": 0, + "maxLevel": 99, + "maxBots": 2, + "desirability": 10, + "pmcsOnly": true, + "name": "NE Stairwell", + "forbiddenWeapons" : [ "sniperRifle" ], + "objectives" : [ + { + "repeatable": true, + "minDistanceFromBot": 10, + "maxDistanceFromBot": 200, + "maxRunDistance": 4, + "lootAfterCompleting": "Inhibit", + "steps": [ + { + "waitTimeAfterCompleting": 1, + "position" : { + "x": -253.733353, + "y": -1.90085018, + "z": -303.509552 + } + }, + { + "waitTimeAfterCompleting": 1, + "stepType" : "HoldAtPosition", + "maxDistance": 3, + "minElapsedTime": { + "min": 30, + "max": 180 + }, + "position" : { + "x": -253.733353, + "y": -1.90085018, + "z": -303.509552 + } + } + ] + } + ] + }, + { + "repeatable": true, + "isCamping": true, + "minLevel": 0, + "maxLevel": 99, + "maxBots": 2, + "desirability": 15, + "pmcsOnly": true, + "name": "Central Stairwell 1", + "forbiddenWeapons" : [ "sniperRifle" ], + "objectives" : [ + { + "repeatable": true, + "minDistanceFromBot": 75, + "maxDistanceFromBot": 300, + "maxRunDistance": 5, + "lootAfterCompleting": "Inhibit", + "steps": [ + { + "waitTimeAfterCompleting": 1, + "position" : { + "x": -171.216553, + "y": -2.68745828, + "z": -328.741943 + } + }, + { + "waitTimeAfterCompleting": 1, + "stepType" : "HoldAtPosition", + "maxDistance": 3, + "minElapsedTime": { + "min": 30, + "max": 180 + }, + "position" : { + "x": -171.216553, + "y": -2.68745828, + "z": -328.741943 + } + } + ] + } + ] + }, + { + "repeatable": true, + "isCamping": true, + "minLevel": 0, + "maxLevel": 99, + "maxBots": 2, + "desirability": 15, + "pmcsOnly": true, + "name": "Central Stairwell 2", + "forbiddenWeapons" : [ "sniperRifle" ], + "objectives" : [ + { + "repeatable": true, + "minDistanceFromBot": 75, + "maxDistanceFromBot": 300, + "maxRunDistance": 5, + "lootAfterCompleting": "Inhibit", + "steps": [ + { + "waitTimeAfterCompleting": 1, + "position" : { + "x": -170.746979, + "y": -2.68164682, + "z": -356.9938 + } + }, + { + "waitTimeAfterCompleting": 1, + "stepType" : "HoldAtPosition", + "maxDistance": 3, + "minElapsedTime": { + "min": 30, + "max": 180 + }, + "position" : { + "x": -170.746979, + "y": -2.68164682, + "z": -356.9938 + } + } + ] + } + ] + }, + { + "repeatable": true, + "minLevel": 0, + "maxLevel": 99, + "maxBots": 2, + "desirability": 25, + "name": "Server Room SW Stairs", + "objectives" : [ + { + "repeatable": true, + "minDistanceFromBot": 10, + "maxDistanceFromBot": 200, + "lootAfterCompleting": "Inhibit", + "steps": [ + { + "position" : { + "x": -118.9812, + "y": 1.3761071, + "z": -331.958984 + } + } + ] + } + ] + }, + { + "repeatable": true, + "minLevel": 0, + "maxLevel": 99, + "maxBots": 2, + "desirability": 25, + "name": "Server Room NW Stairs", + "objectives" : [ + { + "repeatable": true, + "minDistanceFromBot": 10, + "maxDistanceFromBot": 200, + "lootAfterCompleting": "Inhibit", + "steps": [ + { + "position" : { + "x": -138.329742, + "y": 1.34838676, + "z": -331.890961 + } + } + ] + } + ] + }, + { + "repeatable": true, + "minLevel": 0, + "maxLevel": 99, + "maxBots": 2, + "desirability": 25, + "name": "Server Room Drop-Down Area", + "objectives" : [ + { + "repeatable": true, + "minDistanceFromBot": 10, + "maxDistanceFromBot": 200, + "maxRunDistance": 3, + "lootAfterCompleting": "Inhibit", + "steps": [ + { + "position" : { + "x": -121.0289, + "y": -4.053001, + "z": -308.91568 + } + } + ] + } + ] + }, + { + "repeatable": false, + "minLevel": 0, + "maxLevel": 99, + "maxBots": 3, + "desirability": 30, + "canRunBetweenObjectives": false, + "name": "Negotiation Room", + "objectives" : [ + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 300, + "maxRunDistance": 6, + "steps": [ + { + "position" : { + "x": -143.668137, + "y": 0.0089041, + "z": -398.7035 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 300, + "maxRunDistance": 7, + "steps": [ + { + "position" : { + "x": -157.882339, + "y": 0.008903279, + "z": -394.464172 + } + } + ] + } + ] + }, + { + "repeatable": false, + "minLevel": 0, + "maxLevel": 99, + "maxBots": 3, + "desirability": 25, + "name": "Blue Room Entry", + "objectives" : [ + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 300, + "maxRunDistance": 15, + "steps": [ + { + "position" : { + "x": -137.195953, + "y": 0.008749715, + "z": -409.794281 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 300, + "maxRunDistance": 15, + "steps": [ + { + "position" : { + "x": -136.914856, + "y": 0.008743235, + "z": -387.08493 + } + } + ] + } + ] + }, + { + "repeatable": false, + "minLevel": 0, + "maxLevel": 99, + "maxBots": 2, + "desirability": 20, + "canRunBetweenObjectives": false, + "name": "Lecture Hall", + "objectives" : [ + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 200, + "steps": [ + { + "position" : { + "x": -216.699814, + "y": 0.013099595, + "z": -314.268768 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 200, + "maxRunDistance": 5, + "steps": [ + { + "position" : { + "x": -219.650223, + "y": 0.363955915, + "z": -307.1396 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 200, + "maxRunDistance": 7, + "steps": [ + { + "position" : { + "x": -203.52005, + "y": 1.35355473, + "z": -305.3687 + } + } + ] + } + ] + }, + { + "repeatable": false, + "minLevel": 0, + "maxLevel": 99, + "maxBots": 2, + "desirability": 15, + "name": "Gym", + "objectives" : [ + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 200, + "maxRunDistance": 5, + "steps": [ + { + "position" : { + "x": -242.112076, + "y": 0.0202135127, + "z": -296.2635 + } + } + ] + } + ] + }, + { + "repeatable": false, + "minLevel": 0, + "maxLevel": 99, + "maxBots": 2, + "desirability": 20, + "name": "Security Barracks", + "objectives" : [ + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 300, + "maxRunDistance": 5, + "steps": [ + { + "position" : { + "x": -257.08194, + "y": 0.0144541888, + "z": -321.518616 + } + } + ] + } + ] + }, + { + "repeatable": false, + "minLevel": 0, + "maxLevel": 99, + "maxBots": 3, + "desirability": 30, + "canRunBetweenObjectives": false, + "name": "Admin Office", + "objectives" : [ + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 300, + "maxRunDistance": 5, + "steps": [ + { + "position" : { + "x": -250.898926, + "y": 4.117605, + "z": -368.945953 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 300, + "maxRunDistance": 5, + "steps": [ + { + "position" : { + "x": -257.990356, + "y": 4.117605, + "z": -370.227325 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 300, + "maxRunDistance": 12, + "steps": [ + { + "position" : { + "x": -267.130432, + "y": 4.11760473, + "z": -371.050049 + } + } + ] + } + ] + }, + { + "repeatable": true, + "minLevel": 0, + "maxLevel": 99, + "maxBots": 2, + "desirability": 25, + "name": "Cafeteria", + "objectives" : [ + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 200, + "steps": [ + { + "position" : { + "x": -235.26535, + "y": 4.12323761, + "z": -310.987823 + } + } + ] + }, + { + "repeatable": true, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 200, + "maxRunDistance": 4, + "steps": [ + { + "position" : { + "x": -237.084763, + "y": 4.12323666, + "z": -297.0441 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 200, + "maxRunDistance": 9, + "steps": [ + { + "position" : { + "x": -223.10556, + "y": 4.123235, + "z": -297.141541 + } + } + ] + } + ] + }, + { + "repeatable": true, + "isCamping": true, + "minLevel": 0, + "maxLevel": 99, + "maxBots": 2, + "maxBotsInGroup": 1, + "desirability": 10, + "maxRaidET": 300, + "pmcsOnly": true, + "name": "Cafeteria Camping", + "forbiddenWeapons" : [ "sniperRifle" ], + "objectives" : [ + { + "repeatable": true, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 200, + "maxRunDistance": 5, + "steps": [ + { + "waitTimeAfterCompleting": 2, + "position" : { + "x": -215.828735, + "y": 4.123237, + "z": -306.318359 + } + }, + { + "waitTimeAfterCompleting": 1, + "stepType" : "HoldAtPosition", + "maxDistance": 5, + "minElapsedTime": { + "min": 30, + "max": 120 + }, + "position" : { + "x": -215.828735, + "y": 4.123237, + "z": -306.318359 + } + } + ] + } + ] + }, + { + "repeatable": false, + "minLevel": 0, + "maxLevel": 99, + "maxBots": 2, + "desirability": 20, + "canRunBetweenObjectives": false, + "name": "Infirmary", + "objectives" : [ + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 300, + "maxDistance": 5, + "steps": [ + { + "position" : { + "x": -136.914932, + "y": 4.09998751, + "z": -388.5527 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 300, + "maxDistance": 9, + "steps": [ + { + "position" : { + "x": -127.582268, + "y": 4.200132, + "z": -398.735565 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 300, + "maxDistance": 15, + "steps": [ + { + "position" : { + "x": -136.297577, + "y": 4.099995, + "z": -409.692322 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 300, + "maxDistance": 17, + "steps": [ + { + "position" : { + "x": -138.087341, + "y": 4.09999132, + "z": -399.554352 + } + } + ] + } + ] + }, + { + "repeatable": false, + "minLevel": 0, + "maxLevel": 99, + "maxBots": 2, + "desirability": 15, + "canRunBetweenObjectives": false, + "name": "Offices 1", + "objectives" : [ + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 300, + "maxDistance": 10, + "steps": [ + { + "position" : { + "x": -189.569687, + "y": 4.10000372, + "z": -409.63974 + } + }, + { + "position" : { + "x": -198.903214, + "y": 4.10000324, + "z": -407.8072 + } + } + ] + } + ] + }, + { + "repeatable": false, + "minLevel": 0, + "maxLevel": 99, + "maxBots": 2, + "desirability": 15, + "name": "Offices 2", + "objectives" : [ + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 300, + "maxDistance": 10, + "steps": [ + { + "position" : { + "x": -142.767776, + "y": 4.094366, + "z": -400.015747 + } + } + ] + } + ] + }, + { + "repeatable": false, + "minLevel": 0, + "maxLevel": 99, + "maxBots": 2, + "desirability": 20, + "name": "Offices Outside", + "objectives" : [ + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 300, + "steps": [ + { + "position" : { + "x": -161.743408, + "y": 4.100833, + "z": -411.55368 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 300, + "steps": [ + { + "position" : { + "x": -178.430466, + "y": 4.100834, + "z": -417.776031 + } + } + ] + } + ] + }, + { + "repeatable": true, + "minLevel": 0, + "maxLevel": 99, + "maxBots": 2, + "desirability": 20, + "pmcsOnly": true, + "name": "Rec Area 2nd Floor Patrol", + "objectives" : [ + { + "repeatable": true, + "minDistanceFromBot": 10, + "maxDistanceFromBot": 200, + "lootAfterCompleting": "Inhibit", + "steps": [ + { + "waitTimeAfterCompleting": 1, + "position" : { + "x": -244.4196, + "y": 4.10213232, + "z": -317.5128 + } + }, + { + "waitTimeAfterCompleting": 1, + "stepType" : "HoldAtPosition", + "maxDistance": 5, + "minElapsedTime": { + "min": 20, + "max": 45 + }, + "position" : { + "x": -244.4196, + "y": 4.10213232, + "z": -317.5128 + } + } + ] + }, + { + "repeatable": true, + "minDistanceFromBot": 10, + "maxDistanceFromBot": 200, + "lootAfterCompleting": "Inhibit", + "steps": [ + { + "waitTimeAfterCompleting": 1, + "position" : { + "x": -244.18457, + "y": 4.10214853, + "z": -368.6532 + } + }, + { + "waitTimeAfterCompleting": 1, + "stepType" : "HoldAtPosition", + "maxDistance": 5, + "minElapsedTime": { + "min": 20, + "max": 45 + }, + "position" : { + "x": -244.18457, + "y": 4.10214853, + "z": -368.6532 + } + } + ] + }, + { + "repeatable": true, + "minDistanceFromBot": 10, + "maxDistanceFromBot": 200, + "lootAfterCompleting": "Inhibit", + "steps": [ + { + "waitTimeAfterCompleting": 1, + "position" : { + "x": -208.080536, + "y": 4.10224533, + "z": -369.066925 + } + }, + { + "waitTimeAfterCompleting": 1, + "stepType" : "HoldAtPosition", + "maxDistance": 5, + "minElapsedTime": { + "min": 20, + "max": 45 + }, + "position" : { + "x": -208.080536, + "y": 4.10224533, + "z": -369.066925 + } + } + ] + }, + { + "repeatable": true, + "minDistanceFromBot": 10, + "maxDistanceFromBot": 200, + "lootAfterCompleting": "Inhibit", + "steps": [ + { + "waitTimeAfterCompleting": 1, + "position" : { + "x": -205.870255, + "y": 4.10213757, + "z": -343.240936 + } + }, + { + "waitTimeAfterCompleting": 1, + "stepType" : "HoldAtPosition", + "maxDistance": 5, + "minElapsedTime": { + "min": 20, + "max": 45 + }, + "position" : { + "x": -205.870255, + "y": 4.10213757, + "z": -343.240936 + } + } + ] + }, + { + "repeatable": true, + "minDistanceFromBot": 10, + "maxDistanceFromBot": 200, + "lootAfterCompleting": "Inhibit", + "steps": [ + { + "waitTimeAfterCompleting": 1, + "position" : { + "x": -207.8146, + "y": 4.1020174, + "z": -318.154053 + } + }, + { + "waitTimeAfterCompleting": 1, + "stepType" : "HoldAtPosition", + "maxDistance": 5, + "minElapsedTime": { + "min": 20, + "max": 45 + }, + "position" : { + "x": -207.8146, + "y": 4.1020174, + "z": -318.154053 + } + } + ] + } + ] + }, + { + "repeatable": true, + "minLevel": 0, + "maxLevel": 99, + "maxBots": 2, + "desirability": 20, + "pmcsOnly": true, + "name": "Main Work Area 2nd Floor Patrol", + "objectives" : [ + { + "repeatable": true, + "minDistanceFromBot": 10, + "maxDistanceFromBot": 200, + "lootAfterCompleting": "Inhibit", + "steps": [ + { + "waitTimeAfterCompleting": 1, + "position" : { + "x": -192.596283, + "y": 4.10214, + "z": -349.843231 + } + }, + { + "waitTimeAfterCompleting": 1, + "stepType" : "HoldAtPosition", + "maxDistance": 5, + "minElapsedTime": { + "min": 20, + "max": 45 + }, + "position" : { + "x": -192.596283, + "y": 4.10214, + "z": -349.843231 + } + } + ] + }, + { + "repeatable": true, + "minDistanceFromBot": 10, + "maxDistanceFromBot": 200, + "lootAfterCompleting": "Inhibit", + "steps": [ + { + "waitTimeAfterCompleting": 1, + "position" : { + "x": -195.215668, + "y": 4.103194, + "z": -383.091675 + } + }, + { + "waitTimeAfterCompleting": 1, + "stepType" : "HoldAtPosition", + "maxDistance": 5, + "minElapsedTime": { + "min": 20, + "max": 45 + }, + "position" : { + "x": -195.215668, + "y": 4.103194, + "z": -383.091675 + } + } + ] + }, + { + "repeatable": true, + "minDistanceFromBot": 10, + "maxDistanceFromBot": 200, + "lootAfterCompleting": "Inhibit", + "steps": [ + { + "waitTimeAfterCompleting": 1, + "position" : { + "x": -147.927155, + "y": 4.10235453, + "z": -350.9553 + } + }, + { + "waitTimeAfterCompleting": 1, + "stepType" : "HoldAtPosition", + "maxDistance": 5, + "minElapsedTime": { + "min": 20, + "max": 45 + }, + "position" : { + "x": -147.927155, + "y": 4.10235453, + "z": -350.9553 + } + } + ] + }, + { + "repeatable": true, + "minDistanceFromBot": 10, + "maxDistanceFromBot": 200, + "lootAfterCompleting": "Inhibit", + "steps": [ + { + "waitTimeAfterCompleting": 1, + "position" : { + "x": -148.225616, + "y": 4.102269, + "z": -335.0948 + } + }, + { + "waitTimeAfterCompleting": 1, + "stepType" : "HoldAtPosition", + "maxDistance": 5, + "minElapsedTime": { + "min": 20, + "max": 45 + }, + "position" : { + "x": -148.225616, + "y": 4.102269, + "z": -335.0948 + } + } + ] + }, + { + "repeatable": true, + "minDistanceFromBot": 10, + "maxDistanceFromBot": 200, + "lootAfterCompleting": "Inhibit", + "steps": [ + { + "waitTimeAfterCompleting": 1, + "position" : { + "x": -146.433487, + "y": 4.10276365, + "z": -303.6659 + } + }, + { + "waitTimeAfterCompleting": 1, + "stepType" : "HoldAtPosition", + "maxDistance": 5, + "minElapsedTime": { + "min": 20, + "max": 45 + }, + "position" : { + "x": -146.433487, + "y": 4.10276365, + "z": -303.6659 + } + } + ] + }, + { + "repeatable": true, + "minDistanceFromBot": 10, + "maxDistanceFromBot": 200, + "lootAfterCompleting": "Inhibit", + "steps": [ + { + "waitTimeAfterCompleting": 1, + "position" : { + "x": -194.964752, + "y": 4.10302734, + "z": -303.885864 + } + }, + { + "waitTimeAfterCompleting": 1, + "stepType" : "HoldAtPosition", + "maxDistance": 5, + "minElapsedTime": { + "min": 20, + "max": 45 + }, + "position" : { + "x": -194.964752, + "y": 4.10302734, + "z": -303.885864 + } + } + ] + } + ] + }, + { + "repeatable": true, + "minLevel": 0, + "maxLevel": 99, + "maxBots": 2, + "desirability": 15, + "name": "Parking", + "objectives" : [ + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 300, + "steps": [ + { + "position" : { + "x": -226.214859, + "y": 0.0228216033, + "z": -407.116 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 300, + "steps": [ + { + "position" : { + "x": -238.762115, + "y": 0.0227194447, + "z": -409.556641 + } + } + ] + }, + { + "repeatable": true, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 300, + "steps": [ + { + "position" : { + "x": -247.318985, + "y": 0.0225016177, + "z": -414.7396 + } + } + ] + }, + { + "repeatable": true, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 300, + "steps": [ + { + "position" : { + "x": -221.317245, + "y": 0.0220257957, + "z": -426.07608 + } + } + ] + } + ] + }, + { + "repeatable": true, + "isCamping": true, + "minLevel": 0, + "maxLevel": 99, + "maxBots": 2, + "desirability": 10, + "pmcsOnly": true, + "name": "Medical Block Elevator Camping", + "forbiddenWeapons" : [ "sniperRifle" ], + "objectives" : [ + { + "repeatable": true, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 300, + "lootAfterCompleting": "Inhibit", + "steps": [ + { + "waitTimeAfterCompleting": 1, + "position" : { + "x": -117.399612, + "y": -4.053968, + "z": -359.553375 + } + }, + { + "stepType" : "Ambush", + "minElapsedTime": { + "min": 45, + "max": 180 + }, + "position" : { + "x": -117.399612, + "y": -4.053968, + "z": -359.553375 + }, + "lookToPosition" : { + "x": -114.933449, + "y": -4.05397129, + "z": -339.0504 + } + } + ] + } + ] + }, + { + "repeatable": true, + "isCamping": true, + "minLevel": 0, + "maxLevel": 99, + "maxBots": 2, + "desirability": 10, + "pmcsOnly": true, + "name": "Server Room Camping", + "forbiddenWeapons" : [ "sniperRifle" ], + "objectives" : [ + { + "repeatable": true, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 300, + "lootAfterCompleting": "Inhibit", + "steps": [ + { + "waitTimeAfterCompleting": 1, + "position" : { + "x": -142.244934, + "y": 4.10393143, + "z": -298.081055 + } + }, + { + "stepType" : "Ambush", + "minElapsedTime": { + "min": 45, + "max": 180 + }, + "position" : { + "x": -142.244934, + "y": 4.10393143, + "z": -298.081055 + }, + "lookToPosition" : { + "x": -143.251053, + "y": 4.103654, + "z": -310.166382 + } + } + ] + } + ] + }, + { + "repeatable": true, + "isCamping": true, + "minLevel": 0, + "maxLevel": 99, + "maxBots": 2, + "desirability": 10, + "pmcsOnly": true, + "name": "Infirmary Camping", + "forbiddenWeapons" : [ "sniperRifle" ], + "objectives" : [ + { + "repeatable": true, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 300, + "lootAfterCompleting": "Inhibit", + "steps": [ + { + "waitTimeAfterCompleting": 1, + "position" : { + "x": -134.822174, + "y": 4.100027, + "z": -379.592621 + } + }, + { + "stepType" : "Ambush", + "minElapsedTime": { + "min": 45, + "max": 180 + }, + "position" : { + "x": -134.822174, + "y": 4.100027, + "z": -379.592621 + }, + "lookToPosition" : { + "x": -168.417023, + "y": 4.10266972, + "z": -386.096558 + } + } + ] + } + ] + }, + { + "repeatable": true, + "isCamping": true, + "minLevel": 0, + "maxLevel": 99, + "maxBots": 2, + "desirability": 10, + "pmcsOnly": true, + "name": "Security Office Outside Camping", + "forbiddenWeapons" : [ "sniperRifle" ], + "objectives" : [ + { + "repeatable": true, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 300, + "lootAfterCompleting": "Inhibit", + "steps": [ + { + "waitTimeAfterCompleting": 1, + "position" : { + "x": -242.490189, + "y": 4.123237, + "z": -299.861084 + } + }, + { + "stepType" : "Ambush", + "minElapsedTime": { + "min": 45, + "max": 180 + }, + "position" : { + "x": -242.490189, + "y": 4.123237, + "z": -299.861084 + }, + "lookToPosition" : { + "x": -248.629562, + "y": 4.102135, + "z": -319.943054 + } + } + ] + } + ] + }, + { + "repeatable": true, + "isCamping": true, + "minLevel": 0, + "maxLevel": 99, + "maxBots": 2, + "desirability": 15, + "pmcsOnly": true, + "name": "Security Office Inside Camping", + "forbiddenWeapons" : [ "sniperRifle" ], + "objectives" : [ + { + "repeatable": true, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 300, + "lootAfterCompleting": "Inhibit", + "steps": [ + { + "waitTimeAfterCompleting": 0, + "position" : { + "x": -251.448, + "y": 4.098026, + "z": -319.231445 + } + }, + { + "waitTimeAfterCompleting": 0, + "stepType" : "CloseNearbyDoors", + "maxDistance": 4, + "position" : { + "x": -251.448, + "y": 4.098026, + "z": -319.231445 + } + }, + { + "waitTimeAfterCompleting": 0, + "position" : { + "x": -257.08374, + "y": 4.09802532, + "z": -317.778259 + } + }, + { + "stepType" : "Ambush", + "minElapsedTime": { + "min": 45, + "max": 180 + }, + "position" : { + "x": -257.08374, + "y": 4.09802532, + "z": -317.778259 + }, + "lookToPosition" : { + "x": -248.629562, + "y": 4.102135, + "z": -319.943054 + } + } + ] + } + ] + }, + { + "repeatable": true, + "isCamping": true, + "minLevel": 0, + "maxLevel": 99, + "maxBots": 2, + "desirability": 10, + "pmcsOnly": true, + "name": "Black Room Camping", + "forbiddenWeapons" : [ "sniperRifle" ], + "objectives" : [ + { + "repeatable": true, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 300, + "lootAfterCompleting": "Inhibit", + "steps": [ + { + "waitTimeAfterCompleting": 1, + "position" : { + "x": -127.330627, + "y": 0.008892462, + "z": -345.9635 + } + }, + { + "stepType" : "Ambush", + "minElapsedTime": { + "min": 45, + "max": 180 + }, + "position" : { + "x": -127.330627, + "y": 0.008892462, + "z": -345.9635 + }, + "lookToPosition" : { + "x": -145.733551, + "y": 0.0118647423, + "z": -342.427338 + } + } + ] + } + ] + }, + { + "repeatable": true, + "isCamping": true, + "minLevel": 0, + "maxLevel": 99, + "maxBots": 2, + "desirability": 10, + "pmcsOnly": true, + "name": "Green Room Camping", + "forbiddenWeapons" : [ "sniperRifle" ], + "objectives" : [ + { + "repeatable": true, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 300, + "lootAfterCompleting": "Inhibit", + "steps": [ + { + "waitTimeAfterCompleting": 1, + "position" : { + "x": -138.43988, + "y": 4.100011, + "z": -341.082458 + } + }, + { + "stepType" : "Ambush", + "minElapsedTime": { + "min": 45, + "max": 180 + }, + "position" : { + "x": -138.43988, + "y": 4.100011, + "z": -341.082458 + }, + "lookToPosition" : { + "x": -120.17894, + "y": 4.099987, + "z": -346.444977 + } + } + ] + } + ] + }, + { + "repeatable": false, + "minLevel": 0, + "maxLevel": 99, + "maxBots": 4, + "desirability": 30, + "name": "Containment Block Security Office", + "objectives" : [ + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 300, + "maxRunDistance": 3, + "steps": [ + { + "position" : { + "x": -121.262749, + "y": 0.105088905, + "z": -428.211029 + } + } + ] + } + ] + }, + { + "repeatable": false, + "minLevel": 0, + "maxLevel": 99, + "maxBots": 4, + "desirability": 35, + "name": "Containment Block Bedroom", + "objectives" : [ + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 300, + "maxRunDistance": 3, + "steps": [ + { + "position" : { + "x": -116.886551, + "y": 0.111669935, + "z": -433.949066 + } + }, + { + "position" : { + "x": -118.80751, + "y": 0.101529114, + "z": -437.684784 + } + }, + { + "position" : { + "x": -118.39238, + "y": 0.101529114, + "z": -443.832123 + } + }, + { + "position" : { + "x": -119.824341, + "y": 0.101529114, + "z": -444.280853 + } + } + ] + } + ] + }, + { + "repeatable": false, + "minLevel": 0, + "maxLevel": 99, + "maxBots": 4, + "desirability": 30, + "name": "Containment Block Labs", + "objectives" : [ + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 300, + "maxRunDistance": 14, + "steps": [ + { + "position" : { + "x": -98.92033, + "y": 0.09169745, + "z": -428.497345 + } + }, + { + "position" : { + "x": -94.381134, + "y": 0.09169745, + "z": -428.031647 + } + }, + { + "position" : { + "x": -94.49426, + "y": 0.09169745, + "z": -431.924866 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 300, + "maxRunDistance": 14, + "steps": [ + { + "position" : { + "x": -93.36049, + "y": 0.09490237, + "z": -434.4911 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 300, + "maxRunDistance": 14, + "steps": [ + { + "position" : { + "x": -91.67958, + "y": 0.08355421, + "z": -428.618439 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 300, + "maxRunDistance": 14, + "steps": [ + { + "position" : { + "x": -86.73149, + "y": 0.06937201, + "z": -426.7874 + } + }, + { + "position" : { + "x": -82.8292847, + "y": 0.06937128, + "z": -428.546082 + } + }, + { + "position" : { + "x": -85.98061, + "y": 0.06937703, + "z": -430.303223 + } + }, + { + "position" : { + "x": -82.7718048, + "y": 0.09490238, + "z": -442.207031 + } + } + ] + } + ] + }, + { + "repeatable": true, + "isCamping": true, + "minLevel": 0, + "maxLevel": 99, + "maxBots": 2, + "desirability": 15, + "pmcsOnly": false, + "name": "Containment Block Power Switch Camping", + "forbiddenWeapons" : [ "sniperRifle" ], + "objectives" : [ + { + "repeatable": true, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 300, + "maxRunDistance": 5, + "lootAfterCompleting": "Inhibit", + "steps": [ + { + "waitTimeAfterCompleting": 1, + "position" : { + "x": -109.340485, + "y": 0.145118386, + "z": -428.06427 + } + }, + { + "stepType" : "Ambush", + "minElapsedTime": { + "min": 45, + "max": 180 + }, + "position" : { + "x": -109.340485, + "y": 0.145118386, + "z": -428.06427 + }, + "lookToPosition" : { + "x": -113.457947, + "y": 0.0449951142, + "z": -432.1783 + } + } + ] + } + ] + }, + { + "repeatable": true, + "isCamping": true, + "minLevel": 0, + "maxLevel": 99, + "maxBots": 2, + "desirability": 15, + "pmcsOnly": false, + "name": "Containment Block Entrance Camping", + "forbiddenWeapons" : [ "sniperRifle" ], + "objectives" : [ + { + "repeatable": true, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 300, + "maxRunDistance": 3, + "lootAfterCompleting": "Inhibit", + "steps": [ + { + "waitTimeAfterCompleting": 1, + "position" : { + "x": -114.891548, + "y": 0.05113797, + "z": -387.2043 + } + }, + { + "stepType" : "Snipe", + "minElapsedTime": { + "min": 45, + "max": 180 + }, + "position" : { + "x": -114.891548, + "y": 0.05113797, + "z": -387.2043 + }, + "lookToPosition" : { + "x": -117.554565, + "y": 0.101016536, + "z": -421.8885 + } + } + ] + }, + { + "repeatable": true, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 300, + "maxRunDistance": 3, + "lootAfterCompleting": "Inhibit", + "steps": [ + { + "waitTimeAfterCompleting": 1, + "position" : { + "x": -115.355339, + "y": 0.111209832, + "z": -422.5515 + } + }, + { + "stepType" : "Ambush", + "minElapsedTime": { + "min": 45, + "max": 180 + }, + "position" : { + "x": -115.355339, + "y": 0.111209832, + "z": -422.5515 + }, + "lookToPosition" : { + "x": -118.608368, + "y": 0.07381995, + "z": -416.615 + } + } + ] + }, + { + "repeatable": true, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 300, + "maxRunDistance": 3, + "lootAfterCompleting": "Inhibit", + "steps": [ + { + "waitTimeAfterCompleting": 1, + "position" : { + "x": -120.59021, + "y": 0.103561565, + "z": -427.85376 + } + }, + { + "stepType" : "Ambush", + "minElapsedTime": { + "min": 45, + "max": 180 + }, + "position" : { + "x": -120.59021, + "y": 0.103561565, + "z": -427.85376 + }, + "lookToPosition" : { + "x": -116.222977, + "y": 0.103565216, + "z": -426.322571 + } + } + ] + } + ] + }, + { + "repeatable": true, + "isCamping": true, + "minLevel": 0, + "maxLevel": 99, + "maxBots": 1, + "desirability": 5, + "pmcsOnly": false, + "name": "Cargo Block Elevator Camping", + "forbiddenWeapons" : [ "sniperRifle" ], + "objectives" : [ + { + "repeatable": true, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 200, + "maxRunDistance": 3, + "lootAfterCompleting": "Inhibit", + "steps": [ + { + "waitTimeAfterCompleting": 1, + "position" : { + "x": -122.727959, + "y": 0.0860354, + "z": -406.8608 + } + }, + { + "stepType" : "Ambush", + "minElapsedTime": { + "min": 45, + "max": 180 + }, + "position" : { + "x": -122.727959, + "y": 0.0860354, + "z": -406.8608 + }, + "lookToPosition" : { + "x": -117.174385, + "y": 0.008778453, + "z": -412.513031 + } + } + ] + } + ] + } +] \ No newline at end of file diff --git a/BepInEx/plugins/DanW-SPTQuestingBots/quests/standard/lighthouse.json b/BepInEx/plugins/DanW-SPTQuestingBots/quests/standard/lighthouse.json new file mode 100644 index 0000000..a53ea3b --- /dev/null +++ b/BepInEx/plugins/DanW-SPTQuestingBots/quests/standard/lighthouse.json @@ -0,0 +1,4099 @@ +[ + { + "repeatable": true, + "minLevel": 15, + "maxLevel": 99, + "maxBots": 3, + "desirability": 50, + "maxRaidET": 180, + "name": "USEC Camp Building 1 Rush", + "objectives" : [ + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 9999, + "maxRunDistance": 15, + "steps": [ + { + "position" : { + "x": 53.9112854, + "y": 4.90694666, + "z": -592.323669 + } + } + ] + } + ] + }, + { + "repeatable": true, + "minLevel": 15, + "maxLevel": 99, + "maxBots": 3, + "desirability": 50, + "maxRaidET": 180, + "name": "USEC Camp Building 2 Rush", + "objectives" : [ + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 9999, + "maxRunDistance": 16, + "steps": [ + { + "position" : { + "x": -67.50461, + "y": 4.90693474, + "z": -754.207642 + } + } + ] + } + ] + }, + { + "repeatable": true, + "minLevel": 15, + "maxLevel": 99, + "maxBots": 3, + "desirability": 50, + "maxRaidET": 180, + "name": "USEC Camp Building 3 Rush", + "objectives" : [ + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 9999, + "maxRunDistance": 5, + "steps": [ + { + "position" : { + "x": -185.405777, + "y": 4.90699673, + "z": -638.3837 + } + } + ] + } + ] + }, + { + "repeatable": true, + "minLevel": 0, + "maxLevel": 99, + "maxBots": 3, + "maxBotsInGroup": 1, + "desirability": 30, + "pmcsOnly": true, + "name": "Pride Rock", + "objectives" : [ + { + "repeatable": true, + "minDistanceFromBot": 30, + "maxDistanceFromBot": 9999, + "lootAfterCompleting": "Inhibit", + "steps": [ + { + "position" : { + "x": 64.66508, + "y": 38.9382439, + "z": -78.0929947 + } + } + ] + } + ] + }, + { + "repeatable": false, + "minLevel": 0, + "maxLevel": 99, + "maxBots": 3, + "desirability": 30, + "name": "Scav Hideout", + "objectives" : [ + { + "repeatable": false, + "minDistanceFromBot": 30, + "maxDistanceFromBot": 9999, + "maxRunDistance": 30, + "lootAfterCompleting": "Inhibit", + "steps": [ + { + "position" : { + "x": 162.177292, + "y": 0.0256208926, + "z": -479.701233 + } + } + ] + } + ] + }, + { + "repeatable": false, + "minLevel": 0, + "maxLevel": 99, + "maxBots": 3, + "desirability": 30, + "canRunBetweenObjectives": false, + "name": "Resort", + "objectives" : [ + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 9999, + "maxRunDistance": 5, + "steps": [ + { + "position" : { + "x": -81.1505356, + "y": 18.2847767, + "z": -53.8898 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 9999, + "maxRunDistance": 3, + "steps": [ + { + "position" : { + "x": -78.80603, + "y": 18.2847767, + "z": -87.48046 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 9999, + "steps": [ + { + "position" : { + "x": -73.03625, + "y": 18.2847385, + "z": -91.0424957 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 9999, + "maxRunDistance": 3, + "steps": [ + { + "position" : { + "x": -79.87281, + "y": 21.8669586, + "z": -90.62389 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 9999, + "maxRunDistance": 8, + "steps": [ + { + "position" : { + "x": -83.6373444, + "y": 24.4348354, + "z": -74.258316 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 9999, + "maxRunDistance": 3, + "steps": [ + { + "position" : { + "x": -79.6947861, + "y": 21.8669586, + "z": -57.0139542 + } + } + ] + } + ] + }, + { + "repeatable": false, + "minLevel": 0, + "maxLevel": 99, + "maxBots": 3, + "desirability": 30, + "canRunBetweenObjectives": false, + "name": "Chalet", + "objectives" : [ + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 9999, + "maxRunDistance": 5, + "steps": [ + { + "position" : { + "x": -123.842087, + "y": 39.87246, + "z": 76.5801239 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 9999, + "maxRunDistance": 5, + "steps": [ + { + "position" : { + "x": -117.460472, + "y": 39.872406, + "z": 86.66805 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 9999, + "maxRunDistance": 2, + "steps": [ + { + "position" : { + "x": -128.764053, + "y": 39.8724022, + "z": 104.8246 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 9999, + "maxRunDistance": 7, + "steps": [ + { + "position" : { + "x": -118.459038, + "y": 42.89334, + "z": 86.5755539 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 9999, + "maxRunDistance": 5, + "steps": [ + { + "position" : { + "x": -122.235992, + "y": 36.63736, + "z": 97.2785645 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 9999, + "maxRunDistance": 5, + "steps": [ + { + "position" : { + "x": -129.995453, + "y": 36.23636, + "z": 105.830513 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 9999, + "maxRunDistance": 2, + "steps": [ + { + "position" : { + "x": -117.0233, + "y": 36.63736, + "z": 105.504707 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 9999, + "maxRunDistance": 7, + "steps": [ + { + "position" : { + "x": -122.917084, + "y": 36.63736, + "z": 80.0848 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 9999, + "maxRunDistance": 2, + "steps": [ + { + "position" : { + "x": -110.684525, + "y": 33.105854, + "z": 87.32484 + } + } + ] + } + ] + }, + { + "repeatable": false, + "minLevel": 0, + "maxLevel": 99, + "maxBots": 3, + "desirability": 30, + "canRunBetweenObjectives": false, + "name": "USEC Camp Building 1", + "objectives" : [ + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 9999, + "maxRunDistance": 6, + "steps": [ + { + "position" : { + "x": 53.9112854, + "y": 4.90694666, + "z": -592.323669 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 9999, + "maxRunDistance": 10, + "steps": [ + { + "position" : { + "x": 29.5675945, + "y": 4.90696764, + "z": -614.044067 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 9999, + "maxRunDistance": 5, + "steps": [ + { + "position" : { + "x": 55.6411171, + "y": 7.69775534, + "z": -614.6811 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 9999, + "maxRunDistance": 8, + "steps": [ + { + "position" : { + "x": 51.8195763, + "y": 8.201273, + "z": -639.0329 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 9999, + "maxRunDistance": 9, + "steps": [ + { + "position" : { + "x": 29.4953289, + "y": 4.90697861, + "z": -641.1743 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 9999, + "maxRunDistance": 8, + "steps": [ + { + "position" : { + "x": 53.5240555, + "y": 4.906996, + "z": -649.356262 + } + } + ] + } + ] + }, + { + "repeatable": false, + "minLevel": 0, + "maxLevel": 99, + "maxBots": 3, + "desirability": 30, + "canRunBetweenObjectives": false, + "name": "USEC Camp Building 2", + "objectives" : [ + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 9999, + "maxRunDistance": 6, + "steps": [ + { + "position" : { + "x": -67.50461, + "y": 4.90693474, + "z": -754.207642 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 9999, + "maxRunDistance": 15, + "steps": [ + { + "position" : { + "x": -88.3456955, + "y": 4.91758871, + "z": -740.2719 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 9999, + "maxRunDistance": 6, + "steps": [ + { + "position" : { + "x": -120.936417, + "y": 4.906963, + "z": -731.320251 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 9999, + "maxRunDistance": 5, + "steps": [ + { + "position" : { + "x": -113.149574, + "y": 4.90696239, + "z": -754.1892 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 9999, + "maxRunDistance": 5, + "steps": [ + { + "position" : { + "x": -130.085571, + "y": 4.906995, + "z": -754.0141 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 9999, + "maxRunDistance": 6, + "steps": [ + { + "position" : { + "x": -97.84111, + "y": 8.205606, + "z": -729.435 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 9999, + "maxRunDistance": 5, + "steps": [ + { + "position" : { + "x": -89.8229141, + "y": 8.205516, + "z": -755.8042 + } + } + ] + } + ] + }, + { + "repeatable": false, + "minLevel": 0, + "maxLevel": 99, + "maxBots": 3, + "desirability": 30, + "canRunBetweenObjectives": false, + "name": "USEC Camp Building 3", + "objectives" : [ + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 9999, + "maxRunDistance": 10, + "steps": [ + { + "position" : { + "x": -195.727951, + "y": 4.906942, + "z": -693.660645 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 9999, + "maxRunDistance": 5, + "steps": [ + { + "position" : { + "x": -185.405777, + "y": 4.90699673, + "z": -638.3837 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 9999, + "maxRunDistance": 5, + "steps": [ + { + "position" : { + "x": -174.240128, + "y": 4.90698, + "z": -636.7244 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 9999, + "maxRunDistance": 5, + "steps": [ + { + "position" : { + "x": -173.72937, + "y": 4.906976, + "z": -643.9063 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 9999, + "maxRunDistance": 5, + "steps": [ + { + "position" : { + "x": -198.779663, + "y": 4.907, + "z": -642.526062 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 9999, + "maxRunDistance": 5, + "steps": [ + { + "position" : { + "x": -198.496826, + "y": 4.906988, + "z": -648.87915 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 9999, + "maxRunDistance": 6, + "steps": [ + { + "position" : { + "x": -197.919464, + "y": 7.688438, + "z": -656.2162 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 9999, + "maxRunDistance": 11, + "steps": [ + { + "position" : { + "x": -179.624619, + "y": 4.906964, + "z": -670.1573 + } + } + ] + } + ] + }, + { + "repeatable": false, + "minLevel": 0, + "maxLevel": 99, + "maxBots": 3, + "desirability": 25, + "name": "Southern Road", + "objectives" : [ + { + "repeatable": false, + "minDistanceFromBot": 10, + "maxDistanceFromBot": 500, + "maxRunDistance": 2, + "steps": [ + { + "position" : { + "x": -201.3366, + "y": 6.214179, + "z": 415.391754 + } + }, + { + "position" : { + "x": -211.16301, + "y": 6.24274731, + "z": 413.1711 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 10, + "maxDistanceFromBot": 500, + "maxRunDistance": 3, + "steps": [ + { + "position" : { + "x": -225.954758, + "y": 6.13886166, + "z": 422.63443 + } + }, + { + "position" : { + "x": -228.423691, + "y": 8.753243, + "z": 422.624664 + } + } + ] + } + ] + }, + { + "repeatable": true, + "minLevel": 0, + "maxLevel": 99, + "maxBots": 3, + "desirability": 25, + "name": "Bridge Entrance", + "objectives" : [ + { + "repeatable": true, + "minDistanceFromBot": 30, + "maxDistanceFromBot": 1000, + "steps": [ + { + "position" : { + "x": 140.76651, + "y": 1.57187819, + "z": 519.283936 + } + } + ] + } + ] + }, + { + "repeatable": true, + "minLevel": 0, + "maxLevel": 99, + "maxBots": 3, + "desirability": 25, + "name": "Bridge Road Intersection", + "objectives" : [ + { + "repeatable": true, + "minDistanceFromBot": 30, + "maxDistanceFromBot": 1000, + "steps": [ + { + "position" : { + "x": -3.14035439, + "y": 5.904117, + "z": 478.202759 + } + } + ] + } + ] + }, + { + "repeatable": false, + "minLevel": 0, + "maxLevel": 99, + "maxBots": 3, + "desirability": 25, + "name": "Fishing Huts", + "objectives" : [ + { + "repeatable": false, + "minDistanceFromBot": 10, + "maxDistanceFromBot": 1000, + "maxRunDistance": 5, + "steps": [ + { + "position" : { + "x": 56.740345, + "y": 0.683137834, + "z": 455.423126 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 10, + "maxDistanceFromBot": 1000, + "maxRunDistance": 4, + "steps": [ + { + "position" : { + "x": 87.31742, + "y": 1.06107676, + "z": 458.937775 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 10, + "maxDistanceFromBot": 1000, + "steps": [ + { + "position" : { + "x": 84.0709839, + "y": 0.456891149, + "z": 454.645752 + } + } + ] + } + ] + }, + { + "repeatable": true, + "isSniping": true, + "minLevel": 0, + "maxLevel": 99, + "maxBots": 3, + "maxBotsInGroup": 1, + "desirability": 25, + "pmcsOnly": true, + "name": "Stage Sniping", + "forbiddenWeapons" : [ "pistol", "shotgun" ], + "objectives" : [ + { + "repeatable": true, + "minDistanceFromBot": 10, + "maxDistanceFromBot": 9999, + "lootAfterCompleting": "Inhibit", + "steps": [ + { + "waitTimeAfterCompleting": 1, + "position" : { + "x": 77.49352, + "y": 9.19731, + "z": 320.748962 + } + }, + { + "waitTimeAfterCompleting": 1, + "stepType" : "HoldAtPosition", + "maxDistance": 3, + "minElapsedTime": { + "min": 30, + "max": 120 + }, + "position" : { + "x": 77.49352, + "y": 9.19731, + "z": 320.748962 + } + } + ] + }, + { + "repeatable": true, + "minDistanceFromBot": 10, + "maxDistanceFromBot": 9999, + "lootAfterCompleting": "Inhibit", + "steps": [ + { + "waitTimeAfterCompleting": 1, + "position" : { + "x": 74.70143, + "y": 9.73683548, + "z": 285.652618 + } + }, + { + "waitTimeAfterCompleting": 1, + "stepType" : "HoldAtPosition", + "maxDistance": 3, + "minElapsedTime": { + "min": 30, + "max": 120 + }, + "position" : { + "x": 74.70143, + "y": 9.73683548, + "z": 285.652618 + } + } + ] + }, + { + "repeatable": true, + "minDistanceFromBot": 10, + "maxDistanceFromBot": 9999, + "lootAfterCompleting": "Inhibit", + "steps": [ + { + "waitTimeAfterCompleting": 1, + "position" : { + "x": 90.9413, + "y": 10.0305872, + "z": 241.004791 + } + }, + { + "waitTimeAfterCompleting": 1, + "stepType" : "HoldAtPosition", + "maxDistance": 3, + "minElapsedTime": { + "min": 30, + "max": 120 + }, + "position" : { + "x": 90.9413, + "y": 10.0305872, + "z": 241.004791 + } + } + ] + }, + { + "repeatable": true, + "minDistanceFromBot": 10, + "maxDistanceFromBot": 9999, + "lootAfterCompleting": "Inhibit", + "steps": [ + { + "waitTimeAfterCompleting": 1, + "position" : { + "x": 98.80825, + "y": 11.2476568, + "z": 217.07605 + } + }, + { + "waitTimeAfterCompleting": 1, + "stepType" : "HoldAtPosition", + "maxDistance": 3, + "minElapsedTime": { + "min": 30, + "max": 120 + }, + "position" : { + "x": 98.80825, + "y": 11.2476568, + "z": 217.07605 + } + } + ] + } + ] + }, + { + "repeatable": false, + "minLevel": 0, + "maxLevel": 99, + "maxBots": 2, + "desirability": 25, + "name": "Stage Wagon", + "objectives" : [ + { + "repeatable": false, + "minDistanceFromBot": 30, + "maxDistanceFromBot": 1000, + "maxRunDistance": 1, + "steps": [ + { + "position" : { + "x": 122.490074, + "y": 6.83943748, + "z": 212.105057 + } + } + ] + } + ] + }, + { + "repeatable": false, + "minLevel": 0, + "maxLevel": 99, + "maxBots": 2, + "desirability": 15, + "name": "Stage Tent", + "objectives" : [ + { + "repeatable": false, + "minDistanceFromBot": 20, + "maxDistanceFromBot": 500, + "steps": [ + { + "position" : { + "x": 95.65076, + "y": 3.7506125, + "z": 272.9458 + } + } + ] + } + ] + }, + { + "repeatable": false, + "minLevel": 0, + "maxLevel": 99, + "maxBots": 2, + "desirability": 25, + "canRunBetweenObjectives": false, + "name": "Stage", + "objectives" : [ + { + "repeatable": false, + "minDistanceFromBot": 10, + "maxDistanceFromBot": 1000, + "maxRunDistance": 7, + "steps": [ + { + "position" : { + "x": 134.766281, + "y": 5.450779, + "z": 285.346039 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 10, + "maxDistanceFromBot": 1000, + "maxRunDistance": 8, + "steps": [ + { + "position" : { + "x": 132.6808, + "y": 1.30139542, + "z": 292.2637 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 10, + "maxDistanceFromBot": 1000, + "maxRunDistance": 2, + "steps": [ + { + "position" : { + "x": 131.207916, + "y": 3.46080732, + "z": 271.90744 + } + } + ] + } + ] + }, + { + "repeatable": true, + "minLevel": 0, + "maxLevel": 99, + "maxBots": 3, + "desirability": 25, + "name": "Long Road South Car", + "objectives" : [ + { + "repeatable": true, + "minDistanceFromBot": 30, + "maxDistanceFromBot": 9999, + "steps": [ + { + "position" : { + "x": 0.102478325, + "y": 5.2791667, + "z": 374.0309 + } + } + ] + } + ] + }, + { + "repeatable": true, + "minLevel": 0, + "maxLevel": 99, + "maxBots": 3, + "desirability": 25, + "name": "Long Road Side Tunnel Crash", + "objectives" : [ + { + "repeatable": true, + "minDistanceFromBot": 30, + "maxDistanceFromBot": 9999, + "steps": [ + { + "position" : { + "x": 5.60502958, + "y": 5.95761538, + "z": 278.630951 + } + } + ] + } + ] + }, + { + "repeatable": true, + "minLevel": 0, + "maxLevel": 99, + "maxBots": 3, + "desirability": 25, + "name": "Long Road Bus Crash", + "objectives" : [ + { + "repeatable": true, + "minDistanceFromBot": 30, + "maxDistanceFromBot": 9999, + "steps": [ + { + "position" : { + "x": 10.6228895, + "y": 5.95758438, + "z": 176.047867 + } + } + ] + } + ] + }, + { + "repeatable": true, + "minLevel": 0, + "maxLevel": 99, + "maxBots": 3, + "desirability": 25, + "name": "Long Road Resort Entrance", + "objectives" : [ + { + "repeatable": true, + "minDistanceFromBot": 30, + "maxDistanceFromBot": 9999, + "steps": [ + { + "position" : { + "x": 16.5031452, + "y": 5.957529, + "z": 3.90086317 + } + } + ] + } + ] + }, + { + "repeatable": false, + "minLevel": 0, + "maxLevel": 99, + "maxBots": 3, + "desirability": 25, + "name": "Long Road Pond Camp", + "objectives" : [ + { + "repeatable": false, + "minDistanceFromBot": 30, + "maxDistanceFromBot": 1000, + "steps": [ + { + "position" : { + "x": -12.7992268, + "y": 0.5352798, + "z": 53.52692 + } + } + ] + } + ] + }, + { + "repeatable": true, + "minLevel": 0, + "maxLevel": 99, + "maxBots": 3, + "desirability": 25, + "name": "Long Road Construction", + "objectives" : [ + { + "repeatable": true, + "minDistanceFromBot": 10, + "maxDistanceFromBot": 9999, + "steps": [ + { + "position" : { + "x": 27.87141, + "y": 5.97389746, + "z": -158.076431 + } + } + ] + }, + { + "repeatable": true, + "minDistanceFromBot": 10, + "maxDistanceFromBot": 9999, + "steps": [ + { + "position" : { + "x": 26.6931782, + "y": 5.97952127, + "z": -185.608109 + } + } + ] + }, + { + "repeatable": true, + "minDistanceFromBot": 10, + "maxDistanceFromBot": 9999, + "steps": [ + { + "position" : { + "x": 24.6244469, + "y": 8.724115, + "z": -242.525467 + } + } + ] + }, + { + "repeatable": true, + "minDistanceFromBot": 10, + "maxDistanceFromBot": 9999, + "steps": [ + { + "position" : { + "x": 31.8301258, + "y": 4.88018, + "z": -239.899338 + } + } + ] + } + ] + }, + { + "repeatable": true, + "isSniping": true, + "minLevel": 0, + "maxLevel": 99, + "maxBots": 3, + "maxBotsInGroup": 1, + "desirability": 25, + "pmcsOnly": true, + "name": "Long Road Sniping", + "forbiddenWeapons" : [ "pistol", "shotgun" ], + "objectives" : [ + { + "repeatable": true, + "minDistanceFromBot": 30, + "maxDistanceFromBot": 9999, + "lootAfterCompleting": "Inhibit", + "steps": [ + { + "waitTimeAfterCompleting": 1, + "position" : { + "x": 62.5363846, + "y": 20.6935062, + "z": 106.907082 + } + }, + { + "stepType" : "Snipe", + "minElapsedTime": { + "min": 45, + "max": 180 + }, + "position" : { + "x": 62.5363846, + "y": 20.6935062, + "z": 106.907082 + }, + "lookToPosition" : { + "x": 7.59853458, + "y": 5.957984, + "z": 90.24553 + } + } + ] + }, + { + "repeatable": true, + "minDistanceFromBot": 30, + "maxDistanceFromBot": 9999, + "lootAfterCompleting": "Inhibit", + "steps": [ + { + "waitTimeAfterCompleting": 1, + "position" : { + "x": 63.4862747, + "y": 16.08045, + "z": 186.568573 + } + }, + { + "stepType" : "Snipe", + "minElapsedTime": { + "min": 45, + "max": 180 + }, + "position" : { + "x": 63.4862747, + "y": 16.08045, + "z": 186.568573 + }, + "lookToPosition" : { + "x": 7.049618, + "y": 5.957589, + "z": 182.723984 + } + } + ] + }, + { + "repeatable": true, + "minDistanceFromBot": 30, + "maxDistanceFromBot": 9999, + "lootAfterCompleting": "Inhibit", + "steps": [ + { + "waitTimeAfterCompleting": 1, + "position" : { + "x": 95.4739761, + "y": 22.2131042, + "z": 159.033966 + } + }, + { + "stepType" : "Snipe", + "minElapsedTime": { + "min": 45, + "max": 180 + }, + "position" : { + "x": 95.4739761, + "y": 22.2131042, + "z": 159.033966 + }, + "lookToPosition" : { + "x": 122.165085, + "y": 5.77331066, + "z": 208.503265 + } + } + ] + } + ] + }, + { + "repeatable": false, + "minLevel": 0, + "maxLevel": 99, + "maxBots": 3, + "desirability": 15, + "name": "Docks Camp", + "objectives" : [ + { + "repeatable": false, + "minDistanceFromBot": 30, + "maxDistanceFromBot": 1000, + "steps": [ + { + "position" : { + "x": 96.2127151, + "y": 3.6501472, + "z": -164.320831 + } + } + ] + } + ] + }, + { + "repeatable": false, + "minLevel": 15, + "maxLevel": 99, + "maxBots": 3, + "desirability": 45, + "name": "Merin Car", + "objectives" : [ + { + "repeatable": false, + "minDistanceFromBot": 30, + "maxDistanceFromBot": 1500, + "doorIDToUnlock": "_00000", + "fixedPositionToUnlockDoor" : { + "x": 91.24742, + "y": 7.30130768, + "z": -129.327286 + }, + "steps": [ + { + "position" : { + "x": 91.24742, + "y": 7.30130768, + "z": -129.327286 + } + } + ] + } + ] + }, + { + "repeatable": false, + "minLevel": 0, + "maxLevel": 99, + "maxBots": 3, + "desirability": 15, + "name": "Docks", + "objectives" : [ + { + "repeatable": false, + "minDistanceFromBot": 30, + "maxDistanceFromBot": 1000, + "maxRunDistance": 7, + "steps": [ + { + "position" : { + "x": 145.512619, + "y": 3.22303629, + "z": -133.898514 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 30, + "maxDistanceFromBot": 1000, + "maxRunDistance": 6, + "steps": [ + { + "position" : { + "x": 136.708786, + "y": 3.22303677, + "z": -193.77916 + } + } + ] + } + ] + }, + { + "repeatable": false, + "minLevel": 0, + "maxLevel": 99, + "maxBots": 3, + "desirability": 15, + "name": "Main Road Bridge Beach Container", + "objectives" : [ + { + "repeatable": false, + "minDistanceFromBot": 30, + "maxDistanceFromBot": 9999, + "steps": [ + { + "position" : { + "x": 98.205925, + "y": 0.3155936, + "z": -303.896759 + } + } + ] + } + ] + }, + { + "repeatable": true, + "minLevel": 0, + "maxLevel": 99, + "maxBots": 3, + "desirability": 35, + "name": "Main Road Bridge Underpass", + "objectives" : [ + { + "repeatable": true, + "minDistanceFromBot": 30, + "maxDistanceFromBot": 9999, + "steps": [ + { + "position" : { + "x": 2.21924114, + "y": -0.0922396, + "z": -343.4761 + } + } + ] + } + ] + }, + { + "repeatable": false, + "minLevel": 0, + "maxLevel": 99, + "maxBots": 3, + "desirability": 15, + "name": "Village East House Backyard", + "objectives" : [ + { + "repeatable": false, + "minDistanceFromBot": 30, + "maxDistanceFromBot": 1000, + "maxRunDistance": 10, + "steps": [ + { + "position" : { + "x": -272.513458, + "y": 13.7856779, + "z": -205.245132 + } + } + ] + } + ] + }, + { + "repeatable": false, + "minLevel": 0, + "maxLevel": 99, + "maxBots": 3, + "desirability": 15, + "canRunBetweenObjectives": false, + "name": "Village East House", + "objectives" : [ + { + "repeatable": false, + "minDistanceFromBot": 30, + "maxDistanceFromBot": 1000, + "maxRunDistance": 5, + "steps": [ + { + "position" : { + "x": -256.533966, + "y": 14.1611509, + "z": -207.748734 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 30, + "maxDistanceFromBot": 1000, + "maxRunDistance": 5, + "steps": [ + { + "position" : { + "x": -256.8208, + "y": 14.1611509, + "z": -202.867569 + } + } + ] + } + ] + }, + { + "repeatable": false, + "minLevel": 0, + "maxLevel": 99, + "maxBots": 3, + "desirability": 15, + "canRunBetweenObjectives": false, + "name": "Village Center House", + "objectives" : [ + { + "repeatable": false, + "minDistanceFromBot": 30, + "maxDistanceFromBot": 1000, + "maxRunDistance": 8, + "steps": [ + { + "position" : { + "x": -184.730179, + "y": 12.6902075, + "z": -208.184128 + } + }, + { + "position" : { + "x": -190.4018, + "y": 12.6902065, + "z": -209.937363 + } + }, + { + "position" : { + "x": -183.478409, + "y": 15.3454523, + "z": -208.973663 + } + }, + { + "position" : { + "x": -190.856766, + "y": 15.34545, + "z": -202.905045 + } + } + ] + } + ] + }, + { + "repeatable": true, + "minLevel": 0, + "maxLevel": 99, + "maxBots": 3, + "desirability": 25, + "name": "Village West House", + "objectives" : [ + { + "repeatable": true, + "minDistanceFromBot": 30, + "maxDistanceFromBot": 9999, + "maxRunDistance": 4, + "steps": [ + { + "position" : { + "x": -133.759933, + "y": 11.6636028, + "z": -213.774826 + } + } + ] + } + ] + }, + { + "repeatable": false, + "minLevel": 15, + "maxLevel": 99, + "maxBots": 2, + "desirability": 15, + "name": "Village Hillside House", + "objectives" : [ + { + "repeatable": false, + "minDistanceFromBot": 30, + "maxDistanceFromBot": 1000, + "maxRunDistance": 4, + "steps": [ + { + "position" : { + "x": -148.3957, + "y": 11.7017088, + "z": -249.07222 + } + } + ] + } + ] + }, + { + "repeatable": false, + "minLevel": 0, + "maxLevel": 99, + "maxBots": 3, + "desirability": 15, + "canRunBetweenObjectives": false, + "name": "Convenience Store House Backyard", + "objectives" : [ + { + "repeatable": false, + "minDistanceFromBot": 10, + "maxDistanceFromBot": 1000, + "maxRunDistance": 4, + "steps": [ + { + "position" : { + "x": -109.985992, + "y": 6.529419, + "z": -269.43103 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 10, + "maxDistanceFromBot": 1000, + "maxRunDistance": 2, + "steps": [ + { + "position" : { + "x": -99.76738, + "y": 5.834517, + "z": -287.774261 + } + } + ] + } + ] + }, + { + "repeatable": false, + "minLevel": 0, + "maxLevel": 99, + "maxBots": 3, + "desirability": 25, + "canRunBetweenObjectives": false, + "name": "Convenience Store House", + "objectives" : [ + { + "repeatable": false, + "minDistanceFromBot": 10, + "maxDistanceFromBot": 99999, + "maxRunDistance": 5, + "steps": [ + { + "position" : { + "x": -71.5975, + "y": 6.032806, + "z": -276.1599 + } + }, + { + "position" : { + "x": -72.14548, + "y": 6.03280926, + "z": -295.7627 + } + }, + { + "position" : { + "x": -77.7535553, + "y": 6.03281, + "z": -294.475555 + } + }, + { + "position" : { + "x": -77.84502, + "y": 9.050276, + "z": -294.921967 + } + }, + { + "position" : { + "x": -71.48745, + "y": 9.050275, + "z": -296.085876 + } + }, + { + "position" : { + "x": -77.3259, + "y": 9.050274, + "z": -281.575165 + } + }, + { + "position" : { + "x": -71.06774, + "y": 9.050272, + "z": -278.221558 + } + } + ] + } + ] + }, + { + "repeatable": false, + "minLevel": 15, + "maxLevel": 99, + "maxBots": 3, + "desirability": 10, + "name": "Convenience Store Storage", + "objectives" : [ + { + "repeatable": false, + "minDistanceFromBot": 30, + "maxDistanceFromBot": 1000, + "maxRunDistance": 5, + "steps": [ + { + "position" : { + "x": -59.0821075, + "y": 5.700978, + "z": -295.738129 + } + } + ] + } + ] + }, + { + "repeatable": false, + "minLevel": 0, + "maxLevel": 99, + "maxBots": 3, + "desirability": 10, + "name": "Cabins", + "objectives" : [ + { + "repeatable": false, + "minDistanceFromBot": 30, + "maxDistanceFromBot": 1000, + "maxRunDistance": 3, + "steps": [ + { + "position" : { + "x": -263.052551, + "y": 0.7855399, + "z": -316.641235 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 30, + "maxDistanceFromBot": 1000, + "maxRunDistance": 4, + "steps": [ + { + "position" : { + "x": -262.07196, + "y": 0.9993639, + "z": -348.534637 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 30, + "maxDistanceFromBot": 1000, + "maxRunDistance": 4, + "steps": [ + { + "position" : { + "x": -286.941864, + "y": 0.4015298, + "z": -339.7943 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 30, + "maxDistanceFromBot": 1000, + "maxRunDistance": 4, + "steps": [ + { + "position" : { + "x": -301.489746, + "y": 0.0570777543, + "z": -314.698029 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 30, + "maxDistanceFromBot": 1000, + "steps": [ + { + "position" : { + "x": -271.4914, + "y": 0.928575039, + "z": -352.879883 + } + } + ] + } + ] + }, + { + "repeatable": false, + "minLevel": 0, + "maxLevel": 99, + "maxBots": 3, + "desirability": 25, + "name": "Cabins Crashed Van", + "objectives" : [ + { + "repeatable": false, + "minDistanceFromBot": 30, + "maxDistanceFromBot": 1000, + "steps": [ + { + "position" : { + "x": -253.573669, + "y": 0.0433757454, + "z": -387.384735 + } + } + ] + } + ] + }, + { + "repeatable": true, + "minLevel": 0, + "maxLevel": 99, + "maxBots": 3, + "desirability": 25, + "name": "USEC Camp Road East Building", + "objectives" : [ + { + "repeatable": true, + "minDistanceFromBot": 30, + "maxDistanceFromBot": 9999, + "maxRunDistance": 1, + "steps": [ + { + "position" : { + "x": -169.737213, + "y": 4.70621252, + "z": -447.748138 + } + } + ] + } + ] + }, + { + "repeatable": false, + "minLevel": 15, + "maxLevel": 99, + "maxBots": 3, + "desirability": 10, + "name": "USEC Camp Workshop Buildings", + "objectives" : [ + { + "repeatable": false, + "minDistanceFromBot": 30, + "maxDistanceFromBot": 1000, + "maxRunDistance": 2, + "steps": [ + { + "position" : { + "x": -168.1047, + "y": 7.517896, + "z": -471.36908 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 30, + "maxDistanceFromBot": 1000, + "maxRunDistance": 3, + "steps": [ + { + "position" : { + "x": -171.903122, + "y": 4.94339752, + "z": -498.517944 + } + } + ] + } + ] + }, + { + "repeatable": false, + "minLevel": 10, + "maxLevel": 99, + "maxBots": 2, + "desirability": 10, + "name": "USEC Camp Helipad Area", + "objectives" : [ + { + "repeatable": false, + "minDistanceFromBot": 30, + "maxDistanceFromBot": 1000, + "steps": [ + { + "position" : { + "x": -96.90406, + "y": 0.203337222, + "z": -490.314 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 30, + "maxDistanceFromBot": 1000, + "steps": [ + { + "position" : { + "x": -97.23684, + "y": 1.65051508, + "z": -521.158447 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 30, + "maxDistanceFromBot": 1000, + "steps": [ + { + "position" : { + "x": -83.34874, + "y": -0.13599728, + "z": -563.8777 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 30, + "maxDistanceFromBot": 1000, + "steps": [ + { + "position" : { + "x": -111.78653, + "y": -0.1455664, + "z": -547.138855 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 30, + "maxDistanceFromBot": 1000, + "steps": [ + { + "position" : { + "x": -96.19552, + "y": -0.145574287, + "z": -536.3548 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 30, + "maxDistanceFromBot": 1000, + "steps": [ + { + "position" : { + "x": -44.4484978, + "y": 7.07995558, + "z": -521.359741 + } + } + ] + } + ] + }, + { + "repeatable": false, + "minLevel": 0, + "maxLevel": 99, + "maxBots": 3, + "desirability": 25, + "canRunBetweenObjectives": false, + "name": "Resort Garage", + "objectives" : [ + { + "repeatable": false, + "minDistanceFromBot": 30, + "maxDistanceFromBot": 1000, + "maxRunDistance": 6, + "steps": [ + { + "position" : { + "x": -106.394966, + "y": 17.90842, + "z": -10.0098286 + } + }, + { + "position" : { + "x": -109.044022, + "y": 20.9000721, + "z": -15.8465872 + } + }, + { + "position" : { + "x": -116.804871, + "y": 20.90008, + "z": -20.4138756 + } + } + ] + } + ] + }, + { + "repeatable": true, + "isSniping": true, + "minLevel": 0, + "maxLevel": 99, + "maxBots": 3, + "maxBotsInGroup": 1, + "desirability": 25, + "pmcsOnly": true, + "name": "Resort Front Yard", + "forbiddenWeapons" : [ "pistol", "shotgun" ], + "objectives" : [ + { + "repeatable": true, + "minDistanceFromBot": 30, + "maxDistanceFromBot": 9999, + "lootAfterCompleting": "Inhibit", + "steps": [ + { + "position" : { + "x": -96.19256, + "y": 17.5896969, + "z": -42.41065 + } + } + ] + }, + { + "repeatable": true, + "minDistanceFromBot": 30, + "maxDistanceFromBot": 9999, + "lootAfterCompleting": "Inhibit", + "steps": [ + { + "waitTimeAfterCompleting": 1, + "position" : { + "x": -67.1896057, + "y": 17.5896912, + "z": -23.5435562 + } + }, + { + "stepType" : "Snipe", + "minElapsedTime": { + "min": 45, + "max": 180 + }, + "position" : { + "x": -67.1896057, + "y": 17.5896912, + "z": -23.5435562 + }, + "lookToPosition" : { + "x": 12.0218372, + "y": 5.95755, + "z": 65.21484 + } + } + ] + } + ] + }, + { + "repeatable": true, + "isSniping": true, + "minLevel": 0, + "maxLevel": 99, + "maxBots": 3, + "maxBotsInGroup": 1, + "desirability": 25, + "pmcsOnly": true, + "name": "Resort Overlook", + "forbiddenWeapons" : [ "pistol", "shotgun" ], + "objectives" : [ + { + "repeatable": true, + "minDistanceFromBot": 30, + "maxDistanceFromBot": 9999, + "lootAfterCompleting": "Inhibit", + "steps": [ + { + "waitTimeAfterCompleting": 1, + "position" : { + "x": -56.4292641, + "y": 19.093504, + "z": -122.957176 + } + }, + { + "stepType" : "Snipe", + "minElapsedTime": { + "min": 45, + "max": 180 + }, + "position" : { + "x": -56.4292641, + "y": 19.093504, + "z": -122.957176 + }, + "lookToPosition" : { + "x": 8.760331, + "y": 5.956075, + "z": -69.4498749 + } + } + ] + }, + { + "repeatable": true, + "minDistanceFromBot": 30, + "maxDistanceFromBot": 9999, + "lootAfterCompleting": "Inhibit", + "steps": [ + { + "waitTimeAfterCompleting": 1, + "position" : { + "x": -54.5435066, + "y": 19.15492, + "z": -136.50351 + } + }, + { + "stepType" : "Snipe", + "minElapsedTime": { + "min": 45, + "max": 180 + }, + "position" : { + "x": -54.5435066, + "y": 19.15492, + "z": -136.50351 + }, + "lookToPosition" : { + "x": 20.4075966, + "y": 5.973898, + "z": -131.576462 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 30, + "maxDistanceFromBot": 9999, + "steps": [ + { + "position" : { + "x": -64.99453, + "y": 19.8203144, + "z": -133.941711 + } + } + ] + } + ] + }, + { + "repeatable": true, + "isSniping": true, + "minLevel": 0, + "maxLevel": 99, + "maxBots": 3, + "maxBotsInGroup": 1, + "desirability": 25, + "pmcsOnly": true, + "name": "Resort Sniping", + "forbiddenWeapons" : [ "pistol", "shotgun" ], + "objectives" : [ + { + "repeatable": true, + "minDistanceFromBot": 30, + "maxDistanceFromBot": 9999, + "lootAfterCompleting": "Inhibit", + "steps": [ + { + "waitTimeAfterCompleting": 1, + "position" : { + "x": -59.15952, + "y": 19.3659611, + "z": -107.264793 + } + }, + { + "waitTimeAfterCompleting": 1, + "stepType" : "HoldAtPosition", + "maxDistance": 3, + "minElapsedTime": { + "min": 45, + "max": 180 + }, + "position" : { + "x": -59.15952, + "y": 19.3659611, + "z": -107.264793 + } + } + ] + }, + { + "repeatable": true, + "minDistanceFromBot": 30, + "maxDistanceFromBot": 9999, + "lootAfterCompleting": "Inhibit", + "steps": [ + { + "waitTimeAfterCompleting": 1, + "position" : { + "x": -72.9312057, + "y": 21.86696, + "z": -89.21255 + } + }, + { + "stepType" : "Snipe", + "minElapsedTime": { + "min": 45, + "max": 180 + }, + "position" : { + "x": -72.9312057, + "y": 21.86696, + "z": -89.21255 + }, + "lookToPosition" : { + "x": 21.7795, + "y": 5.97389746, + "z": -131.561737 + } + } + ] + }, + { + "repeatable": true, + "minDistanceFromBot": 30, + "maxDistanceFromBot": 9999, + "lootAfterCompleting": "Inhibit", + "steps": [ + { + "waitTimeAfterCompleting": 1, + "position" : { + "x": -73.15654, + "y": 21.8669548, + "z": -58.26992 + } + }, + { + "stepType" : "Snipe", + "minElapsedTime": { + "min": 45, + "max": 180 + }, + "position" : { + "x": -73.15654, + "y": 21.8669548, + "z": -58.26992 + }, + "lookToPosition" : { + "x": 22.4458084, + "y": 5.946432, + "z": -89.1846161 + } + } + ] + } + ] + }, + { + "repeatable": false, + "minLevel": 0, + "maxLevel": 99, + "maxBots": 3, + "desirability": 25, + "name": "Tennis Courts", + "objectives" : [ + { + "repeatable": false, + "minDistanceFromBot": 30, + "maxDistanceFromBot": 1000, + "maxRunDistance": 11, + "steps": [ + { + "position" : { + "x": -66.60237, + "y": 26.77016, + "z": 110.874985 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 30, + "maxDistanceFromBot": 1000, + "maxRunDistance": 7, + "steps": [ + { + "position" : { + "x": -71.39276, + "y": 26.77016, + "z": 133.071487 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 30, + "maxDistanceFromBot": 1000, + "steps": [ + { + "position" : { + "x": -73.72335, + "y": 27.3581543, + "z": 146.984879 + } + } + ] + } + ] + }, + { + "repeatable": false, + "minLevel": 0, + "maxLevel": 99, + "maxBots": 3, + "desirability": 25, + "name": "Chalet Remote Building", + "objectives" : [ + { + "repeatable": false, + "minDistanceFromBot": 30, + "maxDistanceFromBot": 1000, + "maxRunDistance": 3, + "steps": [ + { + "position" : { + "x": -128.736176, + "y": 39.50794, + "z": 131.354858 + } + } + ] + } + ] + }, + { + "repeatable": false, + "minLevel": 0, + "maxLevel": 99, + "maxBots": 3, + "desirability": 25, + "name": "Chalet Kayak Storage", + "objectives" : [ + { + "repeatable": false, + "minDistanceFromBot": 30, + "maxDistanceFromBot": 1000, + "maxRunDistance": 4, + "steps": [ + { + "position" : { + "x": -149.062241, + "y": 39.9193077, + "z": 94.82135 + } + } + ] + } + ] + }, + { + "repeatable": true, + "isSniping": true, + "minLevel": 0, + "maxLevel": 99, + "maxBots": 3, + "maxBotsInGroup": 1, + "desirability": 25, + "pmcsOnly": true, + "name": "Chalet Outdoor Area", + "forbiddenWeapons" : [ "pistol", "shotgun" ], + "objectives" : [ + { + "repeatable": true, + "minDistanceFromBot": 30, + "maxDistanceFromBot": 1000, + "lootAfterCompleting": "Inhibit", + "steps": [ + { + "waitTimeAfterCompleting": 1, + "position" : { + "x": -114.276077, + "y": 39.8468781, + "z": 76.89095 + } + }, + { + "waitTimeAfterCompleting": 1, + "stepType" : "HoldAtPosition", + "maxDistance": 3, + "minElapsedTime": { + "min": 30, + "max": 120 + }, + "position" : { + "x": -114.276077, + "y": 39.8468781, + "z": 76.89095 + } + } + ] + }, + { + "repeatable": true, + "minDistanceFromBot": 30, + "maxDistanceFromBot": 1000, + "lootAfterCompleting": "Inhibit", + "steps": [ + { + "waitTimeAfterCompleting": 1, + "position" : { + "x": -112.59478, + "y": 39.8468781, + "z": 89.85522 + } + }, + { + "stepType" : "Snipe", + "minElapsedTime": { + "min": 45, + "max": 180 + }, + "position" : { + "x": -112.59478, + "y": 39.8468781, + "z": 89.85522 + }, + "lookToPosition" : { + "x": 12.4945364, + "y": 5.95755768, + "z": 89.172226 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 30, + "maxDistanceFromBot": 1000, + "steps": [ + { + "position" : { + "x": -109.113419, + "y": 33.1218376, + "z": 105.437355 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 30, + "maxDistanceFromBot": 1000, + "steps": [ + { + "position" : { + "x": -116.64325, + "y": 36.637352, + "z": 74.70319 + } + } + ] + } + ] + }, + { + "repeatable": false, + "minLevel": 0, + "maxLevel": 99, + "maxBots": 3, + "desirability": 25, + "name": "Helicopter Crash Armchair", + "objectives" : [ + { + "repeatable": false, + "minDistanceFromBot": 30, + "maxDistanceFromBot": 1000, + "steps": [ + { + "position" : { + "x": -132.804367, + "y": 31.7275543, + "z": 273.4695 + } + } + ] + } + ] + }, + { + "repeatable": false, + "minLevel": 0, + "maxLevel": 99, + "maxBots": 3, + "desirability": 25, + "name": "Helicopter Crash", + "objectives" : [ + { + "repeatable": false, + "minDistanceFromBot": 30, + "maxDistanceFromBot": 1000, + "steps": [ + { + "position" : { + "x": -134.072189, + "y": 21.61867, + "z": 300.528137 + } + } + ] + } + ] + }, + { + "repeatable": false, + "minLevel": 0, + "maxLevel": 99, + "maxBots": 3, + "desirability": 25, + "name": "USEC Camp Entrance", + "objectives" : [ + { + "repeatable": false, + "minDistanceFromBot": 30, + "maxDistanceFromBot": 9999, + "maxRunDistance": 3, + "steps": [ + { + "position" : { + "x": 14.7168531, + "y": 4.606017, + "z": -451.183136 + } + }, + { + "position" : { + "x": 18.2275467, + "y": 4.813914, + "z": -445.5997 + } + }, + { + "position" : { + "x": 24.4268379, + "y": 4.81391335, + "z": -444.666931 + } + }, + { + "position" : { + "x": 31.86294, + "y": 4.809583, + "z": -453.097717 + } + } + ] + } + ] + }, + { + "repeatable": false, + "minLevel": 0, + "maxLevel": 99, + "maxBots": 3, + "desirability": 25, + "name": "USEC Camp Entrance Tents", + "objectives" : [ + { + "repeatable": false, + "minDistanceFromBot": 30, + "maxDistanceFromBot": 1000, + "steps": [ + { + "position" : { + "x": 11.8840294, + "y": 1.73906469, + "z": -473.790863 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 30, + "maxDistanceFromBot": 1000, + "steps": [ + { + "position" : { + "x": 9.963026, + "y": 1.72979832, + "z": -503.5251 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 30, + "maxDistanceFromBot": 1000, + "maxRunDistance": 3, + "steps": [ + { + "position" : { + "x": -28.3330879, + "y": 1.94120026, + "z": -527.640747 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 30, + "maxDistanceFromBot": 1000, + "maxRunDistance": 4, + "steps": [ + { + "position" : { + "x": 13.5384655, + "y": 1.65884852, + "z": -547.4041 + } + } + ] + } + ] + }, + { + "repeatable": false, + "minLevel": 15, + "maxLevel": 99, + "maxBots": 3, + "desirability": 25, + "name": "USEC Camp Building 1 Stash", + "objectives" : [ + { + "repeatable": false, + "minDistanceFromBot": 30, + "maxDistanceFromBot": 1000, + "maxRunDistance": 3, + "steps": [ + { + "position" : { + "x": 50.73781, + "y": 4.81484032, + "z": -552.953552 + } + } + ] + } + ] + }, + { + "repeatable": true, + "minLevel": 0, + "maxLevel": 99, + "maxBots": 3, + "desirability": 25, + "name": "USEC Camp Building 1 Back Lot", + "objectives" : [ + { + "repeatable": true, + "minDistanceFromBot": 300, + "maxDistanceFromBot": 9999, + "steps": [ + { + "position" : { + "x": 29.6404552, + "y": 4.619076, + "z": -685.001343 + } + } + ] + } + ] + }, + { + "repeatable": false, + "minLevel": 0, + "maxLevel": 99, + "maxBots": 3, + "desirability": 25, + "name": "USEC Camp Building 2 Roof", + "objectives" : [ + { + "repeatable": false, + "minDistanceFromBot": 10, + "maxDistanceFromBot": 500, + "maxRunDistance": 4, + "steps": [ + { + "position" : { + "x": -90.78155, + "y": 13.94272, + "z": -742.5677 + } + } + ] + } + ] + }, + { + "repeatable": false, + "minLevel": 0, + "maxLevel": 99, + "maxBots": 3, + "desirability": 25, + "name": "USEC Camp Building 3 Roof", + "objectives" : [ + { + "repeatable": false, + "minDistanceFromBot": 10, + "maxDistanceFromBot": 500, + "steps": [ + { + "position" : { + "x": -186.4256, + "y": 13.94274, + "z": -659.88446 + } + } + ] + } + ] + }, + { + "repeatable": false, + "minLevel": 0, + "maxLevel": 99, + "maxBots": 3, + "desirability": 20, + "name": "Drug Lab", + "objectives" : [ + { + "repeatable": false, + "minDistanceFromBot": 30, + "maxDistanceFromBot": 1000, + "maxRunDistance": 11, + "steps": [ + { + "position" : { + "x": -122.719414, + "y": 10.51153, + "z": -843.68396 + } + } + ] + } + ] + }, + { + "repeatable": false, + "minLevel": 0, + "maxLevel": 99, + "maxBots": 3, + "desirability": 10, + "name": "Tankers", + "objectives" : [ + { + "repeatable": false, + "minDistanceFromBot": 30, + "maxDistanceFromBot": 1000, + "steps": [ + { + "position" : { + "x": -92.66, + "y": 10.5197487, + "z": -912.784851 + } + } + ] + } + ] + }, + { + "repeatable": true, + "minLevel": 0, + "maxLevel": 99, + "maxBots": 3, + "desirability": 25, + "name": "Train Yard", + "objectives" : [ + { + "repeatable": true, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 9999, + "steps": [ + { + "position" : { + "x": 2.606491, + "y": 10.521, + "z": -807.4514 + } + } + ] + }, + { + "repeatable": true, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 9999, + "maxRunDistance": 6, + "steps": [ + { + "position" : { + "x": 56.6297874, + "y": 10.5209932, + "z": -793.4112 + } + } + ] + }, + { + "repeatable": true, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 9999, + "maxRunDistance": 5, + "steps": [ + { + "position" : { + "x": 35.25934, + "y": 11.985465, + "z": -850.7863 + } + } + ] + }, + { + "repeatable": true, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 9999, + "steps": [ + { + "position" : { + "x": 52.24027, + "y": 10.5115318, + "z": -913.1142 + } + } + ] + } + ] + }, + { + "repeatable": false, + "minLevel": 0, + "maxLevel": 99, + "maxBots": 3, + "desirability": 10, + "name": "North Edge", + "objectives" : [ + { + "repeatable": false, + "minDistanceFromBot": 30, + "maxDistanceFromBot": 1000, + "steps": [ + { + "position" : { + "x": 167.569839, + "y": 4.22224, + "z": -661.0765 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 30, + "maxDistanceFromBot": 1000, + "steps": [ + { + "position" : { + "x": 160.546112, + "y": 1.86743045, + "z": -705.7252 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 30, + "maxDistanceFromBot": 1000, + "steps": [ + { + "position" : { + "x": 171.678391, + "y": 0.5209378, + "z": -771.0607 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 30, + "maxDistanceFromBot": 1000, + "steps": [ + { + "position" : { + "x": 124.383125, + "y": 5.91621733, + "z": -824.7657 + } + } + ] + } + ] + }, + { + "repeatable": true, + "minLevel": 35, + "maxLevel": 99, + "maxBots": 2, + "maxBotsInGroup": 2, + "desirability": 25, + "pmcsOnly": true, + "name": "Lighthouse", + "waypoints" : [ + { + "x": 128.662262, + "y": 1.65600622, + "z": 519.2548 + }, + { + "x": 330.679871, + "y": 1.73835206, + "z": 505.333221 + } + ], + "objectives" : [ + { + "repeatable": true, + "minDistanceFromBot": 100, + "maxDistanceFromBot": 9999, + "steps": [ + { + "waitTimeAfterCompleting": 1, + "position" : { + "x": 440.89682, + "y": 23.8984756, + "z": 459.1224 + } + }, + { + "stepType" : "HoldAtPosition", + "maxDistance": 5, + "minElapsedTime": { + "min": 45, + "max": 120 + }, + "position" : { + "x": 440.89682, + "y": 23.8984756, + "z": 459.1224 + } + } + ] + } + ] + }, + { + "repeatable": false, + "minLevel": 35, + "maxLevel": 99, + "maxBots": 2, + "maxBotsInGroup": 2, + "desirability": 20, + "pmcsOnly": true, + "name": "Lighthouse Bridge", + "waypoints" : [ + { + "x": 128.662262, + "y": 1.65600622, + "z": 519.2548 + }, + { + "x": 330.679871, + "y": 1.73835206, + "z": 505.333221 + } + ], + "objectives" : [ + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 500, + "steps": [ + { + "position" : { + "x": 267.453033, + "y": 1.73768008, + "z": 514.228455 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 500, + "steps": [ + { + "position" : { + "x": 308.4318, + "y": 1.73767924, + "z": 502.856567 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 500, + "steps": [ + { + "position" : { + "x": 313.800934, + "y": 1.73835218, + "z": 497.9364 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 500, + "steps": [ + { + "position" : { + "x": 316.405945, + "y": 1.73834825, + "z": 511.164856 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 500, + "steps": [ + { + "position" : { + "x": 327.970276, + "y": 1.73834586, + "z": 528.6734 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 500, + "steps": [ + { + "position" : { + "x": 325.440063, + "y": 1.98424268, + "z": 511.025452 + } + } + ] + } + ] + }, + { + "repeatable": false, + "minLevel": 35, + "maxLevel": 99, + "maxBots": 3, + "maxBotsInGroup": 2, + "desirability": 30, + "pmcsOnly": true, + "name": "Lighthouse Conference Room", + "waypoints" : [ + { + "x": 128.662262, + "y": 1.65600622, + "z": 519.2548 + }, + { + "x": 330.679871, + "y": 1.73835206, + "z": 505.333221 + } + ], + "objectives" : [ + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 500, + "steps": [ + { + "position" : { + "x": 325.142883, + "y": 5.02266359, + "z": 515.765564 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 700, + "steps": [ + { + "position" : { + "x": 333.5572, + "y": 5.0226655, + "z": 521.073547 + } + }, + { + "position" : { + "x": 331.646362, + "y": 5.022666, + "z": 522.209 + } + }, + { + "position" : { + "x": 328.821869, + "y": 5.022665, + "z": 521.967163 + } + } + ] + } + ] + }, + { + "repeatable": false, + "minLevel": 35, + "maxLevel": 99, + "maxBots": 2, + "maxBotsInGroup": 2, + "desirability": 10, + "pmcsOnly": true, + "name": "Lighthouse Kitchen and Workshop", + "waypoints" : [ + { + "x": 128.662262, + "y": 1.65600622, + "z": 519.2548 + }, + { + "x": 330.679871, + "y": 1.73835206, + "z": 505.333221 + } + ], + "objectives" : [ + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 300, + "steps": [ + { + "position" : { + "x": 327.895782, + "y": 2.006626, + "z": 518.040466 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 300, + "steps": [ + { + "position" : { + "x": 339.928619, + "y": 1.83514166, + "z": 520.608 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 300, + "steps": [ + { + "position" : { + "x": 344.102081, + "y": 1.80634093, + "z": 517.4315 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 300, + "steps": [ + { + "position" : { + "x": 342.0054, + "y": 1.8139292, + "z": 524.376953 + } + } + ] + } + ] + }, + { + "repeatable": false, + "minLevel": 35, + "maxLevel": 99, + "maxBots": 3, + "maxBotsInGroup": 2, + "desirability": 40, + "pmcsOnly": true, + "name": "Lighthouse Bedrooms 1st Floor", + "waypoints" : [ + { + "x": 128.662262, + "y": 1.65600622, + "z": 519.2548 + }, + { + "x": 330.679871, + "y": 1.73835206, + "z": 505.333221 + } + ], + "objectives" : [ + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 700, + "steps": [ + { + "position" : { + "x": 323.9023, + "y": 1.98488665, + "z": 497.102173 + } + }, + { + "position" : { + "x": 320.548981, + "y": 1.98516357, + "z": 493.663757 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 700, + "steps": [ + { + "position" : { + "x": 327.6913, + "y": 1.98524129, + "z": 485.6235 + } + }, + { + "position" : { + "x": 322.392853, + "y": 1.98534179, + "z": 486.5771 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 700, + "steps": [ + { + "position" : { + "x": 332.019623, + "y": 1.985285, + "z": 484.0776 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 700, + "steps": [ + { + "position" : { + "x": 337.99292, + "y": 1.98523, + "z": 482.978058 + } + } + ] + } + ] + }, + { + "repeatable": false, + "minLevel": 35, + "maxLevel": 99, + "maxBots": 3, + "maxBotsInGroup": 2, + "desirability": 40, + "pmcsOnly": true, + "name": "Lighthouse Bedrooms 2nd Floor", + "waypoints" : [ + { + "x": 128.662262, + "y": 1.65600622, + "z": 519.2548 + }, + { + "x": 330.679871, + "y": 1.73835206, + "z": 505.333221 + } + ], + "objectives" : [ + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 700, + "steps": [ + { + "position" : { + "x": 320.931519, + "y": 4.99717569, + "z": 498.214 + } + }, + { + "position" : { + "x": 319.224762, + "y": 4.9971776, + "z": 492.245117 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 700, + "steps": [ + { + "position" : { + "x": 327.38623, + "y": 4.99749, + "z": 485.035645 + } + }, + { + "position" : { + "x": 322.9277, + "y": 4.99760866, + "z": 486.9793 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 700, + "steps": [ + { + "position" : { + "x": 333.568268, + "y": 4.997346, + "z": 483.477844 + } + } + ] + } + ] + }, + { + "repeatable": false, + "minLevel": 35, + "maxLevel": 99, + "maxBots": 2, + "maxBotsInGroup": 2, + "desirability": 10, + "pmcsOnly": true, + "name": "Lighthouse Garage", + "waypoints" : [ + { + "x": 128.662262, + "y": 1.65600622, + "z": 519.2548 + }, + { + "x": 330.679871, + "y": 1.73835206, + "z": 505.333221 + } + ], + "objectives" : [ + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 300, + "steps": [ + { + "position" : { + "x": 343.932648, + "y": 1.69755721, + "z": 474.127472 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 300, + "steps": [ + { + "position" : { + "x": 346.563629, + "y": 0.932733536, + "z": 467.769318 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 300, + "steps": [ + { + "position" : { + "x": 354.112122, + "y": 2.36059284, + "z": 455.578674 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 300, + "steps": [ + { + "position" : { + "x": 365.483551, + "y": 1.73968315, + "z": 464.464325 + } + } + ] + } + ] + }, + { + "repeatable": false, + "minLevel": 35, + "maxLevel": 99, + "maxBots": 2, + "maxBotsInGroup": 2, + "desirability": 15, + "pmcsOnly": true, + "name": "Lighthouse Pier", + "waypoints" : [ + { + "x": 128.662262, + "y": 1.65600622, + "z": 519.2548 + }, + { + "x": 330.679871, + "y": 1.73835206, + "z": 505.333221 + } + ], + "objectives" : [ + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 300, + "steps": [ + { + "position" : { + "x": 402.430542, + "y": 1.74543512, + "z": 394.9195 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 500, + "steps": [ + { + "position" : { + "x": 387.20166, + "y": 0.8990585, + "z": 444.020447 + } + }, + { + "position" : { + "x": 410.62384, + "y": 0.05420423, + "z": 431.294617 + } + }, + { + "position" : { + "x": 432.7314, + "y": 0.162852377, + "z": 425.114532 + } + }, + { + "position" : { + "x": 375.6098, + "y": 1.74045289, + "z": 455.7006 + } + } + ] + } + ] + }, + { + "repeatable": false, + "minLevel": 35, + "maxLevel": 99, + "maxBots": 3, + "maxBotsInGroup": 2, + "desirability": 35, + "pmcsOnly": true, + "name": "Lighthouse Radar Station Entrance", + "waypoints" : [ + { + "x": 128.662262, + "y": 1.65600622, + "z": 519.2548 + }, + { + "x": 330.679871, + "y": 1.73835206, + "z": 505.333221 + } + ], + "objectives" : [ + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 700, + "steps": [ + { + "position" : { + "x": 406.088745, + "y": 15.562973, + "z": 532.6198 + } + }, + { + "position" : { + "x": 402.1667, + "y": 15.5629721, + "z": 531.2873 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 700, + "steps": [ + { + "position" : { + "x": 398.902954, + "y": 15.0000086, + "z": 535.994751 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 700, + "steps": [ + { + "position" : { + "x": 403.379333, + "y": 18.6971855, + "z": 530.927368 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 300, + "steps": [ + { + "position" : { + "x": 411.2108, + "y": 15.2194824, + "z": 544.3998 + } + }, + { + "position" : { + "x": 411.0382, + "y": 15.2195044, + "z": 551.2034 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 700, + "steps": [ + { + "position" : { + "x": 408.035767, + "y": 19.25386, + "z": 546.216248 + } + }, + { + "position" : { + "x": 402.444061, + "y": 19.25385, + "z": 546.8957 + } + } + ] + } + ] + }, + { + "repeatable": false, + "minLevel": 35, + "maxLevel": 99, + "maxBots": 2, + "maxBotsInGroup": 2, + "desirability": 15, + "pmcsOnly": true, + "name": "Lighthouse Radar Station Garage", + "waypoints" : [ + { + "x": 128.662262, + "y": 1.65600622, + "z": 519.2548 + }, + { + "x": 330.679871, + "y": 1.73835206, + "z": 505.333221 + } + ], + "objectives" : [ + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 300, + "steps": [ + { + "position" : { + "x": 385.2686, + "y": 15.0000057, + "z": 556.372559 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 300, + "steps": [ + { + "position" : { + "x": 379.71637, + "y": 15.1089621, + "z": 568.7066 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 300, + "steps": [ + { + "position" : { + "x": 371.960724, + "y": 15.1089611, + "z": 568.8093 + } + } + ] + } + ] + }, + { + "repeatable": false, + "minLevel": 35, + "maxLevel": 99, + "maxBots": 3, + "maxBotsInGroup": 2, + "desirability": 30, + "pmcsOnly": true, + "name": "Lighthouse Radar Station", + "waypoints" : [ + { + "x": 128.662262, + "y": 1.65600622, + "z": 519.2548 + }, + { + "x": 330.679871, + "y": 1.73835206, + "z": 505.333221 + } + ], + "objectives" : [ + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 300, + "steps": [ + { + "position" : { + "x": 364.838531, + "y": 12.3432713, + "z": 546.495056 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 300, + "steps": [ + { + "position" : { + "x": 364.652649, + "y": 15.4979649, + "z": 553.605164 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 300, + "steps": [ + { + "position" : { + "x": 353.388275, + "y": 15.4979649, + "z": 558.6098 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 700, + "steps": [ + { + "position" : { + "x": 353.327332, + "y": 15.4979649, + "z": 549.919 + } + }, + { + "position" : { + "x": 353.61084, + "y": 15.4979658, + "z": 547.637268 + } + } + ] + } + ] + }, + { + "repeatable": false, + "minLevel": 35, + "maxLevel": 99, + "maxBots": 2, + "maxBotsInGroup": 2, + "desirability": 20, + "pmcsOnly": true, + "name": "Lighthouse Cliff Cache", + "waypoints" : [ + { + "x": 128.662262, + "y": 1.65600622, + "z": 519.2548 + }, + { + "x": 330.679871, + "y": 1.73835206, + "z": 505.333221 + } + ], + "objectives" : [ + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 300, + "steps": [ + { + "position" : { + "x": 366.773865, + "y": 21.5373783, + "z": 524.7454 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 300, + "steps": [ + { + "position" : { + "x": 361.967133, + "y": 18.9340363, + "z": 535.836731 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 300, + "steps": [ + { + "position" : { + "x": 351.88205, + "y": 18.9286289, + "z": 534.980652 + } + } + ] + } + ] + }, + { + "repeatable": true, + "isSniping": true, + "isCamping": true, + "minLevel": 20, + "maxLevel": 99, + "maxBots": 1, + "maxBotsInGroup": 1, + "desirability": 10, + "name": "Bridge Camping", + "forbiddenWeapons" : [ "pistol", "shotgun" ], + "objectives" : [ + { + "repeatable": true, + "minDistanceFromBot": 10, + "maxDistanceFromBot": 500, + "lootAfterCompleting": "Inhibit", + "steps": [ + { + "waitTimeAfterCompleting": 1, + "position" : { + "x": 130.063156, + "y": 4.92834473, + "z": 390.5209 + } + }, + { + "stepType" : "Snipe", + "minElapsedTime": { + "min": 90, + "max": 240 + }, + "position" : { + "x": 130.063156, + "y": 4.92834473, + "z": 390.5209 + }, + "lookToPosition" : { + "x": 223.047684, + "y": 1.73768008, + "z": 517.9813 + } + } + ] + } + ] + } +] \ No newline at end of file diff --git a/BepInEx/plugins/DanW-SPTQuestingBots/quests/standard/rezervbase.json b/BepInEx/plugins/DanW-SPTQuestingBots/quests/standard/rezervbase.json new file mode 100644 index 0000000..f7fe2a2 --- /dev/null +++ b/BepInEx/plugins/DanW-SPTQuestingBots/quests/standard/rezervbase.json @@ -0,0 +1,4954 @@ +[ + { + "repeatable": true, + "minLevel": 0, + "maxLevel": 99, + "maxBots": 3, + "desirability": 25, + "minRaidET": 300, + "requiredSwitches": { + "autoId_00632_EXFIL": false + }, + "name": "Hermetic Door Switch", + "objectives" : [ + { + "repeatable": true, + "minDistanceFromBot": 10, + "maxDistanceFromBot": 9999, + "maxRunDistance": 2, + "steps": [ + { + "waitTimeAfterCompleting": 1, + "position" : { + "x": -60.28271, + "y": -7.04171944, + "z": 76.82604 + } + }, + { + "waitTimeAfterCompleting": 2, + "stepType" : "ToggleSwitch", + "switchID" : "autoId_00632_EXFIL", + "position" : { + "x": -60.28271, + "y": -7.04171944, + "z": 76.82604 + } + } + ] + } + ] + }, + { + "repeatable": true, + "isCamping": true, + "minLevel": 15, + "maxLevel": 99, + "maxBots": 2, + "desirability": 40, + "requiredSwitches": { + "autoId_00632_EXFIL": true + }, + "pmcsOnly": true, + "name": "Hermetic Alarm Patrol", + "forbiddenWeapons" : [ "pistol" ], + "objectives" : [ + { + "repeatable": true, + "minDistanceFromBot": 25, + "maxDistanceFromBot": 150, + "lootAfterCompleting": "Inhibit", + "steps": [ + { + "position" : { + "x": -81.3760452, + "y": -6.946467, + "z": 22.4286537 + } + }, + { + "stepType" : "HoldAtPosition", + "maxDistance": 5, + "minElapsedTime": { + "min": 20, + "max": 45 + }, + "position" : { + "x": -81.3760452, + "y": -6.946467, + "z": 22.4286537 + } + } + ] + }, + { + "repeatable": true, + "minDistanceFromBot": 25, + "maxDistanceFromBot": 150, + "lootAfterCompleting": "Inhibit", + "steps": [ + { + "position" : { + "x": -63.6107635, + "y": -6.94646835, + "z": -10.7402258 + } + }, + { + "stepType" : "HoldAtPosition", + "maxDistance": 5, + "minElapsedTime": { + "min": 20, + "max": 45 + }, + "position" : { + "x": -63.6107635, + "y": -6.94646835, + "z": -10.7402258 + } + } + ] + }, + { + "repeatable": true, + "minDistanceFromBot": 25, + "maxDistanceFromBot": 150, + "lootAfterCompleting": "Inhibit", + "steps": [ + { + "position" : { + "x": -28.246294, + "y": -6.951963, + "z": -24.6942272 + } + }, + { + "stepType" : "HoldAtPosition", + "maxDistance": 5, + "minElapsedTime": { + "min": 20, + "max": 45 + }, + "position" : { + "x": -28.246294, + "y": -6.951963, + "z": -24.6942272 + } + } + ] + }, + { + "repeatable": true, + "minDistanceFromBot": 25, + "maxDistanceFromBot": 150, + "lootAfterCompleting": "Inhibit", + "steps": [ + { + "position" : { + "x": -23.83467, + "y": -5.108245, + "z": -120.502487 + } + }, + { + "stepType" : "HoldAtPosition", + "maxDistance": 5, + "minElapsedTime": { + "min": 20, + "max": 45 + }, + "position" : { + "x": -23.83467, + "y": -5.108245, + "z": -120.502487 + } + } + ] + }, + { + "repeatable": true, + "minDistanceFromBot": 25, + "maxDistanceFromBot": 150, + "lootAfterCompleting": "Inhibit", + "steps": [ + { + "position" : { + "x": 77.3197861, + "y": -5.544286, + "z": -147.147156 + } + }, + { + "stepType" : "HoldAtPosition", + "maxDistance": 5, + "minElapsedTime": { + "min": 20, + "max": 45 + }, + "position" : { + "x": 77.3197861, + "y": -5.544286, + "z": -147.147156 + } + } + ] + } + ] + }, + { + "repeatable": true, + "minLevel": 0, + "maxLevel": 99, + "maxBots": 3, + "desirability": 35, + "name": "D2 Switch", + "requiredSwitches": { + "autoId_00000_D2_LEVER": false + }, + "waypoints" : [ + { + "x": -95.56027, + "y": -14.5272923, + "z": 37.5281944 + } + ], + "objectives" : [ + { + "repeatable": true, + "minDistanceFromBot": 10, + "maxDistanceFromBot": 9999, + "maxRunDistance": 13, + "steps": [ + { + "waitTimeAfterCompleting": 1, + "position" : { + "x": -116.461212, + "y": -14.5357466, + "z": 21.0227413 + } + }, + { + "stepType" : "ToggleSwitch", + "switchID" : "autoId_00000_D2_LEVER", + "position" : { + "x": -116.461212, + "y": -14.5357466, + "z": 21.0227413 + } + } + ] + } + ] + }, + { + "repeatable": false, + "minLevel": 0, + "maxLevel": 99, + "maxBots": 3, + "desirability": 25, + "minRaidET": 420, + "name": "D2 Extract Switch", + "requiredSwitches": { + "autoId_00000_D2_LEVER": true, + "00453": false + }, + "waypoints" : [ + { + "x": -80.53533, + "y": -15.8884859, + "z": 144.298065 + }, + { + "x": -27.8268414, + "y": 12.5911255, + "z": 180.3212 + }, + { + "x": -73.2474442, + "y": -11.7335672, + "z": 67.4957 + } + ], + "objectives" : [ + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 750, + "maxRunDistance": 28, + "steps": [ + { + "waitTimeAfterCompleting": 1, + "position" : { + "x": -116.5, + "y": -18.4, + "z": 169.3 + } + }, + { + "stepType" : "ToggleSwitch", + "switchID" : "00453", + "position" : { + "x": -116.5, + "y": -18.4, + "z": 169.3 + } + } + ] + } + ] + }, + { + "repeatable": true, + "minLevel": 0, + "maxLevel": 99, + "maxBots": 3, + "desirability": 20, + "canRunBetweenObjectives": false, + "name": "D2 Area", + "waypoints" : [ + { + "x": -80.53533, + "y": -15.8884859, + "z": 144.298065 + }, + { + "x": -27.8268414, + "y": 12.5911255, + "z": 180.3212 + }, + { + "x": -73.2474442, + "y": -11.7335672, + "z": 67.4957 + } + ], + "objectives" : [ + { + "repeatable": true, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 75, + "maxRunDistance": 7, + "steps": [ + { + "position" : { + "x": -56.1238976, + "y": -14.703867, + "z": 140.437515 + } + } + ] + }, + { + "repeatable": true, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 75, + "maxRunDistance": 3, + "steps": [ + { + "position" : { + "x": -61.1976738, + "y": -14.703866, + "z": 132.523056 + } + } + ] + }, + { + "repeatable": true, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 75, + "maxRunDistance": 8, + "steps": [ + { + "position" : { + "x": -42.62611, + "y": -14.7088652, + "z": 131.680984 + } + } + ] + }, + { + "repeatable": true, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 75, + "maxRunDistance": 14, + "steps": [ + { + "position" : { + "x": -52.16976, + "y": -18.612608, + "z": 132.57843 + } + } + ] + }, + { + "repeatable": true, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 75, + "maxRunDistance": 23, + "steps": [ + { + "position" : { + "x": -103.348976, + "y": -18.40645, + "z": 158.996735 + } + } + ] + } + ] + }, + { + "repeatable": false, + "minLevel": 10, + "maxLevel": 99, + "maxBots": 4, + "desirability": 40, + "maxRaidET": 300, + "pmcsOnly": true, + "name": "Command Center Rush", + "waypoints" : [ + { + "x": -95.56027, + "y": -14.5272923, + "z": 37.5281944 + } + ], + "objectives" : [ + { + "repeatable": false, + "minDistanceFromBot": 10, + "maxDistanceFromBot": 9999, + "maxRunDistance": 5, + "steps": [ + { + "position" : { + "x": -83.9231, + "y": -14.4244938, + "z": 19.2263775 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 10, + "maxDistanceFromBot": 9999, + "maxRunDistance": 5, + "steps": [ + { + "position" : { + "x": -120.204391, + "y": -14.53575, + "z": 36.57718 + } + } + ] + } + ] + }, + { + "repeatable": false, + "minLevel": 0, + "maxLevel": 99, + "maxBots": 4, + "desirability": 30, + "name": "Black Bishop Tech Room", + "objectives" : [ + { + "repeatable": false, + "minDistanceFromBot": 30, + "maxDistanceFromBot": 9999, + "maxRunDistance": 6, + "steps": [ + { + "position" : { + "x": -133.51651, + "y": -0.183816582, + "z": -8.319722 + } + }, + { + "position" : { + "x": -130.424683, + "y": -3.18646169, + "z": -14.6211233 + } + }, + { + "position" : { + "x": -134.216522, + "y": -3.18646145, + "z": -14.472724 + } + } + ] + } + ] + }, + { + "repeatable": false, + "minLevel": 0, + "maxLevel": 99, + "maxBots": 3, + "desirability": 25, + "canRunBetweenObjectives": false, + "name": "RB-ST", + "objectives" : [ + { + "repeatable": false, + "minDistanceFromBot": 30, + "maxDistanceFromBot": 500, + "maxRunDistance": 7, + "steps": [ + { + "position" : { + "x": 97.94792, + "y": -6.945815, + "z": 51.17775 + } + }, + { + "position" : { + "x": 100.605347, + "y": -6.945814, + "z": 60.72301 + } + }, + { + "position" : { + "x": 112.106972, + "y": -6.94581032, + "z": 63.4878464 + } + }, + { + "position" : { + "x": 105.921562, + "y": -6.9458127, + "z": 46.13129 + } + } + ] + } + ] + }, + { + "repeatable": true, + "minLevel": 0, + "maxLevel": 99, + "maxBots": 3, + "desirability": 25, + "canRunBetweenObjectives": false, + "name": "Hermetic Depot", + "objectives" : [ + { + "repeatable": true, + "minDistanceFromBot": 10, + "maxDistanceFromBot": 9999, + "steps": [ + { + "position" : { + "x": 66.3211441, + "y": -12.2500067, + "z": -152.13327 + } + } + ] + }, + { + "repeatable": true, + "minDistanceFromBot": 10, + "maxDistanceFromBot": 9999, + "maxRunDistance": 6, + "steps": [ + { + "position" : { + "x": 42.39258, + "y": -12.2500067, + "z": -125.714394 + } + } + ] + }, + { + "repeatable": true, + "minDistanceFromBot": 10, + "maxDistanceFromBot": 9999, + "steps": [ + { + "position" : { + "x": 85.11432, + "y": -12.2500105, + "z": -111.042877 + } + } + ] + }, + { + "repeatable": true, + "minDistanceFromBot": 10, + "maxDistanceFromBot": 9999, + "steps": [ + { + "position" : { + "x": 59.7432976, + "y": -12.2500076, + "z": -123.961609 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 10, + "maxDistanceFromBot": 9999, + "maxRunDistance": 5, + "steps": [ + { + "position" : { + "x": 55.0477638, + "y": -12.2500105, + "z": -79.4185 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 10, + "maxDistanceFromBot": 9999, + "steps": [ + { + "position" : { + "x": 40.711586, + "y": -12.2500048, + "z": -145.34787 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 10, + "maxDistanceFromBot": 9999, + "maxRunDistance": 6, + "steps": [ + { + "position" : { + "x": 75.71227, + "y": -12.2500086, + "z": -136.801071 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 10, + "maxDistanceFromBot": 9999, + "maxRunDistance": 6, + "steps": [ + { + "position" : { + "x": 87.5989151, + "y": -12.2500134, + "z": -87.79593 + } + } + ] + } + ] + }, + { + "repeatable": false, + "minLevel": 0, + "maxLevel": 99, + "maxBots": 3, + "desirability": 25, + "canRunBetweenObjectives": false, + "name": "White Knight", + "objectives" : [ + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 300, + "maxRunDistance": 7, + "steps": [ + { + "position" : { + "x": 78.46175, + "y": -6.83165646, + "z": -34.819706 + } + }, + { + "position" : { + "x": 84.0438, + "y": -6.83250856, + "z": -27.2258244 + } + }, + { + "position" : { + "x": 87.7382, + "y": -6.83451128, + "z": -29.2963886 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 300, + "maxRunDistance": 4, + "steps": [ + { + "position" : { + "x": 78.71595, + "y": -6.83427858, + "z": -16.338459 + } + }, + { + "position" : { + "x": 82.20249, + "y": -6.834329, + "z": -17.14238 + } + }, + { + "position" : { + "x": 87.7552, + "y": -6.834376, + "z": -17.9228 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 300, + "maxRunDistance": 7, + "steps": [ + { + "position" : { + "x": 87.46304, + "y": -0.997515, + "z": -17.2699966 + } + }, + { + "position" : { + "x": 79.06229, + "y": -0.9975153, + "z": -17.02114 + } + } + ] + } + ] + }, + { + "repeatable": false, + "minLevel": 0, + "maxLevel": 99, + "maxBots": 2, + "desirability": 25, + "canRunBetweenObjectives": false, + "name": "Black Knight", + "objectives" : [ + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 300, + "maxRunDistance": 4, + "steps": [ + { + "position" : { + "x": 20.22266, + "y": -6.83573, + "z": -28.22257 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 300, + "maxRunDistance": 4, + "steps": [ + { + "position" : { + "x": 10.8737946, + "y": -6.83626747, + "z": -27.395319 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 300, + "maxRunDistance": 4, + "steps": [ + { + "position" : { + "x": 4.33577871, + "y": -6.83617258, + "z": -16.2075138 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 300, + "maxRunDistance": 4, + "steps": [ + { + "position" : { + "x": 6.88127756, + "y": -6.83622932, + "z": -5.6590066 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 300, + "maxRunDistance": 5, + "steps": [ + { + "position" : { + "x": 10.9864225, + "y": -3.97000051, + "z": -26.3498745 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 300, + "maxRunDistance": 6, + "steps": [ + { + "position" : { + "x": 6.520885, + "y": -3.999805, + "z": -14.5021458 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 300, + "maxRunDistance": 5, + "steps": [ + { + "position" : { + "x": 8.590523, + "y": -3.99343967, + "z": -3.061327 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 300, + "maxRunDistance": 8, + "steps": [ + { + "position" : { + "x": 3.858693, + "y": -0.9975208, + "z": -23.2248764 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 300, + "maxRunDistance": 7, + "steps": [ + { + "position" : { + "x": 11.50715, + "y": -0.997520566, + "z": -27.2381077 + } + } + ] + } + ] + }, + { + "repeatable": false, + "minLevel": 0, + "maxLevel": 99, + "maxBots": 3, + "desirability": 30, + "canRunBetweenObjectives": false, + "name": "Dome Buildings", + "objectives" : [ + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 500, + "maxRunDistance": 4, + "steps": [ + { + "position" : { + "x": -42.965435, + "y": 18.5722961, + "z": 180.747482 + } + }, + { + "position" : { + "x": -42.2033234, + "y": 18.5722961, + "z": 184.5667 + } + }, + { + "position" : { + "x": -40.9005623, + "y": 18.5722961, + "z": 181.963577 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 500, + "maxRunDistance": 4, + "steps": [ + { + "position" : { + "x": -40.6306419, + "y": 18.5763016, + "z": 169.444916 + } + }, + { + "position" : { + "x": -42.1741066, + "y": 18.5763016, + "z": 169.042862 + } + }, + { + "position" : { + "x": -41.52034, + "y": 18.5763, + "z": 172.828873 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 500, + "maxRunDistance": 10, + "steps": [ + { + "position" : { + "x": -6.27504539, + "y": 18.9521637, + "z": 170.861023 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 500, + "maxRunDistance": 5, + "steps": [ + { + "position" : { + "x": -5.01556349, + "y": 18.9521732, + "z": 195.623016 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 500, + "maxRunDistance": 11, + "steps": [ + { + "position" : { + "x": -8.476441, + "y": 22.3699455, + "z": 173.351471 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 500, + "maxRunDistance": 6, + "steps": [ + { + "position" : { + "x": -14.6320658, + "y": 22.3661137, + "z": 174.07486 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 500, + "maxRunDistance": 9, + "steps": [ + { + "position" : { + "x": -5.30666828, + "y": 22.3870716, + "z": 193.256485 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 500, + "maxRunDistance": 11, + "steps": [ + { + "position" : { + "x": -6.459509, + "y": 25.8604031, + "z": 191.68161 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 500, + "maxRunDistance": 19, + "steps": [ + { + "position" : { + "x": -3.52104664, + "y": 32.7223549, + "z": 168.779022 + } + } + ] + } + ] + }, + { + "repeatable": true, + "isSniping": true, + "minLevel": 5, + "maxLevel": 99, + "maxBots": 3, + "maxBotsInGroup": 1, + "desirability": 25, + "canRunBetweenObjectives": false, + "pmcsOnly": true, + "name": "Dome Upper Sniping", + "forbiddenWeapons" : [ "pistol", "shotgun" ], + "objectives" : [ + { + "repeatable": true, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 9999, + "steps": [ + { + "waitTimeAfterCompleting": 1, + "position" : { + "x": -9.513783, + "y": 32.7222748, + "z": 167.4318 + } + }, + { + "stepType" : "Snipe", + "minElapsedTime": { + "min": 45, + "max": 180 + }, + "position" : { + "x": -9.513783, + "y": 32.7222748, + "z": 167.4318 + }, + "lookToPosition" : { + "x": -31.8708572, + "y": -6.946465, + "z": 40.4750557 + } + } + ] + }, + { + "repeatable": true, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 9999, + "lootAfterCompleting": "Inhibit", + "steps": [ + { + "waitTimeAfterCompleting": 1, + "position" : { + "x": -1.54383075, + "y": 29.593111, + "z": 165.933792 + } + }, + { + "stepType" : "Snipe", + "minElapsedTime": { + "min": 45, + "max": 180 + }, + "position" : { + "x": -1.54383075, + "y": 29.593111, + "z": 165.933792 + }, + "lookToPosition" : { + "x": 43.51071, + "y": -6.951962, + "z": 34.4554 + } + } + ] + }, + { + "repeatable": true, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 9999, + "steps": [ + { + "waitTimeAfterCompleting": 1, + "position" : { + "x": -13.1465931, + "y": 29.5931129, + "z": 165.906708 + } + }, + { + "stepType" : "Snipe", + "minElapsedTime": { + "min": 45, + "max": 180 + }, + "position" : { + "x": -13.1465931, + "y": 29.5931129, + "z": 165.906708 + }, + "lookToPosition" : { + "x": 74.27228, + "y": -6.95198441, + "z": -5.50878668 + } + } + ] + } + ] + }, + { + "repeatable": false, + "minLevel": 0, + "maxLevel": 99, + "maxBots": 3, + "desirability": 25, + "canRunBetweenObjectives": false, + "name": "Black Bishop", + "objectives" : [ + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 300, + "maxRunDistance": 7, + "steps": [ + { + "position" : { + "x": -156.733765, + "y": -6.1859417, + "z": -3.09505558 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 300, + "maxRunDistance": 14, + "steps": [ + { + "position" : { + "x": -128.871109, + "y": -6.17712927, + "z": -20.8039112 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 300, + "maxRunDistance": 7, + "steps": [ + { + "position" : { + "x": -125.521774, + "y": -3.18646264, + "z": -10.7843723 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 300, + "maxRunDistance": 14, + "steps": [ + { + "position" : { + "x": -155.569443, + "y": -3.18646121, + "z": -13.8612623 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 300, + "maxRunDistance": 7, + "steps": [ + { + "position" : { + "x": -167.4185, + "y": -3.18646479, + "z": -0.346625328 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 300, + "maxRunDistance": 11, + "steps": [ + { + "position" : { + "x": -143.0135, + "y": -0.183815688, + "z": -6.73134565 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 300, + "maxRunDistance": 11, + "steps": [ + { + "position" : { + "x": -148.109756, + "y": -0.183816761, + "z": -5.71726751 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 300, + "maxRunDistance": 17, + "steps": [ + { + "position" : { + "x": -143.006027, + "y": -0.183812171, + "z": -16.5175953 + } + } + ] + } + ] + }, + { + "repeatable": false, + "minLevel": 0, + "maxLevel": 99, + "maxBots": 3, + "desirability": 25, + "canRunBetweenObjectives": false, + "name": "Black Bishop Underground", + "objectives" : [ + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 300, + "maxRunDistance": 9, + "steps": [ + { + "position" : { + "x": -119.861687, + "y": -5.50095749, + "z": -12.8749475 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 300, + "maxRunDistance": 7, + "steps": [ + { + "position" : { + "x": -148.491669, + "y": -9.212732, + "z": -25.976902 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 300, + "maxRunDistance": 4, + "steps": [ + { + "position" : { + "x": -165.811523, + "y": -9.225313, + "z": -21.4972229 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 300, + "maxRunDistance": 14, + "steps": [ + { + "position" : { + "x": -142.439682, + "y": -9.402001, + "z": -16.9374218 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 300, + "maxRunDistance": 10, + "steps": [ + { + "position" : { + "x": -119.27771, + "y": -9.490587, + "z": -13.4010839 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 300, + "maxRunDistance": 6, + "steps": [ + { + "position" : { + "x": -167.829376, + "y": -9.402089, + "z": -0.6222597 + } + } + ] + } + ] + }, + { + "repeatable": false, + "minLevel": 0, + "maxLevel": 99, + "maxBots": 3, + "desirability": 30, + "canRunBetweenObjectives": false, + "name": "White Bishop", + "objectives" : [ + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 500, + "maxRunDistance": 5, + "steps": [ + { + "position" : { + "x": -80.05767, + "y": -6.980006, + "z": -22.4438324 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 500, + "maxRunDistance": 8, + "steps": [ + { + "position" : { + "x": -61.9583054, + "y": -6.980007, + "z": -28.3917866 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 500, + "maxRunDistance": 5, + "steps": [ + { + "position" : { + "x": -50.41182, + "y": -6.980007, + "z": -30.8706932 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 500, + "maxRunDistance": 5, + "steps": [ + { + "position" : { + "x": -83.19285, + "y": -6.98000574, + "z": -31.7287121 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 500, + "maxRunDistance": 5, + "steps": [ + { + "position" : { + "x": -79.66633, + "y": -3.78035378, + "z": -33.5766335 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 500, + "maxRunDistance": 9, + "steps": [ + { + "position" : { + "x": -60.657795, + "y": -3.72792268, + "z": -38.10866 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 500, + "maxRunDistance": 4, + "steps": [ + { + "position" : { + "x": -55.3523445, + "y": -9.889667, + "z": -29.1801815 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 500, + "maxRunDistance": 5, + "steps": [ + { + "position" : { + "x": -78.69687, + "y": -9.890067, + "z": -22.9717026 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 500, + "maxRunDistance": 6, + "steps": [ + { + "position" : { + "x": -81.94906, + "y": -9.890067, + "z": -31.45794 + } + } + ] + } + ] + }, + { + "repeatable": false, + "minLevel": 0, + "maxLevel": 99, + "maxBots": 3, + "desirability": 30, + "canRunBetweenObjectives": false, + "name": "White King", + "objectives" : [ + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 300, + "maxRunDistance": 4, + "steps": [ + { + "position" : { + "x": -71.6583939, + "y": -6.513338, + "z": 16.7869453 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 300, + "maxRunDistance": 6, + "steps": [ + { + "position" : { + "x": -74.54792, + "y": -6.513338, + "z": 8.92031 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 300, + "maxRunDistance": 5, + "steps": [ + { + "position" : { + "x": -51.0315857, + "y": -6.74181366, + "z": -8.040361 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 300, + "maxRunDistance": 22, + "steps": [ + { + "position" : { + "x": -52.8300476, + "y": -3.89270043, + "z": 17.8285828 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 300, + "maxRunDistance": 10, + "steps": [ + { + "position" : { + "x": -30.7470818, + "y": -6.514113, + "z": 13.81672 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 300, + "maxRunDistance": 7, + "steps": [ + { + "position" : { + "x": -25.283247, + "y": -6.51411247, + "z": 26.547617 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 300, + "maxRunDistance": 6, + "steps": [ + { + "position" : { + "x": -37.74585, + "y": -4.10706425, + "z": 7.200129 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 300, + "maxRunDistance": 12, + "steps": [ + { + "position" : { + "x": -65.1773148, + "y": -3.613374, + "z": 5.68665934 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 300, + "maxRunDistance": 15, + "steps": [ + { + "position" : { + "x": -57.57473, + "y": -3.61337328, + "z": 20.1936283 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 300, + "maxRunDistance": 8, + "steps": [ + { + "position" : { + "x": -67.9507751, + "y": -3.61337352, + "z": 28.1479549 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 300, + "maxRunDistance": 13, + "steps": [ + { + "position" : { + "x": -64.15508, + "y": -0.7063898, + "z": 4.777828 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 300, + "maxRunDistance": 9, + "steps": [ + { + "position" : { + "x": -53.3439674, + "y": -0.706389546, + "z": 34.31672 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 300, + "maxRunDistance": 19, + "steps": [ + { + "position" : { + "x": -48.23256, + "y": -0.7102231, + "z": 19.1111851 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 300, + "maxRunDistance": 5, + "steps": [ + { + "position" : { + "x": -69.77275, + "y": -10.7771168, + "z": 22.3723431 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 300, + "maxRunDistance": 11, + "steps": [ + { + "position" : { + "x": -64.04466, + "y": -10.7771168, + "z": 31.9102917 + } + } + ] + } + ] + }, + { + "repeatable": true, + "minLevel": 0, + "maxLevel": 99, + "maxBots": 3, + "desirability": 40, + "canRunBetweenObjectives": false, + "name": "Command Center", + "waypoints" : [ + { + "x": -95.56027, + "y": -14.5272923, + "z": 37.5281944 + } + ], + "objectives" : [ + { + "repeatable": true, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 9999, + "maxRunDistance": 6, + "steps": [ + { + "position" : { + "x": -82.13478, + "y": -14.4244957, + "z": 24.8550835 + } + } + ] + }, + { + "repeatable": true, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 9999, + "steps": [ + { + "position" : { + "x": -95.12707, + "y": -14.5273008, + "z": 39.25594 + } + } + ] + }, + { + "repeatable": true, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 9999, + "steps": [ + { + "position" : { + "x": -108.801476, + "y": -14.5273027, + "z": 42.42571 + } + }, + { + "position" : { + "x": -114.436234, + "y": -14.5273113, + "z": 44.64796 + } + }, + { + "position" : { + "x": -119.378761, + "y": -14.52733, + "z": 44.6141663 + } + } + ] + }, + { + "repeatable": true, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 9999, + "maxRunDistance": 7, + "steps": [ + { + "position" : { + "x": -102.003311, + "y": -14.5357494, + "z": 30.2233353 + } + }, + { + "position" : { + "x": -107.454155, + "y": -14.5357485, + "z": 27.72114 + } + }, + { + "position" : { + "x": -105.91214, + "y": -14.53575, + "z": 35.19026 + } + } + ] + }, + { + "repeatable": true, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 9999, + "maxRunDistance": 7, + "steps": [ + { + "position" : { + "x": -109.419205, + "y": -14.5357475, + "z": 24.0380917 + } + }, + { + "position" : { + "x": -107.254913, + "y": -14.5357466, + "z": 18.548975 + } + } + ] + }, + { + "repeatable": true, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 9999, + "maxRunDistance": 7, + "steps": [ + { + "position" : { + "x": -119.170906, + "y": -14.5357494, + "z": 32.3906136 + } + }, + { + "position" : { + "x": -121.787239, + "y": -14.5357494, + "z": 34.3567657 + } + } + ] + }, + { + "repeatable": true, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 9999, + "maxRunDistance": 7, + "steps": [ + { + "position" : { + "x": -118.771942, + "y": -14.5357485, + "z": 28.8312778 + } + }, + { + "position" : { + "x": -117.871017, + "y": -14.5357485, + "z": 26.085268 + } + } + ] + }, + { + "repeatable": true, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 9999, + "maxRunDistance": 7, + "steps": [ + { + "position" : { + "x": -122.181084, + "y": -14.5357485, + "z": 27.816637 + } + }, + { + "position" : { + "x": -122.000671, + "y": -14.5357485, + "z": 30.0795517 + } + }, + { + "position" : { + "x": -123.495941, + "y": -14.5357475, + "z": 26.4621124 + } + } + ] + }, + { + "repeatable": true, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 9999, + "maxRunDistance": 7, + "steps": [ + { + "position" : { + "x": -130.416855, + "y": -14.6537189, + "z": 51.39383 + } + } + ] + } + ] + }, + { + "repeatable": false, + "minLevel": 0, + "maxLevel": 99, + "maxBots": 3, + "desirability": 25, + "canRunBetweenObjectives": false, + "name": "Black Pawn", + "objectives" : [ + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 300, + "maxRunDistance": 5, + "steps": [ + { + "position" : { + "x": -154.140884, + "y": -9.218823, + "z": 72.46589 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 300, + "maxRunDistance": 5, + "steps": [ + { + "position" : { + "x": -164.889023, + "y": -9.180641, + "z": 70.86018 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 300, + "maxRunDistance": 5, + "steps": [ + { + "position" : { + "x": -164.795944, + "y": -9.218829, + "z": 31.6144485 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 300, + "maxRunDistance": 6, + "steps": [ + { + "position" : { + "x": -165.547882, + "y": -6.29849768, + "z": 34.24404 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 300, + "maxRunDistance": 4, + "steps": [ + { + "position" : { + "x": -153.0841, + "y": -6.298493, + "z": 74.9218445 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 300, + "maxRunDistance": 5, + "steps": [ + { + "position" : { + "x": -155.0764, + "y": -3.39848733, + "z": 71.5179138 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 300, + "maxRunDistance": 13, + "steps": [ + { + "position" : { + "x": -169.3662, + "y": -3.398488, + "z": 47.6193771 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 300, + "maxRunDistance": 6, + "steps": [ + { + "position" : { + "x": -166.873032, + "y": -3.398491, + "z": 31.45846 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 300, + "maxRunDistance": 8, + "steps": [ + { + "position" : { + "x": -167.820587, + "y": -0.4984832, + "z": 31.8165436 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 300, + "maxRunDistance": 7, + "steps": [ + { + "position" : { + "x": -163.787781, + "y": -0.4984811, + "z": 35.0878525 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 300, + "maxRunDistance": 11, + "steps": [ + { + "position" : { + "x": -167.303848, + "y": 2.40150738, + "z": 31.3567638 + } + } + ] + } + ] + }, + { + "repeatable": false, + "minLevel": 0, + "maxLevel": 99, + "maxBots": 2, + "desirability": 15, + "name": "BMP #1", + "objectives" : [ + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 100, + "steps": [ + { + "position" : { + "x": -97.78958, + "y": -5.235301, + "z": -149.919464 + } + } + ] + } + ] + }, + { + "repeatable": true, + "isSniping": true, + "minLevel": 0, + "maxLevel": 99, + "maxBots": 2, + "maxBotsInGroup": 1, + "desirability": 10, + "pmcsOnly": true, + "name": "BMP #1 Tower", + "forbiddenWeapons" : [ "pistol", "shotgun" ], + "objectives" : [ + { + "repeatable": true, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 100, + "maxRunDistance": 2, + "lootAfterCompleting": "Inhibit", + "steps": [ + { + "waitTimeAfterCompleting": 1, + "position" : { + "x": -115.884071, + "y": 2.90959239, + "z": -152.189316 + } + }, + { + "stepType" : "Snipe", + "minElapsedTime": { + "min": 45, + "max": 180 + }, + "position" : { + "x": -115.884071, + "y": 2.90959239, + "z": -152.189316 + }, + "lookToPosition" : { + "x": -100.219185, + "y": -6.9519577, + "z": -41.6008224 + } + } + ] + } + ] + }, + { + "repeatable": true, + "isSniping": true, + "minLevel": 0, + "maxLevel": 99, + "maxBots": 2, + "maxBotsInGroup": 1, + "desirability": 10, + "pmcsOnly": true, + "name": "South Hill Tower", + "forbiddenWeapons" : [ "pistol", "shotgun" ], + "objectives" : [ + { + "repeatable": true, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 100, + "maxRunDistance": 2, + "lootAfterCompleting": "Inhibit", + "steps": [ + { + "waitTimeAfterCompleting": 1, + "position" : { + "x": -2.34005737, + "y": 2.22303867, + "z": -203.696259 + } + }, + { + "stepType" : "Snipe", + "minElapsedTime": { + "min": 45, + "max": 180 + }, + "position" : { + "x": -2.34005737, + "y": 2.22303867, + "z": -203.696259 + }, + "lookToPosition" : { + "x": -36.4596519, + "y": -6.37780237, + "z": -109.325836 + } + } + ] + } + ] + }, + { + "repeatable": false, + "minLevel": 0, + "maxLevel": 99, + "maxBots": 2, + "desirability": 5, + "name": "Gas Station Building", + "objectives" : [ + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 100, + "maxRunDistance": 5, + "steps": [ + { + "position" : { + "x": 21.34781, + "y": -6.7699976, + "z": 34.7594147 + } + } + ] + } + ] + }, + { + "repeatable": false, + "minLevel": 0, + "maxLevel": 99, + "maxBots": 2, + "desirability": 10, + "name": "Scav Lands North Building", + "objectives" : [ + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 100, + "maxRunDistance": 4, + "steps": [ + { + "position" : { + "x": -105.879715, + "y": -6.25096273, + "z": -96.3053 + } + } + ] + } + ] + }, + { + "repeatable": true, + "minLevel": 0, + "maxLevel": 99, + "maxBots": 2, + "desirability": 10, + "canRunBetweenObjectives": false, + "name": "Scav Lands South Building", + "objectives" : [ + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 100, + "maxRunDistance": 5, + "steps": [ + { + "position" : { + "x": -136.028748, + "y": -3.80135655, + "z": -136.5407 + } + } + ] + }, + { + "repeatable": true, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 100, + "steps": [ + { + "position" : { + "x": -144.66449, + "y": -7.078307, + "z": -130.826447 + } + } + ] + } + ] + }, + { + "repeatable": false, + "minLevel": 0, + "maxLevel": 99, + "maxBots": 2, + "desirability": 5, + "name": "SW Bunker", + "objectives" : [ + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 100, + "maxRunDistance": 10, + "steps": [ + { + "position" : { + "x": -266.413177, + "y": -10.8689308, + "z": -76.11035 + } + } + ] + } + ] + }, + { + "repeatable": false, + "minLevel": 0, + "maxLevel": 99, + "maxBots": 2, + "desirability": 5, + "name": "SW Tank", + "objectives" : [ + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 100, + "steps": [ + { + "position" : { + "x": -243.0691, + "y": -5.391807, + "z": -0.5168501 + } + } + ] + } + ] + }, + { + "repeatable": false, + "minLevel": 0, + "maxLevel": 99, + "maxBots": 2, + "desirability": 5, + "name": "Black Pawn Back Bunker", + "objectives" : [ + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 100, + "steps": [ + { + "position" : { + "x": -216.207825, + "y": -10.8689327, + "z": 48.6263275 + } + } + ] + } + ] + }, + { + "repeatable": false, + "minLevel": 0, + "maxLevel": 99, + "maxBots": 2, + "desirability": 10, + "name": "Helicopter", + "objectives" : [ + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 200, + "maxRunDistance": 4, + "steps": [ + { + "position" : { + "x": -125.128525, + "y": -5.361258, + "z": 34.0301476 + } + } + ] + } + ] + }, + { + "repeatable": false, + "minLevel": 0, + "maxLevel": 99, + "maxBots": 2, + "desirability": 10, + "name": "Helicopter Platform Crawl Space", + "objectives" : [ + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 200, + "steps": [ + { + "position" : { + "x": -91.87741, + "y": -6.933006, + "z": 36.29373 + } + } + ] + } + ] + }, + { + "repeatable": true, + "minLevel": 0, + "maxLevel": 99, + "maxBots": 3, + "desirability": 25, + "name": "Trenches", + "objectives" : [ + { + "repeatable": true, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 200, + "maxRunDistance": 4, + "steps": [ + { + "position" : { + "x": -16.6778336, + "y": -6.94096947, + "z": 18.4391346 + } + } + ] + }, + { + "repeatable": true, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 200, + "maxRunDistance": 4, + "steps": [ + { + "position" : { + "x": -3.88529658, + "y": -6.935401, + "z": 14.305706 + } + } + ] + } + ] + }, + { + "repeatable": true, + "minLevel": 0, + "maxLevel": 99, + "maxBots": 3, + "desirability": 25, + "canRunBetweenObjectives": false, + "name": "Sewer Manhole Building", + "objectives" : [ + { + "repeatable": true, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 500, + "maxRunDistance": 4, + "steps": [ + { + "position" : { + "x": 59.1700668, + "y": -6.736497, + "z": 63.9780769 + } + } + ] + }, + { + "repeatable": true, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 500, + "maxRunDistance": 4, + "steps": [ + { + "position" : { + "x": 70.95511, + "y": -6.7364974, + "z": 63.14426 + } + } + ] + } + ] + }, + { + "repeatable": true, + "minLevel": 0, + "maxLevel": 99, + "maxBots": 3, + "desirability": 25, + "canRunBetweenObjectives": false, + "name": "Knight Garages", + "objectives" : [ + { + "repeatable": true, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 300, + "maxRunDistance": 10, + "steps": [ + { + "position" : { + "x": 100.815506, + "y": -6.945813, + "z": 20.630373 + } + } + ] + }, + { + "repeatable": true, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 300, + "maxRunDistance": 8, + "steps": [ + { + "position" : { + "x": 88.83505, + "y": -6.94581652, + "z": 3.16111827 + } + } + ] + } + ] + }, + { + "repeatable": false, + "minLevel": 0, + "maxLevel": 99, + "maxBots": 2, + "desirability": 5, + "name": "NW Bunkers", + "objectives" : [ + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 100, + "maxRunDistance": 9, + "steps": [ + { + "position" : { + "x": 144.701492, + "y": -10.8599281, + "z": 40.3061943 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 100, + "steps": [ + { + "position" : { + "x": 145.924652, + "y": -7.03951359, + "z": -1.62661088 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 100, + "steps": [ + { + "position" : { + "x": 189.892639, + "y": -5.13888073, + "z": 25.7939434 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 100, + "maxRunDistance": 8, + "steps": [ + { + "position" : { + "x": 233.894836, + "y": -10.8299332, + "z": -4.140376 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 100, + "steps": [ + { + "position" : { + "x": 222.95755, + "y": -5.36857843, + "z": -54.26558 + } + } + ] + } + ] + }, + { + "repeatable": false, + "minLevel": 0, + "maxLevel": 99, + "maxBots": 2, + "desirability": 15, + "canRunBetweenObjectives": false, + "name": "Train Yard", + "objectives" : [ + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 300, + "maxRunDistance": 7, + "steps": [ + { + "position" : { + "x": 39.3794174, + "y": -5.10824, + "z": -128.900391 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 300, + "maxRunDistance": 7, + "steps": [ + { + "position" : { + "x": 2.24173045, + "y": -5.10824442, + "z": -118.123154 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 300, + "maxRunDistance": 5, + "steps": [ + { + "position" : { + "x": 2.28520846, + "y": -5.09824276, + "z": -96.55231 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 300, + "maxRunDistance": 7, + "steps": [ + { + "position" : { + "x": 60.0944862, + "y": -5.098238, + "z": -113.32132 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 300, + "maxRunDistance": 5, + "steps": [ + { + "position" : { + "x": 43.8858032, + "y": -5.108241, + "z": -85.7534256 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 300, + "maxRunDistance": 5, + "steps": [ + { + "position" : { + "x": 8.655163, + "y": -5.108245, + "z": -74.57055 + } + } + ] + } + ] + }, + { + "repeatable": true, + "minLevel": 0, + "maxLevel": 99, + "maxBots": 3, + "desirability": 25, + "name": "Train Yard Bunker Entrance", + "objectives" : [ + { + "repeatable": true, + "minDistanceFromBot": 30, + "maxDistanceFromBot": 750, + "maxRunDistance": 5, + "steps": [ + { + "position" : { + "x": 118.599594, + "y": -6.8646884, + "z": -84.57156 + } + } + ] + }, + { + "repeatable": true, + "minDistanceFromBot": 30, + "maxDistanceFromBot": 750, + "maxRunDistance": 11, + "steps": [ + { + "position" : { + "x": 119.891968, + "y": -0.4590883, + "z": -84.99323 + } + } + ] + } + ] + }, + { + "repeatable": true, + "minLevel": 0, + "maxLevel": 99, + "maxBots": 3, + "desirability": 25, + "name": "White Rook", + "objectives" : [ + { + "repeatable": true, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 750, + "maxRunDistance": 10, + "steps": [ + { + "position" : { + "x": 178.428833, + "y": -6.607043, + "z": -138.727188 + } + } + ] + }, + { + "repeatable": true, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 750, + "maxRunDistance": 8, + "steps": [ + { + "position" : { + "x": 179.374969, + "y": -1.381944, + "z": -165.712814 + } + } + ] + }, + { + "repeatable": true, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 750, + "maxRunDistance": 11, + "steps": [ + { + "position" : { + "x": 157.386047, + "y": -5.208242, + "z": -167.046432 + } + } + ] + }, + { + "repeatable": true, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 750, + "maxRunDistance": 4, + "steps": [ + { + "position" : { + "x": 170.255646, + "y": -5.20824242, + "z": -170.90448 + } + } + ] + } + ] + }, + { + "repeatable": false, + "minLevel": 0, + "maxLevel": 99, + "maxBots": 2, + "desirability": 5, + "pmcsOnly": true, + "name": "White Rook Roof", + "objectives" : [ + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 75, + "maxRunDistance": 7, + "steps": [ + { + "position" : { + "x": 145.47049, + "y": 1.87687123, + "z": -154.398758 + } + } + ] + } + ] + }, + { + "repeatable": false, + "minLevel": 0, + "maxLevel": 99, + "maxBots": 2, + "desirability": 5, + "name": "White Rook North Tank", + "objectives" : [ + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 100, + "steps": [ + { + "position" : { + "x": 212.328644, + "y": -6.95198, + "z": -89.07274 + } + } + ] + } + ] + }, + { + "repeatable": false, + "minLevel": 0, + "maxLevel": 99, + "maxBots": 2, + "desirability": 30, + "canRunBetweenObjectives": false, + "name": "White Rook Barracks", + "objectives" : [ + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 300, + "maxRunDistance": 8, + "steps": [ + { + "position" : { + "x": 191.266968, + "y": -6.845368, + "z": -225.966827 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 300, + "maxRunDistance": 4, + "steps": [ + { + "position" : { + "x": 197.5454, + "y": -6.841941, + "z": -202.4982 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 300, + "maxRunDistance": 5, + "steps": [ + { + "position" : { + "x": 148.932144, + "y": -6.85537, + "z": -236.572189 + } + } + ] + } + ] + }, + { + "repeatable": true, + "isSniping": true, + "minLevel": 0, + "maxLevel": 99, + "maxBots": 2, + "maxBotsInGroup": 1, + "desirability": 15, + "pmcsOnly": true, + "name": "South Hill Sniping", + "forbiddenWeapons" : [ "pistol", "shotgun" ], + "objectives" : [ + { + "repeatable": true, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 500, + "lootAfterCompleting": "Inhibit", + "steps": [ + { + "waitTimeAfterCompleting": 1, + "position" : { + "x": 129.253372, + "y": -0.2681621, + "z": -179.9267 + } + }, + { + "stepType" : "HoldAtPosition", + "maxDistance": 5, + "minElapsedTime": { + "min": 20, + "max": 120 + }, + "position" : { + "x": 129.253372, + "y": -0.2681621, + "z": -179.9267 + } + } + ] + }, + { + "repeatable": true, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 500, + "steps": [ + { + "waitTimeAfterCompleting": 2, + "position" : { + "x": 98.9659958, + "y": -0.00396029, + "z": -172.420685 + } + }, + { + "stepType" : "HoldAtPosition", + "maxDistance": 5, + "minElapsedTime": { + "min": 20, + "max": 120 + }, + "position" : { + "x": 98.9659958, + "y": -0.00396029, + "z": -172.420685 + } + } + ] + }, + { + "repeatable": true, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 500, + "steps": [ + { + "waitTimeAfterCompleting": 2, + "position" : { + "x": 67.30062, + "y": -0.2021343, + "z": -163.727432 + } + }, + { + "stepType" : "Snipe", + "minElapsedTime": { + "min": 30, + "max": 150 + }, + "position" : { + "x": 67.30062, + "y": -0.2021343, + "z": -163.727432 + }, + "lookToPosition" : { + "x": 108.711143, + "y": -6.914482, + "z": -90.76131 + } + } + ] + }, + { + "repeatable": true, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 500, + "steps": [ + { + "waitTimeAfterCompleting": 2, + "position" : { + "x": 34.9776154, + "y": -0.115867242, + "z": -155.036057 + } + }, + { + "stepType" : "HoldAtPosition", + "maxDistance": 5, + "minElapsedTime": { + "min": 20, + "max": 120 + }, + "position" : { + "x": 34.9776154, + "y": -0.115867242, + "z": -155.036057 + } + } + ] + } + ] + }, + { + "repeatable": false, + "minLevel": 0, + "maxLevel": 99, + "maxBots": 2, + "desirability": 15, + "canRunBetweenObjectives": false, + "name": "Hermetic", + "objectives" : [ + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 500, + "maxRunDistance": 5, + "steps": [ + { + "position" : { + "x": 42.73983, + "y": -6.95917654, + "z": -156.648163 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 500, + "maxRunDistance": 6, + "steps": [ + { + "position" : { + "x": 27.0990963, + "y": -6.959173, + "z": -179.003067 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 500, + "maxRunDistance": 6, + "steps": [ + { + "position" : { + "x": 57.2999535, + "y": -6.95917749, + "z": -160.902252 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 500, + "maxRunDistance": 5, + "steps": [ + { + "position" : { + "x": 60.29437, + "y": -6.959175, + "z": -187.262131 + } + } + ] + } + ] + }, + { + "repeatable": true, + "isSniping": true, + "minLevel": 0, + "maxLevel": 99, + "maxBots": 2, + "maxBotsInGroup": 1, + "desirability": 10, + "pmcsOnly": true, + "name": "White Knight Roof", + "forbiddenWeapons" : [ "pistol", "shotgun" ], + "objectives" : [ + { + "repeatable": true, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 200, + "maxRunDistance": 8, + "steps": [ + { + "position" : { + "x": 91.85216, + "y": -0.967280149, + "z": -35.26188 + } + } + ] + }, + { + "repeatable": true, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 200, + "maxRunDistance": 8, + "lootAfterCompleting": "Inhibit", + "steps": [ + { + "waitTimeAfterCompleting": 1, + "position" : { + "x": 88.902565, + "y": -0.9757629, + "z": -48.589325 + } + }, + { + "stepType" : "Snipe", + "minElapsedTime": { + "min": 30, + "max": 120 + }, + "position" : { + "x": 88.902565, + "y": -0.9757629, + "z": -48.589325 + }, + "lookToPosition" : { + "x": 90.79628, + "y": -5.36612, + "z": -92.01196 + } + } + ] + }, + { + "repeatable": true, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 200, + "maxRunDistance": 8, + "lootAfterCompleting": "Inhibit", + "steps": [ + { + "waitTimeAfterCompleting": 1, + "position" : { + "x": 72.21781, + "y": -0.9757645, + "z": -38.7165833 + } + }, + { + "stepType" : "Snipe", + "minElapsedTime": { + "min": 30, + "max": 120 + }, + "position" : { + "x": 72.21781, + "y": -0.9757645, + "z": -38.7165833 + }, + "lookToPosition" : { + "x": 27.3069553, + "y": -6.951959, + "z": -14.3200617 + } + } + ] + }, + { + "repeatable": true, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 200, + "maxRunDistance": 11, + "steps": [ + { + "waitTimeAfterCompleting": 2, + "position" : { + "x": 92.3923645, + "y": 2.254353, + "z": -22.8853054 + } + }, + { + "position" : { + "x": 93.60874, + "y": 2.25435066, + "z": -20.2344475 + } + }, + { + "position" : { + "x": 96.75515, + "y": 2.25435138, + "z": -21.9188862 + } + } + ] + }, + { + "repeatable": true, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 200, + "maxRunDistance": 11, + "lootAfterCompleting": "Inhibit", + "steps": [ + { + "waitTimeAfterCompleting": 1, + "position" : { + "x": 78.00441, + "y": 2.25435114, + "z": -20.2546329 + } + }, + { + "stepType" : "HoldAtPosition", + "maxDistance": 5, + "minElapsedTime": { + "min": 45, + "max": 120 + }, + "position" : { + "x": 78.00441, + "y": 2.25435114, + "z": -20.2546329 + } + } + ] + }, + { + "repeatable": true, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 200, + "maxRunDistance": 11, + "lootAfterCompleting": "Inhibit", + "steps": [ + { + "waitTimeAfterCompleting": 1, + "position" : { + "x": 83.98091, + "y": 2.25435138, + "z": -16.0826168 + } + }, + { + "stepType" : "Snipe", + "minElapsedTime": { + "min": 45, + "max": 180 + }, + "position" : { + "x": 83.98091, + "y": 2.25435138, + "z": -16.0826168 + }, + "lookToPosition" : { + "x": 49.4165077, + "y": -6.95198441, + "z": 44.728096 + } + } + ] + } + ] + }, + { + "repeatable": false, + "minLevel": 15, + "maxLevel": 99, + "maxBots": 2, + "desirability": 10, + "name": "White Knight RB-MP22", + "objectives" : [ + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 300, + "maxRunDistance": 6, + "steps": [ + { + "position" : { + "x": 90.3427353, + "y": -3.99971437, + "z": -40.9534531 + } + } + ] + } + ] + }, + { + "repeatable": true, + "minLevel": 0, + "maxLevel": 99, + "maxBots": 3, + "desirability": 15, + "name": "White Knight Rear Drop-Down", + "objectives" : [ + { + "repeatable": true, + "minDistanceFromBot": 15, + "maxDistanceFromBot": 500, + "maxRunDistance": 6, + "steps": [ + { + "position" : { + "x": 89.09685, + "y": -6.8346405, + "z": -42.0361366 + } + } + ] + } + ] + }, + { + "repeatable": true, + "isSniping": true, + "minLevel": 0, + "maxLevel": 99, + "maxBots": 2, + "maxBotsInGroup": 1, + "desirability": 10, + "pmcsOnly": true, + "name": "Black Knight Roof", + "forbiddenWeapons" : [ "pistol", "shotgun" ], + "objectives" : [ + { + "repeatable": true, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 200, + "maxRunDistance": 7, + "steps": [ + { + "waitTimeAfterCompleting": 2, + "position" : { + "x": 24.8102913, + "y": -0.9696667, + "z": -12.8290911 + } + }, + { + "stepType" : "HoldAtPosition", + "maxDistance": 5, + "minElapsedTime": { + "min": 30, + "max": 150 + }, + "position" : { + "x": 24.8102913, + "y": -0.9696667, + "z": -12.8290911 + } + } + ] + }, + { + "repeatable": true, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 200, + "maxRunDistance": 7, + "steps": [ + { + "waitTimeAfterCompleting": 2, + "position" : { + "x": 19.7480946, + "y": -0.9696676, + "z": 1.46109843 + } + }, + { + "stepType" : "HoldAtPosition", + "maxDistance": 5, + "minElapsedTime": { + "min": 30, + "max": 150 + }, + "position" : { + "x": 19.7480946, + "y": -0.9696676, + "z": 1.46109843 + } + } + ] + }, + { + "repeatable": true, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 200, + "maxRunDistance": 7, + "lootAfterCompleting": "Inhibit", + "steps": [ + { + "waitTimeAfterCompleting": 1, + "position" : { + "x": 7.020325, + "y": -0.969666958, + "z": -2.04534531 + } + }, + { + "stepType" : "Snipe", + "minElapsedTime": { + "min": 30, + "max": 120 + }, + "position" : { + "x": 7.020325, + "y": -0.969666958, + "z": -2.04534531 + }, + "lookToPosition" : { + "x": -28.8361664, + "y": -6.940972, + "z": 3.92544866 + } + } + ] + } + ] + }, + { + "repeatable": true, + "minLevel": 0, + "maxLevel": 99, + "maxBots": 2, + "desirability": 15, + "name": "Checkpoint", + "objectives" : [ + { + "repeatable": true, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 500, + "maxRunDistance": 4, + "steps": [ + { + "position" : { + "x": 58.955986, + "y": -6.29667568, + "z": 104.166016 + } + } + ] + } + ] + }, + { + "repeatable": true, + "isSniping": true, + "minLevel": 5, + "maxLevel": 99, + "maxBots": 2, + "maxBotsInGroup": 1, + "desirability": 15, + "pmcsOnly": true, + "name": "Dome Lower Sniping", + "forbiddenWeapons" : [ "pistol", "shotgun" ], + "objectives" : [ + { + "repeatable": true, + "minDistanceFromBot": 10, + "maxDistanceFromBot": 9999, + "lootAfterCompleting": "Inhibit", + "steps": [ + { + "waitTimeAfterCompleting": 1, + "position" : { + "x": 0.888026536, + "y": 7.626677, + "z": 140.454575 + } + }, + { + "stepType" : "Snipe", + "minElapsedTime": { + "min": 30, + "max": 120 + }, + "position" : { + "x": 0.888026536, + "y": 7.626677, + "z": 140.454575 + }, + "lookToPosition" : { + "x": 40.4482536, + "y": -6.951961, + "z": 37.6250153 + } + } + ] + }, + { + "repeatable": true, + "minDistanceFromBot": 10, + "maxDistanceFromBot": 9999, + "lootAfterCompleting": "Inhibit", + "steps": [ + { + "waitTimeAfterCompleting": 1, + "position" : { + "x": -31.3627472, + "y": 4.94231129, + "z": 127.951225 + } + }, + { + "stepType" : "Snipe", + "minElapsedTime": { + "min": 30, + "max": 120 + }, + "position" : { + "x": -31.3627472, + "y": 4.94231129, + "z": 127.951225 + }, + "lookToPosition" : { + "x": -31.1201019, + "y": -6.94646263, + "z": 41.0778236 + } + } + ] + }, + { + "repeatable": true, + "minDistanceFromBot": 10, + "maxDistanceFromBot": 9999, + "lootAfterCompleting": "Inhibit", + "steps": [ + { + "waitTimeAfterCompleting": 1, + "position" : { + "x": -59.98304, + "y": 8.704645, + "z": 143.714233 + } + }, + { + "stepType" : "Snipe", + "minElapsedTime": { + "min": 30, + "max": 120 + }, + "position" : { + "x": -59.98304, + "y": 8.704645, + "z": 143.714233 + }, + "lookToPosition" : { + "x": -31.1201019, + "y": -6.94646263, + "z": 41.0778236 + } + } + ] + }, + { + "repeatable": true, + "minDistanceFromBot": 10, + "maxDistanceFromBot": 9999, + "lootAfterCompleting": "Inhibit", + "steps": [ + { + "waitTimeAfterCompleting": 1, + "position" : { + "x": -33.37853, + "y": 18.811985, + "z": 163.751053 + } + }, + { + "stepType" : "Snipe", + "minElapsedTime": { + "min": 30, + "max": 120 + }, + "position" : { + "x": -33.37853, + "y": 18.811985, + "z": 163.751053 + }, + "lookToPosition" : { + "x": -31.1201019, + "y": -6.94646263, + "z": 41.0778236 + } + } + ] + }, + { + "repeatable": true, + "minDistanceFromBot": 10, + "maxDistanceFromBot": 9999, + "lootAfterCompleting": "Inhibit", + "steps": [ + { + "waitTimeAfterCompleting": 1, + "position" : { + "x": 8.83328152, + "y": 11.0311422, + "z": 156.471985 + } + }, + { + "stepType" : "Snipe", + "minElapsedTime": { + "min": 30, + "max": 120 + }, + "position" : { + "x": 8.83328152, + "y": 11.0311422, + "z": 156.471985 + }, + "lookToPosition" : { + "x": 10.954216, + "y": -6.946465, + "z": 42.46877 + } + } + ] + }, + { + "repeatable": true, + "minDistanceFromBot": 10, + "maxDistanceFromBot": 9999, + "lootAfterCompleting": "Inhibit", + "steps": [ + { + "waitTimeAfterCompleting": 1, + "position" : { + "x": -82.19405, + "y": 10.0370388, + "z": 150.827087 + } + }, + { + "stepType" : "Snipe", + "minElapsedTime": { + "min": 30, + "max": 120 + }, + "position" : { + "x": -82.19405, + "y": 10.0370388, + "z": 150.827087 + }, + "lookToPosition" : { + "x": -104.678566, + "y": -7.07830667, + "z": 103.295975 + } + } + ] + } + ] + }, + { + "repeatable": false, + "minLevel": 0, + "maxLevel": 99, + "maxBots": 2, + "desirability": 25, + "canRunBetweenObjectives": false, + "name": "D2 from Dome", + "waypoints" : [ + { + "x": -80.53533, + "y": -15.8884859, + "z": 144.298065 + }, + { + "x": -27.8268414, + "y": 12.5911255, + "z": 180.3212 + }, + { + "x": -73.2474442, + "y": -11.7335672, + "z": 67.4957 + } + ], + "objectives" : [ + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 300, + "maxRunDistance": 10, + "steps": [ + { + "position" : { + "x": -62.1878624, + "y": -15.901721, + "z": 181.717209 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 300, + "maxRunDistance": 10, + "steps": [ + { + "position" : { + "x": -55.9908752, + "y": -15.89241, + "z": 159.982162 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 300, + "maxRunDistance": 7, + "steps": [ + { + "position" : { + "x": -77.89744, + "y": -15.9010544, + "z": 164.2701 + } + } + ] + } + ] + }, + { + "repeatable": true, + "isSniping": true, + "minLevel": 0, + "maxLevel": 99, + "maxBots": 2, + "maxBotsInGroup": 1, + "desirability": 10, + "pmcsOnly": true, + "name": "Black Bishop Roof", + "forbiddenWeapons" : [ "pistol", "shotgun" ], + "objectives" : [ + { + "repeatable": true, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 200, + "maxRunDistance": 6, + "steps": [ + { + "waitTimeAfterCompleting": 2, + "position" : { + "x": -118.27533, + "y": -1.295299, + "z": -32.8276176 + } + }, + { + "stepType" : "HoldAtPosition", + "maxDistance": 5, + "minElapsedTime": { + "min": 30, + "max": 120 + }, + "position" : { + "x": -118.27533, + "y": -1.295299, + "z": -32.8276176 + } + } + ] + }, + { + "repeatable": true, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 200, + "maxRunDistance": 7, + "steps": [ + { + "waitTimeAfterCompleting": 2, + "position" : { + "x": -110.636093, + "y": -1.29530454, + "z": -13.9235106 + } + }, + { + "stepType" : "HoldAtPosition", + "maxDistance": 5, + "minElapsedTime": { + "min": 30, + "max": 120 + }, + "position" : { + "x": -110.636093, + "y": -1.29530454, + "z": -13.9235106 + } + } + ] + } + ] + }, + { + "repeatable": true, + "isSniping": true, + "minLevel": 0, + "maxLevel": 99, + "maxBots": 2, + "maxBotsInGroup": 1, + "desirability": 10, + "pmcsOnly": true, + "name": "White Bishop Roof", + "forbiddenWeapons" : [ "pistol", "shotgun" ], + "objectives" : [ + { + "repeatable": true, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 200, + "maxDistance": 7, + "steps": [ + { + "waitTimeAfterCompleting": 2, + "position" : { + "x": -52.1349373, + "y": -0.580698133, + "z": -41.18904 + } + }, + { + "stepType" : "HoldAtPosition", + "maxDistance": 5, + "minElapsedTime": { + "min": 30, + "max": 120 + }, + "position" : { + "x": -52.1349373, + "y": -0.580698133, + "z": -41.18904 + } + } + ] + }, + { + "repeatable": true, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 200, + "maxDistance": 7, + "lootAfterCompleting": "Inhibit", + "steps": [ + { + "waitTimeAfterCompleting": 1, + "position" : { + "x": -82.86299, + "y": -0.580698, + "z": -32.6192055 + } + }, + { + "stepType" : "HoldAtPosition", + "maxDistance": 5, + "minElapsedTime": { + "min": 30, + "max": 120 + }, + "position" : { + "x": -82.86299, + "y": -0.580698, + "z": -32.6192055 + } + } + ] + }, + { + "repeatable": true, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 200, + "maxDistance": 7, + "steps": [ + { + "waitTimeAfterCompleting": 2, + "position" : { + "x": -81.45844, + "y": -0.5806979, + "z": -23.80794 + } + }, + { + "stepType" : "Snipe", + "minElapsedTime": { + "min": 30, + "max": 120 + }, + "position" : { + "x": -81.45844, + "y": -0.5806979, + "z": -23.80794 + }, + "lookToPosition" : { + "x": -137.524933, + "y": -6.933003, + "z": 18.9011421 + } + } + ] + }, + { + "repeatable": true, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 200, + "maxDistance": 7, + "lootAfterCompleting": "Inhibit", + "steps": [ + { + "waitTimeAfterCompleting": 1, + "position" : { + "x": -51.06413, + "y": -0.5807715, + "z": -29.1011562 + } + }, + { + "stepType" : "Snipe", + "minElapsedTime": { + "min": 30, + "max": 120 + }, + "position" : { + "x": -51.06413, + "y": -0.5807715, + "z": -29.1011562 + }, + "lookToPosition" : { + "x": 1.76665545, + "y": -6.951959, + "z": 6.581832 + } + } + ] + } + ] + }, + { + "repeatable": true, + "isSniping": true, + "minLevel": 0, + "maxLevel": 99, + "maxBots": 2, + "maxBotsInGroup": 1, + "desirability": 10, + "pmcsOnly": true, + "name": "White King Roof", + "forbiddenWeapons" : [ "pistol", "shotgun" ], + "objectives" : [ + { + "repeatable": true, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 200, + "maxDistance": 10, + "lootAfterCompleting": "Inhibit", + "steps": [ + { + "waitTimeAfterCompleting": 1, + "position" : { + "x": -55.9039345, + "y": 2.17674446, + "z": 36.81612 + } + }, + { + "stepType" : "Snipe", + "minElapsedTime": { + "min": 30, + "max": 120 + }, + "position" : { + "x": -55.9039345, + "y": 2.17674446, + "z": 36.81612 + }, + "lookToPosition" : { + "x": -21.94078, + "y": 18.3918858, + "z": 165.821 + } + } + ] + }, + { + "repeatable": true, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 200, + "maxDistance": 10, + "steps": [ + { + "waitTimeAfterCompleting": 2, + "position" : { + "x": -68.8098755, + "y": 2.17674017, + "z": 29.2512 + } + }, + { + "stepType" : "Snipe", + "minElapsedTime": { + "min": 30, + "max": 90 + }, + "position" : { + "x": -68.8098755, + "y": 2.17674017, + "z": 29.2512 + }, + "lookToPosition" : { + "x": -143.753754, + "y": -6.94647, + "z": 64.05402 + } + } + ] + }, + { + "repeatable": true, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 200, + "maxDistance": 10, + "steps": [ + { + "waitTimeAfterCompleting": 2, + "position" : { + "x": -73.98968, + "y": 2.17673826, + "z": 8.926663 + } + }, + { + "stepType" : "Snipe", + "minElapsedTime": { + "min": 30, + "max": 90 + }, + "position" : { + "x": -73.98968, + "y": 2.17673826, + "z": 8.926663 + }, + "lookToPosition" : { + "x": -110.156349, + "y": -6.718902, + "z": -82.92104 + } + } + ] + }, + { + "repeatable": true, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 200, + "maxDistance": 10, + "steps": [ + { + "waitTimeAfterCompleting": 2, + "position" : { + "x": -61.7680779, + "y": 2.17673659, + "z": 3.19810128 + } + }, + { + "stepType" : "HoldAtPosition", + "maxDistance": 3, + "minElapsedTime": { + "min": 30, + "max": 90 + }, + "position" : { + "x": -61.7680779, + "y": 2.17673659, + "z": 3.19810128 + } + } + ] + }, + { + "repeatable": true, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 200, + "maxDistance": 10, + "steps": [ + { + "waitTimeAfterCompleting": 2, + "position" : { + "x": -52.1793823, + "y": 4.236157, + "z": 24.5722637 + } + }, + { + "stepType" : "HoldAtPosition", + "maxDistance": 5, + "minElapsedTime": { + "min": 30, + "max": 120 + }, + "position" : { + "x": -52.1793823, + "y": 4.236157, + "z": 24.5722637 + } + } + ] + }, + { + "repeatable": true, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 200, + "maxDistance": 7, + "lootAfterCompleting": "Inhibit", + "steps": [ + { + "waitTimeAfterCompleting": 1, + "position" : { + "x": -61.52356, + "y": -1.43964159, + "z": -4.335618 + } + }, + { + "stepType" : "Snipe", + "minElapsedTime": { + "min": 30, + "max": 90 + }, + "position" : { + "x": -61.52356, + "y": -1.43964159, + "z": -4.335618 + }, + "lookToPosition" : { + "x": -128.495377, + "y": -6.946466, + "z": 0.27093178 + } + } + ] + }, + { + "repeatable": true, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 200, + "maxDistance": 10, + "lootAfterCompleting": "Inhibit", + "steps": [ + { + "waitTimeAfterCompleting": 1, + "position" : { + "x": -22.13185, + "y": 2.88331246, + "z": 28.0139446 + } + }, + { + "stepType" : "HoldAtPosition", + "maxDistance": 3, + "minElapsedTime": { + "min": 30, + "max": 120 + }, + "position" : { + "x": -22.13185, + "y": 2.88331246, + "z": 28.0139446 + } + } + ] + }, + { + "repeatable": true, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 200, + "maxDistance": 10, + "lootAfterCompleting": "Inhibit", + "steps": [ + { + "waitTimeAfterCompleting": 1, + "position" : { + "x": -26.7579288, + "y": 2.87685, + "z": 7.72921562 + } + }, + { + "stepType" : "HoldAtPosition", + "maxDistance": 3, + "minElapsedTime": { + "min": 30, + "max": 120 + }, + "position" : { + "x": -26.7579288, + "y": 2.87685, + "z": 7.72921562 + } + } + ] + }, + { + "repeatable": true, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 200, + "maxDistance": 7, + "lootAfterCompleting": "Inhibit", + "steps": [ + { + "waitTimeAfterCompleting": 1, + "position" : { + "x": -43.67138, + "y": -1.44018316, + "z": -11.1153917 + } + }, + { + "stepType" : "Snipe", + "minElapsedTime": { + "min": 30, + "max": 120 + }, + "position" : { + "x": -43.67138, + "y": -1.44018316, + "z": -11.1153917 + }, + "lookToPosition" : { + "x": -26.2307072, + "y": -6.95196056, + "z": -35.39323 + } + } + ] + }, + { + "repeatable": true, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 200, + "maxDistance": 7, + "lootAfterCompleting": "Inhibit", + "steps": [ + { + "waitTimeAfterCompleting": 1, + "position" : { + "x": -34.2895775, + "y": -1.4396385, + "z": 4.118504 + } + }, + { + "stepType" : "Snipe", + "minElapsedTime": { + "min": 30, + "max": 120 + }, + "position" : { + "x": -34.2895775, + "y": -1.4396385, + "z": 4.118504 + }, + "lookToPosition" : { + "x": 2.47579265, + "y": -6.946465, + "z": -3.74885082 + } + } + ] + } + ] + }, + { + "repeatable": true, + "isSniping": true, + "minLevel": 0, + "maxLevel": 99, + "maxBots": 2, + "maxBotsInGroup": 1, + "desirability": 10, + "pmcsOnly": true, + "name": "Black Pawn Roof", + "forbiddenWeapons" : [ "pistol", "shotgun" ], + "objectives" : [ + { + "repeatable": true, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 200, + "maxDistance": 13, + "lootAfterCompleting": "Inhibit", + "steps": [ + { + "waitTimeAfterCompleting": 1, + "position" : { + "x": -172.084579, + "y": 5.291526, + "z": 32.26616 + } + }, + { + "stepType" : "Snipe", + "minElapsedTime": { + "min": 30, + "max": 90 + }, + "position" : { + "x": -172.084579, + "y": 5.291526, + "z": 32.26616 + }, + "lookToPosition" : { + "x": -178.962372, + "y": -7.006898, + "z": -34.85421 + } + } + ] + }, + { + "repeatable": true, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 200, + "maxDistance": 13, + "steps": [ + { + "waitTimeAfterCompleting": 2, + "position" : { + "x": -159.942719, + "y": 5.29152632, + "z": 46.7519951 + } + }, + { + "stepType" : "HoldAtPosition", + "maxDistance": 3, + "minElapsedTime": { + "min": 30, + "max": 120 + }, + "position" : { + "x": -159.942719, + "y": 5.29152632, + "z": 46.7519951 + } + } + ] + }, + { + "repeatable": true, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 200, + "maxDistance": 13, + "steps": [ + { + "waitTimeAfterCompleting": 2, + "position" : { + "x": -156.319138, + "y": 5.29153, + "z": 76.2519455 + } + }, + { + "stepType" : "Snipe", + "minElapsedTime": { + "min": 30, + "max": 120 + }, + "position" : { + "x": -156.319138, + "y": 5.29153, + "z": 76.2519455 + }, + "lookToPosition" : { + "x": -68.24686, + "y": 15.6919317, + "z": 168.428329 + } + } + ] + } + ] + }, + { + "repeatable": false, + "minLevel": 0, + "maxLevel": 99, + "maxBots": 3, + "desirability": 25, + "canRunBetweenObjectives": false, + "name": "White Pawn", + "objectives" : [ + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 200, + "maxDistance": 6, + "steps": [ + { + "position" : { + "x": -83.11231, + "y": -9.21883, + "z": 82.87659 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 200, + "maxDistance": 8, + "steps": [ + { + "position" : { + "x": -114.07621, + "y": -9.218824, + "z": 95.49441 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 200, + "maxDistance": 5, + "steps": [ + { + "position" : { + "x": -125.344337, + "y": -3.398486, + "z": 96.15801 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 200, + "maxDistance": 10, + "steps": [ + { + "position" : { + "x": -98.80417, + "y": -3.39848828, + "z": 91.4246445 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 200, + "maxDistance": 8, + "steps": [ + { + "position" : { + "x": -93.4746857, + "y": -0.49848932, + "z": 84.83402 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 200, + "maxDistance": 10, + "steps": [ + { + "position" : { + "x": -125.7484, + "y": 2.40151143, + "z": 93.857666 + } + } + ] + } + ] + }, + { + "repeatable": true, + "isSniping": true, + "minLevel": 0, + "maxLevel": 99, + "maxBots": 2, + "maxBotsInGroup": 1, + "desirability": 10, + "pmcsOnly": true, + "name": "White Pawn Roof", + "forbiddenWeapons" : [ "pistol", "shotgun" ], + "objectives" : [ + { + "repeatable": true, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 200, + "maxDistance": 13, + "steps": [ + { + "position" : { + "x": -110.250114, + "y": 5.291527, + "z": 91.5523453 + } + } + ] + }, + { + "repeatable": true, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 200, + "maxDistance": 13, + "steps": [ + { + "position" : { + "x": -97.68488, + "y": 5.2915287, + "z": 95.19897 + } + } + ] + }, + { + "repeatable": true, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 200, + "maxDistance": 13, + "steps": [ + { + "position" : { + "x": -125.356148, + "y": 5.291529, + "z": 93.655304 + } + } + ] + }, + { + "repeatable": true, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 200, + "maxDistance": 13, + "lootAfterCompleting": "Inhibit", + "steps": [ + { + "waitTimeAfterCompleting": 1, + "position" : { + "x": -83.51541, + "y": 5.586532, + "z": 81.13965 + } + }, + { + "stepType" : "HoldAtPosition", + "maxDistance": 3, + "minElapsedTime": { + "min": 30, + "max": 120 + }, + "position" : { + "x": -83.51541, + "y": 5.586532, + "z": 81.13965 + } + } + ] + } + ] + }, + { + "repeatable": true, + "isCamping": true, + "minLevel": 0, + "maxLevel": 99, + "maxBots": 2, + "maxBotsInGroup": 1, + "minRaidET": 300, + "requiredSwitches": { + "autoId_00000_D2_LEVER": true + }, + "desirability": 20, + "name": "D2 Extract Camping", + "forbiddenWeapons" : [ "sniperRifle" ], + "waypoints" : [ + { + "x": -80.53533, + "y": -15.8884859, + "z": 144.298065 + }, + { + "x": -27.8268414, + "y": 12.5911255, + "z": 180.3212 + }, + { + "x": -73.2474442, + "y": -11.7335672, + "z": 67.4957 + } + ], + "objectives" : [ + { + "repeatable": true, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 750, + "maxRunDistance": 20, + "lootAfterCompleting": "Inhibit", + "steps": [ + { + "waitTimeAfterCompleting": 1, + "position" : { + "x": -99.64825, + "y": -18.4064484, + "z": 158.186447 + } + }, + { + "stepType" : "Ambush", + "minElapsedTime": { + "min": 120, + "max": 300 + }, + "position" : { + "x": -99.64825, + "y": -18.4064484, + "z": 158.186447 + }, + "lookToPosition" : { + "x": -90.34085, + "y": -19.48446, + "z": 152.01239 + } + } + ] + }, + { + "repeatable": true, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 750, + "maxRunDistance": 10, + "lootAfterCompleting": "Inhibit", + "steps": [ + { + "waitTimeAfterCompleting": 1, + "position" : { + "x": -89.4850845, + "y": -16.2609348, + "z": 154.509933 + } + }, + { + "stepType" : "Ambush", + "minElapsedTime": { + "min": 120, + "max": 300 + }, + "position" : { + "x": -89.4850845, + "y": -16.2609348, + "z": 154.509933 + }, + "lookToPosition" : { + "x": -92.74455, + "y": -16.2609348, + "z": 152.690384 + } + } + ] + }, + { + "repeatable": true, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 750, + "maxRunDistance": 5, + "lootAfterCompleting": "Inhibit", + "steps": [ + { + "waitTimeAfterCompleting": 1, + "position" : { + "x": -82.94805, + "y": -16.20588, + "z": 150.744766 + } + }, + { + "stepType" : "Ambush", + "minElapsedTime": { + "min": 120, + "max": 300 + }, + "position" : { + "x": -82.94805, + "y": -16.20588, + "z": 150.744766 + }, + "lookToPosition" : { + "x": -82.5719147, + "y": -15.9544868, + "z": 145.723633 + } + } + ] + } + ] + }, + { + "repeatable": true, + "isCamping": true, + "minLevel": 0, + "maxLevel": 99, + "maxBots": 2, + "maxBotsInGroup": 1, + "minRaidET": 300, + "requiredSwitches": { + "autoId_00000_D2_LEVER": true + }, + "desirability": 20, + "name": "D2 Entrance Camping", + "forbiddenWeapons" : [ "sniperRifle" ], + "waypoints" : [ + { + "x": -80.53533, + "y": -15.8884859, + "z": 144.298065 + }, + { + "x": -27.8268414, + "y": 12.5911255, + "z": 180.3212 + }, + { + "x": -73.2474442, + "y": -11.7335672, + "z": 67.4957 + } + ], + "objectives" : [ + { + "repeatable": true, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 750, + "maxRunDistance": 5, + "lootAfterCompleting": "Inhibit", + "steps": [ + { + "waitTimeAfterCompleting": 1, + "position" : { + "x": -62.6594162, + "y": -14.703867, + "z": 145.106491 + } + }, + { + "stepType" : "Ambush", + "minElapsedTime": { + "min": 120, + "max": 300 + }, + "position" : { + "x": -62.6594162, + "y": -14.703867, + "z": 145.106491 + }, + "lookToPosition" : { + "x": -80.40696, + "y": -15.8884859, + "z": 144.484146 + } + } + ] + } + ] + } +] \ No newline at end of file diff --git a/BepInEx/plugins/DanW-SPTQuestingBots/quests/standard/sandbox.json b/BepInEx/plugins/DanW-SPTQuestingBots/quests/standard/sandbox.json new file mode 100644 index 0000000..6a22490 --- /dev/null +++ b/BepInEx/plugins/DanW-SPTQuestingBots/quests/standard/sandbox.json @@ -0,0 +1,2703 @@ +[ + { + "repeatable": false, + "minLevel": 0, + "maxLevel": 99, + "maxBots": 2, + "desirability": 20, + "name": "Emercom Checkpoint", + "objectives" : [ + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 300, + "steps": [ + { + "position" : { + "x": 153.467, + "y": 23.1232815, + "z": -97.63334 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 300, + "maxRunDistance": 4, + "steps": [ + { + "position" : { + "x": 152.415268, + "y": 22.6699333, + "z": -79.92395 + } + }, + { + "position" : { + "x": 156.706467, + "y": 22.6699333, + "z": -83.02257 + } + } + ] + } + ] + }, + { + "repeatable": false, + "minLevel": 0, + "maxLevel": 99, + "maxBots": 2, + "desirability": 10, + "name": "Mira Avenue Benches", + "objectives" : [ + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 200, + "steps": [ + { + "position" : { + "x": 198.462112, + "y": 16.286, + "z": -47.5789948 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 200, + "steps": [ + { + "position" : { + "x": 199.561691, + "y": 16.286, + "z": -14.4417791 + } + } + ] + } + ] + }, + { + "repeatable": true, + "isCamping": true, + "minLevel": 0, + "maxLevel": 99, + "maxBots": 2, + "maxBotsInGroup": 1, + "minRaidET": 500, + "desirability": 10, + "name": "Mira Avenue Extract Camping", + "forbiddenWeapons" : [ "sniperRifle" ], + "objectives" : [ + { + "repeatable": true, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 500, + "lootAfterCompleting": "Inhibit", + "steps": [ + { + "waitTimeAfterCompleting": 1, + "position" : { + "x": 184.947708, + "y": 20.4439526, + "z": -49.5665 + } + }, + { + "stepType" : "Snipe", + "minElapsedTime": { + "min": 45, + "max": 180 + }, + "position" : { + "x": 184.947708, + "y": 20.4439526, + "z": -49.5665 + }, + "lookToPosition" : { + "x": 218.630066, + "y": 16.017622, + "z": 10.6597195 + } + } + ] + } + ] + }, + { + "repeatable": false, + "minLevel": 0, + "maxLevel": 99, + "maxBots": 2, + "desirability": 10, + "name": "Skyside Hotel", + "objectives" : [ + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 200, + "maxRunDistance": 9, + "steps": [ + { + "position" : { + "x": 172.2627, + "y": 16.9279957, + "z": 4.292445 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 200, + "maxRunDistance": 5, + "steps": [ + { + "position" : { + "x": 177.878, + "y": 16.928, + "z": 33.54966 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 200, + "maxRunDistance": 23, + "steps": [ + { + "position" : { + "x": 158.257935, + "y": 16.9279957, + "z": 10.1328144 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 200, + "maxRunDistance": 20, + "steps": [ + { + "position" : { + "x": 135.383652, + "y": 16.928, + "z": -12.7923 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 200, + "maxRunDistance": 13, + "steps": [ + { + "position" : { + "x": 115.111435, + "y": 22.7720013, + "z": -4.52473259 + } + } + ] + } + ] + }, + { + "repeatable": false, + "minLevel": 0, + "maxLevel": 99, + "maxBots": 2, + "desirability": 10, + "name": "Skyside Hotel Outside", + "objectives" : [ + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 200, + "steps": [ + { + "position" : { + "x": 179.913254, + "y": 21.940361, + "z": 48.9427834 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 200, + "steps": [ + { + "position" : { + "x": 153.941315, + "y": 22.7683678, + "z": 34.41739 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 200, + "steps": [ + { + "position" : { + "x": 134.762878, + "y": 22.7683678, + "z": 47.301693 + } + } + ] + } + ] + }, + { + "repeatable": false, + "minLevel": 0, + "maxLevel": 99, + "maxBots": 2, + "desirability": 15, + "name": "Tartowers", + "objectives" : [ + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 200, + "maxRunDistance": 7, + "steps": [ + { + "position" : { + "x": 190.39357, + "y": 16.1961327, + "z": 133.300613 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 200, + "maxRunDistance": 7, + "steps": [ + { + "position" : { + "x": 197.576, + "y": 16.1961327, + "z": 136.316 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 200, + "steps": [ + { + "position" : { + "x": 200.4913, + "y": 16.1608715, + "z": 124.940079 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 200, + "steps": [ + { + "position" : { + "x": 185.428925, + "y": 16.1950359, + "z": 132.098 + } + } + ] + } + ] + }, + { + "repeatable": false, + "minLevel": 0, + "maxLevel": 99, + "maxBots": 2, + "desirability": 15, + "name": "Stairs Near Tartowers", + "objectives" : [ + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 200, + "steps": [ + { + "position" : { + "x": 185.545776, + "y": 21.4085789, + "z": 95.54192 + } + }, + { + "position" : { + "x": 185.4882, + "y": 22.9085789, + "z": 103.856033 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 200, + "steps": [ + { + "position" : { + "x": 175.4236, + "y": 24.4085751, + "z": 113.520859 + } + }, + { + "position" : { + "x": 172.015121, + "y": 24.4085732, + "z": 106.127434 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 200, + "steps": [ + { + "position" : { + "x": 175.536514, + "y": 24.40857, + "z": 85.74908 + } + } + ] + } + ] + }, + { + "repeatable": false, + "minLevel": 0, + "maxLevel": 99, + "maxBots": 2, + "desirability": 10, + "name": "Oasis", + "objectives" : [ + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 200, + "maxRunDistance": 9, + "steps": [ + { + "position" : { + "x": 124.550941, + "y": 24.39658, + "z": 100.2086 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 200, + "maxRunDistance": 12, + "steps": [ + { + "position" : { + "x": 120.003723, + "y": 24.3965816, + "z": 108.389511 + } + } + ] + } + ] + }, + { + "repeatable": true, + "isSniping": true, + "minLevel": 0, + "maxLevel": 99, + "maxBots": 2, + "maxBotsInGroup": 1, + "desirability": 15, + "pmcsOnly": true, + "name": "Oasis Sniping", + "forbiddenWeapons" : [ "pistol", "shotgun" ], + "objectives" : [ + { + "repeatable": true, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 500, + "maxRunDistance": 5, + "lootAfterCompleting": "Inhibit", + "steps": [ + { + "waitTimeAfterCompleting": 1, + "position" : { + "x": 124.384933, + "y": 28.89731, + "z": 88.80447 + } + }, + { + "stepType" : "Snipe", + "minElapsedTime": { + "min": 30, + "max": 120 + }, + "position" : { + "x": 124.384933, + "y": 28.89731, + "z": 88.80447 + }, + "lookToPosition" : { + "x": 172.939041, + "y": 16.0176239, + "z": 54.8640976 + } + } + ] + }, + { + "repeatable": true, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 500, + "maxRunDistance": 5, + "lootAfterCompleting": "Inhibit", + "steps": [ + { + "waitTimeAfterCompleting": 1, + "position" : { + "x": 101.705696, + "y": 28.8973122, + "z": 109.154884 + } + }, + { + "stepType" : "Snipe", + "minElapsedTime": { + "min": 30, + "max": 120 + }, + "position" : { + "x": 101.705696, + "y": 28.8973122, + "z": 109.154884 + }, + "lookToPosition" : { + "x": 97.67853, + "y": 24.4085712, + "z": 95.8890152 + } + } + ] + }, + { + "repeatable": true, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 500, + "maxRunDistance": 5, + "lootAfterCompleting": "Inhibit", + "steps": [ + { + "waitTimeAfterCompleting": 1, + "position" : { + "x": 102.555725, + "y": 28.8973122, + "z": 113.667938 + } + }, + { + "stepType" : "Snipe", + "minElapsedTime": { + "min": 45, + "max": 180 + }, + "position" : { + "x": 102.555725, + "y": 28.8973122, + "z": 113.667938 + }, + "lookToPosition" : { + "x": 34.5086861, + "y": 22.5970783, + "z": 108.826363 + } + } + ] + } + ] + }, + { + "repeatable": false, + "minLevel": 0, + "maxLevel": 99, + "maxBots": 3, + "desirability": 30, + "name": "Olive Restaurant", + "objectives" : [ + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 500, + "maxRunDistance": 21, + "steps": [ + { + "position" : { + "x": 120.094452, + "y": 24.3961945, + "z": 128.730545 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 500, + "maxRunDistance": 20, + "steps": [ + { + "position" : { + "x": 118.764992, + "y": 24.3961983, + "z": 139.568481 + } + }, + { + "position" : { + "x": 122.411118, + "y": 24.3961983, + "z": 142.088531 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 500, + "maxRunDistance": 8, + "steps": [ + { + "position" : { + "x": 107.864975, + "y": 24.59296, + "z": 154.445038 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 500, + "maxRunDistance": 21, + "steps": [ + { + "position" : { + "x": 121.375343, + "y": 24.3950748, + "z": 148.943024 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 500, + "maxRunDistance": 12, + "steps": [ + { + "position" : { + "x": 110.481361, + "y": 29.1045036, + "z": 161.34967 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 500, + "maxRunDistance": 8, + "steps": [ + { + "position" : { + "x": 110.302933, + "y": 27.6775169, + "z": 174.842255 + } + } + ] + } + ] + }, + { + "repeatable": true, + "isSniping": true, + "minLevel": 0, + "maxLevel": 99, + "maxBots": 2, + "maxBotsInGroup": 1, + "desirability": 10, + "pmcsOnly": true, + "name": "Olive Restaurant Sniping", + "forbiddenWeapons" : [ "pistol", "shotgun" ], + "objectives" : [ + { + "repeatable": true, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 500, + "maxRunDistance": 5, + "lootAfterCompleting": "Inhibit", + "steps": [ + { + "waitTimeAfterCompleting": 1, + "position" : { + "x": 101.404861, + "y": 28.91094, + "z": 141.688477 + } + }, + { + "stepType" : "Snipe", + "minElapsedTime": { + "min": 30, + "max": 120 + }, + "position" : { + "x": 101.404861, + "y": 28.91094, + "z": 141.688477 + }, + "lookToPosition" : { + "x": 73.65049, + "y": 22.5970783, + "z": 112.199852 + } + } + ] + } + ] + }, + { + "repeatable": false, + "minLevel": 0, + "maxLevel": 99, + "maxBots": 3, + "desirability": 30, + "name": "Kyshperski", + "objectives" : [ + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 500, + "maxRunDistance": 10, + "steps": [ + { + "position" : { + "x": 129.111145, + "y": 23.16083, + "z": 191.764709 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 500, + "maxRunDistance": 17, + "steps": [ + { + "position" : { + "x": 128.577316, + "y": 23.1608257, + "z": 183.940491 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 500, + "maxRunDistance": 18, + "steps": [ + { + "position" : { + "x": 119.820549, + "y": 23.1608257, + "z": 183.473984 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 500, + "maxRunDistance": 10, + "steps": [ + { + "position" : { + "x": 118.992844, + "y": 23.1608315, + "z": 191.803589 + } + }, + { + "position" : { + "x": 121.433594, + "y": 23.1608315, + "z": 197.084686 + } + } + ] + } + ] + }, + { + "repeatable": false, + "minLevel": 0, + "maxLevel": 99, + "maxBots": 2, + "desirability": 10, + "name": "M Showroom", + "objectives" : [ + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 200, + "maxRunDistance": 5, + "steps": [ + { + "position" : { + "x": 96.0486755, + "y": 22.7900028, + "z": 225.030655 + } + } + ] + } + ] + }, + { + "repeatable": true, + "isSniping": true, + "minLevel": 0, + "maxLevel": 99, + "maxBots": 2, + "maxBotsInGroup": 1, + "desirability": 10, + "pmcsOnly": true, + "name": "M Showroom Sniping", + "forbiddenWeapons" : [ "pistol", "shotgun" ], + "objectives" : [ + { + "repeatable": true, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 500, + "maxRunDistance": 5, + "lootAfterCompleting": "Inhibit", + "steps": [ + { + "waitTimeAfterCompleting": 1, + "position" : { + "x": 94.31352, + "y": 27.2899971, + "z": 217.906464 + } + }, + { + "stepType" : "Snipe", + "minElapsedTime": { + "min": 30, + "max": 120 + }, + "position" : { + "x": 94.31352, + "y": 27.2899971, + "z": 217.906464 + }, + "lookToPosition" : { + "x": 84.97809, + "y": 22.5970783, + "z": 159.479187 + } + } + ] + }, + { + "repeatable": true, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 500, + "maxRunDistance": 5, + "lootAfterCompleting": "Inhibit", + "steps": [ + { + "waitTimeAfterCompleting": 1, + "position" : { + "x": 93.23424, + "y": 27.29, + "z": 222.654739 + } + }, + { + "stepType" : "Snipe", + "minElapsedTime": { + "min": 30, + "max": 120 + }, + "position" : { + "x": 93.23424, + "y": 27.29, + "z": 222.654739 + }, + "lookToPosition" : { + "x": 54.0439568, + "y": 22.7690754, + "z": 274.977142 + } + } + ] + } + ] + }, + { + "repeatable": false, + "minLevel": 0, + "maxLevel": 99, + "maxBots": 3, + "desirability": 40, + "name": "Capital Insight", + "objectives" : [ + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 500, + "maxRunDistance": 10, + "steps": [ + { + "position" : { + "x": 113.642586, + "y": 23.3942337, + "z": 280.420349 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 500, + "maxRunDistance": 26, + "steps": [ + { + "position" : { + "x": 122.236015, + "y": 23.3930855, + "z": 294.789276 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 500, + "maxRunDistance": 20, + "steps": [ + { + "position" : { + "x": 117.893967, + "y": 28.1390457, + "z": 290.4059 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 500, + "maxRunDistance": 10, + "steps": [ + { + "position" : { + "x": 111.513435, + "y": 32.80912, + "z": 269.035553 + } + }, + { + "position" : { + "x": 107.8997, + "y": 32.80911, + "z": 261.117 + } + }, + { + "position" : { + "x": 103.949936, + "y": 32.80911, + "z": 266.8522 + } + }, + { + "position" : { + "x": 104.1424, + "y": 32.8091049, + "z": 260.931274 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 500, + "maxRunDistance": 10, + "steps": [ + { + "position" : { + "x": 105.946388, + "y": 32.8091621, + "z": 280.9195 + } + }, + { + "position" : { + "x": 110.644089, + "y": 32.80915, + "z": 276.1103 + } + }, + { + "position" : { + "x": 111.093445, + "y": 32.8091354, + "z": 273.559662 + } + }, + { + "position" : { + "x": 106.54451, + "y": 32.8091164, + "z": 271.742523 + } + }, + { + "position" : { + "x": 100.800659, + "y": 32.8091278, + "z": 276.632 + } + } + ] + } + ] + }, + { + "repeatable": true, + "isSniping": true, + "minLevel": 0, + "maxLevel": 99, + "maxBots": 2, + "maxBotsInGroup": 1, + "desirability": 20, + "name": "Capital Insight Sniping", + "forbiddenWeapons" : [ "pistol", "shotgun" ], + "waypoints" : [ + { + "x": 124.025024, + "y": 31.3263378, + "z": 257.744019 + } + ], + "objectives" : [ + { + "repeatable": true, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 500, + "maxRunDistance": 10, + "lootAfterCompleting": "Inhibit", + "steps": [ + { + "waitTimeAfterCompleting": 1, + "position" : { + "x": 98.83512, + "y": 33.0778351, + "z": 278.264923 + } + }, + { + "stepType" : "Snipe", + "minElapsedTime": { + "min": 45, + "max": 180 + }, + "position" : { + "x": 98.83512, + "y": 33.0778351, + "z": 278.264923 + }, + "lookToPosition" : { + "x": 79.3451462, + "y": 22.5970783, + "z": 202.0262 + } + } + ] + }, + { + "repeatable": true, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 500, + "maxRunDistance": 10, + "lootAfterCompleting": "Inhibit", + "steps": [ + { + "waitTimeAfterCompleting": 1, + "position" : { + "x": 105.327049, + "y": 32.80911, + "z": 263.363373 + } + }, + { + "stepType" : "Snipe", + "minElapsedTime": { + "min": 30, + "max": 120 + }, + "position" : { + "x": 105.327049, + "y": 32.80911, + "z": 263.363373 + }, + "lookToPosition" : { + "x": 13.66678, + "y": 22.5970783, + "z": 295.159668 + } + } + ] + } + ] + }, + { + "repeatable": false, + "minLevel": 0, + "maxLevel": 99, + "maxBots": 2, + "desirability": 20, + "name": "Safe outside of Giovanni Teducci", + "objectives" : [ + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 300, + "steps": [ + { + "position" : { + "x": 71.44589, + "y": 22.7307243, + "z": 311.570068 + } + } + ] + } + ] + }, + { + "repeatable": false, + "minLevel": 0, + "maxLevel": 99, + "maxBots": 2, + "desirability": 10, + "name": "Nakatani Tower", + "objectives" : [ + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 300, + "maxRunDistance": 5, + "steps": [ + { + "position" : { + "x": 4.96957254, + "y": 22.7389145, + "z": 332.739258 + } + } + ] + } + ] + }, + { + "repeatable": true, + "isCamping": true, + "minLevel": 0, + "maxLevel": 99, + "maxBots": 2, + "maxBotsInGroup": 1, + "minRaidET": 400, + "desirability": 10, + "name": "Nakatani Tower Camping", + "forbiddenWeapons" : [ "sniperRifle" ], + "objectives" : [ + { + "repeatable": true, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 500, + "maxRunDistance": 10, + "lootAfterCompleting": "Inhibit", + "steps": [ + { + "waitTimeAfterCompleting": 1, + "position" : { + "x": -9.080297, + "y": 22.73934, + "z": 326.0294 + } + }, + { + "stepType" : "Ambush", + "minElapsedTime": { + "min": 45, + "max": 180 + }, + "position" : { + "x": -9.080297, + "y": 22.73934, + "z": 326.0294 + }, + "lookToPosition" : { + "x": -8.473783, + "y": 22.7383156, + "z": 330.2181 + } + } + ] + } + ] + }, + { + "repeatable": false, + "minLevel": 0, + "maxLevel": 99, + "maxBots": 3, + "desirability": 25, + "name": "Tarbank", + "objectives" : [ + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 500, + "maxRunDistance": 8, + "steps": [ + { + "position" : { + "x": 55.48233, + "y": 23.43879, + "z": 148.3177 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 500, + "maxRunDistance": 7, + "steps": [ + { + "position" : { + "x": 54.82034, + "y": 23.41047, + "z": 141.846954 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 500, + "maxRunDistance": 25, + "steps": [ + { + "position" : { + "x": 10.1964226, + "y": 23.4104671, + "z": 159.483658 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 500, + "maxRunDistance": 16, + "steps": [ + { + "position" : { + "x": 48.4402657, + "y": 23.41047, + "z": 156.051743 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 500, + "maxRunDistance": 6, + "steps": [ + { + "position" : { + "x": 57.88277, + "y": 23.41047, + "z": 171.327148 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 500, + "maxRunDistance": 8, + "steps": [ + { + "position" : { + "x": 55.6842537, + "y": 23.41047, + "z": 155.45163 + } + } + ] + } + ] + }, + { + "repeatable": false, + "minLevel": 0, + "maxLevel": 99, + "maxBots": 3, + "desirability": 40, + "name": "Tarbank Upstairs", + "objectives" : [ + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 500, + "maxRunDistance": 9, + "steps": [ + { + "position" : { + "x": 38.1925621, + "y": 30.8649254, + "z": 138.3057 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 500, + "maxRunDistance": 18, + "steps": [ + { + "position" : { + "x": 48.321228, + "y": 30.86673, + "z": 158.183426 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 500, + "maxRunDistance": 9, + "steps": [ + { + "position" : { + "x": 50.75913, + "y": 30.8667278, + "z": 135.975449 + } + }, + { + "position" : { + "x": 50.7349548, + "y": 30.8667278, + "z": 128.986908 + } + }, + { + "position" : { + "x": 61.4709625, + "y": 30.8667278, + "z": 133.155792 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 500, + "maxRunDistance": 9, + "steps": [ + { + "position" : { + "x": 58.5492439, + "y": 30.8667278, + "z": 149.351563 + } + }, + { + "position" : { + "x": 61.5122681, + "y": 30.8667278, + "z": 149.262115 + } + }, + { + "position" : { + "x": 61.04741, + "y": 30.8667278, + "z": 141.646317 + } + } + ] + } + ] + }, + { + "repeatable": true, + "isSniping": true, + "minLevel": 0, + "maxLevel": 99, + "maxBots": 2, + "maxBotsInGroup": 1, + "desirability": 10, + "pmcsOnly": true, + "name": "Tarbank Upstairs Sniping", + "forbiddenWeapons" : [ "pistol", "shotgun" ], + "objectives" : [ + { + "repeatable": true, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 500, + "maxRunDistance": 9, + "lootAfterCompleting": "Inhibit", + "steps": [ + { + "waitTimeAfterCompleting": 1, + "position" : { + "x": 56.9544029, + "y": 31.0402737, + "z": 128.97757 + } + }, + { + "stepType" : "Snipe", + "minElapsedTime": { + "min": 30, + "max": 120 + }, + "position" : { + "x": 56.9544029, + "y": 31.0402737, + "z": 128.97757 + }, + "lookToPosition" : { + "x": 60.1723022, + "y": 22.596323, + "z": 31.3727226 + } + } + ] + }, + { + "repeatable": true, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 500, + "maxRunDistance": 9, + "lootAfterCompleting": "Inhibit", + "steps": [ + { + "waitTimeAfterCompleting": 1, + "position" : { + "x": 62.16917, + "y": 30.8667278, + "z": 141.584869 + } + }, + { + "stepType" : "Snipe", + "minElapsedTime": { + "min": 30, + "max": 120 + }, + "position" : { + "x": 62.16917, + "y": 30.8667278, + "z": 141.584869 + }, + "lookToPosition" : { + "x": 96.62023, + "y": 24.4085732, + "z": 100.850021 + } + } + ] + } + ] + }, + { + "repeatable": false, + "minLevel": 0, + "maxLevel": 99, + "maxBots": 2, + "desirability": 10, + "name": "Supplies Near VEX", + "objectives" : [ + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 300, + "steps": [ + { + "position" : { + "x": -20.3015461, + "y": 23.81588, + "z": 93.41309 + } + } + ] + } + ] + }, + { + "repeatable": true, + "isCamping": true, + "minLevel": 0, + "maxLevel": 99, + "maxBots": 2, + "maxBotsInGroup": 1, + "minRaidET": 400, + "desirability": 10, + "name": "VEX Camping", + "forbiddenWeapons" : [ "sniperRifle" ], + "objectives" : [ + { + "repeatable": true, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 500, + "lootAfterCompleting": "Inhibit", + "steps": [ + { + "waitTimeAfterCompleting": 1, + "position" : { + "x": -6.500309, + "y": 23.4068279, + "z": 132.896835 + } + }, + { + "stepType" : "Ambush", + "minElapsedTime": { + "min": 45, + "max": 180 + }, + "position" : { + "x": -6.500309, + "y": 23.4068279, + "z": 132.896835 + }, + "lookToPosition" : { + "x": -17.6653481, + "y": 22.5970783, + "z": 115.382309 + } + } + ] + } + ] + }, + { + "repeatable": false, + "minLevel": 0, + "maxLevel": 99, + "maxBots": 2, + "desirability": 10, + "name": "TerraGroup Lawn", + "objectives" : [ + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 200, + "steps": [ + { + "position" : { + "x": 16.906311, + "y": 24.15258, + "z": 72.2639847 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 200, + "steps": [ + { + "position" : { + "x": 42.3679771, + "y": 23.8157, + "z": -4.727362 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 200, + "steps": [ + { + "position" : { + "x": 34.7535362, + "y": 23.8154354, + "z": 36.57053 + } + } + ] + } + ] + }, + { + "repeatable": false, + "minLevel": 0, + "maxLevel": 99, + "maxBots": 2, + "desirability": 20, + "name": "TerraGroup Garage", + "objectives" : [ + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 300, + "maxRunDistance": 3, + "steps": [ + { + "position" : { + "x": -14.9319029, + "y": 23.86011, + "z": -39.79584 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 300, + "maxRunDistance": 3, + "steps": [ + { + "position" : { + "x": -15.0195255, + "y": 23.8158321, + "z": -27.7923088 + } + }, + { + "position" : { + "x": -22.4904385, + "y": 23.815731, + "z": -22.9852123 + } + }, + { + "position" : { + "x": -26.3561287, + "y": 24.1810627, + "z": -26.91148 + } + } + ] + } + ] + }, + { + "repeatable": false, + "minLevel": 0, + "maxLevel": 99, + "maxBots": 2, + "desirability": 20, + "name": "TerraGroup Office", + "objectives" : [ + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 500, + "steps": [ + { + "position" : { + "x": -10.1596451, + "y": 24.17935, + "z": 31.54771 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 500, + "maxRunDistance": 22, + "steps": [ + { + "position" : { + "x": -32.108902, + "y": 24.1793537, + "z": 26.0656338 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 500, + "maxRunDistance": 33, + "steps": [ + { + "position" : { + "x": -41.80921, + "y": 24.1793537, + "z": 23.2063637 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 500, + "maxRunDistance": 39, + "steps": [ + { + "position" : { + "x": -51.34287, + "y": 24.1793537, + "z": 43.7349625 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 500, + "maxRunDistance": 50, + "steps": [ + { + "position" : { + "x": -59.5476952, + "y": 24.2161388, + "z": 28.3822746 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 500, + "maxRunDistance": 17, + "steps": [ + { + "position" : { + "x": -27.2428532, + "y": 24.1793537, + "z": 56.88943 + } + } + ] + } + ] + }, + { + "repeatable": false, + "minLevel": 0, + "maxLevel": 99, + "maxBots": 3, + "desirability": 30, + "name": "TerraGroup Office Upstairs", + "waypoints" : [ + { + "x": -40.541584, + "y": 29.6709938, + "z": 56.053112 + } + ], + "objectives" : [ + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 500, + "maxRunDistance": 33, + "steps": [ + { + "position" : { + "x": -44.12124, + "y": 29.6709957, + "z": 59.059597 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 500, + "maxRunDistance": 17, + "steps": [ + { + "position" : { + "x": -26.84891, + "y": 29.67099, + "z": 55.365303 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 500, + "maxRunDistance": 6, + "steps": [ + { + "position" : { + "x": -12.3301678, + "y": 29.6996956, + "z": 65.2422256 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 500, + "maxRunDistance": 8, + "steps": [ + { + "position" : { + "x": -20.8411789, + "y": 29.6710052, + "z": 74.9792 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 500, + "maxRunDistance": 7, + "steps": [ + { + "position" : { + "x": -23.3120861, + "y": 29.6710072, + "z": 84.47814 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 500, + "maxRunDistance": 7, + "steps": [ + { + "position" : { + "x": -11.4437027, + "y": 29.6714783, + "z": 56.4455147 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 500, + "maxRunDistance": 9, + "steps": [ + { + "position" : { + "x": -17.8279419, + "y": 29.6714783, + "z": 53.4957848 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 500, + "maxRunDistance": 8, + "steps": [ + { + "position" : { + "x": -17.53707, + "y": 29.6714783, + "z": 46.1114922 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 500, + "maxRunDistance": 7, + "steps": [ + { + "position" : { + "x": -14.1333857, + "y": 29.6714535, + "z": 41.28094 + } + } + ] + } + ] + }, + { + "repeatable": true, + "isSniping": true, + "minLevel": 0, + "maxLevel": 99, + "maxBots": 2, + "maxBotsInGroup": 1, + "desirability": 15, + "name": "TerraGroup Office Upstairs Sniping", + "forbiddenWeapons" : [ "pistol", "shotgun" ], + "waypoints" : [ + { + "x": -40.541584, + "y": 29.6709938, + "z": 56.053112 + } + ], + "objectives" : [ + { + "repeatable": true, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 500, + "maxRunDistance": 6, + "lootAfterCompleting": "Inhibit", + "steps": [ + { + "waitTimeAfterCompleting": 1, + "position" : { + "x": -4.130823, + "y": 29.6710033, + "z": 64.97122 + } + }, + { + "stepType" : "Snipe", + "minElapsedTime": { + "min": 30, + "max": 180 + }, + "position" : { + "x": -4.130823, + "y": 29.6710033, + "z": 64.97122 + }, + "lookToPosition" : { + "x": 98.38838, + "y": 22.5970783, + "z": 65.62153 + } + } + ] + }, + { + "repeatable": true, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 500, + "maxRunDistance": 6, + "lootAfterCompleting": "Inhibit", + "steps": [ + { + "waitTimeAfterCompleting": 1, + "position" : { + "x": -20.292757, + "y": 29.6710072, + "z": 90.44623 + } + }, + { + "stepType" : "Snipe", + "minElapsedTime": { + "min": 30, + "max": 180 + }, + "position" : { + "x": -20.292757, + "y": 29.6710072, + "z": 90.44623 + }, + "lookToPosition" : { + "x": 79.51354, + "y": 22.5970783, + "z": 115.00383 + } + } + ] + } + ] + }, + { + "repeatable": true, + "isCamping": true, + "minLevel": 0, + "maxLevel": 99, + "maxBots": 2, + "maxBotsInGroup": 1, + "desirability": 15, + "pmcsOnly": true, + "name": "TerraGroup Office Quest Room Camping", + "forbiddenWeapons" : [ "sniperRifle" ], + "waypoints" : [ + { + "x": -40.541584, + "y": 29.6709938, + "z": 56.053112 + } + ], + "objectives" : [ + { + "repeatable": true, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 500, + "maxRunDistance": 6, + "lootAfterCompleting": "Inhibit", + "steps": [ + { + "waitTimeAfterCompleting": 1, + "position" : { + "x": -10.8554859, + "y": 29.671463, + "z": 47.4867439 + } + }, + { + "stepType" : "Ambush", + "minElapsedTime": { + "min": 45, + "max": 180 + }, + "position" : { + "x": -10.8554859, + "y": 29.671463, + "z": 47.4867439 + }, + "lookToPosition" : { + "x": -17.2306175, + "y": 29.6714783, + "z": 56.959095 + } + } + ] + } + ] + }, + { + "repeatable": true, + "isCamping": true, + "minLevel": 0, + "maxLevel": 99, + "maxBots": 2, + "maxBotsInGroup": 1, + "desirability": 15, + "name": "TerraGroup Office Camping", + "forbiddenWeapons" : [ "sniperRifle" ], + "objectives" : [ + { + "repeatable": true, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 500, + "maxRunDistance": 13, + "lootAfterCompleting": "Inhibit", + "steps": [ + { + "waitTimeAfterCompleting": 1, + "position" : { + "x": -25.35518, + "y": 24.1793537, + "z": 48.9441833 + } + }, + { + "stepType" : "Ambush", + "minElapsedTime": { + "min": 45, + "max": 180 + }, + "position" : { + "x": -25.35518, + "y": 24.1793537, + "z": 48.9441833 + }, + "lookToPosition" : { + "x": -24.865366, + "y": 24.1793537, + "z": 31.2225685 + } + } + ] + } + ] + }, + { + "repeatable": true, + "isCamping": true, + "minLevel": 0, + "maxLevel": 99, + "maxBots": 2, + "maxBotsInGroup": 1, + "desirability": 15, + "name": "TerraGroup Office Upstairs Camping", + "forbiddenWeapons" : [ "sniperRifle" ], + "waypoints" : [ + { + "x": -40.541584, + "y": 29.6709938, + "z": 56.053112 + } + ], + "objectives" : [ + { + "repeatable": true, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 500, + "maxRunDistance": 9, + "lootAfterCompleting": "Inhibit", + "steps": [ + { + "waitTimeAfterCompleting": 1, + "position" : { + "x": -19.7170582, + "y": 29.67101, + "z": 69.4867 + } + }, + { + "stepType" : "Ambush", + "minElapsedTime": { + "min": 45, + "max": 180 + }, + "position" : { + "x": -19.7170582, + "y": 29.67101, + "z": 69.4867 + }, + "lookToPosition" : { + "x": -17.9040451, + "y": 29.6710377, + "z": 60.5756721 + } + } + ] + }, + { + "repeatable": true, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 500, + "maxRunDistance": 22, + "lootAfterCompleting": "Inhibit", + "steps": [ + { + "waitTimeAfterCompleting": 1, + "position" : { + "x": -32.0340347, + "y": 29.6709938, + "z": 56.03422 + } + }, + { + "stepType" : "Ambush", + "minElapsedTime": { + "min": 45, + "max": 180 + }, + "position" : { + "x": -32.0340347, + "y": 29.6709938, + "z": 56.03422 + }, + "lookToPosition" : { + "x": -40.77839, + "y": 29.6709938, + "z": 53.0022125 + } + } + ] + } + ] + }, + { + "repeatable": false, + "minLevel": 0, + "maxLevel": 99, + "maxBots": 2, + "desirability": 20, + "name": "Underground North", + "objectives" : [ + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 300, + "steps": [ + { + "position" : { + "x": 55.6714478, + "y": 13.9418392, + "z": -29.1467381 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 300, + "steps": [ + { + "position" : { + "x": 77.4694061, + "y": 13.9693232, + "z": -32.66117 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 300, + "steps": [ + { + "position" : { + "x": 87.33883, + "y": 14.0978947, + "z": -21.7858887 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 300, + "maxRunDistance": 3, + "steps": [ + { + "position" : { + "x": 96.41335, + "y": 13.9439812, + "z": -6.35317659 + } + }, + { + "position" : { + "x": 100.936844, + "y": 14.6940727, + "z": -7.477905 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 300, + "maxRunDistance": 9, + "steps": [ + { + "position" : { + "x": 102.768585, + "y": 14.0990772, + "z": 3.76116157 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 300, + "steps": [ + { + "position" : { + "x": 93.0439148, + "y": 13.9439716, + "z": 15.5140181 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 300, + "steps": [ + { + "position" : { + "x": 67.95334, + "y": 13.9605808, + "z": 24.4858589 + } + }, + { + "position" : { + "x": 65.3907547, + "y": 13.9605808, + "z": 26.6148129 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 300, + "maxRunDistance": 3, + "steps": [ + { + "position" : { + "x": 96.28356, + "y": 13.9439812, + "z": 41.36817 + } + } + ] + } + ] + }, + { + "repeatable": false, + "minLevel": 0, + "maxLevel": 99, + "maxBots": 2, + "desirability": 10, + "name": "Underground Entrance", + "objectives" : [ + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 200, + "steps": [ + { + "position" : { + "x": 98.5235443, + "y": 14.1010294, + "z": 53.9608345 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 200, + "steps": [ + { + "position" : { + "x": 104.107056, + "y": 14.0745573, + "z": 69.84481 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 300, + "steps": [ + { + "position" : { + "x": 130.692474, + "y": 20.2392139, + "z": 70.87822 + } + } + ] + } + ] + }, + { + "repeatable": false, + "minLevel": 0, + "maxLevel": 99, + "maxBots": 3, + "desirability": 25, + "name": "Underground Utility Room", + "objectives" : [ + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 500, + "maxRunDistance": 3, + "steps": [ + { + "position" : { + "x": 109.225586, + "y": 12.4136572, + "z": 50.14779 + } + }, + { + "position" : { + "x": 105.188919, + "y": 12.4141121, + "z": 47.08673 + } + }, + { + "position" : { + "x": 103.045837, + "y": 12.4141121, + "z": 49.5498352 + } + }, + { + "position" : { + "x": 101.540321, + "y": 12.4141121, + "z": 46.91429 + } + } + ] + } + ] + }, + { + "repeatable": false, + "minLevel": 0, + "maxLevel": 99, + "maxBots": 2, + "desirability": 20, + "name": "Underground South", + "objectives" : [ + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 300, + "steps": [ + { + "position" : { + "x": 74.15664, + "y": 14.0978041, + "z": 125.574028 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 300, + "steps": [ + { + "position" : { + "x": 92.8373947, + "y": 14.0977993, + "z": 142.331009 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 300, + "maxRunDistance": 3, + "steps": [ + { + "position" : { + "x": 68.2226639, + "y": 13.9406805, + "z": 162.789734 + } + }, + { + "position" : { + "x": 67.77592, + "y": 13.9406805, + "z": 158.244614 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 300, + "steps": [ + { + "position" : { + "x": 81.90137, + "y": 14.169383, + "z": 179.991714 + } + } + ] + } + ] + }, + { + "repeatable": true, + "isCamping": true, + "minLevel": 0, + "maxLevel": 99, + "maxBots": 2, + "maxBotsInGroup": 1, + "desirability": 15, + "name": "Tarbank Stairwell Camping", + "forbiddenWeapons" : [ "sniperRifle" ], + "objectives" : [ + { + "repeatable": true, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 500, + "maxRunDistance": 13, + "lootAfterCompleting": "Inhibit", + "steps": [ + { + "waitTimeAfterCompleting": 1, + "position" : { + "x": 50.18682, + "y": 26.3637, + "z": 149.469254 + } + }, + { + "stepType" : "Ambush", + "minElapsedTime": { + "min": 45, + "max": 180 + }, + "position" : { + "x": 50.18682, + "y": 26.3637, + "z": 149.469254 + }, + "lookToPosition" : { + "x": 44.93504, + "y": 24.8662, + "z": 151.547562 + } + } + ] + } + ] + }, + { + "repeatable": true, + "isCamping": true, + "minLevel": 0, + "maxLevel": 99, + "maxBots": 2, + "maxBotsInGroup": 1, + "desirability": 15, + "name": "Capital Insight Stairwell Camping", + "forbiddenWeapons" : [ "sniperRifle" ], + "objectives" : [ + { + "repeatable": true, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 500, + "maxRunDistance": 29, + "lootAfterCompleting": "Inhibit", + "steps": [ + { + "waitTimeAfterCompleting": 1, + "position" : { + "x": 134.72644, + "y": 32.8086967, + "z": 269.9746 + } + }, + { + "stepType" : "Ambush", + "minElapsedTime": { + "min": 45, + "max": 180 + }, + "position" : { + "x": 134.72644, + "y": 32.8086967, + "z": 269.9746 + }, + "lookToPosition" : { + "x": 129.681458, + "y": 29.69892, + "z": 257.3434 + } + } + ] + } + ] + }, + { + "repeatable": true, + "isCamping": true, + "minLevel": 0, + "maxLevel": 99, + "maxBots": 2, + "maxBotsInGroup": 1, + "desirability": 15, + "name": "Capital Insight Cafe Camping", + "forbiddenWeapons" : [ "sniperRifle" ], + "objectives" : [ + { + "repeatable": true, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 500, + "maxRunDistance": 20, + "lootAfterCompleting": "Inhibit", + "steps": [ + { + "waitTimeAfterCompleting": 1, + "position" : { + "x": 117.332855, + "y": 32.80909, + "z": 289.0309 + } + }, + { + "stepType" : "Ambush", + "minElapsedTime": { + "min": 45, + "max": 180 + }, + "position" : { + "x": 117.332855, + "y": 32.80909, + "z": 289.0309 + }, + "lookToPosition" : { + "x": 118.727158, + "y": 32.80909, + "z": 268.060852 + } + } + ] + } + ] + }, + { + "repeatable": true, + "isCamping": true, + "minLevel": 0, + "maxLevel": 99, + "maxBots": 2, + "maxBotsInGroup": 1, + "desirability": 15, + "name": "Capital Insight Quest Room Camping", + "forbiddenWeapons" : [ "sniperRifle" ], + "objectives" : [ + { + "repeatable": true, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 500, + "maxRunDistance": 11, + "lootAfterCompleting": "Inhibit", + "steps": [ + { + "waitTimeAfterCompleting": 1, + "position" : { + "x": 110.526047, + "y": 32.80914, + "z": 273.995239 + } + }, + { + "stepType" : "Ambush", + "minElapsedTime": { + "min": 45, + "max": 180 + }, + "position" : { + "x": 110.526047, + "y": 32.80914, + "z": 273.995239 + }, + "lookToPosition" : { + "x": 110.844894, + "y": 32.80909, + "z": 281.7187 + } + } + ] + } + ] + } +] \ No newline at end of file diff --git a/BepInEx/plugins/DanW-SPTQuestingBots/quests/standard/sandbox_high.json b/BepInEx/plugins/DanW-SPTQuestingBots/quests/standard/sandbox_high.json new file mode 100644 index 0000000..6a22490 --- /dev/null +++ b/BepInEx/plugins/DanW-SPTQuestingBots/quests/standard/sandbox_high.json @@ -0,0 +1,2703 @@ +[ + { + "repeatable": false, + "minLevel": 0, + "maxLevel": 99, + "maxBots": 2, + "desirability": 20, + "name": "Emercom Checkpoint", + "objectives" : [ + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 300, + "steps": [ + { + "position" : { + "x": 153.467, + "y": 23.1232815, + "z": -97.63334 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 300, + "maxRunDistance": 4, + "steps": [ + { + "position" : { + "x": 152.415268, + "y": 22.6699333, + "z": -79.92395 + } + }, + { + "position" : { + "x": 156.706467, + "y": 22.6699333, + "z": -83.02257 + } + } + ] + } + ] + }, + { + "repeatable": false, + "minLevel": 0, + "maxLevel": 99, + "maxBots": 2, + "desirability": 10, + "name": "Mira Avenue Benches", + "objectives" : [ + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 200, + "steps": [ + { + "position" : { + "x": 198.462112, + "y": 16.286, + "z": -47.5789948 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 200, + "steps": [ + { + "position" : { + "x": 199.561691, + "y": 16.286, + "z": -14.4417791 + } + } + ] + } + ] + }, + { + "repeatable": true, + "isCamping": true, + "minLevel": 0, + "maxLevel": 99, + "maxBots": 2, + "maxBotsInGroup": 1, + "minRaidET": 500, + "desirability": 10, + "name": "Mira Avenue Extract Camping", + "forbiddenWeapons" : [ "sniperRifle" ], + "objectives" : [ + { + "repeatable": true, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 500, + "lootAfterCompleting": "Inhibit", + "steps": [ + { + "waitTimeAfterCompleting": 1, + "position" : { + "x": 184.947708, + "y": 20.4439526, + "z": -49.5665 + } + }, + { + "stepType" : "Snipe", + "minElapsedTime": { + "min": 45, + "max": 180 + }, + "position" : { + "x": 184.947708, + "y": 20.4439526, + "z": -49.5665 + }, + "lookToPosition" : { + "x": 218.630066, + "y": 16.017622, + "z": 10.6597195 + } + } + ] + } + ] + }, + { + "repeatable": false, + "minLevel": 0, + "maxLevel": 99, + "maxBots": 2, + "desirability": 10, + "name": "Skyside Hotel", + "objectives" : [ + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 200, + "maxRunDistance": 9, + "steps": [ + { + "position" : { + "x": 172.2627, + "y": 16.9279957, + "z": 4.292445 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 200, + "maxRunDistance": 5, + "steps": [ + { + "position" : { + "x": 177.878, + "y": 16.928, + "z": 33.54966 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 200, + "maxRunDistance": 23, + "steps": [ + { + "position" : { + "x": 158.257935, + "y": 16.9279957, + "z": 10.1328144 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 200, + "maxRunDistance": 20, + "steps": [ + { + "position" : { + "x": 135.383652, + "y": 16.928, + "z": -12.7923 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 200, + "maxRunDistance": 13, + "steps": [ + { + "position" : { + "x": 115.111435, + "y": 22.7720013, + "z": -4.52473259 + } + } + ] + } + ] + }, + { + "repeatable": false, + "minLevel": 0, + "maxLevel": 99, + "maxBots": 2, + "desirability": 10, + "name": "Skyside Hotel Outside", + "objectives" : [ + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 200, + "steps": [ + { + "position" : { + "x": 179.913254, + "y": 21.940361, + "z": 48.9427834 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 200, + "steps": [ + { + "position" : { + "x": 153.941315, + "y": 22.7683678, + "z": 34.41739 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 200, + "steps": [ + { + "position" : { + "x": 134.762878, + "y": 22.7683678, + "z": 47.301693 + } + } + ] + } + ] + }, + { + "repeatable": false, + "minLevel": 0, + "maxLevel": 99, + "maxBots": 2, + "desirability": 15, + "name": "Tartowers", + "objectives" : [ + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 200, + "maxRunDistance": 7, + "steps": [ + { + "position" : { + "x": 190.39357, + "y": 16.1961327, + "z": 133.300613 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 200, + "maxRunDistance": 7, + "steps": [ + { + "position" : { + "x": 197.576, + "y": 16.1961327, + "z": 136.316 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 200, + "steps": [ + { + "position" : { + "x": 200.4913, + "y": 16.1608715, + "z": 124.940079 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 200, + "steps": [ + { + "position" : { + "x": 185.428925, + "y": 16.1950359, + "z": 132.098 + } + } + ] + } + ] + }, + { + "repeatable": false, + "minLevel": 0, + "maxLevel": 99, + "maxBots": 2, + "desirability": 15, + "name": "Stairs Near Tartowers", + "objectives" : [ + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 200, + "steps": [ + { + "position" : { + "x": 185.545776, + "y": 21.4085789, + "z": 95.54192 + } + }, + { + "position" : { + "x": 185.4882, + "y": 22.9085789, + "z": 103.856033 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 200, + "steps": [ + { + "position" : { + "x": 175.4236, + "y": 24.4085751, + "z": 113.520859 + } + }, + { + "position" : { + "x": 172.015121, + "y": 24.4085732, + "z": 106.127434 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 200, + "steps": [ + { + "position" : { + "x": 175.536514, + "y": 24.40857, + "z": 85.74908 + } + } + ] + } + ] + }, + { + "repeatable": false, + "minLevel": 0, + "maxLevel": 99, + "maxBots": 2, + "desirability": 10, + "name": "Oasis", + "objectives" : [ + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 200, + "maxRunDistance": 9, + "steps": [ + { + "position" : { + "x": 124.550941, + "y": 24.39658, + "z": 100.2086 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 200, + "maxRunDistance": 12, + "steps": [ + { + "position" : { + "x": 120.003723, + "y": 24.3965816, + "z": 108.389511 + } + } + ] + } + ] + }, + { + "repeatable": true, + "isSniping": true, + "minLevel": 0, + "maxLevel": 99, + "maxBots": 2, + "maxBotsInGroup": 1, + "desirability": 15, + "pmcsOnly": true, + "name": "Oasis Sniping", + "forbiddenWeapons" : [ "pistol", "shotgun" ], + "objectives" : [ + { + "repeatable": true, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 500, + "maxRunDistance": 5, + "lootAfterCompleting": "Inhibit", + "steps": [ + { + "waitTimeAfterCompleting": 1, + "position" : { + "x": 124.384933, + "y": 28.89731, + "z": 88.80447 + } + }, + { + "stepType" : "Snipe", + "minElapsedTime": { + "min": 30, + "max": 120 + }, + "position" : { + "x": 124.384933, + "y": 28.89731, + "z": 88.80447 + }, + "lookToPosition" : { + "x": 172.939041, + "y": 16.0176239, + "z": 54.8640976 + } + } + ] + }, + { + "repeatable": true, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 500, + "maxRunDistance": 5, + "lootAfterCompleting": "Inhibit", + "steps": [ + { + "waitTimeAfterCompleting": 1, + "position" : { + "x": 101.705696, + "y": 28.8973122, + "z": 109.154884 + } + }, + { + "stepType" : "Snipe", + "minElapsedTime": { + "min": 30, + "max": 120 + }, + "position" : { + "x": 101.705696, + "y": 28.8973122, + "z": 109.154884 + }, + "lookToPosition" : { + "x": 97.67853, + "y": 24.4085712, + "z": 95.8890152 + } + } + ] + }, + { + "repeatable": true, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 500, + "maxRunDistance": 5, + "lootAfterCompleting": "Inhibit", + "steps": [ + { + "waitTimeAfterCompleting": 1, + "position" : { + "x": 102.555725, + "y": 28.8973122, + "z": 113.667938 + } + }, + { + "stepType" : "Snipe", + "minElapsedTime": { + "min": 45, + "max": 180 + }, + "position" : { + "x": 102.555725, + "y": 28.8973122, + "z": 113.667938 + }, + "lookToPosition" : { + "x": 34.5086861, + "y": 22.5970783, + "z": 108.826363 + } + } + ] + } + ] + }, + { + "repeatable": false, + "minLevel": 0, + "maxLevel": 99, + "maxBots": 3, + "desirability": 30, + "name": "Olive Restaurant", + "objectives" : [ + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 500, + "maxRunDistance": 21, + "steps": [ + { + "position" : { + "x": 120.094452, + "y": 24.3961945, + "z": 128.730545 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 500, + "maxRunDistance": 20, + "steps": [ + { + "position" : { + "x": 118.764992, + "y": 24.3961983, + "z": 139.568481 + } + }, + { + "position" : { + "x": 122.411118, + "y": 24.3961983, + "z": 142.088531 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 500, + "maxRunDistance": 8, + "steps": [ + { + "position" : { + "x": 107.864975, + "y": 24.59296, + "z": 154.445038 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 500, + "maxRunDistance": 21, + "steps": [ + { + "position" : { + "x": 121.375343, + "y": 24.3950748, + "z": 148.943024 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 500, + "maxRunDistance": 12, + "steps": [ + { + "position" : { + "x": 110.481361, + "y": 29.1045036, + "z": 161.34967 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 500, + "maxRunDistance": 8, + "steps": [ + { + "position" : { + "x": 110.302933, + "y": 27.6775169, + "z": 174.842255 + } + } + ] + } + ] + }, + { + "repeatable": true, + "isSniping": true, + "minLevel": 0, + "maxLevel": 99, + "maxBots": 2, + "maxBotsInGroup": 1, + "desirability": 10, + "pmcsOnly": true, + "name": "Olive Restaurant Sniping", + "forbiddenWeapons" : [ "pistol", "shotgun" ], + "objectives" : [ + { + "repeatable": true, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 500, + "maxRunDistance": 5, + "lootAfterCompleting": "Inhibit", + "steps": [ + { + "waitTimeAfterCompleting": 1, + "position" : { + "x": 101.404861, + "y": 28.91094, + "z": 141.688477 + } + }, + { + "stepType" : "Snipe", + "minElapsedTime": { + "min": 30, + "max": 120 + }, + "position" : { + "x": 101.404861, + "y": 28.91094, + "z": 141.688477 + }, + "lookToPosition" : { + "x": 73.65049, + "y": 22.5970783, + "z": 112.199852 + } + } + ] + } + ] + }, + { + "repeatable": false, + "minLevel": 0, + "maxLevel": 99, + "maxBots": 3, + "desirability": 30, + "name": "Kyshperski", + "objectives" : [ + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 500, + "maxRunDistance": 10, + "steps": [ + { + "position" : { + "x": 129.111145, + "y": 23.16083, + "z": 191.764709 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 500, + "maxRunDistance": 17, + "steps": [ + { + "position" : { + "x": 128.577316, + "y": 23.1608257, + "z": 183.940491 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 500, + "maxRunDistance": 18, + "steps": [ + { + "position" : { + "x": 119.820549, + "y": 23.1608257, + "z": 183.473984 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 500, + "maxRunDistance": 10, + "steps": [ + { + "position" : { + "x": 118.992844, + "y": 23.1608315, + "z": 191.803589 + } + }, + { + "position" : { + "x": 121.433594, + "y": 23.1608315, + "z": 197.084686 + } + } + ] + } + ] + }, + { + "repeatable": false, + "minLevel": 0, + "maxLevel": 99, + "maxBots": 2, + "desirability": 10, + "name": "M Showroom", + "objectives" : [ + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 200, + "maxRunDistance": 5, + "steps": [ + { + "position" : { + "x": 96.0486755, + "y": 22.7900028, + "z": 225.030655 + } + } + ] + } + ] + }, + { + "repeatable": true, + "isSniping": true, + "minLevel": 0, + "maxLevel": 99, + "maxBots": 2, + "maxBotsInGroup": 1, + "desirability": 10, + "pmcsOnly": true, + "name": "M Showroom Sniping", + "forbiddenWeapons" : [ "pistol", "shotgun" ], + "objectives" : [ + { + "repeatable": true, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 500, + "maxRunDistance": 5, + "lootAfterCompleting": "Inhibit", + "steps": [ + { + "waitTimeAfterCompleting": 1, + "position" : { + "x": 94.31352, + "y": 27.2899971, + "z": 217.906464 + } + }, + { + "stepType" : "Snipe", + "minElapsedTime": { + "min": 30, + "max": 120 + }, + "position" : { + "x": 94.31352, + "y": 27.2899971, + "z": 217.906464 + }, + "lookToPosition" : { + "x": 84.97809, + "y": 22.5970783, + "z": 159.479187 + } + } + ] + }, + { + "repeatable": true, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 500, + "maxRunDistance": 5, + "lootAfterCompleting": "Inhibit", + "steps": [ + { + "waitTimeAfterCompleting": 1, + "position" : { + "x": 93.23424, + "y": 27.29, + "z": 222.654739 + } + }, + { + "stepType" : "Snipe", + "minElapsedTime": { + "min": 30, + "max": 120 + }, + "position" : { + "x": 93.23424, + "y": 27.29, + "z": 222.654739 + }, + "lookToPosition" : { + "x": 54.0439568, + "y": 22.7690754, + "z": 274.977142 + } + } + ] + } + ] + }, + { + "repeatable": false, + "minLevel": 0, + "maxLevel": 99, + "maxBots": 3, + "desirability": 40, + "name": "Capital Insight", + "objectives" : [ + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 500, + "maxRunDistance": 10, + "steps": [ + { + "position" : { + "x": 113.642586, + "y": 23.3942337, + "z": 280.420349 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 500, + "maxRunDistance": 26, + "steps": [ + { + "position" : { + "x": 122.236015, + "y": 23.3930855, + "z": 294.789276 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 500, + "maxRunDistance": 20, + "steps": [ + { + "position" : { + "x": 117.893967, + "y": 28.1390457, + "z": 290.4059 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 500, + "maxRunDistance": 10, + "steps": [ + { + "position" : { + "x": 111.513435, + "y": 32.80912, + "z": 269.035553 + } + }, + { + "position" : { + "x": 107.8997, + "y": 32.80911, + "z": 261.117 + } + }, + { + "position" : { + "x": 103.949936, + "y": 32.80911, + "z": 266.8522 + } + }, + { + "position" : { + "x": 104.1424, + "y": 32.8091049, + "z": 260.931274 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 500, + "maxRunDistance": 10, + "steps": [ + { + "position" : { + "x": 105.946388, + "y": 32.8091621, + "z": 280.9195 + } + }, + { + "position" : { + "x": 110.644089, + "y": 32.80915, + "z": 276.1103 + } + }, + { + "position" : { + "x": 111.093445, + "y": 32.8091354, + "z": 273.559662 + } + }, + { + "position" : { + "x": 106.54451, + "y": 32.8091164, + "z": 271.742523 + } + }, + { + "position" : { + "x": 100.800659, + "y": 32.8091278, + "z": 276.632 + } + } + ] + } + ] + }, + { + "repeatable": true, + "isSniping": true, + "minLevel": 0, + "maxLevel": 99, + "maxBots": 2, + "maxBotsInGroup": 1, + "desirability": 20, + "name": "Capital Insight Sniping", + "forbiddenWeapons" : [ "pistol", "shotgun" ], + "waypoints" : [ + { + "x": 124.025024, + "y": 31.3263378, + "z": 257.744019 + } + ], + "objectives" : [ + { + "repeatable": true, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 500, + "maxRunDistance": 10, + "lootAfterCompleting": "Inhibit", + "steps": [ + { + "waitTimeAfterCompleting": 1, + "position" : { + "x": 98.83512, + "y": 33.0778351, + "z": 278.264923 + } + }, + { + "stepType" : "Snipe", + "minElapsedTime": { + "min": 45, + "max": 180 + }, + "position" : { + "x": 98.83512, + "y": 33.0778351, + "z": 278.264923 + }, + "lookToPosition" : { + "x": 79.3451462, + "y": 22.5970783, + "z": 202.0262 + } + } + ] + }, + { + "repeatable": true, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 500, + "maxRunDistance": 10, + "lootAfterCompleting": "Inhibit", + "steps": [ + { + "waitTimeAfterCompleting": 1, + "position" : { + "x": 105.327049, + "y": 32.80911, + "z": 263.363373 + } + }, + { + "stepType" : "Snipe", + "minElapsedTime": { + "min": 30, + "max": 120 + }, + "position" : { + "x": 105.327049, + "y": 32.80911, + "z": 263.363373 + }, + "lookToPosition" : { + "x": 13.66678, + "y": 22.5970783, + "z": 295.159668 + } + } + ] + } + ] + }, + { + "repeatable": false, + "minLevel": 0, + "maxLevel": 99, + "maxBots": 2, + "desirability": 20, + "name": "Safe outside of Giovanni Teducci", + "objectives" : [ + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 300, + "steps": [ + { + "position" : { + "x": 71.44589, + "y": 22.7307243, + "z": 311.570068 + } + } + ] + } + ] + }, + { + "repeatable": false, + "minLevel": 0, + "maxLevel": 99, + "maxBots": 2, + "desirability": 10, + "name": "Nakatani Tower", + "objectives" : [ + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 300, + "maxRunDistance": 5, + "steps": [ + { + "position" : { + "x": 4.96957254, + "y": 22.7389145, + "z": 332.739258 + } + } + ] + } + ] + }, + { + "repeatable": true, + "isCamping": true, + "minLevel": 0, + "maxLevel": 99, + "maxBots": 2, + "maxBotsInGroup": 1, + "minRaidET": 400, + "desirability": 10, + "name": "Nakatani Tower Camping", + "forbiddenWeapons" : [ "sniperRifle" ], + "objectives" : [ + { + "repeatable": true, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 500, + "maxRunDistance": 10, + "lootAfterCompleting": "Inhibit", + "steps": [ + { + "waitTimeAfterCompleting": 1, + "position" : { + "x": -9.080297, + "y": 22.73934, + "z": 326.0294 + } + }, + { + "stepType" : "Ambush", + "minElapsedTime": { + "min": 45, + "max": 180 + }, + "position" : { + "x": -9.080297, + "y": 22.73934, + "z": 326.0294 + }, + "lookToPosition" : { + "x": -8.473783, + "y": 22.7383156, + "z": 330.2181 + } + } + ] + } + ] + }, + { + "repeatable": false, + "minLevel": 0, + "maxLevel": 99, + "maxBots": 3, + "desirability": 25, + "name": "Tarbank", + "objectives" : [ + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 500, + "maxRunDistance": 8, + "steps": [ + { + "position" : { + "x": 55.48233, + "y": 23.43879, + "z": 148.3177 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 500, + "maxRunDistance": 7, + "steps": [ + { + "position" : { + "x": 54.82034, + "y": 23.41047, + "z": 141.846954 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 500, + "maxRunDistance": 25, + "steps": [ + { + "position" : { + "x": 10.1964226, + "y": 23.4104671, + "z": 159.483658 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 500, + "maxRunDistance": 16, + "steps": [ + { + "position" : { + "x": 48.4402657, + "y": 23.41047, + "z": 156.051743 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 500, + "maxRunDistance": 6, + "steps": [ + { + "position" : { + "x": 57.88277, + "y": 23.41047, + "z": 171.327148 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 500, + "maxRunDistance": 8, + "steps": [ + { + "position" : { + "x": 55.6842537, + "y": 23.41047, + "z": 155.45163 + } + } + ] + } + ] + }, + { + "repeatable": false, + "minLevel": 0, + "maxLevel": 99, + "maxBots": 3, + "desirability": 40, + "name": "Tarbank Upstairs", + "objectives" : [ + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 500, + "maxRunDistance": 9, + "steps": [ + { + "position" : { + "x": 38.1925621, + "y": 30.8649254, + "z": 138.3057 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 500, + "maxRunDistance": 18, + "steps": [ + { + "position" : { + "x": 48.321228, + "y": 30.86673, + "z": 158.183426 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 500, + "maxRunDistance": 9, + "steps": [ + { + "position" : { + "x": 50.75913, + "y": 30.8667278, + "z": 135.975449 + } + }, + { + "position" : { + "x": 50.7349548, + "y": 30.8667278, + "z": 128.986908 + } + }, + { + "position" : { + "x": 61.4709625, + "y": 30.8667278, + "z": 133.155792 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 500, + "maxRunDistance": 9, + "steps": [ + { + "position" : { + "x": 58.5492439, + "y": 30.8667278, + "z": 149.351563 + } + }, + { + "position" : { + "x": 61.5122681, + "y": 30.8667278, + "z": 149.262115 + } + }, + { + "position" : { + "x": 61.04741, + "y": 30.8667278, + "z": 141.646317 + } + } + ] + } + ] + }, + { + "repeatable": true, + "isSniping": true, + "minLevel": 0, + "maxLevel": 99, + "maxBots": 2, + "maxBotsInGroup": 1, + "desirability": 10, + "pmcsOnly": true, + "name": "Tarbank Upstairs Sniping", + "forbiddenWeapons" : [ "pistol", "shotgun" ], + "objectives" : [ + { + "repeatable": true, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 500, + "maxRunDistance": 9, + "lootAfterCompleting": "Inhibit", + "steps": [ + { + "waitTimeAfterCompleting": 1, + "position" : { + "x": 56.9544029, + "y": 31.0402737, + "z": 128.97757 + } + }, + { + "stepType" : "Snipe", + "minElapsedTime": { + "min": 30, + "max": 120 + }, + "position" : { + "x": 56.9544029, + "y": 31.0402737, + "z": 128.97757 + }, + "lookToPosition" : { + "x": 60.1723022, + "y": 22.596323, + "z": 31.3727226 + } + } + ] + }, + { + "repeatable": true, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 500, + "maxRunDistance": 9, + "lootAfterCompleting": "Inhibit", + "steps": [ + { + "waitTimeAfterCompleting": 1, + "position" : { + "x": 62.16917, + "y": 30.8667278, + "z": 141.584869 + } + }, + { + "stepType" : "Snipe", + "minElapsedTime": { + "min": 30, + "max": 120 + }, + "position" : { + "x": 62.16917, + "y": 30.8667278, + "z": 141.584869 + }, + "lookToPosition" : { + "x": 96.62023, + "y": 24.4085732, + "z": 100.850021 + } + } + ] + } + ] + }, + { + "repeatable": false, + "minLevel": 0, + "maxLevel": 99, + "maxBots": 2, + "desirability": 10, + "name": "Supplies Near VEX", + "objectives" : [ + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 300, + "steps": [ + { + "position" : { + "x": -20.3015461, + "y": 23.81588, + "z": 93.41309 + } + } + ] + } + ] + }, + { + "repeatable": true, + "isCamping": true, + "minLevel": 0, + "maxLevel": 99, + "maxBots": 2, + "maxBotsInGroup": 1, + "minRaidET": 400, + "desirability": 10, + "name": "VEX Camping", + "forbiddenWeapons" : [ "sniperRifle" ], + "objectives" : [ + { + "repeatable": true, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 500, + "lootAfterCompleting": "Inhibit", + "steps": [ + { + "waitTimeAfterCompleting": 1, + "position" : { + "x": -6.500309, + "y": 23.4068279, + "z": 132.896835 + } + }, + { + "stepType" : "Ambush", + "minElapsedTime": { + "min": 45, + "max": 180 + }, + "position" : { + "x": -6.500309, + "y": 23.4068279, + "z": 132.896835 + }, + "lookToPosition" : { + "x": -17.6653481, + "y": 22.5970783, + "z": 115.382309 + } + } + ] + } + ] + }, + { + "repeatable": false, + "minLevel": 0, + "maxLevel": 99, + "maxBots": 2, + "desirability": 10, + "name": "TerraGroup Lawn", + "objectives" : [ + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 200, + "steps": [ + { + "position" : { + "x": 16.906311, + "y": 24.15258, + "z": 72.2639847 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 200, + "steps": [ + { + "position" : { + "x": 42.3679771, + "y": 23.8157, + "z": -4.727362 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 200, + "steps": [ + { + "position" : { + "x": 34.7535362, + "y": 23.8154354, + "z": 36.57053 + } + } + ] + } + ] + }, + { + "repeatable": false, + "minLevel": 0, + "maxLevel": 99, + "maxBots": 2, + "desirability": 20, + "name": "TerraGroup Garage", + "objectives" : [ + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 300, + "maxRunDistance": 3, + "steps": [ + { + "position" : { + "x": -14.9319029, + "y": 23.86011, + "z": -39.79584 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 300, + "maxRunDistance": 3, + "steps": [ + { + "position" : { + "x": -15.0195255, + "y": 23.8158321, + "z": -27.7923088 + } + }, + { + "position" : { + "x": -22.4904385, + "y": 23.815731, + "z": -22.9852123 + } + }, + { + "position" : { + "x": -26.3561287, + "y": 24.1810627, + "z": -26.91148 + } + } + ] + } + ] + }, + { + "repeatable": false, + "minLevel": 0, + "maxLevel": 99, + "maxBots": 2, + "desirability": 20, + "name": "TerraGroup Office", + "objectives" : [ + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 500, + "steps": [ + { + "position" : { + "x": -10.1596451, + "y": 24.17935, + "z": 31.54771 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 500, + "maxRunDistance": 22, + "steps": [ + { + "position" : { + "x": -32.108902, + "y": 24.1793537, + "z": 26.0656338 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 500, + "maxRunDistance": 33, + "steps": [ + { + "position" : { + "x": -41.80921, + "y": 24.1793537, + "z": 23.2063637 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 500, + "maxRunDistance": 39, + "steps": [ + { + "position" : { + "x": -51.34287, + "y": 24.1793537, + "z": 43.7349625 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 500, + "maxRunDistance": 50, + "steps": [ + { + "position" : { + "x": -59.5476952, + "y": 24.2161388, + "z": 28.3822746 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 500, + "maxRunDistance": 17, + "steps": [ + { + "position" : { + "x": -27.2428532, + "y": 24.1793537, + "z": 56.88943 + } + } + ] + } + ] + }, + { + "repeatable": false, + "minLevel": 0, + "maxLevel": 99, + "maxBots": 3, + "desirability": 30, + "name": "TerraGroup Office Upstairs", + "waypoints" : [ + { + "x": -40.541584, + "y": 29.6709938, + "z": 56.053112 + } + ], + "objectives" : [ + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 500, + "maxRunDistance": 33, + "steps": [ + { + "position" : { + "x": -44.12124, + "y": 29.6709957, + "z": 59.059597 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 500, + "maxRunDistance": 17, + "steps": [ + { + "position" : { + "x": -26.84891, + "y": 29.67099, + "z": 55.365303 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 500, + "maxRunDistance": 6, + "steps": [ + { + "position" : { + "x": -12.3301678, + "y": 29.6996956, + "z": 65.2422256 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 500, + "maxRunDistance": 8, + "steps": [ + { + "position" : { + "x": -20.8411789, + "y": 29.6710052, + "z": 74.9792 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 500, + "maxRunDistance": 7, + "steps": [ + { + "position" : { + "x": -23.3120861, + "y": 29.6710072, + "z": 84.47814 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 500, + "maxRunDistance": 7, + "steps": [ + { + "position" : { + "x": -11.4437027, + "y": 29.6714783, + "z": 56.4455147 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 500, + "maxRunDistance": 9, + "steps": [ + { + "position" : { + "x": -17.8279419, + "y": 29.6714783, + "z": 53.4957848 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 500, + "maxRunDistance": 8, + "steps": [ + { + "position" : { + "x": -17.53707, + "y": 29.6714783, + "z": 46.1114922 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 500, + "maxRunDistance": 7, + "steps": [ + { + "position" : { + "x": -14.1333857, + "y": 29.6714535, + "z": 41.28094 + } + } + ] + } + ] + }, + { + "repeatable": true, + "isSniping": true, + "minLevel": 0, + "maxLevel": 99, + "maxBots": 2, + "maxBotsInGroup": 1, + "desirability": 15, + "name": "TerraGroup Office Upstairs Sniping", + "forbiddenWeapons" : [ "pistol", "shotgun" ], + "waypoints" : [ + { + "x": -40.541584, + "y": 29.6709938, + "z": 56.053112 + } + ], + "objectives" : [ + { + "repeatable": true, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 500, + "maxRunDistance": 6, + "lootAfterCompleting": "Inhibit", + "steps": [ + { + "waitTimeAfterCompleting": 1, + "position" : { + "x": -4.130823, + "y": 29.6710033, + "z": 64.97122 + } + }, + { + "stepType" : "Snipe", + "minElapsedTime": { + "min": 30, + "max": 180 + }, + "position" : { + "x": -4.130823, + "y": 29.6710033, + "z": 64.97122 + }, + "lookToPosition" : { + "x": 98.38838, + "y": 22.5970783, + "z": 65.62153 + } + } + ] + }, + { + "repeatable": true, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 500, + "maxRunDistance": 6, + "lootAfterCompleting": "Inhibit", + "steps": [ + { + "waitTimeAfterCompleting": 1, + "position" : { + "x": -20.292757, + "y": 29.6710072, + "z": 90.44623 + } + }, + { + "stepType" : "Snipe", + "minElapsedTime": { + "min": 30, + "max": 180 + }, + "position" : { + "x": -20.292757, + "y": 29.6710072, + "z": 90.44623 + }, + "lookToPosition" : { + "x": 79.51354, + "y": 22.5970783, + "z": 115.00383 + } + } + ] + } + ] + }, + { + "repeatable": true, + "isCamping": true, + "minLevel": 0, + "maxLevel": 99, + "maxBots": 2, + "maxBotsInGroup": 1, + "desirability": 15, + "pmcsOnly": true, + "name": "TerraGroup Office Quest Room Camping", + "forbiddenWeapons" : [ "sniperRifle" ], + "waypoints" : [ + { + "x": -40.541584, + "y": 29.6709938, + "z": 56.053112 + } + ], + "objectives" : [ + { + "repeatable": true, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 500, + "maxRunDistance": 6, + "lootAfterCompleting": "Inhibit", + "steps": [ + { + "waitTimeAfterCompleting": 1, + "position" : { + "x": -10.8554859, + "y": 29.671463, + "z": 47.4867439 + } + }, + { + "stepType" : "Ambush", + "minElapsedTime": { + "min": 45, + "max": 180 + }, + "position" : { + "x": -10.8554859, + "y": 29.671463, + "z": 47.4867439 + }, + "lookToPosition" : { + "x": -17.2306175, + "y": 29.6714783, + "z": 56.959095 + } + } + ] + } + ] + }, + { + "repeatable": true, + "isCamping": true, + "minLevel": 0, + "maxLevel": 99, + "maxBots": 2, + "maxBotsInGroup": 1, + "desirability": 15, + "name": "TerraGroup Office Camping", + "forbiddenWeapons" : [ "sniperRifle" ], + "objectives" : [ + { + "repeatable": true, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 500, + "maxRunDistance": 13, + "lootAfterCompleting": "Inhibit", + "steps": [ + { + "waitTimeAfterCompleting": 1, + "position" : { + "x": -25.35518, + "y": 24.1793537, + "z": 48.9441833 + } + }, + { + "stepType" : "Ambush", + "minElapsedTime": { + "min": 45, + "max": 180 + }, + "position" : { + "x": -25.35518, + "y": 24.1793537, + "z": 48.9441833 + }, + "lookToPosition" : { + "x": -24.865366, + "y": 24.1793537, + "z": 31.2225685 + } + } + ] + } + ] + }, + { + "repeatable": true, + "isCamping": true, + "minLevel": 0, + "maxLevel": 99, + "maxBots": 2, + "maxBotsInGroup": 1, + "desirability": 15, + "name": "TerraGroup Office Upstairs Camping", + "forbiddenWeapons" : [ "sniperRifle" ], + "waypoints" : [ + { + "x": -40.541584, + "y": 29.6709938, + "z": 56.053112 + } + ], + "objectives" : [ + { + "repeatable": true, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 500, + "maxRunDistance": 9, + "lootAfterCompleting": "Inhibit", + "steps": [ + { + "waitTimeAfterCompleting": 1, + "position" : { + "x": -19.7170582, + "y": 29.67101, + "z": 69.4867 + } + }, + { + "stepType" : "Ambush", + "minElapsedTime": { + "min": 45, + "max": 180 + }, + "position" : { + "x": -19.7170582, + "y": 29.67101, + "z": 69.4867 + }, + "lookToPosition" : { + "x": -17.9040451, + "y": 29.6710377, + "z": 60.5756721 + } + } + ] + }, + { + "repeatable": true, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 500, + "maxRunDistance": 22, + "lootAfterCompleting": "Inhibit", + "steps": [ + { + "waitTimeAfterCompleting": 1, + "position" : { + "x": -32.0340347, + "y": 29.6709938, + "z": 56.03422 + } + }, + { + "stepType" : "Ambush", + "minElapsedTime": { + "min": 45, + "max": 180 + }, + "position" : { + "x": -32.0340347, + "y": 29.6709938, + "z": 56.03422 + }, + "lookToPosition" : { + "x": -40.77839, + "y": 29.6709938, + "z": 53.0022125 + } + } + ] + } + ] + }, + { + "repeatable": false, + "minLevel": 0, + "maxLevel": 99, + "maxBots": 2, + "desirability": 20, + "name": "Underground North", + "objectives" : [ + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 300, + "steps": [ + { + "position" : { + "x": 55.6714478, + "y": 13.9418392, + "z": -29.1467381 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 300, + "steps": [ + { + "position" : { + "x": 77.4694061, + "y": 13.9693232, + "z": -32.66117 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 300, + "steps": [ + { + "position" : { + "x": 87.33883, + "y": 14.0978947, + "z": -21.7858887 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 300, + "maxRunDistance": 3, + "steps": [ + { + "position" : { + "x": 96.41335, + "y": 13.9439812, + "z": -6.35317659 + } + }, + { + "position" : { + "x": 100.936844, + "y": 14.6940727, + "z": -7.477905 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 300, + "maxRunDistance": 9, + "steps": [ + { + "position" : { + "x": 102.768585, + "y": 14.0990772, + "z": 3.76116157 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 300, + "steps": [ + { + "position" : { + "x": 93.0439148, + "y": 13.9439716, + "z": 15.5140181 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 300, + "steps": [ + { + "position" : { + "x": 67.95334, + "y": 13.9605808, + "z": 24.4858589 + } + }, + { + "position" : { + "x": 65.3907547, + "y": 13.9605808, + "z": 26.6148129 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 300, + "maxRunDistance": 3, + "steps": [ + { + "position" : { + "x": 96.28356, + "y": 13.9439812, + "z": 41.36817 + } + } + ] + } + ] + }, + { + "repeatable": false, + "minLevel": 0, + "maxLevel": 99, + "maxBots": 2, + "desirability": 10, + "name": "Underground Entrance", + "objectives" : [ + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 200, + "steps": [ + { + "position" : { + "x": 98.5235443, + "y": 14.1010294, + "z": 53.9608345 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 200, + "steps": [ + { + "position" : { + "x": 104.107056, + "y": 14.0745573, + "z": 69.84481 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 300, + "steps": [ + { + "position" : { + "x": 130.692474, + "y": 20.2392139, + "z": 70.87822 + } + } + ] + } + ] + }, + { + "repeatable": false, + "minLevel": 0, + "maxLevel": 99, + "maxBots": 3, + "desirability": 25, + "name": "Underground Utility Room", + "objectives" : [ + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 500, + "maxRunDistance": 3, + "steps": [ + { + "position" : { + "x": 109.225586, + "y": 12.4136572, + "z": 50.14779 + } + }, + { + "position" : { + "x": 105.188919, + "y": 12.4141121, + "z": 47.08673 + } + }, + { + "position" : { + "x": 103.045837, + "y": 12.4141121, + "z": 49.5498352 + } + }, + { + "position" : { + "x": 101.540321, + "y": 12.4141121, + "z": 46.91429 + } + } + ] + } + ] + }, + { + "repeatable": false, + "minLevel": 0, + "maxLevel": 99, + "maxBots": 2, + "desirability": 20, + "name": "Underground South", + "objectives" : [ + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 300, + "steps": [ + { + "position" : { + "x": 74.15664, + "y": 14.0978041, + "z": 125.574028 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 300, + "steps": [ + { + "position" : { + "x": 92.8373947, + "y": 14.0977993, + "z": 142.331009 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 300, + "maxRunDistance": 3, + "steps": [ + { + "position" : { + "x": 68.2226639, + "y": 13.9406805, + "z": 162.789734 + } + }, + { + "position" : { + "x": 67.77592, + "y": 13.9406805, + "z": 158.244614 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 300, + "steps": [ + { + "position" : { + "x": 81.90137, + "y": 14.169383, + "z": 179.991714 + } + } + ] + } + ] + }, + { + "repeatable": true, + "isCamping": true, + "minLevel": 0, + "maxLevel": 99, + "maxBots": 2, + "maxBotsInGroup": 1, + "desirability": 15, + "name": "Tarbank Stairwell Camping", + "forbiddenWeapons" : [ "sniperRifle" ], + "objectives" : [ + { + "repeatable": true, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 500, + "maxRunDistance": 13, + "lootAfterCompleting": "Inhibit", + "steps": [ + { + "waitTimeAfterCompleting": 1, + "position" : { + "x": 50.18682, + "y": 26.3637, + "z": 149.469254 + } + }, + { + "stepType" : "Ambush", + "minElapsedTime": { + "min": 45, + "max": 180 + }, + "position" : { + "x": 50.18682, + "y": 26.3637, + "z": 149.469254 + }, + "lookToPosition" : { + "x": 44.93504, + "y": 24.8662, + "z": 151.547562 + } + } + ] + } + ] + }, + { + "repeatable": true, + "isCamping": true, + "minLevel": 0, + "maxLevel": 99, + "maxBots": 2, + "maxBotsInGroup": 1, + "desirability": 15, + "name": "Capital Insight Stairwell Camping", + "forbiddenWeapons" : [ "sniperRifle" ], + "objectives" : [ + { + "repeatable": true, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 500, + "maxRunDistance": 29, + "lootAfterCompleting": "Inhibit", + "steps": [ + { + "waitTimeAfterCompleting": 1, + "position" : { + "x": 134.72644, + "y": 32.8086967, + "z": 269.9746 + } + }, + { + "stepType" : "Ambush", + "minElapsedTime": { + "min": 45, + "max": 180 + }, + "position" : { + "x": 134.72644, + "y": 32.8086967, + "z": 269.9746 + }, + "lookToPosition" : { + "x": 129.681458, + "y": 29.69892, + "z": 257.3434 + } + } + ] + } + ] + }, + { + "repeatable": true, + "isCamping": true, + "minLevel": 0, + "maxLevel": 99, + "maxBots": 2, + "maxBotsInGroup": 1, + "desirability": 15, + "name": "Capital Insight Cafe Camping", + "forbiddenWeapons" : [ "sniperRifle" ], + "objectives" : [ + { + "repeatable": true, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 500, + "maxRunDistance": 20, + "lootAfterCompleting": "Inhibit", + "steps": [ + { + "waitTimeAfterCompleting": 1, + "position" : { + "x": 117.332855, + "y": 32.80909, + "z": 289.0309 + } + }, + { + "stepType" : "Ambush", + "minElapsedTime": { + "min": 45, + "max": 180 + }, + "position" : { + "x": 117.332855, + "y": 32.80909, + "z": 289.0309 + }, + "lookToPosition" : { + "x": 118.727158, + "y": 32.80909, + "z": 268.060852 + } + } + ] + } + ] + }, + { + "repeatable": true, + "isCamping": true, + "minLevel": 0, + "maxLevel": 99, + "maxBots": 2, + "maxBotsInGroup": 1, + "desirability": 15, + "name": "Capital Insight Quest Room Camping", + "forbiddenWeapons" : [ "sniperRifle" ], + "objectives" : [ + { + "repeatable": true, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 500, + "maxRunDistance": 11, + "lootAfterCompleting": "Inhibit", + "steps": [ + { + "waitTimeAfterCompleting": 1, + "position" : { + "x": 110.526047, + "y": 32.80914, + "z": 273.995239 + } + }, + { + "stepType" : "Ambush", + "minElapsedTime": { + "min": 45, + "max": 180 + }, + "position" : { + "x": 110.526047, + "y": 32.80914, + "z": 273.995239 + }, + "lookToPosition" : { + "x": 110.844894, + "y": 32.80909, + "z": 281.7187 + } + } + ] + } + ] + } +] \ No newline at end of file diff --git a/BepInEx/plugins/DanW-SPTQuestingBots/quests/standard/shoreline.json b/BepInEx/plugins/DanW-SPTQuestingBots/quests/standard/shoreline.json new file mode 100644 index 0000000..c88168d --- /dev/null +++ b/BepInEx/plugins/DanW-SPTQuestingBots/quests/standard/shoreline.json @@ -0,0 +1,3539 @@ +[ + { + "repeatable": false, + "minLevel": 0, + "maxLevel": 99, + "maxBots": 2, + "desirability": 15, + "name": "Chairman's House", + "objectives" : [ + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 300, + "maxRunDistance": 5, + "steps": [ + { + "position" : { + "x": 407.169067, + "y": -53.36436, + "z": -46.4891052 + } + } + ] + } + ] + }, + { + "repeatable": false, + "minLevel": 0, + "maxLevel": 99, + "maxBots": 2, + "desirability": 10, + "name": "Church", + "objectives" : [ + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 200, + "maxRunDistance": 5, + "steps": [ + { + "position" : { + "x": 259.7854, + "y": -54.1974945, + "z": -105.3545 + } + } + ] + } + ] + }, + { + "repeatable": false, + "minLevel": 0, + "maxLevel": 99, + "maxBots": 2, + "desirability": 15, + "name": "Priest's House", + "objectives" : [ + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 200, + "maxRunDistance": 6, + "steps": [ + { + "position" : { + "x": 287.601776, + "y": -50.6278572, + "z": -43.31086 + } + } + ] + } + ] + }, + { + "repeatable": false, + "minLevel": 0, + "maxLevel": 99, + "maxBots": 2, + "desirability": 20, + "name": "Village", + "objectives" : [ + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 500, + "maxRunDistance": 5, + "steps": [ + { + "position" : { + "x": 425.557953, + "y": -54.22162, + "z": 66.58849 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 500, + "maxRunDistance": 5, + "steps": [ + { + "position" : { + "x": 434.83313, + "y": -54.32498, + "z": 79.3908539 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 500, + "maxRunDistance": 7, + "steps": [ + { + "position" : { + "x": 407.2381, + "y": -54.22823, + "z": 99.14002 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 500, + "maxRunDistance": 5, + "steps": [ + { + "position" : { + "x": 414.049072, + "y": -54.08855, + "z": 159.745621 + } + }, + { + "position" : { + "x": 412.895355, + "y": -54.0883446, + "z": 166.176758 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 500, + "maxRunDistance": 5, + "steps": [ + { + "position" : { + "x": 401.778137, + "y": -54.123127, + "z": 134.666214 + } + }, + { + "position" : { + "x": 397.729584, + "y": -54.12313, + "z": 139.847336 + } + }, + { + "position" : { + "x": 391.9996, + "y": -54.1231346, + "z": 143.169861 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 500, + "maxRunDistance": 5, + "steps": [ + { + "position" : { + "x": 448.233459, + "y": -54.0749321, + "z": 149.869919 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 500, + "maxRunDistance": 5, + "steps": [ + { + "position" : { + "x": 451.729645, + "y": -54.55198, + "z": 178.35672 + } + } + ] + } + ] + }, + { + "repeatable": false, + "minLevel": 0, + "maxLevel": 99, + "maxBots": 2, + "desirability": 20, + "name": "Cabins", + "objectives" : [ + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 500, + "steps": [ + { + "position" : { + "x": 348.863434, + "y": -56.3429375, + "z": 152.200516 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 500, + "maxRunDistance": 10, + "steps": [ + { + "position" : { + "x": 305.0224, + "y": -56.3934555, + "z": 128.111481 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 500, + "maxRunDistance": 5, + "steps": [ + { + "position" : { + "x": 312.9704, + "y": -56.09436, + "z": 156.510147 + } + }, + { + "position" : { + "x": 315.598663, + "y": -56.09436, + "z": 160.63385 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 500, + "maxRunDistance": 3, + "steps": [ + { + "position" : { + "x": 315.911255, + "y": -56.35905, + "z": 135.109314 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 500, + "maxRunDistance": 3, + "steps": [ + { + "position" : { + "x": 299.348022, + "y": -56.2416153, + "z": 116.038452 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 500, + "maxRunDistance": 5, + "steps": [ + { + "position" : { + "x": 266.100342, + "y": -56.2385445, + "z": 181.419678 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 500, + "maxRunDistance": 5, + "steps": [ + { + "position" : { + "x": 323.2423, + "y": -55.73268, + "z": 133.799942 + } + } + ] + } + ] + }, + { + "repeatable": false, + "minLevel": 0, + "maxLevel": 99, + "maxBots": 2, + "desirability": 25, + "canRunBetweenObjectives": false, + "name": "West Cottage", + "objectives" : [ + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 500, + "maxRunDistance": 6, + "steps": [ + { + "position" : { + "x": 134.733017, + "y": -45.4795456, + "z": 122.745193 + } + }, + { + "position" : { + "x": 135.108, + "y": -45.4795532, + "z": 129.360336 + } + }, + { + "position" : { + "x": 143.665863, + "y": -45.47955, + "z": 129.045013 + } + } + ] + } + ] + }, + { + "repeatable": true, + "minLevel": 0, + "maxLevel": 99, + "maxBots": 3, + "desirability": 25, + "name": "Cottage Garage", + "objectives" : [ + { + "repeatable": true, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 500, + "maxRunDistance": 2, + "steps": [ + { + "position" : { + "x": 124.033058, + "y": -48.4883041, + "z": 130.663208 + } + } + ] + } + ] + }, + { + "repeatable": false, + "minLevel": 15, + "maxLevel": 99, + "maxBots": 2, + "desirability": 30, + "canRunBetweenObjectives": false, + "name": "Sanitar's House", + "objectives" : [ + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 1000, + "maxRunDistance": 6, + "steps": [ + { + "position" : { + "x": 94.232605, + "y": -45.4795532, + "z": 105.612335 + } + }, + { + "position" : { + "x": 98.57321, + "y": -45.4795532, + "z": 105.273567 + } + }, + { + "position" : { + "x": 92.02867, + "y": -45.479557, + "z": 112.136543 + } + } + ] + } + ] + }, + { + "repeatable": true, + "isSniping": true, + "minLevel": 0, + "maxLevel": 99, + "maxBots": 3, + "maxBotsInGroup": 1, + "minRaidET": 120, + "desirability": 20, + "pmcsOnly": true, + "name": "Scav Island Sniping", + "forbiddenWeapons" : [ "pistol", "shotgun" ], + "objectives" : [ + { + "repeatable": true, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 500, + "lootAfterCompleting": "Inhibit", + "steps": [ + { + "waitTimeAfterCompleting": 1, + "position" : { + "x": 232.474319, + "y": -54.80419, + "z": 280.612671 + } + }, + { + "stepType" : "Snipe", + "minElapsedTime": { + "min": 30, + "max": 120 + }, + "position" : { + "x": 232.474319, + "y": -54.80419, + "z": 280.612671 + }, + "lookToPosition" : { + "x": 236.733566, + "y": -64.4540253, + "z": 425.7493 + } + } + ] + }, + { + "repeatable": true, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 500, + "lootAfterCompleting": "Inhibit", + "steps": [ + { + "waitTimeAfterCompleting": 1, + "position" : { + "x": 207.988464, + "y": -54.4940147, + "z": 284.815552 + } + }, + { + "stepType" : "Snipe", + "minElapsedTime": { + "min": 30, + "max": 120 + }, + "position" : { + "x": 207.988464, + "y": -54.4940147, + "z": 284.815552 + }, + "lookToPosition" : { + "x": 244.119278, + "y": -64.7001953, + "z": 419.917572 + } + } + ] + }, + { + "repeatable": true, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 500, + "lootAfterCompleting": "Inhibit", + "steps": [ + { + "waitTimeAfterCompleting": 1, + "position" : { + "x": 140.066879, + "y": -51.9296875, + "z": 289.380859 + } + }, + { + "stepType" : "Snipe", + "minElapsedTime": { + "min": 30, + "max": 120 + }, + "position" : { + "x": 140.066879, + "y": -51.9296875, + "z": 289.380859 + }, + "lookToPosition" : { + "x": 189.213043, + "y": -64.57098, + "z": 416.903748 + } + } + ] + } + ] + }, + { + "repeatable": true, + "isSniping": true, + "minLevel": 0, + "maxLevel": 99, + "maxBots": 3, + "maxBotsInGroup": 1, + "desirability": 25, + "pmcsOnly": true, + "name": "Gas Station Sniping", + "forbiddenWeapons" : [ "pistol", "shotgun" ], + "objectives" : [ + { + "repeatable": true, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 9999, + "lootAfterCompleting": "Inhibit", + "steps": [ + { + "waitTimeAfterCompleting": 1, + "position" : { + "x": -108.158958, + "y": -45.18403, + "z": 367.4706 + } + }, + { + "stepType" : "Snipe", + "minElapsedTime": { + "min": 45, + "max": 180 + }, + "position" : { + "x": -108.158958, + "y": -45.18403, + "z": 367.4706 + }, + "lookToPosition" : { + "x": -165.7035, + "y": -55.74522, + "z": 394.643341 + } + } + ] + }, + { + "repeatable": true, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 9999, + "lootAfterCompleting": "Inhibit", + "steps": [ + { + "waitTimeAfterCompleting": 1, + "position" : { + "x": -122.217194, + "y": -44.9731522, + "z": 354.197449 + } + }, + { + "stepType" : "Snipe", + "minElapsedTime": { + "min": 45, + "max": 180 + }, + "position" : { + "x": -122.217194, + "y": -44.9731522, + "z": 354.197449 + }, + "lookToPosition" : { + "x": -213.98497, + "y": -59.6730728, + "z": 427.84787 + } + } + ] + }, + { + "repeatable": true, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 9999, + "lootAfterCompleting": "Inhibit", + "steps": [ + { + "waitTimeAfterCompleting": 1, + "position" : { + "x": -138.0275, + "y": -44.83409, + "z": 335.023376 + } + }, + { + "stepType" : "Snipe", + "minElapsedTime": { + "min": 45, + "max": 180 + }, + "position" : { + "x": -138.0275, + "y": -44.83409, + "z": 335.023376 + }, + "lookToPosition" : { + "x": -184.044037, + "y": -55.74522, + "z": 405.198029 + } + } + ] + } + ] + }, + { + "repeatable": true, + "isSniping": true, + "minLevel": 0, + "maxLevel": 99, + "maxBots": 3, + "maxBotsInGroup": 1, + "desirability": 25, + "pmcsOnly": true, + "name": "Sniper Rock Sniping", + "forbiddenWeapons" : [ "pistol", "shotgun" ], + "objectives" : [ + { + "repeatable": true, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 9999, + "lootAfterCompleting": "Inhibit", + "steps": [ + { + "waitTimeAfterCompleting": 1, + "position" : { + "x": -255.989929, + "y": -1.700679, + "z": -289.6939 + } + }, + { + "stepType" : "Snipe", + "minElapsedTime": { + "min": 45, + "max": 180 + }, + "position" : { + "x": -255.989929, + "y": -1.700679, + "z": -289.6939 + }, + "lookToPosition" : { + "x": -154.846848, + "y": -3.87980843, + "z": -268.412781 + } + } + ] + }, + { + "repeatable": true, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 9999, + "lootAfterCompleting": "Inhibit", + "steps": [ + { + "waitTimeAfterCompleting": 1, + "position" : { + "x": -251.416321, + "y": -0.9925275, + "z": -274.257324 + } + }, + { + "stepType" : "Snipe", + "minElapsedTime": { + "min": 45, + "max": 180 + }, + "position" : { + "x": -251.416321, + "y": -0.9925275, + "z": -274.257324 + }, + "lookToPosition" : { + "x": -145.314117, + "y": -3.890499, + "z": -274.509644 + } + } + ] + } + ] + }, + { + "repeatable": false, + "minLevel": 0, + "maxLevel": 99, + "maxBots": 3, + "desirability": 15, + "name": "Lookout", + "objectives" : [ + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 500, + "steps": [ + { + "position" : { + "x": -195.208145, + "y": -11.3044462, + "z": -243.197723 + } + } + ] + } + ] + }, + { + "repeatable": false, + "isSniping": true, + "minLevel": 0, + "maxLevel": 99, + "maxBots": 3, + "maxBotsInGroup": 1, + "desirability": 25, + "name": "Radio Tower", + "forbiddenWeapons" : [ "pistol", "shotgun" ], + "objectives" : [ + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 500, + "steps": [ + { + "waitTimeAfterCompleting": 2, + "position" : { + "x": -704.9786, + "y": -29.4206238, + "z": 106.98719 + } + }, + { + "stepType" : "Snipe", + "minElapsedTime": { + "min": 30, + "max": 120 + }, + "position" : { + "x": -704.9786, + "y": -29.4206238, + "z": 106.98719 + }, + "lookToPosition" : { + "x": -602.589355, + "y": -49.41121, + "z": 215.636841 + } + } + ] + } + ] + }, + { + "repeatable": true, + "minLevel": 0, + "maxLevel": 99, + "maxBots": 3, + "desirability": 25, + "canRunBetweenObjectives": false, + "name": "Weather Station", + "objectives" : [ + { + "repeatable": true, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 9999, + "maxRunDistance": 4, + "steps": [ + { + "position" : { + "x": -515.1601, + "y": -25.5797958, + "z": 238.421341 + } + }, + { + "position" : { + "x": -512.6976, + "y": -25.5797958, + "z": 235.053925 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 9999, + "maxRunDistance": 5, + "steps": [ + { + "position" : { + "x": -514.572632, + "y": -22.2631149, + "z": 237.802109 + } + }, + { + "position" : { + "x": -512.041, + "y": -22.2631149, + "z": 235.012741 + } + }, + { + "position" : { + "x": -507.538239, + "y": -22.2631149, + "z": 235.0583 + } + } + ] + } + ] + }, + { + "repeatable": false, + "minLevel": 0, + "maxLevel": 99, + "maxBots": 2, + "desirability": 10, + "name": "Weather Station Tower Base", + "objectives" : [ + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 200, + "steps": [ + { + "position" : { + "x": -509.715, + "y": -25.7184753, + "z": 269.445618 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 200, + "maxRunDistance": 2, + "steps": [ + { + "position" : { + "x": -519.2476, + "y": -25.747282, + "z": 277.329376 + } + } + ] + } + ] + }, + { + "repeatable": false, + "minLevel": 0, + "maxLevel": 99, + "maxBots": 2, + "desirability": 10, + "name": "Weather Station Shack", + "objectives" : [ + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 200, + "maxRunDistance": 2, + "steps": [ + { + "position" : { + "x": -464.609528, + "y": -25.3642254, + "z": 272.618683 + } + } + ] + } + ] + }, + { + "repeatable": true, + "isSniping": true, + "minLevel": 0, + "maxLevel": 99, + "maxBots": 2, + "maxBotsInGroup": 1, + "desirability": 5, + "pmcsOnly": true, + "name": "Weather Station Sniping", + "forbiddenWeapons" : [ "pistol", "shotgun" ], + "objectives" : [ + { + "repeatable": true, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 500, + "lootAfterCompleting": "Inhibit", + "steps": [ + { + "waitTimeAfterCompleting": 1, + "position" : { + "x": -507.4703, + "y": -18.4114933, + "z": 233.91188 + } + }, + { + "waitTimeAfterCompleting": 1, + "stepType" : "HoldAtPosition", + "maxDistance": 3, + "minElapsedTime": { + "min": 30, + "max": 120 + }, + "position" : { + "x": -507.4703, + "y": -18.4114933, + "z": 233.91188 + } + }, + { + "waitTimeAfterCompleting": 1, + "position" : { + "x": -515.091248, + "y": -18.4114933, + "z": 233.5884 + } + }, + { + "waitTimeAfterCompleting": 1, + "stepType" : "HoldAtPosition", + "maxDistance": 3, + "minElapsedTime": { + "min": 30, + "max": 120 + }, + "position" : { + "x": -515.091248, + "y": -18.4114933, + "z": 233.5884 + } + }, + { + "waitTimeAfterCompleting": 1, + "position" : { + "x": -515.7, + "y": -18.4114933, + "z": 240.200317 + } + }, + { + "waitTimeAfterCompleting": 1, + "stepType" : "HoldAtPosition", + "maxDistance": 3, + "minElapsedTime": { + "min": 30, + "max": 120 + }, + "position" : { + "x": -515.7, + "y": -18.4114933, + "z": 240.200317 + } + }, + { + "waitTimeAfterCompleting": 1, + "position" : { + "x": -507.334229, + "y": -18.4114933, + "z": 240.7184 + } + }, + { + "waitTimeAfterCompleting": 1, + "stepType" : "HoldAtPosition", + "maxDistance": 3, + "minElapsedTime": { + "min": 30, + "max": 120 + }, + "position" : { + "x": -507.334229, + "y": -18.4114933, + "z": 240.7184 + } + } + ] + } + ] + }, + { + "repeatable": true, + "isSniping": true, + "minLevel": 0, + "maxLevel": 99, + "maxBots": 2, + "maxBotsInGroup": 1, + "desirability": 5, + "pmcsOnly": true, + "name": "Weather Station Tower Sniping", + "forbiddenWeapons" : [ "pistol", "shotgun" ], + "objectives" : [ + { + "repeatable": true, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 500, + "lootAfterCompleting": "Inhibit", + "steps": [ + { + "waitTimeAfterCompleting": 1, + "position" : { + "x": -506.6017, + "y": -9.915512, + "z": 258.602417 + } + }, + { + "waitTimeAfterCompleting": 1, + "stepType" : "HoldAtPosition", + "maxDistance": 3, + "minElapsedTime": { + "min": 30, + "max": 120 + }, + "position" : { + "x": -506.6017, + "y": -9.915512, + "z": 258.602417 + } + }, + { + "waitTimeAfterCompleting": 1, + "position" : { + "x": -516.2614, + "y": -9.91551, + "z": 258.125366 + } + }, + { + "waitTimeAfterCompleting": 1, + "stepType" : "HoldAtPosition", + "maxDistance": 3, + "minElapsedTime": { + "min": 30, + "max": 120 + }, + "position" : { + "x": -516.2614, + "y": -9.91551, + "z": 258.125366 + } + }, + { + "waitTimeAfterCompleting": 1, + "position" : { + "x": -506.998352, + "y": -9.915513, + "z": 267.924469 + } + }, + { + "waitTimeAfterCompleting": 1, + "stepType" : "HoldAtPosition", + "maxDistance": 3, + "minElapsedTime": { + "min": 30, + "max": 120 + }, + "position" : { + "x": -506.998352, + "y": -9.915513, + "z": 267.924469 + } + }, + { + "waitTimeAfterCompleting": 1, + "position" : { + "x": -516.012939, + "y": -9.915513, + "z": 267.982117 + } + }, + { + "waitTimeAfterCompleting": 1, + "stepType" : "HoldAtPosition", + "maxDistance": 3, + "minElapsedTime": { + "min": 30, + "max": 120 + }, + "position" : { + "x": -516.012939, + "y": -9.915513, + "z": 267.982117 + } + } + ] + } + ] + }, + { + "repeatable": true, + "isSniping": true, + "minLevel": 0, + "maxLevel": 99, + "maxBots": 3, + "maxBotsInGroup": 1, + "desirability": 25, + "pmcsOnly": true, + "name": "Crane Sniping", + "forbiddenWeapons" : [ "pistol", "shotgun" ], + "objectives" : [ + { + "repeatable": true, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 500, + "lootAfterCompleting": "Inhibit", + "steps": [ + { + "waitTimeAfterCompleting": 1, + "position" : { + "x": -720.9366, + "y": -49.0736122, + "z": 427.01413 + } + }, + { + "waitTimeAfterCompleting": 1, + "stepType" : "HoldAtPosition", + "maxDistance": 5, + "minElapsedTime": { + "min": 30, + "max": 120 + }, + "position" : { + "x": -720.9366, + "y": -49.0736122, + "z": 427.01413 + } + } + ] + }, + { + "repeatable": true, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 500, + "lootAfterCompleting": "Inhibit", + "steps": [ + { + "waitTimeAfterCompleting": 1, + "position" : { + "x": -678.0051, + "y": -53.016346, + "z": 428.203156 + } + }, + { + "stepType" : "Snipe", + "minElapsedTime": { + "min": 30, + "max": 120 + }, + "position" : { + "x": -678.0051, + "y": -53.016346, + "z": 428.203156 + }, + "lookToPosition" : { + "x": -634.928345, + "y": -59.7554741, + "z": 463.0604 + } + } + ] + }, + { + "repeatable": true, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 500, + "lootAfterCompleting": "Inhibit", + "steps": [ + { + "waitTimeAfterCompleting": 1, + "position" : { + "x": -558.468567, + "y": -50.79991, + "z": 393.089081 + } + }, + { + "stepType" : "Snipe", + "minElapsedTime": { + "min": 30, + "max": 120 + }, + "position" : { + "x": -558.468567, + "y": -50.79991, + "z": 393.089081 + }, + "lookToPosition" : { + "x": -497.02066, + "y": -59.7554741, + "z": 457.726227 + } + } + ] + }, + { + "repeatable": true, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 500, + "lootAfterCompleting": "Inhibit", + "steps": [ + { + "waitTimeAfterCompleting": 1, + "position" : { + "x": -468.5424, + "y": -54.0254745, + "z": 432.375671 + } + }, + { + "stepType" : "Snipe", + "minElapsedTime": { + "min": 30, + "max": 120 + }, + "position" : { + "x": -468.5424, + "y": -54.0254745, + "z": 432.375671 + }, + "lookToPosition" : { + "x": -577.9696, + "y": -59.6721649, + "z": 484.490051 + } + } + ] + } + ] + }, + { + "repeatable": true, + "minLevel": 0, + "maxLevel": 99, + "maxBots": 3, + "desirability": 25, + "name": "Crane", + "objectives" : [ + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 300, + "maxRunDistance": 5, + "steps": [ + { + "position" : { + "x": -641.066, + "y": -59.64817, + "z": 471.82132 + } + } + ] + }, + { + "repeatable": true, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 300, + "maxRunDistance": 5, + "steps": [ + { + "position" : { + "x": -576.9817, + "y": -59.67396, + "z": 468.985138 + } + } + ] + } + ] + }, + { + "repeatable": true, + "isSniping": true, + "minLevel": 0, + "maxLevel": 99, + "maxBots": 3, + "maxBotsInGroup": 1, + "desirability": 25, + "pmcsOnly": true, + "name": "Pier Sniping", + "forbiddenWeapons" : [ "pistol", "shotgun" ], + "objectives" : [ + { + "repeatable": true, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 1000, + "lootAfterCompleting": "Inhibit", + "steps": [ + { + "waitTimeAfterCompleting": 1, + "position" : { + "x": -353.026, + "y": -54.2789955, + "z": 428.263672 + } + }, + { + "stepType" : "Snipe", + "minElapsedTime": { + "min": 30, + "max": 120 + }, + "position" : { + "x": -353.026, + "y": -54.2789955, + "z": 428.263672 + }, + "lookToPosition" : { + "x": -268.771942, + "y": -59.9179153, + "z": 457.929565 + } + } + ] + }, + { + "repeatable": true, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 1000, + "lootAfterCompleting": "Inhibit", + "steps": [ + { + "waitTimeAfterCompleting": 1, + "position" : { + "x": -310.985535, + "y": -52.587326, + "z": 416.573578 + } + }, + { + "stepType" : "HoldAtPosition", + "maxDistance": 5, + "minElapsedTime": { + "min": 45, + "max": 180 + }, + "position" : { + "x": -310.985535, + "y": -52.587326, + "z": 416.573578 + } + } + ] + } + ] + }, + { + "repeatable": true, + "minLevel": 0, + "maxLevel": 99, + "maxBots": 3, + "desirability": 25, + "canRunBetweenObjectives": false, + "name": "Pier", + "objectives" : [ + { + "repeatable": true, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 1000, + "maxRunDistance": 4, + "steps": [ + { + "position" : { + "x": -313.453156, + "y": -61.63989, + "z": 486.136749 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 1000, + "maxRunDistance": 10, + "steps": [ + { + "position" : { + "x": -312.860748, + "y": -57.6273155, + "z": 479.396729 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 1000, + "maxRunDistance": 9, + "steps": [ + { + "position" : { + "x": -324.293, + "y": -57.62731, + "z": 487.936432 + } + } + ] + } + ] + }, + { + "repeatable": false, + "minLevel": 0, + "maxLevel": 99, + "maxBots": 1, + "desirability": 5, + "canRunBetweenObjectives": false, + "name": "Lighthouse", + "objectives" : [ + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 300, + "steps": [ + { + "position" : { + "x": -459.269958, + "y": -60.074337, + "z": 565.75415 + } + } + ] + } + ] + }, + { + "repeatable": true, + "isSniping": true, + "minLevel": 0, + "maxLevel": 99, + "maxBots": 3, + "maxBotsInGroup": 1, + "desirability": 25, + "pmcsOnly": true, + "name": "Gas Station Sniping 2", + "forbiddenWeapons" : [ "pistol", "shotgun" ], + "objectives" : [ + { + "repeatable": true, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 1000, + "lootAfterCompleting": "Inhibit", + "steps": [ + { + "waitTimeAfterCompleting": 1, + "position" : { + "x": -285.980225, + "y": -50.28832, + "z": 361.8584 + } + }, + { + "stepType" : "HoldAtPosition", + "maxDistance": 5, + "minElapsedTime": { + "min": 45, + "max": 180 + }, + "position" : { + "x": -285.980225, + "y": -50.28832, + "z": 361.8584 + } + } + ] + }, + { + "repeatable": true, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 1000, + "lootAfterCompleting": "Inhibit", + "steps": [ + { + "waitTimeAfterCompleting": 1, + "position" : { + "x": -266.174225, + "y": -51.08751, + "z": 343.401855 + } + }, + { + "stepType" : "Snipe", + "minElapsedTime": { + "min": 30, + "max": 120 + }, + "position" : { + "x": -266.174225, + "y": -51.08751, + "z": 343.401855 + }, + "lookToPosition" : { + "x": -229.4804, + "y": -55.83861, + "z": 397.7566 + } + } + ] + } + ] + }, + { + "repeatable": true, + "minLevel": 0, + "maxLevel": 99, + "maxBots": 3, + "desirability": 25, + "name": "Tank on Bridge", + "objectives" : [ + { + "repeatable": true, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 300, + "maxRunDistance": 3, + "steps": [ + { + "position" : { + "x": -353.6474, + "y": -43.5160942, + "z": 188.237335 + } + } + ] + } + ] + }, + { + "repeatable": true, + "isSniping": true, + "minLevel": 0, + "maxLevel": 99, + "maxBots": 3, + "maxBotsInGroup": 1, + "desirability": 25, + "pmcsOnly": true, + "name": "Power Station Sniping", + "forbiddenWeapons" : [ "pistol", "shotgun" ], + "objectives" : [ + { + "repeatable": true, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 1000, + "lootAfterCompleting": "Inhibit", + "steps": [ + { + "waitTimeAfterCompleting": 1, + "position" : { + "x": -278.6216, + "y": -34.48316, + "z": 160.923218 + } + }, + { + "stepType" : "Snipe", + "minElapsedTime": { + "min": 30, + "max": 120 + }, + "position" : { + "x": -278.6216, + "y": -34.48316, + "z": 160.923218 + }, + "lookToPosition" : { + "x": -226.108521, + "y": -41.0081367, + "z": 179.2742 + } + } + ] + }, + { + "repeatable": true, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 1000, + "lootAfterCompleting": "Inhibit", + "steps": [ + { + "waitTimeAfterCompleting": 1, + "position" : { + "x": -278.098572, + "y": -34.499382, + "z": 177.5227 + } + }, + { + "stepType" : "Snipe", + "minElapsedTime": { + "min": 30, + "max": 90 + }, + "position" : { + "x": -278.098572, + "y": -34.499382, + "z": 177.5227 + }, + "lookToPosition" : { + "x": -233.025085, + "y": -29.7784, + "z": 189.1009 + } + } + ] + }, + { + "repeatable": true, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 1000, + "lootAfterCompleting": "Inhibit", + "steps": [ + { + "waitTimeAfterCompleting": 1, + "position" : { + "x": -280.382629, + "y": -33.8410568, + "z": 200.533417 + } + }, + { + "stepType" : "Snipe", + "minElapsedTime": { + "min": 30, + "max": 120 + }, + "position" : { + "x": -280.382629, + "y": -33.8410568, + "z": 200.533417 + }, + "lookToPosition" : { + "x": -233.9463, + "y": -41.0081367, + "z": 169.683578 + } + } + ] + } + ] + }, + { + "repeatable": true, + "minLevel": 0, + "maxLevel": 99, + "maxBots": 3, + "desirability": 20, + "name": "Lighthouse Extract Sniper Area", + "objectives" : [ + { + "repeatable": true, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 500, + "steps": [ + { + "position" : { + "x": 191.999329, + "y": -38.8647423, + "z": -270.114868 + } + } + ] + } + ] + }, + { + "repeatable": true, + "isSniping": true, + "minLevel": 0, + "maxLevel": 99, + "maxBots": 3, + "maxBotsInGroup": 1, + "desirability": 20, + "pmcsOnly": true, + "name": "Lighthouse Extract Sniper Area Sniping", + "forbiddenWeapons" : [ "pistol", "shotgun" ], + "objectives" : [ + { + "repeatable": true, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 500, + "lootAfterCompleting": "Inhibit", + "steps": [ + { + "waitTimeAfterCompleting": 1, + "position" : { + "x": 95.1654053, + "y": -30.4438629, + "z": -236.914566 + } + }, + { + "stepType" : "HoldAtPosition", + "maxDistance": 5, + "minElapsedTime": { + "min": 45, + "max": 180 + }, + "position" : { + "x": 95.1654053, + "y": -30.4438629, + "z": -236.914566 + } + } + ] + }, + { + "repeatable": true, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 500, + "lootAfterCompleting": "Inhibit", + "steps": [ + { + "waitTimeAfterCompleting": 1, + "position" : { + "x": 113.985947, + "y": -32.2889481, + "z": -267.101257 + } + }, + { + "stepType" : "HoldAtPosition", + "maxDistance": 5, + "minElapsedTime": { + "min": 45, + "max": 180 + }, + "position" : { + "x": 113.985947, + "y": -32.2889481, + "z": -267.101257 + } + } + ] + } + ] + }, + { + "repeatable": true, + "minLevel": 0, + "maxLevel": 99, + "maxBots": 3, + "desirability": 25, + "canRunBetweenObjectives": false, + "name": "Bus Terminal", + "objectives" : [ + { + "repeatable": true, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 750, + "steps": [ + { + "position" : { + "x": -144.191727, + "y": -21.8832932, + "z": 10.2276621 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 750, + "maxRunDistance": 5, + "steps": [ + { + "position" : { + "x": -128.711777, + "y": -21.66043, + "z": -19.70254 + } + }, + { + "position" : { + "x": -129.552048, + "y": -21.6604328, + "z": -9.973942 + } + }, + { + "position" : { + "x": -122.550819, + "y": -21.65224, + "z": -9.551044 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 750, + "maxRunDistance": 5, + "steps": [ + { + "position" : { + "x": -124.453461, + "y": -21.66043, + "z": -20.2967682 + } + }, + { + "position" : { + "x": -122.643539, + "y": -21.6604328, + "z": -17.638958 + } + } + ] + } + ] + }, + { + "repeatable": true, + "isSniping": true, + "minLevel": 0, + "maxLevel": 99, + "maxBots": 3, + "maxBotsInGroup": 1, + "desirability": 25, + "pmcsOnly": true, + "name": "Power Station Sniping 2", + "forbiddenWeapons" : [ "pistol", "shotgun" ], + "objectives" : [ + { + "repeatable": true, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 1000, + "lootAfterCompleting": "Inhibit", + "steps": [ + { + "waitTimeAfterCompleting": 1, + "position" : { + "x": -161.714417, + "y": -33.0074844, + "z": 113.193726 + } + }, + { + "stepType" : "Snipe", + "minElapsedTime": { + "min": 45, + "max": 180 + }, + "position" : { + "x": -161.714417, + "y": -33.0074844, + "z": 113.193726 + }, + "lookToPosition" : { + "x": -230.442017, + "y": -41.01535, + "z": 179.114532 + } + } + ] + } + ] + }, + { + "repeatable": true, + "isSniping": true, + "minLevel": 0, + "maxLevel": 99, + "maxBots": 3, + "maxBotsInGroup": 1, + "desirability": 15, + "pmcsOnly": true, + "name": "Resort Sniping", + "forbiddenWeapons" : [ "pistol", "shotgun" ], + "objectives" : [ + { + "repeatable": true, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 1000, + "lootAfterCompleting": "Inhibit", + "steps": [ + { + "waitTimeAfterCompleting": 1, + "position" : { + "x": -197.137527, + "y": -17.7130928, + "z": 21.7219524 + } + }, + { + "stepType" : "Snipe", + "minElapsedTime": { + "min": 45, + "max": 180 + }, + "position" : { + "x": -197.137527, + "y": -17.7130928, + "z": 21.7219524 + }, + "lookToPosition" : { + "x": -206.055222, + "y": -40.0130348, + "z": 145.1003 + } + }, + { + "waitTimeAfterCompleting": 1, + "position" : { + "x": -210.511063, + "y": -17.7130928, + "z": 22.3149776 + } + }, + { + "stepType" : "Snipe", + "minElapsedTime": { + "min": 45, + "max": 180 + }, + "position" : { + "x": -210.511063, + "y": -17.7130928, + "z": 22.3149776 + }, + "lookToPosition" : { + "x": -206.055222, + "y": -40.0130348, + "z": 145.1003 + } + } + ] + } + ] + }, + { + "repeatable": false, + "minLevel": 0, + "maxLevel": 99, + "maxBots": 3, + "desirability": 20, + "canRunBetweenObjectives": false, + "name": "Power Station", + "objectives" : [ + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 500, + "maxRunDistance": 7, + "steps": [ + { + "position" : { + "x": -221.07724, + "y": -34.724556, + "z": 188.985474 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 500, + "maxRunDistance": 5, + "steps": [ + { + "position" : { + "x": -239.604614, + "y": -40.6636543, + "z": 188.632187 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 500, + "maxRunDistance": 5, + "steps": [ + { + "position" : { + "x": -240.899338, + "y": -40.66365, + "z": 201.600082 + } + } + ] + } + ] + }, + { + "repeatable": false, + "minLevel": 0, + "maxLevel": 99, + "maxBots": 2, + "desirability": 5, + "name": "Fountain", + "objectives" : [ + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 300, + "steps": [ + { + "position" : { + "x": -418.7227, + "y": -20.5509319, + "z": -239.818024 + } + }, + { + "position" : { + "x": -416.723022, + "y": -20.55093, + "z": -248.51796 + } + } + ] + } + ] + }, + { + "repeatable": false, + "minLevel": 0, + "maxLevel": 99, + "maxBots": 2, + "desirability": 5, + "name": "Gazebo", + "objectives" : [ + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 300, + "steps": [ + { + "position" : { + "x": -328.780151, + "y": -15.0998449, + "z": -254.582886 + } + } + ] + } + ] + }, + { + "repeatable": true, + "minLevel": 0, + "maxLevel": 99, + "maxBots": 3, + "desirability": 10, + "name": "Helicoperter Shack", + "objectives" : [ + { + "repeatable": true, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 750, + "maxRunDistance": 4, + "steps": [ + { + "position" : { + "x": -263.306519, + "y": -5.01065063, + "z": -33.41149 + } + } + ] + } + ] + }, + { + "repeatable": true, + "minLevel": 0, + "maxLevel": 99, + "maxBots": 3, + "desirability": 15, + "name": "Resort West Wing Basement", + "objectives" : [ + { + "repeatable": true, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 9999, + "maxRunDistance": 7, + "steps": [ + { + "position" : { + "x": -232.405167, + "y": -6.99130058, + "z": -91.79933 + } + } + ] + } + ] + }, + { + "repeatable": false, + "minLevel": 0, + "maxLevel": 99, + "maxBots": 3, + "desirability": 30, + "canRunBetweenObjectives": false, + "name": "Resort West Wing 1st Floor", + "objectives" : [ + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 9999, + "maxRunDistance": 7, + "steps": [ + { + "position" : { + "x": -187.5594, + "y": -3.74104571, + "z": -88.01558 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 9999, + "maxRunDistance": 7, + "steps": [ + { + "position" : { + "x": -181.299, + "y": -3.74103856, + "z": -76.69545 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 9999, + "maxRunDistance": 6, + "steps": [ + { + "position" : { + "x": -157.6492, + "y": -3.741041, + "z": -89.08221 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 9999, + "maxRunDistance": 6, + "steps": [ + { + "position" : { + "x": -143.52034, + "y": -3.74103165, + "z": -75.10444 + } + } + ] + } + ] + }, + { + "repeatable": false, + "minLevel": 0, + "maxLevel": 99, + "maxBots": 3, + "desirability": 20, + "canRunBetweenObjectives": false, + "name": "Resort West Wing 2nd Floor", + "objectives" : [ + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 9999, + "maxRunDistance": 9, + "steps": [ + { + "position" : { + "x": -166.063889, + "y": -0.841046, + "z": -77.14525 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 9999, + "maxRunDistance": 9, + "steps": [ + { + "position" : { + "x": -172.8375, + "y": -0.8410468, + "z": -76.36226 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 9999, + "maxRunDistance": 9, + "steps": [ + { + "position" : { + "x": -179.807083, + "y": -0.8410479, + "z": -76.19767 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 9999, + "maxRunDistance": 9, + "steps": [ + { + "position" : { + "x": -170.999146, + "y": -0.8410535, + "z": -89.5319443 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 9999, + "maxRunDistance": 9, + "steps": [ + { + "position" : { + "x": -165.143127, + "y": -0.8410522, + "z": -88.87021 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 9999, + "maxRunDistance": 9, + "steps": [ + { + "position" : { + "x": -229.643677, + "y": -0.8410611, + "z": -88.45231 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 9999, + "maxRunDistance": 9, + "steps": [ + { + "position" : { + "x": -221.910614, + "y": -0.841059744, + "z": -88.35719 + } + } + ] + } + ] + }, + { + "repeatable": false, + "minLevel": 0, + "maxLevel": 99, + "maxBots": 3, + "desirability": 20, + "canRunBetweenObjectives": false, + "name": "Resort West Wing 3rd Floor", + "objectives" : [ + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 9999, + "maxRunDistance": 12, + "steps": [ + { + "position" : { + "x": -159.285065, + "y": 2.052008, + "z": -77.45637 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 9999, + "maxRunDistance": 12, + "steps": [ + { + "position" : { + "x": -165.337646, + "y": 2.05200028, + "z": -87.7499161 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 9999, + "maxRunDistance": 10, + "steps": [ + { + "position" : { + "x": -196.02124, + "y": 2.05200267, + "z": -76.03062 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 9999, + "maxRunDistance": 10, + "steps": [ + { + "position" : { + "x": -216.621948, + "y": 2.05199385, + "z": -88.08289 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 9999, + "maxRunDistance": 10, + "steps": [ + { + "position" : { + "x": -223.300217, + "y": 2.05198288, + "z": -101.613777 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 9999, + "maxRunDistance": 10, + "steps": [ + { + "position" : { + "x": -227.420212, + "y": 2.051982, + "z": -102.09433 + } + } + ] + } + ] + }, + { + "repeatable": false, + "minLevel": 0, + "maxLevel": 99, + "maxBots": 3, + "desirability": 10, + "name": "Resort Main Basement", + "objectives" : [ + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 9999, + "maxRunDistance": 15, + "steps": [ + { + "position" : { + "x": -254.959808, + "y": -7.0962925, + "z": -144.880447 + } + } + ] + } + ] + }, + { + "repeatable": false, + "minLevel": 0, + "maxLevel": 99, + "maxBots": 3, + "desirability": 10, + "name": "Resort Main 1st Floor", + "objectives" : [ + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 9999, + "maxRunDistance": 18, + "steps": [ + { + "position" : { + "x": -252.661209, + "y": -0.886289954, + "z": -147.8447 + } + } + ] + } + ] + }, + { + "repeatable": false, + "minLevel": 0, + "maxLevel": 99, + "maxBots": 3, + "desirability": 20, + "canRunBetweenObjectives": false, + "name": "Resort Main 2nd Floor", + "objectives" : [ + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 9999, + "maxRunDistance": 6, + "steps": [ + { + "position" : { + "x": -267.643127, + "y": -0.7862999, + "z": -147.012009 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 9999, + "maxRunDistance": 9, + "steps": [ + { + "position" : { + "x": -263.906769, + "y": -0.7862993, + "z": -149.974808 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 9999, + "maxRunDistance": 6, + "steps": [ + { + "position" : { + "x": -272.713531, + "y": -0.7862992, + "z": -132.260712 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 9999, + "maxRunDistance": 5, + "steps": [ + { + "position" : { + "x": -249.263168, + "y": -0.786291957, + "z": -128.359177 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 9999, + "maxRunDistance": 9, + "steps": [ + { + "position" : { + "x": -242.1363, + "y": -0.786298633, + "z": -152.1225 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 9999, + "maxRunDistance": 9, + "steps": [ + { + "position" : { + "x": -237.880157, + "y": -0.7862951, + "z": -134.623383 + } + } + ] + } + ] + }, + { + "repeatable": false, + "minLevel": 0, + "maxLevel": 99, + "maxBots": 3, + "desirability": 20, + "canRunBetweenObjectives": false, + "name": "Resort East Wing 1st Floor", + "objectives" : [ + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 9999, + "maxRunDistance": 7, + "steps": [ + { + "position" : { + "x": -323.113922, + "y": -3.74104452, + "z": -76.694664 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 9999, + "maxRunDistance": 8, + "steps": [ + { + "position" : { + "x": -326.908234, + "y": -3.74104452, + "z": -78.0097 + } + } + ] + } + ] + }, + { + "repeatable": false, + "minLevel": 0, + "maxLevel": 99, + "maxBots": 3, + "desirability": 20, + "canRunBetweenObjectives": false, + "name": "Resort East Wing 2nd Floor", + "objectives" : [ + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 9999, + "maxRunDistance": 10, + "steps": [ + { + "position" : { + "x": -286.572662, + "y": -0.841054738, + "z": -88.4471 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 9999, + "maxRunDistance": 8, + "steps": [ + { + "position" : { + "x": -295.8464, + "y": -0.8410539, + "z": -96.818985 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 9999, + "maxRunDistance": 9, + "steps": [ + { + "position" : { + "x": -307.0522, + "y": -0.84105283, + "z": -89.01459 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 9999, + "maxRunDistance": 9, + "steps": [ + { + "position" : { + "x": -313.07016, + "y": -0.8410529, + "z": -88.49994 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 9999, + "maxRunDistance": 9, + "steps": [ + { + "position" : { + "x": -331.3484, + "y": -0.8410544, + "z": -76.2569 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 9999, + "maxRunDistance": 9, + "steps": [ + { + "position" : { + "x": -342.813843, + "y": -0.841052949, + "z": -88.14022 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 9999, + "maxRunDistance": 9, + "steps": [ + { + "position" : { + "x": -338.8268, + "y": -0.841052949, + "z": -88.43692 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 9999, + "maxRunDistance": 9, + "steps": [ + { + "position" : { + "x": -345.121521, + "y": -0.8410529, + "z": -89.1008453 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 9999, + "maxRunDistance": 9, + "steps": [ + { + "position" : { + "x": -351.129852, + "y": -0.841052949, + "z": -88.54201 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 9999, + "maxRunDistance": 9, + "steps": [ + { + "position" : { + "x": -355.249023, + "y": -0.841053, + "z": -88.2051 + } + } + ] + } + ] + }, + { + "repeatable": false, + "minLevel": 0, + "maxLevel": 99, + "maxBots": 3, + "desirability": 20, + "canRunBetweenObjectives": false, + "name": "Resort East Wing 3rd Floor", + "objectives" : [ + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 9999, + "maxRunDistance": 9, + "steps": [ + { + "position" : { + "x": -361.267181, + "y": 2.05199933, + "z": -75.44241 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 9999, + "maxRunDistance": 11, + "steps": [ + { + "position" : { + "x": -356.618439, + "y": 2.05199885, + "z": -75.58755 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 9999, + "maxRunDistance": 10, + "steps": [ + { + "position" : { + "x": -342.884033, + "y": 2.05200052, + "z": -89.71457 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 9999, + "maxRunDistance": 11, + "steps": [ + { + "position" : { + "x": -324.168579, + "y": 2.051999, + "z": -76.7090759 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 9999, + "maxRunDistance": 11, + "steps": [ + { + "position" : { + "x": -318.3821, + "y": 2.05200052, + "z": -88.6595459 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 9999, + "maxRunDistance": 12, + "steps": [ + { + "position" : { + "x": -313.00766, + "y": 2.05200028, + "z": -87.654686 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 9999, + "maxRunDistance": 6, + "steps": [ + { + "position" : { + "x": -302.5069, + "y": 2.05200052, + "z": -76.06034 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 9999, + "maxRunDistance": 17, + "steps": [ + { + "position" : { + "x": -293.941, + "y": 2.051996, + "z": -88.09664 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 9999, + "maxRunDistance": 13, + "steps": [ + { + "position" : { + "x": -286.6105, + "y": 2.05199623, + "z": -89.11945 + } + } + ] + } + ] + }, + { + "repeatable": true, + "isCamping": true, + "minLevel": 0, + "maxLevel": 99, + "maxBots": 2, + "maxBotsInGroup": 1, + "minRaidET": 300, + "desirability": 10, + "name": "Tunnel Camping", + "forbiddenWeapons" : [ "pistol", "shotgun" ], + "objectives" : [ + { + "repeatable": true, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 750, + "lootAfterCompleting": "Inhibit", + "steps": [ + { + "waitTimeAfterCompleting": 1, + "position" : { + "x": 391.3144, + "y": -49.88845, + "z": 281.82135 + } + }, + { + "stepType" : "Ambush", + "minElapsedTime": { + "min": 45, + "max": 180 + }, + "position" : { + "x": 391.3144, + "y": -49.88845, + "z": 281.82135 + }, + "lookToPosition" : { + "x": 340.19693, + "y": -59.2684937, + "z": 292.860016 + } + } + ] + } + ] + }, + { + "repeatable": true, + "isSniping": true, + "minLevel": 0, + "maxLevel": 99, + "maxBots": 2, + "maxBotsInGroup": 1, + "desirability": 10, + "name": "Smuggler's Base Perimeter", + "forbiddenWeapons" : [ "pistol", "shotgun" ], + "objectives" : [ + { + "repeatable": true, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 9999, + "steps": [ + { + "position" : { + "x": -659.930054, + "y": -26.8988571, + "z": -150.467682 + } + }, + { + "stepType" : "Snipe", + "minElapsedTime": { + "min": 45, + "max": 180 + }, + "position" : { + "x": -652.408264, + "y": -26.898859, + "z": -151.756485 + }, + "lookToPosition" : { + "x": -745.6886, + "y": -38.0334663, + "z": -39.3524857 + } + } + ] + }, + { + "repeatable": true, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 9999, + "steps": [ + { + "position" : { + "x": -652.408264, + "y": -26.898859, + "z": -151.756485 + } + }, + { + "stepType" : "Snipe", + "minElapsedTime": { + "min": 45, + "max": 180 + }, + "position" : { + "x": -652.408264, + "y": -26.898859, + "z": -151.756485 + }, + "lookToPosition" : { + "x": -616.9993, + "y": -35.3503151, + "z": -73.23421 + } + } + ] + }, + { + "repeatable": true, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 9999, + "lootAfterCompleting": "Inhibit", + "steps": [ + { + "position" : { + "x": -619.1516, + "y": -29.91479, + "z": -159.871078 + } + }, + { + "stepType" : "Snipe", + "minElapsedTime": { + "min": 45, + "max": 180 + }, + "position" : { + "x": -619.1516, + "y": -29.91479, + "z": -159.871078 + }, + "lookToPosition" : { + "x": -606.0618, + "y": -35.30925, + "z": -74.07168 + } + } + ] + }, + { + "repeatable": true, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 9999, + "lootAfterCompleting": "Inhibit", + "steps": [ + { + "position" : { + "x": -591.283752, + "y": -29.9329052, + "z": -176.106873 + } + }, + { + "stepType" : "Snipe", + "minElapsedTime": { + "min": 45, + "max": 120 + }, + "position" : { + "x": -591.283752, + "y": -29.9329052, + "z": -176.106873 + }, + "lookToPosition" : { + "x": -528.980347, + "y": -33.96387, + "z": -95.3847351 + } + } + ] + }, + { + "repeatable": true, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 9999, + "steps": [ + { + "position" : { + "x": -613.775757, + "y": -24.3135643, + "z": -214.044266 + } + }, + { + "stepType" : "Snipe", + "minElapsedTime": { + "min": 45, + "max": 120 + }, + "position" : { + "x": -613.775757, + "y": -24.3135643, + "z": -214.044266 + }, + "lookToPosition" : { + "x": -511.399139, + "y": -29.129221, + "z": -176.369125 + } + } + ] + } + ] + }, + { + "repeatable": false, + "minLevel": 0, + "maxLevel": 99, + "maxBots": 3, + "desirability": 35, + "name": "Smuggler's Base Lower", + "objectives" : [ + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 9999, + "steps": [ + { + "position" : { + "x": -659.6437, + "y": -26.8988552, + "z": -160.437546 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 9999, + "steps": [ + { + "position" : { + "x": -637.0751, + "y": -29.8972111, + "z": -178.819809 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 9999, + "maxRunDistance": 3, + "steps": [ + { + "position" : { + "x": -622.1201, + "y": -29.8831959, + "z": -177.351761 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 9999, + "maxRunDistance": 5, + "steps": [ + { + "position" : { + "x": -613.1678, + "y": -29.8831959, + "z": -178.565521 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 9999, + "maxRunDistance": 8, + "steps": [ + { + "position" : { + "x": -605.8719, + "y": -29.8831921, + "z": -176.448135 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 9999, + "maxRunDistance": 8, + "steps": [ + { + "position" : { + "x": -597.0507, + "y": -29.8831959, + "z": -179.305 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 9999, + "maxRunDistance": 5, + "steps": [ + { + "position" : { + "x": -596.0134, + "y": -29.883194, + "z": -175.137024 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 9999, + "maxRunDistance": 3, + "steps": [ + { + "position" : { + "x": -598.224365, + "y": -29.883194, + "z": -185.169769 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 9999, + "steps": [ + { + "position" : { + "x": -638.3148, + "y": -29.91373, + "z": -194.43895 + } + } + ] + } + ] + }, + { + "repeatable": false, + "minLevel": 0, + "maxLevel": 99, + "maxBots": 3, + "desirability": 35, + "name": "Smuggler's Base Upper", + "objectives" : [ + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 9999, + "maxRunDistance": 2, + "steps": [ + { + "position" : { + "x": -634.739258, + "y": -26.69983, + "z": -223.532013 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 9999, + "maxRunDistance": 3, + "steps": [ + { + "position" : { + "x": -613.3373, + "y": -26.7354164, + "z": -213.0972 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 9999, + "maxRunDistance": 9, + "steps": [ + { + "position" : { + "x": -622.0946, + "y": -26.8833637, + "z": -231.472076 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 9999, + "maxRunDistance": 8, + "steps": [ + { + "position" : { + "x": -626.0907, + "y": -26.8833637, + "z": -231.968018 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 9999, + "maxRunDistance": 5, + "steps": [ + { + "position" : { + "x": -632.139954, + "y": -26.88336, + "z": -246.904892 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 9999, + "maxRunDistance": 4, + "steps": [ + { + "position" : { + "x": -627.891235, + "y": -26.88336, + "z": -249.69426 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 9999, + "steps": [ + { + "position" : { + "x": -638.672, + "y": -26.88336, + "z": -243.913208 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 9999, + "steps": [ + { + "position" : { + "x": -655.216064, + "y": -26.93842, + "z": -217.6703 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 9999, + "steps": [ + { + "position" : { + "x": -679.4224, + "y": -26.8511734, + "z": -244.553253 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 9999, + "maxRunDistance": 3, + "steps": [ + { + "position" : { + "x": -669.1542, + "y": -26.8140144, + "z": -247.920654 + } + } + ] + } + ] + }, + { + "repeatable": false, + "minLevel": 0, + "maxLevel": 99, + "maxBots": 2, + "desirability": 15, + "name": "Smuggler's Base VEX Buildings", + "objectives" : [ + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 9999, + "maxRunDistance": 2, + "steps": [ + { + "position" : { + "x": -536.1614, + "y": -18.5464649, + "z": -337.298157 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 9999, + "maxRunDistance": 2, + "steps": [ + { + "position" : { + "x": -519.8777, + "y": -15.896472, + "z": -340.4342 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 9999, + "maxRunDistance": 4, + "steps": [ + { + "position" : { + "x": -514.245544, + "y": -18.498764, + "z": -324.194122 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 9999, + "steps": [ + { + "position" : { + "x": -512.290833, + "y": -18.5832787, + "z": -341.1352 + } + } + ] + } + ] + } +] \ No newline at end of file diff --git a/BepInEx/plugins/DanW-SPTQuestingBots/quests/standard/tarkovstreets.json b/BepInEx/plugins/DanW-SPTQuestingBots/quests/standard/tarkovstreets.json new file mode 100644 index 0000000..c9e0200 --- /dev/null +++ b/BepInEx/plugins/DanW-SPTQuestingBots/quests/standard/tarkovstreets.json @@ -0,0 +1,7178 @@ +[ + { + "repeatable": false, + "minLevel": 15, + "maxLevel": 99, + "maxBots": 3, + "desirability": 30, + "canRunBetweenObjectives": false, + "name": "Lexos Director's Office", + "objectives" : [ + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 100, + "maxRunDistance": 5, + "steps": [ + { + "position" : { + "x": 63.59117, + "y": 6.85782146, + "z": 322.654755 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 100, + "maxRunDistance": 5, + "steps": [ + { + "position" : { + "x": 63.6309, + "y": 6.85782146, + "z": 313.263916 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 100, + "maxRunDistance": 5, + "steps": [ + { + "position" : { + "x": 68.78775, + "y": 6.85781956, + "z": 319.639252 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 100, + "maxRunDistance": 9, + "steps": [ + { + "position" : { + "x": 67.18654, + "y": 6.85782433, + "z": 308.381134 + } + } + ] + } + ] + }, + { + "repeatable": false, + "minLevel": 15, + "maxLevel": 99, + "maxBots": 3, + "desirability": 30, + "name": "Concordia Basement Security Room", + "objectives" : [ + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 500, + "maxRunDistance": 4, + "steps": [ + { + "position" : { + "x": 209.81192, + "y": -1.24632215, + "z": 410.749756 + } + } + ] + } + ] + }, + { + "repeatable": false, + "minLevel": 15, + "maxLevel": 99, + "maxBots": 2, + "desirability": 20, + "canRunBetweenObjectives": false, + "name": "Concordia Apartment 64", + "objectives" : [ + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 500, + "maxRunDistance": 6, + "steps": [ + { + "position" : { + "x": 277.639557, + "y": 6.34998, + "z": 381.5505 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 500, + "maxRunDistance": 5, + "steps": [ + { + "position" : { + "x": 279.186584, + "y": 6.34998035, + "z": 386.976746 + } + } + ] + } + ] + }, + { + "repeatable": true, + "minLevel": 0, + "maxLevel": 99, + "maxBots": 3, + "desirability": 30, + "canRunBetweenObjectives": false, + "name": "Checkannaya 15", + "objectives" : [ + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 1000, + "maxRunDistance": 7, + "steps": [ + { + "position" : { + "x": 107.031654, + "y": 3.762976, + "z": 223.787964 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 1000, + "maxRunDistance": 8, + "steps": [ + { + "position" : { + "x": 122.383759, + "y": 3.52197075, + "z": 218.807953 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 1000, + "maxRunDistance": 7, + "steps": [ + { + "position" : { + "x": 126.530045, + "y": 2.76816821, + "z": 231.436447 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 1000, + "maxRunDistance": 4, + "steps": [ + { + "position" : { + "x": 131.462723, + "y": 3.528088, + "z": 234.0461 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 1000, + "maxRunDistance": 8, + "steps": [ + { + "position" : { + "x": 136.6608, + "y": 3.52808833, + "z": 229.4865 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 1000, + "maxRunDistance": 5, + "steps": [ + { + "position" : { + "x": 140.617279, + "y": 3.528088, + "z": 232.996 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 1000, + "maxRunDistance": 8, + "steps": [ + { + "position" : { + "x": 150.0387, + "y": 3.529985, + "z": 230.1132 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 1000, + "maxRunDistance": 5, + "steps": [ + { + "position" : { + "x": 153.572723, + "y": 3.52998471, + "z": 233.847214 + } + } + ] + } + ] + }, + { + "repeatable": true, + "minLevel": 0, + "maxLevel": 99, + "maxBots": 2, + "desirability": 30, + "name": "Lexos North Entry", + "objectives" : [ + { + "repeatable": true, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 500, + "maxRunDistance": 3, + "steps": [ + { + "position" : { + "x": 84.9201, + "y": 2.76689816, + "z": 266.061432 + } + } + ] + }, + { + "repeatable": true, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 500, + "maxRunDistance": 4, + "steps": [ + { + "position" : { + "x": 70.2452, + "y": 2.65098548, + "z": 266.672363 + } + } + ] + }, + { + "repeatable": true, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 500, + "steps": [ + { + "waitTimeAfterCompleting": 1, + "position" : { + "x": 67.60499, + "y": 5.08100033, + "z": 266.61087 + } + }, + { + "stepType" : "HoldAtPosition", + "maxDistance": 2, + "minElapsedTime": { + "min": 20, + "max": 60 + }, + "position" : { + "x": 67.60499, + "y": 5.08100033, + "z": 266.61087 + } + } + ] + } + ] + }, + { + "repeatable": true, + "minLevel": 0, + "maxLevel": 99, + "maxBots": 2, + "desirability": 30, + "name": "Lexos Center", + "objectives" : [ + { + "repeatable": true, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 1000, + "steps": [ + { + "position" : { + "x": 80.72276, + "y": 2.556306, + "z": 278.84726 + } + } + ] + }, + { + "repeatable": true, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 1000, + "maxRunDistance": 2, + "steps": [ + { + "position" : { + "x": 76.29086, + "y": 2.74420261, + "z": 287.85144 + } + } + ] + }, + { + "repeatable": true, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 1000, + "maxRunDistance": 2, + "steps": [ + { + "position" : { + "x": 77.69905, + "y": 2.71838, + "z": 297.152557 + } + } + ] + }, + { + "repeatable": true, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 1000, + "maxRunDistance": 2, + "steps": [ + { + "position" : { + "x": 84.6198349, + "y": 2.71837974, + "z": 297.0267 + } + } + ] + }, + { + "repeatable": true, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 1000, + "steps": [ + { + "position" : { + "x": 80.18159, + "y": 2.78098464, + "z": 324.432 + } + } + ] + } + ] + }, + { + "repeatable": false, + "minLevel": 0, + "maxLevel": 99, + "maxBots": 2, + "desirability": 20, + "canRunBetweenObjectives": false, + "name": "Lexos Garage", + "objectives" : [ + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 1000, + "maxRunDistance": 8, + "steps": [ + { + "position" : { + "x": 94.91868, + "y": 2.6370666, + "z": 284.166 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 1000, + "maxRunDistance": 11, + "steps": [ + { + "position" : { + "x": 100.884659, + "y": 2.63577485, + "z": 289.585449 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 1000, + "maxRunDistance": 13, + "steps": [ + { + "position" : { + "x": 97.13187, + "y": 2.63658261, + "z": 302.633026 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 1000, + "maxRunDistance": 10, + "steps": [ + { + "position" : { + "x": 95.19816, + "y": 2.636999, + "z": 309.316223 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 1000, + "maxRunDistance": 15, + "steps": [ + { + "position" : { + "x": 99.46748, + "y": 7.021846, + "z": 304.981171 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 1000, + "maxRunDistance": 16, + "steps": [ + { + "position" : { + "x": 100.0858, + "y": 7.021847, + "z": 298.619171 + } + } + ] + } + ] + }, + { + "repeatable": true, + "minLevel": 0, + "maxLevel": 99, + "maxBots": 2, + "desirability": 30, + "name": "Lexos South Entry", + "objectives" : [ + { + "repeatable": true, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 500, + "steps": [ + { + "position" : { + "x": 99.95402, + "y": 2.55629158, + "z": 331.126556 + } + } + ] + }, + { + "repeatable": true, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 500, + "steps": [ + { + "position" : { + "x": 92.39418, + "y": 2.76098371, + "z": 338.0671 + } + } + ] + }, + { + "repeatable": true, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 500, + "steps": [ + { + "position" : { + "x": 87.6478, + "y": 2.55628467, + "z": 353.529358 + } + } + ] + }, + { + "repeatable": true, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 500, + "maxRunDistance": 3, + "steps": [ + { + "position" : { + "x": 83.12437, + "y": 2.72098351, + "z": 354.272247 + } + } + ] + }, + { + "repeatable": true, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 500, + "maxRunDistance": 2, + "steps": [ + { + "position" : { + "x": 70.61547, + "y": 2.75589228, + "z": 349.574371 + } + } + ] + }, + { + "repeatable": true, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 500, + "steps": [ + { + "position" : { + "x": 70.59195, + "y": 2.55639744, + "z": 339.38797 + } + } + ] + }, + { + "repeatable": true, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 500, + "steps": [ + { + "position" : { + "x": 78.38097, + "y": 2.55628943, + "z": 333.959167 + } + } + ] + } + ] + }, + { + "repeatable": false, + "minLevel": 0, + "maxLevel": 99, + "maxBots": 3, + "desirability": 40, + "canRunBetweenObjectives": false, + "name": "Lexos Offices", + "objectives" : [ + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 200, + "maxRunDistance": 8, + "steps": [ + { + "position" : { + "x": 60.37913, + "y": 2.79176617, + "z": 336.540436 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 200, + "maxRunDistance": 11, + "steps": [ + { + "position" : { + "x": 57.6148834, + "y": 2.794958, + "z": 338.840759 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 200, + "maxRunDistance": 12, + "steps": [ + { + "position" : { + "x": 58.0866547, + "y": 2.79463124, + "z": 346.546844 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 200, + "maxRunDistance": 4, + "steps": [ + { + "position" : { + "x": 65.1449, + "y": 2.794631, + "z": 342.3085 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 200, + "maxRunDistance": 12, + "steps": [ + { + "position" : { + "x": 57.01724, + "y": 5.80578041, + "z": 337.827362 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 200, + "maxRunDistance": 12, + "steps": [ + { + "position" : { + "x": 58.0726776, + "y": 5.797699, + "z": 346.1432 + } + } + ] + } + ] + }, + { + "repeatable": true, + "minLevel": 0, + "maxLevel": 99, + "maxBots": 3, + "desirability": 30, + "canRunBetweenObjectives": false, + "name": "Petersen Center", + "objectives" : [ + { + "repeatable": true, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 500, + "steps": [ + { + "position" : { + "x": -126.335716, + "y": 2.29253387, + "z": 334.2128 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 500, + "maxRunDistance": 5, + "steps": [ + { + "position" : { + "x": -151.405685, + "y": 2.21096063, + "z": 340.1596 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 500, + "maxRunDistance": 8, + "steps": [ + { + "position" : { + "x": -141.275177, + "y": 2.21096277, + "z": 333.902832 + } + }, + { + "position" : { + "x": -137.543732, + "y": 2.21096253, + "z": 334.947784 + } + }, + { + "position" : { + "x": -136.797363, + "y": 2.210965, + "z": 327.0172 + } + }, + { + "position" : { + "x": -140.072937, + "y": 2.21096444, + "z": 326.202026 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 500, + "maxRunDistance": 6, + "steps": [ + { + "position" : { + "x": -128.156113, + "y": 2.237129, + "z": 344.9648 + } + } + ] + } + ] + }, + { + "repeatable": false, + "minLevel": 0, + "maxLevel": 99, + "maxBots": 3, + "desirability": 35, + "canRunBetweenObjectives": false, + "name": "Finance Building", + "objectives" : [ + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 500, + "maxRunDistance": 5, + "steps": [ + { + "position" : { + "x": -185.2174, + "y": 2.67399049, + "z": 225.920029 + } + }, + { + "position" : { + "x": -185.990234, + "y": 2.67399073, + "z": 221.566 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 500, + "maxRunDistance": 7, + "steps": [ + { + "position" : { + "x": -185.18718, + "y": 6.06641436, + "z": 223.283157 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 500, + "maxRunDistance": 6, + "steps": [ + { + "position" : { + "x": -176.116653, + "y": 6.0664134, + "z": 226.474213 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 500, + "maxRunDistance": 5, + "steps": [ + { + "position" : { + "x": -163.22171, + "y": 6.066415, + "z": 229.746353 + } + }, + { + "position" : { + "x": -163.523422, + "y": 6.066416, + "z": 225.575333 + } + }, + { + "position" : { + "x": -163.652878, + "y": 6.06641626, + "z": 221.2607 + } + } + ] + } + ] + }, + { + "repeatable": false, + "minLevel": 0, + "maxLevel": 99, + "maxBots": 3, + "desirability": 35, + "canRunBetweenObjectives": false, + "name": "Pinewood Hotel Dentist", + "objectives" : [ + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 500, + "maxRunDistance": 4, + "steps": [ + { + "position" : { + "x": -38.2963066, + "y": 0.862365067, + "z": 46.04437 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 500, + "maxRunDistance": 7, + "steps": [ + { + "position" : { + "x": -60.77056, + "y": 0.825228, + "z": 54.0531769 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 500, + "maxRunDistance": 13, + "steps": [ + { + "position" : { + "x": -44.55558, + "y": 1.30216122, + "z": 57.5889664 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 500, + "maxRunDistance": 13, + "steps": [ + { + "position" : { + "x": -59.53665, + "y": 1.30241525, + "z": 59.6224976 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 500, + "maxRunDistance": 7, + "steps": [ + { + "position" : { + "x": -59.4536629, + "y": 1.30241549, + "z": 62.3383179 + } + } + ] + } + ] + }, + { + "repeatable": true, + "minLevel": 0, + "maxLevel": 99, + "maxBots": 3, + "desirability": 35, + "canRunBetweenObjectives": false, + "name": "Post Office", + "objectives" : [ + { + "repeatable": true, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 500, + "maxRunDistance": 8, + "steps": [ + { + "position" : { + "x": 46.77202, + "y": 1.18034363, + "z": 96.079 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 500, + "maxRunDistance": 7, + "steps": [ + { + "position" : { + "x": 48.5160828, + "y": 1.180341, + "z": 102.245285 + } + }, + { + "position" : { + "x": 52.4108276, + "y": 1.18034256, + "z": 96.25675 + } + }, + { + "position" : { + "x": 52.7779541, + "y": 1.180341, + "z": 100.966194 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 500, + "maxRunDistance": 6, + "steps": [ + { + "position" : { + "x": 40.9684677, + "y": 1.180394, + "z": 122.460022 + } + }, + { + "position" : { + "x": 41.0578575, + "y": 1.18039489, + "z": 112.961975 + } + } + ] + } + ] + }, + { + "repeatable": false, + "minLevel": 0, + "maxLevel": 99, + "maxBots": 2, + "desirability": 35, + "canRunBetweenObjectives": false, + "name": "Primorsky Locked Apartment", + "objectives" : [ + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 300, + "maxRunDistance": 2, + "steps": [ + { + "position" : { + "x": 59.88339, + "y": 0.5484749, + "z": 44.97897 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 300, + "maxRunDistance": 5, + "steps": [ + { + "position" : { + "x": 50.22009, + "y": 0.548498154, + "z": 44.2522545 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 300, + "maxRunDistance": 8, + "steps": [ + { + "position" : { + "x": 59.36107, + "y": 0.548477232, + "z": 37.6915855 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 300, + "maxRunDistance": 5, + "steps": [ + { + "position" : { + "x": 50.254055, + "y": 0.5484985, + "z": 34.2604256 + } + } + ] + } + ] + }, + { + "repeatable": false, + "minLevel": 0, + "maxLevel": 99, + "maxBots": 2, + "desirability": 20, + "canRunBetweenObjectives": false, + "name": "Checkannaya 15 Upstairs", + "objectives" : [ + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 200, + "maxRunDistance": 10, + "steps": [ + { + "position" : { + "x": 131.2291, + "y": 3.52246332, + "z": 227.222748 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 200, + "maxRunDistance": 9, + "steps": [ + { + "position" : { + "x": 145.430145, + "y": 3.52246571, + "z": 209.113754 + } + }, + { + "position" : { + "x": 149.266678, + "y": 3.52246571, + "z": 209.40567 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 200, + "maxRunDistance": 11, + "steps": [ + { + "position" : { + "x": 131.128174, + "y": 9.51623, + "z": 219.004791 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 200, + "maxRunDistance": 7, + "steps": [ + { + "position" : { + "x": 131.671936, + "y": 9.516229, + "z": 233.566879 + } + } + ] + } + ] + }, + { + "repeatable": false, + "minLevel": 0, + "maxLevel": 99, + "maxBots": 3, + "desirability": 30, + "name": "Convoy", + "objectives" : [ + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 500, + "steps": [ + { + "position" : { + "x": 15.9891748, + "y": 2.46774936, + "z": 250.710358 + } + }, + { + "position" : { + "x": 23.2070961, + "y": 2.45975947, + "z": 253.095032 + } + }, + { + "position" : { + "x": 19.0748043, + "y": 2.45240641, + "z": 239.600174 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 500, + "steps": [ + { + "position" : { + "x": 4.358748, + "y": 2.04865384, + "z": 205.190109 + } + }, + { + "position" : { + "x": 6.61812639, + "y": 2.10356116, + "z": 209.869644 + } + } + ] + } + ] + }, + { + "repeatable": true, + "minLevel": 0, + "maxLevel": 99, + "maxBots": 3, + "desirability": 35, + "canRunBetweenObjectives": false, + "name": "Nikitskaya 6", + "objectives" : [ + { + "repeatable": true, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 750, + "maxRunDistance": 5, + "steps": [ + { + "position" : { + "x": -92.42174, + "y": 3.29378319, + "z": 287.105743 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 750, + "maxRunDistance": 10, + "steps": [ + { + "position" : { + "x": -88.81224, + "y": 8.406526, + "z": 286.90036 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 750, + "maxRunDistance": 8, + "steps": [ + { + "position" : { + "x": -104.531021, + "y": 8.497238, + "z": 289.5211 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 750, + "maxRunDistance": 8, + "steps": [ + { + "position" : { + "x": -133.816177, + "y": 8.310071, + "z": 292.367676 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 750, + "maxRunDistance": 8, + "steps": [ + { + "position" : { + "x": -131.347824, + "y": 8.31007, + "z": 285.265533 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 750, + "maxRunDistance": 9, + "steps": [ + { + "position" : { + "x": -131.035019, + "y": 8.702724, + "z": 272.527527 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 750, + "maxRunDistance": 12, + "steps": [ + { + "position" : { + "x": -130.529388, + "y": 13.060854, + "z": 267.382172 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 750, + "maxRunDistance": 6, + "steps": [ + { + "position" : { + "x": -109.479141, + "y": 2.63959885, + "z": 285.0432 + } + } + ] + } + ] + }, + { + "repeatable": false, + "minLevel": 0, + "maxLevel": 99, + "maxBots": 2, + "desirability": 20, + "canRunBetweenObjectives": false, + "name": "Dostoevsky Restaurant", + "objectives" : [ + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 300, + "maxRunDistance": 10, + "steps": [ + { + "position" : { + "x": -193.014969, + "y": 2.3558383, + "z": 256.632141 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 300, + "maxRunDistance": 7, + "steps": [ + { + "position" : { + "x": -199.201157, + "y": 7.005802, + "z": 238.356354 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 300, + "maxRunDistance": 7, + "steps": [ + { + "position" : { + "x": -198.57016, + "y": 7.00579834, + "z": 255.95546 + } + } + ] + } + ] + }, + { + "repeatable": false, + "minLevel": 0, + "maxLevel": 99, + "maxBots": 2, + "desirability": 40, + "canRunBetweenObjectives": false, + "name": "Primorksy 46", + "objectives" : [ + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 500, + "maxRunDistance": 13, + "steps": [ + { + "position" : { + "x": 44.47424, + "y": 10.1843863, + "z": 120.658882 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 500, + "maxRunDistance": 13, + "steps": [ + { + "position" : { + "x": 45.0515175, + "y": 10.18437, + "z": 96.20358 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 500, + "maxRunDistance": 10, + "steps": [ + { + "position" : { + "x": 38.58705, + "y": 10.1858015, + "z": 99.62302 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 500, + "maxRunDistance": 8, + "steps": [ + { + "position" : { + "x": 52.79474, + "y": 7.18406, + "z": 86.59882 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 500, + "maxRunDistance": 10, + "steps": [ + { + "position" : { + "x": 37.303154, + "y": 7.184071, + "z": 87.23076 + } + }, + { + "position" : { + "x": 36.7359734, + "y": 7.18406963, + "z": 92.2372742 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 500, + "maxRunDistance": 6, + "steps": [ + { + "position" : { + "x": 35.9479, + "y": 7.184067, + "z": 100.64019 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 500, + "maxRunDistance": 11, + "steps": [ + { + "position" : { + "x": 44.7881775, + "y": 7.183287, + "z": 121.612381 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 500, + "maxRunDistance": 10, + "steps": [ + { + "position" : { + "x": 44.3224754, + "y": 4.183623, + "z": 93.87775 + } + } + ] + } + ] + }, + { + "repeatable": true, + "minLevel": 0, + "maxLevel": 99, + "maxBots": 2, + "desirability": 25, + "canRunBetweenObjectives": false, + "name": "Underpass Stores", + "objectives" : [ + { + "repeatable": true, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 500, + "maxRunDistance": 4, + "steps": [ + { + "position" : { + "x": 11.6137333, + "y": -3.73700023, + "z": -16.3762531 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 500, + "maxRunDistance": 4, + "steps": [ + { + "position" : { + "x": 5.042418, + "y": -3.7265923, + "z": -0.799274 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 500, + "maxRunDistance": 4, + "steps": [ + { + "position" : { + "x": 11.4650326, + "y": -3.726597, + "z": -9.159293 + } + } + ] + } + ] + }, + { + "repeatable": false, + "minLevel": 0, + "maxLevel": 99, + "maxBots": 2, + "desirability": 15, + "canRunBetweenObjectives": false, + "name": "Concordia Goshan", + "objectives" : [ + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 300, + "maxRunDistance": 5, + "steps": [ + { + "position" : { + "x": 278.637726, + "y": 3.34999919, + "z": 388.843353 + } + }, + { + "position" : { + "x": 268.511475, + "y": 3.34999943, + "z": 384.735931 + } + } + ] + } + ] + }, + { + "repeatable": false, + "minLevel": 0, + "maxLevel": 99, + "maxBots": 2, + "desirability": 10, + "name": "Concordia Apartment 8", + "objectives" : [ + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 300, + "maxRunDistance": 6, + "steps": [ + { + "position" : { + "x": 225.850662, + "y": 9.346801, + "z": 396.850677 + } + } + ] + } + ] + }, + { + "repeatable": false, + "minLevel": 0, + "maxLevel": 99, + "maxBots": 2, + "desirability": 20, + "canRunBetweenObjectives": false, + "name": "Concordia Building 9 Gym", + "objectives" : [ + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 300, + "maxRunDistance": 5, + "steps": [ + { + "position" : { + "x": 138.133163, + "y": 3.4805603, + "z": 382.341522 + } + } + ] + }, + { + "repeatable": true, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 300, + "maxRunDistance": 3, + "steps": [ + { + "position" : { + "x": 147.398926, + "y": 3.48055983, + "z": 385.381744 + } + } + ] + }, + { + "repeatable": true, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 300, + "maxRunDistance": 5, + "steps": [ + { + "position" : { + "x": 149.394241, + "y": 3.480558, + "z": 370.922577 + } + } + ] + }, + { + "repeatable": true, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 300, + "maxRunDistance": 5, + "steps": [ + { + "position" : { + "x": 135.737381, + "y": 3.48055935, + "z": 375.825134 + } + } + ] + } + ] + }, + { + "repeatable": true, + "minLevel": 0, + "maxLevel": 99, + "maxBots": 2, + "desirability": 10, + "canRunBetweenObjectives": false, + "name": "Concordia Building 9 Office", + "objectives" : [ + { + "repeatable": true, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 300, + "maxRunDistance": 7, + "steps": [ + { + "position" : { + "x": 145.34729, + "y": 3.479329, + "z": 354.508362 + } + } + ] + }, + { + "repeatable": true, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 300, + "maxRunDistance": 6, + "steps": [ + { + "position" : { + "x": 150.353729, + "y": 6.457165, + "z": 353.251373 + } + } + ] + }, + { + "repeatable": true, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 300, + "maxRunDistance": 6, + "steps": [ + { + "position" : { + "x": 135.911667, + "y": 6.45716572, + "z": 345.413727 + } + } + ] + } + ] + }, + { + "repeatable": true, + "minLevel": 0, + "maxLevel": 99, + "maxBots": 2, + "desirability": 25, + "name": "Construction", + "objectives" : [ + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 500, + "maxRunDistance": 3, + "steps": [ + { + "position" : { + "x": 183.923279, + "y": 3.46371126, + "z": 323.686523 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 500, + "maxRunDistance": 2, + "steps": [ + { + "position" : { + "x": 202.681351, + "y": 3.519712, + "z": 331.187866 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 500, + "maxRunDistance": 2, + "steps": [ + { + "position" : { + "x": 180.134216, + "y": 6.01271152, + "z": 312.151825 + } + } + ] + }, + { + "repeatable": true, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 500, + "steps": [ + { + "position" : { + "x": 187.193573, + "y": 3.41370249, + "z": 260.996368 + } + } + ] + }, + { + "repeatable": true, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 500, + "maxRunDistance": 7, + "steps": [ + { + "position" : { + "x": 194.834564, + "y": 3.92400026, + "z": 291.57663 + } + } + ] + }, + { + "repeatable": true, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 500, + "steps": [ + { + "position" : { + "x": 211.420578, + "y": 3.92399764, + "z": 304.518524 + } + } + ] + }, + { + "repeatable": true, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 500, + "maxRunDistance": 7, + "steps": [ + { + "position" : { + "x": 197.712067, + "y": 3.92399883, + "z": 303.576 + } + } + ] + }, + { + "repeatable": true, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 500, + "maxRunDistance": 8, + "steps": [ + { + "position" : { + "x": 203.989609, + "y": 6.823969, + "z": 289.046265 + } + } + ] + }, + { + "repeatable": true, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 500, + "maxRunDistance": 8, + "steps": [ + { + "position" : { + "x": 196.583344, + "y": 6.82480955, + "z": 302.0184 + } + } + ] + }, + { + "repeatable": true, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 500, + "maxRunDistance": 3, + "steps": [ + { + "position" : { + "x": 206.397552, + "y": 6.8248086, + "z": 305.487732 + } + } + ] + } + ] + }, + { + "repeatable": true, + "minLevel": 0, + "maxLevel": 99, + "maxBots": 2, + "desirability": 20, + "canRunBetweenObjectives": false, + "name": "Sparja", + "objectives" : [ + { + "repeatable": true, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 500, + "maxRunDistance": 10, + "steps": [ + { + "position" : { + "x": 162.397018, + "y": 3.75064254, + "z": 303.9572 + } + } + ] + }, + { + "repeatable": true, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 500, + "maxRunDistance": 5, + "steps": [ + { + "position" : { + "x": 147.717285, + "y": 3.75064445, + "z": 289.691925 + } + } + ] + }, + { + "repeatable": true, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 500, + "maxRunDistance": 12, + "steps": [ + { + "position" : { + "x": 122.8392, + "y": 3.75064325, + "z": 298.038025 + } + } + ] + }, + { + "repeatable": true, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 500, + "maxRunDistance": 2, + "steps": [ + { + "position" : { + "x": 110.940979, + "y": 3.75064325, + "z": 299.132172 + } + } + ] + }, + { + "repeatable": true, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 500, + "maxRunDistance": 7, + "steps": [ + { + "position" : { + "x": 133.579834, + "y": 3.7506423, + "z": 305.3805 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 500, + "maxRunDistance": 6, + "steps": [ + { + "position" : { + "x": 124.5763, + "y": 6.75064325, + "z": 287.841858 + } + } + ] + } + ] + }, + { + "repeatable": false, + "minLevel": 0, + "maxLevel": 99, + "maxBots": 2, + "desirability": 5, + "name": "Koener Steak and Grill", + "objectives" : [ + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 200, + "maxRunDistance": 11, + "steps": [ + { + "position" : { + "x": 47.7307358, + "y": 3.14347935, + "z": 396.2202 + } + } + ] + } + ] + }, + { + "repeatable": false, + "minLevel": 0, + "maxLevel": 99, + "maxBots": 2, + "desirability": 25, + "name": "Primorsky Extract Area", + "objectives" : [ + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 300, + "steps": [ + { + "position" : { + "x": 9.378766, + "y": 2.11336017, + "z": 445.3327 + } + } + ] + } + ] + }, + { + "repeatable": false, + "minLevel": 0, + "maxLevel": 99, + "maxBots": 2, + "desirability": 5, + "name": "TrainHard", + "objectives" : [ + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 300, + "maxRunDistance": 12, + "steps": [ + { + "position" : { + "x": -167.149963, + "y": 2.43207741, + "z": 465.0839 + } + } + ] + } + ] + }, + { + "repeatable": false, + "minLevel": 0, + "maxLevel": 99, + "maxBots": 2, + "desirability": 20, + "name": "S Cinema Store", + "objectives" : [ + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 300, + "maxRunDistance": 10, + "steps": [ + { + "position" : { + "x": -178.710571, + "y": 2.31757069, + "z": 412.0464 + } + } + ] + } + ] + }, + { + "repeatable": false, + "minLevel": 0, + "maxLevel": 99, + "maxBots": 2, + "desirability": 20, + "canRunBetweenObjectives": false, + "name": "Cinema", + "objectives" : [ + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 300, + "maxRunDistance": 12, + "steps": [ + { + "position" : { + "x": -168.861176, + "y": 8.614478, + "z": 405.7023 + } + }, + { + "position" : { + "x": -166.438843, + "y": 8.61448, + "z": 390.6081 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 300, + "maxRunDistance": 22, + "steps": [ + { + "position" : { + "x": -193.103851, + "y": 9.551875, + "z": 405.726257 + } + }, + { + "position" : { + "x": -193.557251, + "y": 9.551881, + "z": 389.635529 + } + }, + { + "position" : { + "x": -173.323563, + "y": 11.1345778, + "z": 392.1654 + } + }, + { + "position" : { + "x": -172.515259, + "y": 11.134572, + "z": 407.519562 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 300, + "maxRunDistance": 6, + "steps": [ + { + "position" : { + "x": -167.437363, + "y": 11.1744576, + "z": 413.976837 + } + }, + { + "position" : { + "x": -169.744537, + "y": 11.1744585, + "z": 396.928 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 300, + "maxRunDistance": 8, + "steps": [ + { + "position" : { + "x": -163.623611, + "y": 14.190794, + "z": 401.748169 + } + }, + { + "position" : { + "x": -167.929749, + "y": 15.4731655, + "z": 396.964355 + } + }, + { + "position" : { + "x": -167.01358, + "y": 15.5375414, + "z": 404.997772 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 300, + "maxRunDistance": 3, + "steps": [ + { + "position" : { + "x": -192.799683, + "y": 8.61448, + "z": 418.259827 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 300, + "maxRunDistance": 4, + "steps": [ + { + "position" : { + "x": -186.274765, + "y": 8.614479, + "z": 382.1313 + } + } + ] + } + ] + }, + { + "repeatable": false, + "minLevel": 0, + "maxLevel": 99, + "maxBots": 2, + "desirability": 20, + "name": "Cinema Hideout", + "objectives" : [ + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 300, + "maxRunDistance": 4, + "steps": [ + { + "position" : { + "x": -136.313, + "y": 2.51420069, + "z": 399.61557 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 300, + "maxRunDistance": 3, + "steps": [ + { + "position" : { + "x": -130.57222, + "y": 2.36502957, + "z": 395.154022 + } + } + ] + } + ] + }, + { + "repeatable": false, + "minLevel": 0, + "maxLevel": 99, + "maxBots": 2, + "desirability": 20, + "name": "Cinema Courtyard", + "objectives" : [ + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 300, + "steps": [ + { + "position" : { + "x": -88.3481445, + "y": -0.0618792251, + "z": 415.480927 + } + } + ] + } + ] + }, + { + "repeatable": true, + "minLevel": 0, + "maxLevel": 99, + "maxBots": 2, + "desirability": 20, + "canRunBetweenObjectives": false, + "name": "Bilbo Coffee", + "objectives" : [ + { + "repeatable": true, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 300, + "steps": [ + { + "position" : { + "x": -78.67731, + "y": 2.19766021, + "z": 346.673157 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 300, + "maxRunDistance": 5, + "steps": [ + { + "position" : { + "x": -78.4696, + "y": 3.19744158, + "z": 336.493256 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 300, + "maxRunDistance": 10, + "steps": [ + { + "position" : { + "x": -58.0690536, + "y": 3.19708037, + "z": 328.738983 + } + } + ] + }, + { + "repeatable": true, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 300, + "steps": [ + { + "position" : { + "x": -32.7027969, + "y": 2.200041, + "z": 318.871857 + } + } + ] + } + ] + }, + { + "repeatable": false, + "minLevel": 0, + "maxLevel": 99, + "maxBots": 2, + "desirability": 25, + "canRunBetweenObjectives": false, + "name": "Diner", + "objectives" : [ + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 300, + "maxRunDistance": 5, + "steps": [ + { + "position" : { + "x": -78.99263, + "y": 2.358709, + "z": 235.599411 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 300, + "maxRunDistance": 11, + "steps": [ + { + "position" : { + "x": -84.37435, + "y": 3.51010847, + "z": 234.712616 + } + } + ] + } + ] + }, + { + "repeatable": false, + "minLevel": 0, + "maxLevel": 99, + "maxBots": 2, + "desirability": 10, + "name": "Diner Hideout", + "objectives" : [ + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 100, + "maxRunDistance": 4, + "steps": [ + { + "position" : { + "x": -115.483795, + "y": 5.314089, + "z": 246.522964 + } + } + ] + } + ] + }, + { + "repeatable": false, + "minLevel": 0, + "maxLevel": 99, + "maxBots": 2, + "desirability": 10, + "canRunBetweenObjectives": false, + "name": "Car Lot Office", + "objectives" : [ + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 200, + "maxRunDistance": 4, + "steps": [ + { + "position" : { + "x": -154.48761, + "y": 2.22095561, + "z": 226.666275 + } + }, + { + "position" : { + "x": -150.613083, + "y": 2.22095561, + "z": 230.582886 + } + } + ] + } + ] + }, + { + "repeatable": false, + "minLevel": 0, + "maxLevel": 99, + "maxBots": 2, + "desirability": 15, + "canRunBetweenObjectives": false, + "name": "Pinewood Hotel Basement Access", + "objectives" : [ + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 200, + "maxRunDistance": 5, + "steps": [ + { + "position" : { + "x": -118.7841, + "y": 0.8623691, + "z": 67.538826 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 200, + "maxRunDistance": 5, + "steps": [ + { + "position" : { + "x": -102.421928, + "y": 1.3024348, + "z": 64.20833 + } + } + ] + } + ] + }, + { + "repeatable": false, + "minLevel": 0, + "maxLevel": 99, + "maxBots": 2, + "desirability": 15, + "canRunBetweenObjectives": false, + "name": "Pinewood Hotel 2nd Floor", + "objectives" : [ + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 300, + "maxRunDistance": 5, + "steps": [ + { + "position" : { + "x": -78.39963, + "y": 5.04111958, + "z": 51.8656158 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 300, + "maxRunDistance": 6, + "steps": [ + { + "position" : { + "x": -67.2412, + "y": 5.406831, + "z": 52.1554642 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 300, + "maxRunDistance": 7, + "steps": [ + { + "position" : { + "x": -48.3614159, + "y": 5.041134, + "z": 63.0807953 + } + } + ] + } + ] + }, + { + "repeatable": true, + "minLevel": 0, + "maxLevel": 99, + "maxBots": 2, + "desirability": 15, + "canRunBetweenObjectives": false, + "name": "Pinewood Hotel Main Entrance", + "objectives" : [ + { + "repeatable": true, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 300, + "maxRunDistance": 5, + "steps": [ + { + "position" : { + "x": -111.452454, + "y": 5.04, + "z": 85.09824 + } + } + ] + }, + { + "repeatable": true, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 300, + "maxRunDistance": 7, + "steps": [ + { + "position" : { + "x": -117.638565, + "y": 1.40553355, + "z": 101.113449 + } + } + ] + }, + { + "repeatable": true, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 300, + "maxRunDistance": 16, + "steps": [ + { + "position" : { + "x": -93.65344, + "y": 1.40554011, + "z": 120.160233 + } + } + ] + } + ] + }, + { + "repeatable": false, + "minLevel": 0, + "maxLevel": 99, + "maxBots": 3, + "desirability": 25, + "canRunBetweenObjectives": false, + "name": "Pinewood Hotel Sparja", + "objectives" : [ + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 300, + "maxRunDistance": 12, + "steps": [ + { + "position" : { + "x": -84.87919, + "y": 1.41552281, + "z": 172.934341 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 300, + "maxRunDistance": 14, + "steps": [ + { + "position" : { + "x": -82.25215, + "y": 1.41551757, + "z": 162.759613 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 300, + "maxRunDistance": 13, + "steps": [ + { + "position" : { + "x": -76.64591, + "y": 1.41551554, + "z": 157.756989 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 300, + "maxRunDistance": 5, + "steps": [ + { + "position" : { + "x": -59.5457268, + "y": 1.415518, + "z": 162.7091 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 300, + "maxRunDistance": 2, + "steps": [ + { + "position" : { + "x": -56.37617, + "y": 1.41551316, + "z": 149.09993 + } + } + ] + } + ] + }, + { + "repeatable": false, + "minLevel": 0, + "maxLevel": 99, + "maxBots": 2, + "desirability": 10, + "canRunBetweenObjectives": false, + "name": "Pinewood Hotel Burger Spot", + "objectives" : [ + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 200, + "maxRunDistance": 8, + "steps": [ + { + "position" : { + "x": -25.2881985, + "y": 1.41524637, + "z": 138.7331 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 200, + "maxRunDistance": 8, + "steps": [ + { + "position" : { + "x": -37.77276, + "y": 1.41524649, + "z": 137.825592 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 200, + "maxRunDistance": 8, + "steps": [ + { + "position" : { + "x": -27.00257, + "y": 1.41524279, + "z": 128.443451 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 200, + "maxRunDistance": 8, + "steps": [ + { + "position" : { + "x": -26.5760765, + "y": 1.41524792, + "z": 149.059875 + } + } + ] + } + ] + }, + { + "repeatable": false, + "minLevel": 0, + "maxLevel": 99, + "maxBots": 2, + "desirability": 5, + "name": "Nikita Cafe", + "objectives" : [ + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 200, + "maxRunDistance": 5, + "steps": [ + { + "position" : { + "x": -165.343445, + "y": 3.1393652, + "z": 180.151627 + } + } + ] + } + ] + }, + { + "repeatable": true, + "minLevel": 0, + "maxLevel": 99, + "maxBots": 3, + "desirability": 20, + "canRunBetweenObjectives": false, + "name": "Shestyorochka", + "objectives" : [ + { + "repeatable": true, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 500, + "maxRunDistance": 4, + "steps": [ + { + "position" : { + "x": -201.0825, + "y": 3.36668348, + "z": 189.977859 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 500, + "maxRunDistance": 8, + "steps": [ + { + "position" : { + "x": -211.642914, + "y": 3.3666842, + "z": 182.945892 + } + }, + { + "position" : { + "x": -203.771088, + "y": 3.36668468, + "z": 179.882324 + } + }, + { + "position" : { + "x": -194.8432, + "y": 3.366684, + "z": 187.461288 + } + } + ] + } + ] + }, + { + "repeatable": false, + "minLevel": 0, + "maxLevel": 99, + "maxBots": 2, + "desirability": 25, + "canRunBetweenObjectives": false, + "name": "ALCO-Point", + "objectives" : [ + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 300, + "maxRunDistance": 5, + "steps": [ + { + "position" : { + "x": -218.175873, + "y": 2.21795559, + "z": 281.3167 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 300, + "maxRunDistance": 14, + "steps": [ + { + "position" : { + "x": -229.972351, + "y": 2.217955, + "z": 283.433441 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 300, + "maxRunDistance": 5, + "steps": [ + { + "position" : { + "x": -220.285675, + "y": 5.2135, + "z": 277.443 + } + }, + { + "position" : { + "x": -225.23909, + "y": 5.213499, + "z": 275.453064 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 300, + "steps": [ + { + "position" : { + "x": -203.265121, + "y": 2.19421458, + "z": 290.872864 + } + } + ] + } + ] + }, + { + "repeatable": true, + "minLevel": 0, + "maxLevel": 99, + "maxBots": 3, + "desirability": 25, + "canRunBetweenObjectives": false, + "name": "Coffee Joy", + "objectives" : [ + { + "repeatable": true, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 300, + "maxRunDistance": 6, + "steps": [ + { + "position" : { + "x": 39.6098824, + "y": 1.18040562, + "z": 66.18754 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 300, + "maxRunDistance": 5, + "steps": [ + { + "position" : { + "x": 38.0513153, + "y": 1.18040323, + "z": 73.27199 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 300, + "maxRunDistance": 5, + "steps": [ + { + "position" : { + "x": 51.734745, + "y": 1.18033874, + "z": 81.47348 + } + } + ] + } + ] + }, + { + "repeatable": false, + "minLevel": 0, + "maxLevel": 99, + "maxBots": 2, + "desirability": 20, + "canRunBetweenObjectives": false, + "name": "Pharmacy", + "objectives" : [ + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 500, + "maxRunDistance": 7, + "steps": [ + { + "position" : { + "x": 40.5223579, + "y": 2.67797041, + "z": 163.1393 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 500, + "maxRunDistance": 7, + "steps": [ + { + "position" : { + "x": 46.6917076, + "y": 2.67805, + "z": 150.3541 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 500, + "maxRunDistance": 6, + "steps": [ + { + "position" : { + "x": 51.3596344, + "y": 2.67804933, + "z": 155.983551 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 500, + "maxRunDistance": 11, + "steps": [ + { + "position" : { + "x": 41.4061928, + "y": 2.67804146, + "z": 169.504028 + } + } + ] + } + ] + }, + { + "repeatable": true, + "minLevel": 0, + "maxLevel": 99, + "maxBots": 2, + "desirability": 20, + "canRunBetweenObjectives": false, + "name": "Census Building", + "objectives" : [ + { + "repeatable": true, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 500, + "steps": [ + { + "position" : { + "x": 72.1472549, + "y": 0.3662206, + "z": 139.747971 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 500, + "maxRunDistance": 4, + "steps": [ + { + "position" : { + "x": 83.8490143, + "y": 0.8640613, + "z": 142.586487 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 500, + "maxRunDistance": 7, + "steps": [ + { + "position" : { + "x": 79.05966, + "y": 0.8640596, + "z": 125.688652 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 500, + "maxRunDistance": 4, + "steps": [ + { + "position" : { + "x": 86.58047, + "y": 0.8640603, + "z": 129.947113 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 500, + "maxRunDistance": 8, + "steps": [ + { + "position" : { + "x": 77.16726, + "y": 3.90367961, + "z": 134.410675 + } + } + ] + } + ] + }, + { + "repeatable": true, + "minLevel": 0, + "maxLevel": 99, + "maxBots": 2, + "desirability": 20, + "canRunBetweenObjectives": false, + "name": "Brodian Pub", + "objectives" : [ + { + "repeatable": true, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 300, + "maxRunDistance": 4, + "steps": [ + { + "position" : { + "x": 117.564835, + "y": 0.490026951, + "z": 114.563774 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 300, + "maxRunDistance": 7, + "steps": [ + { + "position" : { + "x": 108.783066, + "y": 0.490023881, + "z": 114.631081 + } + } + ] + } + ] + }, + { + "repeatable": true, + "minLevel": 0, + "maxLevel": 99, + "maxBots": 2, + "desirability": 5, + "name": "Prestigio", + "objectives" : [ + { + "repeatable": true, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 200, + "maxRunDistance": 3, + "steps": [ + { + "position" : { + "x": 40.5617371, + "y": 2.80999756, + "z": 232.537369 + } + } + ] + } + ] + }, + { + "repeatable": true, + "minLevel": 0, + "maxLevel": 99, + "maxBots": 2, + "desirability": 5, + "name": "Aba", + "objectives" : [ + { + "repeatable": true, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 200, + "maxRunDistance": 9, + "steps": [ + { + "position" : { + "x": 44.56196, + "y": 2.818258, + "z": 205.943253 + } + } + ] + } + ] + }, + { + "repeatable": true, + "minLevel": 0, + "maxLevel": 99, + "maxBots": 2, + "desirability": 5, + "name": "Theater Construction", + "objectives" : [ + { + "repeatable": true, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 200, + "maxRunDistance": 6, + "steps": [ + { + "position" : { + "x": -16.9014282, + "y": 2.62362361, + "z": 242.336761 + } + } + ] + } + ] + }, + { + "repeatable": false, + "minLevel": 0, + "maxLevel": 99, + "maxBots": 2, + "desirability": 15, + "name": "Theater Hideout", + "objectives" : [ + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 300, + "maxRunDistance": 3, + "steps": [ + { + "position" : { + "x": -35.35087, + "y": 3.32768559, + "z": 240.152985 + } + } + ] + } + ] + }, + { + "repeatable": false, + "minLevel": 0, + "maxLevel": 99, + "maxBots": 2, + "desirability": 15, + "canRunBetweenObjectives": false, + "name": "Malevicha 2", + "objectives" : [ + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 300, + "maxRunDistance": 7, + "steps": [ + { + "position" : { + "x": -187.7615, + "y": 7.16760063, + "z": 281.3147 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 300, + "maxRunDistance": 5, + "steps": [ + { + "position" : { + "x": -174.636978, + "y": 7.152544, + "z": 289.001648 + } + } + ] + } + ] + }, + { + "repeatable": false, + "minLevel": 0, + "maxLevel": 99, + "maxBots": 2, + "desirability": 5, + "name": "Nikitskaya 8", + "objectives" : [ + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 300, + "maxRunDistance": 6, + "steps": [ + { + "position" : { + "x": -148.09642, + "y": 6.14867067, + "z": 265.194977 + } + } + ] + } + ] + }, + { + "repeatable": false, + "minLevel": 0, + "maxLevel": 99, + "maxBots": 2, + "desirability": 10, + "canRunBetweenObjectives": false, + "name": "Zmejsky 5", + "objectives" : [ + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 300, + "maxRunDistance": 6, + "steps": [ + { + "position" : { + "x": 134.034348, + "y": 4.542009, + "z": 152.397919 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 300, + "maxRunDistance": 15, + "steps": [ + { + "position" : { + "x": 116.645363, + "y": 13.4832726, + "z": 136.89183 + } + } + ] + } + ] + }, + { + "repeatable": false, + "minLevel": 0, + "maxLevel": 99, + "maxBots": 2, + "desirability": 5, + "canRunBetweenObjectives": false, + "name": "Zmejsky 3", + "objectives" : [ + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 300, + "maxRunDistance": 7, + "steps": [ + { + "position" : { + "x": 119.996956, + "y": 4.0164485, + "z": 121.786438 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 300, + "maxRunDistance": 6, + "steps": [ + { + "position" : { + "x": 105.831589, + "y": 3.9891665, + "z": 129.6909 + } + } + ] + } + ] + }, + { + "repeatable": false, + "minLevel": 0, + "maxLevel": 99, + "maxBots": 2, + "desirability": 20, + "canRunBetweenObjectives": false, + "name": "Primorksy 48", + "objectives" : [ + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 300, + "maxRunDistance": 8, + "steps": [ + { + "position" : { + "x": 51.01613, + "y": 5.69032431, + "z": 153.588837 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 300, + "maxRunDistance": 6, + "steps": [ + { + "position" : { + "x": 34.8854637, + "y": 5.690976, + "z": 150.6429 + } + } + ] + } + ] + }, + { + "repeatable": true, + "isSniping": true, + "minLevel": 0, + "maxLevel": 99, + "maxBots": 2, + "desirability": 20, + "canRunBetweenObjectives": false, + "name": "Primorksy 48 Bridge", + "forbiddenWeapons" : [ "pistol", "shotgun" ], + "objectives" : [ + { + "repeatable": true, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 300, + "maxRunDistance": 11, + "steps": [ + { + "waitTimeAfterCompleting": 2, + "position" : { + "x": 48.5443535, + "y": 11.7166243, + "z": 142.8658 + } + }, + { + "stepType" : "Snipe", + "minElapsedTime": { + "min": 45, + "max": 180 + }, + "position" : { + "x": 48.5443535, + "y": 11.7166243, + "z": 142.8658 + }, + "lookToPosition" : { + "x": -6.248683, + "y": 1.48904061, + "z": 142.435852 + } + }, + { + "waitTimeAfterCompleting": 2, + "position" : { + "x": 52.73892, + "y": 11.7166243, + "z": 142.1063 + } + }, + { + "stepType" : "Snipe", + "minElapsedTime": { + "min": 30, + "max": 90 + }, + "position" : { + "x": 52.73892, + "y": 11.7166243, + "z": 142.1063 + }, + "lookToPosition" : { + "x": 99.8137741, + "y": 0.936501145, + "z": 157.2298 + } + } + ] + } + ] + }, + { + "repeatable": false, + "minLevel": 0, + "maxLevel": 99, + "maxBots": 2, + "desirability": 25, + "canRunBetweenObjectives": false, + "name": "Primorksy 48 Apt 10", + "objectives" : [ + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 300, + "maxRunDistance": 12, + "steps": [ + { + "position" : { + "x": 37.5278778, + "y": 11.7009592, + "z": 151.0797 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 300, + "maxRunDistance": 11, + "steps": [ + { + "position" : { + "x": 35.69193, + "y": 11.7009583, + "z": 155.648819 + } + } + ] + } + ] + }, + { + "repeatable": false, + "minLevel": 0, + "maxLevel": 99, + "maxBots": 2, + "desirability": 20, + "canRunBetweenObjectives": false, + "name": "Crash Site Warehouse", + "objectives" : [ + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 300, + "maxRunDistance": 8, + "steps": [ + { + "position" : { + "x": 143.317337, + "y": 3.06238532, + "z": 454.573334 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 300, + "maxRunDistance": 5, + "steps": [ + { + "position" : { + "x": 140.6442, + "y": 3.190387, + "z": 443.765625 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 300, + "maxRunDistance": 10, + "steps": [ + { + "position" : { + "x": 143.628662, + "y": 6.173671, + "z": 454.5801 + } + } + ] + } + ] + }, + { + "repeatable": false, + "minLevel": 0, + "maxLevel": 99, + "maxBots": 2, + "desirability": 15, + "canRunBetweenObjectives": false, + "name": "School", + "objectives" : [ + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 300, + "maxRunDistance": 9, + "steps": [ + { + "position" : { + "x": 208.30722, + "y": 0.332341164, + "z": 139.277084 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 300, + "maxRunDistance": 4, + "steps": [ + { + "position" : { + "x": 202.807709, + "y": 0.332339168, + "z": 113.455948 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 300, + "maxRunDistance": 10, + "steps": [ + { + "position" : { + "x": 212.954071, + "y": 3.7872, + "z": 115.296028 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 300, + "maxRunDistance": 4, + "steps": [ + { + "position" : { + "x": 217.717178, + "y": 3.7872, + "z": 107.028122 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 300, + "maxRunDistance": 11, + "steps": [ + { + "position" : { + "x": 213.8071, + "y": 3.787199, + "z": 122.16214 + } + }, + { + "position" : { + "x": 210.567062, + "y": 3.78719258, + "z": 132.533112 + } + } + ] + } + ] + }, + { + "repeatable": false, + "minLevel": 0, + "maxLevel": 99, + "maxBots": 2, + "desirability": 20, + "canRunBetweenObjectives": false, + "name": "Building across from Brodian Pub", + "objectives" : [ + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 300, + "maxRunDistance": 7, + "steps": [ + { + "position" : { + "x": 138.508072, + "y": -1.37988329, + "z": 78.6828842 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 300, + "maxRunDistance": 5, + "steps": [ + { + "position" : { + "x": 135.400665, + "y": -1.37987971, + "z": 97.25723 + } + } + ] + } + ] + }, + { + "repeatable": false, + "minLevel": 0, + "maxLevel": 99, + "maxBots": 3, + "desirability": 35, + "canRunBetweenObjectives": false, + "name": "Terragroup Building", + "objectives" : [ + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 500, + "maxRunDistance": 7, + "steps": [ + { + "position" : { + "x": 56.34013, + "y": 0.242748529, + "z": -74.131546 + } + }, + { + "position" : { + "x": 59.560276, + "y": 0.242748484, + "z": -74.53773 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 500, + "maxRunDistance": 7, + "steps": [ + { + "position" : { + "x": 62.5269, + "y": 0.24274838, + "z": -78.1427 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 500, + "maxRunDistance": 6, + "steps": [ + { + "position" : { + "x": 44.6521, + "y": 0.242748514, + "z": -75.06181 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 500, + "maxRunDistance": 6, + "steps": [ + { + "position" : { + "x": 45.1506424, + "y": 0.242749974, + "z": -54.7859077 + } + } + ] + } + ] + }, + { + "repeatable": false, + "minLevel": 0, + "maxLevel": 99, + "maxBots": 3, + "desirability": 30, + "canRunBetweenObjectives": false, + "name": "Terragroup Office", + "objectives" : [ + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 500, + "maxRunDistance": 10, + "steps": [ + { + "position" : { + "x": -33.83076, + "y": 6.60802555, + "z": -111.549194 + } + }, + { + "position" : { + "x": -28.671175, + "y": 6.60802555, + "z": -111.118248 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 500, + "maxRunDistance": 5, + "steps": [ + { + "position" : { + "x": -38.37327, + "y": 6.608024, + "z": -118.506042 + } + }, + { + "position" : { + "x": -27.8757477, + "y": 6.608024, + "z": -118.210564 + } + } + ] + } + ] + }, + { + "repeatable": false, + "minLevel": 0, + "maxLevel": 99, + "maxBots": 2, + "desirability": 20, + "canRunBetweenObjectives": false, + "name": "Mall Storage and Construction", + "objectives" : [ + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 500, + "maxRunDistance": 24, + "steps": [ + { + "position" : { + "x": -104.601, + "y": 0.583438158, + "z": -42.01645 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 500, + "maxRunDistance": 48, + "steps": [ + { + "position" : { + "x": -114.051857, + "y": 0.6860739, + "z": -64.76171 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 500, + "maxRunDistance": 50, + "steps": [ + { + "position" : { + "x": -117.623489, + "y": 0.607983947, + "z": -69.0031 + } + } + ] + } + ] + }, + { + "repeatable": false, + "minLevel": 0, + "maxLevel": 99, + "maxBots": 2, + "desirability": 15, + "canRunBetweenObjectives": false, + "name": "Mall Storage and Construction Rear", + "objectives" : [ + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 300, + "maxRunDistance": 50, + "steps": [ + { + "position" : { + "x": -147.374527, + "y": 0.607990742, + "z": -69.8537445 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 300, + "maxRunDistance": 50, + "steps": [ + { + "position" : { + "x": -107.369766, + "y": 0.607988834, + "z": -71.28318 + } + } + ] + } + ] + }, + { + "repeatable": true, + "isSniping": true, + "minLevel": 0, + "maxLevel": 99, + "maxBots": 3, + "desirability": 35, + "canRunBetweenObjectives": false, + "name": "Beluga", + "objectives" : [ + { + "repeatable": true, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 500, + "steps": [ + { + "waitTimeAfterCompleting": 2, + "position" : { + "x": -38.4692955, + "y": 0.599966645, + "z": -45.16779 + } + }, + { + "stepType" : "HoldAtPosition", + "maxDistance": 5, + "minElapsedTime": { + "min": 10, + "max": 45 + }, + "position" : { + "x": -38.4692955, + "y": 0.599966645, + "z": -45.16779 + } + }, + { + "waitTimeAfterCompleting": 2, + "position" : { + "x": -45.33511, + "y": 0.6216386, + "z": -36.7298355 + } + }, + { + "stepType" : "HoldAtPosition", + "maxDistance": 5, + "minElapsedTime": { + "min": 10, + "max": 45 + }, + "position" : { + "x": -45.33511, + "y": 0.6216386, + "z": -36.7298355 + } + }, + { + "waitTimeAfterCompleting": 2, + "position" : { + "x": -29.8334522, + "y": 0.6120954, + "z": -44.8534851 + } + }, + { + "stepType" : "HoldAtPosition", + "maxDistance": 5, + "minElapsedTime": { + "min": 10, + "max": 45 + }, + "position" : { + "x": -29.8334522, + "y": 0.6120954, + "z": -44.8534851 + } + } + ] + }, + { + "repeatable": true, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 500, + "maxRunDistance": 5, + "steps": [ + { + "waitTimeAfterCompleting": 2, + "position" : { + "x": -27.93754, + "y": 5.130017, + "z": -33.9282265 + } + }, + { + "stepType" : "Snipe", + "minElapsedTime": { + "min": 20, + "max": 60 + }, + "position" : { + "x": -27.93754, + "y": 5.130017, + "z": -33.9282265 + }, + "lookToPosition" : { + "x": -30.9397335, + "y": 1.39377892, + "z": 50.2239761 + } + }, + { + "waitTimeAfterCompleting": 2, + "position" : { + "x": -46.3925819, + "y": 5.099983, + "z": -30.2969856 + } + }, + { + "stepType" : "Snipe", + "minElapsedTime": { + "min": 30, + "max": 90 + }, + "position" : { + "x": -46.3925819, + "y": 5.099983, + "z": -30.2969856 + }, + "lookToPosition" : { + "x": -30.9397335, + "y": 1.39377892, + "z": 50.2239761 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 500, + "maxRunDistance": 5, + "steps": [ + { + "waitTimeAfterCompleting": 2, + "position" : { + "x": -60.28956, + "y": 5.09998035, + "z": -28.0160255 + } + }, + { + "stepType" : "Snipe", + "minElapsedTime": { + "min": 30, + "max": 90 + }, + "position" : { + "x": -60.28956, + "y": 5.09998035, + "z": -28.0160255 + }, + "lookToPosition" : { + "x": -46.29684, + "y": -0.0366578177, + "z": 26.2706852 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 500, + "maxRunDistance": 18, + "steps": [ + { + "position" : { + "x": -47.5578041, + "y": 9.604668, + "z": -71.95512 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 500, + "maxRunDistance": 15, + "steps": [ + { + "position" : { + "x": -36.7101936, + "y": 9.60098648, + "z": -73.1345749 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 750, + "maxRunDistance": 10, + "steps": [ + { + "position" : { + "x": -22.3383141, + "y": 9.600991, + "z": -60.5044 + } + }, + { + "waitTimeAfterCompleting": 2, + "position" : { + "x": -20.6509666, + "y": 9.600991, + "z": -54.7453 + } + }, + { + "stepType" : "Snipe", + "minElapsedTime": { + "min": 30, + "max": 120 + }, + "position" : { + "x": -20.6509666, + "y": 9.600991, + "z": -54.7453 + }, + "lookToPosition" : { + "x": 15.12835, + "y": -0.400947422, + "z": -14.8123875 + } + }, + { + "position" : { + "x": -18.2722073, + "y": 9.600991, + "z": -57.1945953 + } + } + ] + } + ] + }, + { + "repeatable": false, + "minLevel": 0, + "maxLevel": 99, + "maxBots": 2, + "desirability": 10, + "canRunBetweenObjectives": false, + "name": "Beluga Rear Storage", + "objectives" : [ + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 300, + "maxRunDistance": 8, + "steps": [ + { + "position" : { + "x": -41.64874, + "y": 0.6011204, + "z": -67.74534 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 300, + "maxRunDistance": 19, + "steps": [ + { + "position" : { + "x": -61.9752274, + "y": 0.599967, + "z": -69.28857 + } + } + ] + } + ] + }, + { + "repeatable": true, + "minLevel": 0, + "maxLevel": 99, + "maxBots": 2, + "maxBotsInGroup": 1, + "desirability": 15, + "name": "Primorsky Courtyard", + "objectives" : [ + { + "repeatable": true, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 500, + "lootAfterCompleting": "Inhibit", + "steps": [ + { + "waitTimeAfterCompleting": 1, + "position" : { + "x": 56.3479233, + "y": 0.3971393, + "z": 65.8521 + } + }, + { + "stepType" : "HoldAtPosition", + "maxDistance": 5, + "minElapsedTime": { + "min": 30, + "max": 90 + }, + "position" : { + "x": 56.3479233, + "y": 0.3971393, + "z": 65.8521 + } + } + ] + }, + { + "repeatable": true, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 500, + "maxRunDistance": 8, + "lootAfterCompleting": "Inhibit", + "steps": [ + { + "waitTimeAfterCompleting": 1, + "position" : { + "x": 109.903419, + "y": -1.80542445, + "z": 88.87916 + } + }, + { + "stepType" : "HoldAtPosition", + "maxDistance": 5, + "minElapsedTime": { + "min": 20, + "max": 60 + }, + "position" : { + "x": 109.903419, + "y": -1.80542445, + "z": 88.87916 + } + } + ] + }, + { + "repeatable": true, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 500, + "maxRunDistance": 5, + "lootAfterCompleting": "Inhibit", + "steps": [ + { + "waitTimeAfterCompleting": 1, + "position" : { + "x": 77.20853, + "y": 0.4610692, + "z": 103.875023 + } + }, + { + "stepType" : "HoldAtPosition", + "maxDistance": 5, + "minElapsedTime": { + "min": 20, + "max": 60 + }, + "position" : { + "x": 77.20853, + "y": 0.4610692, + "z": 103.875023 + } + } + ] + }, + { + "repeatable": true, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 500, + "lootAfterCompleting": "Inhibit", + "steps": [ + { + "waitTimeAfterCompleting": 1, + "position" : { + "x": 72.19021, + "y": 0.439517617, + "z": 121.300545 + } + }, + { + "stepType" : "HoldAtPosition", + "maxDistance": 5, + "minElapsedTime": { + "min": 30, + "max": 90 + }, + "position" : { + "x": 72.19021, + "y": 0.439517617, + "z": 121.300545 + } + } + ] + }, + { + "repeatable": true, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 500, + "lootAfterCompleting": "Inhibit", + "steps": [ + { + "waitTimeAfterCompleting": 1, + "position" : { + "x": 91.03747, + "y": 0.936500132, + "z": 165.844482 + } + }, + { + "stepType" : "HoldAtPosition", + "maxDistance": 5, + "minElapsedTime": { + "min": 30, + "max": 90 + }, + "position" : { + "x": 91.03747, + "y": 0.936500132, + "z": 165.844482 + } + } + ] + }, + { + "repeatable": true, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 500, + "lootAfterCompleting": "Inhibit", + "steps": [ + { + "waitTimeAfterCompleting": 1, + "position" : { + "x": 69.71718, + "y": 0.8752645, + "z": 190.368637 + } + }, + { + "stepType" : "HoldAtPosition", + "maxDistance": 5, + "minElapsedTime": { + "min": 30, + "max": 90 + }, + "position" : { + "x": 69.71718, + "y": 0.8752645, + "z": 190.368637 + } + } + ] + }, + { + "repeatable": true, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 500, + "lootAfterCompleting": "Inhibit", + "steps": [ + { + "waitTimeAfterCompleting": 1, + "position" : { + "x": 55.30679, + "y": 1.806842, + "z": 211.80069 + } + }, + { + "stepType" : "HoldAtPosition", + "maxDistance": 5, + "minElapsedTime": { + "min": 30, + "max": 90 + }, + "position" : { + "x": 55.30679, + "y": 1.806842, + "z": 211.80069 + } + } + ] + }, + { + "repeatable": true, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 500, + "lootAfterCompleting": "Inhibit", + "steps": [ + { + "waitTimeAfterCompleting": 1, + "position" : { + "x": 102.5392, + "y": 1.80684209, + "z": 210.893326 + } + }, + { + "stepType" : "HoldAtPosition", + "maxDistance": 5, + "minElapsedTime": { + "min": 30, + "max": 90 + }, + "position" : { + "x": 102.5392, + "y": 1.80684209, + "z": 210.893326 + } + } + ] + }, + { + "repeatable": true, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 500, + "lootAfterCompleting": "Inhibit", + "steps": [ + { + "waitTimeAfterCompleting": 1, + "position" : { + "x": 130.035736, + "y": 1.806843, + "z": 203.031387 + } + }, + { + "stepType" : "HoldAtPosition", + "maxDistance": 5, + "minElapsedTime": { + "min": 30, + "max": 90 + }, + "position" : { + "x": 130.035736, + "y": 1.806843, + "z": 203.031387 + } + } + ] + } + ] + }, + { + "repeatable": true, + "minLevel": 0, + "maxLevel": 99, + "maxBots": 2, + "desirability": 15, + "pmcsOnly": true, + "name": "Pinewood Hotel Patrol", + "objectives" : [ + { + "repeatable": true, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 500, + "lootAfterCompleting": "Inhibit", + "steps": [ + { + "waitTimeAfterCompleting": 1, + "position" : { + "x": -29.59368, + "y": 2.13255286, + "z": 59.3848534 + } + }, + { + "stepType" : "HoldAtPosition", + "maxDistance": 5, + "minElapsedTime": { + "min": 30, + "max": 90 + }, + "position" : { + "x": -29.59368, + "y": 2.13255286, + "z": 59.3848534 + } + } + ] + }, + { + "repeatable": true, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 500, + "lootAfterCompleting": "Inhibit", + "steps": [ + { + "waitTimeAfterCompleting": 1, + "position" : { + "x": -46.74783, + "y": 0.924344242, + "z": 113.845749 + } + }, + { + "stepType" : "HoldAtPosition", + "maxDistance": 5, + "minElapsedTime": { + "min": 30, + "max": 90 + }, + "position" : { + "x": -46.74783, + "y": 0.924344242, + "z": 113.845749 + } + } + ] + }, + { + "repeatable": true, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 500, + "lootAfterCompleting": "Inhibit", + "steps": [ + { + "waitTimeAfterCompleting": 1, + "position" : { + "x": -84.4248, + "y": 0.7818383, + "z": 140.0992 + } + }, + { + "stepType" : "HoldAtPosition", + "maxDistance": 5, + "minElapsedTime": { + "min": 30, + "max": 90 + }, + "position" : { + "x": -84.4248, + "y": 0.7818383, + "z": 140.0992 + } + } + ] + }, + { + "repeatable": true, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 500, + "lootAfterCompleting": "Inhibit", + "steps": [ + { + "waitTimeAfterCompleting": 1, + "position" : { + "x": -118.395714, + "y": 1.39386487, + "z": 116.379974 + } + }, + { + "stepType" : "HoldAtPosition", + "maxDistance": 5, + "minElapsedTime": { + "min": 30, + "max": 90 + }, + "position" : { + "x": -118.395714, + "y": 1.39386487, + "z": 116.379974 + } + } + ] + }, + { + "repeatable": true, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 500, + "lootAfterCompleting": "Inhibit", + "steps": [ + { + "waitTimeAfterCompleting": 1, + "position" : { + "x": -111.091057, + "y": 0.7818203, + "z": 82.57084 + } + }, + { + "stepType" : "HoldAtPosition", + "maxDistance": 5, + "minElapsedTime": { + "min": 30, + "max": 90 + }, + "position" : { + "x": -111.091057, + "y": 0.7818203, + "z": 82.57084 + } + } + ] + }, + { + "repeatable": true, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 500, + "lootAfterCompleting": "Inhibit", + "steps": [ + { + "waitTimeAfterCompleting": 1, + "position" : { + "x": -59.40102, + "y": 0.9088143, + "z": 71.2935 + } + }, + { + "stepType" : "HoldAtPosition", + "maxDistance": 5, + "minElapsedTime": { + "min": 30, + "max": 90 + }, + "position" : { + "x": -59.40102, + "y": 0.9088143, + "z": 71.2935 + } + } + ] + }, + { + "repeatable": true, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 500, + "maxRunDistance": 5, + "lootAfterCompleting": "Inhibit", + "steps": [ + { + "waitTimeAfterCompleting": 2, + "position" : { + "x": -79.6148758, + "y": 1.4166919, + "z": 108.157623 + } + }, + { + "stepType" : "HoldAtPosition", + "maxDistance": 5, + "minElapsedTime": { + "min": 20, + "max": 60 + }, + "position" : { + "x": -79.6148758, + "y": 1.4166919, + "z": 108.157623 + } + } + ] + }, + { + "repeatable": true, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 500, + "lootAfterCompleting": "Inhibit", + "steps": [ + { + "waitTimeAfterCompleting": 1, + "position" : { + "x": -59.3550034, + "y": 0.930239856, + "z": 91.5497742 + } + }, + { + "stepType" : "HoldAtPosition", + "maxDistance": 5, + "minElapsedTime": { + "min": 30, + "max": 90 + }, + "position" : { + "x": -59.3550034, + "y": 0.930239856, + "z": 91.5497742 + } + } + ] + } + ] + }, + { + "repeatable": true, + "isSniping": true, + "minLevel": 0, + "maxLevel": 99, + "maxBots": 2, + "maxBotsInGroup": 1, + "desirability": 20, + "pmcsOnly": true, + "name": "Cinema Sniping", + "forbiddenWeapons" : [ "pistol", "shotgun" ], + "objectives" : [ + { + "repeatable": true, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 500, + "lootAfterCompleting": "Inhibit", + "steps": [ + { + "waitTimeAfterCompleting": 1, + "position" : { + "x": -155.487381, + "y": 8.612576, + "z": 417.749939 + } + }, + { + "stepType" : "Snipe", + "minElapsedTime": { + "min": 45, + "max": 120 + }, + "position" : { + "x": -155.487381, + "y": 8.612576, + "z": 417.749939 + }, + "lookToPosition" : { + "x": -116.18235, + "y": 2.73625278, + "z": 410.7118 + } + } + ] + }, + { + "repeatable": true, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 500, + "lootAfterCompleting": "Inhibit", + "steps": [ + { + "waitTimeAfterCompleting": 1, + "position" : { + "x": -141.055588, + "y": 8.615528, + "z": 407.461823 + } + }, + { + "stepType" : "HoldAtPosition", + "maxDistance": 5, + "minElapsedTime": { + "min": 45, + "max": 120 + }, + "position" : { + "x": -141.055588, + "y": 8.615528, + "z": 407.461823 + } + } + ] + }, + { + "repeatable": true, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 500, + "lootAfterCompleting": "Inhibit", + "steps": [ + { + "waitTimeAfterCompleting": 1, + "position" : { + "x": -140.654236, + "y": 8.615907, + "z": 393.06662 + } + }, + { + "stepType" : "HoldAtPosition", + "maxDistance": 5, + "minElapsedTime": { + "min": 45, + "max": 120 + }, + "position" : { + "x": -140.654236, + "y": 8.615907, + "z": 393.06662 + } + } + ] + }, + { + "repeatable": true, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 500, + "lootAfterCompleting": "Inhibit", + "steps": [ + { + "waitTimeAfterCompleting": 1, + "position" : { + "x": -155.320755, + "y": 8.612573, + "z": 379.406738 + } + }, + { + "stepType" : "HoldAtPosition", + "maxDistance": 5, + "minElapsedTime": { + "min": 45, + "max": 120 + }, + "position" : { + "x": -155.320755, + "y": 8.612573, + "z": 379.406738 + } + } + ] + }, + { + "repeatable": true, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 500, + "lootAfterCompleting": "Inhibit", + "steps": [ + { + "waitTimeAfterCompleting": 1, + "position" : { + "x": -181.624435, + "y": 8.612579, + "z": 376.933472 + } + }, + { + "stepType" : "Snipe", + "minElapsedTime": { + "min": 45, + "max": 120 + }, + "position" : { + "x": -181.624435, + "y": 8.612579, + "z": 376.933472 + }, + "lookToPosition" : { + "x": -174.234634, + "y": 2.11355042, + "z": 333.569519 + } + } + ] + } + ] + }, + { + "repeatable": true, + "minLevel": 0, + "maxLevel": 99, + "maxBots": 3, + "desirability": 15, + "name": "Concordia Courtyard", + "objectives" : [ + { + "repeatable": true, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 300, + "steps": [ + { + "waitTimeAfterCompleting": 2, + "position" : { + "x": 251.376511, + "y": 3.435551, + "z": 391.864258 + } + }, + { + "stepType" : "HoldAtPosition", + "maxDistance": 5, + "minElapsedTime": { + "min": 10, + "max": 45 + }, + "position" : { + "x": 251.376511, + "y": 3.435551, + "z": 391.864258 + } + } + ] + }, + { + "repeatable": true, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 300, + "steps": [ + { + "waitTimeAfterCompleting": 2, + "position" : { + "x": 237.170456, + "y": 3.45196724, + "z": 342.2511 + } + }, + { + "stepType" : "HoldAtPosition", + "maxDistance": 5, + "minElapsedTime": { + "min": 10, + "max": 45 + }, + "position" : { + "x": 237.170456, + "y": 3.45196724, + "z": 342.2511 + } + } + ] + }, + { + "repeatable": true, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 300, + "steps": [ + { + "waitTimeAfterCompleting": 2, + "position" : { + "x": 203.37616, + "y": 3.4520092, + "z": 367.619049 + } + }, + { + "stepType" : "HoldAtPosition", + "maxDistance": 5, + "minElapsedTime": { + "min": 10, + "max": 45 + }, + "position" : { + "x": 203.37616, + "y": 3.4520092, + "z": 367.619049 + } + } + ] + } + ] + }, + { + "repeatable": true, + "minLevel": 0, + "maxLevel": 99, + "maxBots": 3, + "desirability": 20, + "name": "Concordia Basement", + "objectives" : [ + { + "repeatable": true, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 300, + "maxRunDistance": 5, + "steps": [ + { + "position" : { + "x": 258.8612, + "y": -1.24440229, + "z": 357.061584 + } + } + ] + }, + { + "repeatable": true, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 300, + "steps": [ + { + "waitTimeAfterCompleting": 2, + "position" : { + "x": 201.4759, + "y": -1.25006711, + "z": 378.854065 + } + }, + { + "stepType" : "HoldAtPosition", + "maxDistance": 5, + "minElapsedTime": { + "min": 30, + "max": 120 + }, + "position" : { + "x": 201.4759, + "y": -1.25006711, + "z": 378.854065 + } + } + ] + }, + { + "repeatable": true, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 300, + "maxRunDistance": 5, + "steps": [ + { + "position" : { + "x": 156.4557, + "y": -1.25006485, + "z": 356.111 + } + } + ] + }, + { + "repeatable": true, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 300, + "maxRunDistance": 3, + "steps": [ + { + "position" : { + "x": 264.190247, + "y": -1.25006616, + "z": 369.692322 + } + } + ] + } + ] + }, + { + "repeatable": false, + "minLevel": 0, + "maxLevel": 99, + "maxBots": 2, + "desirability": 10, + "name": "Crash SW Apartment", + "objectives" : [ + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 300, + "steps": [ + { + "position" : { + "x": 276.652161, + "y": 3.60125566, + "z": 503.0309 + } + } + ] + } + ] + }, + { + "repeatable": false, + "minLevel": 0, + "maxLevel": 99, + "maxBots": 2, + "desirability": 5, + "canRunBetweenObjectives": false, + "name": "Father and Sons Apartments", + "objectives" : [ + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 300, + "maxRunDistance": 5, + "steps": [ + { + "position" : { + "x": 80.3845749, + "y": 2.810018, + "z": 221.758957 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 300, + "maxRunDistance": 10, + "steps": [ + { + "position" : { + "x": 55.9439659, + "y": 12.2105751, + "z": 235.7482 + } + } + ] + } + ] + }, + { + "repeatable": false, + "minLevel": 0, + "maxLevel": 99, + "maxBots": 2, + "desirability": 20, + "canRunBetweenObjectives": false, + "name": "Golden World", + "objectives" : [ + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 300, + "maxRunDistance": 4, + "steps": [ + { + "position" : { + "x": 118.639778, + "y": -0.431030571, + "z": 43.3049469 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 300, + "maxRunDistance": 7, + "steps": [ + { + "position" : { + "x": 105.2456, + "y": -1.774099, + "z": 36.9612579 + } + } + ] + } + ] + }, + { + "repeatable": false, + "minLevel": 0, + "maxLevel": 99, + "maxBots": 2, + "desirability": 10, + "name": "Shop Near Kamchatskaya Arch", + "objectives" : [ + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 300, + "maxRunDistance": 6, + "steps": [ + { + "position" : { + "x": 247.775116, + "y": -4.230576, + "z": 51.93341 + } + } + ] + } + ] + }, + { + "repeatable": false, + "minLevel": 0, + "maxLevel": 99, + "maxBots": 2, + "desirability": 5, + "canRunBetweenObjectives": false, + "name": "Apartments Across from Kamchatskaya Arch", + "objectives" : [ + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 300, + "maxRunDistance": 4, + "steps": [ + { + "position" : { + "x": 227.39299, + "y": -4.059657, + "z": 58.66051 + } + }, + { + "position" : { + "x": 219.6025, + "y": -4.059657, + "z": 57.6755371 + } + } + ] + } + ] + }, + { + "repeatable": true, + "minLevel": 0, + "maxLevel": 99, + "maxBots": 2, + "desirability": 10, + "name": "Spawns South of Kamchatskaya Arch", + "objectives" : [ + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 300, + "steps": [ + { + "position" : { + "x": 244.2376, + "y": -2.82495975, + "z": 85.92412 + } + } + ] + }, + { + "repeatable": true, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 300, + "steps": [ + { + "position" : { + "x": 251.575226, + "y": -1.50279593, + "z": 120.800743 + } + } + ] + } + ] + }, + { + "repeatable": false, + "minLevel": 0, + "maxLevel": 99, + "maxBots": 2, + "desirability": 5, + "name": "West Car Garage Bag", + "objectives" : [ + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 300, + "steps": [ + { + "position" : { + "x": 219.268539, + "y": 0.6133858, + "z": 206.972336 + } + } + ] + } + ] + }, + { + "repeatable": false, + "minLevel": 0, + "maxLevel": 99, + "maxBots": 2, + "desirability": 5, + "canRunBetweenObjectives": false, + "name": "West Apartments Near Car Garage", + "objectives" : [ + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 300, + "maxRunDistance": 7, + "steps": [ + { + "position" : { + "x": 182.327057, + "y": 6.356948, + "z": 176.794418 + } + }, + { + "position" : { + "x": 189.867432, + "y": 6.356946, + "z": 185.615784 + } + }, + { + "position" : { + "x": 198.202042, + "y": 6.356946, + "z": 183.362717 + } + } + ] + } + ] + }, + { + "repeatable": false, + "minLevel": 0, + "maxLevel": 99, + "maxBots": 2, + "desirability": 10, + "name": "Vet Clinic", + "objectives" : [ + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 300, + "maxRunDistance": 7, + "steps": [ + { + "position" : { + "x": 225.154373, + "y": 0.5910722, + "z": 174.804382 + } + } + ] + } + ] + }, + { + "repeatable": false, + "minLevel": 0, + "maxLevel": 99, + "maxBots": 2, + "desirability": 10, + "canRunBetweenObjectives": false, + "name": "Children's Polyclinic No. 69", + "objectives" : [ + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 300, + "maxRunDistance": 5, + "steps": [ + { + "position" : { + "x": 183.169037, + "y": -1.04479063, + "z": 120.822021 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 300, + "maxRunDistance": 5, + "steps": [ + { + "position" : { + "x": 181.949738, + "y": 1.76610327, + "z": 122.813072 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 300, + "maxRunDistance": 6, + "steps": [ + { + "position" : { + "x": 183.220886, + "y": 1.76710343, + "z": 102.427979 + } + } + ] + } + ] + }, + { + "repeatable": false, + "minLevel": 0, + "maxLevel": 99, + "maxBots": 2, + "desirability": 5, + "name": "Klimova 16A Adjacent Building", + "objectives" : [ + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 300, + "maxRunDistance": 4, + "steps": [ + { + "position" : { + "x": 163.410919, + "y": -0.828346848, + "z": 44.8332024 + } + } + ] + } + ] + }, + { + "repeatable": false, + "minLevel": 0, + "maxLevel": 99, + "maxBots": 2, + "desirability": 15, + "canRunBetweenObjectives": false, + "name": "Klimova 16A", + "objectives" : [ + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 300, + "maxRunDistance": 5, + "steps": [ + { + "position" : { + "x": 191.363617, + "y": -4.676847, + "z": 61.1319771 + } + }, + { + "position" : { + "x": 192.235825, + "y": -4.67685032, + "z": 51.9119568 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 300, + "maxRunDistance": 10, + "steps": [ + { + "position" : { + "x": 187.229736, + "y": -4.67685032, + "z": 75.8552551 + } + }, + { + "position" : { + "x": 192.155823, + "y": -4.676848, + "z": 81.13261 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 300, + "maxRunDistance": 9, + "steps": [ + { + "position" : { + "x": 189.680054, + "y": -1.17682052, + "z": 54.4644928 + } + } + ] + } + ] + }, + { + "repeatable": false, + "minLevel": 0, + "maxLevel": 99, + "maxBots": 2, + "desirability": 5, + "name": "Expo Building", + "objectives" : [ + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 300, + "maxRunDistance": 11, + "steps": [ + { + "position" : { + "x": 233.5293, + "y": -2.113513, + "z": -106.668182 + } + } + ] + } + ] + }, + { + "repeatable": false, + "minLevel": 0, + "maxLevel": 99, + "maxBots": 2, + "desirability": 5, + "name": "Cardinal West Building", + "objectives" : [ + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 300, + "maxRunDistance": 11, + "steps": [ + { + "position" : { + "x": 178.894653, + "y": -1.51152861, + "z": -127.417351 + } + } + ] + } + ] + }, + { + "repeatable": false, + "minLevel": 0, + "maxLevel": 99, + "maxBots": 2, + "desirability": 5, + "name": "Cardinal West Courtyard", + "objectives" : [ + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 300, + "steps": [ + { + "position" : { + "x": 126.64296, + "y": -1.8731209, + "z": -122.456009 + } + } + ] + } + ] + }, + { + "repeatable": false, + "minLevel": 0, + "maxLevel": 99, + "maxBots": 2, + "desirability": 25, + "canRunBetweenObjectives": false, + "name": "Cardinal East Building", + "objectives" : [ + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 300, + "maxRunDistance": 9, + "steps": [ + { + "position" : { + "x": 44.251442, + "y": 8.896629, + "z": -143.3227 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 300, + "maxRunDistance": 11, + "steps": [ + { + "position" : { + "x": 68.32723, + "y": 12.65118, + "z": -134.772827 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 300, + "maxRunDistance": 10, + "steps": [ + { + "position" : { + "x": 69.51131, + "y": 12.6511793, + "z": -124.742142 + } + }, + { + "position" : { + "x": 65.3693, + "y": 12.6511793, + "z": -119.819122 + } + } + ] + } + ] + }, + { + "repeatable": true, + "isSniping": true, + "minLevel": 0, + "maxLevel": 99, + "maxBots": 2, + "maxBotsInGroup": 1, + "desirability": 10, + "pmcsOnly": true, + "name": "Cardinal East Courtyard Sniping", + "forbiddenWeapons" : [ "pistol", "shotgun" ], + "objectives" : [ + { + "repeatable": true, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 300, + "lootAfterCompleting": "Inhibit", + "steps": [ + { + "waitTimeAfterCompleting": 1, + "position" : { + "x": 71.25703, + "y": 3.96834064, + "z": -116.052307 + } + }, + { + "stepType" : "Snipe", + "minElapsedTime": { + "min": 30, + "max": 90 + }, + "position" : { + "x": 71.25703, + "y": 3.96834064, + "z": -116.052307 + }, + "lookToPosition" : { + "x": 80.1702042, + "y": -0.162712038, + "z": -64.23136 + } + } + ] + }, + { + "repeatable": true, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 300, + "lootAfterCompleting": "Inhibit", + "steps": [ + { + "waitTimeAfterCompleting": 1, + "position" : { + "x": 84.3904, + "y": 3.9683342, + "z": -132.492035 + } + }, + { + "stepType" : "Snipe", + "minElapsedTime": { + "min": 30, + "max": 90 + }, + "position" : { + "x": 84.3904, + "y": 3.9683342, + "z": -132.492035 + }, + "lookToPosition" : { + "x": 116.749123, + "y": -1.87315965, + "z": -110.267609 + } + } + ] + } + ] + }, + { + "repeatable": false, + "minLevel": 0, + "maxLevel": 99, + "maxBots": 2, + "desirability": 5, + "canRunBetweenObjectives": false, + "name": "Cardinal South Building", + "objectives" : [ + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 300, + "maxRunDistance": 15, + "steps": [ + { + "position" : { + "x": 143.811188, + "y": -1.4532994, + "z": -41.52121 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 300, + "maxRunDistance": 13, + "steps": [ + { + "position" : { + "x": 124.524055, + "y": -1.45330119, + "z": -27.6775589 + } + } + ] + } + ] + }, + { + "repeatable": false, + "minLevel": 0, + "maxLevel": 99, + "maxBots": 2, + "desirability": 10, + "canRunBetweenObjectives": false, + "name": "Apartments near Tonni Hellfinger", + "objectives" : [ + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 300, + "maxRunDistance": 5, + "steps": [ + { + "position" : { + "x": -61.71989, + "y": 6.22127247, + "z": -146.008392 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 300, + "maxRunDistance": 15, + "steps": [ + { + "position" : { + "x": -50.73183, + "y": 9.266772, + "z": -154.448471 + } + } + ] + } + ] + }, + { + "repeatable": false, + "minLevel": 0, + "maxLevel": 99, + "maxBots": 2, + "desirability": 5, + "canRunBetweenObjectives": false, + "name": "Figaro", + "objectives" : [ + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 300, + "maxRunDistance": 10, + "steps": [ + { + "position" : { + "x": -120.2999, + "y": 0.607997954, + "z": -24.6931572 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 300, + "maxRunDistance": 13, + "steps": [ + { + "position" : { + "x": -128.566162, + "y": 0.607997537, + "z": -27.2031841 + } + } + ] + } + ] + }, + { + "repeatable": false, + "minLevel": 0, + "maxLevel": 99, + "maxBots": 2, + "desirability": 5, + "canRunBetweenObjectives": false, + "name": "Bear Hunting and Fishing Shop", + "objectives" : [ + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 300, + "maxRunDistance": 15, + "steps": [ + { + "position" : { + "x": -155.261749, + "y": 0.6079909, + "z": -47.5635071 + } + }, + { + "position" : { + "x": -147.0653, + "y": 0.607995033, + "z": -42.8350639 + } + } + ] + } + ] + }, + { + "repeatable": false, + "minLevel": 0, + "maxLevel": 99, + "maxBots": 2, + "desirability": 5, + "name": "G Phone", + "objectives" : [ + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 300, + "maxRunDistance": 15, + "steps": [ + { + "position" : { + "x": -136.343155, + "y": 0.6079899, + "z": -45.9589729 + } + } + ] + } + ] + }, + { + "repeatable": true, + "isSniping": true, + "minLevel": 0, + "maxLevel": 99, + "maxBots": 2, + "maxBotsInGroup": 1, + "desirability": 15, + "pmcsOnly": true, + "canRunBetweenObjectives": false, + "name": "Mall Second Floor Sniping", + "forbiddenWeapons" : [ "pistol", "shotgun" ], + "objectives" : [ + { + "repeatable": true, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 500, + "maxRunDistance": 6, + "lootAfterCompleting": "Inhibit", + "steps": [ + { + "waitTimeAfterCompleting": 1, + "position" : { + "x": -132.727127, + "y": 5.10298967, + "z": -7.13410759 + } + }, + { + "stepType" : "Snipe", + "minElapsedTime": { + "min": 30, + "max": 90 + }, + "position" : { + "x": -132.727127, + "y": 5.10298967, + "z": -7.13410759 + }, + "lookToPosition" : { + "x": -120.712944, + "y": 0.8374527, + "z": 53.7423134 + } + } + ] + } + ] + }, + { + "repeatable": true, + "isSniping": true, + "minLevel": 0, + "maxLevel": 99, + "maxBots": 2, + "maxBotsInGroup": 1, + "desirability": 15, + "pmcsOnly": true, + "canRunBetweenObjectives": false, + "name": "Mall Third Floor Sniping", + "forbiddenWeapons" : [ "pistol", "shotgun" ], + "objectives" : [ + { + "repeatable": true, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 500, + "maxRunDistance": 10, + "lootAfterCompleting": "Inhibit", + "steps": [ + { + "waitTimeAfterCompleting": 1, + "position" : { + "x": -123.361588, + "y": 9.675658, + "z": -7.740727 + } + }, + { + "stepType" : "Snipe", + "minElapsedTime": { + "min": 30, + "max": 120 + }, + "position" : { + "x": -123.361588, + "y": 9.675658, + "z": -7.740727 + }, + "lookToPosition" : { + "x": -101.232567, + "y": 0.8511692, + "z": 53.6889343 + } + }, + { + "waitTimeAfterCompleting": 1, + "position" : { + "x": -111.714615, + "y": 9.599993, + "z": -9.486496 + } + }, + { + "stepType" : "Snipe", + "minElapsedTime": { + "min": 30, + "max": 90 + }, + "position" : { + "x": -111.714615, + "y": 9.599993, + "z": -9.486496 + }, + "lookToPosition" : { + "x": -76.59862, + "y": 0.8368392, + "z": 44.810894 + } + }, + { + "waitTimeAfterCompleting": 1, + "position" : { + "x": -145.898621, + "y": 9.599993, + "z": -4.03885031 + } + }, + { + "stepType" : "Snipe", + "minElapsedTime": { + "min": 30, + "max": 90 + }, + "position" : { + "x": -145.898621, + "y": 9.599993, + "z": -4.03885031 + }, + "lookToPosition" : { + "x": -131.243439, + "y": 0.7818421, + "z": 95.8936157 + } + } + ] + } + ] + }, + { + "repeatable": true, + "isSniping": true, + "minLevel": 0, + "maxLevel": 99, + "maxBots": 2, + "maxBotsInGroup": 1, + "desirability": 15, + "pmcsOnly": true, + "name": "World of Childhood Sniping", + "forbiddenWeapons" : [ "pistol", "shotgun" ], + "objectives" : [ + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 500, + "maxRunDistance": 17, + "steps": [ + { + "position" : { + "x": -111.5978, + "y": 0.603415132, + "z": -28.4304562 + } + } + ] + }, + { + "repeatable": true, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 500, + "maxRunDistance": 6, + "lootAfterCompleting": "Inhibit", + "steps": [ + { + "waitTimeAfterCompleting": 1, + "position" : { + "x": -84.46308, + "y": 5.09000063, + "z": -24.3518181 + } + }, + { + "stepType" : "Snipe", + "minElapsedTime": { + "min": 30, + "max": 120 + }, + "position" : { + "x": -84.46308, + "y": 5.09000063, + "z": -24.3518181 + }, + "lookToPosition" : { + "x": -75.07488, + "y": 0.7527769, + "z": 43.0171165 + } + }, + { + "waitTimeAfterCompleting": 1, + "position" : { + "x": -94.2130356, + "y": 5.090004, + "z": -16.8490162 + } + }, + { + "stepType" : "HoldAtPosition", + "maxDistance": 5, + "minElapsedTime": { + "min": 30, + "max": 180 + }, + "position" : { + "x": -94.2130356, + "y": 5.090004, + "z": -16.8490162 + } + }, + { + "waitTimeAfterCompleting": 1, + "position" : { + "x": -108.345856, + "y": 5.090003, + "z": -14.8044291 + } + }, + { + "stepType" : "Snipe", + "minElapsedTime": { + "min": 30, + "max": 120 + }, + "position" : { + "x": -108.345856, + "y": 5.090003, + "z": -14.8044291 + }, + "lookToPosition" : { + "x": -31.09747, + "y": 0.008697266, + "z": 38.80326 + } + } + ] + } + ] + }, + { + "repeatable": false, + "minLevel": 0, + "maxLevel": 99, + "maxBots": 2, + "desirability": 20, + "name": "Anteka", + "objectives" : [ + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 300, + "maxRunDistance": 12, + "steps": [ + { + "position" : { + "x": 93.7763443, + "y": 4.058631, + "z": -280.887817 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 300, + "maxRunDistance": 13, + "steps": [ + { + "position" : { + "x": 85.27599, + "y": 4.05863142, + "z": -281.193268 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 300, + "maxRunDistance": 5, + "steps": [ + { + "position" : { + "x": 84.34332, + "y": 4.05863, + "z": -272.386719 + } + } + ] + } + ] + }, + { + "repeatable": false, + "minLevel": 0, + "maxLevel": 99, + "maxBots": 3, + "desirability": 25, + "name": "Ministry of the Interior Academy", + "objectives" : [ + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 300, + "maxRunDistance": 14, + "steps": [ + { + "position" : { + "x": -258.33, + "y": 2.23882627, + "z": 131.874527 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 300, + "maxRunDistance": 13, + "steps": [ + { + "position" : { + "x": -257.7969, + "y": 2.23882651, + "z": 142.58757 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 300, + "maxRunDistance": 9, + "steps": [ + { + "position" : { + "x": -253.162231, + "y": 2.94072342, + "z": 133.702469 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 300, + "maxRunDistance": 3, + "steps": [ + { + "position" : { + "x": -247.3432, + "y": 2.940724, + "z": 132.609741 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 300, + "maxRunDistance": 7, + "steps": [ + { + "position" : { + "x": -251.248428, + "y": 2.940724, + "z": 145.03653 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 300, + "maxRunDistance": 13, + "steps": [ + { + "position" : { + "x": -257.455658, + "y": 2.94072413, + "z": 158.0185 + } + } + ] + } + ] + }, + { + "repeatable": false, + "minLevel": 0, + "maxLevel": 99, + "maxBots": 2, + "desirability": 10, + "name": "Ministry of the Interior Academy Outside", + "objectives" : [ + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 300, + "steps": [ + { + "position" : { + "x": -236.000687, + "y": 2.19418645, + "z": 153.599 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 300, + "steps": [ + { + "position" : { + "x": -195.289, + "y": 2.10708165, + "z": 108.28479 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 300, + "maxRunDistance": 3, + "steps": [ + { + "position" : { + "x": -222.065125, + "y": 2.12017, + "z": 119.184563 + } + } + ] + } + ] + }, + { + "repeatable": false, + "minLevel": 10, + "maxLevel": 99, + "maxBots": 3, + "desirability": 40, + "name": "The Hive", + "objectives" : [ + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 300, + "maxRunDistance": 5, + "steps": [ + { + "position" : { + "x": -212.551254, + "y": 3.21706963, + "z": 298.108368 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 300, + "maxRunDistance": 3, + "steps": [ + { + "position" : { + "x": -208.394852, + "y": 3.21706963, + "z": 299.4081 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 300, + "maxRunDistance": 5, + "steps": [ + { + "position" : { + "x": -207.216461, + "y": 3.21706939, + "z": 305.8043 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 300, + "maxRunDistance": 5, + "steps": [ + { + "position" : { + "x": -206.263275, + "y": 3.21706939, + "z": 307.474243 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 300, + "maxRunDistance": 13, + "steps": [ + { + "position" : { + "x": -214.571777, + "y": 3.21706915, + "z": 310.054535 + } + } + ] + } + ] + }, + { + "repeatable": false, + "minLevel": 0, + "maxLevel": 99, + "maxBots": 2, + "desirability": 10, + "name": "Petrov Vodkin Restaurant", + "objectives" : [ + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 300, + "maxRunDistance": 6, + "steps": [ + { + "position" : { + "x": -193.006241, + "y": 3.04550123, + "z": 342.037964 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 300, + "maxRunDistance": 9, + "steps": [ + { + "position" : { + "x": -200.798981, + "y": 3.44209361, + "z": 343.115936 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 300, + "maxRunDistance": 9, + "steps": [ + { + "position" : { + "x": -209.901413, + "y": 3.43565583, + "z": 343.237244 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 300, + "maxRunDistance": 8, + "steps": [ + { + "position" : { + "x": -196.6189, + "y": 3.442097, + "z": 331.301239 + } + } + ] + } + ] + }, + { + "repeatable": false, + "minLevel": 0, + "maxLevel": 99, + "maxBots": 2, + "desirability": 20, + "name": "Pharmancy #2", + "objectives" : [ + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 300, + "maxRunDistance": 7, + "steps": [ + { + "position" : { + "x": -55.4303, + "y": 3.19695544, + "z": 341.47876 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 300, + "maxRunDistance": 11, + "steps": [ + { + "position" : { + "x": -57.0017433, + "y": 3.19694114, + "z": 337.698364 + } + } + ] + } + ] + }, + { + "repeatable": false, + "minLevel": 0, + "maxLevel": 99, + "maxBots": 2, + "desirability": 20, + "name": "Russian Real Estate Fund", + "objectives" : [ + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 300, + "maxRunDistance": 4, + "steps": [ + { + "position" : { + "x": -58.3585, + "y": 2.67853069, + "z": 455.702179 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 300, + "maxRunDistance": 9, + "steps": [ + { + "position" : { + "x": -66.08994, + "y": 2.67853022, + "z": 460.781342 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 300, + "maxRunDistance": 10, + "steps": [ + { + "position" : { + "x": -51.9071579, + "y": 2.67853022, + "z": 461.048645 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 300, + "maxRunDistance": 7, + "steps": [ + { + "position" : { + "x": -65.9715, + "y": 6.848742, + "z": 456.4898 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 300, + "maxRunDistance": 15, + "steps": [ + { + "position" : { + "x": -44.5732536, + "y": 6.848741, + "z": 465.318054 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 300, + "maxRunDistance": 13, + "steps": [ + { + "position" : { + "x": -58.1385345, + "y": 6.848741, + "z": 464.6553 + } + } + ] + } + ] + }, + { + "repeatable": false, + "minLevel": 0, + "maxLevel": 99, + "maxBots": 3, + "desirability": 40, + "name": "IT Firm Office", + "objectives" : [ + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 300, + "maxRunDistance": 4, + "steps": [ + { + "position" : { + "x": 169.807846, + "y": 0.752712846, + "z": 159.437241 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 300, + "maxRunDistance": 4, + "steps": [ + { + "position" : { + "x": 171.441589, + "y": 0.752697, + "z": 163.915848 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 300, + "maxRunDistance": 3, + "steps": [ + { + "position" : { + "x": 167.295135, + "y": 0.75269717, + "z": 165.7098 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 300, + "maxRunDistance": 7, + "steps": [ + { + "position" : { + "x": 164.063919, + "y": 0.7526971, + "z": 154.965378 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 300, + "maxRunDistance": 3, + "steps": [ + { + "position" : { + "x": 167.587418, + "y": 0.7526969, + "z": 153.55513 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 300, + "maxRunDistance": 4, + "steps": [ + { + "position" : { + "x": 163.663422, + "y": 0.752697349, + "z": 146.361969 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 300, + "maxRunDistance": 3, + "steps": [ + { + "position" : { + "x": 162.7122, + "y": 0.752697766, + "z": 142.92366 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 300, + "maxRunDistance": 7, + "steps": [ + { + "position" : { + "x": 156.70433, + "y": 0.75269717, + "z": 141.441025 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 300, + "maxRunDistance": 4, + "steps": [ + { + "position" : { + "x": 158.979828, + "y": 0.752713263, + "z": 137.218124 + } + } + ] + } + ] + }, + { + "repeatable": false, + "minLevel": 0, + "maxLevel": 99, + "maxBots": 2, + "desirability": 5, + "name": "Barber Shop", + "objectives" : [ + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 300, + "maxRunDistance": 6, + "steps": [ + { + "position" : { + "x": 209.7088, + "y": 3.35634685, + "z": 407.1214 + } + } + ] + } + ] + }, + { + "repeatable": false, + "minLevel": 0, + "maxLevel": 99, + "maxBots": 2, + "desirability": 15, + "name": "Unity Credit Bank", + "objectives" : [ + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 300, + "maxRunDistance": 8, + "steps": [ + { + "position" : { + "x": 73.41962, + "y": 0.2624514, + "z": -20.3727 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 300, + "maxRunDistance": 8, + "steps": [ + { + "position" : { + "x": 81.9842758, + "y": 0.3151919, + "z": -30.0930557 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 300, + "maxRunDistance": 8, + "steps": [ + { + "position" : { + "x": 82.41022, + "y": 0.3151919, + "z": -26.9457932 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 300, + "maxRunDistance": 8, + "steps": [ + { + "position" : { + "x": 103.2137, + "y": 0.3221446, + "z": -26.7710037 + } + }, + { + "position" : { + "x": 106.128639, + "y": 0.3221446, + "z": -24.5001564 + } + }, + { + "position" : { + "x": 106.791115, + "y": 0.3221446, + "z": -26.3134041 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 300, + "maxRunDistance": 13, + "steps": [ + { + "position" : { + "x": 110.404869, + "y": 0.295898855, + "z": -25.8608418 + } + }, + { + "position" : { + "x": 114.29512, + "y": 0.251943678, + "z": -25.8415241 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 300, + "maxRunDistance": 8, + "steps": [ + { + "position" : { + "x": 120.044136, + "y": 0.25194326, + "z": -21.88104 + } + } + ] + } + ] + } +] \ No newline at end of file diff --git a/BepInEx/plugins/DanW-SPTQuestingBots/quests/standard/woods.json b/BepInEx/plugins/DanW-SPTQuestingBots/quests/standard/woods.json new file mode 100644 index 0000000..b4d80bc --- /dev/null +++ b/BepInEx/plugins/DanW-SPTQuestingBots/quests/standard/woods.json @@ -0,0 +1,2141 @@ +[ + { + "repeatable": true, + "minLevel": 0, + "maxLevel": 99, + "maxBots": 4, + "desirability": 45, + "name": "Scav Base", + "objectives" : [ + { + "repeatable": true, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 9999, + "maxRunDistance": 12, + "steps": [ + { + "position" : { + "x": -177.7938, + "y": -1.86498344, + "z": 264.2937 + } + }, + { + "position" : { + "x": -179.300964, + "y": -1.86498642, + "z": 261.638977 + } + }, + { + "position" : { + "x": -177.395355, + "y": -1.86498666, + "z": 255.5399 + } + }, + { + "position" : { + "x": -167.997452, + "y": -1.86646283, + "z": 254.755524 + } + }, + { + "position" : { + "x": -178.467911, + "y": -1.87047589, + "z": 246.548508 + } + } + ] + }, + { + "repeatable": true, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 9999, + "maxRunDistance": 6, + "steps": [ + { + "position" : { + "x": -204.237274, + "y": -1.87047482, + "z": 204.718246 + } + }, + { + "position" : { + "x": -209.643173, + "y": -1.87047768, + "z": 203.157959 + } + }, + { + "position" : { + "x": -210.935165, + "y": -1.8704772, + "z": 209.023148 + } + }, + { + "position" : { + "x": -205.404922, + "y": -1.870477, + "z": 216.002289 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 9999, + "steps": [ + { + "position" : { + "x": -189.090363, + "y": -1.8704741, + "z": 221.813965 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 9999, + "steps": [ + { + "position" : { + "x": -192.183411, + "y": -2.33285451, + "z": 255.0699 + } + }, + { + "position" : { + "x": -186.745758, + "y": -2.302162, + "z": 264.723877 + } + } + ] + } + ] + }, + { + "repeatable": false, + "minLevel": 0, + "maxLevel": 99, + "maxBots": 2, + "desirability": 30, + "name": "RUAF Roadblock Crates", + "objectives" : [ + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 500, + "steps": [ + { + "position" : { + "x": -117.865929, + "y": -1.36006165, + "z": 402.163239 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 500, + "steps": [ + { + "position" : { + "x": -136.865463, + "y": -1.56682646, + "z": 414.801117 + } + } + ] + } + ] + }, + { + "repeatable": false, + "minLevel": 0, + "maxLevel": 99, + "maxBots": 2, + "desirability": 10, + "name": "Ambulance", + "objectives" : [ + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 300, + "steps": [ + { + "position" : { + "x": -97.62972, + "y": -15.4367075, + "z": 219.63356 + } + } + ] + } + ] + }, + { + "repeatable": false, + "minLevel": 0, + "maxLevel": 99, + "maxBots": 2, + "desirability": 30, + "name": "Sawmill Shack", + "objectives" : [ + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 500, + "steps": [ + { + "position" : { + "x": -24.1673546, + "y": -3.64493561, + "z": 45.3416748 + } + }, + { + "position" : { + "x": -25.9313183, + "y": -3.64446163, + "z": 46.46762 + } + } + ] + } + ] + }, + { + "repeatable": false, + "minLevel": 5, + "maxLevel": 99, + "maxBots": 3, + "desirability": 30, + "name": "Sawmill Cabins", + "objectives" : [ + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 750, + "steps": [ + { + "position" : { + "x": -5.1944375, + "y": -1.48043585, + "z": -69.47066 + } + }, + { + "position" : { + "x": -2.54139662, + "y": -1.480436, + "z": -69.3419 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 750, + "steps": [ + { + "position" : { + "x": -5.45717, + "y": -1.48043573, + "z": -74.78532 + } + }, + { + "position" : { + "x": -1.960549, + "y": -1.48043585, + "z": -74.66669 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 750, + "steps": [ + { + "position" : { + "x": -1.8593502, + "y": -1.47943592, + "z": -80.4823456 + } + } + ] + } + ] + }, + { + "repeatable": false, + "minLevel": 5, + "maxLevel": 99, + "maxBots": 2, + "desirability": 25, + "name": "Sawmill Warehouse", + "objectives" : [ + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 750, + "maxRunDistance": 10, + "steps": [ + { + "position" : { + "x": 77.10556, + "y": -1.77957737, + "z": -47.3434563 + } + }, + { + "position" : { + "x": 80.1367, + "y": -1.77957869, + "z": -39.44866 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 750, + "steps": [ + { + "position" : { + "x": 55.49185, + "y": -2.665625, + "z": -48.08142 + } + } + ] + } + ] + }, + { + "repeatable": false, + "minLevel": 15, + "maxLevel": 99, + "maxBots": 2, + "desirability": 10, + "pmcsOnly": true, + "name": "Sawmill Common Fund Stash", + "objectives" : [ + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 750, + "steps": [ + { + "position" : { + "x": 24.0236053, + "y": -2.62782359, + "z": -30.522398 + } + } + ] + } + ] + }, + { + "repeatable": true, + "minLevel": 3, + "maxLevel": 99, + "maxBots": 2, + "desirability": 20, + "name": "Spine", + "objectives" : [ + { + "repeatable": true, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 500, + "steps": [ + { + "position" : { + "x": -248.281311, + "y": 26.28598, + "z": -196.449127 + } + } + ] + }, + { + "repeatable": true, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 500, + "steps": [ + { + "position" : { + "x": -333.594666, + "y": 28.02395, + "z": -227.685669 + } + } + ] + } + ] + }, + { + "repeatable": false, + "minLevel": 0, + "maxLevel": 99, + "maxBots": 2, + "desirability": 30, + "name": "Sniper Rock Crates", + "objectives" : [ + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 750, + "steps": [ + { + "position" : { + "x": -155.813644, + "y": 51.1307945, + "z": -275.110626 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 750, + "steps": [ + { + "position" : { + "x": -232.665787, + "y": 67.69444, + "z": -229.943024 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 750, + "steps": [ + { + "position" : { + "x": -210.42453, + "y": 76.26718, + "z": -272.8206 + } + } + ] + } + ] + }, + { + "repeatable": true, + "minLevel": 0, + "maxLevel": 99, + "maxBots": 2, + "desirability": 25, + "name": "Sawmill Checkpoint", + "objectives" : [ + { + "repeatable": true, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 750, + "steps": [ + { + "position" : { + "x": 239.719971, + "y": -1.81444216, + "z": -70.82752 + } + }, + { + "position" : { + "x": 242.006912, + "y": -1.81444192, + "z": -69.9622345 + } + }, + { + "position" : { + "x": 238.390274, + "y": -2.4683075, + "z": -61.74488 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 750, + "doorIDToUnlock": "trunk_woods_light_00021", + "fixedPositionToUnlockDoor" : { + "x": 231.960449, + "y": -2.25580788, + "z": -69.86198 + }, + "steps": [ + { + "position" : { + "x": 231.960449, + "y": -2.25580788, + "z": -69.86198 + } + } + ] + } + ] + }, + { + "repeatable": true, + "isSniping": true, + "minLevel": 5, + "maxLevel": 99, + "maxBots": 2, + "desirability": 20, + "pmcsOnly": true, + "name": "Sawmill Checkpoint Sniping", + "forbiddenWeapons" : [ "pistol", "shotgun" ], + "objectives" : [ + { + "repeatable": true, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 500, + "lootAfterCompleting": "Inhibit", + "steps": [ + { + "waitTimeAfterCompleting": 0, + "position" : { + "x": 218.134415, + "y": -0.5729273, + "z": -132.790054 + } + }, + { + "stepType" : "HoldAtPosition", + "maxDistance": 5, + "minElapsedTime": { + "min": 20, + "max": 120 + }, + "position" : { + "x": 218.134415, + "y": -0.5729273, + "z": -132.790054 + } + } + ] + } + ] + }, + { + "repeatable": true, + "isSniping": true, + "minLevel": 5, + "maxLevel": 99, + "maxBots": 1, + "maxBotsInGroup": 1, + "desirability": 10, + "pmcsOnly": true, + "name": "Sawmill Checkpoint Sniping 2", + "forbiddenWeapons" : [ "pistol", "shotgun" ], + "objectives" : [ + { + "repeatable": true, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 500, + "lootAfterCompleting": "Inhibit", + "steps": [ + { + "waitTimeAfterCompleting": 1, + "position" : { + "x": 367.0136, + "y": 4.35501528, + "z": -9.116802 + } + }, + { + "stepType" : "Snipe", + "minElapsedTime": { + "min": 45, + "max": 180 + }, + "position" : { + "x": 367.0136, + "y": 4.35501528, + "z": -9.116802 + }, + "lookToPosition" : { + "x": 239.574051, + "y": -2.43714762, + "z": -65.56686 + } + } + ] + } + ] + }, + { + "repeatable": false, + "minLevel": 0, + "maxLevel": 99, + "maxBots": 2, + "desirability": 20, + "name": "Sawmill Checkpoint Nearby Rocks", + "objectives" : [ + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 500, + "steps": [ + { + "position" : { + "x": 356.582642, + "y": -0.547618449, + "z": -88.39071 + } + } + ] + } + ] + }, + { + "repeatable": false, + "minLevel": 7, + "maxLevel": 99, + "maxBots": 2, + "desirability": 25, + "name": "ZB-014 Inner Room", + "objectives" : [ + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 9999, + "maxRunDistance": 10, + "steps": [ + { + "position" : { + "x": 446.2245, + "y": -14.2453909, + "z": 61.3314667 + } + } + ] + } + ] + }, + { + "repeatable": true, + "isSniping": true, + "minLevel": 5, + "maxLevel": 99, + "maxBots": 2, + "maxBotsInGroup": 1, + "desirability": 30, + "pmcsOnly": true, + "name": "Scav House Sniping", + "forbiddenWeapons" : [ "pistol", "shotgun" ], + "objectives" : [ + { + "repeatable": true, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 750, + "lootAfterCompleting": "Inhibit", + "steps": [ + { + "waitTimeAfterCompleting": 0, + "position" : { + "x": 315.242, + "y": -5.0619173, + "z": 268.3706 + } + }, + { + "stepType" : "Snipe", + "minElapsedTime": { + "min": 30, + "max": 120 + }, + "position" : { + "x": 315.242, + "y": -5.0619173, + "z": 268.3706 + }, + "lookToPosition" : { + "x": 378.620575, + "y": -13.9451685, + "z": 225.87352 + } + } + ] + }, + { + "repeatable": true, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 750, + "lootAfterCompleting": "Inhibit", + "steps": [ + { + "waitTimeAfterCompleting": 0, + "position" : { + "x": 388.109528, + "y": -11.7437077, + "z": 286.043579 + } + }, + { + "stepType" : "HoldAtPosition", + "maxDistance": 5, + "minElapsedTime": { + "min": 30, + "max": 120 + }, + "position" : { + "x": 388.109528, + "y": -11.7437077, + "z": 286.043579 + } + } + ] + }, + { + "repeatable": true, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 750, + "lootAfterCompleting": "Inhibit", + "steps": [ + { + "waitTimeAfterCompleting": 0, + "position" : { + "x": 448.592, + "y": -17.1530151, + "z": 245.3854 + } + }, + { + "stepType" : "Snipe", + "minElapsedTime": { + "min": 30, + "max": 120 + }, + "position" : { + "x": 448.592, + "y": -17.1530151, + "z": 245.3854 + }, + "lookToPosition" : { + "x": 415.9458, + "y": -13.1464424, + "z": 230.151657 + } + } + ] + } + ] + }, + { + "repeatable": false, + "minLevel": 0, + "maxLevel": 99, + "maxBots": 2, + "desirability": 30, + "name": "Old Sawmill", + "objectives" : [ + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 500, + "maxRunDistance": 6, + "steps": [ + { + "position" : { + "x": -512.148438, + "y": 15.9153662, + "z": -177.12027 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 500, + "maxRunDistance": 6, + "steps": [ + { + "position" : { + "x": -548.2082, + "y": 18.1274471, + "z": -205.271057 + } + }, + { + "position" : { + "x": -545.0109, + "y": 18.1355953, + "z": -201.315292 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 500, + "maxRunDistance": 6, + "steps": [ + { + "position" : { + "x": -534.3246, + "y": 18.10662, + "z": -204.977951 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 500, + "maxRunDistance": 3, + "steps": [ + { + "position" : { + "x": -548.775146, + "y": 15.0666914, + "z": -206.331055 + } + }, + { + "position" : { + "x": -536.6308, + "y": 15.0254726, + "z": -212.136566 + } + }, + { + "position" : { + "x": -538.111755, + "y": 15.0385208, + "z": -204.684189 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 500, + "maxRunDistance": 3, + "steps": [ + { + "position" : { + "x": -564.206543, + "y": 21.3955631, + "z": -216.554535 + } + } + ] + } + ] + }, + { + "repeatable": true, + "isSniping": true, + "minLevel": 5, + "maxLevel": 99, + "maxBots": 2, + "maxBotsInGroup": 1, + "desirability": 25, + "pmcsOnly": true, + "name": "Scav Town Sniping", + "forbiddenWeapons" : [ "pistol", "shotgun" ], + "objectives" : [ + { + "repeatable": true, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 750, + "lootAfterCompleting": "Inhibit", + "steps": [ + { + "waitTimeAfterCompleting": 0, + "position" : { + "x": -508.473572, + "y": 23.2766037, + "z": -283.2213 + } + }, + { + "stepType" : "Snipe", + "minElapsedTime": { + "min": 45, + "max": 180 + }, + "position" : { + "x": -508.473572, + "y": 23.2766037, + "z": -283.2213 + }, + "lookToPosition" : { + "x": -478.286163, + "y": 15.1605082, + "z": -370.1348 + } + } + ] + }, + { + "repeatable": true, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 750, + "lootAfterCompleting": "Inhibit", + "steps": [ + { + "waitTimeAfterCompleting": 0, + "position" : { + "x": -521.9508, + "y": 21.679018, + "z": -287.813782 + } + }, + { + "stepType" : "Snipe", + "minElapsedTime": { + "min": 45, + "max": 180 + }, + "position" : { + "x": -521.9508, + "y": 21.679018, + "z": -287.813782 + }, + "lookToPosition" : { + "x": -478.286163, + "y": 15.1605082, + "z": -370.1348 + } + } + ] + }, + { + "repeatable": true, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 750, + "lootAfterCompleting": "Inhibit", + "steps": [ + { + "waitTimeAfterCompleting": 0, + "position" : { + "x": -487.4673, + "y": 22.4202023, + "z": -271.866455 + } + }, + { + "stepType" : "Snipe", + "minElapsedTime": { + "min": 45, + "max": 180 + }, + "position" : { + "x": -487.4673, + "y": 22.4202023, + "z": -271.866455 + }, + "lookToPosition" : { + "x": -490.611481, + "y": 14.9047346, + "z": -393.586945 + } + } + ] + } + ] + }, + { + "repeatable": true, + "minLevel": 0, + "maxLevel": 99, + "maxBots": 3, + "desirability": 25, + "name": "Scav Town", + "objectives" : [ + { + "repeatable": true, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 750, + "maxRunDistance": 9, + "steps": [ + { + "position" : { + "x": -460.5816, + "y": 15.5233068, + "z": -364.776917 + } + }, + { + "position" : { + "x": -463.8877, + "y": 15.52998, + "z": -361.849274 + } + }, + { + "position" : { + "x": -462.123, + "y": 18.6610489, + "z": -364.8892 + } + } + ] + }, + { + "repeatable": true, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 750, + "maxRunDistance": 5, + "steps": [ + { + "position" : { + "x": -463.29126, + "y": 15.1822624, + "z": -331.61142 + } + } + ] + }, + { + "repeatable": true, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 750, + "maxRunDistance": 12, + "steps": [ + { + "position" : { + "x": -498.9938, + "y": 15.2425175, + "z": -403.2168 + } + }, + { + "position" : { + "x": -498.475159, + "y": 15.2425184, + "z": -399.584229 + } + } + ] + }, + { + "repeatable": true, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 750, + "maxRunDistance": 6, + "steps": [ + { + "position" : { + "x": -507.23703, + "y": 15.5050735, + "z": -391.810181 + } + }, + { + "position" : { + "x": -512.539856, + "y": 15.5050726, + "z": -390.35025 + } + } + ] + }, + { + "repeatable": true, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 750, + "maxRunDistance": 12, + "steps": [ + { + "position" : { + "x": -454.75824, + "y": 15.3771315, + "z": -399.002716 + } + }, + { + "position" : { + "x": -452.867371, + "y": 15.3771229, + "z": -392.810516 + } + }, + { + "position" : { + "x": -463.0984, + "y": 15.0439882, + "z": -395.955475 + } + } + ] + } + ] + }, + { + "repeatable": false, + "minLevel": 0, + "maxLevel": 99, + "maxBots": 2, + "desirability": 20, + "name": "VEX Beach", + "objectives" : [ + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 750, + "steps": [ + { + "position" : { + "x": -523.225769, + "y": 9.979723, + "z": -474.036346 + } + }, + { + "position" : { + "x": -530.8993, + "y": 10.1336212, + "z": -463.429474 + } + } + ] + } + ] + }, + { + "repeatable": true, + "minLevel": 0, + "maxLevel": 99, + "maxBots": 2, + "desirability": 20, + "name": "Scav Bridge Overlook", + "objectives" : [ + { + "repeatable": true, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 500, + "steps": [ + { + "position" : { + "x": 134.112366, + "y": 24.5597134, + "z": -758.4981 + } + } + ] + }, + { + "repeatable": true, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 500, + "steps": [ + { + "position" : { + "x": 131.551071, + "y": 24.5897121, + "z": -733.8008 + } + } + ] + }, + { + "repeatable": true, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 500, + "steps": [ + { + "position" : { + "x": 141.973083, + "y": 24.399416, + "z": -729.4716 + } + } + ] + }, + { + "repeatable": true, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 500, + "steps": [ + { + "position" : { + "x": 140.3757, + "y": 27.19339, + "z": -726.4303 + } + } + ] + } + ] + }, + { + "repeatable": true, + "minLevel": 0, + "maxLevel": 99, + "maxBots": 2, + "desirability": 20, + "canRunBetweenObjectives": false, + "name": "Scav Bunker", + "objectives" : [ + { + "repeatable": true, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 750, + "steps": [ + { + "position" : { + "x": 225.0395, + "y": 24.32888, + "z": -695.7586 + } + }, + { + "position" : { + "x": 232.451248, + "y": 24.2566319, + "z": -701.5514 + } + } + ] + }, + { + "repeatable": true, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 750, + "steps": [ + { + "position" : { + "x": 224.623245, + "y": 24.6960411, + "z": -717.584 + } + }, + { + "position" : { + "x": 231.684082, + "y": 24.3432636, + "z": -711.3591 + } + } + ] + }, + { + "repeatable": true, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 750, + "maxRunDistance": 10, + "steps": [ + { + "position" : { + "x": 222.829453, + "y": 20.149086, + "z": -707.4061 + } + }, + { + "position" : { + "x": 231.006531, + "y": 20.1490669, + "z": -708.5816 + } + } + ] + } + ] + }, + { + "repeatable": false, + "minLevel": 0, + "maxLevel": 99, + "maxBots": 2, + "desirability": 35, + "canRunBetweenObjectives": false, + "name": "USEC Camp North", + "objectives" : [ + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 9999, + "steps": [ + { + "position" : { + "x": 270.300781, + "y": 22.8832073, + "z": -510.708038 + } + }, + { + "position" : { + "x": 273.998077, + "y": 22.88321, + "z": -513.3103 + } + }, + { + "position" : { + "x": 277.2086, + "y": 22.8832054, + "z": -504.259369 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 9999, + "steps": [ + { + "position" : { + "x": 284.425049, + "y": 22.88321, + "z": -515.6045 + } + }, + { + "position" : { + "x": 284.587982, + "y": 22.8832054, + "z": -518.711243 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 9999, + "steps": [ + { + "position" : { + "x": 289.124725, + "y": 22.8832073, + "z": -512.725464 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 9999, + "steps": [ + { + "position" : { + "x": 296.374237, + "y": 22.8941917, + "z": -507.389465 + } + }, + { + "position" : { + "x": 295.0734, + "y": 22.8941917, + "z": -504.469971 + } + } + ] + } + ] + }, + { + "repeatable": false, + "minLevel": 0, + "maxLevel": 99, + "maxBots": 2, + "desirability": 35, + "canRunBetweenObjectives": false, + "name": "USEC Camp South", + "objectives" : [ + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 9999, + "steps": [ + { + "position" : { + "x": 303.395264, + "y": 22.9642925, + "z": -462.271576 + } + }, + { + "position" : { + "x": 308.519135, + "y": 23.0367088, + "z": -463.768646 + } + }, + { + "position" : { + "x": 306.591644, + "y": 22.8941956, + "z": -459.65332 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 9999, + "steps": [ + { + "position" : { + "x": 297.6463, + "y": 22.8302231, + "z": -439.7915 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 9999, + "steps": [ + { + "position" : { + "x": 283.484039, + "y": 23.2080116, + "z": -436.05188 + } + }, + { + "position" : { + "x": 271.9399, + "y": 22.854269, + "z": -442.489532 + } + }, + { + "position" : { + "x": 278.378, + "y": 22.9436378, + "z": -434.8771 + } + }, + { + "position" : { + "x": 274.6248, + "y": 22.882719, + "z": -430.410431 + } + } + ] + } + ] + }, + { + "repeatable": false, + "minLevel": 0, + "maxLevel": 99, + "maxBots": 2, + "desirability": 35, + "name": "Weapon Storage Shack", + "objectives" : [ + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 500, + "steps": [ + { + "position" : { + "x": 243.096069, + "y": -8.462602, + "z": 124.231667 + } + } + ] + } + ] + }, + { + "repeatable": false, + "minLevel": 0, + "maxLevel": 99, + "maxBots": 2, + "desirability": 20, + "name": "Sunken Village", + "objectives" : [ + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 300, + "steps": [ + { + "position" : { + "x": -45.8186455, + "y": 8.657747, + "z": -599.737854 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 300, + "steps": [ + { + "position" : { + "x": -172.435959, + "y": 12.5000238, + "z": -688.386841 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 300, + "steps": [ + { + "position" : { + "x": -36.99905, + "y": 9.955526, + "z": -740.6579 + } + } + ] + } + ] + }, + { + "repeatable": false, + "minLevel": 0, + "maxLevel": 99, + "maxBots": 2, + "desirability": 20, + "name": "Northern UN Roadblock", + "objectives" : [ + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 500, + "steps": [ + { + "position" : { + "x": -563.797363, + "y": 9.753631, + "z": -77.74115 + } + } + ] + } + ] + }, + { + "repeatable": false, + "minLevel": 0, + "maxLevel": 99, + "maxBots": 2, + "desirability": 15, + "name": "Dead Man's Place", + "objectives" : [ + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 300, + "steps": [ + { + "position" : { + "x": 194.422989, + "y": -14.9313993, + "z": 260.631073 + } + } + ] + } + ] + }, + { + "repeatable": true, + "minLevel": 5, + "maxLevel": 99, + "maxBots": 2, + "maxBotsInGroup": 10, + "desirability": 20, + "pmcsOnly": true, + "name": "Sawmill Patrol", + "objectives" : [ + { + "repeatable": true, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 750, + "steps": [ + { + "waitTimeAfterCompleting": 0, + "position" : { + "x": -23.4741669, + "y": 6.01007366, + "z": -81.3190842 + } + }, + { + "stepType" : "HoldAtPosition", + "maxDistance": 5, + "minElapsedTime": { + "min": 20, + "max": 120 + }, + "position" : { + "x": -23.4741669, + "y": 6.01007366, + "z": -81.3190842 + } + } + ] + }, + { + "repeatable": true, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 750, + "steps": [ + { + "waitTimeAfterCompleting": 0, + "position" : { + "x": -20.29293, + "y": 4.830707, + "z": -55.89834 + } + }, + { + "stepType" : "HoldAtPosition", + "maxDistance": 5, + "minElapsedTime": { + "min": 20, + "max": 120 + }, + "position" : { + "x": -20.29293, + "y": 4.830707, + "z": -55.89834 + } + } + ] + }, + { + "repeatable": true, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 750, + "steps": [ + { + "waitTimeAfterCompleting": 0, + "position" : { + "x": -43.47702, + "y": 3.606523, + "z": 24.4091148 + } + }, + { + "stepType" : "HoldAtPosition", + "maxDistance": 5, + "minElapsedTime": { + "min": 20, + "max": 120 + }, + "position" : { + "x": -43.47702, + "y": 3.606523, + "z": 24.4091148 + } + } + ] + }, + { + "repeatable": true, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 750, + "steps": [ + { + "waitTimeAfterCompleting": 0, + "position" : { + "x": -32.9204941, + "y": 4.56304932, + "z": -28.500124 + } + }, + { + "stepType" : "HoldAtPosition", + "maxDistance": 5, + "minElapsedTime": { + "min": 20, + "max": 120 + }, + "position" : { + "x": -32.9204941, + "y": 4.56304932, + "z": -28.500124 + } + } + ] + }, + { + "repeatable": true, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 750, + "steps": [ + { + "waitTimeAfterCompleting": 0, + "position" : { + "x": -46.4890556, + "y": 5.20278549, + "z": 6.61853552 + } + }, + { + "stepType" : "HoldAtPosition", + "maxDistance": 5, + "minElapsedTime": { + "min": 20, + "max": 120 + }, + "position" : { + "x": -46.4890556, + "y": 5.20278549, + "z": 6.61853552 + } + } + ] + } + ] + }, + { + "repeatable": true, + "isSniping": true, + "minLevel": 0, + "maxLevel": 99, + "maxBots": 1, + "maxBotsInGroup": 1, + "desirability": 10, + "pmcsOnly": true, + "name": "Sawmill Sniping", + "forbiddenWeapons" : [ "pistol", "shotgun" ], + "objectives" : [ + { + "repeatable": true, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 500, + "steps": [ + { + "waitTimeAfterCompleting": 2, + "position" : { + "x": 120.327065, + "y": 3.3720274, + "z": 14.428956 + } + }, + { + "stepType" : "Snipe", + "minElapsedTime": { + "min": 45, + "max": 180 + }, + "position" : { + "x": 120.327065, + "y": 3.3720274, + "z": 14.428956 + }, + "lookToPosition" : { + "x": 74.95339, + "y": -2.67804122, + "z": -33.63209 + } + } + ] + } + ] + }, + { + "repeatable": true, + "isSniping": true, + "minLevel": 0, + "maxLevel": 99, + "maxBots": 1, + "maxBotsInGroup": 1, + "desirability": 10, + "pmcsOnly": true, + "name": "Sawmill Beach Sniping", + "forbiddenWeapons" : [ "pistol", "shotgun" ], + "objectives" : [ + { + "repeatable": true, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 500, + "lootAfterCompleting": "Inhibit", + "steps": [ + { + "waitTimeAfterCompleting": 1, + "position" : { + "x": -73.9709, + "y": -5.62229538, + "z": 162.178192 + } + }, + { + "stepType" : "Snipe", + "minElapsedTime": { + "min": 45, + "max": 180 + }, + "position" : { + "x": -73.9709, + "y": -5.62229538, + "z": 162.178192 + }, + "lookToPosition" : { + "x": 6.194769, + "y": -14.6653271, + "z": 89.1092 + } + } + ] + } + ] + }, + { + "repeatable": false, + "minLevel": 0, + "maxLevel": 99, + "maxBots": 2, + "desirability": 15, + "name": "Convoy", + "objectives" : [ + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 750, + "steps": [ + { + "position" : { + "x": 192.145935, + "y": 10.6605768, + "z": -588.1613 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 750, + "steps": [ + { + "position" : { + "x": 197.10498, + "y": 11.0285559, + "z": -598.081665 + } + } + ] + } + ] + }, + { + "repeatable": false, + "minLevel": 0, + "maxLevel": 99, + "maxBots": 2, + "desirability": 20, + "name": "Sawmill Marked Circle", + "objectives" : [ + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 500, + "maxRunDistance": 10, + "steps": [ + { + "position" : { + "x": 194.042389, + "y": 0.274127424, + "z": -6.58319759 + } + } + ] + } + ] + }, + { + "repeatable": false, + "minLevel": 0, + "maxLevel": 99, + "maxBots": 2, + "desirability": 15, + "name": "Sawmill Camp", + "objectives" : [ + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 300, + "steps": [ + { + "position" : { + "x": 133.202728, + "y": -3.67785549, + "z": 100.8018 + } + } + ] + } + ] + }, + { + "repeatable": false, + "minLevel": 0, + "maxLevel": 99, + "maxBots": 2, + "desirability": 10, + "name": "ZB014 Outhouses", + "objectives" : [ + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 500, + "steps": [ + { + "position" : { + "x": 429.127625, + "y": -5.44915342, + "z": -24.4268322 + } + } + ] + } + ] + }, + { + "repeatable": false, + "minLevel": 0, + "maxLevel": 99, + "maxBots": 2, + "desirability": 10, + "name": "Scav House", + "objectives" : [ + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 300, + "steps": [ + { + "position" : { + "x": 414.505768, + "y": -13.587635, + "z": 239.253647 + } + } + ] + } + ] + }, + { + "repeatable": true, + "isSniping": true, + "minLevel": 0, + "maxLevel": 99, + "maxBots": 1, + "maxBotsInGroup": 1, + "desirability": 15, + "pmcsOnly": true, + "name": "Scav Base Sniping", + "forbiddenWeapons" : [ "pistol", "shotgun" ], + "objectives" : [ + { + "repeatable": true, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 750, + "lootAfterCompleting": "Inhibit", + "steps": [ + { + "waitTimeAfterCompleting": 1, + "position" : { + "x": -159.7015, + "y": 5.72592974, + "z": 110.017136 + } + }, + { + "stepType" : "Snipe", + "minElapsedTime": { + "min": 45, + "max": 180 + }, + "position" : { + "x": -159.7015, + "y": 5.72592974, + "z": 110.017136 + }, + "lookToPosition" : { + "x": -189.752625, + "y": -1.87394524, + "z": 194.856354 + } + } + ] + } + ] + }, + { + "repeatable": true, + "isSniping": true, + "minLevel": 0, + "maxLevel": 99, + "maxBots": 1, + "maxBotsInGroup": 1, + "desirability": 15, + "pmcsOnly": true, + "name": "RUAF Roadblock Sniping", + "forbiddenWeapons" : [ "pistol", "shotgun" ], + "objectives" : [ + { + "repeatable": true, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 750, + "lootAfterCompleting": "Inhibit", + "steps": [ + { + "waitTimeAfterCompleting": 1, + "position" : { + "x": -99.249176, + "y": 0.0240073483, + "z": 378.196838 + } + }, + { + "stepType" : "Snipe", + "minElapsedTime": { + "min": 45, + "max": 180 + }, + "position" : { + "x": -99.249176, + "y": 0.0240073483, + "z": 378.196838 + }, + "lookToPosition" : { + "x": -138.1029, + "y": -6.42920876, + "z": 250.972076 + } + } + ] + } + ] + }, + { + "repeatable": false, + "minLevel": 0, + "maxLevel": 99, + "maxBots": 4, + "desirability": 40, + "name": "Marked Circle Bunker", + "objectives" : [ + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 500, + "maxRunDistance": 23, + "steps": [ + { + "position" : { + "x": -266.793152, + "y": 6.906454, + "z": -405.804138 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 500, + "maxRunDistance": 10, + "steps": [ + { + "position" : { + "x": -276.299438, + "y": 7.48976946, + "z": -419.067261 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 500, + "maxRunDistance": 15, + "steps": [ + { + "position" : { + "x": -272.163818, + "y": 7.482825, + "z": -416.1627 + } + } + ] + }, + { + "repeatable": false, + "minDistanceFromBot": 5, + "maxDistanceFromBot": 500, + "maxRunDistance": 15, + "steps": [ + { + "position" : { + "x": -273.023346, + "y": 7.46757364, + "z": -411.3648 + } + }, + { + "position" : { + "x": -267.448944, + "y": 7.502633, + "z": -411.372864 + } + }, + { + "position" : { + "x": -266.996857, + "y": 7.49533224, + "z": -416.4676 + } + }, + { + "position" : { + "x": -267.916138, + "y": 7.49533224, + "z": -419.4494 + } + } + ] + } + ] + } +] \ No newline at end of file diff --git a/user/mods/DanW-SPTQuestingBots/README.md b/user/mods/DanW-SPTQuestingBots/README.md new file mode 100644 index 0000000..a48d777 --- /dev/null +++ b/user/mods/DanW-SPTQuestingBots/README.md @@ -0,0 +1,411 @@ +You're no longer the only PMC running around placing markers and collecting quest items. The bots have transcended and are coming for you... + +**This mod may have a performance impact**, but it should be minimal starting with the 0.5.0 release. If you notice performance problems, please try using the built-in AI limiter. + +**---------- Mod Compatibility ----------** + +**REQUIRES:** +* [BigBrain](https://hub.sp-tarkov.com/files/file/1219-bigbrain/) (1.3.2 or later) +* [Waypoints](https://hub.sp-tarkov.com/files/file/1119-waypoints-expanded-bot-patrols-and-navmesh/) (1.7.1 or later) + +**Highly Recommended:** +* [SAIN](https://hub.sp-tarkov.com/files/file/1062-sain-2-0-solarint-s-ai-modifications-full-ai-combat-system-replacement/) (4.0.3 or later recommended) +* [Looting Bots](https://hub.sp-tarkov.com/files/file/1096-looting-bots/) (1.5.2 or later recommended) + +**Partially compatible with:** +* **Fika** (If you're using the Questing Bots spawning system, you must disable `Enforced Spawn Limits` in the F12 menu for Fika) +* [Path to Tarkov](https://hub.sp-tarkov.com/files/file/569-path-to-tarkov/), [Traveler](https://hub.sp-tarkov.com/files/file/1212-traveler/), [Entry Point Selector](https://hub.sp-tarkov.com/files/file/2291-entry-point-selector-2-0/), and similar mods that significantly reduce spawn points (You MUST use another mod like [SWAG + DONUTS](https://hub.sp-tarkov.com/files/file/878-swag-donuts-dynamic-spawn-waves-and-custom-spawn-points/) to manage bot spawning when using this mod. Otherwise, bots will spawn right in front of you.) +* [Realism](https://hub.sp-tarkov.com/files/file/606-spt-realism-mod/) (You must disable Realism's bot-spawning changes when using the Questing Bots spawning system) +* [Please Just Fight](https://hub.sp-tarkov.com/files/file/2652-please-just-fight/) (This mod should only be used if you're not using the Questing Bots spawning system) +* [Declutterer](https://hub.sp-tarkov.com/files/file/2838-simple-declutter/) (Causes crashes for some people; use at your own risk) + +**NOT compatible with:** +* [AI Limit](https://hub.sp-tarkov.com/files/file/793-ai-limit/) or any other mods that disable AI in a similar manner. This mod relies on the AI being active throughout the entire map. **Starting with 0.2.10, Questing Bots has its own AI Limiter feature.** Please see the tab below for more information. + +**Compatible with:** +* [SWAG + DONUTS](https://hub.sp-tarkov.com/files/file/878-swag-donuts-dynamic-spawn-waves-and-custom-spawn-points/) +* [Late to the Party](https://hub.sp-tarkov.com/files/file/1099-late-to-the-party/) +* [Performance Improvements](https://hub.sp-tarkov.com/files/file/2505-performance-improvements/) (Must be version 0.2.4 or newer) + +**NOTE: Please disable the bot-spawning system in this mod if you're using other mods that manage spawning! Otherwise, there will be too many bots on the map. The bot-spawning system in this mod will be automatically disabled** if any of the following mods are detected: +* [SWAG + DONUTS](https://hub.sp-tarkov.com/files/file/878-swag-donuts-dynamic-spawn-waves-and-custom-spawn-points/) +* [MOAR](https://hub.sp-tarkov.com/files/file/1059-moar-bots-spawning-difficulty/) +* [Better Spawns Plus](https://hub.sp-tarkov.com/files/file/1002-better-spawns-plus/) +* [Reality](https://hub.sp-tarkov.com/files/file/2585-reality/) +* [Acid's Bot Placement System](https://hub.sp-tarkov.com/files/file/2782-abps-acid-s-bot-placement-system/) + +**---------- Overview ----------** + +There are two main components of this mod: adding an objective system to the AI and directly controlling PMC and player-Scav spawning to mimic live Tarkov. + +**Objective System:** +Instead of simply patrolling their spawn areas, bots will now move around the map to perform randomly-selected quest objectives. By default this system is only active for PMC's and player Scavs, but it can be enabled for normal Scavs and bosses if you want an extra challenge. + +After spawning (regardless of when this occurs during the raid), bots will immediately begin questing, and there are only a few conditions that will cause them to stop questing: +* They got stuck too many times +* Their health is too low and they're unable to heal +* They're over-encumbered +* They're trying to extract (using [SAIN](https://hub.sp-tarkov.com/files/file/1062-sain-2-0-solarint-s-ai-modifications-full-ai-combat-system-replacement/)) + +Otherwise, they will only temporarily stop questing for the following reasons: +* They're currently or were just recently in combat +* They heard a suspicious noise +* They recently completed an objective +* They're checking for or have found loot +* Their health is too low or they have blacked limbs (besides arms) +* Their energy or hydration is too low +* They have followers that are too far from them + +There are several types of quests available to each bot: +* **EFT Quests:** Bots will go to locations specified in EFT quests for placing markers, collecting/placing items, killing other bots, etc. Bots can also use quests added by other mods. +* **Spawn Rush:** At the beginning of the raid, bots that are within a certain distance of you will run to your spawn point. Only a certain number of bots are allowed to perform this quest, and they won't always select it. This makes PVP-focused maps like Factory even more challenging. +* **Boss Hunter:** Bots will search zones in which bosses are known to spawn. They will only be allowed to select this quest at the beginning of the raid (within the first 5 minutes by default) and if they're a high enough level. +* **Airdrop Chaser:** Bots will run to the most recent airdrop if it's close to them (within 500m by default). They will be allowed to select this quest within **questing.bot_quests.airdrop_bot_interest_time** seconds (420s by default) of the airdrop crate landing. +* **Spawn Point Wandering:** Bots will wander to different spawn points around the map. This is used as a last resort in case the bot doesn't select any other quests. This quest is currently disabled by default because it should no longer be needed with the quest variety offered in the 0.4.0 and later releases. +* **"Standard" Quests:** Bots will go to specified locations around the map. They will prioritize more desirable locations for loot and locations that are closer to them. These also include some sniping and camping quests on all maps, so be careful! +* **"Custom" Quests:** You can create your own quests for bots using the templates for "standard" quests. None are provided by default. + +**PMC and Player-Scav Spawning Systems:** +At the beginning of the raid, PMC's will spawn around the map at actual EFT PMC spawn points. The spawning system will try to separate spawn points as much as possible, but spawn killing is still entirely possible just like it is in live Tarkov. The total number of PMC's that can spawn is a random number between the minimum and maximum player count for the map (other mods can change these values). However, you count as one of those PMC's for PMC raids. That number will be reduced if you spawn into the map late for a Scav run. The PMC difficulty is set by your raid settings in EFT. + +Starting with the 0.4.0 release, player Scavs will also spawn throughout the raid. Each group of player Scavs will be assigned a minimum spawn time that is generated using SPT's raid-time-reduction settings for Scav raids. This mod will use SPT's weighting settings for choosing when player Scavs will spawn into each location, it will add some randomness, and then it will generate a spawn schedule for all player-Scav spawns. Effectively, this means that player Scavs are most likely to spawn toward the middle and last third of raids. They're unlikely to spawn toward the very beginning or very end of them. Player Scavs can spawn at any EFT PMC or player-Scav spawn point on the map, and player-Scav bot difficulty is set by your raid settings in EFT. + +Only a certain (configurable) number of initial PMC's will spawn at the beginning of the raid, and the rest will spawn as the existing ones die. PMC's that spawn after the initial wave can spawn anywhere that is far enough from you and other bots (at any EFT spawn point for PMC's or player Scavs). After all PMC's have spawned, player Scavs will be allowed to spawn. The maximum total number of PMC's and player Scavs on the map cannot exceed the number of initial PMC's (determined by **bot_spawns.max_alive_bots**). For example, Customs allows 10-12 players, but Questing Bots only allows 7 to be on the map at the same time by default. That means 7 PMC's will spawn immediately as the raid starts, and as some of them die others will spawn to replace them. After all PMC's have spawned and less than 7 are remaining, player Scavs will be allowed to spawn. If there are 5 PMC's left on the map, 2 player Scavs will be allowed to spawn. If there are 3 PMC's left on the map, 4 player Scavs will be allowed to spawn, and so on. Even if most total PMC's have died, player Scavs will not be allowed to spawn earlier than their scheduled spawn times. + +A new feature of the 0.4.0 and later releases is an advanced spawning system that tricks EFT into thinking that PMC's and player Scavs are human players. This makes PMC's and player Scavs not count toward the bot cap for the map, so they shouldn't impede normal EFT bot spawns for normal Scavs and bosses. It also prevents PMC's and player Scavs from counting toward the maximum bot counts for each zone on the map, and this allows normal Scavs to spawn like they would in live EFT. Without this system, all initial bosses must be configured to spawn first (which is a config option in this mod) or EFT may suppress them due to the high number of bots on the map. To accomodate the large initial PMC wave and still allow Scavs and bosses to spawn, the bot cap can be optionally increased (which is also a config option in this mod) if you're not using the advanced spawning system. + +**---------- Bot Quest-Selection Algorithm Overview ----------** + +When each bot spawns, this mod finds the furthest extract from them and references it when selecting new quests for the bot. If the bot ever comes close enough to that extract while traversing the map, this happens again; a new extract is selected for it that is the furthest one from its current location. This continues until the bot extracts or dies. This extract is NOT used when bots extract via [SAIN](https://hub.sp-tarkov.com/files/file/1062-sain-2-0-solarint-s-ai-modifications-full-ai-combat-system-replacement/); it is only used when this mod selects new quests for the bot. + +Before selecting a quest for a bot, all quests are first filtered to ensure they have at least one valid location on the map and the bot is able to accept the quest (it's not blocked by player level, etc.). Then, the following metrics are generated for every valid quest: +1) The distance between the bot and each objective for the quest with some randomness applied (by **questing.bot_quests.distance_randomness**). This value is then normalized based on the furthest objective from the bot (for any valid quest), and finally it's multiplied by a weighting factor defined by **questing.bot_quests.distance_weighting** (1 by default). +2) A "desirability" rating for each quest, which is the desirability rating assigned to the quest but with some randomness applied (by **questing.bot_quests.desirability_randomness**). This value is divided by 100 and then multiplied by a weighting factor defined by **questing.bot_quests.desirability_weighting** (1 by default). There are modifiers that can be applied to the desirability ratings of quests including **questing.bot_quests.desirability_camping_multiplier**, **questing.bot_quests.desirability_sniping_multiplier**, and **questing.bot_quests.desirability_active_quest_multiplier**. More information about these settings can be found in the README or GitHub repo for this mod. +3) The angle between two vectors: the vector between the bot and its selected extract (described above), and the vector between the bot and each objective for the quest. If the quest objective is in the same direction as the bot's selected extract, this angle will be small. If the bot has to move further from its selected extract, this angle will be large. Angles that are below a certain threshold (90 deg by default) are reduced down to 0 deg. This value is divided by 180 deg minus the threshold just described (90 deg by default), and finally it's multiplied by a weighting factor defined by **questing.bot_quests.exfil_direction_weighting**, which is different for every map. + +These three metrics are then added together, and the result is the overall score for the corresponding quest. The quest with the highest score is assigned to the bot. If for some reason the bot is unable to perform that quest, it selects the one with the next-highest score, and so on. If no quests are available for the bot to select, this mod will first try allowing the bot to perform repeatable quests early (before the **questing.bot_questing_requirements.repeat_quest_delay** delay expires). If there are no available repeatable quests, this mod will then attempt to make the bot extract via [SAIN](https://hub.sp-tarkov.com/files/file/1062-sain-2-0-solarint-s-ai-modifications-full-ai-combat-system-replacement/). Finally, this mod will stop assigning new quests to the bot. + +**---------- How to Add Custom Quests ----------** + +To add custom quests to a map, first create a *user\mods\DanW-SPTQuestingBots-#.#.#\quests\custom* directory if it doesn't already exist. Then, create a file for each map for which you want to add custom quests. The file name should exactly match the corresponding file in the *user\mods\DanW-SPTQuestingBots-#.#.#\quests\standard* directory (case sensitive). + +The three major data structures are: +* **Quests**: A quest is a collection of at least one quest objective, and objectives can be placed anywhere on the map. Objectives can be completed in any order. + + Quests have the following properties: + * **repeatable**: Boolean value indicating if the bot can repeat the quest later in the raid. This is typically used for quests that are PvP or PvE focused, where a bot might want to check an area again later in the raid for more enemies. + * **isCamping**: If the quest should be considered to be a camping quest + * **isSniping**: If the quest should be considered to be a sniping quest + * **pmcsOnly**: Only PMC's will be allowed to select the quest + * **minLevel**: Only bots that are at least this player level will be allowed to select the quest + * **maxLevel**: Only bots that are at most this player level will be allowed to select the quest + * **maxBots**: The maximum number of bots that can be performing the quest at the same time. + * **maxBotsInGroup**: If the number of bots in a group exceeds this value, the boss of the group will not be allowed to select this quest. + * **desirability**: A rating roughly equivalent to a percentage that indicates "how much" bots want to select this quest. Quests with high desirability ratings (50+) are very likely to be selected, and quests with low desirability ratings (<20) are unlikely to be selected unless the bot is close to them. + * **minRaidET**: The quest can only be selected if at least this many seconds have elapsed in the raid. This is based on the overall raid time, not the time after you spawn. For example, if you set **maxRaidET=60** for a quest and you spawn into a Factory raid with 15 minutes remaining, this quest will never be used because 300 seconds has already elapsed in the overall raid. This property is typically used to make bots rush to locations like Dorms when the raid begins. + * **maxRaidET**: The quest can only be selected if more more than this many seconds have elapsed in the raid. See **minRaidET** for more information. + * **maxTimeOnQuest**: The maximum time (in seconds) that a bot is allowed to continue doing the quest after it completes at least one of its objectives. This is intended to add more variety to bot questing instead of having them stay in one area for a long period of time. By default, this is 300 seconds. + * **canRunBetweenObjectives**: Boolean indicating if bots are allowed to sprint to the next objective in the quest after it completes at least one objective. This is intended to be used in areas where stealth is more important (typically in buildings). This is **true** by default. + * **requiredSwitches**: A dictionary of the switches that must be in a specific position bot bots to perform the quest. The dictionary key is the ID of the switch, and the value is a boolean indicating if the switch must be open (actuated). If the dictionary is empty, no switches will be checked. + * **forbiddenWeapons**: An array of weapon classes that cannot be used to perform this quest. In order for the bot to perform the quest, it must have at least one weapon that is not in the weapon classes listed in the array. The only available options for the array elements are (case-sensitive): + * assaultCarbine + * assaultRifle + * grenadeLauncher + * machinegun + * marksmanRifle + * pistol + * shotgun + * smg + * sniperRifle + * specialWeapon + * **name**: The name of the quest. This doesn't have to be unique, but it's best if it is to avoid confusion when troubleshooting. + * **waypoints**: An array of waypoints that can be used to assist bots with finding paths to the quest's objectives. Each waypoint is an (x, y, z) coordinate. + * **objectives**: An array of the objectives in the quest. Bots can complete objectives in any order. + +* **Objectives**: An objective is a collection of at least one step. An objective represents a list of actions that the bot must complete in the order you specify. + + Quest objectives have the following properties: + * **repeatable**: Boolean value indicating if the bot can repeat the quest objective later in the raid. This is typically used for quests are are PvP or PvE focused, where a bot might want to check an area again later in the raid for more enemies. + * **minDistanceFromBot**: The objective will only be selected if the bot is at least this many meters away from it. + * **maxDistanceFromBot**: The objective will only be selected if the bot is no more than this many meters away from it. + * **maxRunDistance**: If bots get within this radius (in meters) of the position for the first step in the objective, they will no longer be allowed to sprint. This is intended to be used in areas where stealth is more important (typically in buildings). This is **0** by default. + * **lootAfterCompleting**: The only valid options for this are "Default", "Force", and "Inhibit" (case-sensitive). If "Force" is used, Questing Bots will try invoking [Looting Bots](https://hub.sp-tarkov.com/files/file/1096-looting-bots/) to make the bot scan for loot immediately after completing each step in the objective. However, bots will not be able to loot if they're in combat or have no available space. If "Inhibit" is used, this mod will try invoking [Looting Bots](https://hub.sp-tarkov.com/files/file/1096-looting-bots/) to prevent the bot from looting until after it selects another quest objective. [Looting Bots](https://hub.sp-tarkov.com/files/file/1096-looting-bots/) version 1.2.1 or later is required for either option to work. [SAIN](https://hub.sp-tarkov.com/files/file/1062-sain-2-0-solarint-s-ai-modifications-full-ai-combat-system-replacement/) 2.1.9 or later is required for Questing Bots to properly force bots to loot. + * **doorIDToUnlock**: If specified, the door with this ID must be unlocked before bots are allowed to proceed with any steps in the objective. The door's state will be checked when the bot is within **questing.unlocking_doors.search_radius** meters of the objective's first step position. + * **fixedPositionToUnlockDoor**: If **doorIDToUnlock** is specified, this field can optionally be added to specify an exact position where bots will stand to open the door. If this field is omitted, the interaction position will be determined programmatically. + * **steps**: An array of the steps in the objective. Bots will complete the steps exactly in the order you specify. + +* **Steps**: A step is an individual component of an objective. + + Quest objective steps have the following properties: + * **position**: The position on the map that the bot will try to reach + * **lookToPosition**: The position on the map that bots will look toward after they reach **position**. This is only used for the **Ambush** and **Snipe** step types described below. + * **waitTimeAfterCompleting**: The time the bot must wait after completing the step before it will be allowed to quest again. The default value for this field is defined by **questing.default_wait_time_after_objective_completion**. + * **stepType**: The only valid options for this are (case-sensitive): + * **MoveToPosition**: Bots are instructed to go to **position**. If possible, they're allowed to unlock doors that block their path. + * **HoldAtPosition**: Bots are instructed to remain within **maxDistance** meters of **position** and stay alert for a random time between the min and max values of **minElapsedTime**. + * **Ambush**: Bots are instructed to go to **position**, stand still, and look at **lookToPosition** for a random time between the min and max values of **minElapsedTime**. This is used to simulate camping quests. + * **Snipe**: The same as **Ambush**, but bots can be interrupted if they hear suspicious noises + * **ToggleSwitch**: Bots are instructed to go to **position** and toggle the switch defined by **switchID**. + * **RequestExtract**: This mod will try to instruct bots to extract via [SAIN](https://hub.sp-tarkov.com/files/file/1062-sain-2-0-solarint-s-ai-modifications-full-ai-combat-system-replacement/). + * **CloseNearbyDoors**: Bots are instructed to close all doors within **maxDistance** meters of **position** + + If **stepType** is omitted, **MoveToPosition** is used by default. + * **minElapsedTime**: The range of minimum and maximum time that a bot will perform certain types of objective steps (namely **HoldAtPosition**, **Ambush**, and **Snipe**). + * **switchID**: If **stepType="ToggleSwitch"**, this is the ID of the switch the bot should open. It needs to exactly match one of the results in the "Found switches" debug message shown in the bepinex console when loading into the map. + * **maxDistance**: If **stepType="HoldAtPosition"**, this is the maximum distance (in meters) bots will be allowed to wander from **position** for the objective step. If **stepType="CloseNearbyDoors"**, bots will close all doors within this radius of **position** (in meters). + * **chanceOfHavingKey**: The chance that bots will have keys to unlock any doors that are blocking their paths to this objective step. This overrides the default chance of having keys defined by **questing.unlocking_doors.default_chance_of_bots_having_keys** or **questing.bot_quests.eft_quests.chance_of_having_keys**. + +**Tips and Tricks** +* Objectives should be sparsely placed on the map. Since bots take a break from questing after each objective is completed, they will wander around the area (for an unknown distance) before continuing the quest. If you place objective positions too close to each other, the bot will unnecessarily run back and forth around the area. As a rule of thumb, place objectives at least 20m from each other. +* If you want a bot to go to several specific positions that are close to each other (i.e. small, adjacent rooms), use multiple steps in a single objective instead of using multiple objectives each with a single step. +* Bots will use the NavMesh to calculate the more efficient path to their objective (using an internal Unity algorithm). They cannot perform complex actions to reach objective locations, so avoid placing objective steps on top of objects (i.e. inside truck beds) or in areas that are difficult to reach. Bots will not know to crouch or jump to get around obstacles. +* Quest waypoints can help bots find paths to objectives in labyrinthic areas, but adding too many to a quest may impact performance. + +**---------- Bot Group Spawning System ----------** + +* Spawn chances for various group sizes are configurable. By default, solo spawns are most likely, but 2-man and 3-man groups will be commonly seen. 4-man and 5-man groups are rare but possible. +* EFT will assign one bot in the group to be a "boss", and the boss will select the quest to perform. All other bots in the group will follow the boss. +* If any group members stray too far from the boss, the boss will stop questing and attempt to regroup +* If any member of the group engages in combat or hears a suspicious noise, all other members will stop questing (or following) and engage in combat too. +* If the boss is allowed to sprint, so are its followers and vice versa. +* If the boss of a bot group dies, EFT will automatically assign a new one from the remaining members +* Followers are only allowed to loot if they remain within a certain distance from the boss + +**---------- AI Limiter System ----------** + +Since normal AI Limit mods will disable bots that are questing (which will prevent them from exploring the map), this mod has its own AI Limiter with the following features: +* AI Limiting must be explicitly enabled in the F12 menu. +* AI Limiting must be explicitly enabled for bots that are questing for each map. By default, questing bots will only be disabled on Streets. +* Bots will only be allowed to be disabled if they are beyond a certain distance (200m by default) from human players. There are individual map-specific distances that can be adjusted by enabling advanced settings in the F12 menu, but the global setting will take priority. In other words, the actual limiting distance is the minimum of the two (the map-specific value and the global value). By default, all map-specific distances are set to 1000m to avoid confusion when only the global setting is adjusted. +* Bots will only be allowed to be disabled if they are beyond a certain distance (75m by default) from other bots that are questing (and not disabled) + +**---------- Scav Spawn Restrictions System ----------** + +The Questing Bots spawning system adds PMC and player-Scav spawns on top of existing vanilla EFT spawns to mimic the live PvP experience as much as possible. However, that also means issues with vanilla EFT spawning will also exist while using this mod, including excessive Scav spawning that overwhelms players. This is especially a problem in live PvE. + +To mitigate Scav spawning issues experienced in live EFT, the 0.9.1 release introduces several F12 menu options to intervene with its Scav spawning system: +* **Enable Scav Spawn Restrictions**: Completely enable or disable all features described below. +* **Map Fraction for Scav Spawning Exclusion Radius**: In live PvP and PvE, Scavs may spawn as close as 1.8m from you, which is immersion-breaking and unfair. Questing Bots significantly increases the minimum distance from you that Scavs can spawn, based on this slider value. First, it finds the maximum distance between any two spawn points on the map (which approximates the map size). Then, it calculates the minimum spawning distance for Scavs by multiplying this distance by the slider value (0.1 by default). Finally, it blocks EFT from spawning any Scavs within the calculated minimum spawning distance of any players (human, AI PMC, or AI player Scav). Because the minimum distance scales with the map size, practically this means that Scavs cannot spawn within ~100m of you on Customs but only ~17m of you on Factory (using the default setting). Higher values may overly restrict Scav spawns, while lower values have a higher risk of Scavs spawning near you. +* **Permitted Scav Spawn Rate**: As Scavs are killed, EFT rapidly spawns new ones to replace them (until the map's bot cap is reached). This means you can get stuck in situations where Scavs are constantly swarming you during the raid. To alleviate this problem, Questing Bots limits the rate at which EFT is allowed to spawn Scavs to this slider value (2.5 Scavs / minute by default). This restriction begins after a certain number of Scavs have spawned, determined by the value of **Threshold for Scav Spawn Rate Limit** (see below). The time window used to calculate the Scav spawn rate is defined by **bot_spawns.eft_new_spawn_system_adjustments.scav_spawn_rate_time_window** (300s by default). +* **Threshold for Scav Spawn Rate Limit**: EFT will be allowed to spawn this number of Scavs from the start of the raid, and then Scav spawns will be limited by **Permitted Scav Spawn Rate**. The purpose of this threshold is to ensure the map is initially populated before Scav respawns are blocked. This is set to 10 by default. +* **Max Alive Scavs**: The total number of **assault**, **assaultGroup**, **cursedAssault**, and **marksman** Scavs that are alive on the map at the same time will be limited to this value (15 by default). Questing Bots will prevent EFT from spawning additional Scavs if this limit would be exceeded. + +If Scav spawns are blocked by either the **Permitted Scav Spawn Rate** or **Max Alive Scavs** restrictions, Questing Bots will prevent EFT from attempting to spawn additional Scavs by the number of seconds defined by **bot_spawns.eft_new_spawn_system_adjustments.non_wave_retry_delay_after_blocked** (180s by default). + +**---------- Configuration Options in *config.json* ----------** + +**Main Options:** +* **enabled**: Completely enable or disable all featues of this mod. +* **debug.enabled**: Enable debug mode. +* **debug.always_spawn_pmcs**: If **true**, PMC's will spawn even when you select "None" for the amount of bots when starting a raid. +* **debug.always_spawn_pscavs**: If **true**, player Scavs will spawn even when you select "None" for the amount of bots when starting a raid. +* **debug.show_zone_outlines**: If **true**, EFT quest zones will be outlined in light blue. Target locations for each zone will have light-blue spherical outlines. +* **debug.show_failed_paths**: If **true**, whenever a bot gets stuck its target path will be drawn in red. +* **debug.show_door_interaction_test_points**: If **true**, the positions tested when determining where bots should travel to unlock doors will have spherical outlines. If the a valid NavMesh position cannot be found for the test point, the outline color will be white. If a valid NavMesh position is found but the bot cannot access that point, the outline color will be yellow. If a valid NavMesh position is found and the bot can access that point, the outline color will be magenta. The position selected for the bot will be shown with a green outline. +* **max_calc_time_per_frame_ms**: The maximum amount of time (in milliseconds) the mod is allowed to run quest-generation and PMC-spawning procedures per frame. By default this is set to **5** ms, and delays of <15 ms are basically imperceptible. +* **chance_of_being_hostile_toward_bosses.scav**: The chance that Scavs will be hostile toward all bosses on the map. This is **0%** by default. +* **chance_of_being_hostile_toward_bosses.pscav**: The chance that player Scavs will be hostile toward all bosses on the map even if the bosses aren't hostile toward them (i.e. Rogues are not initially hostile toward player Scavs). This is **20%** by default. +* **chance_of_being_hostile_toward_bosses.pmc**: The chance that PMC's will be hostile toward all bosses on the map even if the bosses aren't hostile toward them (i.e. Rogues are not initially hostile toward USEC PMC's). This is **80%** by default. +* **chance_of_being_hostile_toward_bosses.boss**: The chance that bosses will be hostile toward all other bosses on the map. This is **0%** by default. + +**Questing Options:** +* **questing.enabled**: Completely enable or disable questing. +* **questing.bot_pathing_update_interval_ms**: The interval (in milliseconds) at which each bot will recalculate its path to its current objective. If this value is very low, performance will be impacted. If this value is very high, the bot will not react to obstacles changing as quickly (i.e. doors being unlocked). By default, this is **100** ms. +* **questing.brain_layer_priorities.xxx.xxx**: The priority numbers assigned to the "brain" layers for this mod. One group is of priorities is used when SAIN is installed, and the other is used when SAIN is not installed. **Do not change these unless you know what you're doing!** +* **questing.quest_selection_timeout**: If a quest cannot be selected for a bot after trying for this amount of time (in seconds), the mod will give up and write an error message. +* **questing.btr_run_distance**: Override value (in meters) for the EFT setting that makes bots "avoid danger" when they're near the BTR. The default EFT value is 40m, and the default value of this setting is **10** m. +* **questing.allowed_bot_types_for_questing.scav**: If Scavs are allowed to quest. This is **false** by default. +* **questing.allowed_bot_types_for_questing.pscav**: If player Scavs are allowed to quest. This is **true** by default. +* **questing.allowed_bot_types_for_questing.pmc**: If PMC's are allowed to quest. This is **true** by default. +* **questing.allowed_bot_types_for_questing.boss**: If bosses are allowed to quest. This is **false** by default. Boss followers will never be allowed to quest. +* **questing.allowed_bot_types_for_questing.min/max**: The minimum and maximum time (in seconds) that a bot will wait after ending combat before it's allowed to quest again. After the bot is no longer actively engaged in combat, it will continue its quest following a random delay between these two values. This is to allow the bot to search for threats before blindly running toward its objective. +* **questing.stuck_bot_detection.distance**: The minimum distance (in meters) the bot must travel over a period of **questing.stuck_bot_detection.time** seconds while questing or the mod will assume it's stuck. This is **2** m by default. +* **questing.stuck_bot_detection.time**: The maximum time (in seconds) the bot is allowed to move less than **questing.stuck_bot_detection.distance** meters while questing or the mod will assume it's stuck. This is **20** s by default. +* **questing.stuck_bot_detection.stuck_bot_remedies.enabled**: If bots will try jumping or vaulting if they get stuck while questing (until they get stuck for **questing.stuck_bot_detection.time** or more seconds). This is **true** by default. +* **questing.stuck_bot_detection.stuck_bot_remedies.min_time_before_jumping**: The minimum time (in seconds) the bot is allowed to move less than **questing.stuck_bot_detection.distance** meters while questing before it will try jumping to prevent itself from being stuck. This is **6** s by default. +* **questing.stuck_bot_detection.stuck_bot_remedies.jump_debounce_time**: The minimum time (in seconds) between a bot's jump attempts to prevent itself from being stuck. This is **4** s by default. +* **questing.stuck_bot_detection.stuck_bot_remedies.min_time_before_vaulting**: The minimum time (in seconds) the bot is allowed to move less than **questing.stuck_bot_detection.distance** meters while questing before it will try vaulting to prevent itself from being stuck. This is **8** s by default. +* **questing.stuck_bot_detection.stuck_bot_remedies.vault_debounce_time**: The minimum time (in seconds) between a bot's vault attempts to prevent itself from being stuck. This is **4** s by default. +* **questing.stuck_bot_detection.max_count**: The maximum number of times the bot can be stuck before questing is completely disabled for it. This counter is reset whenever the bot completes an objective. Whenever the bot is assumed to be stuck, a new objective will be selected for it to force it to generate a different path. This is **8** by default. +* **questing.stuck_bot_detection.follower_break_time**: If a boss follower is stuck while trying to follow it, it will take a break for this many seconds (**10** by default). +* **questing.stuck_bot_detection.max_not_able_bodied_time**: If a bot is continuously not able-bodied (typically due to injuries) for this amount of time (in seconds), it will be separated from its group. If it's the boss of its group, a new boss will be selected for that group. This timer is paused when a bot is either in combat or hears suspicious noises. This is **120** s by default. +* **questing.unlocking_doors.enabled.scav**: If questing Scavs are allowed to open locked doors. This is **false** by default. +* **questing.unlocking_doors.enabled.pscav**: If questing player Scavs are allowed to open locked doors. This is **false** by default. +* **questing.unlocking_doors.enabled.pmc**: If questing PMC's are allowed to open locked doors. This is **true** by default. +* **questing.unlocking_doors.enabled.boss**: If questing bosses are allowed to open locked doors. This is **false** by default. +* **questing.unlocking_doors.search_radius**: The distance (in meters) to search around the bot for locked doors. This is **25**m by default. +* **questing.unlocking_doors.max_distance_to_unlock**: The maximum distance (in meters) that a bot is allowed to be from a door in order to unlock it. This is **0.5**m by default. **Do not change this unless you know what you're doing!** +* **questing.unlocking_doors.door_approach_position_search_radius**: The distance (in meters) to search around doors for positions that are on the NavMesh and have complete paths to the bot's current location. This is **0.75**m by default. **Do not change this unless you know what you're doing!** +* **questing.unlocking_doors.door_approach_position_search_offset**: The distance (in meters) to offset the search positions around doors determined by **questing.unlocking_doors.door_approach_position_search_radius**. This is **-0.75**m by default. **Do not change this unless you know what you're doing!** +* **questing.unlocking_doors.pause_time_after_unlocking**: The time (in seconds) bots must wait after unlocking doors before they're allowed to continue with their quests. If this is too low, their pathing will not be updated and they may fail the quest they're currently doing. **Do not change this unless you know what you're doing!** +* **questing.unlocking_doors.debounce_time**: The time (in seconds) bots must wait after selecting a door to unlock before they're allowed to select another one to unlock. This is to prevent bots from rapidly selecting doors instead of allowing them to change objectives. This is **1**s by default. +* **questing.unlocking_doors.default_chance_of_bots_having_keys**: The default chance (in percentage) that bots will have keys for quest locations. +* **questing.min_time_between_switching_objectives**: The minimum amount of time (in seconds) the bot must wait after completing an objective before a new objective is selected for it. This is to allow it to check its surroundings, search for loot, etc. This is **5** s by default. +* **questing.default_wait_time_after_objective_completion**: The default time (in seconds) a bot will wait after completing a quest objective step before it will select a new one. This is **5** s by default. +* **questing.update_bot_zone_after_stopping**: Whenever a bot stops going to its quest objective (for any reason), check which BotZone is closest to the bot's current location and assign it to the bot's group (if it's different). This prevents bots from running away from their current location whenever they take a break from questing. This check will only be performed for solo bots or bosses of bot groups. Otherwise, followers may cause the whole group to retreat if they get stuck somewhere. This is **true** by default. +* **questing.wait_time_before_planting**: If the bot needs to plant an item at a quest location, this is the time (in seconds) it will wait between reaching its target location and beginning to "plant" the required item. This is **1** s by default. If this is much lower than **1** s, there may be strange behavior when the bot transitions into planting its item. +* **questing.quest_generation.navmesh_search_distance_item**: The radius (in meters) around quest items (i.e. the bronze pocket watch) to seach for a valid NavMesh position to use for a target location for creating a quest objective for it. If this value is too low, bots may not be able to generate a complete path to the item. If this value is too high, bots may generate paths into adjacent rooms or to vertical positions on different floors. This is **1.5** m by default. +* **questing.quest_generation.navmesh_search_distance_zone**: The radius (in meters) around target positions in zones (i.e. trigger areas for placing markers) to seach for a valid NavMesh position to use for a target location for creating a quest objective for it. If this value is too low, bots may not be able to generate a complete path to the zone. If this value is too high, bots may generate paths into adjacent rooms or to vertical positions on different floors. This is **1.5** m by default. The target position for a zone is the center-most valid NavMesh position in it. If the zone surrounds multiple floors in a building, the lowest floor is typically used. +* **questing.quest_generation.navmesh_search_distance_spawn**: The radius (in meters) around spawn points to seach for a valid NavMesh position to use for a target location for creating a quest objective for it. If this value is too low, bots may not be able to generate a complete path to the spawn point. If this value is too high, bots may generate paths into adjacent rooms or to vertical positions on different floors. This is **2** m by default. +* **questing.quest_generation.navmesh_search_distance_doors**: The radius (in meters) to search for a valid NavMesh position around the test points used for determining if a bot can unlock a door. If this value is too low, bots may not be able to unlock the door. If this value is too high, bots may generate paths into adjacent rooms or to vertical positions on different floors. This is **0.75** m by default. +* **questing.bot_search_distances.objective_reached_ideal**: Bots must travel within this distance (in meters) of their target objective positions for the objective to be considered successfully completed. This is **0.25** m by default. +* **questing.bot_search_distances.objective_reached_navmesh_path_error**: The maximum distance (in meters) that the end of a bot's calculated path can be from its target objective position before the objective is considerd unreachable. This is **2** m by default. +* **questing.bot_search_distances.max_navmesh_path_error**: If a complete path cannot be generated to a bot's target objective position, it will try to get within this radius (in meters) of it anyway. This is to simulate situations like bots checking if a door is unlocked when it doesn't have the key. This is **10** m by default. +* **questing.bot_pathing.max_start_position_discrepancy**: The minimum distance (in meters) between the bot's position and the start of its path above which its path will be recalculated if there is a difference between its current target position and the target position for its quest. **Do not change this unless you know what you're doing!** +* **questing.bot_pathing.incomplete_path_retry_interval**: If a bot's path to its objective is incomplete, the path will be recalculated at this interval (in seconds) until a complete path is found. This is **5** s by default. +* **questing.bot_questing_requirements.exclude_bots_by_level**: Each quest has a minimum and maximum player level assigned to it. If this option is **true** (which is the default setting), bots will only be allowed to select a quest if its player level is within this range. This prevents low-level bots from selecting end-game quests and vice versa. +* **questing.bot_questing_requirements.repeat_quest_delay**: The minimum delay (in seconds) after a bot stops performing objectives for a repeatable quest before it's allowed to repeat the quest. This is **360** s by default. +* **questing.bot_questing_requirements.max_time_per_quest**: The maximum amount of time (in seconds) that bots are allowed to perform objectives for the same quest. This is to encourage questing diversity for bots and to deter them from remaining in the same area for a long time. This is **300** s by default. +* **questing.bot_questing_requirements.min_hydration**: The minimum hydration level permitted for bots or they will not be allowed to quest. This is **20** by default. +* **questing.bot_questing_requirements.min_energy**: The minimum energy level permitted for bots or they will not be allowed to quest. This is **20** by default. +* **questing.bot_questing_requirements.min_health_head**: The minimum permitted health percentage of a bot's head or it will not be allowed to quest. This is **50%** by default. +* **questing.bot_questing_requirements.min_health_chest**: The minimum permitted health percentage of a bot's chest or it will not be allowed to quest. This is **50%** by default. +* **questing.bot_questing_requirements.min_health_stomach**: The minimum permitted health percentage of a bot's stomach or it will not be allowed to quest. This is **50%** by default. +* **questing.bot_questing_requirements.min_health_legs**: The minimum permitted health percentage of either of a bot's legs or it will not be allowed to quest. This is **50%** by default. +* **questing.bot_questing_requirements.max_overweight_percentage**: The maximum total weight permitted for bots (as a percentage of their overweight threshold) or they will not be allowed to quest. This is **100%** by default. +* **questing.bot_questing_requirements.search_time_after_combat.xxx.min/max:** Bots will not be allowed to quest until a random amount of time (in seconds) in this range has passed after combat most recently ended for them. If SAIN's lowest brain-layer priority is greater than **questing.brain_layer_priorities.questing**, the *prioritized_sain* settings will be used (for **xxx**). Otherwise, *prioritized_questing* settings will be used. +* **questing.bot_questing_requirements.hearing_sensor.enabled**: If bots are allowed to stop questing due to suspicious noises. This is **true** by default. +* **questing.bot_questing_requirements.hearing_sensor.min_corrected_sound_power**: If the "loudness" of a sound is less than this value, bots will ignore it. Currently, this results in all bots (even those wearing a headset) ignoring you if you crouch-walk at the slowest speed. This is **17** by default, and the units are unknown. +* **questing.bot_questing_requirements.hearing_sensor.max_distance_footsteps**: If bots hear footsteps within this distance (in meters), they will become suspicious and stop questing. This is **20** m by default. +* **questing.bot_questing_requirements.hearing_sensor.max_distance_gunfire**: If bots hear gunfire within this distance (in meters), they will become suspicious and stop questing. This is **50** m by default. +* **questing.bot_questing_requirements.hearing_sensor.max_distance_gunfire_suppressed**: If bots hear suppressed gunfire within this distance (in meters), they will become suspicious and stop questing. This is **50** m by default. +* **questing.bot_questing_requirements.hearing_sensor.loudness_multiplier_footsteps**: A scaling factor to adjust the bot's hearing sensitivity to footsteps. This is **1** by default. +* **questing.bot_questing_requirements.hearing_sensor.loudness_multiplier_headset**: A scaling factor to apply to the "loudness" of sounds if a bot is wearing any type of headset. This is **1.3** by default. +* **questing.bot_questing_requirements.hearing_sensor.loudness_multiplier_helmet_low_deaf**: A scaling factor to apply to the "loudness" of sounds if a bot is wearing a helmet that has a "low deafness" rating for reducing the volume of sounds it perceives. This is **0.8** by default. +* **questing.bot_questing_requirements.hearing_sensor.loudness_multiplier_helmet_high_deaf**: A scaling factor to apply to the "loudness" of sounds if a bot is wearing a helmet that has a "high deafness" rating for reducing the volume of sounds it perceives. This is **0.6** by default. +* **questing.bot_questing_requirements.hearing_sensor.suspicious_time.min/max**: If a bot becomes suspicious of a noise, they will stop questing until a random amount of time (in seconds) in this range has passed after the last suspicious noise they heard. +* **questing.bot_questing_requirements.hearing_sensor.max_suspicious_time**: The maximum time (in seconds) that a bot can remain suspicious of noises it hears before it will be forced to ignore them for at least **questing.bot_questing_requirements.hearing_sensor.suspicion_cooldown_time** seconds. This is to prevent bots for remaining in one spot for a long time, especially for PVP-focused maps like Factory. The value of this is map-specific. +* **questing.bot_questing_requirements.hearing_sensor.suspicion_cooldown_time**: If a bot is suspicious for at least **questing.bot_questing_requirements.hearing_sensor.max_suspicious_time** seconds, it will be forced to ignore suspicious noises for this amount of time (in seconds) before it will be allowed to be suspicious of noises again. This is **7** s by default. +* **questing.bot_questing_requirements.break_for_looting.enabled**: If **true** (the default setting), bots will temporarily stop questing at certain intervals to check for loot (or whatever). +* **questing.bot_questing_requirements.break_for_looting.min_time_between_looting_checks**: The minimum delay (in seconds) after a bot takes a break to check for loot before it will be allowed to take a break again. If this value is very low, bots may frequently back-track and may never reach their objectives. If this value is high, bots will rarely loot. This is **50** s by default. +* **questing.bot_questing_requirements.break_for_looting.min_time_between_follower_looting_checks**: The minimum delay (in seconds) after any of a bot's followers take a break to check for loot before they will be allowed to take a break again. If this value is very low, bot groups may frequently back-track and may never reach their objectives. If this value is high, followers will rarely loot. This is **30** s by default. +* **questing.bot_questing_requirements.break_for_looting.min_time_between_looting_events**: The minimum delay (in seconds) after a bot successfully finds loot before it will be allowed to take a break again. If this value is very low, bots may frequently back-track and may never reach their objectives. If this value is high, bots will rarely loot. This supersedes **bot_questing_requirements.break_for_looting.min_time_between_looting_checks**, and it requires [Looting Bots](https://hub.sp-tarkov.com/files/file/1096-looting-bots/) (or it will be ignored). This is **80** s by default. +* **questing.bot_questing_requirements.break_for_looting.max_time_to_start_looting**: The duration of each break (in seconds). If one of the [Looting Bots](https://hub.sp-tarkov.com/files/file/1096-looting-bots/) brain layers is not active after this time, the bot will resume questing. This is **2** s by default. +* **questing.bot_questing_requirements.break_for_looting.max_loot_scan_time**: The maximum time that bots will be allowed to search for loot via [Looting Bots](https://hub.sp-tarkov.com/files/file/1096-looting-bots/). If the bot hasn't found any loot within this time, it will continue questing. If it has found loot, it will not continue questing until it's completely finished with looting. This is **4** s by default. +* **questing.bot_questing_requirements.break_for_looting.max_distance_from_boss**: The maximum distance (in meters) that a follower will be allowed to travel from its boss while looting. If the follower exceeds this distance, it will be forced to stop looting and regroup. This is **75** m by default. +* **questing.bot_questing_requirements.max_follower_distance.max_wait_time**: The maximum time (in seconds) that a bot's followers are allowed to be too far from it before it will stop questing and regroup. This is **5** s by default. +* **questing.bot_questing_requirements.max_follower_distance.min_regroup_time**: The minimum time (in seconds) that a bot will be forced to regroup with its followers if it's too far from them. After this time, the bot will be allowed to patrol its area instead. This is **1** s by default. +* **questing.bot_questing_requirements.max_follower_distance.regroup_pause_time**: When a boss reaches its nearest follower while regrouping, it will stop regrouping for this amount of time (in seconds). After that delay, it will continue regrouping if required, or it will continue questing. This delay is to prevent bosses from standing completely still while waiting for the rest of their followers to regroup. This is **2** s by default. +* **questing.bot_questing_requirements.max_follower_distance.target_position_variation_allowed**: The allowed variation in a follower's target location (typically its boss's position) before the bot will need to update its path. This allows bots to go to locations near their bosses instead of constantly recalculating their paths whenever their boss moves. This is **3** m by default. +* **questing.bot_questing_requirements.max_follower_distance.target_range_questing.min/max**: The allowed range of distances (in meters) that followers will try to be from their boss while questing. If a follower needs to get closer to its boss, it will try to get within the **min** distance (**7** m by default) of it. After that, it will be allowed to wander up to the **max** distance (**12** m by default) from it. +* **questing.bot_questing_requirements.max_follower_distance.target_range_combat.min/max**: The same as **questing.bot_questing_requirements.max_follower_distance.target_range_questing.min/max** but for when the bot's group is in combat. The default **min** distance is **20** m, and the default **max** distance is **30** m. +* **questing.bot_questing_requirements.max_follower_distance.nearest**: If the bot has any followers, it will not be allowed to quest if its nearest follower is more than this distance (in meters) from it. This is **25** m by default. +* **questing.bot_questing_requirements.max_follower_distance.furthest**: If the bot has any followers, it will not be allowed to quest if its furthest follower is more than this distance (in meters) from it. This is **40** m by default. +* **questing.extraction_requirements.use_sain_for_extracting**: If [SAIN](https://hub.sp-tarkov.com/files/file/1062-sain-2-0-solarint-s-ai-modifications-full-ai-combat-system-replacement/) should be used to control extract behavior for bots. Otherwise, vanilla EFT logic will be used. This is **false** by default. +* **questing.extraction_requirements.min_alive_time**: The minimum time (in seconds) a bot must wait after spawning before it will be allowed to extract. This is **60** s by default. +* **questing.extraction_requirements.must_extract_time_remaining**: The time remaining in the raid (in seconds) after which bots will be unable to select new quest objectives and must extract instead. By default, this is **300** s. +* **questing.extraction_requirements.total_quests.min/max**: The minimum and maximum quests that a bot must complete before being instructed to extract. The actual number is randomly selected between this range. Bots can still be instructed to extract if they satisfy their **questing.extraction_requirements.EFT_quests.min/max** requirement. +* **questing.extraction_requirements.EFT_quests.min/max**: The minimum and maximum EFT quests that a bot must complete before being instructed to extract. The actual number is randomly selected between this range. Bots can still be instructed to extract if they satisfy their **questing.extraction_requirements.total_quests.min/max** requirement. +* **questing.sprinting_limitations.enable_debounce_time**: After a bot stops sprinting, it will not be allowed to sprint again for this many seconds. This is **3** s by default. +* **questing.sprinting_limitations.stamina.min**: The lower stamina threshold (as a fraction of max stamina) below which bots will not be allowed to sprint. This is **0.1** by default. +* **questing.sprinting_limitations.stamina.max**: The upper stamina threshold (as a fraction of max stamina) above which bots will always be allowed to sprint. If a bot's stamina drops below **questing.sprinting_limitations.stamina.min**, it won't be allowed to sprint again until its stamina raises back to this level or higher. This is **0.5** by default. +* **questing.sprinting_limitations.sharp_path_corners.distance**: If a bot is within this distance (in meters) of a sharp corner in its path, it will not be allowed to sprint. This was mainly implemented to prevent bots from shuffle-running around stairwells. This is **2** m by default. +* **questing.sprinting_limitations.sharp_path_corners.angle**: The angle (in degrees) between segments in a bot's path above which the corner is considered a sharp corner. This was mainly implemented to prevent bots from shuffle-running around stairwells. This is **45** deg by default. +* **questing.sprinting_limitations.approaching_closed_doors.distance**: If a bot is within this distance (in meters) of a closed door and is heading toward it, it will not be allowed to sprint. This was implemented to prevent bots from sliding into closed doors before opening them. this is **3** m by default. +* **questing.sprinting_limitations.approaching_closed_doors.angle**: If a bot is within **questing.sprinting_limitations.approaching_closed_doors.distance** meters of a closed door, it will not be allowed to sprint if the angle between the bot's heading and the vector from the bot to the door is less than this value (in degrees). This was implemented to prevent bots from sliding into closed doors before opening them. This is **60** deg by default. +* **questing.bot_quests.distance_randomness**: One of the sources of "randomness" to apply when selecting a new quest for a bot. This is defined as a percentage of the total range of distances between the bot and every quest objective available to it. By default, this is **30%**. +* **questing.bot_quests.desirability_randomness**: The maximum amount that desirability ratings of quests can be randomly changed when bots select new quests. By default, this is **20%**. +* **questing.bot_quests.distance_weighting**: A factor to change how much the distances between bots and possible quest objectives for them are weighted when selecting new quests. Higher numbers mean that bots will tend to select quests that are closer, but not necessarily more desirable. This is **1** by default. +* **questing.bot_quests.desirability_weighting**: A factor to change how much the desirability of quests are weighted when selecting new quests for bots. Higher numbers mean that bots will tend to select quests that are more desirable even if they're further away. This is **1** by default. +* **questing.bot_quests.desirability_camping_multiplier**: The desirability of all camping quests (determined by **isCamping=true** in their settings) will be multiplied by this factor. This is **1** by default. +* **questing.bot_quests.desirability_sniping_multiplier**: The desirability of all sniping quests (determined by **isSniping=true** in their settings) will be multiplied by this factor. This is **1** by default. +* **questing.bot_quests.desirability_active_quest_multiplier**: The desirability of all EFT quests will be multiplied by this factor if it's an active quest for you. This is **1.2** by default. +* **questing.bot_quests.exfil_direction_weighting.xxx**: A factor to change how likely bots are to select new quests that are in the direction of their selected exfil point. Higher numbers mean that bots will tend to select quests that are on the way to their selected exfil even if they're undesirable. This factor is different for every map. +* **questing.bot_quests.exfil_direction_max_angle**: If the angle between the vector from a bot to its selected exfil and the vector from the bot to a quest objective is below this value (in degrees), the angle will be ignored (treated as 0 deg) for that objective when selecting new quests for bots. This is to allow bots to meander toward their selected exfil instead of having them tend to follow a straight path toward it. This is **90** deg by default. +* **questing.bot_quests.exfil_reached_min_fraction**: This value is multiplied by the maximum distance between all exfils on the map to determine the distance threshold below which bots will change their selected exfils. If a bot travels within that threshold of its selected exfil, it will choose a new exfil. This is to allow bots to travel around the map instead of gravitating toward their initially selected exfils even after they reach them. This is **0.2** by default. +* **questing.bot_quests.blacklisted_boss_hunter_bosses**: An array containing the names of bosses that bots doing the "Boss Hunter" quest will not be allowed to hunt. +* **questing.bot_quests.airdrop_bot_interest_time**: The time (in seconds) after an airdop lands during which bots can go to it via an "Airdrop Chaser" quest. This is **420** s by default. +* **questing.bot_quests.elimination_quest_search_time**: The time (in seconds) a bot will wait before selecting another quest after reaching each objective in an elimination EFT quest. This is **60** s by default. +* **questing.bot_quests.lightkeeper_island_quests.enabled**: If bots are able to perform quests on Lightkeeper Island. This is **true** by default. +* **questing.bot_quests.eft_quests.xxx**: The settings to apply to all quests based on EFT's quests. +* **questing.bot_quests.spawn_rush.xxx**: The settings to apply to the "Spawn Rush" quest. +* **questing.bot_quests.spawn_point_wander.xxx**: The settings to apply to the "Spawn Point Wandering" quest. +* **questing.bot_quests.boss_hunter.xxx**: The settings to apply to the "Boss Hunter" quest. +* **questing.bot_quests.airdrop_chaser.xxx**: The settings to apply to the "Airdrop Chaser" quest. + +**Options for Each Section in *bot_quests*:** +* **desirability**: The desirability rating (in percent) of the quest. Bots will be more likely to select quests with higher desirability ratings. +* **max_bots_per_quest**: The maximum number of bots that can actively be performing each quest of that type. +* **min_distance**: Each objective in the quest will only be selected if the bot is at least this many meters away from it. +* **max_distance**: Each objective in the quest will only be selected if the bot is at most this many meters away from it. +* **max_raid_ET**: The quest can only be selected if this many seconds (or less) have elapsed in the raid. This is based on the overall raid time, not the time after you spawn. For example, if you set **maxRaidET=60** for a quest and you spawn into a Factory raid with 15 minutes remaining, this quest will never be used because 300 seconds has already elapsed in the overall raid. +* **chance_of_having_keys**: The chance that bots will have keys for the locations specified in the quests. +* **match_looting_behavior_distance**: If there are any EFT quest objectives within this distance of non-EFT quest objectives, the EFT quest-objective looting behavior ("Force" or "Inhibit") will be changed to match the nearby non-EFT quest-objective looting behavior +* **min_level**: The absolute minimum player level allowed for bots to select the quest. +* **max_level**: The absolute maximum player level allowed for bots to select the quest. +* **level_range**: An array of [minimum player level for the quest, level range] pairs to determine the maximum player level for each quest of that type. This value is added to the minimum player level for the quest. For example, if a quest is only available at level 15, the level range for it will be 20 (as determined via interpolation of this array using its default values). As a result, only bots between levels 15 and 35 will be allowed select that quest. + +**PMC and Player-Scav Spawning Options:** +* **bot_spawns.enabled**: Allow this mod to spawn PMC's and player Scavs (**true** by default). +* **bot_spawns.blacklisted_pmc_bot_brains**: An array of the bot "brain" types that SPT will not be able to use when generating initial PMC's. These "brain" types have behaviors that inhibit their ability to quest, and this causes them to get stuck in areas for a long time (including their spawn locations). **Do not change this unless you know what you're doing!** +* **bot_spawns.spawn_retry_time**: If any bots fail to spawn, no other attempts will be made to spawn more of them for this amount of time (in seconds). By default, this is **10** s. +* **bot_spawns.delay_game_start_until_bot_gen_finishes**: After the final loading screen shows "0:00.000" for a few seconds, the game will be further delayed from starting if not all bots have been generated. Without doing this, PMC's may not spawn immediately when the raid starts, and the remaining bots will take much longer to generate. This is **true** by default. +* **bot_spawns.spawn_initial_bosses_first**: If initial bosses must spawn before PMC's are allowed to spawn. This does not apply to Factory (Day or Night). This is **false** by default. +* **bot_spawns.eft_new_spawn_system_adjustments.non_wave_retry_delay_after_blocked**: If Scavs are blocked by Questing Bots (per the F12 menu settings) from spawning via EFT's "new" spawning system, delay the next spawn check by this many seconds. This does not have an effect on Scav spawning behavior, but it will reduce server load by limiting how many extra bots it will generate between spawn checks. This is **180** s by default. +* **bot_spawns.eft_new_spawn_system_adjustments.scav_spawn_rate_time_window**: If Scavs are blocked by Questing Bots (per the F12 menu settings) from spawning via EFT's "new" spawning system, calculate the Scav spawn rate by tracking all Scav spawns within this time window (in seconds) from the current time in the raid. This is **300** s by default. +* **bot_spawns.bot_cap_adjustments.use_EFT_bot_caps**: SPT's bot caps will be changed to match EFT's bot caps. This is **true** by default. +* **bot_spawns.bot_cap_adjustments.only_decrease_bot_caps**: If **bot_spawns.bot_cap_adjustments.use_EFT_bot_caps=true**, SPT's bot caps will be changed to match EFT's bot caps only if EFT's bot caps are lower. This is **true** by default. +* **bot_spawns.bot_cap_adjustments.map_specific_adjustments**: If **bot_spawns.bot_cap_adjustments.use_EFT_bot_caps=true**, these additional adjustments will be made to SPT's bot caps after changing them to EFT's. This is used to balance bot spawns and performance. +* **bot_spawns.limit_initial_boss_spawns.enabled**: If initial boss spawns should be limited (**true** by default). +* **bot_spawns.limit_initial_boss_spawns.disable_rogue_delay**: If the 180-second delay SPT adds to Rogue spawns on Lighthouse should be removed. This is **true** by default. +* **bot_spawns.limit_initial_boss_spawns.max_initial_bosses**: The maximum number of bosses that are allowed to spawn at the beginning of the raid (including Raiders and Rogues). After this number is reached, all remaining initial boss spawns will be canceled. If this number is too high, few Scavs will be able to spawn after the initial PMC spawns. This is **14** by default. +* **bot_spawns.limit_initial_boss_spawns.max_initial_rogues**: The maximum number of Rogues that are allowed to spawn at the beginning of the raid. After this number is reached, all remaining initial Rogue spawns will be canceled. If this number is too high, few Scavs will be able to spawn after the initial PMC spawns. This is **10** by default. +* **bot_spawns.max_alive_bots**: The maximum number of PMC's and player Scavs (combined) that can be alive at the same time on each map. This only applies to PMC's and player Scavs generated by this mod; it doesn't apply to bots spawned by other mods or for Scavs converted to PMC's or player Scavs automatically by SPT. +* **bot_spawns.pmc_hostility_adjustments.enabled**: If this mod should override EFT's hostility chances for PMC bots. This is **true** by default. +* **bot_spawns.pmc_hostility_adjustments.pmcs_always_hostile_against_pmcs**: Makes PMC's always hostile against other PMC's. This is **true** by default. +* **bot_spawns.pmc_hostility_adjustments.pmcs_always_hostile_against_scavs**: Makes PMC's always hostile against Scavs and vice versa. This is **true** by default. +* **bot_spawns.pmc_hostility_adjustments.global_scav_enemy_chance**: Sets the global chance that PMC's will be hostile toward Scavs. However, EFT does not use this setting in many maps. This is **100** by default. +* **bot_spawns.pmc_hostility_adjustments.pmc_enemy_roles**: Makes PMC's always hostile toward bots with these roles. +* **bot_spawns.pmcs.xxx**: The settings to apply to PMC spawns (see below for details). +* **bot_spawns.player_scavs.xxx**: The settings to apply to player Scav spawns (see below for details). +* **adjust_pscav_chance.enabled**: If the chances that Scavs are converted to player Scavs should be adjusted throughout the raid. This is only used if **bot_spawns.enabled=false** or **bot_spawns.player_scavs.enabled=false**, and it is **true** by default. +* **adjust_pscav_chance.chance_vs_time_remaining_fraction**: An array describing how likely Scavs are to be converted to player Scavs as a function of the fraction of time remaining in the raid. This is based on the overall raid time, not the time after you spawn. The array contains [fraction of raid time remaining, conversion chance] pairs, and there is no limit to the number of pairs. + +**Options for *bot_spawns.pmcs* and *bot_spawns.player_scavs*:** +* **enabled**: If the corresponding bot type will be allowed to spawn. This is **true** by default for both bot types. +* **min_raid_time_remaining**: The minimum time (in seconds) that must be remaining in the raid for bots of the corresponding bot type to spawn. This is **180** s by default for both PMC's and PScavs. +* **min_distance_from_players_initial**: The minimum distance (in meters) that a bot must be from you and other bots when selecting its spawn point. This is used during the first wave of spawns and is **25** m by default. +* **min_distance_from_players_during_raid**: The minimum distance (in meters) that a bot must be from you and other bots when selecting its spawn point. This is used after the first wave of spawns. +* **min_distance_from_players_during_raid_factory**: The minimum distance (in meters) that a bot must be from you and other bots when selecting its spawn point. This is used after the first wave of spawns. However, this is only used for Factory raids instead of **min_distance_from_players_during_raid**. +* **fraction_of_max_players**: When determining how many total bots of this type will spawn throughout the raid, the maximum player count for the map is multiplied by this value. This is **1** by default for PMC's and **1.5** by default for player Scavs. +* **fraction_of_max_players_vs_raidET**: If you spawn late into the raid as a Scav, the minimum and maximum initial PMC's will be reduced by a factor determined by this array. The array contains [fraction of raid time remaining, fraction of max players] pairs, and there is no limit to the number of pairs. +* **time_randomness**: The maximum percentage of total raid time (before reducing it for Scav raids) that player-Scav spawns can be randomly adjusted when generating a spawn schedule for them. However, player Scavs will never be allowed to spawn earlier than the minimum reduced raid time in the SPT configuration for the map, and they will never be allowed to spawn later than the maximum reduced raid time for the map. This is **10%** by default. +* **bots_per_group_distribution**: An array describing the chances that bot groups of various sizes are allowed to spawn. The left column is the bot group size, and the right column is the chance that a group of that size will spawn. +* **bot_difficulty_as_online**: An array describing the chances that members of a new bot group will be of a certain difficulty. The left column is the difficulty value (0 = easy, 1 = normal, 2 = hard, 3 = impossible), and the right column is the chance that bots with that difficulty will spawn. + +**---------- Known Issues ----------** + +**Vanilla EFT Issues in SPT 3.11:** +* Bots sometimes "teleport" through doors +* Bots shudder while unlocking doors +* Bots sometimes rapidly accelerate and decelerate while moving (especially when following bosses) + +**General:** +* A flicker occurs whenever EFT spawns bots, even when the Questing Bots spawning system is disabled + +**Objective System:** +* Mods that add a lot of new quests may cause latency issues that may result in game stability problems and stuttering +* Bots tend to get trapped in certain areas. Known areas: + * Customs between Warehouse 4 and New Gas + * Customs in some Dorms rooms (i.e. 214 and 220 in 3 story) + * Lighthouse in the mountains near the Resort spawn + * Lighthouse on the rocks near the helicopter crash +* Bots blindly run to their objective (unless they're in combat) even if it's certain death (i.e. running into the Sawmill when Shturman is there). +* Bots take the most direct path to their objectives, which may involve running in the middle of an open area without any cover. +* Certain bot "brains" stay in a combat state for a long time, during which they're unable to continue their quests. +* Certain bot "brains" are blacklisted because they cause the bot to always be in a combat state and therefore never quest (i.e. exUSEC's when they're near a stationary weapon) +* Bots sometimes unlock doors for no reason if they can't properly resolve their quest locations. +* A *"Destroying GameObjects immediately is not permitted during physics trigger/contact, animation event callbacks or OnValidate. You must use Destroy instead."* error will sometimes appear in the game console after a bot unlocks a door. This can be ignored. +* Player-level ranges for some quests are not reasonable, so bots may do late-game quests at low player levels and vice versa. This is because EFT has no minimum level defined for several quest lines. +* Extraction via Questing Bots is only partially implemented + +**---------- Credits ----------** + +* Thanks to [Props](https://hub.sp-tarkov.com/user/18746-props/) for sharing the code [DONUTS](https://hub.sp-tarkov.com/files/file/878-swag-donuts-dynamic-spawn-waves-and-custom-spawn-points/) uses to spawn bots. This was the inspiration to create this mod. +* Thanks to [DrakiaXYZ](https://hub.sp-tarkov.com/user/30839-drakiaxyz/) for creating [BigBrain](https://hub.sp-tarkov.com/files/file/1219-bigbrain/) and [Waypoints](https://hub.sp-tarkov.com/files/file/1119-waypoints-expanded-bot-patrols-and-navmesh/) and for all of your help with developing this mod. Also, thanks for your help with adding interop capability to [SAIN](https://hub.sp-tarkov.com/files/file/1062-sain-2-0-solarint-s-ai-modifications-full-ai-combat-system-replacement/). +* Thanks to [nooky](https://hub.sp-tarkov.com/user/29062-nooky/) for lots of help with testing and ensuring this mod remains compatible with [SWAG + DONUTS](https://hub.sp-tarkov.com/files/file/878-swag-donuts-dynamic-spawn-waves-and-custom-spawn-points/). +* Thanks to [Skwizzy](https://hub.sp-tarkov.com/user/31303-skwizzy/) for help with adding interop capability to [Looting Bots](https://hub.sp-tarkov.com/files/file/1096-looting-bots/). +* Thanks to [Solarint](https://hub.sp-tarkov.com/user/30697-solarint/) for help with improving interop capability to [SAIN](https://hub.sp-tarkov.com/files/file/1062-sain-2-0-solarint-s-ai-modifications-full-ai-combat-system-replacement/) and working with me to balance bot questing vs. combat behavior. +* Thanks to [ozen](https://github.com/ozen-m) for help with testing and contributing to SPT 3.11 updates. +* Thanks to everyone else on Discord who helped to test the many alpha releases of this mod and provided feedback to make it better. There are too many people to name, but you're all awesome. +* Of course, thanks to the SPT development team who made this possible in the first place. \ No newline at end of file diff --git a/user/mods/DanW-SPTQuestingBots/config/config.json b/user/mods/DanW-SPTQuestingBots/config/config.json new file mode 100644 index 0000000..919806c --- /dev/null +++ b/user/mods/DanW-SPTQuestingBots/config/config.json @@ -0,0 +1,387 @@ +{ + "enabled": true, + "debug": { + "enabled": true, + "always_spawn_pmcs": false, + "always_spawn_pscavs": false, + "show_zone_outlines": false, + "show_failed_paths": false, + "show_door_interaction_test_points": false + }, + "max_calc_time_per_frame_ms": 5, + "chance_of_being_hostile_toward_bosses": { + "scav": 0, + "pscav": 20, + "pmc": 80, + "boss": 0 + }, + "questing": { + "enabled": true, + "bot_pathing_update_interval_ms": 100, + "brain_layer_priorities": { + "with_sain" : { + "questing": 18, + "following": 19, + "regrouping": 26, + "sleeping": 99 + }, + "without_sain" : { + "questing": 21, + "following": 22, + "regrouping": 26, + "sleeping": 99 + } + }, + "quest_selection_timeout": 250, + "btr_run_distance": 10, + "allowed_bot_types_for_questing": { + "scav": false, + "pscav": true, + "pmc": true, + "boss": false + }, + "stuck_bot_detection": { + "distance": 2, + "time": 20, + "max_count": 8, + "follower_break_time": 10, + "max_not_able_bodied_time": 120, + "stuck_bot_remedies": { + "enabled" : true, + "min_time_before_jumping": 6, + "jump_debounce_time": 4, + "min_time_before_vaulting": 8, + "vault_debounce_time": 4 + } + }, + "unlocking_doors" : { + "enabled": { + "scav": false, + "pscav": false, + "pmc": true, + "boss": false + }, + "search_radius": 25, + "max_distance_to_unlock": 0.5, + "door_approach_position_search_radius": 0.75, + "door_approach_position_search_offset": -0.75, + "pause_time_after_unlocking": 5, + "debounce_time": 1, + "default_chance_of_bots_having_keys": 25 + }, + "min_time_between_switching_objectives": 5, + "default_wait_time_after_objective_completion": 5, + "update_bot_zone_after_stopping": true, + "wait_time_before_planting": 1, + "quest_generation": { + "navmesh_search_distance_item": 1.5, + "navmesh_search_distance_zone": 1.5, + "navmesh_search_distance_spawn": 2, + "navmesh_search_distance_doors": 0.75 + }, + "bot_search_distances": { + "objective_reached_ideal": 0.5, + "objective_reached_navmesh_path_error": 2, + "max_navmesh_path_error": 10 + }, + "bot_pathing": { + "max_start_position_discrepancy": 0.5, + "incomplete_path_retry_interval": 5 + }, + "bot_questing_requirements": { + "exclude_bots_by_level": true, + "repeat_quest_delay": 360, + "max_time_per_quest": 300, + "min_hydration": 20, + "min_energy": 20, + "min_health_head": 50, + "min_health_chest": 50, + "min_health_stomach": 50, + "min_health_legs": 50, + "max_overweight_percentage": 100, + "search_time_after_combat": { + "prioritized_sain" : { + "min": 5, + "max": 20 + }, + "prioritized_questing" : { + "min": 20, + "max": 45 + } + }, + "hearing_sensor": { + "enabled": true, + "min_corrected_sound_power": 17, + "max_distance_footsteps": 20, + "max_distance_gunfire": 50, + "max_distance_gunfire_suppressed": 50, + "loudness_multiplier_footsteps": 1, + "loudness_multiplier_headset": 1.3, + "loudness_multiplier_helmet_low_deaf": 0.8, + "loudness_multiplier_helmet_high_deaf": 0.6, + "suspicious_time": { + "min": 5, + "max": 20 + }, + "max_suspicious_time": { + "default": 60, + "factory4_day": 30, + "factory4_night": 45, + "bigmap": 120, + "woods": 120, + "shoreline": 120, + "lighthouse": 120, + "rezervbase": 120, + "interchange": 120, + "laboratory": 60, + "tarkovstreets": 120, + "sandbox": 120, + "sandbox_high": 120 + }, + "suspicion_cooldown_time": 7 + }, + "break_for_looting": { + "enabled": true, + "min_time_between_looting_checks": 50, + "min_time_between_follower_looting_checks": 30, + "min_time_between_looting_events": 80, + "max_time_to_start_looting": 2, + "max_loot_scan_time": 4, + "max_distance_from_boss": 50 + }, + "max_follower_distance": { + "max_wait_time": 5, + "min_regroup_time": 1, + "regroup_pause_time": 2, + "target_position_variation_allowed": 3, + "target_range_questing": { + "min": 7, + "max": 12 + }, + "target_range_combat": { + "min": 15, + "max": 35 + }, + "nearest": 15, + "furthest": 25 + } + }, + "extraction_requirements": { + "use_sain_for_extracting": true, + "min_alive_time": 60, + "must_extract_time_remaining": 300, + "total_quests": { + "min": 3, + "max": 8 + }, + "EFT_quests": { + "min": 2, + "max": 4 + } + }, + "sprinting_limitations": { + "enable_debounce_time": 3, + "stamina": { + "min": 0.1, + "max": 0.5 + }, + "sharp_path_corners" : { + "distance": 2, + "angle": 45 + }, + "approaching_closed_doors" : { + "distance": 3, + "angle": 60 + } + }, + "bot_quests": { + "distance_randomness": 30, + "desirability_randomness": 20, + "distance_weighting": 1, + "desirability_weighting": 1, + "desirability_camping_multiplier": 1, + "desirability_sniping_multiplier": 1, + "desirability_active_quest_multiplier": 1.2, + "exfil_direction_weighting": { + "default": 0, + "factory4_day": 0.2, + "factory4_night": 0.2, + "bigmap": 0.7, + "woods": 0.7, + "shoreline": 0.7, + "lighthouse": 0.5, + "rezervbase": 0.4, + "interchange": 0.7, + "laboratory": 0.3, + "tarkovstreets": 0.7, + "sandbox": 0.5, + "sandbox_high": 0.5 + }, + "exfil_direction_max_angle": 90, + "exfil_reached_min_fraction": 0.2, + "blacklisted_boss_hunter_bosses": [ "pmcBEAR", "pmcUSEC", "gifter", "arenaFighterEvent", "shooterBTR", "bossZryachiy", "followerZryachiy", "skier", "peacemaker", "bossPartisan" ], + "airdrop_bot_interest_time": 420, + "elimination_quest_search_time": 60, + "eft_quests": { + "desirability": 50, + "max_bots_per_quest": 3, + "chance_of_having_keys": 50, + "match_looting_behavior_distance": 5, + "level_range": [ + [0, 99], + [1, 8], + [10, 15], + [20, 25], + [30, 30], + [40, 40] + ] + }, + "lightkeeper_island_quests" : { + "enabled": true + }, + "spawn_rush": { + "desirability": 100, + "max_bots_per_quest": 1, + "max_distance": 75, + "max_raid_ET": 30 + }, + "spawn_point_wander": { + "desirability": 0, + "min_distance": 75, + "max_bots_per_quest": 30 + }, + "boss_hunter": { + "desirability": 30, + "min_level": 15, + "max_raid_ET": 300, + "min_distance": 50, + "max_bots_per_quest": 2 + }, + "airdrop_chaser": { + "desirability": 70, + "max_bots_per_quest": 3, + "max_distance": 400 + } + } + }, + "bot_spawns": { + "enabled": true, + "blacklisted_pmc_bot_brains": [ "bossKilla", "bossTagilla", "exUsec", "followerGluharAssault", "followerGluharProtect", "crazyAssaultEvent", "bossKnight" ], + "spawn_retry_time": 10, + "delay_game_start_until_bot_gen_finishes": true, + "spawn_initial_bosses_first": false, + "eft_new_spawn_system_adjustments" : { + "non_wave_retry_delay_after_blocked": 180, + "scav_spawn_rate_time_window": 300 + }, + "bot_cap_adjustments": { + "use_EFT_bot_caps": true, + "only_decrease_bot_caps": true, + "map_specific_adjustments": { + "default": 0, + "factory4_day": 0, + "factory4_night": 0, + "bigmap": 0, + "woods": 0, + "shoreline": 0, + "lighthouse": 0, + "rezervbase": 0, + "interchange": 0, + "laboratory": 0, + "tarkovstreets": 0, + "sandbox": 0, + "sandbox_high": 0 + } + }, + "limit_initial_boss_spawns" : { + "enabled": true, + "disable_rogue_delay": true, + "max_initial_bosses": 14, + "max_initial_rogues": 10 + }, + "max_alive_bots": { + "default": 6, + "factory4_day": 7, + "factory4_night": 7, + "bigmap": 7, + "woods": 8, + "shoreline": 7, + "lighthouse": 7, + "rezervbase": 7, + "interchange": 8, + "laboratory": 9, + "tarkovstreets": 8, + "sandbox": 7, + "sandbox_high": 7 + }, + "pmc_hostility_adjustments": { + "enabled": true, + "pmcs_always_hostile_against_pmcs": true, + "pmcs_always_hostile_against_scavs": true, + "global_scav_enemy_chance": 100, + "pmc_enemy_roles": ["pmcBEAR", "pmcUSEC", "assault", "marksman", "assaultGroup"] + }, + "pmcs" : { + "enabled": true, + "min_raid_time_remaining": 180, + "min_distance_from_players_initial": 25, + "min_distance_from_players_during_raid": 75, + "min_distance_from_players_during_raid_factory": 50, + "fraction_of_max_players_vs_raidET": [ + [0, 0.2], + [0.2, 0.2], + [0.6, 0.5], + [0.8, 0.7], + [0.9, 0.9], + [0.95, 1], + [1, 1] + ], + "bots_per_group_distribution" : [ + [1, 40], + [2, 30], + [3, 22], + [4, 5], + [5, 3] + ], + "bot_difficulty_as_online" : [ + [0, 25], + [1, 50], + [2, 20], + [3, 5] + ] + }, + "player_scavs": { + "enabled": true, + "min_raid_time_remaining": 180, + "min_distance_from_players_initial": 25, + "min_distance_from_players_during_raid": 75, + "min_distance_from_players_during_raid_factory": 35, + "fraction_of_max_players": 1.5, + "time_randomness": 10, + "bots_per_group_distribution" : [ + [1, 75], + [2, 16], + [3, 5], + [4, 3], + [5, 1] + ], + "bot_difficulty_as_online" : [ + [0, 33], + [1, 65], + [2, 10], + [3, 2] + ] + } + }, + "adjust_pscav_chance" : { + "enabled": true, + "chance_vs_time_remaining_fraction" : [ + [0, 50], + [0.3, 50], + [0.5, 20], + [0.8, 10], + [0.9, 0], + [1, 0] + ] + } +} diff --git a/user/mods/DanW-SPTQuestingBots/config/eftQuestSettings.json b/user/mods/DanW-SPTQuestingBots/config/eftQuestSettings.json new file mode 100644 index 0000000..ee3a884 --- /dev/null +++ b/user/mods/DanW-SPTQuestingBots/config/eftQuestSettings.json @@ -0,0 +1,62 @@ +{ + "60896b7bfa70fc097863b8f5" : { + "waypoints" : [ + { + "x": -95.56027, + "y": -14.5272923, + "z": 37.5281944 + } + ] + }, + "5ede55112c95834b583f052a" : { + "waypoints" : [ + { + "x": -95.56027, + "y": -14.5272923, + "z": 37.5281944 + } + ] + }, + "60896888e4a85c72ef3fa300" : { + "waypoints" : [ + { + "x": -80.53533, + "y": -15.8884859, + "z": 144.298065 + }, + { + "x": -27.8268414, + "y": 12.5911255, + "z": 180.3212 + }, + { + "x": -73.2474442, + "y": -11.7335672, + "z": 67.4957 + } + ] + }, + "6089736efa70fc097863b8f6" : { + "requiredSwitches": { + "autoId_00000_D2_LEVER": true, + "00453": true + }, + "waypoints" : [ + { + "x": -80.53533, + "y": -15.8884859, + "z": 144.298065 + }, + { + "x": -27.8268414, + "y": 12.5911255, + "z": 180.3212 + }, + { + "x": -73.2474442, + "y": -11.7335672, + "z": 67.4957 + } + ] + } +} \ No newline at end of file diff --git a/user/mods/DanW-SPTQuestingBots/config/zoneAndItemQuestPositions.json b/user/mods/DanW-SPTQuestingBots/config/zoneAndItemQuestPositions.json new file mode 100644 index 0000000..ba0b66c --- /dev/null +++ b/user/mods/DanW-SPTQuestingBots/config/zoneAndItemQuestPositions.json @@ -0,0 +1,114 @@ +{ + "5937fd0086f7742bf33fc198" : { + "position" : { + "x": 100.578163, + "y": 1.16586256, + "z": -6.816542 + }, + "mustUnlockNearbyDoor": true, + "nearbyDoorSearchRadius": 5, + "nearbyDoorInteractionPosition": { + "x": 100.578163, + "y": 1.16586256, + "z": -6.816542 + } + }, + "619252352be33f26043400a7" : { + "position" : { + "x": 141.1595, + "y": 3.32964182, + "z": -130.344269 + } + }, + "prapor_hq_area_check_1" : { + "position" : { + "x": -83.9231, + "y": -14.4244938, + "z": 19.2263775 + } + }, + "case_extraction" : { + "position" : { + "x": 42.1924667, + "y": 4.38859224, + "z": 40.55366 + } + }, + "Check_mine_zone_factory" : { + "position" : { + "x": 24.2944946, + "y": 8.121774, + "z": 38.7408066 + } + }, + "NosQuests_8_factory_place" : { + "position" : { + "x": 36.0028954, + "y": 8.146189, + "z": 36.1306229 + } + }, + "zone_terminator" : { + "position" : { + "x": -47.66114, + "y": 1.15424979, + "z": 61.0818634 + } + }, + "5af04c0b86f774138708f78e" : { + "position" : { + "x": 232.860977, + "y": -2.24337173, + "z": -69.8026 + }, + "mustUnlockNearbyDoor": true, + "nearbyDoorSearchRadius": 2, + "nearbyDoorInteractionPosition": { + "x": 232.860977, + "y": -2.24337173, + "z": -69.8026 + } + }, + "q14_11_jeep" : { + "position" : { + "x": 220.393372, + "y": -54.48967, + "z": -160.128143 + } + }, + "place_thx_15" : { + "position" : { + "x": 22.08353, + "y": -16.2700214, + "z": 101.368423 + } + }, + "675f7b168d28a25ec7007dbb" : { + "position" : { + "x": 91.82762, + "y": 1.39088559, + "z": -59.8869667 + } + }, + "5b4c72c686f77462ac37e907" : { + "position" : { + "x": -286.9692, + "y": 2.05199337, + "z": -87.42051 + } + }, + "657acb2ac900be5902191ac9" : { + "position" : { + "x": -42.70355, + "y": 6.9014864, + "z": 457.928223 + } + }, + "67499d0eeca8acb2d2061639" : { + "position" : { + "x": 265.1496, + "y": 12.6652145, + "z": -76.99644 + } + } +} \ No newline at end of file diff --git a/user/mods/DanW-SPTQuestingBots/package.json b/user/mods/DanW-SPTQuestingBots/package.json new file mode 100644 index 0000000..1e9dfe9 --- /dev/null +++ b/user/mods/DanW-SPTQuestingBots/package.json @@ -0,0 +1,28 @@ +{ + "name": "SPTQuestingBots", + "version": "0.10.2", + "main": "src/mod.js", + "license": "MIT", + "author": "DanW", + "sptVersion": ">=3.11.2 <3.12.0", + "loadBefore": [], + "loadAfter": [], + "incompatibilities": ["Andrudis-QuestManiac"], + "isBundleMod": false, + "scripts": { + "setup": "npm i", + "build": "node ./packageBuild.ts" + }, + "devDependencies": { + "@types/node": "20.11", + "@typescript-eslint/eslint-plugin": "7.2", + "@typescript-eslint/parser": "7.2", + "archiver": "^6.0", + "eslint": "8.57", + "fs-extra": "11.2", + "ignore": "^5.2", + "tsyringe": "4.8.0", + "typescript": "5.4", + "winston": "3.12" + } +} diff --git a/user/mods/DanW-SPTQuestingBots/src/BotLocationUtil.ts b/user/mods/DanW-SPTQuestingBots/src/BotLocationUtil.ts new file mode 100644 index 0000000..7113464 --- /dev/null +++ b/user/mods/DanW-SPTQuestingBots/src/BotLocationUtil.ts @@ -0,0 +1,271 @@ +import modConfig from "../config/config.json"; + +import type { CommonUtils } from "./CommonUtils"; +import type { IDatabaseTables } from "@spt/models/spt/server/IDatabaseTables"; + +import type { ILocationConfig } from "@spt/models/spt/config/ILocationConfig"; +import type { IBotConfig } from "@spt/models/spt/config/IBotConfig"; +import type { ILocation } from "@spt/models/eft/common/ILocation"; +import type { IHostilitySettings, IPmcConfig } from "@spt/models/spt/config/IPmcConfig"; +import type { IAdditionalHostilitySettings, IBossLocationSpawn, IChancedEnemy } from "@spt/models/eft/common/ILocationBase"; + +export class BotUtil +{ + private static readonly pmcRoles = ["pmcBEAR", "pmcUSEC"]; + + constructor + ( + private commonUtils: CommonUtils, + private databaseTables: IDatabaseTables, + private iLocationConfig: ILocationConfig, + private iBotConfig: IBotConfig, + private iPmcConfig: IPmcConfig + ) + { + + } + + public adjustAllBotHostilityChances(): void + { + if (!modConfig.bot_spawns.pmc_hostility_adjustments.enabled) + { + return; + } + + this.commonUtils.logInfo("Adjusting bot hostility chances..."); + + for (const location in this.databaseTables.locations) + { + this.adjustAllBotHostilityChancesForLocation(this.databaseTables.locations[location]); + } + + this.adjustSptPmcHostilityChances(this.iPmcConfig.hostilitySettings["pmcusec"]); + this.adjustSptPmcHostilityChances(this.iPmcConfig.hostilitySettings["pmcbear"]); + + if (modConfig.bot_spawns.pmc_hostility_adjustments.pmcs_always_hostile_against_scavs) + { + this.databaseTables.bots.types.assault.difficulty.easy.Mind.ENEMY_BOT_TYPES = BotUtil.pmcRoles; + this.databaseTables.bots.types.assault.difficulty.normal.Mind.ENEMY_BOT_TYPES = BotUtil.pmcRoles; + this.databaseTables.bots.types.assault.difficulty.hard.Mind.ENEMY_BOT_TYPES = BotUtil.pmcRoles; + this.databaseTables.bots.types.assault.difficulty.impossible.Mind.ENEMY_BOT_TYPES = BotUtil.pmcRoles; + + this.databaseTables.bots.types.assaultgroup.difficulty.easy.Mind.ENEMY_BOT_TYPES = BotUtil.pmcRoles; + this.databaseTables.bots.types.assaultgroup.difficulty.normal.Mind.ENEMY_BOT_TYPES = BotUtil.pmcRoles; + this.databaseTables.bots.types.assaultgroup.difficulty.hard.Mind.ENEMY_BOT_TYPES = BotUtil.pmcRoles; + this.databaseTables.bots.types.assaultgroup.difficulty.impossible.Mind.ENEMY_BOT_TYPES = BotUtil.pmcRoles; + + this.databaseTables.bots.types.marksman.difficulty.easy.Mind.ENEMY_BOT_TYPES = BotUtil.pmcRoles; + this.databaseTables.bots.types.marksman.difficulty.normal.Mind.ENEMY_BOT_TYPES = BotUtil.pmcRoles; + this.databaseTables.bots.types.marksman.difficulty.hard.Mind.ENEMY_BOT_TYPES = BotUtil.pmcRoles; + this.databaseTables.bots.types.marksman.difficulty.impossible.Mind.ENEMY_BOT_TYPES = BotUtil.pmcRoles; + } + + this.commonUtils.logInfo("Adjusting bot hostility chances...done."); + } + + private adjustAllBotHostilityChancesForLocation(location : ILocation): void + { + if ((location.base === undefined) || (location.base.BotLocationModifier === undefined)) + { + return; + } + + const settings = location.base.BotLocationModifier.AdditionalHostilitySettings; + if (settings === undefined) + { + return; + } + + for (const botType in settings) + { + if (!BotUtil.pmcRoles.includes(settings[botType].BotRole)) + { + //this.commonUtils.logWarning(`Did not adjust ${settings[botType].BotRole} hostility settings on ${location.base.Name}`); + continue; + } + + this.adjustBotHostilityChances(settings[botType]); + } + } + + private adjustBotHostilityChances(settings: IAdditionalHostilitySettings): void + { + // This seems to be undefined for most maps + if (settings.SavageEnemyChance !== undefined) + { + settings.SavageEnemyChance = modConfig.bot_spawns.pmc_hostility_adjustments.global_scav_enemy_chance; + } + + if (modConfig.bot_spawns.pmc_hostility_adjustments.pmcs_always_hostile_against_scavs) + { + settings.SavagePlayerBehaviour = "AlwaysEnemies"; + } + + for (const chancedEnemy in settings.ChancedEnemies) + { + if (modConfig.bot_spawns.pmc_hostility_adjustments.pmc_enemy_roles.includes(settings.ChancedEnemies[chancedEnemy].Role)) + { + settings.ChancedEnemies[chancedEnemy].EnemyChance = 100; + continue; + } + + // This allows Questing Bots to set boss hostilities when the bot spawns + settings.ChancedEnemies[chancedEnemy].EnemyChance = 0; + } + + if (modConfig.bot_spawns.pmc_hostility_adjustments.pmcs_always_hostile_against_pmcs) + { + settings.BearEnemyChance = 100; + settings.UsecEnemyChance = 100; + + this.addMissingPMCRolesToChancedEnemies(settings); + } + } + + private addMissingPMCRolesToChancedEnemies(settings: IAdditionalHostilitySettings): void + { + for (const pmcRole of BotUtil.pmcRoles) + { + if (!modConfig.bot_spawns.pmc_hostility_adjustments.pmc_enemy_roles.includes(pmcRole)) + { + continue; + } + + let foundRole = false; + for (const chancedEnemy in settings.ChancedEnemies) + { + if (settings.ChancedEnemies[chancedEnemy].Role === pmcRole) + { + foundRole = true; + break; + } + } + + if (foundRole) + { + continue; + } + + const newEnemy : IChancedEnemy = + { + EnemyChance: 100, + Role: pmcRole + }; + + settings.ChancedEnemies.push(newEnemy); + } + } + + private adjustSptPmcHostilityChances(settings : IHostilitySettings): void + { + settings.savageEnemyChance = modConfig.bot_spawns.pmc_hostility_adjustments.global_scav_enemy_chance; + + if (modConfig.bot_spawns.pmc_hostility_adjustments.pmcs_always_hostile_against_scavs) + { + settings.savagePlayerBehaviour = "AlwaysEnemies"; + } + + for (const chancedEnemy in settings.chancedEnemies) + { + if (modConfig.bot_spawns.pmc_hostility_adjustments.pmc_enemy_roles.includes(settings.chancedEnemies[chancedEnemy].Role)) + { + settings.chancedEnemies[chancedEnemy].EnemyChance = 100; + continue; + } + } + + if (modConfig.bot_spawns.pmc_hostility_adjustments.pmcs_always_hostile_against_pmcs) + { + settings.bearEnemyChance = 100; + settings.usecEnemyChance = 100; + } + } + + public disablePvEBossWaves(): void + { + let removedWaves = 0; + for (const location in this.databaseTables.locations) + { + removedWaves += this.removePvEBossWavesFromLocation(this.databaseTables.locations[location]); + } + + if (removedWaves > 0) + { + this.commonUtils.logInfo(`Disabled ${removedWaves} PvE boss waves`); + } + } + + private removePvEBossWavesFromLocation(location : ILocation): number + { + let removedWaves = 0; + + if ((location.base === undefined) || (location.base.BossLocationSpawn === undefined)) + { + return removedWaves; + } + + const modifiedBossLocationSpawn : IBossLocationSpawn[] = []; + + for (const bossLocationSpawnId in location.base.BossLocationSpawn) + { + const bossLocationSpawn = location.base.BossLocationSpawn[bossLocationSpawnId]; + + if (BotUtil.pmcRoles.includes(bossLocationSpawn.BossName)) + { + removedWaves++; + continue; + } + + modifiedBossLocationSpawn.push(bossLocationSpawn); + } + + location.base.BossLocationSpawn = modifiedBossLocationSpawn; + + return removedWaves; + } + + public disableBotWaves(waves: Record, botType: string): void + { + let originalWaves = 0; + for (const location in waves) + { + originalWaves += waves[location].length; + waves[location] = []; + } + + if (originalWaves > 0) + { + this.commonUtils.logInfo(`Disabled ${originalWaves} custom ${botType} waves`); + } + } + + public useEFTBotCaps(): void + { + for (const location in this.iBotConfig.maxBotCap) + { + if ((this.databaseTables.locations[location] === undefined) || (this.databaseTables.locations[location].base === undefined)) + { + continue; + } + + const originalSPTCap = this.iBotConfig.maxBotCap[location]; + const eftCap = this.databaseTables.locations[location].base.BotMax; + const shouldChangeBotCap = (originalSPTCap > eftCap) || !modConfig.bot_spawns.bot_cap_adjustments.only_decrease_bot_caps; + + if (modConfig.bot_spawns.bot_cap_adjustments.use_EFT_bot_caps && shouldChangeBotCap) + { + this.iBotConfig.maxBotCap[location] = eftCap; + } + + const fixedAdjustment = modConfig.bot_spawns.bot_cap_adjustments.map_specific_adjustments[location]; + this.iBotConfig.maxBotCap[location] += fixedAdjustment; + + const newCap = this.iBotConfig.maxBotCap[location]; + + if (newCap !== originalSPTCap) + { + this.commonUtils.logInfo(`Updated bot cap for ${location} to ${newCap} (Original SPT: ${originalSPTCap}, EFT: ${eftCap}, fixed adjustment: ${fixedAdjustment})`); + } + } + } +} \ No newline at end of file diff --git a/user/mods/DanW-SPTQuestingBots/src/CommonUtils.ts b/user/mods/DanW-SPTQuestingBots/src/CommonUtils.ts new file mode 100644 index 0000000..773cc9b --- /dev/null +++ b/user/mods/DanW-SPTQuestingBots/src/CommonUtils.ts @@ -0,0 +1,55 @@ +import modConfig from "../config/config.json"; + +import type { ILogger } from "@spt/models/spt/utils/ILogger"; +import type { IDatabaseTables } from "@spt/models/spt/server/IDatabaseTables"; +import type { LocaleService } from "@spt/services/LocaleService"; + +export class CommonUtils +{ + private debugMessagePrefix = "[Questing Bots] "; + private translations: Record; + + constructor (private logger: ILogger, private databaseTables: IDatabaseTables, private localeService: LocaleService) + { + // Get all translations for the current locale + this.translations = this.localeService.getLocaleDb(); + } + + public logDebug(message: string, alwaysShow = false): void + { + if (modConfig.enabled || alwaysShow) + this.logger.debug(this.debugMessagePrefix + message); + } + + public logInfo(message: string, alwaysShow = false): void + { + if (modConfig.enabled || alwaysShow) + this.logger.info(this.debugMessagePrefix + message); + } + + public logWarning(message: string): void + { + this.logger.warning(this.debugMessagePrefix + message); + } + + public logError(message: string): void + { + this.logger.error(this.debugMessagePrefix + message); + } + + public getItemName(itemID: string): string + { + const translationKey = `${itemID} Name`; + if (translationKey in this.translations) + return this.translations[translationKey]; + + // If a key can't be found in the translations dictionary, fall back to the template data if possible + if (!(itemID in this.databaseTables.templates.items)) + { + return undefined; + } + + const item = this.databaseTables.templates.items[itemID]; + return item._name; + } +} \ No newline at end of file diff --git a/user/mods/DanW-SPTQuestingBots/src/PMCConversionUtil.ts b/user/mods/DanW-SPTQuestingBots/src/PMCConversionUtil.ts new file mode 100644 index 0000000..9a86cef --- /dev/null +++ b/user/mods/DanW-SPTQuestingBots/src/PMCConversionUtil.ts @@ -0,0 +1,58 @@ +import modConfig from "../config/config.json"; + +import type { CommonUtils } from "./CommonUtils"; +import type { IPmcConfig } from "@spt/models/spt/config/IPmcConfig"; +import type { IBotConfig } from "@spt/models/spt/config/IBotConfig"; + +export class PMCConversionUtil +{ + constructor(private commonUtils: CommonUtils, private iPmcConfig: IPmcConfig, private iBotConfig: IBotConfig) + { + + } + + public removeBlacklistedBrainTypes(): void + { + const badBrains = modConfig.bot_spawns.blacklisted_pmc_bot_brains; + + let removedBrains = 0; + for (const pmcType in this.iPmcConfig.pmcType) + { + for (const map in this.iPmcConfig.pmcType[pmcType]) + { + const mapBrains = this.iPmcConfig.pmcType[pmcType][map]; + + for (const i in badBrains) + { + if (mapBrains[badBrains[i]] === undefined) + { + continue; + } + + // this.commonUtils.logInfo(`Removing ${badBrains[i]} from ${pmcType} in ${map}...`); + delete mapBrains[badBrains[i]]; + removedBrains++; + } + } + } + + for (const map in this.iBotConfig.playerScavBrainType) + { + const mapBrains = this.iBotConfig.playerScavBrainType[map]; + + for (const i in badBrains) + { + if (mapBrains[badBrains[i]] === undefined) + { + continue; + } + + // this.commonUtils.logInfo(`Removing ${badBrains[i]} from playerscavs in ${map}...`); + delete mapBrains[badBrains[i]]; + removedBrains++; + } + } + + this.commonUtils.logInfo(`Removed ${removedBrains} blacklisted brain types from being used for PMC's and Player Scav's`); + } +} \ No newline at end of file diff --git a/user/mods/DanW-SPTQuestingBots/src/mod.ts b/user/mods/DanW-SPTQuestingBots/src/mod.ts new file mode 100644 index 0000000..248921c --- /dev/null +++ b/user/mods/DanW-SPTQuestingBots/src/mod.ts @@ -0,0 +1,459 @@ +import modConfig from "../config/config.json"; +import eftQuestSettings from "../config/eftQuestSettings.json"; +import eftZoneAndItemPositions from "../config/zoneAndItemQuestPositions.json"; +import { CommonUtils } from "./CommonUtils"; +import { BotUtil } from "./BotLocationUtil"; +import { PMCConversionUtil } from "./PMCConversionUtil"; + +import type { DependencyContainer } from "tsyringe"; +import type { IPreSptLoadMod } from "@spt/models/external/IPreSptLoadMod"; +import type { IPostDBLoadMod } from "@spt/models/external/IPostDBLoadMod"; +import type { IPostSptLoadMod } from "@spt/models/external/IPostSptLoadMod"; +import type { StaticRouterModService } from "@spt/services/mod/staticRouter/StaticRouterModService"; +import type { DynamicRouterModService } from "@spt/services/mod/dynamicRouter/DynamicRouterModService"; +import type { PreSptModLoader } from "@spt/loaders/PreSptModLoader"; + +import type { ConfigServer } from "@spt/servers/ConfigServer"; +import type { ILogger } from "@spt/models/spt/utils/ILogger"; +import type { DatabaseServer } from "@spt/servers/DatabaseServer"; +import type { IDatabaseTables } from "@spt/models/spt/server/IDatabaseTables"; +import type { LocaleService } from "@spt/services/LocaleService"; +import type { QuestHelper } from "@spt/helpers/QuestHelper"; +import type { FileSystemSync } from "@spt/utils/FileSystemSync"; +import type { HttpResponseUtil } from "@spt/utils/HttpResponseUtil"; +import type { RandomUtil } from "@spt/utils/RandomUtil"; +import type { WeightedRandomHelper } from "@spt/helpers/WeightedRandomHelper"; +import type { BotController } from "@spt/controllers/BotController"; +import type { BotNameService } from "@spt/services/BotNameService"; +import type { BotCallbacks } from "@spt/callbacks/BotCallbacks"; +import type { IGenerateBotsRequestData, ICondition } from "@spt/models/eft/bot/IGenerateBotsRequestData"; +import type { IBotBase, IInfo } from "@spt/models/eft/common/tables/IBotBase"; + +import { ConfigTypes } from "@spt/models/enums/ConfigTypes"; +import { GameEditions } from "@spt/models/enums/GameEditions"; +import { MemberCategory } from "@spt/models/enums/MemberCategory"; +import type { IBotConfig } from "@spt/models/spt/config/IBotConfig"; +import type { IPmcConfig } from "@spt/models/spt/config/IPmcConfig"; +import type { ILocationConfig } from "@spt/models/spt/config/ILocationConfig"; + +const modName = "SPTQuestingBots"; +const spawningModNames = ["SWAG", "DewardianDev-MOAR", "PreyToLive-BetterSpawnsPlus", "RealPlayerSpawn", "acidphantasm-botplacementsystem"]; + +class QuestingBots implements IPreSptLoadMod, IPostSptLoadMod, IPostDBLoadMod +{ + private commonUtils: CommonUtils + private botUtil: BotUtil + private pmcConversionUtil : PMCConversionUtil + + private logger: ILogger; + private configServer: ConfigServer; + private databaseServer: DatabaseServer; + private databaseTables: IDatabaseTables; + private localeService: LocaleService; + private questHelper: QuestHelper; + private fileSystem: FileSystemSync; + private httpResponseUtil: HttpResponseUtil; + private randomUtil: RandomUtil; + private weightedRandomHelper: WeightedRandomHelper; + private botController: BotController; + private botNameService: BotNameService; + private iBotConfig: IBotConfig; + private iPmcConfig: IPmcConfig; + private iLocationConfig: ILocationConfig; + + private basePScavConversionChance: number; + + public preSptLoad(container: DependencyContainer): void + { + this.logger = container.resolve("WinstonLogger"); + const staticRouterModService = container.resolve("StaticRouterModService"); + const dynamicRouterModService = container.resolve("DynamicRouterModService"); + + // Get config.json settings for the bepinex plugin + staticRouterModService.registerStaticRouter(`StaticGetConfig${modName}`, + [{ + url: "/QuestingBots/GetConfig", + action: async () => + { + return JSON.stringify(modConfig); + } + }], "GetConfig" + ); + + if (!modConfig.enabled) + { + return; + } + + // Apply a scalar factor to the SPT-AKI PScav conversion chance + dynamicRouterModService.registerDynamicRouter(`DynamicAdjustPScavChance${modName}`, + [{ + url: "/QuestingBots/AdjustPScavChance/", + action: async (url: string) => + { + const urlParts = url.split("/"); + const factor: number = Number(urlParts[urlParts.length - 1]); + + this.iBotConfig.chanceAssaultScavHasPlayerScavName = Math.round(this.basePScavConversionChance * factor); + this.commonUtils.logInfo(`Adjusted PScav spawn chance to ${this.iBotConfig.chanceAssaultScavHasPlayerScavName}%`); + + return JSON.stringify({ resp: "OK" }); + } + }], "AdjustPScavChance" + ); + + // Get all EFT quest templates + // NOTE: This includes custom quests added by mods + staticRouterModService.registerStaticRouter(`GetAllQuestTemplates${modName}`, + [{ + url: "/QuestingBots/GetAllQuestTemplates", + action: async () => + { + return JSON.stringify({ templates: this.questHelper.getQuestsFromDb() }); + } + }], "GetAllQuestTemplates" + ); + + // Get override settings for EFT quests + staticRouterModService.registerStaticRouter(`GetEFTQuestSettings${modName}`, + [{ + url: "/QuestingBots/GetEFTQuestSettings", + action: async () => + { + return JSON.stringify({ settings: eftQuestSettings }); + } + }], "GetEFTQuestSettings" + ); + + // Get override settings for quest zones and items + staticRouterModService.registerStaticRouter(`GetZoneAndItemQuestPositions${modName}`, + [{ + url: "/QuestingBots/GetZoneAndItemQuestPositions", + action: async () => + { + return JSON.stringify({ zoneAndItemPositions: eftZoneAndItemPositions }); + } + }], "GetZoneAndItemQuestPositions" + ); + + // Get Scav-raid settings to determine PScav conversion chances + staticRouterModService.registerStaticRouter(`GetScavRaidSettings${modName}`, + [{ + url: "/QuestingBots/GetScavRaidSettings", + action: async () => + { + return JSON.stringify({ maps: this.iLocationConfig.scavRaidTimeSettings.maps }); + } + }], "GetScavRaidSettings" + ); + + // Get the chance that a PMC will be a USEC + staticRouterModService.registerStaticRouter(`GetUSECChance${modName}`, + [{ + url: "/QuestingBots/GetUSECChance", + action: async () => + { + return JSON.stringify({ usecChance: this.iPmcConfig.isUsec }); + } + }], "GetUSECChance" + ); + + // Intercept the EFT bot-generation request to include a PScav conversion chance + container.afterResolution("BotCallbacks", (_t, result: BotCallbacks) => + { + result.generateBots = async (url: string, info: IGenerateBotsRequestDataWithPScavForced, sessionID: string) => + { + const bots = await this.generateBots({ conditions: info.conditions }, sessionID, info.GeneratePScav); + return this.httpResponseUtil.getBody(bots); + } + }, {frequency: "Always"}); + } + + public postDBLoad(container: DependencyContainer): void + { + this.configServer = container.resolve("ConfigServer"); + this.databaseServer = container.resolve("DatabaseServer"); + this.localeService = container.resolve("LocaleService"); + this.questHelper = container.resolve("QuestHelper"); + this.fileSystem = container.resolve("FileSystemSync"); + this.httpResponseUtil = container.resolve("HttpResponseUtil"); + this.randomUtil = container.resolve("RandomUtil"); + this.weightedRandomHelper = container.resolve("WeightedRandomHelper"); + this.botController = container.resolve("BotController"); + this.botNameService = container.resolve("BotNameService"); + + this.iBotConfig = this.configServer.getConfig(ConfigTypes.BOT); + this.iPmcConfig = this.configServer.getConfig(ConfigTypes.PMC); + this.iLocationConfig = this.configServer.getConfig(ConfigTypes.LOCATION); + + this.databaseTables = this.databaseServer.getTables(); + this.commonUtils = new CommonUtils(this.logger, this.databaseTables, this.localeService); + this.botUtil = new BotUtil(this.commonUtils, this.databaseTables, this.iLocationConfig, this.iBotConfig, this.iPmcConfig); + this.pmcConversionUtil = new PMCConversionUtil(this.commonUtils, this.iPmcConfig, this.iBotConfig); + + if (!modConfig.enabled) + { + return; + } + + if (!this.doesFileIntegrityCheckPass()) + { + modConfig.enabled = false; + return; + } + + if (!this.areArraysValid()) + { + modConfig.enabled = false; + return; + } + } + + public postSptLoad(container: DependencyContainer): void + { + if (!modConfig.enabled) + { + this.commonUtils.logInfo("Mod disabled in config.json", true); + return; + } + + const presptModLoader = container.resolve("PreSptModLoader"); + + this.pmcConversionUtil.removeBlacklistedBrainTypes(); + + // Disable the Questing Bots spawning system if another spawning mod has been loaded + if (this.shouldDisableSpawningSystem(presptModLoader.getImportedModsNames())) + { + modConfig.bot_spawns.enabled = false; + } + + // Make Questing Bots control PScav spawning + this.basePScavConversionChance = this.iBotConfig.chanceAssaultScavHasPlayerScavName; + if (modConfig.adjust_pscav_chance.enabled || (modConfig.bot_spawns.enabled && modConfig.bot_spawns.player_scavs.enabled)) + { + this.iBotConfig.chanceAssaultScavHasPlayerScavName = 0; + } + + this.configureSpawningSystem(); + } + + private configureSpawningSystem(): void + { + if (!modConfig.bot_spawns.enabled) + { + return; + } + + this.commonUtils.logInfo("Configuring game for bot spawning..."); + + // Overwrite BSG's chances of bots being friendly toward each other + this.botUtil.adjustAllBotHostilityChances(); + + // Remove all of BSG's PvE-only boss waves + this.botUtil.disablePvEBossWaves(); + + // Currently these are all PMC waves, which are unnecessary with PMC spawns in this mod + this.botUtil.disableBotWaves(this.iLocationConfig.customWaves.boss, "boss") + + // Disable all of the extra Scavs that spawn into Factory + this.botUtil.disableBotWaves(this.iLocationConfig.customWaves.normal, "Scav"); + + // Disable SPT's PMC wave generator + this.botUtil.disableBotWaves(this.iPmcConfig.customPmcWaves, "PMC"); + + // Use EFT's bot caps instead of SPT's + this.botUtil.useEFTBotCaps(); + + // If Rogues don't spawn immediately, PMC spawns will be significantly delayed + if (modConfig.bot_spawns.limit_initial_boss_spawns.disable_rogue_delay && (this.iLocationConfig.rogueLighthouseSpawnTimeSettings.waitTimeSeconds > -1)) + { + this.iLocationConfig.rogueLighthouseSpawnTimeSettings.waitTimeSeconds = -1; + this.commonUtils.logInfo("Removed SPT Rogue spawn delay"); + } + + this.commonUtils.logInfo("Configuring game for bot spawning...done."); + } + + private async generateBots(info: IGenerateBotsRequestData, sessionID: string, shouldBePScavGroup: boolean) : Promise + { + const bots = await this.botController.generate(sessionID, info); + + if (!shouldBePScavGroup) + { + return bots; + } + + for (const bot in bots) + { + if (bots[bot].Info.Settings.Role !== "assault") + { + this.commonUtils.logDebug(`Tried generating a player Scav, but a bot with role ${bots[bot].Info.Settings.Role} was returned`); + continue; + } + + this.botNameService.addRandomPmcNameToBotMainProfileNicknameProperty(bots[bot]); + this.setRandomisedGameVersionAndCategory(bots[bot].Info); + } + + return bots; + } + + private setRandomisedGameVersionAndCategory(botInfo : IInfo) : string + { + /* SPT CODE - BotGenerator.setRandomisedGameVersionAndCategory(bot.Info) */ + + // Special case + if (botInfo.Nickname?.toLowerCase() === "nikita") + { + botInfo.GameVersion = GameEditions.UNHEARD; + botInfo.MemberCategory = MemberCategory.DEVELOPER; + + return botInfo.GameVersion; + } + + // Choose random weighted game version for bot + botInfo.GameVersion = this.weightedRandomHelper.getWeightedValue(this.iPmcConfig.gameVersionWeight); + + // Choose appropriate member category value + switch (botInfo.GameVersion) + { + case GameEditions.EDGE_OF_DARKNESS: + botInfo.MemberCategory = MemberCategory.UNIQUE_ID; + break; + case GameEditions.UNHEARD: + botInfo.MemberCategory = MemberCategory.UNHEARD; + break; + default: + // Everyone else gets a weighted randomised category + botInfo.MemberCategory = Number.parseInt( + this.weightedRandomHelper.getWeightedValue(this.iPmcConfig.accountTypeWeight), + 10 + ); + } + + // Ensure selected category matches + botInfo.SelectedMemberCategory = botInfo.MemberCategory; + + return botInfo.GameVersion; + } + + private doesFileIntegrityCheckPass(): boolean + { + const path = `${__dirname}/..`; + + if (this.fileSystem.exists(`${path}/quests/`)) + { + this.commonUtils.logWarning("Found obsolete quests folder 'user\\mods\\DanW-SPTQuestingBots\\quests'. Only quest files in 'BepInEx\\plugins\\DanW-SPTQuestingBots\\quests' will be used."); + } + + if (this.fileSystem.exists(`${path}/log/`)) + { + this.commonUtils.logWarning("Found obsolete log folder 'user\\mods\\DanW-SPTQuestingBots\\log'. Logs are now saved in 'BepInEx\\plugins\\DanW-SPTQuestingBots\\log'."); + } + + if (this.fileSystem.exists(`${path}/../../../BepInEx/plugins/SPTQuestingBots.dll`)) + { + this.commonUtils.logError("Please remove BepInEx/plugins/SPTQuestingBots.dll from the previous version of this mod and restart the server, or it will NOT work correctly."); + + return false; + } + + return true; + } + + private areArraysValid(): boolean + { + if (!this.isChanceArrayValid(modConfig.questing.bot_quests.eft_quests.level_range, true)) + { + this.commonUtils.logError("questing.bot_quests.eft_quests.level_range has invalid data. Mod disabled.") + return false; + } + + if (!this.isChanceArrayValid(modConfig.bot_spawns.pmcs.fraction_of_max_players_vs_raidET, false)) + { + this.commonUtils.logError("bot_spawns.pmcs.fraction_of_max_players_vs_raidET has invalid data. Mod disabled.") + return false; + } + + if (!this.isChanceArrayValid(modConfig.bot_spawns.pmcs.bots_per_group_distribution, true)) + { + this.commonUtils.logError("bot_spawns.pmcs.bots_per_group_distribution has invalid data. Mod disabled.") + return false; + } + if (!this.isChanceArrayValid(modConfig.bot_spawns.pmcs.bot_difficulty_as_online, true)) + { + this.commonUtils.logError("bot_spawns.pmcs.bot_difficulty_as_online has invalid data. Mod disabled.") + return false; + } + if (!this.isChanceArrayValid(modConfig.bot_spawns.player_scavs.bots_per_group_distribution, true)) + { + this.commonUtils.logError("bot_spawns.player_scavs.bots_per_group_distribution has invalid data. Mod disabled.") + return false; + } + if (!this.isChanceArrayValid(modConfig.bot_spawns.player_scavs.bot_difficulty_as_online, true)) + { + this.commonUtils.logError("bot_spawns.player_scavs.bot_difficulty_as_online has invalid data. Mod disabled.") + return false; + } + + if (!this.isChanceArrayValid(modConfig.adjust_pscav_chance.chance_vs_time_remaining_fraction, false)) + { + this.commonUtils.logError("adjust_pscav_chance.chance_vs_time_remaining_fraction has invalid data. Mod disabled.") + return false; + } + + return true; + } + + private isChanceArrayValid(array: number[][], shouldLeftColumnBeIntegers: boolean): boolean + { + if (array.length === 0) + { + return false; + } + + for (const row of array) + { + if (row.length !== 2) + { + return false; + } + + if (shouldLeftColumnBeIntegers && !Number.isInteger(row[0])) + { + this.commonUtils.logError("Found a chance array with an invalid value in its left column. Please ensure you are not using an outdated version of config.json."); + + return false; + } + } + + return true; + } + + private shouldDisableSpawningSystem(importedModNames: string[]): boolean + { + if (!modConfig.bot_spawns.enabled) + { + return false; + } + + for (const spawningModName of spawningModNames) + { + if (importedModNames.includes(spawningModName)) + { + this.commonUtils.logWarning(`${spawningModName} detected. Disabling the Questing Bots spawning system.`); + return true; + } + } + + return false; + } +} + +export interface IGenerateBotsRequestDataWithPScavForced +{ + conditions: ICondition[]; + GeneratePScav: boolean; +} + +module.exports = { mod: new QuestingBots() }