diff --git a/project/.swcrc b/project/.swcrc
index 7bed62cc..5a8f797e 100644
--- a/project/.swcrc
+++ b/project/.swcrc
@@ -15,14 +15,10 @@
"keepClassNames": true,
"baseUrl": "./",
"paths": {
- "@spt/*": [
- "src/*"
- ]
+ "@spt/*": ["src/*"]
}
},
- "exclude": [
- "node_modules/"
- ],
+ "exclude": ["node_modules/"],
"module": {
"type": "commonjs",
"strict": false,
diff --git a/project/assets/configs/airdrop.json b/project/assets/configs/airdrop.json
index 560cc432..71aefac1 100644
--- a/project/assets/configs/airdrop.json
+++ b/project/assets/configs/airdrop.json
@@ -104,12 +104,7 @@
"max": 50
}
},
- "armorLevelWhitelist": [
- 0,
- 4,
- 5,
- 6
- ],
+ "armorLevelWhitelist": [0, 4, 5, 6],
"allowBossItems": false
},
"weaponArmor": {
@@ -181,13 +176,7 @@
"max": 50
}
},
- "armorLevelWhitelist": [
- 0,
- 3,
- 4,
- 5,
- 6
- ],
+ "armorLevelWhitelist": [0, 3, 4, 5, 6],
"allowBossItems": false
},
"foodMedical": {
@@ -267,9 +256,7 @@
"max": 50
}
},
- "armorLevelWhitelist": [
- 0
- ],
+ "armorLevelWhitelist": [0],
"allowBossItems": false
},
"barter": {
@@ -350,10 +337,8 @@
"max": 50
}
},
- "armorLevelWhitelist": [
- 0
- ],
+ "armorLevelWhitelist": [0],
"allowBossItems": false
}
}
-}
\ No newline at end of file
+}
diff --git a/project/assets/configs/bot.json b/project/assets/configs/bot.json
index 239a2d2d..17cf3ddd 100644
--- a/project/assets/configs/bot.json
+++ b/project/assets/configs/bot.json
@@ -47,8 +47,8 @@
"sectactPriestEvent": 10,
"pmcUSEC": 15,
"pmcBEAR": 15,
- "peacemaker": 10,
- "skier": 10
+ "peacemaker": 10,
+ "skier": 10
},
"bosses": [
"bossBully",
@@ -277,12 +277,9 @@
},
"chanceAssaultScavHasPlayerScavName": 10,
"secureContainerAmmoStackCount": 20,
- "botRolesWithDogTags": [
- "pmcbear",
- "pmcusec"
- ],
+ "botRolesWithDogTags": ["pmcbear", "pmcusec"],
"revenge": {
- "pmcBot": ["pmcBot","gifter"],
+ "pmcBot": ["pmcBot", "gifter"],
"arenaFighter": ["pmcBot", "gifter"],
"arenaFighterEvent": ["pmcBot", "gifter"],
"bossKnight": ["exUsec", "gifter", "bossKnight", "followerBigPipe", "followerBirdEye"],
@@ -430,8 +427,8 @@
"544fb37f4bdc2dee738b4567": 2
},
"shooterbtr": {},
- "skier": {},
- "peacemaker": {}
+ "skier": {},
+ "peacemaker": {}
},
"equipment": {
"assault": {
@@ -495,9 +492,7 @@
"lightIsActiveNightChancePercent": 90,
"laserIsActiveChancePercent": 85,
"forceStock": true,
- "weaponSlotIdsToMakeRequired": [
- "mod_reciever"
- ]
+ "weaponSlotIdsToMakeRequired": ["mod_reciever"]
},
"bossbully": {
"nvgIsActiveChanceDayPercent": 10,
@@ -776,11 +771,9 @@
"scopeLimit": 1,
"lightLaserLimit": 1
},
- "weaponSlotIdsToMakeRequired": [
- "mod_reciever"
- ]
+ "weaponSlotIdsToMakeRequired": ["mod_reciever"]
},
- "peacemaker": {
+ "peacemaker": {
"nvgIsActiveChanceDayPercent": 10,
"nvgIsActiveChanceNightPercent": 95,
"faceShieldIsActiveChancePercent": 100,
@@ -793,7 +786,7 @@
"lightLaserLimit": 1
}
},
- "skier": {
+ "skier": {
"nvgIsActiveChanceDayPercent": 10,
"nvgIsActiveChanceNightPercent": 95,
"faceShieldIsActiveChancePercent": 100,
@@ -926,11 +919,7 @@
"laserIsActiveChancePercent": 85,
"forceOnlyArmoredRigWhenNoArmor": true,
"filterPlatesByLevel": true,
- "weaponSlotIdsToMakeRequired": [
- "mod_reciever",
- "mod_stock",
- "mod_muzzle"
- ],
+ "weaponSlotIdsToMakeRequired": ["mod_reciever", "mod_stock", "mod_muzzle"],
"randomisation": [
{
"levelRange": {
@@ -1148,11 +1137,7 @@
"Scabbard": 100,
"TacticalVest": 90
},
- "randomisedArmorSlots": [
- "Headwear",
- "ArmorVest",
- "TacticalVest"
- ],
+ "randomisedArmorSlots": ["Headwear", "ArmorVest", "TacticalVest"],
"randomisedWeaponModSlots": [
"mod_scope",
"mod_scope_000",
@@ -1250,11 +1235,7 @@
"SecondPrimaryWeapon": 10,
"FaceCover": 50
},
- "randomisedArmorSlots": [
- "Headwear",
- "TacticalVest",
- "ArmorVest"
- ],
+ "randomisedArmorSlots": ["Headwear", "TacticalVest", "ArmorVest"],
"randomisedWeaponModSlots": [
"mod_scope",
"mod_scope_000",
@@ -1321,11 +1302,7 @@
"mod_muzzle_000": 95,
"mod_muzzle_001": 95
},
- "randomisedArmorSlots": [
- "Headwear",
- "TacticalVest",
- "ArmorVest"
- ],
+ "randomisedArmorSlots": ["Headwear", "TacticalVest", "ArmorVest"],
"randomisedWeaponModSlots": [
"mod_scope",
"mod_scope_000",
@@ -1397,30 +1374,15 @@
"65392f611406374f82152ba5",
"653931da5db71d30ab1d6296"
],
- "mod_nvg": [
- "5c11046cd174af02a012e42b"
- ],
- "mod_reciever": [
- "5d4405aaa4b9361e6a4e6bd3"
- ],
- "mod_stock": [
- "5cde739cd7f00c0010373bd3"
- ],
- "mod_rear_sight": [
- "5a0ed824fcdbcb0176308b0d"
- ],
- "mod_front_sight": [
- "5a0f096dfcdbcb0176308b15"
- ]
+ "mod_nvg": ["5c11046cd174af02a012e42b"],
+ "mod_reciever": ["5d4405aaa4b9361e6a4e6bd3"],
+ "mod_stock": ["5cde739cd7f00c0010373bd3"],
+ "mod_rear_sight": ["5a0ed824fcdbcb0176308b0d"],
+ "mod_front_sight": ["5a0f096dfcdbcb0176308b15"]
},
"cartridge": {
- "Caliber23x75": [
- "5e85a9f4add9fe03027d9bf1"
- ],
- "Caliber127x55": [
- "5cadf6e5ae921500113bb973",
- "5cadf6ddae9215051e1c23b2"
- ]
+ "Caliber23x75": ["5e85a9f4add9fe03027d9bf1"],
+ "Caliber127x55": ["5cadf6e5ae921500113bb973", "5cadf6ddae9215051e1c23b2"]
}
}
],
@@ -2677,10 +2639,7 @@
"569668774bdc2da2298b4568": 0,
"5696686a4bdc2da3298b456a": 0
},
- "walletTplPool": [
- "5783c43d2459774bbe137486",
- "60b0f6c058e0b0481a09ad11"
- ]
+ "walletTplPool": ["5783c43d2459774bbe137486", "60b0f6c058e0b0481a09ad11"]
},
"currencyStackSize": {
"default": {
@@ -2705,7 +2664,7 @@
"1": 8,
"2": 4,
"5": 4,
- "10": 1
+ "10": 1
}
},
"assault": {
@@ -2735,7 +2694,14 @@
}
}
},
- "lowProfileGasBlockTpls": ["61702f1b67085e45ef140b26", "5dfa3d45dfc58d14537c20b0", "5bb20dcad4351e3bac1212da", "56eabcd4d2720b66698b4574", "6065dc8a132d4d12c81fd8e3", "55d4af3a4bdc2d972f8b456f"],
+ "lowProfileGasBlockTpls": [
+ "61702f1b67085e45ef140b26",
+ "5dfa3d45dfc58d14537c20b0",
+ "5bb20dcad4351e3bac1212da",
+ "56eabcd4d2720b66698b4574",
+ "6065dc8a132d4d12c81fd8e3",
+ "55d4af3a4bdc2d972f8b456f"
+ ],
"disableLootOnBotTypes": [],
"assaultToBossConversion": {
"bossConvertEnabled": false,
@@ -2758,4 +2724,4 @@
}
}
}
-}
\ No newline at end of file
+}
diff --git a/project/assets/configs/core.json b/project/assets/configs/core.json
index e3d7776f..46d4d48e 100644
--- a/project/assets/configs/core.json
+++ b/project/assets/configs/core.json
@@ -27,11 +27,11 @@
"commandoFeatures": {
"giveCommandEnabled": true
},
- "commandUseLimits": {
- "StashRows": 15
- }
+ "commandUseLimits": {
+ "StashRows": 15
+ }
},
- "createNewProfileTypesBlacklist": []
+ "createNewProfileTypesBlacklist": []
},
- "customWatermarkLocaleKeys": []
+ "customWatermarkLocaleKeys": []
}
diff --git a/project/assets/configs/gifts.json b/project/assets/configs/gifts.json
index 5cc13d92..681a737b 100644
--- a/project/assets/configs/gifts.json
+++ b/project/assets/configs/gifts.json
@@ -220,7 +220,7 @@
"slotId": "Helmet_back"
}
],
- "maxToSendPlayer": 1
+ "maxToSendPlayer": 1
},
"NewYear2021": {
"sender": "System",
@@ -449,7 +449,7 @@
"slotId": "mod_charge"
}
],
- "maxToSendPlayer": 1
+ "maxToSendPlayer": 1
},
"Christmas2022": {
"items": [
@@ -504,7 +504,7 @@
"timestampToSend": 42069,
"associatedEvent": "Christmas",
"collectionTimeHours": 48,
- "maxToSendPlayer": 1
+ "maxToSendPlayer": 1
},
"1CLICKDRESSUP": {
"items": [
@@ -669,7 +669,7 @@
"timestampToSend": 42069,
"collectionTimeHours": 48,
"associatedEvent": "Promo",
- "maxToSendPlayer": 1
+ "maxToSendPlayer": 1
},
"BARMALEY": {
"items": [
@@ -831,7 +831,7 @@
"timestampToSend": 42069,
"collectionTimeHours": 48,
"associatedEvent": "Promo",
- "maxToSendPlayer": 1
+ "maxToSendPlayer": 1
},
"S00NS00N": {
"items": [
@@ -913,7 +913,7 @@
"timestampToSend": 42069,
"collectionTimeHours": 48,
"associatedEvent": "Promo",
- "maxToSendPlayer": 1
+ "maxToSendPlayer": 1
},
"TRAMBON": {
"items": [
@@ -1091,7 +1091,7 @@
"timestampToSend": 42069,
"collectionTimeHours": 48,
"associatedEvent": "Promo",
- "maxToSendPlayer": 1
+ "maxToSendPlayer": 1
},
"PINEWOOD": {
"items": [
@@ -1181,7 +1181,7 @@
"timestampToSend": 42069,
"collectionTimeHours": 48,
"associatedEvent": "Promo",
- "maxToSendPlayer": 1
+ "maxToSendPlayer": 1
},
"HESOYAM": {
"items": [
@@ -1199,7 +1199,7 @@
"messageText": "HESOYAM",
"collectionTimeHours": 48,
"associatedEvent": "Promo",
- "maxToSendPlayer": 1
+ "maxToSendPlayer": 1
},
"PraporGiftDay1": {
"items": [
@@ -1235,7 +1235,7 @@
"trader": "PRAPOR",
"localeTextId": "5fd4c8b59e4b2a58b34bbd28 0",
"collectionTimeHours": 48,
- "maxToSendPlayer": 5
+ "maxToSendPlayer": 5
},
"PraporGiftDay2": {
"items": [
@@ -1248,7 +1248,7 @@
},
"parentId": "64b996c9d0de4697180359b6"
},
- {
+ {
"_id": "a89275c1b18874ed7452a6d7",
"_tpl": "5751a25924597722c463c472",
"slotId": "main",
@@ -1298,7 +1298,7 @@
"trader": "PRAPOR",
"localeTextId": "5fd4c8d49e4b2a58b34bbd29 0",
"collectionTimeHours": 48,
- "maxToSendPlayer": 5
+ "maxToSendPlayer": 5
},
"KAPPA4U": {
"items": [
@@ -1316,7 +1316,7 @@
"messageText": "Easy Kappa",
"collectionTimeHours": 48,
"associatedEvent": "Promo",
- "maxToSendPlayer": 1
+ "maxToSendPlayer": 1
},
"ENDOFWIPE": {
"items": [
@@ -1343,7 +1343,7 @@
"localeTextId": "626e5d63bc92c87fd22a943f 0",
"collectionTimeHours": 48,
"associatedEvent": "Promo",
- "maxToSendPlayer": 1
+ "maxToSendPlayer": 1
},
"IAMADIRTYLITTLEGOBLIN": {
"items": [
@@ -1361,7 +1361,7 @@
"messageText": "You dirty little cheating goblin",
"collectionTimeHours": 48,
"associatedEvent": "Promo",
- "maxToSendPlayer": 5
+ "maxToSendPlayer": 5
},
"CHOMP": {
"items": [
@@ -1379,7 +1379,7 @@
"messageText": "caw caw",
"collectionTimeHours": 48,
"associatedEvent": "Promo",
- "maxToSendPlayer": 1
+ "maxToSendPlayer": 1
},
"CWX": {
"items": [
@@ -1397,7 +1397,7 @@
"messageText": "un oh stinky",
"collectionTimeHours": 48,
"associatedEvent": "Promo",
- "maxToSendPlayer": 1
+ "maxToSendPlayer": 1
},
"VALENS": {
"items": [
@@ -1538,7 +1538,7 @@
"messageText": "It's time to pew pew.",
"collectionTimeHours": 48,
"associatedEvent": "Promo",
- "maxToSendPlayer": 1
+ "maxToSendPlayer": 1
},
"TERKOIZ": {
"items": [
@@ -1556,7 +1556,7 @@
"messageText": "Out of the way, i'm a motorist",
"collectionTimeHours": 48,
"associatedEvent": "Promo",
- "maxToSendPlayer": 1
+ "maxToSendPlayer": 1
},
"WAFFLE": {
"items": [
@@ -1583,7 +1583,7 @@
"messageText": "JONKLER NO",
"collectionTimeHours": 48,
"associatedEvent": "Promo",
- "maxToSendPlayer": 1
+ "maxToSendPlayer": 1
},
"NIGHTWING": {
"items": [
@@ -1610,8 +1610,8 @@
"messageText": "JONKLER NO",
"collectionTimeHours": 48,
"associatedEvent": "Promo",
- "maxToSendToPlayer": 1,
- "maxToSendPlayer": 1
+ "maxToSendToPlayer": 1,
+ "maxToSendPlayer": 1
},
"BSGBIRTHDAY2023": {
"sender": "System",
@@ -1758,7 +1758,7 @@
"slotId": "main"
}
],
- "maxToSendPlayer": 1
+ "maxToSendPlayer": 1
},
"GROUNDZERO": {
"items": [
@@ -1772,7 +1772,7 @@
"messageText": "GROUNDZERO",
"collectionTimeHours": 48,
"associatedEvent": "Promo",
- "maxToSendPlayer": 1
+ "maxToSendPlayer": 1
},
"IAMMIGHTY": {
"items": [
@@ -2013,7 +2013,7 @@
"messageText": "IAMMIGHTY",
"collectionTimeHours": 48,
"associatedEvent": "Promo",
- "maxToSendPlayer": 1
+ "maxToSendPlayer": 1
},
"ARMORPLATES": {
"items": [
@@ -2148,7 +2148,7 @@
"messageText": "ARMORPLATES",
"collectionTimeHours": 48,
"associatedEvent": "Promo",
- "maxToSendPlayer": 1
+ "maxToSendPlayer": 1
},
"RICHANDEXPENSIVE": {
"items": [
@@ -2217,7 +2217,7 @@
"messageText": "RICHANDEXPENSIVE",
"collectionTimeHours": 48,
"associatedEvent": "Promo",
- "maxToSendPlayer": 1
+ "maxToSendPlayer": 1
},
"LEFTHANDHEADEYES": {
"items": [
@@ -2244,7 +2244,7 @@
"messageText": "LEFTHANDHEADEYES",
"collectionTimeHours": 48,
"associatedEvent": "Promo",
- "maxToSendPlayer": 1
+ "maxToSendPlayer": 1
},
"EDITPROFILE": {
"items": [
@@ -2667,7 +2667,7 @@
"localeTextId": "5a2d28f786f77436023be4a5 0",
"collectionTimeHours": 72,
"associatedEvent": "Promo",
- "maxToSendPlayer": 50
+ "maxToSendPlayer": 50
},
"TWITCHNEWYEARS2023": {
"items": [
@@ -3082,7 +3082,7 @@
"localeTextId": "5e0653ba86f774478f700632 3",
"collectionTimeHours": 72,
"associatedEvent": "Promo",
- "maxToSendPlayer": 1
+ "maxToSendPlayer": 1
},
"LUNARNEWYEAR2024": {
"items": [
@@ -3276,7 +3276,7 @@
"associatedEvent": "Promo",
"collectionTimeHours": 72,
"messageText": "Thank you for activating the code.Thank you for activating the code.Thank you for activating the code.Thank you for activating the code.Thank you for activating the code.Thank you for activating the code.Thank you for activating the code.Thank you for activating the code.Thank you for activating the code.Thank you for activating the code.Thank you for activating the code.Thank you for activating the code.Thank you for activating the code.Thank you for activating the code.Thank you for activating the code.Thank you for activating the code.Thank you for activating the code.",
- "maxToSendPlayer": 1
+ "maxToSendPlayer": 1
},
"ETSREWARD": {
"items": [
@@ -3524,7 +3524,7 @@
"associatedEvent": "Promo",
"collectionTimeHours": 72,
"messageText": "Greetings, warrior. I've heard you've been helping out our local hard workers with their stuff, testing everything out, so to speak. That's a good deed, soldier, great job. The higher-ups sent you a little present as a token of gratitude. Keep it up!Greetings, warrior. I've heard you've been helping out our local hard workers with their stuff, testing everything out, so to speak. That's a good deed, soldier, great job. The higher-ups sent you a little present as a token of gratitude. Keep it up!Greetings, warrior. I've heard you've been helping out our local hard workers with their stuff, testing everything out, so to speak. That's a good deed, soldier, great job. The higher-ups sent you a little present as a token of gratitude. Keep it up!Greetings, warrior. I've heard you've been helping out our local hard workers with their stuff, testing everything out, so to speak. That's a good deed, soldier, great job. The higher-ups sent you a little present as a token of gratitude. Keep it up!Greetings, warrior. I've heard you've been helping out our local hard workers with their stuff, testing everything out, so to speak. That's a good deed, soldier, great job. The higher-ups sent you a little present as a token of gratitude. Keep it up!Greetings, warrior. I've heard you've been helping out our local hard workers with their stuff, testing everything out, so to speak. That's a good deed, soldier, great job. The higher-ups sent you a little present as a token of gratitude. Keep it up!Greetings, warrior. I've heard you've been helping out our local hard workers with their stuff, testing everything out, so to speak. That's a good deed, soldier, great job. The higher-ups sent you a little present as a token of gratitude. Keep it up!Greetings, warrior. I've heard you've been helping out our local hard workers with their stuff, testing everything out, so to speak. That's a good deed, soldier, great job. The higher-ups sent you a little present as a token of gratitude. Keep it up!Greetings, warrior. I've heard you've been helping out our local hard workers with their stuff, testing everything out, so to speak. That's a good deed, soldier, great job. The higher-ups sent you a little present as a token of gratitude. Keep it up!Greetings, warrior. I've heard you've been helping out our local hard workers with their stuff, testing everything out, so to speak. That's a good deed, soldier, great job. The higher-ups sent you a little present as a token of gratitude. Keep it up!Greetings, warrior. I've heard you've been helping out our local hard workers with their stuff, testing everything out, so to speak. That's a good deed, soldier, great job. The higher-ups sent you a little present as a token of gratitude. Keep it up!Greetings, warrior. I've heard you've been helping out our local hard workers with their stuff, testing everything out, so to speak. That's a good deed, soldier, great job. The higher-ups sent you a little present as a token of gratitude. Keep it up!Greetings, warrior. I've heard you've been helping out our local hard workers with their stuff, testing everything out, so to speak. That's a good deed, soldier, great job. The higher-ups sent you a little present as a token of gratitude. Keep it up!Greetings, warrior. I've heard you've been helping out our local hard workers with their stuff, testing everything out, so to speak. That's a good deed, soldier, great job. The higher-ups sent you a little present as a token of gratitude. Keep it up!Greetings, warrior. I've heard you've been helping out our local hard workers with their stuff, testing everything out, so to speak. That's a good deed, soldier, great job. The higher-ups sent you a little present as a token of gratitude. Keep it up!Привет, боец. Слыхал, ты местным работягам активно помогал, проверял всё на прочность, так сказать. Это дело правильное, молодец, вояка. Ребята сверху тебе за это подарочек передали в знак благодарности. Продолжай в том же духе!Promo code is activated",
- "maxToSendPlayer": 1
+ "maxToSendPlayer": 1
},
"KONTOROVICH": {
"items": [
@@ -3721,7 +3721,7 @@
"associatedEvent": "Promo",
"collectionTimeHours": 72,
"messageText": "Thank you for purchasing of the first book in EFT series by A, Kontorovich. We are glad to give you this theme package with ingame items.",
- "maxToSendPlayer": 1
+ "maxToSendPlayer": 1
},
"UNHEARD": {
"items": [
@@ -3739,3234 +3739,3744 @@
"messageText": "Have a nice 20 minute adventure in the blatant plagiarist game. In and out",
"collectionTimeHours": 72,
"associatedEvent": "Promo",
- "maxToSendPlayer": 1
+ "maxToSendPlayer": 1
},
- "TOURNAMENTGIFT": {
- "items": [{
- "_id": "668014ea2b680c65290bbd0a",
- "_tpl": "5449016a4bdc2d6f028b456f",
- "upd": {
- "StackObjectsCount": 500000
- },
- "parentId": "668014ea2b680c65290bbd08",
- "slotId": "main"
- }, {
- "_id": "668014ea2b680c65290bbd0b",
- "_tpl": "5449016a4bdc2d6f028b456f",
- "upd": {
- "StackObjectsCount": 500000
- },
- "parentId": "668014ea2b680c65290bbd08",
- "slotId": "main"
- }, {
- "_id": "668014ea2b680c65290bbd0c",
- "_tpl": "5449016a4bdc2d6f028b456f",
- "upd": {
- "StackObjectsCount": 500000
- },
- "parentId": "668014ea2b680c65290bbd08",
- "slotId": "main"
- }, {
- "_id": "668014ea2b680c65290bbd0d",
- "_tpl": "5449016a4bdc2d6f028b456f",
- "upd": {
- "StackObjectsCount": 500000
- },
- "parentId": "668014ea2b680c65290bbd08",
- "slotId": "main"
- }, {
- "_id": "668014ea2b680c65290bbd0e",
- "_tpl": "5449016a4bdc2d6f028b456f",
- "upd": {
- "StackObjectsCount": 500000
- },
- "parentId": "668014ea2b680c65290bbd08",
- "slotId": "main"
- }, {
- "_id": "668014ea2b680c65290bbd0f",
- "_tpl": "5449016a4bdc2d6f028b456f",
- "upd": {
- "StackObjectsCount": 500000
- },
- "parentId": "668014ea2b680c65290bbd08",
- "slotId": "main"
- }, {
- "_id": "668014ea2b680c65290bbd10",
- "_tpl": "5449016a4bdc2d6f028b456f",
- "upd": {
- "StackObjectsCount": 500000
- },
- "parentId": "668014ea2b680c65290bbd08",
- "slotId": "main"
- }, {
- "_id": "668014ea2b680c65290bbd11",
- "_tpl": "5449016a4bdc2d6f028b456f",
- "upd": {
- "StackObjectsCount": 500000
- },
- "parentId": "668014ea2b680c65290bbd08",
- "slotId": "main"
- }, {
- "_id": "668014ea2b680c65290bbd12",
- "_tpl": "5449016a4bdc2d6f028b456f",
- "upd": {
- "StackObjectsCount": 500000
- },
- "parentId": "668014ea2b680c65290bbd08",
- "slotId": "main"
- }, {
- "_id": "668014ea2b680c65290bbd13",
- "_tpl": "5449016a4bdc2d6f028b456f",
- "upd": {
- "StackObjectsCount": 500000
- },
- "parentId": "668014ea2b680c65290bbd08",
- "slotId": "main"
- }, {
- "_id": "668014ea2b680c65290bbd14",
- "_tpl": "5449016a4bdc2d6f028b456f",
- "upd": {
- "StackObjectsCount": 500000
- },
- "parentId": "668014ea2b680c65290bbd08",
- "slotId": "main"
- }, {
- "_id": "668014ea2b680c65290bbd15",
- "_tpl": "5449016a4bdc2d6f028b456f",
- "upd": {
- "StackObjectsCount": 500000
- },
- "parentId": "668014ea2b680c65290bbd08",
- "slotId": "main"
- }, {
- "_id": "668014ea2b680c65290bbd16",
- "_tpl": "5449016a4bdc2d6f028b456f",
- "upd": {
- "StackObjectsCount": 500000
- },
- "parentId": "668014ea2b680c65290bbd08",
- "slotId": "main"
- }, {
- "_id": "668014ea2b680c65290bbd17",
- "_tpl": "5449016a4bdc2d6f028b456f",
- "upd": {
- "StackObjectsCount": 500000
- },
- "parentId": "668014ea2b680c65290bbd08",
- "slotId": "main"
- }, {
- "_id": "668014ea2b680c65290bbd18",
- "_tpl": "5449016a4bdc2d6f028b456f",
- "upd": {
- "StackObjectsCount": 500000
- },
- "parentId": "668014ea2b680c65290bbd08",
- "slotId": "main"
- }, {
- "_id": "668014ea2b680c65290bbd19",
- "_tpl": "5449016a4bdc2d6f028b456f",
- "upd": {
- "StackObjectsCount": 500000
- },
- "parentId": "668014ea2b680c65290bbd08",
- "slotId": "main"
- }, {
- "_id": "668014ea2b680c65290bbd1a",
- "_tpl": "5449016a4bdc2d6f028b456f",
- "upd": {
- "StackObjectsCount": 500000
- },
- "parentId": "668014ea2b680c65290bbd08",
- "slotId": "main"
- }, {
- "_id": "668014ea2b680c65290bbd1b",
- "_tpl": "5449016a4bdc2d6f028b456f",
- "upd": {
- "StackObjectsCount": 500000
- },
- "parentId": "668014ea2b680c65290bbd08",
- "slotId": "main"
- }, {
- "_id": "668014ea2b680c65290bbd1c",
- "_tpl": "5449016a4bdc2d6f028b456f",
- "upd": {
- "StackObjectsCount": 500000
- },
- "parentId": "668014ea2b680c65290bbd08",
- "slotId": "main"
- }, {
- "_id": "668014ea2b680c65290bbd1d",
- "_tpl": "5449016a4bdc2d6f028b456f",
- "upd": {
- "StackObjectsCount": 500000
- },
- "parentId": "668014ea2b680c65290bbd08",
- "slotId": "main"
- }, {
- "_id": "668014ea2b680c65290bbd1e",
- "_tpl": "5449016a4bdc2d6f028b456f",
- "upd": {
- "StackObjectsCount": 500000
- },
- "parentId": "668014ea2b680c65290bbd08",
- "slotId": "main"
- }, {
- "_id": "668014ea2b680c65290bbd1f",
- "_tpl": "5449016a4bdc2d6f028b456f",
- "upd": {
- "StackObjectsCount": 500000
- },
- "parentId": "668014ea2b680c65290bbd08",
- "slotId": "main"
- }, {
- "_id": "668014ea2b680c65290bbd20",
- "_tpl": "5449016a4bdc2d6f028b456f",
- "upd": {
- "StackObjectsCount": 500000
- },
- "parentId": "668014ea2b680c65290bbd08",
- "slotId": "main"
- }, {
- "_id": "668014ea2b680c65290bbd21",
- "_tpl": "5449016a4bdc2d6f028b456f",
- "upd": {
- "StackObjectsCount": 500000
- },
- "parentId": "668014ea2b680c65290bbd08",
- "slotId": "main"
- }, {
- "_id": "668014ea2b680c65290bbd22",
- "_tpl": "5449016a4bdc2d6f028b456f",
- "upd": {
- "StackObjectsCount": 500000
- },
- "parentId": "668014ea2b680c65290bbd08",
- "slotId": "main"
- }, {
- "_id": "668014ea2b680c65290bbd23",
- "_tpl": "5449016a4bdc2d6f028b456f",
- "upd": {
- "StackObjectsCount": 500000
- },
- "parentId": "668014ea2b680c65290bbd08",
- "slotId": "main"
- }, {
- "_id": "668014ea2b680c65290bbd24",
- "_tpl": "5449016a4bdc2d6f028b456f",
- "upd": {
- "StackObjectsCount": 500000
- },
- "parentId": "668014ea2b680c65290bbd08",
- "slotId": "main"
- }, {
- "_id": "668014ea2b680c65290bbd25",
- "_tpl": "5449016a4bdc2d6f028b456f",
- "upd": {
- "StackObjectsCount": 500000
- },
- "parentId": "668014ea2b680c65290bbd08",
- "slotId": "main"
- }, {
- "_id": "668014ea2b680c65290bbd26",
- "_tpl": "5449016a4bdc2d6f028b456f",
- "upd": {
- "StackObjectsCount": 500000
- },
- "parentId": "668014ea2b680c65290bbd08",
- "slotId": "main"
- }, {
- "_id": "668014ea2b680c65290bbd27",
- "_tpl": "5449016a4bdc2d6f028b456f",
- "upd": {
- "StackObjectsCount": 500000
- },
- "parentId": "668014ea2b680c65290bbd08",
- "slotId": "main"
- }, {
- "_id": "668014ea2b680c65290bbd29",
- "_tpl": "5696686a4bdc2da3298b456a",
- "upd": {
- "StackObjectsCount": 10000
- },
- "parentId": "668014ea2b680c65290bbd08",
- "slotId": "main"
- }, {
- "_id": "668014ea2b680c65290bbd2b",
- "_tpl": "569668774bdc2da2298b4568",
- "upd": {
- "StackObjectsCount": 10000
- },
- "parentId": "668014ea2b680c65290bbd08",
- "slotId": "main"
- }, {
- "_id": "668014ea2b680c65290bbd2d",
- "_tpl": "5c0e531d86f7747fa23f4d42",
- "upd": {
- "StackObjectsCount": 1
- },
- "parentId": "668014ea2b680c65290bbd08",
- "slotId": "main"
- }, {
- "_id": "668014ea2b680c65290bbd2e",
- "_tpl": "5c0e531d86f7747fa23f4d42",
- "upd": {
- "StackObjectsCount": 1
- },
- "parentId": "668014ea2b680c65290bbd08",
- "slotId": "main"
- }, {
- "_id": "668014ea2b680c65290bbd2f",
- "_tpl": "5c0e531d86f7747fa23f4d42",
- "upd": {
- "StackObjectsCount": 1
- },
- "parentId": "668014ea2b680c65290bbd08",
- "slotId": "main"
- }, {
- "_id": "668014ea2b680c65290bbd30",
- "_tpl": "5c0e531d86f7747fa23f4d42",
- "upd": {
- "StackObjectsCount": 1
- },
- "parentId": "668014ea2b680c65290bbd08",
- "slotId": "main"
- }, {
- "_id": "668014ea2b680c65290bbd31",
- "_tpl": "5c0e531d86f7747fa23f4d42",
- "upd": {
- "StackObjectsCount": 1
- },
- "parentId": "668014ea2b680c65290bbd08",
- "slotId": "main"
- }, {
- "_id": "668014ea2b680c65290bbd32",
- "_tpl": "5c0e531d86f7747fa23f4d42",
- "upd": {
- "StackObjectsCount": 1
- },
- "parentId": "668014ea2b680c65290bbd08",
- "slotId": "main"
- }, {
- "_id": "668014ea2b680c65290bbd33",
- "_tpl": "5c0e531d86f7747fa23f4d42",
- "upd": {
- "StackObjectsCount": 1
- },
- "parentId": "668014ea2b680c65290bbd08",
- "slotId": "main"
- }, {
- "_id": "668014ea2b680c65290bbd34",
- "_tpl": "5c0e531d86f7747fa23f4d42",
- "upd": {
- "StackObjectsCount": 1
- },
- "parentId": "668014ea2b680c65290bbd08",
- "slotId": "main"
- }, {
- "_id": "668014ea2b680c65290bbd35",
- "_tpl": "5c0e531d86f7747fa23f4d42",
- "upd": {
- "StackObjectsCount": 1
- },
- "parentId": "668014ea2b680c65290bbd08",
- "slotId": "main"
- }, {
- "_id": "668014ea2b680c65290bbd36",
- "_tpl": "5c0e531d86f7747fa23f4d42",
- "upd": {
- "StackObjectsCount": 1
- },
- "parentId": "668014ea2b680c65290bbd08",
- "slotId": "main"
- }, {
- "_id": "668014ea2b680c65290bbd37",
- "_tpl": "5c0e531d86f7747fa23f4d42",
- "upd": {
- "StackObjectsCount": 1
- },
- "parentId": "668014ea2b680c65290bbd08",
- "slotId": "main"
- }, {
- "_id": "668014ea2b680c65290bbd38",
- "_tpl": "5c0e531d86f7747fa23f4d42",
- "upd": {
- "StackObjectsCount": 1
- },
- "parentId": "668014ea2b680c65290bbd08",
- "slotId": "main"
- }, {
- "_id": "668014ea2b680c65290bbd39",
- "_tpl": "5c0e531d86f7747fa23f4d42",
- "upd": {
- "StackObjectsCount": 1
- },
- "parentId": "668014ea2b680c65290bbd08",
- "slotId": "main"
- }, {
- "_id": "668014ea2b680c65290bbd3a",
- "_tpl": "5c0e531d86f7747fa23f4d42",
- "upd": {
- "StackObjectsCount": 1
- },
- "parentId": "668014ea2b680c65290bbd08",
- "slotId": "main"
- }, {
- "_id": "668014ea2b680c65290bbd3b",
- "_tpl": "5c0e531d86f7747fa23f4d42",
- "upd": {
- "StackObjectsCount": 1
- },
- "parentId": "668014ea2b680c65290bbd08",
- "slotId": "main"
- }, {
- "_id": "668014ea2b680c65290bbd3c",
- "_tpl": "5c0e531d86f7747fa23f4d42",
- "upd": {
- "StackObjectsCount": 1
- },
- "parentId": "668014ea2b680c65290bbd08",
- "slotId": "main"
- }, {
- "_id": "668014ea2b680c65290bbd3d",
- "_tpl": "5c0e531d86f7747fa23f4d42",
- "upd": {
- "StackObjectsCount": 1
- },
- "parentId": "668014ea2b680c65290bbd08",
- "slotId": "main"
- }, {
- "_id": "668014ea2b680c65290bbd3e",
- "_tpl": "5c0e531d86f7747fa23f4d42",
- "upd": {
- "StackObjectsCount": 1
- },
- "parentId": "668014ea2b680c65290bbd08",
- "slotId": "main"
- }, {
- "_id": "668014ea2b680c65290bbd3f",
- "_tpl": "5c0e531d86f7747fa23f4d42",
- "upd": {
- "StackObjectsCount": 1
- },
- "parentId": "668014ea2b680c65290bbd08",
- "slotId": "main"
- }, {
- "_id": "668014ea2b680c65290bbd40",
- "_tpl": "5c0e531d86f7747fa23f4d42",
- "upd": {
- "StackObjectsCount": 1
- },
- "parentId": "668014ea2b680c65290bbd08",
- "slotId": "main"
- }, {
- "_id": "668014ea2b680c65290bbd42",
- "_tpl": "5c0126f40db834002a125382",
- "upd": {
- "StackObjectsCount": 1
- },
- "parentId": "668014ea2b680c65290bbd08",
- "slotId": "main"
- }, {
- "_id": "668014ea2b680c65290bbd44",
- "_tpl": "5c12688486f77426843c7d32",
- "upd": {
- "StackObjectsCount": 1
- },
- "parentId": "668014ea2b680c65290bbd08",
- "slotId": "main"
- }, {
- "_id": "668014ea2b680c65290bbd46",
- "_tpl": "590c5d4b86f774784e1b9c45",
- "upd": {
- "StackObjectsCount": 1
- },
- "parentId": "668014ea2b680c65290bbd08",
- "slotId": "main"
- }, {
- "_id": "668014ea2b680c65290bbd47",
- "_tpl": "590c5d4b86f774784e1b9c45",
- "upd": {
- "StackObjectsCount": 1
- },
- "parentId": "668014ea2b680c65290bbd08",
- "slotId": "main"
- }, {
- "_id": "668014ea2b680c65290bbd48",
- "_tpl": "590c5d4b86f774784e1b9c45",
- "upd": {
- "StackObjectsCount": 1
- },
- "parentId": "668014ea2b680c65290bbd08",
- "slotId": "main"
- }, {
- "_id": "668014ea2b680c65290bbd49",
- "_tpl": "590c5d4b86f774784e1b9c45",
- "upd": {
- "StackObjectsCount": 1
- },
- "parentId": "668014ea2b680c65290bbd08",
- "slotId": "main"
- }, {
- "_id": "668014ea2b680c65290bbd4a",
- "_tpl": "590c5d4b86f774784e1b9c45",
- "upd": {
- "StackObjectsCount": 1
- },
- "parentId": "668014ea2b680c65290bbd08",
- "slotId": "main"
- }, {
- "_id": "668014ea2b680c65290bbd4b",
- "_tpl": "590c5d4b86f774784e1b9c45",
- "upd": {
- "StackObjectsCount": 1
- },
- "parentId": "668014ea2b680c65290bbd08",
- "slotId": "main"
- }, {
- "_id": "668014ea2b680c65290bbd4c",
- "_tpl": "590c5d4b86f774784e1b9c45",
- "upd": {
- "StackObjectsCount": 1
- },
- "parentId": "668014ea2b680c65290bbd08",
- "slotId": "main"
- }, {
- "_id": "668014ea2b680c65290bbd4d",
- "_tpl": "590c5d4b86f774784e1b9c45",
- "upd": {
- "StackObjectsCount": 1
- },
- "parentId": "668014ea2b680c65290bbd08",
- "slotId": "main"
- }, {
- "_id": "668014ea2b680c65290bbd4e",
- "_tpl": "590c5d4b86f774784e1b9c45",
- "upd": {
- "StackObjectsCount": 1
- },
- "parentId": "668014ea2b680c65290bbd08",
- "slotId": "main"
- }, {
- "_id": "668014ea2b680c65290bbd4f",
- "_tpl": "590c5d4b86f774784e1b9c45",
- "upd": {
- "StackObjectsCount": 1
- },
- "parentId": "668014ea2b680c65290bbd08",
- "slotId": "main"
- }, {
- "_id": "668014ea2b680c65290bbd51",
- "_tpl": "5c0fa877d174af02a012e1cf",
- "upd": {
- "StackObjectsCount": 1
- },
- "parentId": "668014ea2b680c65290bbd08",
- "slotId": "main"
- }, {
- "_id": "668014ea2b680c65290bbd52",
- "_tpl": "5c0fa877d174af02a012e1cf",
- "upd": {
- "StackObjectsCount": 1
- },
- "parentId": "668014ea2b680c65290bbd08",
- "slotId": "main"
- }, {
- "_id": "668014ea2b680c65290bbd53",
- "_tpl": "5c0fa877d174af02a012e1cf",
- "upd": {
- "StackObjectsCount": 1
- },
- "parentId": "668014ea2b680c65290bbd08",
- "slotId": "main"
- }, {
- "_id": "668014ea2b680c65290bbd54",
- "_tpl": "5c0fa877d174af02a012e1cf",
- "upd": {
- "StackObjectsCount": 1
- },
- "parentId": "668014ea2b680c65290bbd08",
- "slotId": "main"
- }, {
- "_id": "668014ea2b680c65290bbd55",
- "_tpl": "5c0fa877d174af02a012e1cf",
- "upd": {
- "StackObjectsCount": 1
- },
- "parentId": "668014ea2b680c65290bbd08",
- "slotId": "main"
- }, {
- "_id": "668014ea2b680c65290bbd57",
- "_tpl": "5e8488fa988a8701445df1e4",
- "upd": {
- "StackObjectsCount": 1
- },
- "parentId": "668014ea2b680c65290bbd08",
- "slotId": "main"
- }, {
- "_id": "668014ea2b680c65290bbd58",
- "_tpl": "5e8488fa988a8701445df1e4",
- "upd": {
- "StackObjectsCount": 1
- },
- "parentId": "668014ea2b680c65290bbd08",
- "slotId": "main"
- }, {
- "_id": "668014ea2b680c65290bbd59",
- "_tpl": "5e8488fa988a8701445df1e4",
- "upd": {
- "StackObjectsCount": 1
- },
- "parentId": "668014ea2b680c65290bbd08",
- "slotId": "main"
- }, {
- "_id": "668014ea2b680c65290bbd5a",
- "_tpl": "5e8488fa988a8701445df1e4",
- "upd": {
- "StackObjectsCount": 1
- },
- "parentId": "668014ea2b680c65290bbd08",
- "slotId": "main"
- }, {
- "_id": "668014ea2b680c65290bbd5b",
- "_tpl": "5e8488fa988a8701445df1e4",
- "upd": {
- "StackObjectsCount": 1
- },
- "parentId": "668014ea2b680c65290bbd08",
- "slotId": "main"
- }, {
- "_id": "668014ea2b680c65290bbd5c",
- "_tpl": "5e8488fa988a8701445df1e4",
- "upd": {
- "StackObjectsCount": 1
- },
- "parentId": "668014ea2b680c65290bbd08",
- "slotId": "main"
- }, {
- "_id": "668014ea2b680c65290bbd5d",
- "_tpl": "5e8488fa988a8701445df1e4",
- "upd": {
- "StackObjectsCount": 1
- },
- "parentId": "668014ea2b680c65290bbd08",
- "slotId": "main"
- }, {
- "_id": "668014ea2b680c65290bbd5e",
- "_tpl": "5e8488fa988a8701445df1e4",
- "upd": {
- "StackObjectsCount": 1
- },
- "parentId": "668014ea2b680c65290bbd08",
- "slotId": "main"
- }, {
- "_id": "668014ea2b680c65290bbd5f",
- "_tpl": "5e8488fa988a8701445df1e4",
- "upd": {
- "StackObjectsCount": 1
- },
- "parentId": "668014ea2b680c65290bbd08",
- "slotId": "main"
- }, {
- "_id": "668014ea2b680c65290bbd60",
- "_tpl": "5e8488fa988a8701445df1e4",
- "upd": {
- "StackObjectsCount": 1
- },
- "parentId": "668014ea2b680c65290bbd08",
- "slotId": "main"
- }, {
- "_id": "668014ea2b680c65290bbd62",
- "_tpl": "5af0548586f7743a532b7e99",
- "upd": {
- "StackObjectsCount": 1
- },
- "parentId": "668014ea2b680c65290bbd08",
- "slotId": "main"
- }, {
- "_id": "668014ea2b680c65290bbd63",
- "_tpl": "5af0548586f7743a532b7e99",
- "upd": {
- "StackObjectsCount": 1
- },
- "parentId": "668014ea2b680c65290bbd08",
- "slotId": "main"
- }, {
- "_id": "668014ea2b680c65290bbd64",
- "_tpl": "5af0548586f7743a532b7e99",
- "upd": {
- "StackObjectsCount": 1
- },
- "parentId": "668014ea2b680c65290bbd08",
- "slotId": "main"
- }, {
- "_id": "668014ea2b680c65290bbd65",
- "_tpl": "5af0548586f7743a532b7e99",
- "upd": {
- "StackObjectsCount": 1
- },
- "parentId": "668014ea2b680c65290bbd08",
- "slotId": "main"
- }, {
- "_id": "668014ea2b680c65290bbd66",
- "_tpl": "5af0548586f7743a532b7e99",
- "upd": {
- "StackObjectsCount": 1
- },
- "parentId": "668014ea2b680c65290bbd08",
- "slotId": "main"
- }, {
- "_id": "668014ea2b680c65290bbd67",
- "_tpl": "5af0548586f7743a532b7e99",
- "upd": {
- "StackObjectsCount": 1
- },
- "parentId": "668014ea2b680c65290bbd08",
- "slotId": "main"
- }, {
- "_id": "668014ea2b680c65290bbd69",
- "_tpl": "5c0e534186f7747fa1419867",
- "upd": {
- "StackObjectsCount": 1
- },
- "parentId": "668014ea2b680c65290bbd08",
- "slotId": "main"
- }, {
- "_id": "668014ea2b680c65290bbd6a",
- "_tpl": "5c0e534186f7747fa1419867",
- "upd": {
- "StackObjectsCount": 1
- },
- "parentId": "668014ea2b680c65290bbd08",
- "slotId": "main"
- }, {
- "_id": "668014ea2b680c65290bbd6b",
- "_tpl": "5c0e534186f7747fa1419867",
- "upd": {
- "StackObjectsCount": 1
- },
- "parentId": "668014ea2b680c65290bbd08",
- "slotId": "main"
- }, {
- "_id": "668014ea2b680c65290bbd6c",
- "_tpl": "5c0e534186f7747fa1419867",
- "upd": {
- "StackObjectsCount": 1
- },
- "parentId": "668014ea2b680c65290bbd08",
- "slotId": "main"
- }, {
- "_id": "668014ea2b680c65290bbd6d",
- "_tpl": "5c0e534186f7747fa1419867",
- "upd": {
- "StackObjectsCount": 1
- },
- "parentId": "668014ea2b680c65290bbd08",
- "slotId": "main"
- }, {
- "_id": "668014ea2b680c65290bbd6e",
- "_tpl": "5c0e534186f7747fa1419867",
- "upd": {
- "StackObjectsCount": 1
- },
- "parentId": "668014ea2b680c65290bbd08",
- "slotId": "main"
- }, {
- "_id": "668014ea2b680c65290bbd6f",
- "_tpl": "5c0e534186f7747fa1419867",
- "upd": {
- "StackObjectsCount": 1
- },
- "parentId": "668014ea2b680c65290bbd08",
- "slotId": "main"
- }, {
- "_id": "668014ea2b680c65290bbd70",
- "_tpl": "5c0e534186f7747fa1419867",
- "upd": {
- "StackObjectsCount": 1
- },
- "parentId": "668014ea2b680c65290bbd08",
- "slotId": "main"
- }, {
- "_id": "668014ea2b680c65290bbd71",
- "_tpl": "5c0e534186f7747fa1419867",
- "upd": {
- "StackObjectsCount": 1
- },
- "parentId": "668014ea2b680c65290bbd08",
- "slotId": "main"
- }, {
- "_id": "668014ea2b680c65290bbd72",
- "_tpl": "5c0e534186f7747fa1419867",
- "upd": {
- "StackObjectsCount": 1
- },
- "parentId": "668014ea2b680c65290bbd08",
- "slotId": "main"
- }, {
- "_id": "668014ea2b680c65290bbd73",
- "_tpl": "5c0e534186f7747fa1419867",
- "upd": {
- "StackObjectsCount": 1
- },
- "parentId": "668014ea2b680c65290bbd08",
- "slotId": "main"
- }, {
- "_id": "668014ea2b680c65290bbd74",
- "_tpl": "5c0e534186f7747fa1419867",
- "upd": {
- "StackObjectsCount": 1
- },
- "parentId": "668014ea2b680c65290bbd08",
- "slotId": "main"
- }, {
- "_id": "668014ea2b680c65290bbd75",
- "_tpl": "5c0e534186f7747fa1419867",
- "upd": {
- "StackObjectsCount": 1
- },
- "parentId": "668014ea2b680c65290bbd08",
- "slotId": "main"
- }, {
- "_id": "668014ea2b680c65290bbd76",
- "_tpl": "5c0e534186f7747fa1419867",
- "upd": {
- "StackObjectsCount": 1
- },
- "parentId": "668014ea2b680c65290bbd08",
- "slotId": "main"
- }, {
- "_id": "668014ea2b680c65290bbd77",
- "_tpl": "5c0e534186f7747fa1419867",
- "upd": {
- "StackObjectsCount": 1
- },
- "parentId": "668014ea2b680c65290bbd08",
- "slotId": "main"
- }, {
- "_id": "668014ea2b680c65290bbd78",
- "_tpl": "5c0e534186f7747fa1419867",
- "upd": {
- "StackObjectsCount": 1
- },
- "parentId": "668014ea2b680c65290bbd08",
- "slotId": "main"
- }, {
- "_id": "668014ea2b680c65290bbd79",
- "_tpl": "5c0e534186f7747fa1419867",
- "upd": {
- "StackObjectsCount": 1
- },
- "parentId": "668014ea2b680c65290bbd08",
- "slotId": "main"
- }, {
- "_id": "668014ea2b680c65290bbd7a",
- "_tpl": "5c0e534186f7747fa1419867",
- "upd": {
- "StackObjectsCount": 1
- },
- "parentId": "668014ea2b680c65290bbd08",
- "slotId": "main"
- }, {
- "_id": "668014ea2b680c65290bbd7b",
- "_tpl": "5c0e534186f7747fa1419867",
- "upd": {
- "StackObjectsCount": 1
- },
- "parentId": "668014ea2b680c65290bbd08",
- "slotId": "main"
- }, {
- "_id": "668014ea2b680c65290bbd7c",
- "_tpl": "5c0e534186f7747fa1419867",
- "upd": {
- "StackObjectsCount": 1
- },
- "parentId": "668014ea2b680c65290bbd08",
- "slotId": "main"
- }, {
- "_id": "668014ea2b680c65290bbd7e",
- "_tpl": "637b620db7afa97bfc3d7009",
- "upd": {
- "StackObjectsCount": 1
- },
- "parentId": "668014ea2b680c65290bbd08",
- "slotId": "main"
- }, {
- "_id": "668014ea2b680c65290bbd7f",
- "_tpl": "637b620db7afa97bfc3d7009",
- "upd": {
- "StackObjectsCount": 1
- },
- "parentId": "668014ea2b680c65290bbd08",
- "slotId": "main"
- }, {
- "_id": "668014ea2b680c65290bbd80",
- "_tpl": "637b620db7afa97bfc3d7009",
- "upd": {
- "StackObjectsCount": 1
- },
- "parentId": "668014ea2b680c65290bbd08",
- "slotId": "main"
- }, {
- "_id": "668014ea2b680c65290bbd81",
- "_tpl": "637b620db7afa97bfc3d7009",
- "upd": {
- "StackObjectsCount": 1
- },
- "parentId": "668014ea2b680c65290bbd08",
- "slotId": "main"
- }, {
- "_id": "668014ea2b680c65290bbd82",
- "_tpl": "637b620db7afa97bfc3d7009",
- "upd": {
- "StackObjectsCount": 1
- },
- "parentId": "668014ea2b680c65290bbd08",
- "slotId": "main"
- }, {
- "_id": "668014ea2b680c65290bbd83",
- "_tpl": "637b620db7afa97bfc3d7009",
- "upd": {
- "StackObjectsCount": 1
- },
- "parentId": "668014ea2b680c65290bbd08",
- "slotId": "main"
- }, {
- "_id": "668014ea2b680c65290bbd84",
- "_tpl": "637b620db7afa97bfc3d7009",
- "upd": {
- "StackObjectsCount": 1
- },
- "parentId": "668014ea2b680c65290bbd08",
- "slotId": "main"
- }, {
- "_id": "668014ea2b680c65290bbd85",
- "_tpl": "637b620db7afa97bfc3d7009",
- "upd": {
- "StackObjectsCount": 1
- },
- "parentId": "668014ea2b680c65290bbd08",
- "slotId": "main"
- }, {
- "_id": "668014ea2b680c65290bbd86",
- "_tpl": "637b620db7afa97bfc3d7009",
- "upd": {
- "StackObjectsCount": 1
- },
- "parentId": "668014ea2b680c65290bbd08",
- "slotId": "main"
- }, {
- "_id": "668014ea2b680c65290bbd87",
- "_tpl": "637b620db7afa97bfc3d7009",
- "upd": {
- "StackObjectsCount": 1
- },
- "parentId": "668014ea2b680c65290bbd08",
- "slotId": "main"
- }, {
- "_id": "668014ea2b680c65290bbd88",
- "_tpl": "637b620db7afa97bfc3d7009",
- "upd": {
- "StackObjectsCount": 1
- },
- "parentId": "668014ea2b680c65290bbd08",
- "slotId": "main"
- }, {
- "_id": "668014ea2b680c65290bbd89",
- "_tpl": "637b620db7afa97bfc3d7009",
- "upd": {
- "StackObjectsCount": 1
- },
- "parentId": "668014ea2b680c65290bbd08",
- "slotId": "main"
- }, {
- "_id": "668014ea2b680c65290bbd8a",
- "_tpl": "637b620db7afa97bfc3d7009",
- "upd": {
- "StackObjectsCount": 1
- },
- "parentId": "668014ea2b680c65290bbd08",
- "slotId": "main"
- }, {
- "_id": "668014ea2b680c65290bbd8b",
- "_tpl": "637b620db7afa97bfc3d7009",
- "upd": {
- "StackObjectsCount": 1
- },
- "parentId": "668014ea2b680c65290bbd08",
- "slotId": "main"
- }, {
- "_id": "668014ea2b680c65290bbd8c",
- "_tpl": "637b620db7afa97bfc3d7009",
- "upd": {
- "StackObjectsCount": 1
- },
- "parentId": "668014ea2b680c65290bbd08",
- "slotId": "main"
- }, {
- "_id": "668014ea2b680c65290bbd8d",
- "_tpl": "637b620db7afa97bfc3d7009",
- "upd": {
- "StackObjectsCount": 1
- },
- "parentId": "668014ea2b680c65290bbd08",
- "slotId": "main"
- }, {
- "_id": "668014ea2b680c65290bbd8e",
- "_tpl": "637b620db7afa97bfc3d7009",
- "upd": {
- "StackObjectsCount": 1
- },
- "parentId": "668014ea2b680c65290bbd08",
- "slotId": "main"
- }, {
- "_id": "668014ea2b680c65290bbd8f",
- "_tpl": "637b620db7afa97bfc3d7009",
- "upd": {
- "StackObjectsCount": 1
- },
- "parentId": "668014ea2b680c65290bbd08",
- "slotId": "main"
- }, {
- "_id": "668014ea2b680c65290bbd90",
- "_tpl": "637b620db7afa97bfc3d7009",
- "upd": {
- "StackObjectsCount": 1
- },
- "parentId": "668014ea2b680c65290bbd08",
- "slotId": "main"
- }, {
- "_id": "668014ea2b680c65290bbd91",
- "_tpl": "637b620db7afa97bfc3d7009",
- "upd": {
- "StackObjectsCount": 1
- },
- "parentId": "668014ea2b680c65290bbd08",
- "slotId": "main"
- }, {
- "_id": "668014ea2b680c65290bbd93",
- "_tpl": "5d02778e86f774203e7dedbe",
- "upd": {
- "StackObjectsCount": 1
- },
- "parentId": "668014ea2b680c65290bbd08",
- "slotId": "main"
- }, {
- "_id": "668014ea2b680c65290bbd94",
- "_tpl": "5d02778e86f774203e7dedbe",
- "upd": {
- "StackObjectsCount": 1
- },
- "parentId": "668014ea2b680c65290bbd08",
- "slotId": "main"
- }, {
- "_id": "668014ea2b680c65290bbd95",
- "_tpl": "5d02778e86f774203e7dedbe",
- "upd": {
- "StackObjectsCount": 1
- },
- "parentId": "668014ea2b680c65290bbd08",
- "slotId": "main"
- }, {
- "_id": "668014ea2b680c65290bbd96",
- "_tpl": "5d02778e86f774203e7dedbe",
- "upd": {
- "StackObjectsCount": 1
- },
- "parentId": "668014ea2b680c65290bbd08",
- "slotId": "main"
- }, {
- "_id": "668014ea2b680c65290bbd97",
- "_tpl": "5d02778e86f774203e7dedbe",
- "upd": {
- "StackObjectsCount": 1
- },
- "parentId": "668014ea2b680c65290bbd08",
- "slotId": "main"
- }, {
- "_id": "668014ea2b680c65290bbd99",
- "_tpl": "5d02797c86f774203f38e30a",
- "upd": {
- "StackObjectsCount": 1
- },
- "parentId": "668014ea2b680c65290bbd08",
- "slotId": "main"
- }, {
- "_id": "668014ea2b680c65290bbd9a",
- "_tpl": "5d02797c86f774203f38e30a",
- "upd": {
- "StackObjectsCount": 1
- },
- "parentId": "668014ea2b680c65290bbd08",
- "slotId": "main"
- }, {
- "_id": "668014ea2b680c65290bbd9b",
- "_tpl": "5d02797c86f774203f38e30a",
- "upd": {
- "StackObjectsCount": 1
- },
- "parentId": "668014ea2b680c65290bbd08",
- "slotId": "main"
- }, {
- "_id": "668014ea2b680c65290bbd9c",
- "_tpl": "5d02797c86f774203f38e30a",
- "upd": {
- "StackObjectsCount": 1
- },
- "parentId": "668014ea2b680c65290bbd08",
- "slotId": "main"
- }, {
- "_id": "668014ea2b680c65290bbd9d",
- "_tpl": "5d02797c86f774203f38e30a",
- "upd": {
- "StackObjectsCount": 1
- },
- "parentId": "668014ea2b680c65290bbd08",
- "slotId": "main"
- }, {
- "_id": "668014ea2b680c65290bbd9f",
- "_tpl": "5b3b99265acfc4704b4a1afb",
- "upd": {
- "StackObjectsCount": 1
- },
- "parentId": "668014ea2b680c65290bbd08",
- "slotId": "main"
- }, {
- "_id": "668014ea2b680c65290bbda0",
- "_tpl": "5b3b99265acfc4704b4a1afb",
- "upd": {
- "StackObjectsCount": 1
- },
- "parentId": "668014ea2b680c65290bbd08",
- "slotId": "main"
- }, {
- "_id": "668014ea2b680c65290bbda1",
- "_tpl": "5b3b99265acfc4704b4a1afb",
- "upd": {
- "StackObjectsCount": 1
- },
- "parentId": "668014ea2b680c65290bbd08",
- "slotId": "main"
- }, {
- "_id": "668014ea2b680c65290bbda2",
- "_tpl": "5b3b99265acfc4704b4a1afb",
- "upd": {
- "StackObjectsCount": 1
- },
- "parentId": "668014ea2b680c65290bbd08",
- "slotId": "main"
- }, {
- "_id": "668014ea2b680c65290bbda3",
- "_tpl": "5b3b99265acfc4704b4a1afb",
- "upd": {
- "StackObjectsCount": 1
- },
- "parentId": "668014ea2b680c65290bbd08",
- "slotId": "main"
- }, {
- "_id": "668014ea2b680c65290bbda4",
- "_tpl": "5b3b99265acfc4704b4a1afb",
- "upd": {
- "StackObjectsCount": 1
- },
- "parentId": "668014ea2b680c65290bbd08",
- "slotId": "main"
- }, {
- "_id": "668014ea2b680c65290bbda5",
- "_tpl": "5b3b99265acfc4704b4a1afb",
- "upd": {
- "StackObjectsCount": 1
- },
- "parentId": "668014ea2b680c65290bbd08",
- "slotId": "main"
- }, {
- "_id": "668014ea2b680c65290bbda6",
- "_tpl": "5b3b99265acfc4704b4a1afb",
- "upd": {
- "StackObjectsCount": 1
- },
- "parentId": "668014ea2b680c65290bbd08",
- "slotId": "main"
- }, {
- "_id": "668014ea2b680c65290bbda7",
- "_tpl": "5b3b99265acfc4704b4a1afb",
- "upd": {
- "StackObjectsCount": 1
- },
- "parentId": "668014ea2b680c65290bbd08",
- "slotId": "main"
- }, {
- "_id": "668014ea2b680c65290bbda8",
- "_tpl": "5b3b99265acfc4704b4a1afb",
- "upd": {
- "StackObjectsCount": 1
- },
- "parentId": "668014ea2b680c65290bbd08",
- "slotId": "main"
- }, {
- "_id": "668014ea2b680c65290bbda9",
- "_tpl": "5b3b99265acfc4704b4a1afb",
- "upd": {
- "StackObjectsCount": 1
- },
- "parentId": "668014ea2b680c65290bbd08",
- "slotId": "main"
- }, {
- "_id": "668014ea2b680c65290bbdaa",
- "_tpl": "5b3b99265acfc4704b4a1afb",
- "upd": {
- "StackObjectsCount": 1
- },
- "parentId": "668014ea2b680c65290bbd08",
- "slotId": "main"
- }, {
- "_id": "668014ea2b680c65290bbdac",
- "_tpl": "618ba27d9008e4636a67f61d",
- "upd": {
- "StackObjectsCount": 1
- },
- "parentId": "668014ea2b680c65290bbd08",
- "slotId": "main"
- }, {
- "_id": "668014ea2b680c65290bbdad",
- "_tpl": "618ba27d9008e4636a67f61d",
- "upd": {
- "StackObjectsCount": 1
- },
- "parentId": "668014ea2b680c65290bbd08",
- "slotId": "main"
- }, {
- "_id": "668014ea2b680c65290bbdae",
- "_tpl": "618ba27d9008e4636a67f61d",
- "upd": {
- "StackObjectsCount": 1
- },
- "parentId": "668014ea2b680c65290bbd08",
- "slotId": "main"
- }, {
- "_id": "668014ea2b680c65290bbdaf",
- "_tpl": "618ba27d9008e4636a67f61d",
- "upd": {
- "StackObjectsCount": 1
- },
- "parentId": "668014ea2b680c65290bbd08",
- "slotId": "main"
- }, {
- "_id": "668014ea2b680c65290bbdb0",
- "_tpl": "618ba27d9008e4636a67f61d",
- "upd": {
- "StackObjectsCount": 1
- },
- "parentId": "668014ea2b680c65290bbd08",
- "slotId": "main"
- }, {
- "_id": "668014ea2b680c65290bbdb1",
- "_tpl": "618ba27d9008e4636a67f61d",
- "upd": {
- "StackObjectsCount": 1
- },
- "parentId": "668014ea2b680c65290bbd08",
- "slotId": "main"
- }, {
- "_id": "668014ea2b680c65290bbdb2",
- "_tpl": "618ba27d9008e4636a67f61d",
- "upd": {
- "StackObjectsCount": 1
- },
- "parentId": "668014ea2b680c65290bbd08",
- "slotId": "main"
- }, {
- "_id": "668014ea2b680c65290bbdb3",
- "_tpl": "618ba27d9008e4636a67f61d",
- "upd": {
- "StackObjectsCount": 1
- },
- "parentId": "668014ea2b680c65290bbd08",
- "slotId": "main"
- }, {
- "_id": "668014ea2b680c65290bbdb4",
- "_tpl": "618ba27d9008e4636a67f61d",
- "upd": {
- "StackObjectsCount": 1
- },
- "parentId": "668014ea2b680c65290bbd08",
- "slotId": "main"
- }, {
- "_id": "668014ea2b680c65290bbdb5",
- "_tpl": "618ba27d9008e4636a67f61d",
- "upd": {
- "StackObjectsCount": 1
- },
- "parentId": "668014ea2b680c65290bbd08",
- "slotId": "main"
- }, {
- "_id": "668014ea2b680c65290bbdb6",
- "_tpl": "618ba27d9008e4636a67f61d",
- "upd": {
- "StackObjectsCount": 1
- },
- "parentId": "668014ea2b680c65290bbd08",
- "slotId": "main"
- }, {
- "_id": "668014ea2b680c65290bbdb7",
- "_tpl": "618ba27d9008e4636a67f61d",
- "upd": {
- "StackObjectsCount": 1
- },
- "parentId": "668014ea2b680c65290bbd08",
- "slotId": "main"
- }, {
- "_id": "668014ea2b680c65290bbdb9",
- "_tpl": "617151c1d92c473c770214ab",
- "upd": {
- "StackObjectsCount": 1
- },
- "parentId": "668014ea2b680c65290bbd08",
- "slotId": "main"
- }, {
- "_id": "668014ea2b680c65290bbdba",
- "_tpl": "617151c1d92c473c770214ab",
- "upd": {
- "StackObjectsCount": 1
- },
- "parentId": "668014ea2b680c65290bbd08",
- "slotId": "main"
- }, {
- "_id": "668014ea2b680c65290bbdbb",
- "_tpl": "617151c1d92c473c770214ab",
- "upd": {
- "StackObjectsCount": 1
- },
- "parentId": "668014ea2b680c65290bbd08",
- "slotId": "main"
- }, {
- "_id": "668014ea2b680c65290bbdbc",
- "_tpl": "617151c1d92c473c770214ab",
- "upd": {
- "StackObjectsCount": 1
- },
- "parentId": "668014ea2b680c65290bbd08",
- "slotId": "main"
- }, {
- "_id": "668014ea2b680c65290bbdbd",
- "_tpl": "617151c1d92c473c770214ab",
- "upd": {
- "StackObjectsCount": 1
- },
- "parentId": "668014ea2b680c65290bbd08",
- "slotId": "main"
- }, {
- "_id": "668014ea2b680c65290bbdbe",
- "_tpl": "617151c1d92c473c770214ab",
- "upd": {
- "StackObjectsCount": 1
- },
- "parentId": "668014ea2b680c65290bbd08",
- "slotId": "main"
- }, {
- "_id": "668014ea2b680c65290bbdbf",
- "_tpl": "617151c1d92c473c770214ab",
- "upd": {
- "StackObjectsCount": 1
- },
- "parentId": "668014ea2b680c65290bbd08",
- "slotId": "main"
- }, {
- "_id": "668014ea2b680c65290bbdc0",
- "_tpl": "617151c1d92c473c770214ab",
- "upd": {
- "StackObjectsCount": 1
- },
- "parentId": "668014ea2b680c65290bbd08",
- "slotId": "main"
- }, {
- "_id": "668014ea2b680c65290bbdc1",
- "_tpl": "617151c1d92c473c770214ab",
- "upd": {
- "StackObjectsCount": 1
- },
- "parentId": "668014ea2b680c65290bbd08",
- "slotId": "main"
- }, {
- "_id": "668014ea2b680c65290bbdc2",
- "_tpl": "617151c1d92c473c770214ab",
- "upd": {
- "StackObjectsCount": 1
- },
- "parentId": "668014ea2b680c65290bbd08",
- "slotId": "main"
- }, {
- "_id": "668014ea2b680c65290bbdc3",
- "_tpl": "617151c1d92c473c770214ab",
- "upd": {
- "StackObjectsCount": 1
- },
- "parentId": "668014ea2b680c65290bbd08",
- "slotId": "main"
- }, {
- "_id": "668014ea2b680c65290bbdc4",
- "_tpl": "617151c1d92c473c770214ab",
- "upd": {
- "StackObjectsCount": 1
- },
- "parentId": "668014ea2b680c65290bbd08",
- "slotId": "main"
- }, {
- "_id": "668014ea2b680c65290bbdc9",
- "_tpl": "5bfea6e90db834001b7347f3",
- "upd": {
- "FireMode": {
- "FireMode": "single"
- },
- "StackObjectsCount": 1
- },
- "parentId": "668014ea2b680c65290bbd08",
- "slotId": "main"
- }, {
- "_id": "668014ea2b680c65290bbdca",
- "_tpl": "5bfea7ad0db834001c38f1ee",
- "parentId": "668014ea2b680c65290bbdc9",
- "slotId": "mod_magazine"
- }, {
- "_id": "668014ea2b680c65290bbdcb",
- "_tpl": "5bfeb32b0db834001a6694d9",
- "parentId": "668014ea2b680c65290bbdc9",
- "slotId": "mod_stock"
- }, {
- "_id": "668014ea2b680c65290bbdcc",
- "_tpl": "5bfebc320db8340019668d79",
- "parentId": "668014ea2b680c65290bbdc9",
- "slotId": "mod_barrel"
- }, {
- "_id": "668014ea2b680c65290bbdcd",
- "_tpl": "5bfea6e90db834001b7347f3",
- "upd": {
- "FireMode": {
- "FireMode": "single"
- },
- "StackObjectsCount": 1
- },
- "parentId": "668014ea2b680c65290bbd08",
- "slotId": "main"
- }, {
- "_id": "668014ea2b680c65290bbdce",
- "_tpl": "5bfea7ad0db834001c38f1ee",
- "parentId": "668014ea2b680c65290bbdcd",
- "slotId": "mod_magazine"
- }, {
- "_id": "668014ea2b680c65290bbdcf",
- "_tpl": "5bfeb32b0db834001a6694d9",
- "parentId": "668014ea2b680c65290bbdcd",
- "slotId": "mod_stock"
- }, {
- "_id": "668014ea2b680c65290bbdd0",
- "_tpl": "5bfebc320db8340019668d79",
- "parentId": "668014ea2b680c65290bbdcd",
- "slotId": "mod_barrel"
- }, {
- "_id": "668014ea2b680c65290bbdd1",
- "_tpl": "5bfea6e90db834001b7347f3",
- "upd": {
- "FireMode": {
- "FireMode": "single"
- },
- "StackObjectsCount": 1
- },
- "parentId": "668014ea2b680c65290bbd08",
- "slotId": "main"
- }, {
- "_id": "668014ea2b680c65290bbdd2",
- "_tpl": "5bfea7ad0db834001c38f1ee",
- "parentId": "668014ea2b680c65290bbdd1",
- "slotId": "mod_magazine"
- }, {
- "_id": "668014ea2b680c65290bbdd3",
- "_tpl": "5bfeb32b0db834001a6694d9",
- "parentId": "668014ea2b680c65290bbdd1",
- "slotId": "mod_stock"
- }, {
- "_id": "668014ea2b680c65290bbdd4",
- "_tpl": "5bfebc320db8340019668d79",
- "parentId": "668014ea2b680c65290bbdd1",
- "slotId": "mod_barrel"
- }, {
- "_id": "668014ea2b680c65290bbdd5",
- "_tpl": "5bfea6e90db834001b7347f3",
- "upd": {
- "FireMode": {
- "FireMode": "single"
- },
- "StackObjectsCount": 1
- },
- "parentId": "668014ea2b680c65290bbd08",
- "slotId": "main"
- }, {
- "_id": "668014ea2b680c65290bbdd6",
- "_tpl": "5bfea7ad0db834001c38f1ee",
- "parentId": "668014ea2b680c65290bbdd5",
- "slotId": "mod_magazine"
- }, {
- "_id": "668014ea2b680c65290bbdd7",
- "_tpl": "5bfeb32b0db834001a6694d9",
- "parentId": "668014ea2b680c65290bbdd5",
- "slotId": "mod_stock"
- }, {
- "_id": "668014ea2b680c65290bbdd8",
- "_tpl": "5bfebc320db8340019668d79",
- "parentId": "668014ea2b680c65290bbdd5",
- "slotId": "mod_barrel"
- }, {
- "_id": "668014ea2b680c65290bbdd9",
- "_tpl": "5bfea6e90db834001b7347f3",
- "upd": {
- "FireMode": {
- "FireMode": "single"
- },
- "StackObjectsCount": 1
- },
- "parentId": "668014ea2b680c65290bbd08",
- "slotId": "main"
- }, {
- "_id": "668014ea2b680c65290bbdda",
- "_tpl": "5bfea7ad0db834001c38f1ee",
- "parentId": "668014ea2b680c65290bbdd9",
- "slotId": "mod_magazine"
- }, {
- "_id": "668014ea2b680c65290bbddb",
- "_tpl": "5bfeb32b0db834001a6694d9",
- "parentId": "668014ea2b680c65290bbdd9",
- "slotId": "mod_stock"
- }, {
- "_id": "668014ea2b680c65290bbddc",
- "_tpl": "5bfebc320db8340019668d79",
- "parentId": "668014ea2b680c65290bbdd9",
- "slotId": "mod_barrel"
- }, {
- "_id": "668014ea2b680c65290bbddd",
- "_tpl": "5bfea6e90db834001b7347f3",
- "upd": {
- "FireMode": {
- "FireMode": "single"
- },
- "StackObjectsCount": 1
- },
- "parentId": "668014ea2b680c65290bbd08",
- "slotId": "main"
- }, {
- "_id": "668014ea2b680c65290bbdde",
- "_tpl": "5bfea7ad0db834001c38f1ee",
- "parentId": "668014ea2b680c65290bbddd",
- "slotId": "mod_magazine"
- }, {
- "_id": "668014ea2b680c65290bbddf",
- "_tpl": "5bfeb32b0db834001a6694d9",
- "parentId": "668014ea2b680c65290bbddd",
- "slotId": "mod_stock"
- }, {
- "_id": "668014ea2b680c65290bbde0",
- "_tpl": "5bfebc320db8340019668d79",
- "parentId": "668014ea2b680c65290bbddd",
- "slotId": "mod_barrel"
- }, {
- "_id": "668014ea2b680c65290bbde1",
- "_tpl": "5bfea6e90db834001b7347f3",
- "upd": {
- "FireMode": {
- "FireMode": "single"
- },
- "StackObjectsCount": 1
- },
- "parentId": "668014ea2b680c65290bbd08",
- "slotId": "main"
- }, {
- "_id": "668014ea2b680c65290bbde2",
- "_tpl": "5bfea7ad0db834001c38f1ee",
- "parentId": "668014ea2b680c65290bbde1",
- "slotId": "mod_magazine"
- }, {
- "_id": "668014ea2b680c65290bbde3",
- "_tpl": "5bfeb32b0db834001a6694d9",
- "parentId": "668014ea2b680c65290bbde1",
- "slotId": "mod_stock"
- }, {
- "_id": "668014ea2b680c65290bbde4",
- "_tpl": "5bfebc320db8340019668d79",
- "parentId": "668014ea2b680c65290bbde1",
- "slotId": "mod_barrel"
- }, {
- "_id": "668014ea2b680c65290bbde5",
- "_tpl": "5bfea6e90db834001b7347f3",
- "upd": {
- "FireMode": {
- "FireMode": "single"
- },
- "StackObjectsCount": 1
- },
- "parentId": "668014ea2b680c65290bbd08",
- "slotId": "main"
- }, {
- "_id": "668014ea2b680c65290bbde6",
- "_tpl": "5bfea7ad0db834001c38f1ee",
- "parentId": "668014ea2b680c65290bbde5",
- "slotId": "mod_magazine"
- }, {
- "_id": "668014ea2b680c65290bbde7",
- "_tpl": "5bfeb32b0db834001a6694d9",
- "parentId": "668014ea2b680c65290bbde5",
- "slotId": "mod_stock"
- }, {
- "_id": "668014ea2b680c65290bbde8",
- "_tpl": "5bfebc320db8340019668d79",
- "parentId": "668014ea2b680c65290bbde5",
- "slotId": "mod_barrel"
- }, {
- "_id": "668014ea2b680c65290bbde9",
- "_tpl": "5bfea6e90db834001b7347f3",
- "upd": {
- "FireMode": {
- "FireMode": "single"
- },
- "StackObjectsCount": 1
- },
- "parentId": "668014ea2b680c65290bbd08",
- "slotId": "main"
- }, {
- "_id": "668014ea2b680c65290bbdea",
- "_tpl": "5bfea7ad0db834001c38f1ee",
- "parentId": "668014ea2b680c65290bbde9",
- "slotId": "mod_magazine"
- }, {
- "_id": "668014ea2b680c65290bbdeb",
- "_tpl": "5bfeb32b0db834001a6694d9",
- "parentId": "668014ea2b680c65290bbde9",
- "slotId": "mod_stock"
- }, {
- "_id": "668014ea2b680c65290bbdec",
- "_tpl": "5bfebc320db8340019668d79",
- "parentId": "668014ea2b680c65290bbde9",
- "slotId": "mod_barrel"
- }, {
- "_id": "668014ea2b680c65290bbded",
- "_tpl": "5bfea6e90db834001b7347f3",
- "upd": {
- "FireMode": {
- "FireMode": "single"
- },
- "StackObjectsCount": 1
- },
- "parentId": "668014ea2b680c65290bbd08",
- "slotId": "main"
- }, {
- "_id": "668014ea2b680c65290bbdee",
- "_tpl": "5bfea7ad0db834001c38f1ee",
- "parentId": "668014ea2b680c65290bbded",
- "slotId": "mod_magazine"
- }, {
- "_id": "668014ea2b680c65290bbdef",
- "_tpl": "5bfeb32b0db834001a6694d9",
- "parentId": "668014ea2b680c65290bbded",
- "slotId": "mod_stock"
- }, {
- "_id": "668014ea2b680c65290bbdf0",
- "_tpl": "5bfebc320db8340019668d79",
- "parentId": "668014ea2b680c65290bbded",
- "slotId": "mod_barrel"
- }, {
- "_id": "668014ea2b680c65290bbdf1",
- "_tpl": "5bfea6e90db834001b7347f3",
- "upd": {
- "FireMode": {
- "FireMode": "single"
- },
- "StackObjectsCount": 1
- },
- "parentId": "668014ea2b680c65290bbd08",
- "slotId": "main"
- }, {
- "_id": "668014ea2b680c65290bbdf2",
- "_tpl": "5bfea7ad0db834001c38f1ee",
- "parentId": "668014ea2b680c65290bbdf1",
- "slotId": "mod_magazine"
- }, {
- "_id": "668014ea2b680c65290bbdf3",
- "_tpl": "5bfeb32b0db834001a6694d9",
- "parentId": "668014ea2b680c65290bbdf1",
- "slotId": "mod_stock"
- }, {
- "_id": "668014ea2b680c65290bbdf4",
- "_tpl": "5bfebc320db8340019668d79",
- "parentId": "668014ea2b680c65290bbdf1",
- "slotId": "mod_barrel"
- }, {
- "_id": "668014ea2b680c65290bbdf5",
- "_tpl": "5bfea6e90db834001b7347f3",
- "upd": {
- "FireMode": {
- "FireMode": "single"
- },
- "StackObjectsCount": 1
- },
- "parentId": "668014ea2b680c65290bbd08",
- "slotId": "main"
- }, {
- "_id": "668014ea2b680c65290bbdf6",
- "_tpl": "5bfea7ad0db834001c38f1ee",
- "parentId": "668014ea2b680c65290bbdf5",
- "slotId": "mod_magazine"
- }, {
- "_id": "668014ea2b680c65290bbdf7",
- "_tpl": "5bfeb32b0db834001a6694d9",
- "parentId": "668014ea2b680c65290bbdf5",
- "slotId": "mod_stock"
- }, {
- "_id": "668014ea2b680c65290bbdf8",
- "_tpl": "5bfebc320db8340019668d79",
- "parentId": "668014ea2b680c65290bbdf5",
- "slotId": "mod_barrel"
- }, {
- "_id": "668014ea2b680c65290bbdfa",
- "_tpl": "5a608bf24f39f98ffc77720e",
- "upd": {
- "StackObjectsCount": 40
- },
- "parentId": "668014ea2b680c65290bbd08",
- "slotId": "main"
- }, {
- "_id": "668014ea2b680c65290bbdfb",
- "_tpl": "5a608bf24f39f98ffc77720e",
- "upd": {
- "StackObjectsCount": 40
- },
- "parentId": "668014ea2b680c65290bbd08",
- "slotId": "main"
- }, {
- "_id": "668014ea2b680c65290bbdfc",
- "_tpl": "5a608bf24f39f98ffc77720e",
- "upd": {
- "StackObjectsCount": 40
- },
- "parentId": "668014ea2b680c65290bbd08",
- "slotId": "main"
- }, {
- "_id": "668014ea2b680c65290bbdfd",
- "_tpl": "5a608bf24f39f98ffc77720e",
- "upd": {
- "StackObjectsCount": 40
- },
- "parentId": "668014ea2b680c65290bbd08",
- "slotId": "main"
- }, {
- "_id": "668014ea2b680c65290bbdfe",
- "_tpl": "5a608bf24f39f98ffc77720e",
- "upd": {
- "StackObjectsCount": 40
- },
- "parentId": "668014ea2b680c65290bbd08",
- "slotId": "main"
- }, {
- "_id": "668014ea2b680c65290bbdff",
- "_tpl": "5a608bf24f39f98ffc77720e",
- "upd": {
- "StackObjectsCount": 40
- },
- "parentId": "668014ea2b680c65290bbd08",
- "slotId": "main"
- }, {
- "_id": "668014ea2b680c65290bbe00",
- "_tpl": "5a608bf24f39f98ffc77720e",
- "upd": {
- "StackObjectsCount": 40
- },
- "parentId": "668014ea2b680c65290bbd08",
- "slotId": "main"
- }, {
- "_id": "668014ea2b680c65290bbe01",
- "_tpl": "5a608bf24f39f98ffc77720e",
- "upd": {
- "StackObjectsCount": 40
- },
- "parentId": "668014ea2b680c65290bbd08",
- "slotId": "main"
- }, {
- "_id": "668014ea2b680c65290bbe02",
- "_tpl": "5a608bf24f39f98ffc77720e",
- "upd": {
- "StackObjectsCount": 40
- },
- "parentId": "668014ea2b680c65290bbd08",
- "slotId": "main"
- }, {
- "_id": "668014ea2b680c65290bbe03",
- "_tpl": "5a608bf24f39f98ffc77720e",
- "upd": {
- "StackObjectsCount": 40
- },
- "parentId": "668014ea2b680c65290bbd08",
- "slotId": "main"
- }, {
- "_id": "668014ea2b680c65290bbe05",
- "_tpl": "58dd3ad986f77403051cba8f",
- "upd": {
- "StackObjectsCount": 40
- },
- "parentId": "668014ea2b680c65290bbd08",
- "slotId": "main"
- }, {
- "_id": "668014ea2b680c65290bbe06",
- "_tpl": "58dd3ad986f77403051cba8f",
- "upd": {
- "StackObjectsCount": 40
- },
- "parentId": "668014ea2b680c65290bbd08",
- "slotId": "main"
- }, {
- "_id": "668014ea2b680c65290bbe07",
- "_tpl": "58dd3ad986f77403051cba8f",
- "upd": {
- "StackObjectsCount": 40
- },
- "parentId": "668014ea2b680c65290bbd08",
- "slotId": "main"
- }, {
- "_id": "668014ea2b680c65290bbe08",
- "_tpl": "58dd3ad986f77403051cba8f",
- "upd": {
- "StackObjectsCount": 40
- },
- "parentId": "668014ea2b680c65290bbd08",
- "slotId": "main"
- }, {
- "_id": "668014ea2b680c65290bbe09",
- "_tpl": "58dd3ad986f77403051cba8f",
- "upd": {
- "StackObjectsCount": 40
- },
- "parentId": "668014ea2b680c65290bbd08",
- "slotId": "main"
- }, {
- "_id": "668014ea2b680c65290bbe0a",
- "_tpl": "58dd3ad986f77403051cba8f",
- "upd": {
- "StackObjectsCount": 40
- },
- "parentId": "668014ea2b680c65290bbd08",
- "slotId": "main"
- }, {
- "_id": "668014ea2b680c65290bbe0b",
- "_tpl": "58dd3ad986f77403051cba8f",
- "upd": {
- "StackObjectsCount": 40
- },
- "parentId": "668014ea2b680c65290bbd08",
- "slotId": "main"
- }, {
- "_id": "668014ea2b680c65290bbe0c",
- "_tpl": "58dd3ad986f77403051cba8f",
- "upd": {
- "StackObjectsCount": 40
- },
- "parentId": "668014ea2b680c65290bbd08",
- "slotId": "main"
- }, {
- "_id": "668014ea2b680c65290bbe0d",
- "_tpl": "58dd3ad986f77403051cba8f",
- "upd": {
- "StackObjectsCount": 40
- },
- "parentId": "668014ea2b680c65290bbd08",
- "slotId": "main"
- }, {
- "_id": "668014ea2b680c65290bbe0e",
- "_tpl": "58dd3ad986f77403051cba8f",
- "upd": {
- "StackObjectsCount": 40
- },
- "parentId": "668014ea2b680c65290bbd08",
- "slotId": "main"
- }, {
- "_id": "668014ea2b680c65290bbe10",
- "_tpl": "5c0a840b86f7742ffa4f2482",
- "upd": {
- "StackObjectsCount": 1
- },
- "parentId": "668014ea2b680c65290bbd08",
- "slotId": "main"
- }, {
- "_id": "668014ea2b680c65290bbe12",
- "_tpl": "5b6d9ce188a4501afc1b2b25",
- "upd": {
- "StackObjectsCount": 1
- },
- "parentId": "668014ea2b680c65290bbd08",
- "slotId": "main"
- }, {
- "_id": "668014ea2b680c65290bbe14",
- "_tpl": "5aafbcd986f7745e590fff23",
- "upd": {
- "StackObjectsCount": 1
- },
- "parentId": "668014ea2b680c65290bbd08",
- "slotId": "main"
- }, {
- "_id": "668014ea2b680c65290bbe16",
- "_tpl": "5c093db286f7740a1b2617e3",
- "upd": {
- "StackObjectsCount": 1
- },
- "parentId": "668014ea2b680c65290bbd08",
- "slotId": "main"
- }, {
- "_id": "668014ea2b680c65290bbe18",
- "_tpl": "5c127c4486f7745625356c13",
- "upd": {
- "StackObjectsCount": 1
- },
- "parentId": "668014ea2b680c65290bbd08",
- "slotId": "main"
- }, {
- "_id": "668014ea2b680c65290bbe1a",
- "_tpl": "5c093e3486f77430cb02e593",
- "upd": {
- "StackObjectsCount": 1
- },
- "parentId": "668014ea2b680c65290bbd08",
- "slotId": "main"
- }, {
- "_id": "668014ea2b680c65290bbe1c",
- "_tpl": "619cbf7d23893217ec30b689",
- "upd": {
- "StackObjectsCount": 1
- },
- "parentId": "668014ea2b680c65290bbd08",
- "slotId": "main"
- }
- ],
- "sender": "System",
+ "TOURNAMENTGIFT": {
+ "items": [
+ {
+ "_id": "668014ea2b680c65290bbd0a",
+ "_tpl": "5449016a4bdc2d6f028b456f",
+ "upd": {
+ "StackObjectsCount": 500000
+ },
+ "parentId": "668014ea2b680c65290bbd08",
+ "slotId": "main"
+ },
+ {
+ "_id": "668014ea2b680c65290bbd0b",
+ "_tpl": "5449016a4bdc2d6f028b456f",
+ "upd": {
+ "StackObjectsCount": 500000
+ },
+ "parentId": "668014ea2b680c65290bbd08",
+ "slotId": "main"
+ },
+ {
+ "_id": "668014ea2b680c65290bbd0c",
+ "_tpl": "5449016a4bdc2d6f028b456f",
+ "upd": {
+ "StackObjectsCount": 500000
+ },
+ "parentId": "668014ea2b680c65290bbd08",
+ "slotId": "main"
+ },
+ {
+ "_id": "668014ea2b680c65290bbd0d",
+ "_tpl": "5449016a4bdc2d6f028b456f",
+ "upd": {
+ "StackObjectsCount": 500000
+ },
+ "parentId": "668014ea2b680c65290bbd08",
+ "slotId": "main"
+ },
+ {
+ "_id": "668014ea2b680c65290bbd0e",
+ "_tpl": "5449016a4bdc2d6f028b456f",
+ "upd": {
+ "StackObjectsCount": 500000
+ },
+ "parentId": "668014ea2b680c65290bbd08",
+ "slotId": "main"
+ },
+ {
+ "_id": "668014ea2b680c65290bbd0f",
+ "_tpl": "5449016a4bdc2d6f028b456f",
+ "upd": {
+ "StackObjectsCount": 500000
+ },
+ "parentId": "668014ea2b680c65290bbd08",
+ "slotId": "main"
+ },
+ {
+ "_id": "668014ea2b680c65290bbd10",
+ "_tpl": "5449016a4bdc2d6f028b456f",
+ "upd": {
+ "StackObjectsCount": 500000
+ },
+ "parentId": "668014ea2b680c65290bbd08",
+ "slotId": "main"
+ },
+ {
+ "_id": "668014ea2b680c65290bbd11",
+ "_tpl": "5449016a4bdc2d6f028b456f",
+ "upd": {
+ "StackObjectsCount": 500000
+ },
+ "parentId": "668014ea2b680c65290bbd08",
+ "slotId": "main"
+ },
+ {
+ "_id": "668014ea2b680c65290bbd12",
+ "_tpl": "5449016a4bdc2d6f028b456f",
+ "upd": {
+ "StackObjectsCount": 500000
+ },
+ "parentId": "668014ea2b680c65290bbd08",
+ "slotId": "main"
+ },
+ {
+ "_id": "668014ea2b680c65290bbd13",
+ "_tpl": "5449016a4bdc2d6f028b456f",
+ "upd": {
+ "StackObjectsCount": 500000
+ },
+ "parentId": "668014ea2b680c65290bbd08",
+ "slotId": "main"
+ },
+ {
+ "_id": "668014ea2b680c65290bbd14",
+ "_tpl": "5449016a4bdc2d6f028b456f",
+ "upd": {
+ "StackObjectsCount": 500000
+ },
+ "parentId": "668014ea2b680c65290bbd08",
+ "slotId": "main"
+ },
+ {
+ "_id": "668014ea2b680c65290bbd15",
+ "_tpl": "5449016a4bdc2d6f028b456f",
+ "upd": {
+ "StackObjectsCount": 500000
+ },
+ "parentId": "668014ea2b680c65290bbd08",
+ "slotId": "main"
+ },
+ {
+ "_id": "668014ea2b680c65290bbd16",
+ "_tpl": "5449016a4bdc2d6f028b456f",
+ "upd": {
+ "StackObjectsCount": 500000
+ },
+ "parentId": "668014ea2b680c65290bbd08",
+ "slotId": "main"
+ },
+ {
+ "_id": "668014ea2b680c65290bbd17",
+ "_tpl": "5449016a4bdc2d6f028b456f",
+ "upd": {
+ "StackObjectsCount": 500000
+ },
+ "parentId": "668014ea2b680c65290bbd08",
+ "slotId": "main"
+ },
+ {
+ "_id": "668014ea2b680c65290bbd18",
+ "_tpl": "5449016a4bdc2d6f028b456f",
+ "upd": {
+ "StackObjectsCount": 500000
+ },
+ "parentId": "668014ea2b680c65290bbd08",
+ "slotId": "main"
+ },
+ {
+ "_id": "668014ea2b680c65290bbd19",
+ "_tpl": "5449016a4bdc2d6f028b456f",
+ "upd": {
+ "StackObjectsCount": 500000
+ },
+ "parentId": "668014ea2b680c65290bbd08",
+ "slotId": "main"
+ },
+ {
+ "_id": "668014ea2b680c65290bbd1a",
+ "_tpl": "5449016a4bdc2d6f028b456f",
+ "upd": {
+ "StackObjectsCount": 500000
+ },
+ "parentId": "668014ea2b680c65290bbd08",
+ "slotId": "main"
+ },
+ {
+ "_id": "668014ea2b680c65290bbd1b",
+ "_tpl": "5449016a4bdc2d6f028b456f",
+ "upd": {
+ "StackObjectsCount": 500000
+ },
+ "parentId": "668014ea2b680c65290bbd08",
+ "slotId": "main"
+ },
+ {
+ "_id": "668014ea2b680c65290bbd1c",
+ "_tpl": "5449016a4bdc2d6f028b456f",
+ "upd": {
+ "StackObjectsCount": 500000
+ },
+ "parentId": "668014ea2b680c65290bbd08",
+ "slotId": "main"
+ },
+ {
+ "_id": "668014ea2b680c65290bbd1d",
+ "_tpl": "5449016a4bdc2d6f028b456f",
+ "upd": {
+ "StackObjectsCount": 500000
+ },
+ "parentId": "668014ea2b680c65290bbd08",
+ "slotId": "main"
+ },
+ {
+ "_id": "668014ea2b680c65290bbd1e",
+ "_tpl": "5449016a4bdc2d6f028b456f",
+ "upd": {
+ "StackObjectsCount": 500000
+ },
+ "parentId": "668014ea2b680c65290bbd08",
+ "slotId": "main"
+ },
+ {
+ "_id": "668014ea2b680c65290bbd1f",
+ "_tpl": "5449016a4bdc2d6f028b456f",
+ "upd": {
+ "StackObjectsCount": 500000
+ },
+ "parentId": "668014ea2b680c65290bbd08",
+ "slotId": "main"
+ },
+ {
+ "_id": "668014ea2b680c65290bbd20",
+ "_tpl": "5449016a4bdc2d6f028b456f",
+ "upd": {
+ "StackObjectsCount": 500000
+ },
+ "parentId": "668014ea2b680c65290bbd08",
+ "slotId": "main"
+ },
+ {
+ "_id": "668014ea2b680c65290bbd21",
+ "_tpl": "5449016a4bdc2d6f028b456f",
+ "upd": {
+ "StackObjectsCount": 500000
+ },
+ "parentId": "668014ea2b680c65290bbd08",
+ "slotId": "main"
+ },
+ {
+ "_id": "668014ea2b680c65290bbd22",
+ "_tpl": "5449016a4bdc2d6f028b456f",
+ "upd": {
+ "StackObjectsCount": 500000
+ },
+ "parentId": "668014ea2b680c65290bbd08",
+ "slotId": "main"
+ },
+ {
+ "_id": "668014ea2b680c65290bbd23",
+ "_tpl": "5449016a4bdc2d6f028b456f",
+ "upd": {
+ "StackObjectsCount": 500000
+ },
+ "parentId": "668014ea2b680c65290bbd08",
+ "slotId": "main"
+ },
+ {
+ "_id": "668014ea2b680c65290bbd24",
+ "_tpl": "5449016a4bdc2d6f028b456f",
+ "upd": {
+ "StackObjectsCount": 500000
+ },
+ "parentId": "668014ea2b680c65290bbd08",
+ "slotId": "main"
+ },
+ {
+ "_id": "668014ea2b680c65290bbd25",
+ "_tpl": "5449016a4bdc2d6f028b456f",
+ "upd": {
+ "StackObjectsCount": 500000
+ },
+ "parentId": "668014ea2b680c65290bbd08",
+ "slotId": "main"
+ },
+ {
+ "_id": "668014ea2b680c65290bbd26",
+ "_tpl": "5449016a4bdc2d6f028b456f",
+ "upd": {
+ "StackObjectsCount": 500000
+ },
+ "parentId": "668014ea2b680c65290bbd08",
+ "slotId": "main"
+ },
+ {
+ "_id": "668014ea2b680c65290bbd27",
+ "_tpl": "5449016a4bdc2d6f028b456f",
+ "upd": {
+ "StackObjectsCount": 500000
+ },
+ "parentId": "668014ea2b680c65290bbd08",
+ "slotId": "main"
+ },
+ {
+ "_id": "668014ea2b680c65290bbd29",
+ "_tpl": "5696686a4bdc2da3298b456a",
+ "upd": {
+ "StackObjectsCount": 10000
+ },
+ "parentId": "668014ea2b680c65290bbd08",
+ "slotId": "main"
+ },
+ {
+ "_id": "668014ea2b680c65290bbd2b",
+ "_tpl": "569668774bdc2da2298b4568",
+ "upd": {
+ "StackObjectsCount": 10000
+ },
+ "parentId": "668014ea2b680c65290bbd08",
+ "slotId": "main"
+ },
+ {
+ "_id": "668014ea2b680c65290bbd2d",
+ "_tpl": "5c0e531d86f7747fa23f4d42",
+ "upd": {
+ "StackObjectsCount": 1
+ },
+ "parentId": "668014ea2b680c65290bbd08",
+ "slotId": "main"
+ },
+ {
+ "_id": "668014ea2b680c65290bbd2e",
+ "_tpl": "5c0e531d86f7747fa23f4d42",
+ "upd": {
+ "StackObjectsCount": 1
+ },
+ "parentId": "668014ea2b680c65290bbd08",
+ "slotId": "main"
+ },
+ {
+ "_id": "668014ea2b680c65290bbd2f",
+ "_tpl": "5c0e531d86f7747fa23f4d42",
+ "upd": {
+ "StackObjectsCount": 1
+ },
+ "parentId": "668014ea2b680c65290bbd08",
+ "slotId": "main"
+ },
+ {
+ "_id": "668014ea2b680c65290bbd30",
+ "_tpl": "5c0e531d86f7747fa23f4d42",
+ "upd": {
+ "StackObjectsCount": 1
+ },
+ "parentId": "668014ea2b680c65290bbd08",
+ "slotId": "main"
+ },
+ {
+ "_id": "668014ea2b680c65290bbd31",
+ "_tpl": "5c0e531d86f7747fa23f4d42",
+ "upd": {
+ "StackObjectsCount": 1
+ },
+ "parentId": "668014ea2b680c65290bbd08",
+ "slotId": "main"
+ },
+ {
+ "_id": "668014ea2b680c65290bbd32",
+ "_tpl": "5c0e531d86f7747fa23f4d42",
+ "upd": {
+ "StackObjectsCount": 1
+ },
+ "parentId": "668014ea2b680c65290bbd08",
+ "slotId": "main"
+ },
+ {
+ "_id": "668014ea2b680c65290bbd33",
+ "_tpl": "5c0e531d86f7747fa23f4d42",
+ "upd": {
+ "StackObjectsCount": 1
+ },
+ "parentId": "668014ea2b680c65290bbd08",
+ "slotId": "main"
+ },
+ {
+ "_id": "668014ea2b680c65290bbd34",
+ "_tpl": "5c0e531d86f7747fa23f4d42",
+ "upd": {
+ "StackObjectsCount": 1
+ },
+ "parentId": "668014ea2b680c65290bbd08",
+ "slotId": "main"
+ },
+ {
+ "_id": "668014ea2b680c65290bbd35",
+ "_tpl": "5c0e531d86f7747fa23f4d42",
+ "upd": {
+ "StackObjectsCount": 1
+ },
+ "parentId": "668014ea2b680c65290bbd08",
+ "slotId": "main"
+ },
+ {
+ "_id": "668014ea2b680c65290bbd36",
+ "_tpl": "5c0e531d86f7747fa23f4d42",
+ "upd": {
+ "StackObjectsCount": 1
+ },
+ "parentId": "668014ea2b680c65290bbd08",
+ "slotId": "main"
+ },
+ {
+ "_id": "668014ea2b680c65290bbd37",
+ "_tpl": "5c0e531d86f7747fa23f4d42",
+ "upd": {
+ "StackObjectsCount": 1
+ },
+ "parentId": "668014ea2b680c65290bbd08",
+ "slotId": "main"
+ },
+ {
+ "_id": "668014ea2b680c65290bbd38",
+ "_tpl": "5c0e531d86f7747fa23f4d42",
+ "upd": {
+ "StackObjectsCount": 1
+ },
+ "parentId": "668014ea2b680c65290bbd08",
+ "slotId": "main"
+ },
+ {
+ "_id": "668014ea2b680c65290bbd39",
+ "_tpl": "5c0e531d86f7747fa23f4d42",
+ "upd": {
+ "StackObjectsCount": 1
+ },
+ "parentId": "668014ea2b680c65290bbd08",
+ "slotId": "main"
+ },
+ {
+ "_id": "668014ea2b680c65290bbd3a",
+ "_tpl": "5c0e531d86f7747fa23f4d42",
+ "upd": {
+ "StackObjectsCount": 1
+ },
+ "parentId": "668014ea2b680c65290bbd08",
+ "slotId": "main"
+ },
+ {
+ "_id": "668014ea2b680c65290bbd3b",
+ "_tpl": "5c0e531d86f7747fa23f4d42",
+ "upd": {
+ "StackObjectsCount": 1
+ },
+ "parentId": "668014ea2b680c65290bbd08",
+ "slotId": "main"
+ },
+ {
+ "_id": "668014ea2b680c65290bbd3c",
+ "_tpl": "5c0e531d86f7747fa23f4d42",
+ "upd": {
+ "StackObjectsCount": 1
+ },
+ "parentId": "668014ea2b680c65290bbd08",
+ "slotId": "main"
+ },
+ {
+ "_id": "668014ea2b680c65290bbd3d",
+ "_tpl": "5c0e531d86f7747fa23f4d42",
+ "upd": {
+ "StackObjectsCount": 1
+ },
+ "parentId": "668014ea2b680c65290bbd08",
+ "slotId": "main"
+ },
+ {
+ "_id": "668014ea2b680c65290bbd3e",
+ "_tpl": "5c0e531d86f7747fa23f4d42",
+ "upd": {
+ "StackObjectsCount": 1
+ },
+ "parentId": "668014ea2b680c65290bbd08",
+ "slotId": "main"
+ },
+ {
+ "_id": "668014ea2b680c65290bbd3f",
+ "_tpl": "5c0e531d86f7747fa23f4d42",
+ "upd": {
+ "StackObjectsCount": 1
+ },
+ "parentId": "668014ea2b680c65290bbd08",
+ "slotId": "main"
+ },
+ {
+ "_id": "668014ea2b680c65290bbd40",
+ "_tpl": "5c0e531d86f7747fa23f4d42",
+ "upd": {
+ "StackObjectsCount": 1
+ },
+ "parentId": "668014ea2b680c65290bbd08",
+ "slotId": "main"
+ },
+ {
+ "_id": "668014ea2b680c65290bbd42",
+ "_tpl": "5c0126f40db834002a125382",
+ "upd": {
+ "StackObjectsCount": 1
+ },
+ "parentId": "668014ea2b680c65290bbd08",
+ "slotId": "main"
+ },
+ {
+ "_id": "668014ea2b680c65290bbd44",
+ "_tpl": "5c12688486f77426843c7d32",
+ "upd": {
+ "StackObjectsCount": 1
+ },
+ "parentId": "668014ea2b680c65290bbd08",
+ "slotId": "main"
+ },
+ {
+ "_id": "668014ea2b680c65290bbd46",
+ "_tpl": "590c5d4b86f774784e1b9c45",
+ "upd": {
+ "StackObjectsCount": 1
+ },
+ "parentId": "668014ea2b680c65290bbd08",
+ "slotId": "main"
+ },
+ {
+ "_id": "668014ea2b680c65290bbd47",
+ "_tpl": "590c5d4b86f774784e1b9c45",
+ "upd": {
+ "StackObjectsCount": 1
+ },
+ "parentId": "668014ea2b680c65290bbd08",
+ "slotId": "main"
+ },
+ {
+ "_id": "668014ea2b680c65290bbd48",
+ "_tpl": "590c5d4b86f774784e1b9c45",
+ "upd": {
+ "StackObjectsCount": 1
+ },
+ "parentId": "668014ea2b680c65290bbd08",
+ "slotId": "main"
+ },
+ {
+ "_id": "668014ea2b680c65290bbd49",
+ "_tpl": "590c5d4b86f774784e1b9c45",
+ "upd": {
+ "StackObjectsCount": 1
+ },
+ "parentId": "668014ea2b680c65290bbd08",
+ "slotId": "main"
+ },
+ {
+ "_id": "668014ea2b680c65290bbd4a",
+ "_tpl": "590c5d4b86f774784e1b9c45",
+ "upd": {
+ "StackObjectsCount": 1
+ },
+ "parentId": "668014ea2b680c65290bbd08",
+ "slotId": "main"
+ },
+ {
+ "_id": "668014ea2b680c65290bbd4b",
+ "_tpl": "590c5d4b86f774784e1b9c45",
+ "upd": {
+ "StackObjectsCount": 1
+ },
+ "parentId": "668014ea2b680c65290bbd08",
+ "slotId": "main"
+ },
+ {
+ "_id": "668014ea2b680c65290bbd4c",
+ "_tpl": "590c5d4b86f774784e1b9c45",
+ "upd": {
+ "StackObjectsCount": 1
+ },
+ "parentId": "668014ea2b680c65290bbd08",
+ "slotId": "main"
+ },
+ {
+ "_id": "668014ea2b680c65290bbd4d",
+ "_tpl": "590c5d4b86f774784e1b9c45",
+ "upd": {
+ "StackObjectsCount": 1
+ },
+ "parentId": "668014ea2b680c65290bbd08",
+ "slotId": "main"
+ },
+ {
+ "_id": "668014ea2b680c65290bbd4e",
+ "_tpl": "590c5d4b86f774784e1b9c45",
+ "upd": {
+ "StackObjectsCount": 1
+ },
+ "parentId": "668014ea2b680c65290bbd08",
+ "slotId": "main"
+ },
+ {
+ "_id": "668014ea2b680c65290bbd4f",
+ "_tpl": "590c5d4b86f774784e1b9c45",
+ "upd": {
+ "StackObjectsCount": 1
+ },
+ "parentId": "668014ea2b680c65290bbd08",
+ "slotId": "main"
+ },
+ {
+ "_id": "668014ea2b680c65290bbd51",
+ "_tpl": "5c0fa877d174af02a012e1cf",
+ "upd": {
+ "StackObjectsCount": 1
+ },
+ "parentId": "668014ea2b680c65290bbd08",
+ "slotId": "main"
+ },
+ {
+ "_id": "668014ea2b680c65290bbd52",
+ "_tpl": "5c0fa877d174af02a012e1cf",
+ "upd": {
+ "StackObjectsCount": 1
+ },
+ "parentId": "668014ea2b680c65290bbd08",
+ "slotId": "main"
+ },
+ {
+ "_id": "668014ea2b680c65290bbd53",
+ "_tpl": "5c0fa877d174af02a012e1cf",
+ "upd": {
+ "StackObjectsCount": 1
+ },
+ "parentId": "668014ea2b680c65290bbd08",
+ "slotId": "main"
+ },
+ {
+ "_id": "668014ea2b680c65290bbd54",
+ "_tpl": "5c0fa877d174af02a012e1cf",
+ "upd": {
+ "StackObjectsCount": 1
+ },
+ "parentId": "668014ea2b680c65290bbd08",
+ "slotId": "main"
+ },
+ {
+ "_id": "668014ea2b680c65290bbd55",
+ "_tpl": "5c0fa877d174af02a012e1cf",
+ "upd": {
+ "StackObjectsCount": 1
+ },
+ "parentId": "668014ea2b680c65290bbd08",
+ "slotId": "main"
+ },
+ {
+ "_id": "668014ea2b680c65290bbd57",
+ "_tpl": "5e8488fa988a8701445df1e4",
+ "upd": {
+ "StackObjectsCount": 1
+ },
+ "parentId": "668014ea2b680c65290bbd08",
+ "slotId": "main"
+ },
+ {
+ "_id": "668014ea2b680c65290bbd58",
+ "_tpl": "5e8488fa988a8701445df1e4",
+ "upd": {
+ "StackObjectsCount": 1
+ },
+ "parentId": "668014ea2b680c65290bbd08",
+ "slotId": "main"
+ },
+ {
+ "_id": "668014ea2b680c65290bbd59",
+ "_tpl": "5e8488fa988a8701445df1e4",
+ "upd": {
+ "StackObjectsCount": 1
+ },
+ "parentId": "668014ea2b680c65290bbd08",
+ "slotId": "main"
+ },
+ {
+ "_id": "668014ea2b680c65290bbd5a",
+ "_tpl": "5e8488fa988a8701445df1e4",
+ "upd": {
+ "StackObjectsCount": 1
+ },
+ "parentId": "668014ea2b680c65290bbd08",
+ "slotId": "main"
+ },
+ {
+ "_id": "668014ea2b680c65290bbd5b",
+ "_tpl": "5e8488fa988a8701445df1e4",
+ "upd": {
+ "StackObjectsCount": 1
+ },
+ "parentId": "668014ea2b680c65290bbd08",
+ "slotId": "main"
+ },
+ {
+ "_id": "668014ea2b680c65290bbd5c",
+ "_tpl": "5e8488fa988a8701445df1e4",
+ "upd": {
+ "StackObjectsCount": 1
+ },
+ "parentId": "668014ea2b680c65290bbd08",
+ "slotId": "main"
+ },
+ {
+ "_id": "668014ea2b680c65290bbd5d",
+ "_tpl": "5e8488fa988a8701445df1e4",
+ "upd": {
+ "StackObjectsCount": 1
+ },
+ "parentId": "668014ea2b680c65290bbd08",
+ "slotId": "main"
+ },
+ {
+ "_id": "668014ea2b680c65290bbd5e",
+ "_tpl": "5e8488fa988a8701445df1e4",
+ "upd": {
+ "StackObjectsCount": 1
+ },
+ "parentId": "668014ea2b680c65290bbd08",
+ "slotId": "main"
+ },
+ {
+ "_id": "668014ea2b680c65290bbd5f",
+ "_tpl": "5e8488fa988a8701445df1e4",
+ "upd": {
+ "StackObjectsCount": 1
+ },
+ "parentId": "668014ea2b680c65290bbd08",
+ "slotId": "main"
+ },
+ {
+ "_id": "668014ea2b680c65290bbd60",
+ "_tpl": "5e8488fa988a8701445df1e4",
+ "upd": {
+ "StackObjectsCount": 1
+ },
+ "parentId": "668014ea2b680c65290bbd08",
+ "slotId": "main"
+ },
+ {
+ "_id": "668014ea2b680c65290bbd62",
+ "_tpl": "5af0548586f7743a532b7e99",
+ "upd": {
+ "StackObjectsCount": 1
+ },
+ "parentId": "668014ea2b680c65290bbd08",
+ "slotId": "main"
+ },
+ {
+ "_id": "668014ea2b680c65290bbd63",
+ "_tpl": "5af0548586f7743a532b7e99",
+ "upd": {
+ "StackObjectsCount": 1
+ },
+ "parentId": "668014ea2b680c65290bbd08",
+ "slotId": "main"
+ },
+ {
+ "_id": "668014ea2b680c65290bbd64",
+ "_tpl": "5af0548586f7743a532b7e99",
+ "upd": {
+ "StackObjectsCount": 1
+ },
+ "parentId": "668014ea2b680c65290bbd08",
+ "slotId": "main"
+ },
+ {
+ "_id": "668014ea2b680c65290bbd65",
+ "_tpl": "5af0548586f7743a532b7e99",
+ "upd": {
+ "StackObjectsCount": 1
+ },
+ "parentId": "668014ea2b680c65290bbd08",
+ "slotId": "main"
+ },
+ {
+ "_id": "668014ea2b680c65290bbd66",
+ "_tpl": "5af0548586f7743a532b7e99",
+ "upd": {
+ "StackObjectsCount": 1
+ },
+ "parentId": "668014ea2b680c65290bbd08",
+ "slotId": "main"
+ },
+ {
+ "_id": "668014ea2b680c65290bbd67",
+ "_tpl": "5af0548586f7743a532b7e99",
+ "upd": {
+ "StackObjectsCount": 1
+ },
+ "parentId": "668014ea2b680c65290bbd08",
+ "slotId": "main"
+ },
+ {
+ "_id": "668014ea2b680c65290bbd69",
+ "_tpl": "5c0e534186f7747fa1419867",
+ "upd": {
+ "StackObjectsCount": 1
+ },
+ "parentId": "668014ea2b680c65290bbd08",
+ "slotId": "main"
+ },
+ {
+ "_id": "668014ea2b680c65290bbd6a",
+ "_tpl": "5c0e534186f7747fa1419867",
+ "upd": {
+ "StackObjectsCount": 1
+ },
+ "parentId": "668014ea2b680c65290bbd08",
+ "slotId": "main"
+ },
+ {
+ "_id": "668014ea2b680c65290bbd6b",
+ "_tpl": "5c0e534186f7747fa1419867",
+ "upd": {
+ "StackObjectsCount": 1
+ },
+ "parentId": "668014ea2b680c65290bbd08",
+ "slotId": "main"
+ },
+ {
+ "_id": "668014ea2b680c65290bbd6c",
+ "_tpl": "5c0e534186f7747fa1419867",
+ "upd": {
+ "StackObjectsCount": 1
+ },
+ "parentId": "668014ea2b680c65290bbd08",
+ "slotId": "main"
+ },
+ {
+ "_id": "668014ea2b680c65290bbd6d",
+ "_tpl": "5c0e534186f7747fa1419867",
+ "upd": {
+ "StackObjectsCount": 1
+ },
+ "parentId": "668014ea2b680c65290bbd08",
+ "slotId": "main"
+ },
+ {
+ "_id": "668014ea2b680c65290bbd6e",
+ "_tpl": "5c0e534186f7747fa1419867",
+ "upd": {
+ "StackObjectsCount": 1
+ },
+ "parentId": "668014ea2b680c65290bbd08",
+ "slotId": "main"
+ },
+ {
+ "_id": "668014ea2b680c65290bbd6f",
+ "_tpl": "5c0e534186f7747fa1419867",
+ "upd": {
+ "StackObjectsCount": 1
+ },
+ "parentId": "668014ea2b680c65290bbd08",
+ "slotId": "main"
+ },
+ {
+ "_id": "668014ea2b680c65290bbd70",
+ "_tpl": "5c0e534186f7747fa1419867",
+ "upd": {
+ "StackObjectsCount": 1
+ },
+ "parentId": "668014ea2b680c65290bbd08",
+ "slotId": "main"
+ },
+ {
+ "_id": "668014ea2b680c65290bbd71",
+ "_tpl": "5c0e534186f7747fa1419867",
+ "upd": {
+ "StackObjectsCount": 1
+ },
+ "parentId": "668014ea2b680c65290bbd08",
+ "slotId": "main"
+ },
+ {
+ "_id": "668014ea2b680c65290bbd72",
+ "_tpl": "5c0e534186f7747fa1419867",
+ "upd": {
+ "StackObjectsCount": 1
+ },
+ "parentId": "668014ea2b680c65290bbd08",
+ "slotId": "main"
+ },
+ {
+ "_id": "668014ea2b680c65290bbd73",
+ "_tpl": "5c0e534186f7747fa1419867",
+ "upd": {
+ "StackObjectsCount": 1
+ },
+ "parentId": "668014ea2b680c65290bbd08",
+ "slotId": "main"
+ },
+ {
+ "_id": "668014ea2b680c65290bbd74",
+ "_tpl": "5c0e534186f7747fa1419867",
+ "upd": {
+ "StackObjectsCount": 1
+ },
+ "parentId": "668014ea2b680c65290bbd08",
+ "slotId": "main"
+ },
+ {
+ "_id": "668014ea2b680c65290bbd75",
+ "_tpl": "5c0e534186f7747fa1419867",
+ "upd": {
+ "StackObjectsCount": 1
+ },
+ "parentId": "668014ea2b680c65290bbd08",
+ "slotId": "main"
+ },
+ {
+ "_id": "668014ea2b680c65290bbd76",
+ "_tpl": "5c0e534186f7747fa1419867",
+ "upd": {
+ "StackObjectsCount": 1
+ },
+ "parentId": "668014ea2b680c65290bbd08",
+ "slotId": "main"
+ },
+ {
+ "_id": "668014ea2b680c65290bbd77",
+ "_tpl": "5c0e534186f7747fa1419867",
+ "upd": {
+ "StackObjectsCount": 1
+ },
+ "parentId": "668014ea2b680c65290bbd08",
+ "slotId": "main"
+ },
+ {
+ "_id": "668014ea2b680c65290bbd78",
+ "_tpl": "5c0e534186f7747fa1419867",
+ "upd": {
+ "StackObjectsCount": 1
+ },
+ "parentId": "668014ea2b680c65290bbd08",
+ "slotId": "main"
+ },
+ {
+ "_id": "668014ea2b680c65290bbd79",
+ "_tpl": "5c0e534186f7747fa1419867",
+ "upd": {
+ "StackObjectsCount": 1
+ },
+ "parentId": "668014ea2b680c65290bbd08",
+ "slotId": "main"
+ },
+ {
+ "_id": "668014ea2b680c65290bbd7a",
+ "_tpl": "5c0e534186f7747fa1419867",
+ "upd": {
+ "StackObjectsCount": 1
+ },
+ "parentId": "668014ea2b680c65290bbd08",
+ "slotId": "main"
+ },
+ {
+ "_id": "668014ea2b680c65290bbd7b",
+ "_tpl": "5c0e534186f7747fa1419867",
+ "upd": {
+ "StackObjectsCount": 1
+ },
+ "parentId": "668014ea2b680c65290bbd08",
+ "slotId": "main"
+ },
+ {
+ "_id": "668014ea2b680c65290bbd7c",
+ "_tpl": "5c0e534186f7747fa1419867",
+ "upd": {
+ "StackObjectsCount": 1
+ },
+ "parentId": "668014ea2b680c65290bbd08",
+ "slotId": "main"
+ },
+ {
+ "_id": "668014ea2b680c65290bbd7e",
+ "_tpl": "637b620db7afa97bfc3d7009",
+ "upd": {
+ "StackObjectsCount": 1
+ },
+ "parentId": "668014ea2b680c65290bbd08",
+ "slotId": "main"
+ },
+ {
+ "_id": "668014ea2b680c65290bbd7f",
+ "_tpl": "637b620db7afa97bfc3d7009",
+ "upd": {
+ "StackObjectsCount": 1
+ },
+ "parentId": "668014ea2b680c65290bbd08",
+ "slotId": "main"
+ },
+ {
+ "_id": "668014ea2b680c65290bbd80",
+ "_tpl": "637b620db7afa97bfc3d7009",
+ "upd": {
+ "StackObjectsCount": 1
+ },
+ "parentId": "668014ea2b680c65290bbd08",
+ "slotId": "main"
+ },
+ {
+ "_id": "668014ea2b680c65290bbd81",
+ "_tpl": "637b620db7afa97bfc3d7009",
+ "upd": {
+ "StackObjectsCount": 1
+ },
+ "parentId": "668014ea2b680c65290bbd08",
+ "slotId": "main"
+ },
+ {
+ "_id": "668014ea2b680c65290bbd82",
+ "_tpl": "637b620db7afa97bfc3d7009",
+ "upd": {
+ "StackObjectsCount": 1
+ },
+ "parentId": "668014ea2b680c65290bbd08",
+ "slotId": "main"
+ },
+ {
+ "_id": "668014ea2b680c65290bbd83",
+ "_tpl": "637b620db7afa97bfc3d7009",
+ "upd": {
+ "StackObjectsCount": 1
+ },
+ "parentId": "668014ea2b680c65290bbd08",
+ "slotId": "main"
+ },
+ {
+ "_id": "668014ea2b680c65290bbd84",
+ "_tpl": "637b620db7afa97bfc3d7009",
+ "upd": {
+ "StackObjectsCount": 1
+ },
+ "parentId": "668014ea2b680c65290bbd08",
+ "slotId": "main"
+ },
+ {
+ "_id": "668014ea2b680c65290bbd85",
+ "_tpl": "637b620db7afa97bfc3d7009",
+ "upd": {
+ "StackObjectsCount": 1
+ },
+ "parentId": "668014ea2b680c65290bbd08",
+ "slotId": "main"
+ },
+ {
+ "_id": "668014ea2b680c65290bbd86",
+ "_tpl": "637b620db7afa97bfc3d7009",
+ "upd": {
+ "StackObjectsCount": 1
+ },
+ "parentId": "668014ea2b680c65290bbd08",
+ "slotId": "main"
+ },
+ {
+ "_id": "668014ea2b680c65290bbd87",
+ "_tpl": "637b620db7afa97bfc3d7009",
+ "upd": {
+ "StackObjectsCount": 1
+ },
+ "parentId": "668014ea2b680c65290bbd08",
+ "slotId": "main"
+ },
+ {
+ "_id": "668014ea2b680c65290bbd88",
+ "_tpl": "637b620db7afa97bfc3d7009",
+ "upd": {
+ "StackObjectsCount": 1
+ },
+ "parentId": "668014ea2b680c65290bbd08",
+ "slotId": "main"
+ },
+ {
+ "_id": "668014ea2b680c65290bbd89",
+ "_tpl": "637b620db7afa97bfc3d7009",
+ "upd": {
+ "StackObjectsCount": 1
+ },
+ "parentId": "668014ea2b680c65290bbd08",
+ "slotId": "main"
+ },
+ {
+ "_id": "668014ea2b680c65290bbd8a",
+ "_tpl": "637b620db7afa97bfc3d7009",
+ "upd": {
+ "StackObjectsCount": 1
+ },
+ "parentId": "668014ea2b680c65290bbd08",
+ "slotId": "main"
+ },
+ {
+ "_id": "668014ea2b680c65290bbd8b",
+ "_tpl": "637b620db7afa97bfc3d7009",
+ "upd": {
+ "StackObjectsCount": 1
+ },
+ "parentId": "668014ea2b680c65290bbd08",
+ "slotId": "main"
+ },
+ {
+ "_id": "668014ea2b680c65290bbd8c",
+ "_tpl": "637b620db7afa97bfc3d7009",
+ "upd": {
+ "StackObjectsCount": 1
+ },
+ "parentId": "668014ea2b680c65290bbd08",
+ "slotId": "main"
+ },
+ {
+ "_id": "668014ea2b680c65290bbd8d",
+ "_tpl": "637b620db7afa97bfc3d7009",
+ "upd": {
+ "StackObjectsCount": 1
+ },
+ "parentId": "668014ea2b680c65290bbd08",
+ "slotId": "main"
+ },
+ {
+ "_id": "668014ea2b680c65290bbd8e",
+ "_tpl": "637b620db7afa97bfc3d7009",
+ "upd": {
+ "StackObjectsCount": 1
+ },
+ "parentId": "668014ea2b680c65290bbd08",
+ "slotId": "main"
+ },
+ {
+ "_id": "668014ea2b680c65290bbd8f",
+ "_tpl": "637b620db7afa97bfc3d7009",
+ "upd": {
+ "StackObjectsCount": 1
+ },
+ "parentId": "668014ea2b680c65290bbd08",
+ "slotId": "main"
+ },
+ {
+ "_id": "668014ea2b680c65290bbd90",
+ "_tpl": "637b620db7afa97bfc3d7009",
+ "upd": {
+ "StackObjectsCount": 1
+ },
+ "parentId": "668014ea2b680c65290bbd08",
+ "slotId": "main"
+ },
+ {
+ "_id": "668014ea2b680c65290bbd91",
+ "_tpl": "637b620db7afa97bfc3d7009",
+ "upd": {
+ "StackObjectsCount": 1
+ },
+ "parentId": "668014ea2b680c65290bbd08",
+ "slotId": "main"
+ },
+ {
+ "_id": "668014ea2b680c65290bbd93",
+ "_tpl": "5d02778e86f774203e7dedbe",
+ "upd": {
+ "StackObjectsCount": 1
+ },
+ "parentId": "668014ea2b680c65290bbd08",
+ "slotId": "main"
+ },
+ {
+ "_id": "668014ea2b680c65290bbd94",
+ "_tpl": "5d02778e86f774203e7dedbe",
+ "upd": {
+ "StackObjectsCount": 1
+ },
+ "parentId": "668014ea2b680c65290bbd08",
+ "slotId": "main"
+ },
+ {
+ "_id": "668014ea2b680c65290bbd95",
+ "_tpl": "5d02778e86f774203e7dedbe",
+ "upd": {
+ "StackObjectsCount": 1
+ },
+ "parentId": "668014ea2b680c65290bbd08",
+ "slotId": "main"
+ },
+ {
+ "_id": "668014ea2b680c65290bbd96",
+ "_tpl": "5d02778e86f774203e7dedbe",
+ "upd": {
+ "StackObjectsCount": 1
+ },
+ "parentId": "668014ea2b680c65290bbd08",
+ "slotId": "main"
+ },
+ {
+ "_id": "668014ea2b680c65290bbd97",
+ "_tpl": "5d02778e86f774203e7dedbe",
+ "upd": {
+ "StackObjectsCount": 1
+ },
+ "parentId": "668014ea2b680c65290bbd08",
+ "slotId": "main"
+ },
+ {
+ "_id": "668014ea2b680c65290bbd99",
+ "_tpl": "5d02797c86f774203f38e30a",
+ "upd": {
+ "StackObjectsCount": 1
+ },
+ "parentId": "668014ea2b680c65290bbd08",
+ "slotId": "main"
+ },
+ {
+ "_id": "668014ea2b680c65290bbd9a",
+ "_tpl": "5d02797c86f774203f38e30a",
+ "upd": {
+ "StackObjectsCount": 1
+ },
+ "parentId": "668014ea2b680c65290bbd08",
+ "slotId": "main"
+ },
+ {
+ "_id": "668014ea2b680c65290bbd9b",
+ "_tpl": "5d02797c86f774203f38e30a",
+ "upd": {
+ "StackObjectsCount": 1
+ },
+ "parentId": "668014ea2b680c65290bbd08",
+ "slotId": "main"
+ },
+ {
+ "_id": "668014ea2b680c65290bbd9c",
+ "_tpl": "5d02797c86f774203f38e30a",
+ "upd": {
+ "StackObjectsCount": 1
+ },
+ "parentId": "668014ea2b680c65290bbd08",
+ "slotId": "main"
+ },
+ {
+ "_id": "668014ea2b680c65290bbd9d",
+ "_tpl": "5d02797c86f774203f38e30a",
+ "upd": {
+ "StackObjectsCount": 1
+ },
+ "parentId": "668014ea2b680c65290bbd08",
+ "slotId": "main"
+ },
+ {
+ "_id": "668014ea2b680c65290bbd9f",
+ "_tpl": "5b3b99265acfc4704b4a1afb",
+ "upd": {
+ "StackObjectsCount": 1
+ },
+ "parentId": "668014ea2b680c65290bbd08",
+ "slotId": "main"
+ },
+ {
+ "_id": "668014ea2b680c65290bbda0",
+ "_tpl": "5b3b99265acfc4704b4a1afb",
+ "upd": {
+ "StackObjectsCount": 1
+ },
+ "parentId": "668014ea2b680c65290bbd08",
+ "slotId": "main"
+ },
+ {
+ "_id": "668014ea2b680c65290bbda1",
+ "_tpl": "5b3b99265acfc4704b4a1afb",
+ "upd": {
+ "StackObjectsCount": 1
+ },
+ "parentId": "668014ea2b680c65290bbd08",
+ "slotId": "main"
+ },
+ {
+ "_id": "668014ea2b680c65290bbda2",
+ "_tpl": "5b3b99265acfc4704b4a1afb",
+ "upd": {
+ "StackObjectsCount": 1
+ },
+ "parentId": "668014ea2b680c65290bbd08",
+ "slotId": "main"
+ },
+ {
+ "_id": "668014ea2b680c65290bbda3",
+ "_tpl": "5b3b99265acfc4704b4a1afb",
+ "upd": {
+ "StackObjectsCount": 1
+ },
+ "parentId": "668014ea2b680c65290bbd08",
+ "slotId": "main"
+ },
+ {
+ "_id": "668014ea2b680c65290bbda4",
+ "_tpl": "5b3b99265acfc4704b4a1afb",
+ "upd": {
+ "StackObjectsCount": 1
+ },
+ "parentId": "668014ea2b680c65290bbd08",
+ "slotId": "main"
+ },
+ {
+ "_id": "668014ea2b680c65290bbda5",
+ "_tpl": "5b3b99265acfc4704b4a1afb",
+ "upd": {
+ "StackObjectsCount": 1
+ },
+ "parentId": "668014ea2b680c65290bbd08",
+ "slotId": "main"
+ },
+ {
+ "_id": "668014ea2b680c65290bbda6",
+ "_tpl": "5b3b99265acfc4704b4a1afb",
+ "upd": {
+ "StackObjectsCount": 1
+ },
+ "parentId": "668014ea2b680c65290bbd08",
+ "slotId": "main"
+ },
+ {
+ "_id": "668014ea2b680c65290bbda7",
+ "_tpl": "5b3b99265acfc4704b4a1afb",
+ "upd": {
+ "StackObjectsCount": 1
+ },
+ "parentId": "668014ea2b680c65290bbd08",
+ "slotId": "main"
+ },
+ {
+ "_id": "668014ea2b680c65290bbda8",
+ "_tpl": "5b3b99265acfc4704b4a1afb",
+ "upd": {
+ "StackObjectsCount": 1
+ },
+ "parentId": "668014ea2b680c65290bbd08",
+ "slotId": "main"
+ },
+ {
+ "_id": "668014ea2b680c65290bbda9",
+ "_tpl": "5b3b99265acfc4704b4a1afb",
+ "upd": {
+ "StackObjectsCount": 1
+ },
+ "parentId": "668014ea2b680c65290bbd08",
+ "slotId": "main"
+ },
+ {
+ "_id": "668014ea2b680c65290bbdaa",
+ "_tpl": "5b3b99265acfc4704b4a1afb",
+ "upd": {
+ "StackObjectsCount": 1
+ },
+ "parentId": "668014ea2b680c65290bbd08",
+ "slotId": "main"
+ },
+ {
+ "_id": "668014ea2b680c65290bbdac",
+ "_tpl": "618ba27d9008e4636a67f61d",
+ "upd": {
+ "StackObjectsCount": 1
+ },
+ "parentId": "668014ea2b680c65290bbd08",
+ "slotId": "main"
+ },
+ {
+ "_id": "668014ea2b680c65290bbdad",
+ "_tpl": "618ba27d9008e4636a67f61d",
+ "upd": {
+ "StackObjectsCount": 1
+ },
+ "parentId": "668014ea2b680c65290bbd08",
+ "slotId": "main"
+ },
+ {
+ "_id": "668014ea2b680c65290bbdae",
+ "_tpl": "618ba27d9008e4636a67f61d",
+ "upd": {
+ "StackObjectsCount": 1
+ },
+ "parentId": "668014ea2b680c65290bbd08",
+ "slotId": "main"
+ },
+ {
+ "_id": "668014ea2b680c65290bbdaf",
+ "_tpl": "618ba27d9008e4636a67f61d",
+ "upd": {
+ "StackObjectsCount": 1
+ },
+ "parentId": "668014ea2b680c65290bbd08",
+ "slotId": "main"
+ },
+ {
+ "_id": "668014ea2b680c65290bbdb0",
+ "_tpl": "618ba27d9008e4636a67f61d",
+ "upd": {
+ "StackObjectsCount": 1
+ },
+ "parentId": "668014ea2b680c65290bbd08",
+ "slotId": "main"
+ },
+ {
+ "_id": "668014ea2b680c65290bbdb1",
+ "_tpl": "618ba27d9008e4636a67f61d",
+ "upd": {
+ "StackObjectsCount": 1
+ },
+ "parentId": "668014ea2b680c65290bbd08",
+ "slotId": "main"
+ },
+ {
+ "_id": "668014ea2b680c65290bbdb2",
+ "_tpl": "618ba27d9008e4636a67f61d",
+ "upd": {
+ "StackObjectsCount": 1
+ },
+ "parentId": "668014ea2b680c65290bbd08",
+ "slotId": "main"
+ },
+ {
+ "_id": "668014ea2b680c65290bbdb3",
+ "_tpl": "618ba27d9008e4636a67f61d",
+ "upd": {
+ "StackObjectsCount": 1
+ },
+ "parentId": "668014ea2b680c65290bbd08",
+ "slotId": "main"
+ },
+ {
+ "_id": "668014ea2b680c65290bbdb4",
+ "_tpl": "618ba27d9008e4636a67f61d",
+ "upd": {
+ "StackObjectsCount": 1
+ },
+ "parentId": "668014ea2b680c65290bbd08",
+ "slotId": "main"
+ },
+ {
+ "_id": "668014ea2b680c65290bbdb5",
+ "_tpl": "618ba27d9008e4636a67f61d",
+ "upd": {
+ "StackObjectsCount": 1
+ },
+ "parentId": "668014ea2b680c65290bbd08",
+ "slotId": "main"
+ },
+ {
+ "_id": "668014ea2b680c65290bbdb6",
+ "_tpl": "618ba27d9008e4636a67f61d",
+ "upd": {
+ "StackObjectsCount": 1
+ },
+ "parentId": "668014ea2b680c65290bbd08",
+ "slotId": "main"
+ },
+ {
+ "_id": "668014ea2b680c65290bbdb7",
+ "_tpl": "618ba27d9008e4636a67f61d",
+ "upd": {
+ "StackObjectsCount": 1
+ },
+ "parentId": "668014ea2b680c65290bbd08",
+ "slotId": "main"
+ },
+ {
+ "_id": "668014ea2b680c65290bbdb9",
+ "_tpl": "617151c1d92c473c770214ab",
+ "upd": {
+ "StackObjectsCount": 1
+ },
+ "parentId": "668014ea2b680c65290bbd08",
+ "slotId": "main"
+ },
+ {
+ "_id": "668014ea2b680c65290bbdba",
+ "_tpl": "617151c1d92c473c770214ab",
+ "upd": {
+ "StackObjectsCount": 1
+ },
+ "parentId": "668014ea2b680c65290bbd08",
+ "slotId": "main"
+ },
+ {
+ "_id": "668014ea2b680c65290bbdbb",
+ "_tpl": "617151c1d92c473c770214ab",
+ "upd": {
+ "StackObjectsCount": 1
+ },
+ "parentId": "668014ea2b680c65290bbd08",
+ "slotId": "main"
+ },
+ {
+ "_id": "668014ea2b680c65290bbdbc",
+ "_tpl": "617151c1d92c473c770214ab",
+ "upd": {
+ "StackObjectsCount": 1
+ },
+ "parentId": "668014ea2b680c65290bbd08",
+ "slotId": "main"
+ },
+ {
+ "_id": "668014ea2b680c65290bbdbd",
+ "_tpl": "617151c1d92c473c770214ab",
+ "upd": {
+ "StackObjectsCount": 1
+ },
+ "parentId": "668014ea2b680c65290bbd08",
+ "slotId": "main"
+ },
+ {
+ "_id": "668014ea2b680c65290bbdbe",
+ "_tpl": "617151c1d92c473c770214ab",
+ "upd": {
+ "StackObjectsCount": 1
+ },
+ "parentId": "668014ea2b680c65290bbd08",
+ "slotId": "main"
+ },
+ {
+ "_id": "668014ea2b680c65290bbdbf",
+ "_tpl": "617151c1d92c473c770214ab",
+ "upd": {
+ "StackObjectsCount": 1
+ },
+ "parentId": "668014ea2b680c65290bbd08",
+ "slotId": "main"
+ },
+ {
+ "_id": "668014ea2b680c65290bbdc0",
+ "_tpl": "617151c1d92c473c770214ab",
+ "upd": {
+ "StackObjectsCount": 1
+ },
+ "parentId": "668014ea2b680c65290bbd08",
+ "slotId": "main"
+ },
+ {
+ "_id": "668014ea2b680c65290bbdc1",
+ "_tpl": "617151c1d92c473c770214ab",
+ "upd": {
+ "StackObjectsCount": 1
+ },
+ "parentId": "668014ea2b680c65290bbd08",
+ "slotId": "main"
+ },
+ {
+ "_id": "668014ea2b680c65290bbdc2",
+ "_tpl": "617151c1d92c473c770214ab",
+ "upd": {
+ "StackObjectsCount": 1
+ },
+ "parentId": "668014ea2b680c65290bbd08",
+ "slotId": "main"
+ },
+ {
+ "_id": "668014ea2b680c65290bbdc3",
+ "_tpl": "617151c1d92c473c770214ab",
+ "upd": {
+ "StackObjectsCount": 1
+ },
+ "parentId": "668014ea2b680c65290bbd08",
+ "slotId": "main"
+ },
+ {
+ "_id": "668014ea2b680c65290bbdc4",
+ "_tpl": "617151c1d92c473c770214ab",
+ "upd": {
+ "StackObjectsCount": 1
+ },
+ "parentId": "668014ea2b680c65290bbd08",
+ "slotId": "main"
+ },
+ {
+ "_id": "668014ea2b680c65290bbdc9",
+ "_tpl": "5bfea6e90db834001b7347f3",
+ "upd": {
+ "FireMode": {
+ "FireMode": "single"
+ },
+ "StackObjectsCount": 1
+ },
+ "parentId": "668014ea2b680c65290bbd08",
+ "slotId": "main"
+ },
+ {
+ "_id": "668014ea2b680c65290bbdca",
+ "_tpl": "5bfea7ad0db834001c38f1ee",
+ "parentId": "668014ea2b680c65290bbdc9",
+ "slotId": "mod_magazine"
+ },
+ {
+ "_id": "668014ea2b680c65290bbdcb",
+ "_tpl": "5bfeb32b0db834001a6694d9",
+ "parentId": "668014ea2b680c65290bbdc9",
+ "slotId": "mod_stock"
+ },
+ {
+ "_id": "668014ea2b680c65290bbdcc",
+ "_tpl": "5bfebc320db8340019668d79",
+ "parentId": "668014ea2b680c65290bbdc9",
+ "slotId": "mod_barrel"
+ },
+ {
+ "_id": "668014ea2b680c65290bbdcd",
+ "_tpl": "5bfea6e90db834001b7347f3",
+ "upd": {
+ "FireMode": {
+ "FireMode": "single"
+ },
+ "StackObjectsCount": 1
+ },
+ "parentId": "668014ea2b680c65290bbd08",
+ "slotId": "main"
+ },
+ {
+ "_id": "668014ea2b680c65290bbdce",
+ "_tpl": "5bfea7ad0db834001c38f1ee",
+ "parentId": "668014ea2b680c65290bbdcd",
+ "slotId": "mod_magazine"
+ },
+ {
+ "_id": "668014ea2b680c65290bbdcf",
+ "_tpl": "5bfeb32b0db834001a6694d9",
+ "parentId": "668014ea2b680c65290bbdcd",
+ "slotId": "mod_stock"
+ },
+ {
+ "_id": "668014ea2b680c65290bbdd0",
+ "_tpl": "5bfebc320db8340019668d79",
+ "parentId": "668014ea2b680c65290bbdcd",
+ "slotId": "mod_barrel"
+ },
+ {
+ "_id": "668014ea2b680c65290bbdd1",
+ "_tpl": "5bfea6e90db834001b7347f3",
+ "upd": {
+ "FireMode": {
+ "FireMode": "single"
+ },
+ "StackObjectsCount": 1
+ },
+ "parentId": "668014ea2b680c65290bbd08",
+ "slotId": "main"
+ },
+ {
+ "_id": "668014ea2b680c65290bbdd2",
+ "_tpl": "5bfea7ad0db834001c38f1ee",
+ "parentId": "668014ea2b680c65290bbdd1",
+ "slotId": "mod_magazine"
+ },
+ {
+ "_id": "668014ea2b680c65290bbdd3",
+ "_tpl": "5bfeb32b0db834001a6694d9",
+ "parentId": "668014ea2b680c65290bbdd1",
+ "slotId": "mod_stock"
+ },
+ {
+ "_id": "668014ea2b680c65290bbdd4",
+ "_tpl": "5bfebc320db8340019668d79",
+ "parentId": "668014ea2b680c65290bbdd1",
+ "slotId": "mod_barrel"
+ },
+ {
+ "_id": "668014ea2b680c65290bbdd5",
+ "_tpl": "5bfea6e90db834001b7347f3",
+ "upd": {
+ "FireMode": {
+ "FireMode": "single"
+ },
+ "StackObjectsCount": 1
+ },
+ "parentId": "668014ea2b680c65290bbd08",
+ "slotId": "main"
+ },
+ {
+ "_id": "668014ea2b680c65290bbdd6",
+ "_tpl": "5bfea7ad0db834001c38f1ee",
+ "parentId": "668014ea2b680c65290bbdd5",
+ "slotId": "mod_magazine"
+ },
+ {
+ "_id": "668014ea2b680c65290bbdd7",
+ "_tpl": "5bfeb32b0db834001a6694d9",
+ "parentId": "668014ea2b680c65290bbdd5",
+ "slotId": "mod_stock"
+ },
+ {
+ "_id": "668014ea2b680c65290bbdd8",
+ "_tpl": "5bfebc320db8340019668d79",
+ "parentId": "668014ea2b680c65290bbdd5",
+ "slotId": "mod_barrel"
+ },
+ {
+ "_id": "668014ea2b680c65290bbdd9",
+ "_tpl": "5bfea6e90db834001b7347f3",
+ "upd": {
+ "FireMode": {
+ "FireMode": "single"
+ },
+ "StackObjectsCount": 1
+ },
+ "parentId": "668014ea2b680c65290bbd08",
+ "slotId": "main"
+ },
+ {
+ "_id": "668014ea2b680c65290bbdda",
+ "_tpl": "5bfea7ad0db834001c38f1ee",
+ "parentId": "668014ea2b680c65290bbdd9",
+ "slotId": "mod_magazine"
+ },
+ {
+ "_id": "668014ea2b680c65290bbddb",
+ "_tpl": "5bfeb32b0db834001a6694d9",
+ "parentId": "668014ea2b680c65290bbdd9",
+ "slotId": "mod_stock"
+ },
+ {
+ "_id": "668014ea2b680c65290bbddc",
+ "_tpl": "5bfebc320db8340019668d79",
+ "parentId": "668014ea2b680c65290bbdd9",
+ "slotId": "mod_barrel"
+ },
+ {
+ "_id": "668014ea2b680c65290bbddd",
+ "_tpl": "5bfea6e90db834001b7347f3",
+ "upd": {
+ "FireMode": {
+ "FireMode": "single"
+ },
+ "StackObjectsCount": 1
+ },
+ "parentId": "668014ea2b680c65290bbd08",
+ "slotId": "main"
+ },
+ {
+ "_id": "668014ea2b680c65290bbdde",
+ "_tpl": "5bfea7ad0db834001c38f1ee",
+ "parentId": "668014ea2b680c65290bbddd",
+ "slotId": "mod_magazine"
+ },
+ {
+ "_id": "668014ea2b680c65290bbddf",
+ "_tpl": "5bfeb32b0db834001a6694d9",
+ "parentId": "668014ea2b680c65290bbddd",
+ "slotId": "mod_stock"
+ },
+ {
+ "_id": "668014ea2b680c65290bbde0",
+ "_tpl": "5bfebc320db8340019668d79",
+ "parentId": "668014ea2b680c65290bbddd",
+ "slotId": "mod_barrel"
+ },
+ {
+ "_id": "668014ea2b680c65290bbde1",
+ "_tpl": "5bfea6e90db834001b7347f3",
+ "upd": {
+ "FireMode": {
+ "FireMode": "single"
+ },
+ "StackObjectsCount": 1
+ },
+ "parentId": "668014ea2b680c65290bbd08",
+ "slotId": "main"
+ },
+ {
+ "_id": "668014ea2b680c65290bbde2",
+ "_tpl": "5bfea7ad0db834001c38f1ee",
+ "parentId": "668014ea2b680c65290bbde1",
+ "slotId": "mod_magazine"
+ },
+ {
+ "_id": "668014ea2b680c65290bbde3",
+ "_tpl": "5bfeb32b0db834001a6694d9",
+ "parentId": "668014ea2b680c65290bbde1",
+ "slotId": "mod_stock"
+ },
+ {
+ "_id": "668014ea2b680c65290bbde4",
+ "_tpl": "5bfebc320db8340019668d79",
+ "parentId": "668014ea2b680c65290bbde1",
+ "slotId": "mod_barrel"
+ },
+ {
+ "_id": "668014ea2b680c65290bbde5",
+ "_tpl": "5bfea6e90db834001b7347f3",
+ "upd": {
+ "FireMode": {
+ "FireMode": "single"
+ },
+ "StackObjectsCount": 1
+ },
+ "parentId": "668014ea2b680c65290bbd08",
+ "slotId": "main"
+ },
+ {
+ "_id": "668014ea2b680c65290bbde6",
+ "_tpl": "5bfea7ad0db834001c38f1ee",
+ "parentId": "668014ea2b680c65290bbde5",
+ "slotId": "mod_magazine"
+ },
+ {
+ "_id": "668014ea2b680c65290bbde7",
+ "_tpl": "5bfeb32b0db834001a6694d9",
+ "parentId": "668014ea2b680c65290bbde5",
+ "slotId": "mod_stock"
+ },
+ {
+ "_id": "668014ea2b680c65290bbde8",
+ "_tpl": "5bfebc320db8340019668d79",
+ "parentId": "668014ea2b680c65290bbde5",
+ "slotId": "mod_barrel"
+ },
+ {
+ "_id": "668014ea2b680c65290bbde9",
+ "_tpl": "5bfea6e90db834001b7347f3",
+ "upd": {
+ "FireMode": {
+ "FireMode": "single"
+ },
+ "StackObjectsCount": 1
+ },
+ "parentId": "668014ea2b680c65290bbd08",
+ "slotId": "main"
+ },
+ {
+ "_id": "668014ea2b680c65290bbdea",
+ "_tpl": "5bfea7ad0db834001c38f1ee",
+ "parentId": "668014ea2b680c65290bbde9",
+ "slotId": "mod_magazine"
+ },
+ {
+ "_id": "668014ea2b680c65290bbdeb",
+ "_tpl": "5bfeb32b0db834001a6694d9",
+ "parentId": "668014ea2b680c65290bbde9",
+ "slotId": "mod_stock"
+ },
+ {
+ "_id": "668014ea2b680c65290bbdec",
+ "_tpl": "5bfebc320db8340019668d79",
+ "parentId": "668014ea2b680c65290bbde9",
+ "slotId": "mod_barrel"
+ },
+ {
+ "_id": "668014ea2b680c65290bbded",
+ "_tpl": "5bfea6e90db834001b7347f3",
+ "upd": {
+ "FireMode": {
+ "FireMode": "single"
+ },
+ "StackObjectsCount": 1
+ },
+ "parentId": "668014ea2b680c65290bbd08",
+ "slotId": "main"
+ },
+ {
+ "_id": "668014ea2b680c65290bbdee",
+ "_tpl": "5bfea7ad0db834001c38f1ee",
+ "parentId": "668014ea2b680c65290bbded",
+ "slotId": "mod_magazine"
+ },
+ {
+ "_id": "668014ea2b680c65290bbdef",
+ "_tpl": "5bfeb32b0db834001a6694d9",
+ "parentId": "668014ea2b680c65290bbded",
+ "slotId": "mod_stock"
+ },
+ {
+ "_id": "668014ea2b680c65290bbdf0",
+ "_tpl": "5bfebc320db8340019668d79",
+ "parentId": "668014ea2b680c65290bbded",
+ "slotId": "mod_barrel"
+ },
+ {
+ "_id": "668014ea2b680c65290bbdf1",
+ "_tpl": "5bfea6e90db834001b7347f3",
+ "upd": {
+ "FireMode": {
+ "FireMode": "single"
+ },
+ "StackObjectsCount": 1
+ },
+ "parentId": "668014ea2b680c65290bbd08",
+ "slotId": "main"
+ },
+ {
+ "_id": "668014ea2b680c65290bbdf2",
+ "_tpl": "5bfea7ad0db834001c38f1ee",
+ "parentId": "668014ea2b680c65290bbdf1",
+ "slotId": "mod_magazine"
+ },
+ {
+ "_id": "668014ea2b680c65290bbdf3",
+ "_tpl": "5bfeb32b0db834001a6694d9",
+ "parentId": "668014ea2b680c65290bbdf1",
+ "slotId": "mod_stock"
+ },
+ {
+ "_id": "668014ea2b680c65290bbdf4",
+ "_tpl": "5bfebc320db8340019668d79",
+ "parentId": "668014ea2b680c65290bbdf1",
+ "slotId": "mod_barrel"
+ },
+ {
+ "_id": "668014ea2b680c65290bbdf5",
+ "_tpl": "5bfea6e90db834001b7347f3",
+ "upd": {
+ "FireMode": {
+ "FireMode": "single"
+ },
+ "StackObjectsCount": 1
+ },
+ "parentId": "668014ea2b680c65290bbd08",
+ "slotId": "main"
+ },
+ {
+ "_id": "668014ea2b680c65290bbdf6",
+ "_tpl": "5bfea7ad0db834001c38f1ee",
+ "parentId": "668014ea2b680c65290bbdf5",
+ "slotId": "mod_magazine"
+ },
+ {
+ "_id": "668014ea2b680c65290bbdf7",
+ "_tpl": "5bfeb32b0db834001a6694d9",
+ "parentId": "668014ea2b680c65290bbdf5",
+ "slotId": "mod_stock"
+ },
+ {
+ "_id": "668014ea2b680c65290bbdf8",
+ "_tpl": "5bfebc320db8340019668d79",
+ "parentId": "668014ea2b680c65290bbdf5",
+ "slotId": "mod_barrel"
+ },
+ {
+ "_id": "668014ea2b680c65290bbdfa",
+ "_tpl": "5a608bf24f39f98ffc77720e",
+ "upd": {
+ "StackObjectsCount": 40
+ },
+ "parentId": "668014ea2b680c65290bbd08",
+ "slotId": "main"
+ },
+ {
+ "_id": "668014ea2b680c65290bbdfb",
+ "_tpl": "5a608bf24f39f98ffc77720e",
+ "upd": {
+ "StackObjectsCount": 40
+ },
+ "parentId": "668014ea2b680c65290bbd08",
+ "slotId": "main"
+ },
+ {
+ "_id": "668014ea2b680c65290bbdfc",
+ "_tpl": "5a608bf24f39f98ffc77720e",
+ "upd": {
+ "StackObjectsCount": 40
+ },
+ "parentId": "668014ea2b680c65290bbd08",
+ "slotId": "main"
+ },
+ {
+ "_id": "668014ea2b680c65290bbdfd",
+ "_tpl": "5a608bf24f39f98ffc77720e",
+ "upd": {
+ "StackObjectsCount": 40
+ },
+ "parentId": "668014ea2b680c65290bbd08",
+ "slotId": "main"
+ },
+ {
+ "_id": "668014ea2b680c65290bbdfe",
+ "_tpl": "5a608bf24f39f98ffc77720e",
+ "upd": {
+ "StackObjectsCount": 40
+ },
+ "parentId": "668014ea2b680c65290bbd08",
+ "slotId": "main"
+ },
+ {
+ "_id": "668014ea2b680c65290bbdff",
+ "_tpl": "5a608bf24f39f98ffc77720e",
+ "upd": {
+ "StackObjectsCount": 40
+ },
+ "parentId": "668014ea2b680c65290bbd08",
+ "slotId": "main"
+ },
+ {
+ "_id": "668014ea2b680c65290bbe00",
+ "_tpl": "5a608bf24f39f98ffc77720e",
+ "upd": {
+ "StackObjectsCount": 40
+ },
+ "parentId": "668014ea2b680c65290bbd08",
+ "slotId": "main"
+ },
+ {
+ "_id": "668014ea2b680c65290bbe01",
+ "_tpl": "5a608bf24f39f98ffc77720e",
+ "upd": {
+ "StackObjectsCount": 40
+ },
+ "parentId": "668014ea2b680c65290bbd08",
+ "slotId": "main"
+ },
+ {
+ "_id": "668014ea2b680c65290bbe02",
+ "_tpl": "5a608bf24f39f98ffc77720e",
+ "upd": {
+ "StackObjectsCount": 40
+ },
+ "parentId": "668014ea2b680c65290bbd08",
+ "slotId": "main"
+ },
+ {
+ "_id": "668014ea2b680c65290bbe03",
+ "_tpl": "5a608bf24f39f98ffc77720e",
+ "upd": {
+ "StackObjectsCount": 40
+ },
+ "parentId": "668014ea2b680c65290bbd08",
+ "slotId": "main"
+ },
+ {
+ "_id": "668014ea2b680c65290bbe05",
+ "_tpl": "58dd3ad986f77403051cba8f",
+ "upd": {
+ "StackObjectsCount": 40
+ },
+ "parentId": "668014ea2b680c65290bbd08",
+ "slotId": "main"
+ },
+ {
+ "_id": "668014ea2b680c65290bbe06",
+ "_tpl": "58dd3ad986f77403051cba8f",
+ "upd": {
+ "StackObjectsCount": 40
+ },
+ "parentId": "668014ea2b680c65290bbd08",
+ "slotId": "main"
+ },
+ {
+ "_id": "668014ea2b680c65290bbe07",
+ "_tpl": "58dd3ad986f77403051cba8f",
+ "upd": {
+ "StackObjectsCount": 40
+ },
+ "parentId": "668014ea2b680c65290bbd08",
+ "slotId": "main"
+ },
+ {
+ "_id": "668014ea2b680c65290bbe08",
+ "_tpl": "58dd3ad986f77403051cba8f",
+ "upd": {
+ "StackObjectsCount": 40
+ },
+ "parentId": "668014ea2b680c65290bbd08",
+ "slotId": "main"
+ },
+ {
+ "_id": "668014ea2b680c65290bbe09",
+ "_tpl": "58dd3ad986f77403051cba8f",
+ "upd": {
+ "StackObjectsCount": 40
+ },
+ "parentId": "668014ea2b680c65290bbd08",
+ "slotId": "main"
+ },
+ {
+ "_id": "668014ea2b680c65290bbe0a",
+ "_tpl": "58dd3ad986f77403051cba8f",
+ "upd": {
+ "StackObjectsCount": 40
+ },
+ "parentId": "668014ea2b680c65290bbd08",
+ "slotId": "main"
+ },
+ {
+ "_id": "668014ea2b680c65290bbe0b",
+ "_tpl": "58dd3ad986f77403051cba8f",
+ "upd": {
+ "StackObjectsCount": 40
+ },
+ "parentId": "668014ea2b680c65290bbd08",
+ "slotId": "main"
+ },
+ {
+ "_id": "668014ea2b680c65290bbe0c",
+ "_tpl": "58dd3ad986f77403051cba8f",
+ "upd": {
+ "StackObjectsCount": 40
+ },
+ "parentId": "668014ea2b680c65290bbd08",
+ "slotId": "main"
+ },
+ {
+ "_id": "668014ea2b680c65290bbe0d",
+ "_tpl": "58dd3ad986f77403051cba8f",
+ "upd": {
+ "StackObjectsCount": 40
+ },
+ "parentId": "668014ea2b680c65290bbd08",
+ "slotId": "main"
+ },
+ {
+ "_id": "668014ea2b680c65290bbe0e",
+ "_tpl": "58dd3ad986f77403051cba8f",
+ "upd": {
+ "StackObjectsCount": 40
+ },
+ "parentId": "668014ea2b680c65290bbd08",
+ "slotId": "main"
+ },
+ {
+ "_id": "668014ea2b680c65290bbe10",
+ "_tpl": "5c0a840b86f7742ffa4f2482",
+ "upd": {
+ "StackObjectsCount": 1
+ },
+ "parentId": "668014ea2b680c65290bbd08",
+ "slotId": "main"
+ },
+ {
+ "_id": "668014ea2b680c65290bbe12",
+ "_tpl": "5b6d9ce188a4501afc1b2b25",
+ "upd": {
+ "StackObjectsCount": 1
+ },
+ "parentId": "668014ea2b680c65290bbd08",
+ "slotId": "main"
+ },
+ {
+ "_id": "668014ea2b680c65290bbe14",
+ "_tpl": "5aafbcd986f7745e590fff23",
+ "upd": {
+ "StackObjectsCount": 1
+ },
+ "parentId": "668014ea2b680c65290bbd08",
+ "slotId": "main"
+ },
+ {
+ "_id": "668014ea2b680c65290bbe16",
+ "_tpl": "5c093db286f7740a1b2617e3",
+ "upd": {
+ "StackObjectsCount": 1
+ },
+ "parentId": "668014ea2b680c65290bbd08",
+ "slotId": "main"
+ },
+ {
+ "_id": "668014ea2b680c65290bbe18",
+ "_tpl": "5c127c4486f7745625356c13",
+ "upd": {
+ "StackObjectsCount": 1
+ },
+ "parentId": "668014ea2b680c65290bbd08",
+ "slotId": "main"
+ },
+ {
+ "_id": "668014ea2b680c65290bbe1a",
+ "_tpl": "5c093e3486f77430cb02e593",
+ "upd": {
+ "StackObjectsCount": 1
+ },
+ "parentId": "668014ea2b680c65290bbd08",
+ "slotId": "main"
+ },
+ {
+ "_id": "668014ea2b680c65290bbe1c",
+ "_tpl": "619cbf7d23893217ec30b689",
+ "upd": {
+ "StackObjectsCount": 1
+ },
+ "parentId": "668014ea2b680c65290bbd08",
+ "slotId": "main"
+ }
+ ],
+ "sender": "System",
"messageText": "Tourney gift",
"collectionTimeHours": 128,
"associatedEvent": "Promo",
- "profileChangeEvents": [{
- "_id": "668014ea2b680c65290bbe1d",
- "Type": "TraderSalesSum",
- "value": 2500000,
- "entity": "5ac3b934156ae10c4430e83c"
- }, {
- "_id": "668014ea2b680c65290bbe1e",
- "Type": "TraderStanding",
- "value": 0.6,
- "entity": "5ac3b934156ae10c4430e83c"
- }, {
- "_id": "668014ea2b680c65290bbe1f",
- "Type": "TraderSalesSum",
- "value": 2600000,
- "entity": "58330581ace78e27b8b10cee"
- }, {
- "_id": "668014ea2b680c65290bbe20",
- "Type": "TraderStanding",
- "value": 0.75,
- "entity": "58330581ace78e27b8b10cee"
- }, {
- "_id": "668014ea2b680c65290bbe21",
- "Type": "TraderSalesSum",
- "value": 1725000,
- "entity": "5c0647fdd443bc2504c2d371"
- }, {
- "_id": "668014ea2b680c65290bbe22",
- "Type": "TraderStanding",
- "value": 0.5,
- "entity": "5c0647fdd443bc2504c2d371"
- }, {
- "_id": "668014ea2b680c65290bbe23",
- "Type": "TraderSalesSum",
- "value": 2500000,
- "entity": "5a7c2eca46aef81a7ca2145d"
- }, {
- "_id": "668014ea2b680c65290bbe24",
- "Type": "TraderStanding",
- "value": 0.6,
- "entity": "5a7c2eca46aef81a7ca2145d"
- }, {
- "_id": "668014ea2b680c65290bbe25",
- "Type": "TraderSalesSum",
- "value": 32000,
- "entity": "5935c25fb3acc3127c3d8cd9"
- }, {
- "_id": "668014ea2b680c65290bbe26",
- "Type": "TraderStanding",
- "value": 0.6,
- "entity": "5935c25fb3acc3127c3d8cd9"
- }, {
- "_id": "668014ea2b680c65290bbe27",
- "Type": "TraderSalesSum",
- "value": 2300000,
- "entity": "54cb50c76803fa8b248b4571"
- }, {
- "_id": "668014ea2b680c65290bbe28",
- "Type": "TraderStanding",
- "value": 0.5,
- "entity": "54cb50c76803fa8b248b4571"
- }, {
- "_id": "668014ea2b680c65290bbe29",
- "Type": "TraderSalesSum",
- "value": 900000,
- "entity": "54cb57776803fa99248b456e"
- }, {
- "_id": "668014ea2b680c65290bbe2a",
- "Type": "TraderStanding",
- "value": 0.6,
- "entity": "54cb57776803fa99248b456e"
- }, {
- "_id": "668014ea2b680c65290bbe2b",
- "Type": "ProfileLevel",
- "value": 2901143,
- "entity": null
- }, {
- "_id": "668014ea2b680c65290bbe2c",
- "Type": "SkillPoints",
- "value": 2500,
- "entity": "Endurance"
- }, {
- "_id": "668014ea2b680c65290bbe2d",
- "Type": "SkillPoints",
- "value": 2500,
- "entity": "Strength"
- }, {
- "_id": "668014ea2b680c65290bbe2e",
- "Type": "SkillPoints",
- "value": 2500,
- "entity": "Vitality"
- }, {
- "_id": "668014ea2b680c65290bbe2f",
- "Type": "SkillPoints",
- "value": 2500,
- "entity": "Health"
- }, {
- "_id": "668014ea2b680c65290bbe30",
- "Type": "SkillPoints",
- "value": 2500,
- "entity": "Metabolism"
- }, {
- "_id": "668014ea2b680c65290bbe31",
- "Type": "SkillPoints",
- "value": 2500,
- "entity": "StressResistance"
- }, {
- "_id": "668014ea2b680c65290bbe32",
- "Type": "SkillPoints",
- "value": 2500,
- "entity": "Immunity"
- }, {
- "_id": "668014ea2b680c65290bbe33",
- "Type": "SkillPoints",
- "value": 2500,
- "entity": "Throwing"
- }, {
- "_id": "668014ea2b680c65290bbe34",
- "Type": "SkillPoints",
- "value": 2500,
- "entity": "RecoilControl"
- }, {
- "_id": "668014ea2b680c65290bbe35",
- "Type": "SkillPoints",
- "value": 2500,
- "entity": "Pistol"
- }, {
- "_id": "668014ea2b680c65290bbe36",
- "Type": "SkillPoints",
- "value": 2500,
- "entity": "Revolver"
- }, {
- "_id": "668014ea2b680c65290bbe37",
- "Type": "SkillPoints",
- "value": 2500,
- "entity": "SMG"
- }, {
- "_id": "668014ea2b680c65290bbe38",
- "Type": "SkillPoints",
- "value": 2500,
- "entity": "Assault"
- }, {
- "_id": "668014ea2b680c65290bbe39",
- "Type": "SkillPoints",
- "value": 2500,
- "entity": "Shotgun"
- }, {
- "_id": "668014ea2b680c65290bbe3a",
- "Type": "SkillPoints",
- "value": 2500,
- "entity": "Sniper"
- }, {
- "_id": "668014ea2b680c65290bbe3b",
- "Type": "SkillPoints",
- "value": 2500,
- "entity": "LMG"
- }, {
- "_id": "668014ea2b680c65290bbe3c",
- "Type": "SkillPoints",
- "value": 2500,
- "entity": "HMG"
- }, {
- "_id": "668014ea2b680c65290bbe3d",
- "Type": "SkillPoints",
- "value": 2500,
- "entity": "Launcher"
- }, {
- "_id": "668014ea2b680c65290bbe3e",
- "Type": "SkillPoints",
- "value": 2500,
- "entity": "AttachedLauncher"
- }, {
- "_id": "668014ea2b680c65290bbe3f",
- "Type": "SkillPoints",
- "value": 2500,
- "entity": "Melee"
- }, {
- "_id": "668014ea2b680c65290bbe40",
- "Type": "SkillPoints",
- "value": 2500,
- "entity": "DMR"
- }, {
- "_id": "668014ea2b680c65290bbe41",
- "Type": "SkillPoints",
- "value": 2500,
- "entity": "CovertMovement"
- }, {
- "_id": "668014ea2b680c65290bbe42",
- "Type": "SkillPoints",
- "value": 2500,
- "entity": "Search"
- }, {
- "_id": "668014ea2b680c65290bbe43",
- "Type": "SkillPoints",
- "value": 2500,
- "entity": "MagDrills"
- }, {
- "_id": "668014ea2b680c65290bbe44",
- "Type": "SkillPoints",
- "value": 2500,
- "entity": "Perception"
- }, {
- "_id": "668014ea2b680c65290bbe45",
- "Type": "SkillPoints",
- "value": 2500,
- "entity": "Intellect"
- }, {
- "_id": "668014ea2b680c65290bbe46",
- "Type": "SkillPoints",
- "value": 2500,
- "entity": "Charisma"
- }, {
- "_id": "668014ea2b680c65290bbe47",
- "Type": "SkillPoints",
- "value": 2500,
- "entity": "Memory"
- }, {
- "_id": "668014ea2b680c65290bbe48",
- "Type": "SkillPoints",
- "value": 2500,
- "entity": "Surgery"
- }, {
- "_id": "668014ea2b680c65290bbe49",
- "Type": "SkillPoints",
- "value": 2500,
- "entity": "AimDrills"
- }, {
- "_id": "668014ea2b680c65290bbe4a",
- "Type": "SkillPoints",
- "value": 2500,
- "entity": "HideoutManagement"
- }, {
- "_id": "668014ea2b680c65290bbe4b",
- "Type": "SkillPoints",
- "value": 2500,
- "entity": "Crafting"
- }, {
- "_id": "668014ea2b680c65290bbe4c",
- "Type": "SkillPoints",
- "value": 2500,
- "entity": "Attention"
- }, {
- "_id": "668014ea2b680c65290bbe4d",
- "Type": "SkillPoints",
- "value": 2500,
- "entity": "63"
- }, {
- "_id": "668014ea2b680c65290bbe4e",
- "Type": "SkillPoints",
- "value": 2500,
- "entity": "39"
- }, {
- "_id": "668014ea2b680c65290bbe4f",
- "Type": "SkillPoints",
- "value": 2500,
- "entity": "38"
- }, {
- "_id": "668014ea2b680c65290bbe50",
- "Type": "SkillPoints",
- "value": 2500,
- "entity": "45"
- }, {
- "_id": "668014ea2b680c65290bbe51",
- "Type": "ExamineAllItems"
- }, {
- "_id": "668014ea2b680c65290bbe52",
- "Type": "UnlockTrader",
- "value": 1,
- "entity": "5c0647fdd443bc2504c2d371"
- }, {
- "_id": "668014ea2b680c65290bbe53",
- "Type": "HideoutAreaLevel",
- "value": 1,
- "entity": "Workbench"
- }, {
- "_id": "668014ea2b680c65290bbe54",
- "Type": "AssortmentUnlockRule",
- "entity": "584149ad2459775a7726350e",
- "data": "584149ad2459775a7726350e"
- }, {
- "_id": "668014ea2b680c65290bbe55",
- "Type": "AssortmentUnlockRule",
- "entity": "544fb45d4bdc2dee738b4568",
- "data": "544fb45d4bdc2dee738b4568"
- }, {
- "_id": "668014ea2b680c65290bbe56",
- "Type": "AssortmentUnlockRule",
- "entity": "590c661e86f7741e566b646a",
- "data": "590c661e86f7741e566b646a"
- }, {
- "_id": "668014ea2b680c65290bbe57",
- "Type": "AssortmentUnlockRule",
- "entity": "5a13df5286f774032f5454a0",
- "data": "5a13df5286f774032f5454a0"
- }, {
- "_id": "668014ea2b680c65290bbe58",
- "Type": "AssortmentUnlockRule",
- "entity": "544fb3f34bdc2d03748b456a",
- "data": "544fb3f34bdc2d03748b456a"
- }, {
- "_id": "668014ea2b680c65290bbe59",
- "Type": "AssortmentUnlockRule",
- "entity": "58d2912286f7744e27117493",
- "data": "58d2912286f7744e27117493"
- }, {
- "_id": "668014ea2b680c65290bbe5a",
- "Type": "AssortmentUnlockRule",
- "entity": "57372140245977611f70ee91",
- "data": "57372140245977611f70ee91"
- }, {
- "_id": "668014ea2b680c65290bbe5b",
- "Type": "AssortmentUnlockRule",
- "entity": "5ac8d6885acfc400180ae7b0",
- "data": "5ac8d6885acfc400180ae7b0"
- }, {
- "_id": "668014ea2b680c65290bbe5c",
- "Type": "AssortmentUnlockRule",
- "entity": "5aa7e276e5b5b000171d0647",
- "data": "5aa7e276e5b5b000171d0647"
- }, {
- "_id": "668014ea2b680c65290bbe5d",
- "Type": "AssortmentUnlockRule",
- "entity": "59eb7ebe86f7740b373438ce",
- "data": "59eb7ebe86f7740b373438ce"
- }, {
- "_id": "668014ea2b680c65290bbe5e",
- "Type": "AssortmentUnlockRule",
- "entity": "5656d7c34bdc2d9d198b4587",
- "data": "5656d7c34bdc2d9d198b4587"
- }, {
- "_id": "668014ea2b680c65290bbe5f",
- "Type": "AssortmentUnlockRule",
- "entity": "55d482194bdc2d1d4e8b456b",
- "data": "55d482194bdc2d1d4e8b456b"
- }, {
- "_id": "668014ea2b680c65290bbe60",
- "Type": "AssortmentUnlockRule",
- "entity": "58dffc5d86f77407c744a847",
- "data": "58dffc5d86f77407c744a847"
- }, {
- "_id": "668014ea2b680c65290bbe61",
- "Type": "AssortmentUnlockRule",
- "entity": "57da93632459771cb65bf83f",
- "data": "57da93632459771cb65bf83f"
- }, {
- "_id": "668014ea2b680c65290bbe62",
- "Type": "AssortmentUnlockRule",
- "entity": "56dff0bed2720bb0668b4567",
- "data": "56dff0bed2720bb0668b4567"
- }, {
- "_id": "668014ea2b680c65290bbe63",
- "Type": "AssortmentUnlockRule",
- "entity": "59bfe68886f7746004266202",
- "data": "59bfe68886f7746004266202"
- }, {
- "_id": "668014ea2b680c65290bbe64",
- "Type": "AssortmentUnlockRule",
- "entity": "59e77a2386f7742ee578960a",
- "data": "59e77a2386f7742ee578960a"
- }, {
- "_id": "668014ea2b680c65290bbe65",
- "Type": "AssortmentUnlockRule",
- "entity": "5a269f97c4a282000b151807",
- "data": "5a269f97c4a282000b151807"
- }, {
- "_id": "668014ea2b680c65290bbe66",
- "Type": "AssortmentUnlockRule",
- "entity": "58d3db5386f77426186285a0",
- "data": "58d3db5386f77426186285a0"
- }, {
- "_id": "668014ea2b680c65290bbe67",
- "Type": "AssortmentUnlockRule",
- "entity": "5a3a85af86f774745637d46c",
- "data": "5a3a85af86f774745637d46c"
- }, {
- "_id": "668014ea2b680c65290bbe68",
- "Type": "AssortmentUnlockRule",
- "entity": "5a33e75ac4a2826c6e06d759",
- "data": "5a33e75ac4a2826c6e06d759"
- }, {
- "_id": "668014ea2b680c65290bbe69",
- "Type": "AssortmentUnlockRule",
- "entity": "545cdb794bdc2d3a198b456a",
- "data": "545cdb794bdc2d3a198b456a"
- }, {
- "_id": "668014ea2b680c65290bbe6a",
- "Type": "AssortmentUnlockRule",
- "entity": "545cdae64bdc2d39198b4568",
- "data": "545cdae64bdc2d39198b4568"
- }, {
- "_id": "668014ea2b680c65290bbe6b",
- "Type": "AssortmentUnlockRule",
- "entity": "5649ae4a4bdc2d1b2b8b4588",
- "data": "5649ae4a4bdc2d1b2b8b4588"
- }, {
- "_id": "668014ea2b680c65290bbe6c",
- "Type": "AssortmentUnlockRule",
- "entity": "58dffd4586f77408a27629b2",
- "data": "58dffd4586f77408a27629b2"
- }, {
- "_id": "668014ea2b680c65290bbe6d",
- "Type": "AssortmentUnlockRule",
- "entity": "5751a25924597722c463c472",
- "data": "5751a25924597722c463c472"
- }, {
- "_id": "668014ea2b680c65290bbe6e",
- "Type": "AssortmentUnlockRule",
- "entity": "59c1383d86f774290a37e0ca",
- "data": "59c1383d86f774290a37e0ca"
- }, {
- "_id": "668014ea2b680c65290bbe6f",
- "Type": "AssortmentUnlockRule",
- "entity": "5a0c59791526d8dba737bba7",
- "data": "5a0c59791526d8dba737bba7"
- }, {
- "_id": "668014ea2b680c65290bbe70",
- "Type": "AssortmentUnlockRule",
- "entity": "576fd4ec2459777f0b518431",
- "data": "576fd4ec2459777f0b518431"
- }, {
- "_id": "668014ea2b680c65290bbe71",
- "Type": "AssortmentUnlockRule",
- "entity": "57a0e5022459774d1673f889",
- "data": "57a0e5022459774d1673f889"
- }, {
- "_id": "668014ea2b680c65290bbe72",
- "Type": "AssortmentUnlockRule",
- "entity": "584984812459776a704a82a6",
- "data": "584984812459776a704a82a6"
- }, {
- "_id": "668014ea2b680c65290bbe73",
- "Type": "AssortmentUnlockRule",
- "entity": "59c0ec5b86f77435b128bfca",
- "data": "59c0ec5b86f77435b128bfca"
- }, {
- "_id": "668014ea2b680c65290bbe74",
- "Type": "AssortmentUnlockRule",
- "entity": "57ffb0e42459777d047111c5",
- "data": "57ffb0e42459777d047111c5"
- }, {
- "_id": "668014ea2b680c65290bbe75",
- "Type": "AssortmentUnlockRule",
- "entity": "58dd3ad986f77403051cba8f",
- "data": "58dd3ad986f77403051cba8f"
- }, {
- "_id": "668014ea2b680c65290bbe76",
- "Type": "AssortmentUnlockRule",
- "entity": "5a16b7e1fcdbcb00165aa6c9",
- "data": "5a16b7e1fcdbcb00165aa6c9"
- }, {
- "_id": "668014ea2b680c65290bbe77",
- "Type": "AssortmentUnlockRule",
- "entity": "56eabf3bd2720b75698b4569",
- "data": "56eabf3bd2720b75698b4569"
- }, {
- "_id": "668014ea2b680c65290bbe78",
- "Type": "AssortmentUnlockRule",
- "entity": "588226ef24597767af46e39c",
- "data": "588226ef24597767af46e39c"
- }, {
- "_id": "668014ea2b680c65290bbe79",
- "Type": "AssortmentUnlockRule",
- "entity": "59411abb86f77478f702b5d2",
- "data": "59411abb86f77478f702b5d2"
- }, {
- "_id": "668014ea2b680c65290bbe7a",
- "Type": "AssortmentUnlockRule",
- "entity": "58414a16245977599247970a",
- "data": "58414a16245977599247970a"
- }, {
- "_id": "668014ea2b680c65290bbe7b",
- "Type": "AssortmentUnlockRule",
- "entity": "590c678286f77426c9660122",
- "data": "590c678286f77426c9660122"
- }, {
- "_id": "668014ea2b680c65290bbe7c",
- "Type": "AssortmentUnlockRule",
- "entity": "584147982459775a6c55e931",
- "data": "584147982459775a6c55e931"
- }, {
- "_id": "668014ea2b680c65290bbe7d",
- "Type": "AssortmentUnlockRule",
- "entity": "5a8ae65f86f774377a23ed55",
- "data": "5a8ae65f86f774377a23ed55"
- }, {
- "_id": "668014ea2b680c65290bbe7e",
- "Type": "AssortmentUnlockRule",
- "entity": "5af08cc686f77424a61595f2",
- "data": "5af08cc686f77424a61595f2"
- }, {
- "_id": "668014ea2b680c65290bbe7f",
- "Type": "AssortmentUnlockRule",
- "entity": "5b07dd285acfc4001754240d",
- "data": "5b07dd285acfc4001754240d"
- }, {
- "_id": "668014ea2b680c65290bbe80",
- "Type": "AssortmentUnlockRule",
- "entity": "5b4391a586f7745321235ab2",
- "data": "5b4391a586f7745321235ab2"
- }, {
- "_id": "668014ea2b680c65290bbe81",
- "Type": "AssortmentUnlockRule",
- "entity": "5c1127d0d174af29be75cf68",
- "data": "5c1127d0d174af29be75cf68"
- }, {
- "_id": "668014ea2b680c65290bbe82",
- "Type": "AssortmentUnlockRule",
- "entity": "5c0e722886f7740458316a57",
- "data": "5c0e722886f7740458316a57"
- }, {
- "_id": "668014ea2b680c65290bbe83",
- "Type": "AssortmentUnlockRule",
- "entity": "5bbde409d4351e003562b036",
- "data": "5bbde409d4351e003562b036"
- }, {
- "_id": "668014ea2b680c65290bbe84",
- "Type": "AssortmentUnlockRule",
- "entity": "5b4329f05acfc47a86086aa1",
- "data": "5b4329f05acfc47a86086aa1"
- }, {
- "_id": "668014ea2b680c65290bbe85",
- "Type": "AssortmentUnlockRule",
- "entity": "5ba2678ad4351e44f824b344",
- "data": "5ba2678ad4351e44f824b344"
- }, {
- "_id": "668014ea2b680c65290bbe86",
- "Type": "AssortmentUnlockRule",
- "entity": "56ea8d2fd2720b7c698b4570",
- "data": "56ea8d2fd2720b7c698b4570"
- }, {
- "_id": "668014ea2b680c65290bbe87",
- "Type": "AssortmentUnlockRule",
- "entity": "5bc5a372d4351e44f824d17f",
- "data": "5bc5a372d4351e44f824d17f"
- }, {
- "_id": "668014ea2b680c65290bbe88",
- "Type": "AssortmentUnlockRule",
- "entity": "5bbde41ed4351e003562b038",
- "data": "5bbde41ed4351e003562b038"
- }, {
- "_id": "668014ea2b680c65290bbe89",
- "Type": "AssortmentUnlockRule",
- "entity": "5bc5a35cd4351e450201232f",
- "data": "5bc5a35cd4351e450201232f"
- }, {
- "_id": "668014ea2b680c65290bbe8a",
- "Type": "AssortmentUnlockRule",
- "entity": "5cc80f8fe4a949033b0224a2",
- "data": "5cc80f8fe4a949033b0224a2"
- }, {
- "_id": "668014ea2b680c65290bbe8b",
- "Type": "AssortmentUnlockRule",
- "entity": "5a966f51a2750c00156aacf6",
- "data": "5a966f51a2750c00156aacf6"
- }, {
- "_id": "668014ea2b680c65290bbe8c",
- "Type": "AssortmentUnlockRule",
- "entity": "5ac78a9b86f7741cca0bbd8d",
- "data": "5ac78a9b86f7741cca0bbd8d"
- }, {
- "_id": "668014ea2b680c65290bbe8d",
- "Type": "AssortmentUnlockRule",
- "entity": "5b44cf1486f77431723e3d05",
- "data": "5b44cf1486f77431723e3d05"
- }, {
- "_id": "668014ea2b680c65290bbe8e",
- "Type": "AssortmentUnlockRule",
- "entity": "5aafbde786f774389d0cbc0f",
- "data": "5aafbde786f774389d0cbc0f"
- }, {
- "_id": "668014ea2b680c65290bbe8f",
- "Type": "AssortmentUnlockRule",
- "entity": "59fb137a86f7740adb646af1",
- "data": "59fb137a86f7740adb646af1"
- }, {
- "_id": "668014ea2b680c65290bbe90",
- "Type": "AssortmentUnlockRule",
- "entity": "5bae13ded4351e44f824bf38",
- "data": "5bae13ded4351e44f824bf38"
- }, {
- "_id": "668014ea2b680c65290bbe91",
- "Type": "AssortmentUnlockRule",
- "entity": "5bbdb870d4351e00367fb67d",
- "data": "5bbdb870d4351e00367fb67d"
- }, {
- "_id": "668014ea2b680c65290bbe92",
- "Type": "AssortmentUnlockRule",
- "entity": "5b3116595acfc40019476364",
- "data": "5b3116595acfc40019476364"
- }, {
- "_id": "668014ea2b680c65290bbe93",
- "Type": "AssortmentUnlockRule",
- "entity": "5b83f22086f77464e15a1d5f",
- "data": "5b83f22086f77464e15a1d5f"
- }, {
- "_id": "668014ea2b680c65290bbe94",
- "Type": "AssortmentUnlockRule",
- "entity": "5bbdb83fd4351e44f824c44b",
- "data": "5bbdb83fd4351e44f824c44b"
- }, {
- "_id": "668014ea2b680c65290bbe95",
- "Type": "AssortmentUnlockRule",
- "entity": "5c0a2cec0db834001b7ce47d",
- "data": "5c0a2cec0db834001b7ce47d"
- }, {
- "_id": "668014ea2b680c65290bbe96",
- "Type": "AssortmentUnlockRule",
- "entity": "5ac4ad3686f774181345c3da",
- "data": "5ac4ad3686f774181345c3da"
- }, {
- "_id": "668014ea2b680c65290bbe97",
- "Type": "AssortmentUnlockRule",
- "entity": "58d2912286f7744e27117493",
- "data": "58d2912286f7744e27117493"
- }, {
- "_id": "668014ea2b680c65290bbe98",
- "Type": "AssortmentUnlockRule",
- "entity": "56eabcd4d2720b66698b4574",
- "data": "56eabcd4d2720b66698b4574"
- }, {
- "_id": "668014ea2b680c65290bbe99",
- "Type": "AssortmentUnlockRule",
- "entity": "5bbdb811d4351e45020113c7",
- "data": "5bbdb811d4351e45020113c7"
- }, {
- "_id": "668014ea2b680c65290bbe9a",
- "Type": "AssortmentUnlockRule",
- "entity": "5bc5a351d4351e003477a414",
- "data": "5bc5a351d4351e003477a414"
- }, {
- "_id": "668014ea2b680c65290bbe9b",
- "Type": "AssortmentUnlockRule",
- "entity": "5c1260dc86f7746b106e8748",
- "data": "5c1260dc86f7746b106e8748"
- }, {
- "_id": "668014ea2b680c65290bbe9c",
- "Type": "AssortmentUnlockRule",
- "entity": "5b44d0de86f774503d30cba8",
- "data": "5b44d0de86f774503d30cba8"
- }, {
- "_id": "668014ea2b680c65290bbe9d",
- "Type": "AssortmentUnlockRule",
- "entity": "5a8c436686f7740f394d10b5",
- "data": "5a8c436686f7740f394d10b5"
- }, {
- "_id": "668014ea2b680c65290bbe9e",
- "Type": "AssortmentUnlockRule",
- "entity": "5b07db875acfc40dc528a5f6",
- "data": "5b07db875acfc40dc528a5f6"
- }, {
- "_id": "668014ea2b680c65290bbe9f",
- "Type": "AssortmentUnlockRule",
- "entity": "5b057b4f5acfc4771e1bd3e9",
- "data": "5b057b4f5acfc4771e1bd3e9"
- }, {
- "_id": "668014ea2b680c65290bbea0",
- "Type": "AssortmentUnlockRule",
- "entity": "5c10c8fd86f7743d7d706df3",
- "data": "5c10c8fd86f7743d7d706df3"
- }, {
- "_id": "668014ea2b680c65290bbea1",
- "Type": "AssortmentUnlockRule",
- "entity": "5b44cd8b86f774503d30cba2",
- "data": "5b44cd8b86f774503d30cba2"
- }, {
- "_id": "668014ea2b680c65290bbea2",
- "Type": "AssortmentUnlockRule",
- "entity": "5c0e3eb886f7742015526062",
- "data": "5c0e3eb886f7742015526062"
- }, {
- "_id": "668014ea2b680c65290bbea3",
- "Type": "AssortmentUnlockRule",
- "entity": "5ca21c6986f77479963115a7",
- "data": "5ca21c6986f77479963115a7"
- }, {
- "_id": "668014ea2b680c65290bbea4",
- "Type": "AssortmentUnlockRule",
- "entity": "5bae13bad4351e00320204af",
- "data": "5bae13bad4351e00320204af"
- }, {
- "_id": "668014ea2b680c65290bbea5",
- "Type": "AssortmentUnlockRule",
- "entity": "593d493f86f7745e6b2ceb22",
- "data": "593d493f86f7745e6b2ceb22"
- }, {
- "_id": "668014ea2b680c65290bbea6",
- "Type": "AssortmentUnlockRule",
- "entity": "5b40e2bc5acfc40016388216",
- "data": "5b40e2bc5acfc40016388216"
- }, {
- "_id": "668014ea2b680c65290bbea7",
- "Type": "AssortmentUnlockRule",
- "entity": "5c0e774286f77468413cc5b2",
- "data": "5c0e774286f77468413cc5b2"
- }, {
- "_id": "668014ea2b680c65290bbea8",
- "Type": "AssortmentUnlockRule",
- "entity": "5c0e51be86f774598e797894",
- "data": "5c0e51be86f774598e797894"
- }, {
- "_id": "668014ea2b680c65290bbea9",
- "Type": "AssortmentUnlockRule",
- "entity": "5bffdd7e0db834001b734a1a",
- "data": "5bffdd7e0db834001b734a1a"
- }, {
- "_id": "668014ea2b680c65290bbeaa",
- "Type": "AssortmentUnlockRule",
- "entity": "5bffe7930db834001b734a39",
- "data": "5bffe7930db834001b734a39"
- }, {
- "_id": "668014ea2b680c65290bbeab",
- "Type": "AssortmentUnlockRule",
- "entity": "5c0d1e9386f77440120288b7",
- "data": "5c0d1e9386f77440120288b7"
- }, {
- "_id": "668014ea2b680c65290bbeac",
- "Type": "AssortmentUnlockRule",
- "entity": "5c127c4486f7745625356c13",
- "data": "5c127c4486f7745625356c13"
- }, {
- "_id": "668014ea2b680c65290bbead",
- "Type": "AssortmentUnlockRule",
- "entity": "5aafbde786f774389d0cbc0f",
- "data": "5aafbde786f774389d0cbc0f"
- }, {
- "_id": "668014ea2b680c65290bbeae",
- "Type": "AssortmentUnlockRule",
- "entity": "5ac4ad7586f7747d14551da3",
- "data": "5ac4ad7586f7747d14551da3"
- }, {
- "_id": "668014ea2b680c65290bbeaf",
- "Type": "AssortmentUnlockRule",
- "entity": "590c657e86f77412b013051d",
- "data": "590c657e86f77412b013051d"
- }, {
- "_id": "668014ea2b680c65290bbeb0",
- "Type": "AssortmentUnlockRule",
- "entity": "5b6d9ce188a4501afc1b2b25",
- "data": "5b6d9ce188a4501afc1b2b25"
- }, {
- "_id": "668014ea2b680c65290bbeb1",
- "Type": "AssortmentUnlockRule",
- "entity": "5c0e66e2d174af02a96252f4",
- "data": "5c0e66e2d174af02a96252f4"
- }, {
- "_id": "668014ea2b680c65290bbeb2",
- "Type": "AssortmentUnlockRule",
- "entity": "5cc86832d7f00c000d3a6e6c",
- "data": "5cc86832d7f00c000d3a6e6c"
- }, {
- "_id": "668014ea2b680c65290bbeb3",
- "Type": "AssortmentUnlockRule",
- "entity": "5c17a7ed2e2216152142459c",
- "data": "5c17a7ed2e2216152142459c"
- }, {
- "_id": "668014ea2b680c65290bbeb4",
- "Type": "AssortmentUnlockRule",
- "entity": "584148f2245977598f1ad387",
- "data": "584148f2245977598f1ad387"
- }, {
- "_id": "668014ea2b680c65290bbeb5",
- "Type": "AssortmentUnlockRule",
- "entity": "5d5e7d28a4b936645d161203",
- "data": "5d5e7d28a4b936645d161203"
- }, {
- "_id": "668014ea2b680c65290bbeb6",
- "Type": "AssortmentUnlockRule",
- "entity": "5c1cd46f2e22164bef5cfedb",
- "data": "5c1cd46f2e22164bef5cfedb"
- }, {
- "_id": "668014ea2b680c65290bbeb7",
- "Type": "AssortmentUnlockRule",
- "entity": "5d02797c86f774203f38e30a",
- "data": "5d02797c86f774203f38e30a"
- }, {
- "_id": "668014ea2b680c65290bbeb8",
- "Type": "AssortmentUnlockRule",
- "entity": "5d23467086f77443f37fc602",
- "data": "5d23467086f77443f37fc602"
- }, {
- "_id": "668014ea2b680c65290bbeb9",
- "Type": "AssortmentUnlockRule",
- "entity": "5d4d617f86f77449c463d107",
- "data": "5d4d617f86f77449c463d107"
- }, {
- "_id": "668014ea2b680c65290bbeba",
- "Type": "AssortmentUnlockRule",
- "entity": "5aa7d193e5b5b000171d063f",
- "data": "5aa7d193e5b5b000171d063f"
- }, {
- "_id": "668014ea2b680c65290bbebb",
- "Type": "AssortmentUnlockRule",
- "entity": "5a1eaa87fcdbcb001865f75e",
- "data": "5a1eaa87fcdbcb001865f75e"
- }, {
- "_id": "668014ea2b680c65290bbebc",
- "Type": "AssortmentUnlockRule",
- "entity": "5af0454c86f7746bf20992e8",
- "data": "5af0454c86f7746bf20992e8"
- }, {
- "_id": "668014ea2b680c65290bbebd",
- "Type": "AssortmentUnlockRule",
- "entity": "5ea2a8e200685063ec28c05a",
- "data": "5ea2a8e200685063ec28c05a"
- }, {
- "_id": "668014ea2b680c65290bbebe",
- "Type": "AssortmentUnlockRule",
- "entity": "5d44069ca4b9361ebd26fc37",
- "data": "5d44069ca4b9361ebd26fc37"
- }, {
- "_id": "668014ea2b680c65290bbebf",
- "Type": "AssortmentUnlockRule",
- "entity": "5cbda392ae92155f3c17c39f",
- "data": "5cbda392ae92155f3c17c39f"
- }, {
- "_id": "668014ea2b680c65290bbec0",
- "Type": "AssortmentUnlockRule",
- "entity": "5dd800bde492226366631317",
- "data": "5dd800bde492226366631317"
- }, {
- "_id": "668014ea2b680c65290bbec1",
- "Type": "AssortmentUnlockRule",
- "entity": "5e00c1ad86f774747333222c",
- "data": "5e00c1ad86f774747333222c"
- }, {
- "_id": "668014ea2b680c65290bbec2",
- "Type": "AssortmentUnlockRule",
- "entity": "5dfa3d2b0dee1b22f862eade",
- "data": "5dfa3d2b0dee1b22f862eade"
- }, {
- "_id": "668014ea2b680c65290bbec3",
- "Type": "AssortmentUnlockRule",
- "entity": "5f60c74e3b85f6263c145586",
- "data": "5f60c74e3b85f6263c145586"
- }, {
- "_id": "668014ea2b680c65290bbec4",
- "Type": "AssortmentUnlockRule",
- "entity": "5df8a4d786f77412672a1e3b",
- "data": "5df8a4d786f77412672a1e3b"
- }, {
- "_id": "668014ea2b680c65290bbec5",
- "Type": "AssortmentUnlockRule",
- "entity": "5d383f5d86f7742a15793872",
- "data": "5d383f5d86f7742a15793872"
- }, {
- "_id": "668014ea2b680c65290bbec6",
- "Type": "AssortmentUnlockRule",
- "entity": "5dd800eae49222636663133b",
- "data": "5dd800eae49222636663133b"
- }, {
- "_id": "668014ea2b680c65290bbec7",
- "Type": "AssortmentUnlockRule",
- "entity": "5c793fb92e221644f31bfb64",
- "data": "5c793fb92e221644f31bfb64"
- }, {
- "_id": "668014ea2b680c65290bbec8",
- "Type": "AssortmentUnlockRule",
- "entity": "5d025cc1d7ad1a53845279ef",
- "data": "5d025cc1d7ad1a53845279ef"
- }, {
- "_id": "668014ea2b680c65290bbec9",
- "Type": "AssortmentUnlockRule",
- "entity": "5cbdc23eae9215001136a407",
- "data": "5cbdc23eae9215001136a407"
- }, {
- "_id": "668014ea2b680c65290bbeca",
- "Type": "AssortmentUnlockRule",
- "entity": "5d7b845786f7743c1e531da7",
- "data": "5d7b845786f7743c1e531da7"
- }, {
- "_id": "668014ea2b680c65290bbecb",
- "Type": "AssortmentUnlockRule",
- "entity": "5d383e1a86f7742a1468ce63",
- "data": "5d383e1a86f7742a1468ce63"
- }, {
- "_id": "668014ea2b680c65290bbecc",
- "Type": "AssortmentUnlockRule",
- "entity": "5e0354f786f77425b53eb6c5",
- "data": "5e0354f786f77425b53eb6c5"
- }, {
- "_id": "668014ea2b680c65290bbecd",
- "Type": "AssortmentUnlockRule",
- "entity": "5e0340ab86f7745bb7339235",
- "data": "5e0340ab86f7745bb7339235"
- }, {
- "_id": "668014ea2b680c65290bbece",
- "Type": "AssortmentUnlockRule",
- "entity": "5d38517786f7742a1468cf6a",
- "data": "5d38517786f7742a1468cf6a"
- }, {
- "_id": "668014ea2b680c65290bbecf",
- "Type": "AssortmentUnlockRule",
- "entity": "5c0e446786f7742013381639",
- "data": "5c0e446786f7742013381639"
- }, {
- "_id": "668014ea2b680c65290bbed0",
- "Type": "AssortmentUnlockRule",
- "entity": "5d383ee786f7742a15793860",
- "data": "5d383ee786f7742a15793860"
- }, {
- "_id": "668014ea2b680c65290bbed1",
- "Type": "AssortmentUnlockRule",
- "entity": "609e8540d5c319764c2bc2e9",
- "data": "609e8540d5c319764c2bc2e9"
- }, {
- "_id": "668014ea2b680c65290bbed2",
- "Type": "AssortmentUnlockRule",
- "entity": "64abd93857958b4249003418",
- "data": "64abd93857958b4249003418"
- }, {
- "_id": "668014ea2b680c65290bbed3",
- "Type": "AssortmentUnlockRule",
- "entity": "6065878ac9cf8012264142fd",
- "data": "6065878ac9cf8012264142fd"
- }, {
- "_id": "668014ea2b680c65290bbed4",
- "Type": "AssortmentUnlockRule",
- "entity": "618ba27d9008e4636a67f61d",
- "data": "618ba27d9008e4636a67f61d"
- }, {
- "_id": "668014ea2b680c65290bbed5",
- "Type": "AssortmentUnlockRule",
- "entity": "59e6920f86f77411d82aa167",
- "data": "59e6920f86f77411d82aa167"
- }, {
- "_id": "668014ea2b680c65290bbed6",
- "Type": "AssortmentUnlockRule",
- "entity": "624d7ae691f0160c7324c402",
- "data": "624d7ae691f0160c7324c402"
- }, {
- "_id": "668014ea2b680c65290bbed7",
- "Type": "AssortmentUnlockRule",
- "entity": "628cd624459354321c4b7fa2",
- "data": "628cd624459354321c4b7fa2"
- }, {
- "_id": "668014ea2b680c65290bbed8",
- "Type": "AssortmentUnlockRule",
- "entity": "5fd251c90d9c95034825edb5",
- "data": "5fd251c90d9c95034825edb5"
- }, {
- "_id": "668014ea2b680c65290bbed9",
- "Type": "AssortmentUnlockRule",
- "entity": "5fd25119dd870108a754a163",
- "data": "5fd25119dd870108a754a163"
- }, {
- "_id": "668014ea2b680c65290bbeda",
- "Type": "AssortmentUnlockRule",
- "entity": "619d26ccc7791e3af27ae3cd",
- "data": "619d26ccc7791e3af27ae3cd"
- }, {
- "_id": "668014ea2b680c65290bbedb",
- "Type": "AssortmentUnlockRule",
- "entity": "6130c43c67085e45ef1405a1",
- "data": "6130c43c67085e45ef1405a1"
- }, {
- "_id": "668014ea2b680c65290bbedc",
- "Type": "AssortmentUnlockRule",
- "entity": "60a283193cb70855c43a381d",
- "data": "60a283193cb70855c43a381d"
- }, {
- "_id": "668014ea2b680c65290bbedd",
- "Type": "AssortmentUnlockRule",
- "entity": "619b69037b9de8162902673e",
- "data": "619b69037b9de8162902673e"
- }, {
- "_id": "668014ea2b680c65290bbede",
- "Type": "AssortmentUnlockRule",
- "entity": "5656eb674bdc2d35148b457c",
- "data": "5656eb674bdc2d35148b457c"
- }, {
- "_id": "668014ea2b680c65290bbedf",
- "Type": "AssortmentUnlockRule",
- "entity": "60a3c70cde5f453f634816a3",
- "data": "60a3c70cde5f453f634816a3"
- }, {
- "_id": "668014ea2b680c65290bbee0",
- "Type": "AssortmentUnlockRule",
- "entity": "6193e590069d61205d490dd8",
- "data": "6193e590069d61205d490dd8"
- }, {
- "_id": "668014ea2b680c65290bbee1",
- "Type": "AssortmentUnlockRule",
- "entity": "60098ad7c2240c0fe85c570a",
- "data": "60098ad7c2240c0fe85c570a"
- }, {
- "_id": "668014ea2b680c65290bbee2",
- "Type": "AssortmentUnlockRule",
- "entity": "5ca2151486f774244a3b8d30",
- "data": "5ca2151486f774244a3b8d30"
- }, {
- "_id": "668014ea2b680c65290bbee3",
- "Type": "AssortmentUnlockRule",
- "entity": "6193e108c1982475fa2a7f16",
- "data": "6193e108c1982475fa2a7f16"
- }, {
- "_id": "668014ea2b680c65290bbee4",
- "Type": "AssortmentUnlockRule",
- "entity": "60479fb29c15b12b9a480fb0",
- "data": "60479fb29c15b12b9a480fb0"
- }, {
- "_id": "668014ea2b680c65290bbee5",
- "Type": "AssortmentUnlockRule",
- "entity": "5ede475b549eed7c6d5c18fb",
- "data": "5ede475b549eed7c6d5c18fb"
- }, {
- "_id": "668014ea2b680c65290bbee6",
- "Type": "AssortmentUnlockRule",
- "entity": "5e035eb586f774756048ec12",
- "data": "5e035eb586f774756048ec12"
- }, {
- "_id": "668014ea2b680c65290bbee7",
- "Type": "AssortmentUnlockRule",
- "entity": "5e85a9f4add9fe03027d9bf1",
- "data": "5e85a9f4add9fe03027d9bf1"
- }, {
- "_id": "668014ea2b680c65290bbee8",
- "Type": "AssortmentUnlockRule",
- "entity": "6038d614d10cbf667352dd44",
- "data": "6038d614d10cbf667352dd44"
- }, {
- "_id": "668014ea2b680c65290bbee9",
- "Type": "AssortmentUnlockRule",
- "entity": "64be79e2bf8412471d0d9bcc",
- "data": "64be79e2bf8412471d0d9bcc"
- }, {
- "_id": "668014ea2b680c65290bbeea",
- "Type": "AssortmentUnlockRule",
- "entity": "5d02797c86f774203f38e30a",
- "data": "5d02797c86f774203f38e30a"
- }, {
- "_id": "668014ea2b680c65290bbeeb",
- "Type": "AssortmentUnlockRule",
- "entity": "618ab04934aa2e47480fba2b",
- "data": "618ab04934aa2e47480fba2b"
- }, {
- "_id": "668014ea2b680c65290bbeec",
- "Type": "AssortmentUnlockRule",
- "entity": "615d8e9867085e45ef1409c6",
- "data": "615d8e9867085e45ef1409c6"
- }, {
- "_id": "668014ea2b680c65290bbeed",
- "Type": "AssortmentUnlockRule",
- "entity": "5c0e655586f774045612eeb2",
- "data": "5c0e655586f774045612eeb2"
- }, {
- "_id": "668014ea2b680c65290bbeee",
- "Type": "AssortmentUnlockRule",
- "entity": "5ef1ba28c64c5d0dfc0571a5",
- "data": "5ef1ba28c64c5d0dfc0571a5"
- }, {
- "_id": "668014ea2b680c65290bbeef",
- "Type": "AssortmentUnlockRule",
- "entity": "5fd251ee16cac650092f5d02",
- "data": "5fd251ee16cac650092f5d02"
- }, {
- "_id": "668014ea2b680c65290bbef0",
- "Type": "AssortmentUnlockRule",
- "entity": "64b8f7b5389d7ffd620ccba2",
- "data": "64b8f7b5389d7ffd620ccba2"
- }, {
- "_id": "668014ea2b680c65290bbef1",
- "Type": "AssortmentUnlockRule",
- "entity": "606f2696f2cb2e02a42aceb1",
- "data": "606f2696f2cb2e02a42aceb1"
- }, {
- "_id": "668014ea2b680c65290bbef2",
- "Type": "AssortmentUnlockRule",
- "entity": "60926df0132d4d12c81fd9df",
- "data": "60926df0132d4d12c81fd9df"
- }, {
- "_id": "668014ea2b680c65290bbef3",
- "Type": "AssortmentUnlockRule",
- "entity": "5c0d5ae286f7741e46554302",
- "data": "5c0d5ae286f7741e46554302"
- }, {
- "_id": "668014ea2b680c65290bbef4",
- "Type": "AssortmentUnlockRule",
- "entity": "5e21ca18e4d47f0da15e77dd",
- "data": "5e21ca18e4d47f0da15e77dd"
- }, {
- "_id": "668014ea2b680c65290bbef5",
- "Type": "AssortmentUnlockRule",
- "entity": "61962b617c6c7b169525f168",
- "data": "61962b617c6c7b169525f168"
- }, {
- "_id": "668014ea2b680c65290bbef6",
- "Type": "AssortmentUnlockRule",
- "entity": "60b7d76e2a3c79100f1979de",
- "data": "60b7d76e2a3c79100f1979de"
- }, {
- "_id": "668014ea2b680c65290bbef7",
- "Type": "AssortmentUnlockRule",
- "entity": "5f60b34a41e30a4ab12a6947",
- "data": "5f60b34a41e30a4ab12a6947"
- }, {
- "_id": "668014ea2b680c65290bbef8",
- "Type": "AssortmentUnlockRule",
- "entity": "5f06d6e1475d472556679d16",
- "data": "5f06d6e1475d472556679d16"
- }, {
- "_id": "668014ea2b680c65290bbef9",
- "Type": "AssortmentUnlockRule",
- "entity": "5d5d646386f7742797261fd9",
- "data": "5d5d646386f7742797261fd9"
- }, {
- "_id": "668014ea2b680c65290bbefa",
- "Type": "AssortmentUnlockRule",
- "entity": "5c1d0f4986f7744bb01837fa",
- "data": "5c1d0f4986f7744bb01837fa"
- }, {
- "_id": "668014ea2b680c65290bbefb",
- "Type": "AssortmentUnlockRule",
- "entity": "6087e663132d4d12c81fd96b",
- "data": "6087e663132d4d12c81fd96b"
- }, {
- "_id": "668014ea2b680c65290bbefc",
- "Type": "AssortmentUnlockRule",
- "entity": "619e61e70459e93c12392ba7",
- "data": "619e61e70459e93c12392ba7"
- }, {
- "_id": "668014ea2b680c65290bbefd",
- "Type": "AssortmentUnlockRule",
- "entity": "6130ca3fd92c473c77020dbd",
- "data": "6130ca3fd92c473c77020dbd"
- }, {
- "_id": "668014ea2b680c65290bbefe",
- "Type": "AssortmentUnlockRule",
- "entity": "62e7e7bbe6da9612f743f1e0",
- "data": "62e7e7bbe6da9612f743f1e0"
- }, {
- "_id": "668014ea2b680c65290bbeff",
- "Type": "AssortmentUnlockRule",
- "entity": "5656eb674bdc2d35148b457c",
- "data": "5656eb674bdc2d35148b457c"
- }, {
- "_id": "668014ea2b680c65290bbf00",
- "Type": "AssortmentUnlockRule",
- "entity": "64b6620258b5637e2d71a636",
- "data": "64b6620258b5637e2d71a636"
- }, {
- "_id": "668014ea2b680c65290bbf01",
- "Type": "AssortmentUnlockRule",
- "entity": "655df24fdf80b12750626d0a",
- "data": "655df24fdf80b12750626d0a"
- }, {
- "_id": "668014ea2b680c65290bbf02",
- "Type": "AssortmentUnlockRule",
- "entity": "62975de85c32d414f8797433",
- "data": "62975de85c32d414f8797433"
- }, {
- "_id": "668014ea2b680c65290bbf03",
- "Type": "AssortmentUnlockRule",
- "entity": "657eb3773271d8578610fe28",
- "data": "657eb3773271d8578610fe28"
- }, {
- "_id": "668014ea2b680c65290bbf04",
- "Type": "AssortmentUnlockRule",
- "entity": "590c5d4b86f774784e1b9c45",
- "data": "590c5d4b86f774784e1b9c45"
- }, {
- "_id": "668014ea2b680c65290bbf05",
- "Type": "AssortmentUnlockRule",
- "entity": "6389c7750ef44505c87f5996",
- "data": "6389c7750ef44505c87f5996"
- }, {
- "_id": "668014ea2b680c65290bbf06",
- "Type": "AssortmentUnlockRule",
- "entity": "6357c98711fb55120211f7e1",
- "data": "6357c98711fb55120211f7e1"
- }, {
- "_id": "668014ea2b680c65290bbf07",
- "Type": "AssortmentUnlockRule",
- "entity": "5c110624d174af029e69734c",
- "data": "5c110624d174af029e69734c"
- }, {
- "_id": "668014ea2b680c65290bbf08",
- "Type": "AssortmentUnlockRule",
- "entity": "63920105a83e15700a00f168",
- "data": "63920105a83e15700a00f168"
- }, {
- "_id": "668014ea2b680c65290bbf09",
- "Type": "AssortmentUnlockRule",
- "entity": "6357c98711fb55120211f7e1",
- "data": "6357c98711fb55120211f7e1"
- }, {
- "_id": "668014ea2b680c65290bbf0a",
- "Type": "AssortmentUnlockRule",
- "entity": "656f664200d62bcd2e024077",
- "data": "656f664200d62bcd2e024077"
- }, {
- "_id": "668014ea2b680c65290bbf0b",
- "Type": "AssortmentUnlockRule",
- "entity": "62973e474bb5ab23071c2a70",
- "data": "62973e474bb5ab23071c2a70"
- }, {
- "_id": "668014ea2b680c65290bbf0c",
- "Type": "AssortmentUnlockRule",
- "entity": "655746010177119f4a097ff7",
- "data": "655746010177119f4a097ff7"
- }, {
- "_id": "668014ea2b680c65290bbf0d",
- "Type": "AssortmentUnlockRule",
- "entity": "6570aead4d84f81fd002a033",
- "data": "6570aead4d84f81fd002a033"
- }, {
- "_id": "668014ea2b680c65290bbf0e",
- "Type": "AssortmentUnlockRule",
- "entity": "62a0a043cf4a99369e2624a5",
- "data": "62a0a043cf4a99369e2624a5"
- }, {
- "_id": "668014ea2b680c65290bbf0f",
- "Type": "AssortmentUnlockRule",
- "entity": "5e85a9f4add9fe03027d9bf1",
- "data": "5e85a9f4add9fe03027d9bf1"
- }, {
- "_id": "668014ea2b680c65290bbf10",
- "Type": "AssortmentUnlockRule",
- "entity": "5c0a840b86f7742ffa4f2482",
- "data": "5c0a840b86f7742ffa4f2482"
- }, {
- "_id": "668014ea2b680c65290bbf11",
- "Type": "AssortmentUnlockRule",
- "entity": "6389c7f115805221fb410466",
- "data": "6389c7f115805221fb410466"
- }, {
- "_id": "668014ea2b680c65290bbf12",
- "Type": "AssortmentUnlockRule",
- "entity": "656f611f94b480b8a500c0db",
- "data": "656f611f94b480b8a500c0db"
- }, {
- "_id": "668014ea2b680c65290bbf13",
- "Type": "AssortmentUnlockRule",
- "entity": "62e7e7bbe6da9612f743f1e0",
- "data": "62e7e7bbe6da9612f743f1e0"
- }, {
- "_id": "668014ea2b680c65290bbf14",
- "Type": "AssortmentUnlockRule",
- "entity": "64c1525e3319a1cf380c4e09",
- "data": "64c1525e3319a1cf380c4e09"
- }, {
- "_id": "668014ea2b680c65290bbf15",
- "Type": "AssortmentUnlockRule",
- "entity": "5a327f7c86f77475187e509a",
- "data": "5a327f7c86f77475187e509a"
- }, {
- "_id": "668014ea2b680c65290bbf16",
- "Type": "AssortmentUnlockRule",
- "entity": "5c0e530286f7747fa1419862",
- "data": "5c0e530286f7747fa1419862"
- }, {
- "_id": "668014ea2b680c65290bbf17",
- "Type": "AssortmentUnlockRule",
- "entity": "5ede475b549eed7c6d5c18fb",
- "data": "5ede475b549eed7c6d5c18fb"
- }, {
- "_id": "668014ea2b680c65290bbf18",
- "Type": "AssortmentUnlockRule",
- "entity": "5b2388675acfc4771e1be0be",
- "data": "5b2388675acfc4771e1be0be"
- }, {
- "_id": "668014ea2b680c65290bbf19",
- "Type": "AssortmentUnlockRule",
- "entity": "63fc44e2429a8a166c7f61e6",
- "data": "63fc44e2429a8a166c7f61e6"
- }, {
- "_id": "668014ea2b680c65290bbf1a",
- "Type": "AssortmentUnlockRule",
- "entity": "601aa3d2b2bcb34913271e6d",
- "data": "601aa3d2b2bcb34913271e6d"
- }, {
- "_id": "668014ea2b680c65290bbf1b",
- "Type": "AssortmentUnlockRule",
- "entity": "656fa8d700d62bcd2e024084",
- "data": "656fa8d700d62bcd2e024084"
- }, {
- "_id": "668014ea2b680c65290bbf1c",
- "Type": "AssortmentUnlockRule",
- "entity": "618ba27d9008e4636a67f61d",
- "data": "618ba27d9008e4636a67f61d"
- }, {
- "_id": "668014ea2b680c65290bbf1d",
- "Type": "AssortmentUnlockRule",
- "entity": "657089638db3adca1009f4ca",
- "data": "657089638db3adca1009f4ca"
- }, {
- "_id": "668014ea2b680c65290bbf1e",
- "Type": "AssortmentUnlockRule",
- "entity": "5efb0da7a29a85116f6ea05f",
- "data": "5efb0da7a29a85116f6ea05f"
- }, {
- "_id": "668014ea2b680c65290bbf1f",
- "Type": "AssortmentUnlockRule",
- "entity": "63986a9ab483a550805be5ee",
- "data": "63986a9ab483a550805be5ee"
- }, {
- "_id": "668014ea2b680c65290bbf20",
- "Type": "AssortmentUnlockRule",
- "entity": "656fa25e94b480b8a500c0e0",
- "data": "656fa25e94b480b8a500c0e0"
- }, {
- "_id": "668014ea2b680c65290bbf21",
- "Type": "AssortmentUnlockRule",
- "entity": "6389c85357baa773a825b356",
- "data": "6389c85357baa773a825b356"
- }, {
- "_id": "668014ea2b680c65290bbf22",
- "Type": "AssortmentUnlockRule",
- "entity": "64f8c5c6c8626c7d46040335",
- "data": "64f8c5c6c8626c7d46040335"
- }, {
- "_id": "668014ea2b680c65290bbf23",
- "Type": "AssortmentUnlockRule",
- "entity": "63fc44e2429a8a166c7f61e6",
- "data": "63fc44e2429a8a166c7f61e6"
- }, {
- "_id": "668014ea2b680c65290bbf24",
- "Type": "AssortmentUnlockRule",
- "entity": "65573fa5655447403702a816",
- "data": "65573fa5655447403702a816"
- }
- ],
- "maxToSendPlayer": 1
- },
- "HIDEOUTCAT": {
+ "profileChangeEvents": [
+ {
+ "_id": "668014ea2b680c65290bbe1d",
+ "Type": "TraderSalesSum",
+ "value": 2500000,
+ "entity": "5ac3b934156ae10c4430e83c"
+ },
+ {
+ "_id": "668014ea2b680c65290bbe1e",
+ "Type": "TraderStanding",
+ "value": 0.6,
+ "entity": "5ac3b934156ae10c4430e83c"
+ },
+ {
+ "_id": "668014ea2b680c65290bbe1f",
+ "Type": "TraderSalesSum",
+ "value": 2600000,
+ "entity": "58330581ace78e27b8b10cee"
+ },
+ {
+ "_id": "668014ea2b680c65290bbe20",
+ "Type": "TraderStanding",
+ "value": 0.75,
+ "entity": "58330581ace78e27b8b10cee"
+ },
+ {
+ "_id": "668014ea2b680c65290bbe21",
+ "Type": "TraderSalesSum",
+ "value": 1725000,
+ "entity": "5c0647fdd443bc2504c2d371"
+ },
+ {
+ "_id": "668014ea2b680c65290bbe22",
+ "Type": "TraderStanding",
+ "value": 0.5,
+ "entity": "5c0647fdd443bc2504c2d371"
+ },
+ {
+ "_id": "668014ea2b680c65290bbe23",
+ "Type": "TraderSalesSum",
+ "value": 2500000,
+ "entity": "5a7c2eca46aef81a7ca2145d"
+ },
+ {
+ "_id": "668014ea2b680c65290bbe24",
+ "Type": "TraderStanding",
+ "value": 0.6,
+ "entity": "5a7c2eca46aef81a7ca2145d"
+ },
+ {
+ "_id": "668014ea2b680c65290bbe25",
+ "Type": "TraderSalesSum",
+ "value": 32000,
+ "entity": "5935c25fb3acc3127c3d8cd9"
+ },
+ {
+ "_id": "668014ea2b680c65290bbe26",
+ "Type": "TraderStanding",
+ "value": 0.6,
+ "entity": "5935c25fb3acc3127c3d8cd9"
+ },
+ {
+ "_id": "668014ea2b680c65290bbe27",
+ "Type": "TraderSalesSum",
+ "value": 2300000,
+ "entity": "54cb50c76803fa8b248b4571"
+ },
+ {
+ "_id": "668014ea2b680c65290bbe28",
+ "Type": "TraderStanding",
+ "value": 0.5,
+ "entity": "54cb50c76803fa8b248b4571"
+ },
+ {
+ "_id": "668014ea2b680c65290bbe29",
+ "Type": "TraderSalesSum",
+ "value": 900000,
+ "entity": "54cb57776803fa99248b456e"
+ },
+ {
+ "_id": "668014ea2b680c65290bbe2a",
+ "Type": "TraderStanding",
+ "value": 0.6,
+ "entity": "54cb57776803fa99248b456e"
+ },
+ {
+ "_id": "668014ea2b680c65290bbe2b",
+ "Type": "ProfileLevel",
+ "value": 2901143,
+ "entity": null
+ },
+ {
+ "_id": "668014ea2b680c65290bbe2c",
+ "Type": "SkillPoints",
+ "value": 2500,
+ "entity": "Endurance"
+ },
+ {
+ "_id": "668014ea2b680c65290bbe2d",
+ "Type": "SkillPoints",
+ "value": 2500,
+ "entity": "Strength"
+ },
+ {
+ "_id": "668014ea2b680c65290bbe2e",
+ "Type": "SkillPoints",
+ "value": 2500,
+ "entity": "Vitality"
+ },
+ {
+ "_id": "668014ea2b680c65290bbe2f",
+ "Type": "SkillPoints",
+ "value": 2500,
+ "entity": "Health"
+ },
+ {
+ "_id": "668014ea2b680c65290bbe30",
+ "Type": "SkillPoints",
+ "value": 2500,
+ "entity": "Metabolism"
+ },
+ {
+ "_id": "668014ea2b680c65290bbe31",
+ "Type": "SkillPoints",
+ "value": 2500,
+ "entity": "StressResistance"
+ },
+ {
+ "_id": "668014ea2b680c65290bbe32",
+ "Type": "SkillPoints",
+ "value": 2500,
+ "entity": "Immunity"
+ },
+ {
+ "_id": "668014ea2b680c65290bbe33",
+ "Type": "SkillPoints",
+ "value": 2500,
+ "entity": "Throwing"
+ },
+ {
+ "_id": "668014ea2b680c65290bbe34",
+ "Type": "SkillPoints",
+ "value": 2500,
+ "entity": "RecoilControl"
+ },
+ {
+ "_id": "668014ea2b680c65290bbe35",
+ "Type": "SkillPoints",
+ "value": 2500,
+ "entity": "Pistol"
+ },
+ {
+ "_id": "668014ea2b680c65290bbe36",
+ "Type": "SkillPoints",
+ "value": 2500,
+ "entity": "Revolver"
+ },
+ {
+ "_id": "668014ea2b680c65290bbe37",
+ "Type": "SkillPoints",
+ "value": 2500,
+ "entity": "SMG"
+ },
+ {
+ "_id": "668014ea2b680c65290bbe38",
+ "Type": "SkillPoints",
+ "value": 2500,
+ "entity": "Assault"
+ },
+ {
+ "_id": "668014ea2b680c65290bbe39",
+ "Type": "SkillPoints",
+ "value": 2500,
+ "entity": "Shotgun"
+ },
+ {
+ "_id": "668014ea2b680c65290bbe3a",
+ "Type": "SkillPoints",
+ "value": 2500,
+ "entity": "Sniper"
+ },
+ {
+ "_id": "668014ea2b680c65290bbe3b",
+ "Type": "SkillPoints",
+ "value": 2500,
+ "entity": "LMG"
+ },
+ {
+ "_id": "668014ea2b680c65290bbe3c",
+ "Type": "SkillPoints",
+ "value": 2500,
+ "entity": "HMG"
+ },
+ {
+ "_id": "668014ea2b680c65290bbe3d",
+ "Type": "SkillPoints",
+ "value": 2500,
+ "entity": "Launcher"
+ },
+ {
+ "_id": "668014ea2b680c65290bbe3e",
+ "Type": "SkillPoints",
+ "value": 2500,
+ "entity": "AttachedLauncher"
+ },
+ {
+ "_id": "668014ea2b680c65290bbe3f",
+ "Type": "SkillPoints",
+ "value": 2500,
+ "entity": "Melee"
+ },
+ {
+ "_id": "668014ea2b680c65290bbe40",
+ "Type": "SkillPoints",
+ "value": 2500,
+ "entity": "DMR"
+ },
+ {
+ "_id": "668014ea2b680c65290bbe41",
+ "Type": "SkillPoints",
+ "value": 2500,
+ "entity": "CovertMovement"
+ },
+ {
+ "_id": "668014ea2b680c65290bbe42",
+ "Type": "SkillPoints",
+ "value": 2500,
+ "entity": "Search"
+ },
+ {
+ "_id": "668014ea2b680c65290bbe43",
+ "Type": "SkillPoints",
+ "value": 2500,
+ "entity": "MagDrills"
+ },
+ {
+ "_id": "668014ea2b680c65290bbe44",
+ "Type": "SkillPoints",
+ "value": 2500,
+ "entity": "Perception"
+ },
+ {
+ "_id": "668014ea2b680c65290bbe45",
+ "Type": "SkillPoints",
+ "value": 2500,
+ "entity": "Intellect"
+ },
+ {
+ "_id": "668014ea2b680c65290bbe46",
+ "Type": "SkillPoints",
+ "value": 2500,
+ "entity": "Charisma"
+ },
+ {
+ "_id": "668014ea2b680c65290bbe47",
+ "Type": "SkillPoints",
+ "value": 2500,
+ "entity": "Memory"
+ },
+ {
+ "_id": "668014ea2b680c65290bbe48",
+ "Type": "SkillPoints",
+ "value": 2500,
+ "entity": "Surgery"
+ },
+ {
+ "_id": "668014ea2b680c65290bbe49",
+ "Type": "SkillPoints",
+ "value": 2500,
+ "entity": "AimDrills"
+ },
+ {
+ "_id": "668014ea2b680c65290bbe4a",
+ "Type": "SkillPoints",
+ "value": 2500,
+ "entity": "HideoutManagement"
+ },
+ {
+ "_id": "668014ea2b680c65290bbe4b",
+ "Type": "SkillPoints",
+ "value": 2500,
+ "entity": "Crafting"
+ },
+ {
+ "_id": "668014ea2b680c65290bbe4c",
+ "Type": "SkillPoints",
+ "value": 2500,
+ "entity": "Attention"
+ },
+ {
+ "_id": "668014ea2b680c65290bbe4d",
+ "Type": "SkillPoints",
+ "value": 2500,
+ "entity": "63"
+ },
+ {
+ "_id": "668014ea2b680c65290bbe4e",
+ "Type": "SkillPoints",
+ "value": 2500,
+ "entity": "39"
+ },
+ {
+ "_id": "668014ea2b680c65290bbe4f",
+ "Type": "SkillPoints",
+ "value": 2500,
+ "entity": "38"
+ },
+ {
+ "_id": "668014ea2b680c65290bbe50",
+ "Type": "SkillPoints",
+ "value": 2500,
+ "entity": "45"
+ },
+ {
+ "_id": "668014ea2b680c65290bbe51",
+ "Type": "ExamineAllItems"
+ },
+ {
+ "_id": "668014ea2b680c65290bbe52",
+ "Type": "UnlockTrader",
+ "value": 1,
+ "entity": "5c0647fdd443bc2504c2d371"
+ },
+ {
+ "_id": "668014ea2b680c65290bbe53",
+ "Type": "HideoutAreaLevel",
+ "value": 1,
+ "entity": "Workbench"
+ },
+ {
+ "_id": "668014ea2b680c65290bbe54",
+ "Type": "AssortmentUnlockRule",
+ "entity": "584149ad2459775a7726350e",
+ "data": "584149ad2459775a7726350e"
+ },
+ {
+ "_id": "668014ea2b680c65290bbe55",
+ "Type": "AssortmentUnlockRule",
+ "entity": "544fb45d4bdc2dee738b4568",
+ "data": "544fb45d4bdc2dee738b4568"
+ },
+ {
+ "_id": "668014ea2b680c65290bbe56",
+ "Type": "AssortmentUnlockRule",
+ "entity": "590c661e86f7741e566b646a",
+ "data": "590c661e86f7741e566b646a"
+ },
+ {
+ "_id": "668014ea2b680c65290bbe57",
+ "Type": "AssortmentUnlockRule",
+ "entity": "5a13df5286f774032f5454a0",
+ "data": "5a13df5286f774032f5454a0"
+ },
+ {
+ "_id": "668014ea2b680c65290bbe58",
+ "Type": "AssortmentUnlockRule",
+ "entity": "544fb3f34bdc2d03748b456a",
+ "data": "544fb3f34bdc2d03748b456a"
+ },
+ {
+ "_id": "668014ea2b680c65290bbe59",
+ "Type": "AssortmentUnlockRule",
+ "entity": "58d2912286f7744e27117493",
+ "data": "58d2912286f7744e27117493"
+ },
+ {
+ "_id": "668014ea2b680c65290bbe5a",
+ "Type": "AssortmentUnlockRule",
+ "entity": "57372140245977611f70ee91",
+ "data": "57372140245977611f70ee91"
+ },
+ {
+ "_id": "668014ea2b680c65290bbe5b",
+ "Type": "AssortmentUnlockRule",
+ "entity": "5ac8d6885acfc400180ae7b0",
+ "data": "5ac8d6885acfc400180ae7b0"
+ },
+ {
+ "_id": "668014ea2b680c65290bbe5c",
+ "Type": "AssortmentUnlockRule",
+ "entity": "5aa7e276e5b5b000171d0647",
+ "data": "5aa7e276e5b5b000171d0647"
+ },
+ {
+ "_id": "668014ea2b680c65290bbe5d",
+ "Type": "AssortmentUnlockRule",
+ "entity": "59eb7ebe86f7740b373438ce",
+ "data": "59eb7ebe86f7740b373438ce"
+ },
+ {
+ "_id": "668014ea2b680c65290bbe5e",
+ "Type": "AssortmentUnlockRule",
+ "entity": "5656d7c34bdc2d9d198b4587",
+ "data": "5656d7c34bdc2d9d198b4587"
+ },
+ {
+ "_id": "668014ea2b680c65290bbe5f",
+ "Type": "AssortmentUnlockRule",
+ "entity": "55d482194bdc2d1d4e8b456b",
+ "data": "55d482194bdc2d1d4e8b456b"
+ },
+ {
+ "_id": "668014ea2b680c65290bbe60",
+ "Type": "AssortmentUnlockRule",
+ "entity": "58dffc5d86f77407c744a847",
+ "data": "58dffc5d86f77407c744a847"
+ },
+ {
+ "_id": "668014ea2b680c65290bbe61",
+ "Type": "AssortmentUnlockRule",
+ "entity": "57da93632459771cb65bf83f",
+ "data": "57da93632459771cb65bf83f"
+ },
+ {
+ "_id": "668014ea2b680c65290bbe62",
+ "Type": "AssortmentUnlockRule",
+ "entity": "56dff0bed2720bb0668b4567",
+ "data": "56dff0bed2720bb0668b4567"
+ },
+ {
+ "_id": "668014ea2b680c65290bbe63",
+ "Type": "AssortmentUnlockRule",
+ "entity": "59bfe68886f7746004266202",
+ "data": "59bfe68886f7746004266202"
+ },
+ {
+ "_id": "668014ea2b680c65290bbe64",
+ "Type": "AssortmentUnlockRule",
+ "entity": "59e77a2386f7742ee578960a",
+ "data": "59e77a2386f7742ee578960a"
+ },
+ {
+ "_id": "668014ea2b680c65290bbe65",
+ "Type": "AssortmentUnlockRule",
+ "entity": "5a269f97c4a282000b151807",
+ "data": "5a269f97c4a282000b151807"
+ },
+ {
+ "_id": "668014ea2b680c65290bbe66",
+ "Type": "AssortmentUnlockRule",
+ "entity": "58d3db5386f77426186285a0",
+ "data": "58d3db5386f77426186285a0"
+ },
+ {
+ "_id": "668014ea2b680c65290bbe67",
+ "Type": "AssortmentUnlockRule",
+ "entity": "5a3a85af86f774745637d46c",
+ "data": "5a3a85af86f774745637d46c"
+ },
+ {
+ "_id": "668014ea2b680c65290bbe68",
+ "Type": "AssortmentUnlockRule",
+ "entity": "5a33e75ac4a2826c6e06d759",
+ "data": "5a33e75ac4a2826c6e06d759"
+ },
+ {
+ "_id": "668014ea2b680c65290bbe69",
+ "Type": "AssortmentUnlockRule",
+ "entity": "545cdb794bdc2d3a198b456a",
+ "data": "545cdb794bdc2d3a198b456a"
+ },
+ {
+ "_id": "668014ea2b680c65290bbe6a",
+ "Type": "AssortmentUnlockRule",
+ "entity": "545cdae64bdc2d39198b4568",
+ "data": "545cdae64bdc2d39198b4568"
+ },
+ {
+ "_id": "668014ea2b680c65290bbe6b",
+ "Type": "AssortmentUnlockRule",
+ "entity": "5649ae4a4bdc2d1b2b8b4588",
+ "data": "5649ae4a4bdc2d1b2b8b4588"
+ },
+ {
+ "_id": "668014ea2b680c65290bbe6c",
+ "Type": "AssortmentUnlockRule",
+ "entity": "58dffd4586f77408a27629b2",
+ "data": "58dffd4586f77408a27629b2"
+ },
+ {
+ "_id": "668014ea2b680c65290bbe6d",
+ "Type": "AssortmentUnlockRule",
+ "entity": "5751a25924597722c463c472",
+ "data": "5751a25924597722c463c472"
+ },
+ {
+ "_id": "668014ea2b680c65290bbe6e",
+ "Type": "AssortmentUnlockRule",
+ "entity": "59c1383d86f774290a37e0ca",
+ "data": "59c1383d86f774290a37e0ca"
+ },
+ {
+ "_id": "668014ea2b680c65290bbe6f",
+ "Type": "AssortmentUnlockRule",
+ "entity": "5a0c59791526d8dba737bba7",
+ "data": "5a0c59791526d8dba737bba7"
+ },
+ {
+ "_id": "668014ea2b680c65290bbe70",
+ "Type": "AssortmentUnlockRule",
+ "entity": "576fd4ec2459777f0b518431",
+ "data": "576fd4ec2459777f0b518431"
+ },
+ {
+ "_id": "668014ea2b680c65290bbe71",
+ "Type": "AssortmentUnlockRule",
+ "entity": "57a0e5022459774d1673f889",
+ "data": "57a0e5022459774d1673f889"
+ },
+ {
+ "_id": "668014ea2b680c65290bbe72",
+ "Type": "AssortmentUnlockRule",
+ "entity": "584984812459776a704a82a6",
+ "data": "584984812459776a704a82a6"
+ },
+ {
+ "_id": "668014ea2b680c65290bbe73",
+ "Type": "AssortmentUnlockRule",
+ "entity": "59c0ec5b86f77435b128bfca",
+ "data": "59c0ec5b86f77435b128bfca"
+ },
+ {
+ "_id": "668014ea2b680c65290bbe74",
+ "Type": "AssortmentUnlockRule",
+ "entity": "57ffb0e42459777d047111c5",
+ "data": "57ffb0e42459777d047111c5"
+ },
+ {
+ "_id": "668014ea2b680c65290bbe75",
+ "Type": "AssortmentUnlockRule",
+ "entity": "58dd3ad986f77403051cba8f",
+ "data": "58dd3ad986f77403051cba8f"
+ },
+ {
+ "_id": "668014ea2b680c65290bbe76",
+ "Type": "AssortmentUnlockRule",
+ "entity": "5a16b7e1fcdbcb00165aa6c9",
+ "data": "5a16b7e1fcdbcb00165aa6c9"
+ },
+ {
+ "_id": "668014ea2b680c65290bbe77",
+ "Type": "AssortmentUnlockRule",
+ "entity": "56eabf3bd2720b75698b4569",
+ "data": "56eabf3bd2720b75698b4569"
+ },
+ {
+ "_id": "668014ea2b680c65290bbe78",
+ "Type": "AssortmentUnlockRule",
+ "entity": "588226ef24597767af46e39c",
+ "data": "588226ef24597767af46e39c"
+ },
+ {
+ "_id": "668014ea2b680c65290bbe79",
+ "Type": "AssortmentUnlockRule",
+ "entity": "59411abb86f77478f702b5d2",
+ "data": "59411abb86f77478f702b5d2"
+ },
+ {
+ "_id": "668014ea2b680c65290bbe7a",
+ "Type": "AssortmentUnlockRule",
+ "entity": "58414a16245977599247970a",
+ "data": "58414a16245977599247970a"
+ },
+ {
+ "_id": "668014ea2b680c65290bbe7b",
+ "Type": "AssortmentUnlockRule",
+ "entity": "590c678286f77426c9660122",
+ "data": "590c678286f77426c9660122"
+ },
+ {
+ "_id": "668014ea2b680c65290bbe7c",
+ "Type": "AssortmentUnlockRule",
+ "entity": "584147982459775a6c55e931",
+ "data": "584147982459775a6c55e931"
+ },
+ {
+ "_id": "668014ea2b680c65290bbe7d",
+ "Type": "AssortmentUnlockRule",
+ "entity": "5a8ae65f86f774377a23ed55",
+ "data": "5a8ae65f86f774377a23ed55"
+ },
+ {
+ "_id": "668014ea2b680c65290bbe7e",
+ "Type": "AssortmentUnlockRule",
+ "entity": "5af08cc686f77424a61595f2",
+ "data": "5af08cc686f77424a61595f2"
+ },
+ {
+ "_id": "668014ea2b680c65290bbe7f",
+ "Type": "AssortmentUnlockRule",
+ "entity": "5b07dd285acfc4001754240d",
+ "data": "5b07dd285acfc4001754240d"
+ },
+ {
+ "_id": "668014ea2b680c65290bbe80",
+ "Type": "AssortmentUnlockRule",
+ "entity": "5b4391a586f7745321235ab2",
+ "data": "5b4391a586f7745321235ab2"
+ },
+ {
+ "_id": "668014ea2b680c65290bbe81",
+ "Type": "AssortmentUnlockRule",
+ "entity": "5c1127d0d174af29be75cf68",
+ "data": "5c1127d0d174af29be75cf68"
+ },
+ {
+ "_id": "668014ea2b680c65290bbe82",
+ "Type": "AssortmentUnlockRule",
+ "entity": "5c0e722886f7740458316a57",
+ "data": "5c0e722886f7740458316a57"
+ },
+ {
+ "_id": "668014ea2b680c65290bbe83",
+ "Type": "AssortmentUnlockRule",
+ "entity": "5bbde409d4351e003562b036",
+ "data": "5bbde409d4351e003562b036"
+ },
+ {
+ "_id": "668014ea2b680c65290bbe84",
+ "Type": "AssortmentUnlockRule",
+ "entity": "5b4329f05acfc47a86086aa1",
+ "data": "5b4329f05acfc47a86086aa1"
+ },
+ {
+ "_id": "668014ea2b680c65290bbe85",
+ "Type": "AssortmentUnlockRule",
+ "entity": "5ba2678ad4351e44f824b344",
+ "data": "5ba2678ad4351e44f824b344"
+ },
+ {
+ "_id": "668014ea2b680c65290bbe86",
+ "Type": "AssortmentUnlockRule",
+ "entity": "56ea8d2fd2720b7c698b4570",
+ "data": "56ea8d2fd2720b7c698b4570"
+ },
+ {
+ "_id": "668014ea2b680c65290bbe87",
+ "Type": "AssortmentUnlockRule",
+ "entity": "5bc5a372d4351e44f824d17f",
+ "data": "5bc5a372d4351e44f824d17f"
+ },
+ {
+ "_id": "668014ea2b680c65290bbe88",
+ "Type": "AssortmentUnlockRule",
+ "entity": "5bbde41ed4351e003562b038",
+ "data": "5bbde41ed4351e003562b038"
+ },
+ {
+ "_id": "668014ea2b680c65290bbe89",
+ "Type": "AssortmentUnlockRule",
+ "entity": "5bc5a35cd4351e450201232f",
+ "data": "5bc5a35cd4351e450201232f"
+ },
+ {
+ "_id": "668014ea2b680c65290bbe8a",
+ "Type": "AssortmentUnlockRule",
+ "entity": "5cc80f8fe4a949033b0224a2",
+ "data": "5cc80f8fe4a949033b0224a2"
+ },
+ {
+ "_id": "668014ea2b680c65290bbe8b",
+ "Type": "AssortmentUnlockRule",
+ "entity": "5a966f51a2750c00156aacf6",
+ "data": "5a966f51a2750c00156aacf6"
+ },
+ {
+ "_id": "668014ea2b680c65290bbe8c",
+ "Type": "AssortmentUnlockRule",
+ "entity": "5ac78a9b86f7741cca0bbd8d",
+ "data": "5ac78a9b86f7741cca0bbd8d"
+ },
+ {
+ "_id": "668014ea2b680c65290bbe8d",
+ "Type": "AssortmentUnlockRule",
+ "entity": "5b44cf1486f77431723e3d05",
+ "data": "5b44cf1486f77431723e3d05"
+ },
+ {
+ "_id": "668014ea2b680c65290bbe8e",
+ "Type": "AssortmentUnlockRule",
+ "entity": "5aafbde786f774389d0cbc0f",
+ "data": "5aafbde786f774389d0cbc0f"
+ },
+ {
+ "_id": "668014ea2b680c65290bbe8f",
+ "Type": "AssortmentUnlockRule",
+ "entity": "59fb137a86f7740adb646af1",
+ "data": "59fb137a86f7740adb646af1"
+ },
+ {
+ "_id": "668014ea2b680c65290bbe90",
+ "Type": "AssortmentUnlockRule",
+ "entity": "5bae13ded4351e44f824bf38",
+ "data": "5bae13ded4351e44f824bf38"
+ },
+ {
+ "_id": "668014ea2b680c65290bbe91",
+ "Type": "AssortmentUnlockRule",
+ "entity": "5bbdb870d4351e00367fb67d",
+ "data": "5bbdb870d4351e00367fb67d"
+ },
+ {
+ "_id": "668014ea2b680c65290bbe92",
+ "Type": "AssortmentUnlockRule",
+ "entity": "5b3116595acfc40019476364",
+ "data": "5b3116595acfc40019476364"
+ },
+ {
+ "_id": "668014ea2b680c65290bbe93",
+ "Type": "AssortmentUnlockRule",
+ "entity": "5b83f22086f77464e15a1d5f",
+ "data": "5b83f22086f77464e15a1d5f"
+ },
+ {
+ "_id": "668014ea2b680c65290bbe94",
+ "Type": "AssortmentUnlockRule",
+ "entity": "5bbdb83fd4351e44f824c44b",
+ "data": "5bbdb83fd4351e44f824c44b"
+ },
+ {
+ "_id": "668014ea2b680c65290bbe95",
+ "Type": "AssortmentUnlockRule",
+ "entity": "5c0a2cec0db834001b7ce47d",
+ "data": "5c0a2cec0db834001b7ce47d"
+ },
+ {
+ "_id": "668014ea2b680c65290bbe96",
+ "Type": "AssortmentUnlockRule",
+ "entity": "5ac4ad3686f774181345c3da",
+ "data": "5ac4ad3686f774181345c3da"
+ },
+ {
+ "_id": "668014ea2b680c65290bbe97",
+ "Type": "AssortmentUnlockRule",
+ "entity": "58d2912286f7744e27117493",
+ "data": "58d2912286f7744e27117493"
+ },
+ {
+ "_id": "668014ea2b680c65290bbe98",
+ "Type": "AssortmentUnlockRule",
+ "entity": "56eabcd4d2720b66698b4574",
+ "data": "56eabcd4d2720b66698b4574"
+ },
+ {
+ "_id": "668014ea2b680c65290bbe99",
+ "Type": "AssortmentUnlockRule",
+ "entity": "5bbdb811d4351e45020113c7",
+ "data": "5bbdb811d4351e45020113c7"
+ },
+ {
+ "_id": "668014ea2b680c65290bbe9a",
+ "Type": "AssortmentUnlockRule",
+ "entity": "5bc5a351d4351e003477a414",
+ "data": "5bc5a351d4351e003477a414"
+ },
+ {
+ "_id": "668014ea2b680c65290bbe9b",
+ "Type": "AssortmentUnlockRule",
+ "entity": "5c1260dc86f7746b106e8748",
+ "data": "5c1260dc86f7746b106e8748"
+ },
+ {
+ "_id": "668014ea2b680c65290bbe9c",
+ "Type": "AssortmentUnlockRule",
+ "entity": "5b44d0de86f774503d30cba8",
+ "data": "5b44d0de86f774503d30cba8"
+ },
+ {
+ "_id": "668014ea2b680c65290bbe9d",
+ "Type": "AssortmentUnlockRule",
+ "entity": "5a8c436686f7740f394d10b5",
+ "data": "5a8c436686f7740f394d10b5"
+ },
+ {
+ "_id": "668014ea2b680c65290bbe9e",
+ "Type": "AssortmentUnlockRule",
+ "entity": "5b07db875acfc40dc528a5f6",
+ "data": "5b07db875acfc40dc528a5f6"
+ },
+ {
+ "_id": "668014ea2b680c65290bbe9f",
+ "Type": "AssortmentUnlockRule",
+ "entity": "5b057b4f5acfc4771e1bd3e9",
+ "data": "5b057b4f5acfc4771e1bd3e9"
+ },
+ {
+ "_id": "668014ea2b680c65290bbea0",
+ "Type": "AssortmentUnlockRule",
+ "entity": "5c10c8fd86f7743d7d706df3",
+ "data": "5c10c8fd86f7743d7d706df3"
+ },
+ {
+ "_id": "668014ea2b680c65290bbea1",
+ "Type": "AssortmentUnlockRule",
+ "entity": "5b44cd8b86f774503d30cba2",
+ "data": "5b44cd8b86f774503d30cba2"
+ },
+ {
+ "_id": "668014ea2b680c65290bbea2",
+ "Type": "AssortmentUnlockRule",
+ "entity": "5c0e3eb886f7742015526062",
+ "data": "5c0e3eb886f7742015526062"
+ },
+ {
+ "_id": "668014ea2b680c65290bbea3",
+ "Type": "AssortmentUnlockRule",
+ "entity": "5ca21c6986f77479963115a7",
+ "data": "5ca21c6986f77479963115a7"
+ },
+ {
+ "_id": "668014ea2b680c65290bbea4",
+ "Type": "AssortmentUnlockRule",
+ "entity": "5bae13bad4351e00320204af",
+ "data": "5bae13bad4351e00320204af"
+ },
+ {
+ "_id": "668014ea2b680c65290bbea5",
+ "Type": "AssortmentUnlockRule",
+ "entity": "593d493f86f7745e6b2ceb22",
+ "data": "593d493f86f7745e6b2ceb22"
+ },
+ {
+ "_id": "668014ea2b680c65290bbea6",
+ "Type": "AssortmentUnlockRule",
+ "entity": "5b40e2bc5acfc40016388216",
+ "data": "5b40e2bc5acfc40016388216"
+ },
+ {
+ "_id": "668014ea2b680c65290bbea7",
+ "Type": "AssortmentUnlockRule",
+ "entity": "5c0e774286f77468413cc5b2",
+ "data": "5c0e774286f77468413cc5b2"
+ },
+ {
+ "_id": "668014ea2b680c65290bbea8",
+ "Type": "AssortmentUnlockRule",
+ "entity": "5c0e51be86f774598e797894",
+ "data": "5c0e51be86f774598e797894"
+ },
+ {
+ "_id": "668014ea2b680c65290bbea9",
+ "Type": "AssortmentUnlockRule",
+ "entity": "5bffdd7e0db834001b734a1a",
+ "data": "5bffdd7e0db834001b734a1a"
+ },
+ {
+ "_id": "668014ea2b680c65290bbeaa",
+ "Type": "AssortmentUnlockRule",
+ "entity": "5bffe7930db834001b734a39",
+ "data": "5bffe7930db834001b734a39"
+ },
+ {
+ "_id": "668014ea2b680c65290bbeab",
+ "Type": "AssortmentUnlockRule",
+ "entity": "5c0d1e9386f77440120288b7",
+ "data": "5c0d1e9386f77440120288b7"
+ },
+ {
+ "_id": "668014ea2b680c65290bbeac",
+ "Type": "AssortmentUnlockRule",
+ "entity": "5c127c4486f7745625356c13",
+ "data": "5c127c4486f7745625356c13"
+ },
+ {
+ "_id": "668014ea2b680c65290bbead",
+ "Type": "AssortmentUnlockRule",
+ "entity": "5aafbde786f774389d0cbc0f",
+ "data": "5aafbde786f774389d0cbc0f"
+ },
+ {
+ "_id": "668014ea2b680c65290bbeae",
+ "Type": "AssortmentUnlockRule",
+ "entity": "5ac4ad7586f7747d14551da3",
+ "data": "5ac4ad7586f7747d14551da3"
+ },
+ {
+ "_id": "668014ea2b680c65290bbeaf",
+ "Type": "AssortmentUnlockRule",
+ "entity": "590c657e86f77412b013051d",
+ "data": "590c657e86f77412b013051d"
+ },
+ {
+ "_id": "668014ea2b680c65290bbeb0",
+ "Type": "AssortmentUnlockRule",
+ "entity": "5b6d9ce188a4501afc1b2b25",
+ "data": "5b6d9ce188a4501afc1b2b25"
+ },
+ {
+ "_id": "668014ea2b680c65290bbeb1",
+ "Type": "AssortmentUnlockRule",
+ "entity": "5c0e66e2d174af02a96252f4",
+ "data": "5c0e66e2d174af02a96252f4"
+ },
+ {
+ "_id": "668014ea2b680c65290bbeb2",
+ "Type": "AssortmentUnlockRule",
+ "entity": "5cc86832d7f00c000d3a6e6c",
+ "data": "5cc86832d7f00c000d3a6e6c"
+ },
+ {
+ "_id": "668014ea2b680c65290bbeb3",
+ "Type": "AssortmentUnlockRule",
+ "entity": "5c17a7ed2e2216152142459c",
+ "data": "5c17a7ed2e2216152142459c"
+ },
+ {
+ "_id": "668014ea2b680c65290bbeb4",
+ "Type": "AssortmentUnlockRule",
+ "entity": "584148f2245977598f1ad387",
+ "data": "584148f2245977598f1ad387"
+ },
+ {
+ "_id": "668014ea2b680c65290bbeb5",
+ "Type": "AssortmentUnlockRule",
+ "entity": "5d5e7d28a4b936645d161203",
+ "data": "5d5e7d28a4b936645d161203"
+ },
+ {
+ "_id": "668014ea2b680c65290bbeb6",
+ "Type": "AssortmentUnlockRule",
+ "entity": "5c1cd46f2e22164bef5cfedb",
+ "data": "5c1cd46f2e22164bef5cfedb"
+ },
+ {
+ "_id": "668014ea2b680c65290bbeb7",
+ "Type": "AssortmentUnlockRule",
+ "entity": "5d02797c86f774203f38e30a",
+ "data": "5d02797c86f774203f38e30a"
+ },
+ {
+ "_id": "668014ea2b680c65290bbeb8",
+ "Type": "AssortmentUnlockRule",
+ "entity": "5d23467086f77443f37fc602",
+ "data": "5d23467086f77443f37fc602"
+ },
+ {
+ "_id": "668014ea2b680c65290bbeb9",
+ "Type": "AssortmentUnlockRule",
+ "entity": "5d4d617f86f77449c463d107",
+ "data": "5d4d617f86f77449c463d107"
+ },
+ {
+ "_id": "668014ea2b680c65290bbeba",
+ "Type": "AssortmentUnlockRule",
+ "entity": "5aa7d193e5b5b000171d063f",
+ "data": "5aa7d193e5b5b000171d063f"
+ },
+ {
+ "_id": "668014ea2b680c65290bbebb",
+ "Type": "AssortmentUnlockRule",
+ "entity": "5a1eaa87fcdbcb001865f75e",
+ "data": "5a1eaa87fcdbcb001865f75e"
+ },
+ {
+ "_id": "668014ea2b680c65290bbebc",
+ "Type": "AssortmentUnlockRule",
+ "entity": "5af0454c86f7746bf20992e8",
+ "data": "5af0454c86f7746bf20992e8"
+ },
+ {
+ "_id": "668014ea2b680c65290bbebd",
+ "Type": "AssortmentUnlockRule",
+ "entity": "5ea2a8e200685063ec28c05a",
+ "data": "5ea2a8e200685063ec28c05a"
+ },
+ {
+ "_id": "668014ea2b680c65290bbebe",
+ "Type": "AssortmentUnlockRule",
+ "entity": "5d44069ca4b9361ebd26fc37",
+ "data": "5d44069ca4b9361ebd26fc37"
+ },
+ {
+ "_id": "668014ea2b680c65290bbebf",
+ "Type": "AssortmentUnlockRule",
+ "entity": "5cbda392ae92155f3c17c39f",
+ "data": "5cbda392ae92155f3c17c39f"
+ },
+ {
+ "_id": "668014ea2b680c65290bbec0",
+ "Type": "AssortmentUnlockRule",
+ "entity": "5dd800bde492226366631317",
+ "data": "5dd800bde492226366631317"
+ },
+ {
+ "_id": "668014ea2b680c65290bbec1",
+ "Type": "AssortmentUnlockRule",
+ "entity": "5e00c1ad86f774747333222c",
+ "data": "5e00c1ad86f774747333222c"
+ },
+ {
+ "_id": "668014ea2b680c65290bbec2",
+ "Type": "AssortmentUnlockRule",
+ "entity": "5dfa3d2b0dee1b22f862eade",
+ "data": "5dfa3d2b0dee1b22f862eade"
+ },
+ {
+ "_id": "668014ea2b680c65290bbec3",
+ "Type": "AssortmentUnlockRule",
+ "entity": "5f60c74e3b85f6263c145586",
+ "data": "5f60c74e3b85f6263c145586"
+ },
+ {
+ "_id": "668014ea2b680c65290bbec4",
+ "Type": "AssortmentUnlockRule",
+ "entity": "5df8a4d786f77412672a1e3b",
+ "data": "5df8a4d786f77412672a1e3b"
+ },
+ {
+ "_id": "668014ea2b680c65290bbec5",
+ "Type": "AssortmentUnlockRule",
+ "entity": "5d383f5d86f7742a15793872",
+ "data": "5d383f5d86f7742a15793872"
+ },
+ {
+ "_id": "668014ea2b680c65290bbec6",
+ "Type": "AssortmentUnlockRule",
+ "entity": "5dd800eae49222636663133b",
+ "data": "5dd800eae49222636663133b"
+ },
+ {
+ "_id": "668014ea2b680c65290bbec7",
+ "Type": "AssortmentUnlockRule",
+ "entity": "5c793fb92e221644f31bfb64",
+ "data": "5c793fb92e221644f31bfb64"
+ },
+ {
+ "_id": "668014ea2b680c65290bbec8",
+ "Type": "AssortmentUnlockRule",
+ "entity": "5d025cc1d7ad1a53845279ef",
+ "data": "5d025cc1d7ad1a53845279ef"
+ },
+ {
+ "_id": "668014ea2b680c65290bbec9",
+ "Type": "AssortmentUnlockRule",
+ "entity": "5cbdc23eae9215001136a407",
+ "data": "5cbdc23eae9215001136a407"
+ },
+ {
+ "_id": "668014ea2b680c65290bbeca",
+ "Type": "AssortmentUnlockRule",
+ "entity": "5d7b845786f7743c1e531da7",
+ "data": "5d7b845786f7743c1e531da7"
+ },
+ {
+ "_id": "668014ea2b680c65290bbecb",
+ "Type": "AssortmentUnlockRule",
+ "entity": "5d383e1a86f7742a1468ce63",
+ "data": "5d383e1a86f7742a1468ce63"
+ },
+ {
+ "_id": "668014ea2b680c65290bbecc",
+ "Type": "AssortmentUnlockRule",
+ "entity": "5e0354f786f77425b53eb6c5",
+ "data": "5e0354f786f77425b53eb6c5"
+ },
+ {
+ "_id": "668014ea2b680c65290bbecd",
+ "Type": "AssortmentUnlockRule",
+ "entity": "5e0340ab86f7745bb7339235",
+ "data": "5e0340ab86f7745bb7339235"
+ },
+ {
+ "_id": "668014ea2b680c65290bbece",
+ "Type": "AssortmentUnlockRule",
+ "entity": "5d38517786f7742a1468cf6a",
+ "data": "5d38517786f7742a1468cf6a"
+ },
+ {
+ "_id": "668014ea2b680c65290bbecf",
+ "Type": "AssortmentUnlockRule",
+ "entity": "5c0e446786f7742013381639",
+ "data": "5c0e446786f7742013381639"
+ },
+ {
+ "_id": "668014ea2b680c65290bbed0",
+ "Type": "AssortmentUnlockRule",
+ "entity": "5d383ee786f7742a15793860",
+ "data": "5d383ee786f7742a15793860"
+ },
+ {
+ "_id": "668014ea2b680c65290bbed1",
+ "Type": "AssortmentUnlockRule",
+ "entity": "609e8540d5c319764c2bc2e9",
+ "data": "609e8540d5c319764c2bc2e9"
+ },
+ {
+ "_id": "668014ea2b680c65290bbed2",
+ "Type": "AssortmentUnlockRule",
+ "entity": "64abd93857958b4249003418",
+ "data": "64abd93857958b4249003418"
+ },
+ {
+ "_id": "668014ea2b680c65290bbed3",
+ "Type": "AssortmentUnlockRule",
+ "entity": "6065878ac9cf8012264142fd",
+ "data": "6065878ac9cf8012264142fd"
+ },
+ {
+ "_id": "668014ea2b680c65290bbed4",
+ "Type": "AssortmentUnlockRule",
+ "entity": "618ba27d9008e4636a67f61d",
+ "data": "618ba27d9008e4636a67f61d"
+ },
+ {
+ "_id": "668014ea2b680c65290bbed5",
+ "Type": "AssortmentUnlockRule",
+ "entity": "59e6920f86f77411d82aa167",
+ "data": "59e6920f86f77411d82aa167"
+ },
+ {
+ "_id": "668014ea2b680c65290bbed6",
+ "Type": "AssortmentUnlockRule",
+ "entity": "624d7ae691f0160c7324c402",
+ "data": "624d7ae691f0160c7324c402"
+ },
+ {
+ "_id": "668014ea2b680c65290bbed7",
+ "Type": "AssortmentUnlockRule",
+ "entity": "628cd624459354321c4b7fa2",
+ "data": "628cd624459354321c4b7fa2"
+ },
+ {
+ "_id": "668014ea2b680c65290bbed8",
+ "Type": "AssortmentUnlockRule",
+ "entity": "5fd251c90d9c95034825edb5",
+ "data": "5fd251c90d9c95034825edb5"
+ },
+ {
+ "_id": "668014ea2b680c65290bbed9",
+ "Type": "AssortmentUnlockRule",
+ "entity": "5fd25119dd870108a754a163",
+ "data": "5fd25119dd870108a754a163"
+ },
+ {
+ "_id": "668014ea2b680c65290bbeda",
+ "Type": "AssortmentUnlockRule",
+ "entity": "619d26ccc7791e3af27ae3cd",
+ "data": "619d26ccc7791e3af27ae3cd"
+ },
+ {
+ "_id": "668014ea2b680c65290bbedb",
+ "Type": "AssortmentUnlockRule",
+ "entity": "6130c43c67085e45ef1405a1",
+ "data": "6130c43c67085e45ef1405a1"
+ },
+ {
+ "_id": "668014ea2b680c65290bbedc",
+ "Type": "AssortmentUnlockRule",
+ "entity": "60a283193cb70855c43a381d",
+ "data": "60a283193cb70855c43a381d"
+ },
+ {
+ "_id": "668014ea2b680c65290bbedd",
+ "Type": "AssortmentUnlockRule",
+ "entity": "619b69037b9de8162902673e",
+ "data": "619b69037b9de8162902673e"
+ },
+ {
+ "_id": "668014ea2b680c65290bbede",
+ "Type": "AssortmentUnlockRule",
+ "entity": "5656eb674bdc2d35148b457c",
+ "data": "5656eb674bdc2d35148b457c"
+ },
+ {
+ "_id": "668014ea2b680c65290bbedf",
+ "Type": "AssortmentUnlockRule",
+ "entity": "60a3c70cde5f453f634816a3",
+ "data": "60a3c70cde5f453f634816a3"
+ },
+ {
+ "_id": "668014ea2b680c65290bbee0",
+ "Type": "AssortmentUnlockRule",
+ "entity": "6193e590069d61205d490dd8",
+ "data": "6193e590069d61205d490dd8"
+ },
+ {
+ "_id": "668014ea2b680c65290bbee1",
+ "Type": "AssortmentUnlockRule",
+ "entity": "60098ad7c2240c0fe85c570a",
+ "data": "60098ad7c2240c0fe85c570a"
+ },
+ {
+ "_id": "668014ea2b680c65290bbee2",
+ "Type": "AssortmentUnlockRule",
+ "entity": "5ca2151486f774244a3b8d30",
+ "data": "5ca2151486f774244a3b8d30"
+ },
+ {
+ "_id": "668014ea2b680c65290bbee3",
+ "Type": "AssortmentUnlockRule",
+ "entity": "6193e108c1982475fa2a7f16",
+ "data": "6193e108c1982475fa2a7f16"
+ },
+ {
+ "_id": "668014ea2b680c65290bbee4",
+ "Type": "AssortmentUnlockRule",
+ "entity": "60479fb29c15b12b9a480fb0",
+ "data": "60479fb29c15b12b9a480fb0"
+ },
+ {
+ "_id": "668014ea2b680c65290bbee5",
+ "Type": "AssortmentUnlockRule",
+ "entity": "5ede475b549eed7c6d5c18fb",
+ "data": "5ede475b549eed7c6d5c18fb"
+ },
+ {
+ "_id": "668014ea2b680c65290bbee6",
+ "Type": "AssortmentUnlockRule",
+ "entity": "5e035eb586f774756048ec12",
+ "data": "5e035eb586f774756048ec12"
+ },
+ {
+ "_id": "668014ea2b680c65290bbee7",
+ "Type": "AssortmentUnlockRule",
+ "entity": "5e85a9f4add9fe03027d9bf1",
+ "data": "5e85a9f4add9fe03027d9bf1"
+ },
+ {
+ "_id": "668014ea2b680c65290bbee8",
+ "Type": "AssortmentUnlockRule",
+ "entity": "6038d614d10cbf667352dd44",
+ "data": "6038d614d10cbf667352dd44"
+ },
+ {
+ "_id": "668014ea2b680c65290bbee9",
+ "Type": "AssortmentUnlockRule",
+ "entity": "64be79e2bf8412471d0d9bcc",
+ "data": "64be79e2bf8412471d0d9bcc"
+ },
+ {
+ "_id": "668014ea2b680c65290bbeea",
+ "Type": "AssortmentUnlockRule",
+ "entity": "5d02797c86f774203f38e30a",
+ "data": "5d02797c86f774203f38e30a"
+ },
+ {
+ "_id": "668014ea2b680c65290bbeeb",
+ "Type": "AssortmentUnlockRule",
+ "entity": "618ab04934aa2e47480fba2b",
+ "data": "618ab04934aa2e47480fba2b"
+ },
+ {
+ "_id": "668014ea2b680c65290bbeec",
+ "Type": "AssortmentUnlockRule",
+ "entity": "615d8e9867085e45ef1409c6",
+ "data": "615d8e9867085e45ef1409c6"
+ },
+ {
+ "_id": "668014ea2b680c65290bbeed",
+ "Type": "AssortmentUnlockRule",
+ "entity": "5c0e655586f774045612eeb2",
+ "data": "5c0e655586f774045612eeb2"
+ },
+ {
+ "_id": "668014ea2b680c65290bbeee",
+ "Type": "AssortmentUnlockRule",
+ "entity": "5ef1ba28c64c5d0dfc0571a5",
+ "data": "5ef1ba28c64c5d0dfc0571a5"
+ },
+ {
+ "_id": "668014ea2b680c65290bbeef",
+ "Type": "AssortmentUnlockRule",
+ "entity": "5fd251ee16cac650092f5d02",
+ "data": "5fd251ee16cac650092f5d02"
+ },
+ {
+ "_id": "668014ea2b680c65290bbef0",
+ "Type": "AssortmentUnlockRule",
+ "entity": "64b8f7b5389d7ffd620ccba2",
+ "data": "64b8f7b5389d7ffd620ccba2"
+ },
+ {
+ "_id": "668014ea2b680c65290bbef1",
+ "Type": "AssortmentUnlockRule",
+ "entity": "606f2696f2cb2e02a42aceb1",
+ "data": "606f2696f2cb2e02a42aceb1"
+ },
+ {
+ "_id": "668014ea2b680c65290bbef2",
+ "Type": "AssortmentUnlockRule",
+ "entity": "60926df0132d4d12c81fd9df",
+ "data": "60926df0132d4d12c81fd9df"
+ },
+ {
+ "_id": "668014ea2b680c65290bbef3",
+ "Type": "AssortmentUnlockRule",
+ "entity": "5c0d5ae286f7741e46554302",
+ "data": "5c0d5ae286f7741e46554302"
+ },
+ {
+ "_id": "668014ea2b680c65290bbef4",
+ "Type": "AssortmentUnlockRule",
+ "entity": "5e21ca18e4d47f0da15e77dd",
+ "data": "5e21ca18e4d47f0da15e77dd"
+ },
+ {
+ "_id": "668014ea2b680c65290bbef5",
+ "Type": "AssortmentUnlockRule",
+ "entity": "61962b617c6c7b169525f168",
+ "data": "61962b617c6c7b169525f168"
+ },
+ {
+ "_id": "668014ea2b680c65290bbef6",
+ "Type": "AssortmentUnlockRule",
+ "entity": "60b7d76e2a3c79100f1979de",
+ "data": "60b7d76e2a3c79100f1979de"
+ },
+ {
+ "_id": "668014ea2b680c65290bbef7",
+ "Type": "AssortmentUnlockRule",
+ "entity": "5f60b34a41e30a4ab12a6947",
+ "data": "5f60b34a41e30a4ab12a6947"
+ },
+ {
+ "_id": "668014ea2b680c65290bbef8",
+ "Type": "AssortmentUnlockRule",
+ "entity": "5f06d6e1475d472556679d16",
+ "data": "5f06d6e1475d472556679d16"
+ },
+ {
+ "_id": "668014ea2b680c65290bbef9",
+ "Type": "AssortmentUnlockRule",
+ "entity": "5d5d646386f7742797261fd9",
+ "data": "5d5d646386f7742797261fd9"
+ },
+ {
+ "_id": "668014ea2b680c65290bbefa",
+ "Type": "AssortmentUnlockRule",
+ "entity": "5c1d0f4986f7744bb01837fa",
+ "data": "5c1d0f4986f7744bb01837fa"
+ },
+ {
+ "_id": "668014ea2b680c65290bbefb",
+ "Type": "AssortmentUnlockRule",
+ "entity": "6087e663132d4d12c81fd96b",
+ "data": "6087e663132d4d12c81fd96b"
+ },
+ {
+ "_id": "668014ea2b680c65290bbefc",
+ "Type": "AssortmentUnlockRule",
+ "entity": "619e61e70459e93c12392ba7",
+ "data": "619e61e70459e93c12392ba7"
+ },
+ {
+ "_id": "668014ea2b680c65290bbefd",
+ "Type": "AssortmentUnlockRule",
+ "entity": "6130ca3fd92c473c77020dbd",
+ "data": "6130ca3fd92c473c77020dbd"
+ },
+ {
+ "_id": "668014ea2b680c65290bbefe",
+ "Type": "AssortmentUnlockRule",
+ "entity": "62e7e7bbe6da9612f743f1e0",
+ "data": "62e7e7bbe6da9612f743f1e0"
+ },
+ {
+ "_id": "668014ea2b680c65290bbeff",
+ "Type": "AssortmentUnlockRule",
+ "entity": "5656eb674bdc2d35148b457c",
+ "data": "5656eb674bdc2d35148b457c"
+ },
+ {
+ "_id": "668014ea2b680c65290bbf00",
+ "Type": "AssortmentUnlockRule",
+ "entity": "64b6620258b5637e2d71a636",
+ "data": "64b6620258b5637e2d71a636"
+ },
+ {
+ "_id": "668014ea2b680c65290bbf01",
+ "Type": "AssortmentUnlockRule",
+ "entity": "655df24fdf80b12750626d0a",
+ "data": "655df24fdf80b12750626d0a"
+ },
+ {
+ "_id": "668014ea2b680c65290bbf02",
+ "Type": "AssortmentUnlockRule",
+ "entity": "62975de85c32d414f8797433",
+ "data": "62975de85c32d414f8797433"
+ },
+ {
+ "_id": "668014ea2b680c65290bbf03",
+ "Type": "AssortmentUnlockRule",
+ "entity": "657eb3773271d8578610fe28",
+ "data": "657eb3773271d8578610fe28"
+ },
+ {
+ "_id": "668014ea2b680c65290bbf04",
+ "Type": "AssortmentUnlockRule",
+ "entity": "590c5d4b86f774784e1b9c45",
+ "data": "590c5d4b86f774784e1b9c45"
+ },
+ {
+ "_id": "668014ea2b680c65290bbf05",
+ "Type": "AssortmentUnlockRule",
+ "entity": "6389c7750ef44505c87f5996",
+ "data": "6389c7750ef44505c87f5996"
+ },
+ {
+ "_id": "668014ea2b680c65290bbf06",
+ "Type": "AssortmentUnlockRule",
+ "entity": "6357c98711fb55120211f7e1",
+ "data": "6357c98711fb55120211f7e1"
+ },
+ {
+ "_id": "668014ea2b680c65290bbf07",
+ "Type": "AssortmentUnlockRule",
+ "entity": "5c110624d174af029e69734c",
+ "data": "5c110624d174af029e69734c"
+ },
+ {
+ "_id": "668014ea2b680c65290bbf08",
+ "Type": "AssortmentUnlockRule",
+ "entity": "63920105a83e15700a00f168",
+ "data": "63920105a83e15700a00f168"
+ },
+ {
+ "_id": "668014ea2b680c65290bbf09",
+ "Type": "AssortmentUnlockRule",
+ "entity": "6357c98711fb55120211f7e1",
+ "data": "6357c98711fb55120211f7e1"
+ },
+ {
+ "_id": "668014ea2b680c65290bbf0a",
+ "Type": "AssortmentUnlockRule",
+ "entity": "656f664200d62bcd2e024077",
+ "data": "656f664200d62bcd2e024077"
+ },
+ {
+ "_id": "668014ea2b680c65290bbf0b",
+ "Type": "AssortmentUnlockRule",
+ "entity": "62973e474bb5ab23071c2a70",
+ "data": "62973e474bb5ab23071c2a70"
+ },
+ {
+ "_id": "668014ea2b680c65290bbf0c",
+ "Type": "AssortmentUnlockRule",
+ "entity": "655746010177119f4a097ff7",
+ "data": "655746010177119f4a097ff7"
+ },
+ {
+ "_id": "668014ea2b680c65290bbf0d",
+ "Type": "AssortmentUnlockRule",
+ "entity": "6570aead4d84f81fd002a033",
+ "data": "6570aead4d84f81fd002a033"
+ },
+ {
+ "_id": "668014ea2b680c65290bbf0e",
+ "Type": "AssortmentUnlockRule",
+ "entity": "62a0a043cf4a99369e2624a5",
+ "data": "62a0a043cf4a99369e2624a5"
+ },
+ {
+ "_id": "668014ea2b680c65290bbf0f",
+ "Type": "AssortmentUnlockRule",
+ "entity": "5e85a9f4add9fe03027d9bf1",
+ "data": "5e85a9f4add9fe03027d9bf1"
+ },
+ {
+ "_id": "668014ea2b680c65290bbf10",
+ "Type": "AssortmentUnlockRule",
+ "entity": "5c0a840b86f7742ffa4f2482",
+ "data": "5c0a840b86f7742ffa4f2482"
+ },
+ {
+ "_id": "668014ea2b680c65290bbf11",
+ "Type": "AssortmentUnlockRule",
+ "entity": "6389c7f115805221fb410466",
+ "data": "6389c7f115805221fb410466"
+ },
+ {
+ "_id": "668014ea2b680c65290bbf12",
+ "Type": "AssortmentUnlockRule",
+ "entity": "656f611f94b480b8a500c0db",
+ "data": "656f611f94b480b8a500c0db"
+ },
+ {
+ "_id": "668014ea2b680c65290bbf13",
+ "Type": "AssortmentUnlockRule",
+ "entity": "62e7e7bbe6da9612f743f1e0",
+ "data": "62e7e7bbe6da9612f743f1e0"
+ },
+ {
+ "_id": "668014ea2b680c65290bbf14",
+ "Type": "AssortmentUnlockRule",
+ "entity": "64c1525e3319a1cf380c4e09",
+ "data": "64c1525e3319a1cf380c4e09"
+ },
+ {
+ "_id": "668014ea2b680c65290bbf15",
+ "Type": "AssortmentUnlockRule",
+ "entity": "5a327f7c86f77475187e509a",
+ "data": "5a327f7c86f77475187e509a"
+ },
+ {
+ "_id": "668014ea2b680c65290bbf16",
+ "Type": "AssortmentUnlockRule",
+ "entity": "5c0e530286f7747fa1419862",
+ "data": "5c0e530286f7747fa1419862"
+ },
+ {
+ "_id": "668014ea2b680c65290bbf17",
+ "Type": "AssortmentUnlockRule",
+ "entity": "5ede475b549eed7c6d5c18fb",
+ "data": "5ede475b549eed7c6d5c18fb"
+ },
+ {
+ "_id": "668014ea2b680c65290bbf18",
+ "Type": "AssortmentUnlockRule",
+ "entity": "5b2388675acfc4771e1be0be",
+ "data": "5b2388675acfc4771e1be0be"
+ },
+ {
+ "_id": "668014ea2b680c65290bbf19",
+ "Type": "AssortmentUnlockRule",
+ "entity": "63fc44e2429a8a166c7f61e6",
+ "data": "63fc44e2429a8a166c7f61e6"
+ },
+ {
+ "_id": "668014ea2b680c65290bbf1a",
+ "Type": "AssortmentUnlockRule",
+ "entity": "601aa3d2b2bcb34913271e6d",
+ "data": "601aa3d2b2bcb34913271e6d"
+ },
+ {
+ "_id": "668014ea2b680c65290bbf1b",
+ "Type": "AssortmentUnlockRule",
+ "entity": "656fa8d700d62bcd2e024084",
+ "data": "656fa8d700d62bcd2e024084"
+ },
+ {
+ "_id": "668014ea2b680c65290bbf1c",
+ "Type": "AssortmentUnlockRule",
+ "entity": "618ba27d9008e4636a67f61d",
+ "data": "618ba27d9008e4636a67f61d"
+ },
+ {
+ "_id": "668014ea2b680c65290bbf1d",
+ "Type": "AssortmentUnlockRule",
+ "entity": "657089638db3adca1009f4ca",
+ "data": "657089638db3adca1009f4ca"
+ },
+ {
+ "_id": "668014ea2b680c65290bbf1e",
+ "Type": "AssortmentUnlockRule",
+ "entity": "5efb0da7a29a85116f6ea05f",
+ "data": "5efb0da7a29a85116f6ea05f"
+ },
+ {
+ "_id": "668014ea2b680c65290bbf1f",
+ "Type": "AssortmentUnlockRule",
+ "entity": "63986a9ab483a550805be5ee",
+ "data": "63986a9ab483a550805be5ee"
+ },
+ {
+ "_id": "668014ea2b680c65290bbf20",
+ "Type": "AssortmentUnlockRule",
+ "entity": "656fa25e94b480b8a500c0e0",
+ "data": "656fa25e94b480b8a500c0e0"
+ },
+ {
+ "_id": "668014ea2b680c65290bbf21",
+ "Type": "AssortmentUnlockRule",
+ "entity": "6389c85357baa773a825b356",
+ "data": "6389c85357baa773a825b356"
+ },
+ {
+ "_id": "668014ea2b680c65290bbf22",
+ "Type": "AssortmentUnlockRule",
+ "entity": "64f8c5c6c8626c7d46040335",
+ "data": "64f8c5c6c8626c7d46040335"
+ },
+ {
+ "_id": "668014ea2b680c65290bbf23",
+ "Type": "AssortmentUnlockRule",
+ "entity": "63fc44e2429a8a166c7f61e6",
+ "data": "63fc44e2429a8a166c7f61e6"
+ },
+ {
+ "_id": "668014ea2b680c65290bbf24",
+ "Type": "AssortmentUnlockRule",
+ "entity": "65573fa5655447403702a816",
+ "data": "65573fa5655447403702a816"
+ }
+ ],
+ "maxToSendPlayer": 1
+ },
+ "HIDEOUTCAT": {
"items": [
{
"_id": "64b93751523fc8b45103fa54",
@@ -6982,691 +7492,801 @@
"associatedEvent": "Promo",
"collectionTimeHours": 72,
"messageText": "Hideout cat.",
- "maxToSendPlayer": 1
+ "maxToSendPlayer": 1
},
- "KILLA": {
- "items": [{
- "_id": "6659f82b5fddd28cb40363d1",
- "_tpl": "619cbf7d23893217ec30b689",
- "upd": {
- "StackObjectsCount": 1
- },
- "parentId": "6659f82b5fddd28cb40363cf",
- "slotId": "main"
- }, {
- "_id": "6659f82b5fddd28cb40363d3",
- "_tpl": "57347ca924597744596b4e71",
- "upd": {
- "StackObjectsCount": 1
- },
- "parentId": "6659f82b5fddd28cb40363cf",
- "slotId": "main"
- }
- ],
+ "KILLA": {
+ "items": [
+ {
+ "_id": "6659f82b5fddd28cb40363d1",
+ "_tpl": "619cbf7d23893217ec30b689",
+ "upd": {
+ "StackObjectsCount": 1
+ },
+ "parentId": "6659f82b5fddd28cb40363cf",
+ "slotId": "main"
+ },
+ {
+ "_id": "6659f82b5fddd28cb40363d3",
+ "_tpl": "57347ca924597744596b4e71",
+ "upd": {
+ "StackObjectsCount": 1
+ },
+ "parentId": "6659f82b5fddd28cb40363cf",
+ "slotId": "main"
+ }
+ ],
"sender": "System",
"messageText": "TarkovTV May 2024 gift",
"collectionTimeHours": 48,
"associatedEvent": "Promo",
- "maxToSendPlayer": 1
+ "maxToSendPlayer": 1
},
- "BITCOIN": {
- "items": [{
- "_id": "6659fc6a77accffa490c0d3f",
- "_tpl": "65290f395ae2ae97b80fdf2d",
- "upd": {
- "Repairable": {
- "MaxDurability": 100,
- "Durability": 100
- },
- "FireMode": {
- "FireMode": "single"
- }
- },
- "parentId": "6659fc6a77accffa490c0d3e",
- "slotId": "main"
- }, {
- "_id": "6659fc6a77accffa490c0d40",
- "_tpl": "652911675ae2ae97b80fdf3c",
- "parentId": "6659fc6a77accffa490c0d3f",
- "slotId": "mod_pistol_grip"
- }, {
- "_id": "6659fc6a77accffa490c0d41",
- "_tpl": "65293c38fc460e50a509cb25",
- "parentId": "6659fc6a77accffa490c0d3f",
- "slotId": "mod_magazine"
- }, {
- "_id": "6659fc6a77accffa490c0d42",
- "_tpl": "6529119424cbe3c74a05e5bb",
- "parentId": "6659fc6a77accffa490c0d3f",
- "slotId": "mod_reciever"
- }, {
- "_id": "6659fc6a77accffa490c0d43",
- "_tpl": "6567e751a715f85433025998",
- "parentId": "6659fc6a77accffa490c0d42",
- "slotId": "mod_scope"
- }, {
- "_id": "6659fc6a77accffa490c0d44",
- "_tpl": "6567e7681265c8a131069b0f",
- "parentId": "6659fc6a77accffa490c0d43",
- "slotId": "mod_scope"
- }, {
- "_id": "6659fc6a77accffa490c0d45",
- "_tpl": "652910565ae2ae97b80fdf35",
- "parentId": "6659fc6a77accffa490c0d42",
- "slotId": "mod_barrel"
- }, {
- "_id": "6659fc6a77accffa490c0d46",
- "_tpl": "6529113b5ae2ae97b80fdf39",
- "parentId": "6659fc6a77accffa490c0d45",
- "slotId": "mod_muzzle"
- }, {
- "_id": "6659fc6a77accffa490c0d47",
- "_tpl": "652911e650dc782999054b9d",
- "parentId": "6659fc6a77accffa490c0d46",
- "slotId": "mod_muzzle"
- }, {
- "_id": "6659fc6a77accffa490c0d48",
- "_tpl": "652910bc24cbe3c74a05e5b9",
- "parentId": "6659fc6a77accffa490c0d45",
- "slotId": "mod_gas_block"
- }, {
- "_id": "6659fc6a77accffa490c0d49",
- "_tpl": "652910ef50dc782999054b97",
- "parentId": "6659fc6a77accffa490c0d42",
- "slotId": "mod_handguard"
- }, {
- "_id": "6659fc6a77accffa490c0d4a",
- "_tpl": "6529348224cbe3c74a05e5c4",
- "parentId": "6659fc6a77accffa490c0d3f",
- "slotId": "mod_stock_000"
- }, {
- "_id": "6659fc6a77accffa490c0d4b",
- "_tpl": "6529366450dc782999054ba0",
- "parentId": "6659fc6a77accffa490c0d4a",
- "slotId": "mod_stock"
- }, {
- "_id": "6659fc6a77accffa490c0d4c",
- "_tpl": "6529370c405a5f51dd023db8",
- "parentId": "6659fc6a77accffa490c0d4b",
- "slotId": "mod_stock_000"
- }, {
- "_id": "6659fc6a77accffa490c0d4d",
- "_tpl": "6529109524cbe3c74a05e5b7",
- "parentId": "6659fc6a77accffa490c0d3f",
- "slotId": "mod_charge"
- }, {
- "_id": "6659fc6a77accffa490c0d4e",
- "_tpl": "5c0e655586f774045612eeb2",
- "parentId": "6659fc6a77accffa490c0d3e",
- "slotId": "main"
- }, {
- "_id": "6659fc6a77accffa490c0d4f",
- "_tpl": "6570e025615f54368b04fcb0",
- "parentId": "6659fc6a77accffa490c0d4e",
- "slotId": "Soft_armor_front"
- }, {
- "_id": "6659fc6a77accffa490c0d50",
- "_tpl": "6570e0610b57c03ec90b96ef",
- "parentId": "6659fc6a77accffa490c0d4e",
- "slotId": "Soft_armor_back"
- }, {
- "_id": "6659fc6a77accffa490c0d51",
- "_tpl": "656fad8c498d1b7e3e071da0",
- "parentId": "6659fc6a77accffa490c0d4e",
- "slotId": "Front_plate"
- }, {
- "_id": "6659fc6a77accffa490c0d52",
- "_tpl": "656fad8c498d1b7e3e071da0",
- "parentId": "6659fc6a77accffa490c0d4e",
- "slotId": "Back_plate"
- }, {
- "_id": "6659fc6a77accffa490c0d54",
- "_tpl": "628e4e576d783146b124c64d",
- "upd": {
- "StackObjectsCount": 1
- },
- "parentId": "6659fc6a77accffa490c0d3e",
- "slotId": "main"
- }, {
- "_id": "6659fc6a77accffa490c0d56",
- "_tpl": "628e4e576d783146b124c64d",
- "upd": {
- "StackObjectsCount": 1
- },
- "parentId": "6659fc6a77accffa490c0d3e",
- "slotId": "main"
- }, {
- "_id": "6659fc6a77accffa490c0d57",
- "_tpl": "5447a9cd4bdc2dbd208b4567",
- "upd": {
- "FireMode": {
- "FireMode": "single"
- }
- },
- "parentId": "6659fc6a77accffa490c0d3e",
- "slotId": "main"
- }, {
- "_id": "6659fc6a77accffa490c0d58",
- "_tpl": "5cc9bcaed7f00c011c04e179",
- "parentId": "6659fc6a77accffa490c0d57",
- "slotId": "mod_pistol_grip"
- }, {
- "_id": "6659fc6a77accffa490c0d59",
- "_tpl": "59c1383d86f774290a37e0ca",
- "parentId": "6659fc6a77accffa490c0d57",
- "slotId": "mod_magazine"
- }, {
- "_id": "6659fc6a77accffa490c0d5a",
- "_tpl": "5d4405aaa4b9361e6a4e6bd3",
- "parentId": "6659fc6a77accffa490c0d57",
- "slotId": "mod_reciever"
- }, {
- "_id": "6659fc6a77accffa490c0d5b",
- "_tpl": "59f9d81586f7744c7506ee62",
- "parentId": "6659fc6a77accffa490c0d5a",
- "slotId": "mod_scope"
- }, {
- "_id": "6659fc6a77accffa490c0d5c",
- "_tpl": "55d35ee94bdc2d61338b4568",
- "parentId": "6659fc6a77accffa490c0d5a",
- "slotId": "mod_barrel"
- }, {
- "_id": "6659fc6a77accffa490c0d5d",
- "_tpl": "5cff9e5ed7ad1a09407397d4",
- "parentId": "6659fc6a77accffa490c0d5c",
- "slotId": "mod_muzzle"
- }, {
- "_id": "6659fc6a77accffa490c0d5e",
- "_tpl": "5d00ec68d7ad1a04a067e5be",
- "parentId": "6659fc6a77accffa490c0d5c",
- "slotId": "mod_gas_block"
- }, {
- "_id": "6659fc6a77accffa490c0d5f",
- "_tpl": "5c78f2612e221600114c9f0d",
- "parentId": "6659fc6a77accffa490c0d5a",
- "slotId": "mod_handguard"
- }, {
- "_id": "6659fc6a77accffa490c0d60",
- "_tpl": "5b7be4895acfc400170e2dd5",
- "parentId": "6659fc6a77accffa490c0d5f",
- "slotId": "mod_foregrip"
- }, {
- "_id": "6659fc6a77accffa490c0d61",
- "_tpl": "588226d124597767ad33f787",
- "parentId": "6659fc6a77accffa490c0d60",
- "slotId": "mod_foregrip"
- }, {
- "_id": "6659fc6a77accffa490c0d62",
- "_tpl": "5ba26b01d4351e0085325a51",
- "parentId": "6659fc6a77accffa490c0d5f",
- "slotId": "mod_sight_front"
- }, {
- "_id": "6659fc6a77accffa490c0d63",
- "_tpl": "5c78f2882e22165df16b832e",
- "parentId": "6659fc6a77accffa490c0d5f",
- "slotId": "mod_muzzle"
- }, {
- "_id": "6659fc6a77accffa490c0d64",
- "_tpl": "5b07dd285acfc4001754240d",
- "parentId": "6659fc6a77accffa490c0d5f",
- "slotId": "mod_tactical_002"
- }, {
- "_id": "6659fc6a77accffa490c0d65",
- "_tpl": "5ba26b17d4351e00367f9bdd",
- "parentId": "6659fc6a77accffa490c0d5a",
- "slotId": "mod_sight_rear"
- }, {
- "_id": "6659fc6a77accffa490c0d66",
- "_tpl": "5d120a10d7ad1a4e1026ba85",
- "parentId": "6659fc6a77accffa490c0d57",
- "slotId": "mod_stock"
- }, {
- "_id": "6659fc6a77accffa490c0d67",
- "_tpl": "5d120a28d7ad1a1c8962e295",
- "parentId": "6659fc6a77accffa490c0d66",
- "slotId": "mod_stock"
- }, {
- "_id": "6659fc6a77accffa490c0d68",
- "_tpl": "5d44334ba4b9362b346d1948",
- "parentId": "6659fc6a77accffa490c0d57",
- "slotId": "mod_charge"
+ "BITCOIN": {
+ "items": [
+ {
+ "_id": "6659fc6a77accffa490c0d3f",
+ "_tpl": "65290f395ae2ae97b80fdf2d",
+ "upd": {
+ "Repairable": {
+ "MaxDurability": 100,
+ "Durability": 100
+ },
+ "FireMode": {
+ "FireMode": "single"
}
- ],
+ },
+ "parentId": "6659fc6a77accffa490c0d3e",
+ "slotId": "main"
+ },
+ {
+ "_id": "6659fc6a77accffa490c0d40",
+ "_tpl": "652911675ae2ae97b80fdf3c",
+ "parentId": "6659fc6a77accffa490c0d3f",
+ "slotId": "mod_pistol_grip"
+ },
+ {
+ "_id": "6659fc6a77accffa490c0d41",
+ "_tpl": "65293c38fc460e50a509cb25",
+ "parentId": "6659fc6a77accffa490c0d3f",
+ "slotId": "mod_magazine"
+ },
+ {
+ "_id": "6659fc6a77accffa490c0d42",
+ "_tpl": "6529119424cbe3c74a05e5bb",
+ "parentId": "6659fc6a77accffa490c0d3f",
+ "slotId": "mod_reciever"
+ },
+ {
+ "_id": "6659fc6a77accffa490c0d43",
+ "_tpl": "6567e751a715f85433025998",
+ "parentId": "6659fc6a77accffa490c0d42",
+ "slotId": "mod_scope"
+ },
+ {
+ "_id": "6659fc6a77accffa490c0d44",
+ "_tpl": "6567e7681265c8a131069b0f",
+ "parentId": "6659fc6a77accffa490c0d43",
+ "slotId": "mod_scope"
+ },
+ {
+ "_id": "6659fc6a77accffa490c0d45",
+ "_tpl": "652910565ae2ae97b80fdf35",
+ "parentId": "6659fc6a77accffa490c0d42",
+ "slotId": "mod_barrel"
+ },
+ {
+ "_id": "6659fc6a77accffa490c0d46",
+ "_tpl": "6529113b5ae2ae97b80fdf39",
+ "parentId": "6659fc6a77accffa490c0d45",
+ "slotId": "mod_muzzle"
+ },
+ {
+ "_id": "6659fc6a77accffa490c0d47",
+ "_tpl": "652911e650dc782999054b9d",
+ "parentId": "6659fc6a77accffa490c0d46",
+ "slotId": "mod_muzzle"
+ },
+ {
+ "_id": "6659fc6a77accffa490c0d48",
+ "_tpl": "652910bc24cbe3c74a05e5b9",
+ "parentId": "6659fc6a77accffa490c0d45",
+ "slotId": "mod_gas_block"
+ },
+ {
+ "_id": "6659fc6a77accffa490c0d49",
+ "_tpl": "652910ef50dc782999054b97",
+ "parentId": "6659fc6a77accffa490c0d42",
+ "slotId": "mod_handguard"
+ },
+ {
+ "_id": "6659fc6a77accffa490c0d4a",
+ "_tpl": "6529348224cbe3c74a05e5c4",
+ "parentId": "6659fc6a77accffa490c0d3f",
+ "slotId": "mod_stock_000"
+ },
+ {
+ "_id": "6659fc6a77accffa490c0d4b",
+ "_tpl": "6529366450dc782999054ba0",
+ "parentId": "6659fc6a77accffa490c0d4a",
+ "slotId": "mod_stock"
+ },
+ {
+ "_id": "6659fc6a77accffa490c0d4c",
+ "_tpl": "6529370c405a5f51dd023db8",
+ "parentId": "6659fc6a77accffa490c0d4b",
+ "slotId": "mod_stock_000"
+ },
+ {
+ "_id": "6659fc6a77accffa490c0d4d",
+ "_tpl": "6529109524cbe3c74a05e5b7",
+ "parentId": "6659fc6a77accffa490c0d3f",
+ "slotId": "mod_charge"
+ },
+ {
+ "_id": "6659fc6a77accffa490c0d4e",
+ "_tpl": "5c0e655586f774045612eeb2",
+ "parentId": "6659fc6a77accffa490c0d3e",
+ "slotId": "main"
+ },
+ {
+ "_id": "6659fc6a77accffa490c0d4f",
+ "_tpl": "6570e025615f54368b04fcb0",
+ "parentId": "6659fc6a77accffa490c0d4e",
+ "slotId": "Soft_armor_front"
+ },
+ {
+ "_id": "6659fc6a77accffa490c0d50",
+ "_tpl": "6570e0610b57c03ec90b96ef",
+ "parentId": "6659fc6a77accffa490c0d4e",
+ "slotId": "Soft_armor_back"
+ },
+ {
+ "_id": "6659fc6a77accffa490c0d51",
+ "_tpl": "656fad8c498d1b7e3e071da0",
+ "parentId": "6659fc6a77accffa490c0d4e",
+ "slotId": "Front_plate"
+ },
+ {
+ "_id": "6659fc6a77accffa490c0d52",
+ "_tpl": "656fad8c498d1b7e3e071da0",
+ "parentId": "6659fc6a77accffa490c0d4e",
+ "slotId": "Back_plate"
+ },
+ {
+ "_id": "6659fc6a77accffa490c0d54",
+ "_tpl": "628e4e576d783146b124c64d",
+ "upd": {
+ "StackObjectsCount": 1
+ },
+ "parentId": "6659fc6a77accffa490c0d3e",
+ "slotId": "main"
+ },
+ {
+ "_id": "6659fc6a77accffa490c0d56",
+ "_tpl": "628e4e576d783146b124c64d",
+ "upd": {
+ "StackObjectsCount": 1
+ },
+ "parentId": "6659fc6a77accffa490c0d3e",
+ "slotId": "main"
+ },
+ {
+ "_id": "6659fc6a77accffa490c0d57",
+ "_tpl": "5447a9cd4bdc2dbd208b4567",
+ "upd": {
+ "FireMode": {
+ "FireMode": "single"
+ }
+ },
+ "parentId": "6659fc6a77accffa490c0d3e",
+ "slotId": "main"
+ },
+ {
+ "_id": "6659fc6a77accffa490c0d58",
+ "_tpl": "5cc9bcaed7f00c011c04e179",
+ "parentId": "6659fc6a77accffa490c0d57",
+ "slotId": "mod_pistol_grip"
+ },
+ {
+ "_id": "6659fc6a77accffa490c0d59",
+ "_tpl": "59c1383d86f774290a37e0ca",
+ "parentId": "6659fc6a77accffa490c0d57",
+ "slotId": "mod_magazine"
+ },
+ {
+ "_id": "6659fc6a77accffa490c0d5a",
+ "_tpl": "5d4405aaa4b9361e6a4e6bd3",
+ "parentId": "6659fc6a77accffa490c0d57",
+ "slotId": "mod_reciever"
+ },
+ {
+ "_id": "6659fc6a77accffa490c0d5b",
+ "_tpl": "59f9d81586f7744c7506ee62",
+ "parentId": "6659fc6a77accffa490c0d5a",
+ "slotId": "mod_scope"
+ },
+ {
+ "_id": "6659fc6a77accffa490c0d5c",
+ "_tpl": "55d35ee94bdc2d61338b4568",
+ "parentId": "6659fc6a77accffa490c0d5a",
+ "slotId": "mod_barrel"
+ },
+ {
+ "_id": "6659fc6a77accffa490c0d5d",
+ "_tpl": "5cff9e5ed7ad1a09407397d4",
+ "parentId": "6659fc6a77accffa490c0d5c",
+ "slotId": "mod_muzzle"
+ },
+ {
+ "_id": "6659fc6a77accffa490c0d5e",
+ "_tpl": "5d00ec68d7ad1a04a067e5be",
+ "parentId": "6659fc6a77accffa490c0d5c",
+ "slotId": "mod_gas_block"
+ },
+ {
+ "_id": "6659fc6a77accffa490c0d5f",
+ "_tpl": "5c78f2612e221600114c9f0d",
+ "parentId": "6659fc6a77accffa490c0d5a",
+ "slotId": "mod_handguard"
+ },
+ {
+ "_id": "6659fc6a77accffa490c0d60",
+ "_tpl": "5b7be4895acfc400170e2dd5",
+ "parentId": "6659fc6a77accffa490c0d5f",
+ "slotId": "mod_foregrip"
+ },
+ {
+ "_id": "6659fc6a77accffa490c0d61",
+ "_tpl": "588226d124597767ad33f787",
+ "parentId": "6659fc6a77accffa490c0d60",
+ "slotId": "mod_foregrip"
+ },
+ {
+ "_id": "6659fc6a77accffa490c0d62",
+ "_tpl": "5ba26b01d4351e0085325a51",
+ "parentId": "6659fc6a77accffa490c0d5f",
+ "slotId": "mod_sight_front"
+ },
+ {
+ "_id": "6659fc6a77accffa490c0d63",
+ "_tpl": "5c78f2882e22165df16b832e",
+ "parentId": "6659fc6a77accffa490c0d5f",
+ "slotId": "mod_muzzle"
+ },
+ {
+ "_id": "6659fc6a77accffa490c0d64",
+ "_tpl": "5b07dd285acfc4001754240d",
+ "parentId": "6659fc6a77accffa490c0d5f",
+ "slotId": "mod_tactical_002"
+ },
+ {
+ "_id": "6659fc6a77accffa490c0d65",
+ "_tpl": "5ba26b17d4351e00367f9bdd",
+ "parentId": "6659fc6a77accffa490c0d5a",
+ "slotId": "mod_sight_rear"
+ },
+ {
+ "_id": "6659fc6a77accffa490c0d66",
+ "_tpl": "5d120a10d7ad1a4e1026ba85",
+ "parentId": "6659fc6a77accffa490c0d57",
+ "slotId": "mod_stock"
+ },
+ {
+ "_id": "6659fc6a77accffa490c0d67",
+ "_tpl": "5d120a28d7ad1a1c8962e295",
+ "parentId": "6659fc6a77accffa490c0d66",
+ "slotId": "mod_stock"
+ },
+ {
+ "_id": "6659fc6a77accffa490c0d68",
+ "_tpl": "5d44334ba4b9362b346d1948",
+ "parentId": "6659fc6a77accffa490c0d57",
+ "slotId": "mod_charge"
+ }
+ ],
"sender": "System",
"messageText": "TarkovTV May 2024 gift",
"collectionTimeHours": 48,
"associatedEvent": "Promo",
- "maxToSendPlayer": 1
+ "maxToSendPlayer": 1
},
- "GROUNDZERO2": {
- "items": [{
- "_id": "6659fef6c7faaa6180043384",
- "_tpl": "5ab8e79e86f7742d8b372e78",
- "parentId": "6659fef6c7faaa6180043383",
- "slotId": "main"
- }, {
- "_id": "6659fef6c7faaa6180043385",
- "_tpl": "65732688d9d89ff7ac0d9c4c",
- "parentId": "6659fef6c7faaa6180043384",
- "slotId": "Soft_armor_front"
- }, {
- "_id": "6659fef6c7faaa6180043386",
- "_tpl": "657326978c1cc6dcd9098b56",
- "parentId": "6659fef6c7faaa6180043384",
- "slotId": "Soft_armor_back"
- }, {
- "_id": "6659fef6c7faaa6180043387",
- "_tpl": "657326a28c1cc6dcd9098b5a",
- "parentId": "6659fef6c7faaa6180043384",
- "slotId": "Soft_armor_left"
- }, {
- "_id": "6659fef6c7faaa6180043388",
- "_tpl": "657326b08c1cc6dcd9098b5e",
- "parentId": "6659fef6c7faaa6180043384",
- "slotId": "soft_armor_right"
- }, {
- "_id": "6659fef6c7faaa6180043389",
- "_tpl": "657326bc5d3a3129fb05f36b",
- "parentId": "6659fef6c7faaa6180043384",
- "slotId": "Collar"
- }, {
- "_id": "6659fef6c7faaa618004338a",
- "_tpl": "656f611f94b480b8a500c0db",
- "parentId": "6659fef6c7faaa6180043384",
- "slotId": "Front_plate"
- }, {
- "_id": "6659fef6c7faaa618004338b",
- "_tpl": "65573fa5655447403702a816",
- "parentId": "6659fef6c7faaa6180043384",
- "slotId": "Back_plate"
- }, {
- "_id": "6659fef6c7faaa618004338c",
- "_tpl": "60a3c68c37ea821725773ef5",
- "parentId": "6659fef6c7faaa6180043383",
- "slotId": "main"
- }, {
- "_id": "6659fef6c7faaa618004338d",
- "_tpl": "65733312ca0ca984940a2d53",
- "parentId": "6659fef6c7faaa618004338c",
- "slotId": "Soft_armor_front"
- }, {
- "_id": "6659fef6c7faaa618004338e",
- "_tpl": "657333232cc8dfad2c0a3d97",
- "parentId": "6659fef6c7faaa618004338c",
- "slotId": "Soft_armor_back"
- }, {
- "_id": "6659fef6c7faaa618004338f",
- "_tpl": "657333302cc8dfad2c0a3d9b",
- "parentId": "6659fef6c7faaa618004338c",
- "slotId": "Soft_armor_left"
- }, {
- "_id": "6659fef6c7faaa6180043390",
- "_tpl": "6573333eca0ca984940a2d57",
- "parentId": "6659fef6c7faaa618004338c",
- "slotId": "soft_armor_right"
- }, {
- "_id": "6659fef6c7faaa6180043391",
- "_tpl": "6573334aca0ca984940a2d5b",
- "parentId": "6659fef6c7faaa618004338c",
- "slotId": "Collar"
- }, {
- "_id": "6659fef6c7faaa6180043392",
- "_tpl": "65733375b7a8d286530e3dd7",
- "parentId": "6659fef6c7faaa618004338c",
- "slotId": "Shoulder_l"
- }, {
- "_id": "6659fef6c7faaa6180043393",
- "_tpl": "6573337f2cc8dfad2c0a3da7",
- "parentId": "6659fef6c7faaa618004338c",
- "slotId": "Shoulder_r"
- }, {
- "_id": "6659fef6c7faaa6180043394",
- "_tpl": "656fa53d94b480b8a500c0e4",
- "parentId": "6659fef6c7faaa618004338c",
- "slotId": "Front_plate"
- }, {
- "_id": "6659fef6c7faaa6180043395",
- "_tpl": "656fa53d94b480b8a500c0e4",
- "parentId": "6659fef6c7faaa618004338c",
- "slotId": "Back_plate"
- }, {
- "_id": "6659fef6c7faaa6180043396",
- "_tpl": "6557458f83942d705f0c4962",
- "parentId": "6659fef6c7faaa618004338c",
- "slotId": "Left_side_plate"
- }, {
- "_id": "6659fef6c7faaa6180043397",
- "_tpl": "6557458f83942d705f0c4962",
- "parentId": "6659fef6c7faaa618004338c",
- "slotId": "Right_side_plate"
- }, {
- "_id": "6659fef6c7faaa6180043398",
- "_tpl": "5b40e2bc5acfc40016388216",
- "parentId": "6659fef6c7faaa6180043383",
- "slotId": "main"
- }, {
- "_id": "6659fef6c7faaa6180043399",
- "_tpl": "657112234269e9a568089eac",
- "parentId": "6659fef6c7faaa6180043398",
- "slotId": "Helmet_top"
- }, {
- "_id": "6659fef6c7faaa618004339a",
- "_tpl": "657112a4818110db4600aa66",
- "parentId": "6659fef6c7faaa6180043398",
- "slotId": "Helmet_back"
- }, {
- "_id": "6659fef6c7faaa618004339b",
- "_tpl": "657112ce22996eaf110881fb",
- "parentId": "6659fef6c7faaa6180043398",
- "slotId": "Helmet_ears"
- }, {
- "_id": "6659fef6c7faaa618004339d",
- "_tpl": "5e2af55f86f7746d4159f07c",
- "upd": {
- "StackObjectsCount": 1
- },
- "parentId": "6659fef6c7faaa6180043383",
- "slotId": "main"
- }, {
- "_id": "6659fef6c7faaa618004339e",
- "_tpl": "5b40e2bc5acfc40016388216",
- "parentId": "6659fef6c7faaa6180043383",
- "slotId": "main"
- }, {
- "_id": "6659fef6c7faaa618004339f",
- "_tpl": "657112234269e9a568089eac",
- "parentId": "6659fef6c7faaa618004339e",
- "slotId": "Helmet_top"
- }, {
- "_id": "6659fef6c7faaa61800433a0",
- "_tpl": "657112a4818110db4600aa66",
- "parentId": "6659fef6c7faaa618004339e",
- "slotId": "Helmet_back"
- }, {
- "_id": "6659fef6c7faaa61800433a1",
- "_tpl": "657112ce22996eaf110881fb",
- "parentId": "6659fef6c7faaa618004339e",
- "slotId": "Helmet_ears"
- }
- ],
+ "GROUNDZERO2": {
+ "items": [
+ {
+ "_id": "6659fef6c7faaa6180043384",
+ "_tpl": "5ab8e79e86f7742d8b372e78",
+ "parentId": "6659fef6c7faaa6180043383",
+ "slotId": "main"
+ },
+ {
+ "_id": "6659fef6c7faaa6180043385",
+ "_tpl": "65732688d9d89ff7ac0d9c4c",
+ "parentId": "6659fef6c7faaa6180043384",
+ "slotId": "Soft_armor_front"
+ },
+ {
+ "_id": "6659fef6c7faaa6180043386",
+ "_tpl": "657326978c1cc6dcd9098b56",
+ "parentId": "6659fef6c7faaa6180043384",
+ "slotId": "Soft_armor_back"
+ },
+ {
+ "_id": "6659fef6c7faaa6180043387",
+ "_tpl": "657326a28c1cc6dcd9098b5a",
+ "parentId": "6659fef6c7faaa6180043384",
+ "slotId": "Soft_armor_left"
+ },
+ {
+ "_id": "6659fef6c7faaa6180043388",
+ "_tpl": "657326b08c1cc6dcd9098b5e",
+ "parentId": "6659fef6c7faaa6180043384",
+ "slotId": "soft_armor_right"
+ },
+ {
+ "_id": "6659fef6c7faaa6180043389",
+ "_tpl": "657326bc5d3a3129fb05f36b",
+ "parentId": "6659fef6c7faaa6180043384",
+ "slotId": "Collar"
+ },
+ {
+ "_id": "6659fef6c7faaa618004338a",
+ "_tpl": "656f611f94b480b8a500c0db",
+ "parentId": "6659fef6c7faaa6180043384",
+ "slotId": "Front_plate"
+ },
+ {
+ "_id": "6659fef6c7faaa618004338b",
+ "_tpl": "65573fa5655447403702a816",
+ "parentId": "6659fef6c7faaa6180043384",
+ "slotId": "Back_plate"
+ },
+ {
+ "_id": "6659fef6c7faaa618004338c",
+ "_tpl": "60a3c68c37ea821725773ef5",
+ "parentId": "6659fef6c7faaa6180043383",
+ "slotId": "main"
+ },
+ {
+ "_id": "6659fef6c7faaa618004338d",
+ "_tpl": "65733312ca0ca984940a2d53",
+ "parentId": "6659fef6c7faaa618004338c",
+ "slotId": "Soft_armor_front"
+ },
+ {
+ "_id": "6659fef6c7faaa618004338e",
+ "_tpl": "657333232cc8dfad2c0a3d97",
+ "parentId": "6659fef6c7faaa618004338c",
+ "slotId": "Soft_armor_back"
+ },
+ {
+ "_id": "6659fef6c7faaa618004338f",
+ "_tpl": "657333302cc8dfad2c0a3d9b",
+ "parentId": "6659fef6c7faaa618004338c",
+ "slotId": "Soft_armor_left"
+ },
+ {
+ "_id": "6659fef6c7faaa6180043390",
+ "_tpl": "6573333eca0ca984940a2d57",
+ "parentId": "6659fef6c7faaa618004338c",
+ "slotId": "soft_armor_right"
+ },
+ {
+ "_id": "6659fef6c7faaa6180043391",
+ "_tpl": "6573334aca0ca984940a2d5b",
+ "parentId": "6659fef6c7faaa618004338c",
+ "slotId": "Collar"
+ },
+ {
+ "_id": "6659fef6c7faaa6180043392",
+ "_tpl": "65733375b7a8d286530e3dd7",
+ "parentId": "6659fef6c7faaa618004338c",
+ "slotId": "Shoulder_l"
+ },
+ {
+ "_id": "6659fef6c7faaa6180043393",
+ "_tpl": "6573337f2cc8dfad2c0a3da7",
+ "parentId": "6659fef6c7faaa618004338c",
+ "slotId": "Shoulder_r"
+ },
+ {
+ "_id": "6659fef6c7faaa6180043394",
+ "_tpl": "656fa53d94b480b8a500c0e4",
+ "parentId": "6659fef6c7faaa618004338c",
+ "slotId": "Front_plate"
+ },
+ {
+ "_id": "6659fef6c7faaa6180043395",
+ "_tpl": "656fa53d94b480b8a500c0e4",
+ "parentId": "6659fef6c7faaa618004338c",
+ "slotId": "Back_plate"
+ },
+ {
+ "_id": "6659fef6c7faaa6180043396",
+ "_tpl": "6557458f83942d705f0c4962",
+ "parentId": "6659fef6c7faaa618004338c",
+ "slotId": "Left_side_plate"
+ },
+ {
+ "_id": "6659fef6c7faaa6180043397",
+ "_tpl": "6557458f83942d705f0c4962",
+ "parentId": "6659fef6c7faaa618004338c",
+ "slotId": "Right_side_plate"
+ },
+ {
+ "_id": "6659fef6c7faaa6180043398",
+ "_tpl": "5b40e2bc5acfc40016388216",
+ "parentId": "6659fef6c7faaa6180043383",
+ "slotId": "main"
+ },
+ {
+ "_id": "6659fef6c7faaa6180043399",
+ "_tpl": "657112234269e9a568089eac",
+ "parentId": "6659fef6c7faaa6180043398",
+ "slotId": "Helmet_top"
+ },
+ {
+ "_id": "6659fef6c7faaa618004339a",
+ "_tpl": "657112a4818110db4600aa66",
+ "parentId": "6659fef6c7faaa6180043398",
+ "slotId": "Helmet_back"
+ },
+ {
+ "_id": "6659fef6c7faaa618004339b",
+ "_tpl": "657112ce22996eaf110881fb",
+ "parentId": "6659fef6c7faaa6180043398",
+ "slotId": "Helmet_ears"
+ },
+ {
+ "_id": "6659fef6c7faaa618004339d",
+ "_tpl": "5e2af55f86f7746d4159f07c",
+ "upd": {
+ "StackObjectsCount": 1
+ },
+ "parentId": "6659fef6c7faaa6180043383",
+ "slotId": "main"
+ },
+ {
+ "_id": "6659fef6c7faaa618004339e",
+ "_tpl": "5b40e2bc5acfc40016388216",
+ "parentId": "6659fef6c7faaa6180043383",
+ "slotId": "main"
+ },
+ {
+ "_id": "6659fef6c7faaa618004339f",
+ "_tpl": "657112234269e9a568089eac",
+ "parentId": "6659fef6c7faaa618004339e",
+ "slotId": "Helmet_top"
+ },
+ {
+ "_id": "6659fef6c7faaa61800433a0",
+ "_tpl": "657112a4818110db4600aa66",
+ "parentId": "6659fef6c7faaa618004339e",
+ "slotId": "Helmet_back"
+ },
+ {
+ "_id": "6659fef6c7faaa61800433a1",
+ "_tpl": "657112ce22996eaf110881fb",
+ "parentId": "6659fef6c7faaa618004339e",
+ "slotId": "Helmet_ears"
+ }
+ ],
"sender": "System",
"messageText": "TarkovTV May 2024 gift",
"collectionTimeHours": 48,
"associatedEvent": "Promo",
- "maxToSendPlayer": 1
+ "maxToSendPlayer": 1
},
- "OBDOLBOS": {
- "items": [{
- "_id": "665a02824c1d50c3810a27f5",
- "_tpl": "5c0e530286f7747fa1419862",
- "upd": {
- "StackObjectsCount": 1
- },
- "parentId": "665a02824c1d50c3810a27f3",
- "slotId": "main"
- }, {
- "_id": "665a02824c1d50c3810a27f7",
- "_tpl": "5c0e530286f7747fa1419862",
- "upd": {
- "StackObjectsCount": 1
- },
- "parentId": "665a02824c1d50c3810a27f3",
- "slotId": "main"
- }, {
- "_id": "665a02824c1d50c3810a27f9",
- "_tpl": "5c0e533786f7747fa23f4d47",
- "upd": {
- "StackObjectsCount": 1
- },
- "parentId": "665a02824c1d50c3810a27f3",
- "slotId": "main"
- }, {
- "_id": "665a02824c1d50c3810a27fb",
- "_tpl": "5c0e533786f7747fa23f4d47",
- "upd": {
- "StackObjectsCount": 1
- },
- "parentId": "665a02824c1d50c3810a27f3",
- "slotId": "main"
- }, {
- "_id": "665a02824c1d50c3810a27fd",
- "_tpl": "5ed5160a87bb8443d10680b5",
- "upd": {
- "StackObjectsCount": 1
- },
- "parentId": "665a02824c1d50c3810a27f3",
- "slotId": "main"
- }, {
- "_id": "665a02824c1d50c3810a27ff",
- "_tpl": "5ed5160a87bb8443d10680b5",
- "upd": {
- "StackObjectsCount": 1
- },
- "parentId": "665a02824c1d50c3810a27f3",
- "slotId": "main"
- }, {
- "_id": "665a02824c1d50c3810a2801",
- "_tpl": "637b620db7afa97bfc3d7009",
- "upd": {
- "StackObjectsCount": 1
- },
- "parentId": "665a02824c1d50c3810a27f3",
- "slotId": "main"
- }, {
- "_id": "665a02824c1d50c3810a2803",
- "_tpl": "637b620db7afa97bfc3d7009",
- "upd": {
- "StackObjectsCount": 1
- },
- "parentId": "665a02824c1d50c3810a27f3",
- "slotId": "main"
- }, {
- "_id": "665a02824c1d50c3810a2805",
- "_tpl": "5c0e534186f7747fa1419867",
- "upd": {
- "StackObjectsCount": 1
- },
- "parentId": "665a02824c1d50c3810a27f3",
- "slotId": "main"
- }, {
- "_id": "665a02824c1d50c3810a2807",
- "_tpl": "5c0e534186f7747fa1419867",
- "upd": {
- "StackObjectsCount": 1
- },
- "parentId": "665a02824c1d50c3810a27f3",
- "slotId": "main"
- }, {
- "_id": "665a02824c1d50c3810a2809",
- "_tpl": "637b6251104668754b72f8f9",
- "upd": {
- "StackObjectsCount": 1
- },
- "parentId": "665a02824c1d50c3810a27f3",
- "slotId": "main"
- }, {
- "_id": "665a02824c1d50c3810a280b",
- "_tpl": "637b6251104668754b72f8f9",
- "upd": {
- "StackObjectsCount": 1
- },
- "parentId": "665a02824c1d50c3810a27f3",
- "slotId": "main"
- }, {
- "_id": "665a02824c1d50c3810a280d",
- "_tpl": "5751a89d24597722aa0e8db0",
- "upd": {
- "StackObjectsCount": 1
- },
- "parentId": "665a02824c1d50c3810a27f3",
- "slotId": "main"
- }, {
- "_id": "665a02824c1d50c3810a280f",
- "_tpl": "5751a89d24597722aa0e8db0",
- "upd": {
- "StackObjectsCount": 1
- },
- "parentId": "665a02824c1d50c3810a27f3",
- "slotId": "main"
- }, {
- "_id": "665a02824c1d50c3810a2811",
- "_tpl": "5ed51652f6c34d2cc26336a1",
- "upd": {
- "StackObjectsCount": 1
- },
- "parentId": "665a02824c1d50c3810a27f3",
- "slotId": "main"
- }, {
- "_id": "665a02824c1d50c3810a2813",
- "_tpl": "5ed51652f6c34d2cc26336a1",
- "upd": {
- "StackObjectsCount": 1
- },
- "parentId": "665a02824c1d50c3810a27f3",
- "slotId": "main"
- }
- ],
+ "OBDOLBOS": {
+ "items": [
+ {
+ "_id": "665a02824c1d50c3810a27f5",
+ "_tpl": "5c0e530286f7747fa1419862",
+ "upd": {
+ "StackObjectsCount": 1
+ },
+ "parentId": "665a02824c1d50c3810a27f3",
+ "slotId": "main"
+ },
+ {
+ "_id": "665a02824c1d50c3810a27f7",
+ "_tpl": "5c0e530286f7747fa1419862",
+ "upd": {
+ "StackObjectsCount": 1
+ },
+ "parentId": "665a02824c1d50c3810a27f3",
+ "slotId": "main"
+ },
+ {
+ "_id": "665a02824c1d50c3810a27f9",
+ "_tpl": "5c0e533786f7747fa23f4d47",
+ "upd": {
+ "StackObjectsCount": 1
+ },
+ "parentId": "665a02824c1d50c3810a27f3",
+ "slotId": "main"
+ },
+ {
+ "_id": "665a02824c1d50c3810a27fb",
+ "_tpl": "5c0e533786f7747fa23f4d47",
+ "upd": {
+ "StackObjectsCount": 1
+ },
+ "parentId": "665a02824c1d50c3810a27f3",
+ "slotId": "main"
+ },
+ {
+ "_id": "665a02824c1d50c3810a27fd",
+ "_tpl": "5ed5160a87bb8443d10680b5",
+ "upd": {
+ "StackObjectsCount": 1
+ },
+ "parentId": "665a02824c1d50c3810a27f3",
+ "slotId": "main"
+ },
+ {
+ "_id": "665a02824c1d50c3810a27ff",
+ "_tpl": "5ed5160a87bb8443d10680b5",
+ "upd": {
+ "StackObjectsCount": 1
+ },
+ "parentId": "665a02824c1d50c3810a27f3",
+ "slotId": "main"
+ },
+ {
+ "_id": "665a02824c1d50c3810a2801",
+ "_tpl": "637b620db7afa97bfc3d7009",
+ "upd": {
+ "StackObjectsCount": 1
+ },
+ "parentId": "665a02824c1d50c3810a27f3",
+ "slotId": "main"
+ },
+ {
+ "_id": "665a02824c1d50c3810a2803",
+ "_tpl": "637b620db7afa97bfc3d7009",
+ "upd": {
+ "StackObjectsCount": 1
+ },
+ "parentId": "665a02824c1d50c3810a27f3",
+ "slotId": "main"
+ },
+ {
+ "_id": "665a02824c1d50c3810a2805",
+ "_tpl": "5c0e534186f7747fa1419867",
+ "upd": {
+ "StackObjectsCount": 1
+ },
+ "parentId": "665a02824c1d50c3810a27f3",
+ "slotId": "main"
+ },
+ {
+ "_id": "665a02824c1d50c3810a2807",
+ "_tpl": "5c0e534186f7747fa1419867",
+ "upd": {
+ "StackObjectsCount": 1
+ },
+ "parentId": "665a02824c1d50c3810a27f3",
+ "slotId": "main"
+ },
+ {
+ "_id": "665a02824c1d50c3810a2809",
+ "_tpl": "637b6251104668754b72f8f9",
+ "upd": {
+ "StackObjectsCount": 1
+ },
+ "parentId": "665a02824c1d50c3810a27f3",
+ "slotId": "main"
+ },
+ {
+ "_id": "665a02824c1d50c3810a280b",
+ "_tpl": "637b6251104668754b72f8f9",
+ "upd": {
+ "StackObjectsCount": 1
+ },
+ "parentId": "665a02824c1d50c3810a27f3",
+ "slotId": "main"
+ },
+ {
+ "_id": "665a02824c1d50c3810a280d",
+ "_tpl": "5751a89d24597722aa0e8db0",
+ "upd": {
+ "StackObjectsCount": 1
+ },
+ "parentId": "665a02824c1d50c3810a27f3",
+ "slotId": "main"
+ },
+ {
+ "_id": "665a02824c1d50c3810a280f",
+ "_tpl": "5751a89d24597722aa0e8db0",
+ "upd": {
+ "StackObjectsCount": 1
+ },
+ "parentId": "665a02824c1d50c3810a27f3",
+ "slotId": "main"
+ },
+ {
+ "_id": "665a02824c1d50c3810a2811",
+ "_tpl": "5ed51652f6c34d2cc26336a1",
+ "upd": {
+ "StackObjectsCount": 1
+ },
+ "parentId": "665a02824c1d50c3810a27f3",
+ "slotId": "main"
+ },
+ {
+ "_id": "665a02824c1d50c3810a2813",
+ "_tpl": "5ed51652f6c34d2cc26336a1",
+ "upd": {
+ "StackObjectsCount": 1
+ },
+ "parentId": "665a02824c1d50c3810a27f3",
+ "slotId": "main"
+ }
+ ],
"sender": "System",
"messageText": "TarkovTV May 2024 gift",
"collectionTimeHours": 48,
"associatedEvent": "Promo",
- "maxToSendPlayer": 1
+ "maxToSendPlayer": 1
},
- "THICC": {
- "items": [{
- "_id": "665a06ac85c6ab387e0afba5",
- "_tpl": "5c12613b86f7743bbe2c3f76",
- "upd": {
- "StackObjectsCount": 1
- },
- "parentId": "665a06ac85c6ab387e0afba3",
- "slotId": "main"
- }, {
- "_id": "665a06ac85c6ab387e0afba7",
- "_tpl": "59faff1d86f7746c51718c9c",
- "upd": {
- "StackObjectsCount": 1
- },
- "parentId": "665a06ac85c6ab387e0afba3",
- "slotId": "main"
- }, {
- "_id": "665a06ac85c6ab387e0afba8",
- "_tpl": "64637076203536ad5600c990",
- "upd": {
- "Repairable": {
- "Durability": 100,
- "MaxDurability": 100
- }
- },
- "parentId": "665a06ac85c6ab387e0afba3",
- "slotId": "main"
- }, {
- "_id": "665a06ac85c6ab387e0afba9",
- "_tpl": "646371779f5f0ea59a04c204",
- "parentId": "665a06ac85c6ab387e0afba8",
- "slotId": "mod_pistolgrip"
- }, {
- "_id": "665a06ac85c6ab387e0afbaa",
- "_tpl": "646371faf2404ab67905c8e9",
- "parentId": "665a06ac85c6ab387e0afba8",
- "slotId": "mod_barrel"
- }, {
- "_id": "665a06ac85c6ab387e0afbab",
- "_tpl": "6492efb8cfcf7c89e701abf3",
- "parentId": "665a06ac85c6ab387e0afbaa",
- "slotId": "mod_muzzle"
- }, {
- "_id": "665a06ac85c6ab387e0afbac",
- "_tpl": "646372518610c40fc20204e8",
- "parentId": "665a06ac85c6ab387e0afba8",
- "slotId": "mod_magazine"
- }, {
- "_id": "665a06ac85c6ab387e0afbad",
- "_tpl": "646371a9f2404ab67905c8e6",
- "parentId": "665a06ac85c6ab387e0afba8",
- "slotId": "mod_stock"
- }, {
- "_id": "665a06ac85c6ab387e0afbae",
- "_tpl": "6464d870bb2c580352070cc4",
- "parentId": "665a06ac85c6ab387e0afba8",
- "slotId": "mod_bipod"
- }, {
- "_id": "665a06ac85c6ab387e0afbaf",
- "_tpl": "6492fb8253acae0af00a29b6",
- "parentId": "665a06ac85c6ab387e0afba8",
- "slotId": "mod_sight_rear"
- }, {
- "_id": "665a06ac85c6ab387e0afbb0",
- "_tpl": "60a283193cb70855c43a381d",
- "parentId": "665a06ac85c6ab387e0afba3",
- "slotId": "main"
- }, {
- "_id": "665a06ac85c6ab387e0afbb1",
- "_tpl": "6575d561b15fef3dd4051670",
- "parentId": "665a06ac85c6ab387e0afbb0",
- "slotId": "Soft_armor_front"
- }, {
- "_id": "665a06ac85c6ab387e0afbb2",
- "_tpl": "6575d56b16c2762fba005818",
- "parentId": "665a06ac85c6ab387e0afbb0",
- "slotId": "Soft_armor_back"
- }, {
- "_id": "665a06ac85c6ab387e0afbb3",
- "_tpl": "6575d57a16c2762fba00581c",
- "parentId": "665a06ac85c6ab387e0afbb0",
- "slotId": "Soft_armor_left"
- }, {
- "_id": "665a06ac85c6ab387e0afbb4",
- "_tpl": "6575d589b15fef3dd4051674",
- "parentId": "665a06ac85c6ab387e0afbb0",
- "slotId": "soft_armor_right"
- }, {
- "_id": "665a06ac85c6ab387e0afbb5",
- "_tpl": "6575d598b15fef3dd4051678",
- "parentId": "665a06ac85c6ab387e0afbb0",
- "slotId": "Collar"
- }, {
- "_id": "665a06ac85c6ab387e0afbb6",
- "_tpl": "6575d5b316c2762fba005824",
- "parentId": "665a06ac85c6ab387e0afbb0",
- "slotId": "Shoulder_l"
- }, {
- "_id": "665a06ac85c6ab387e0afbb7",
- "_tpl": "6575d5bd16c2762fba005828",
- "parentId": "665a06ac85c6ab387e0afbb0",
- "slotId": "Shoulder_r"
- }, {
- "_id": "665a06ac85c6ab387e0afbb8",
- "_tpl": "6575d5a616c2762fba005820",
- "parentId": "665a06ac85c6ab387e0afbb0",
- "slotId": "Groin"
- }, {
- "_id": "665a06ac85c6ab387e0afbb9",
- "_tpl": "656fa61e94b480b8a500c0e8",
- "parentId": "665a06ac85c6ab387e0afbb0",
- "slotId": "Front_plate"
- }, {
- "_id": "665a06ac85c6ab387e0afbba",
- "_tpl": "656fa61e94b480b8a500c0e8",
- "parentId": "665a06ac85c6ab387e0afbb0",
- "slotId": "Back_plate"
- }, {
- "_id": "665a06ac85c6ab387e0afbbb",
- "_tpl": "64afdb577bb3bfe8fe03fd1d",
- "parentId": "665a06ac85c6ab387e0afbb0",
- "slotId": "Left_side_plate"
- }, {
- "_id": "665a06ac85c6ab387e0afbbc",
- "_tpl": "64afdb577bb3bfe8fe03fd1d",
- "parentId": "665a06ac85c6ab387e0afbb0",
- "slotId": "Right_side_plate"
+ "THICC": {
+ "items": [
+ {
+ "_id": "665a06ac85c6ab387e0afba5",
+ "_tpl": "5c12613b86f7743bbe2c3f76",
+ "upd": {
+ "StackObjectsCount": 1
+ },
+ "parentId": "665a06ac85c6ab387e0afba3",
+ "slotId": "main"
+ },
+ {
+ "_id": "665a06ac85c6ab387e0afba7",
+ "_tpl": "59faff1d86f7746c51718c9c",
+ "upd": {
+ "StackObjectsCount": 1
+ },
+ "parentId": "665a06ac85c6ab387e0afba3",
+ "slotId": "main"
+ },
+ {
+ "_id": "665a06ac85c6ab387e0afba8",
+ "_tpl": "64637076203536ad5600c990",
+ "upd": {
+ "Repairable": {
+ "Durability": 100,
+ "MaxDurability": 100
}
- ],
+ },
+ "parentId": "665a06ac85c6ab387e0afba3",
+ "slotId": "main"
+ },
+ {
+ "_id": "665a06ac85c6ab387e0afba9",
+ "_tpl": "646371779f5f0ea59a04c204",
+ "parentId": "665a06ac85c6ab387e0afba8",
+ "slotId": "mod_pistolgrip"
+ },
+ {
+ "_id": "665a06ac85c6ab387e0afbaa",
+ "_tpl": "646371faf2404ab67905c8e9",
+ "parentId": "665a06ac85c6ab387e0afba8",
+ "slotId": "mod_barrel"
+ },
+ {
+ "_id": "665a06ac85c6ab387e0afbab",
+ "_tpl": "6492efb8cfcf7c89e701abf3",
+ "parentId": "665a06ac85c6ab387e0afbaa",
+ "slotId": "mod_muzzle"
+ },
+ {
+ "_id": "665a06ac85c6ab387e0afbac",
+ "_tpl": "646372518610c40fc20204e8",
+ "parentId": "665a06ac85c6ab387e0afba8",
+ "slotId": "mod_magazine"
+ },
+ {
+ "_id": "665a06ac85c6ab387e0afbad",
+ "_tpl": "646371a9f2404ab67905c8e6",
+ "parentId": "665a06ac85c6ab387e0afba8",
+ "slotId": "mod_stock"
+ },
+ {
+ "_id": "665a06ac85c6ab387e0afbae",
+ "_tpl": "6464d870bb2c580352070cc4",
+ "parentId": "665a06ac85c6ab387e0afba8",
+ "slotId": "mod_bipod"
+ },
+ {
+ "_id": "665a06ac85c6ab387e0afbaf",
+ "_tpl": "6492fb8253acae0af00a29b6",
+ "parentId": "665a06ac85c6ab387e0afba8",
+ "slotId": "mod_sight_rear"
+ },
+ {
+ "_id": "665a06ac85c6ab387e0afbb0",
+ "_tpl": "60a283193cb70855c43a381d",
+ "parentId": "665a06ac85c6ab387e0afba3",
+ "slotId": "main"
+ },
+ {
+ "_id": "665a06ac85c6ab387e0afbb1",
+ "_tpl": "6575d561b15fef3dd4051670",
+ "parentId": "665a06ac85c6ab387e0afbb0",
+ "slotId": "Soft_armor_front"
+ },
+ {
+ "_id": "665a06ac85c6ab387e0afbb2",
+ "_tpl": "6575d56b16c2762fba005818",
+ "parentId": "665a06ac85c6ab387e0afbb0",
+ "slotId": "Soft_armor_back"
+ },
+ {
+ "_id": "665a06ac85c6ab387e0afbb3",
+ "_tpl": "6575d57a16c2762fba00581c",
+ "parentId": "665a06ac85c6ab387e0afbb0",
+ "slotId": "Soft_armor_left"
+ },
+ {
+ "_id": "665a06ac85c6ab387e0afbb4",
+ "_tpl": "6575d589b15fef3dd4051674",
+ "parentId": "665a06ac85c6ab387e0afbb0",
+ "slotId": "soft_armor_right"
+ },
+ {
+ "_id": "665a06ac85c6ab387e0afbb5",
+ "_tpl": "6575d598b15fef3dd4051678",
+ "parentId": "665a06ac85c6ab387e0afbb0",
+ "slotId": "Collar"
+ },
+ {
+ "_id": "665a06ac85c6ab387e0afbb6",
+ "_tpl": "6575d5b316c2762fba005824",
+ "parentId": "665a06ac85c6ab387e0afbb0",
+ "slotId": "Shoulder_l"
+ },
+ {
+ "_id": "665a06ac85c6ab387e0afbb7",
+ "_tpl": "6575d5bd16c2762fba005828",
+ "parentId": "665a06ac85c6ab387e0afbb0",
+ "slotId": "Shoulder_r"
+ },
+ {
+ "_id": "665a06ac85c6ab387e0afbb8",
+ "_tpl": "6575d5a616c2762fba005820",
+ "parentId": "665a06ac85c6ab387e0afbb0",
+ "slotId": "Groin"
+ },
+ {
+ "_id": "665a06ac85c6ab387e0afbb9",
+ "_tpl": "656fa61e94b480b8a500c0e8",
+ "parentId": "665a06ac85c6ab387e0afbb0",
+ "slotId": "Front_plate"
+ },
+ {
+ "_id": "665a06ac85c6ab387e0afbba",
+ "_tpl": "656fa61e94b480b8a500c0e8",
+ "parentId": "665a06ac85c6ab387e0afbb0",
+ "slotId": "Back_plate"
+ },
+ {
+ "_id": "665a06ac85c6ab387e0afbbb",
+ "_tpl": "64afdb577bb3bfe8fe03fd1d",
+ "parentId": "665a06ac85c6ab387e0afbb0",
+ "slotId": "Left_side_plate"
+ },
+ {
+ "_id": "665a06ac85c6ab387e0afbbc",
+ "_tpl": "64afdb577bb3bfe8fe03fd1d",
+ "parentId": "665a06ac85c6ab387e0afbb0",
+ "slotId": "Right_side_plate"
+ }
+ ],
"sender": "System",
"messageText": "TarkovTV May 2024 gift",
"collectionTimeHours": 48,
"associatedEvent": "Promo",
- "maxToSendPlayer": 1
+ "maxToSendPlayer": 1
}
}
-}
\ No newline at end of file
+}
diff --git a/project/assets/configs/health.json b/project/assets/configs/health.json
index 6bfb7edb..75ae173e 100644
--- a/project/assets/configs/health.json
+++ b/project/assets/configs/health.json
@@ -7,4 +7,4 @@
"health": true,
"effects": true
}
-}
\ No newline at end of file
+}
diff --git a/project/assets/configs/hideout.json b/project/assets/configs/hideout.json
index b28f446e..161ce9b3 100644
--- a/project/assets/configs/hideout.json
+++ b/project/assets/configs/hideout.json
@@ -8,5 +8,5 @@
"expCraftAmount": 10,
"overrideCraftTimeSeconds": -1,
"overrideBuildTimeSeconds": -1,
- "updateProfileHideoutWhenActiveWithinMinutes": 90
-}
\ No newline at end of file
+ "updateProfileHideoutWhenActiveWithinMinutes": 90
+}
diff --git a/project/assets/configs/http.json b/project/assets/configs/http.json
index a6defa80..633a5247 100644
--- a/project/assets/configs/http.json
+++ b/project/assets/configs/http.json
@@ -1,9 +1,9 @@
{
"ip": "127.0.0.1",
"port": 6969,
- "backendIp": "127.0.0.1",
- "backendPort": 6969,
+ "backendIp": "127.0.0.1",
+ "backendPort": 6969,
"webSocketPingDelayMs": 90000,
"logRequests": true,
"serverImagePathOverride": {}
-}
\ No newline at end of file
+}
diff --git a/project/assets/configs/inraid.json b/project/assets/configs/inraid.json
index 97085b3d..6feb35b4 100644
--- a/project/assets/configs/inraid.json
+++ b/project/assets/configs/inraid.json
@@ -13,15 +13,7 @@
"save": {
"loot": true
},
- "carExtracts": [
- "Dorms V-Ex",
- "PP Exfil",
- "V-Ex_light",
- "South V-Ex",
- "E7_car",
- "Sandbox_VExit",
- "Shorl_V-Ex"
- ],
+ "carExtracts": ["Dorms V-Ex", "PP Exfil", "V-Ex_light", "South V-Ex", "E7_car", "Sandbox_VExit", "Shorl_V-Ex"],
"coopExtracts": [
"Interchange Cooperation",
"tunnel_shared",
@@ -37,4 +29,4 @@
"pmcKillProbabilityForScavGain": 0.2,
"keepFiRSecureContainerOnDeath": false,
"playerScavHostileChancePercent": 15
-}
\ No newline at end of file
+}
diff --git a/project/assets/configs/insurance.json b/project/assets/configs/insurance.json
index 863009c9..757668ac 100644
--- a/project/assets/configs/insurance.json
+++ b/project/assets/configs/insurance.json
@@ -3,17 +3,10 @@
"54cb50c76803fa8b248b4571": 75,
"54cb57776803fa99248b456e": 85
},
- "blacklistedEquipment": [
- "SpecialSlot1",
- "SpecialSlot2",
- "SpecialSlot3"
- ],
- "slotIdsToAlwaysRemove": [
- "cartridges",
- "patron_in_weapon"
- ],
+ "blacklistedEquipment": ["SpecialSlot1", "SpecialSlot2", "SpecialSlot3"],
+ "slotIdsToAlwaysRemove": ["cartridges", "patron_in_weapon"],
"returnTimeOverrideSeconds": 0,
"runIntervalSeconds": 600,
"minAttachmentRoublePriceToBeTaken": 2000,
"chanceNoAttachmentsTakenPercent": 10
-}
\ No newline at end of file
+}
diff --git a/project/assets/configs/item.json b/project/assets/configs/item.json
index d5bee79c..304ba3b0 100644
--- a/project/assets/configs/item.json
+++ b/project/assets/configs/item.json
@@ -49,10 +49,7 @@
"6241c2c2117ad530666a5108",
"5580239d4bdc2de7118b4583"
],
- "lootableItemBlacklist": [
- "660bbc47c38b837877075e47",
- "660bc341c38b837877075e4c"
- ],
+ "lootableItemBlacklist": ["660bbc47c38b837877075e47", "660bc341c38b837877075e4c"],
"rewardItemBlacklist": [
"58ac60eb86f77401897560ff",
"5e997f0b86f7741ac73993e2",
@@ -101,7 +98,7 @@
"6662e9f37fa79a6d83730fa0",
"6662ea05f6259762c56f3189",
"6638a5474e92f038531e210e",
- "65ddcc9cfa85b9f17d0dfb07"
+ "65ddcc9cfa85b9f17d0dfb07"
],
"bossItems": [
"6275303a9f372d6ea97f9ec7",
@@ -148,4 +145,4 @@
"63a898a328e385334e0640a5": 5000,
"63a897c6b1ff6e29734fcc95": 10000
}
-}
\ No newline at end of file
+}
diff --git a/project/assets/configs/locale.json b/project/assets/configs/locale.json
index 2ddddbd6..30e0d4da 100644
--- a/project/assets/configs/locale.json
+++ b/project/assets/configs/locale.json
@@ -35,4 +35,4 @@
"zh-*": "zh-cn",
"es-*": "es-es"
}
-}
\ No newline at end of file
+}
diff --git a/project/assets/configs/location.json b/project/assets/configs/location.json
index e2a42bf1..232e5a34 100644
--- a/project/assets/configs/location.json
+++ b/project/assets/configs/location.json
@@ -16,7 +16,7 @@
"tarkovstreets": 3,
"terminal": 1,
"sandbox": 2.8,
- "sandbox_high": 2.8,
+ "sandbox_high": 2.8,
"town": 0
},
"staticLootMultiplier": {
@@ -36,7 +36,7 @@
"tarkovstreets": 1,
"terminal": 1,
"sandbox": 1,
- "sandbox_high": 1,
+ "sandbox_high": 1,
"town": 1
},
"customWaves": {
@@ -56,9 +56,7 @@
"Supports": [
{
"BossEscortType": "pmcBEAR",
- "BossEscortDifficult": [
- "normal"
- ],
+ "BossEscortDifficult": ["normal"],
"BossEscortAmount": "1"
}
],
@@ -79,9 +77,7 @@
"Supports": [
{
"BossEscortType": "pmcUSEC",
- "BossEscortDifficult": [
- "normal"
- ],
+ "BossEscortDifficult": ["normal"],
"BossEscortAmount": "1"
}
],
@@ -104,9 +100,7 @@
"Supports": [
{
"BossEscortType": "pmcBEAR",
- "BossEscortDifficult": [
- "normal"
- ],
+ "BossEscortDifficult": ["normal"],
"BossEscortAmount": "2"
}
],
@@ -127,9 +121,7 @@
"Supports": [
{
"BossEscortType": "pmcUSEC",
- "BossEscortDifficult": [
- "normal"
- ],
+ "BossEscortDifficult": ["normal"],
"BossEscortAmount": "2"
}
],
@@ -152,9 +144,7 @@
"Supports": [
{
"BossEscortType": "pmcBEAR",
- "BossEscortDifficult": [
- "normal"
- ],
+ "BossEscortDifficult": ["normal"],
"BossEscortAmount": "2"
}
],
@@ -175,9 +165,7 @@
"Supports": [
{
"BossEscortType": "pmcUSEC",
- "BossEscortDifficult": [
- "normal"
- ],
+ "BossEscortDifficult": ["normal"],
"BossEscortAmount": "2"
}
],
@@ -198,9 +186,7 @@
"Supports": [
{
"BossEscortType": "pmcBEAR",
- "BossEscortDifficult": [
- "normal"
- ],
+ "BossEscortDifficult": ["normal"],
"BossEscortAmount": "2"
}
],
@@ -221,9 +207,7 @@
"Supports": [
{
"BossEscortType": "pmcUSEC",
- "BossEscortDifficult": [
- "normal"
- ],
+ "BossEscortDifficult": ["normal"],
"BossEscortAmount": "2"
}
],
@@ -244,9 +228,7 @@
"Supports": [
{
"BossEscortType": "pmcBEAR",
- "BossEscortDifficult": [
- "normal"
- ],
+ "BossEscortDifficult": ["normal"],
"BossEscortAmount": "2"
}
],
@@ -267,9 +249,7 @@
"Supports": [
{
"BossEscortType": "pmcUSEC",
- "BossEscortDifficult": [
- "normal"
- ],
+ "BossEscortDifficult": ["normal"],
"BossEscortAmount": "2"
}
],
@@ -292,9 +272,7 @@
"Supports": [
{
"BossEscortType": "pmcBEAR",
- "BossEscortDifficult": [
- "normal"
- ],
+ "BossEscortDifficult": ["normal"],
"BossEscortAmount": "1"
}
],
@@ -315,9 +293,7 @@
"Supports": [
{
"BossEscortType": "pmcUSEC",
- "BossEscortDifficult": [
- "normal"
- ],
+ "BossEscortDifficult": ["normal"],
"BossEscortAmount": "1"
}
],
@@ -338,9 +314,7 @@
"Supports": [
{
"BossEscortType": "pmcUSEC",
- "BossEscortDifficult": [
- "normal"
- ],
+ "BossEscortDifficult": ["normal"],
"BossEscortAmount": "1"
}
],
@@ -361,9 +335,7 @@
"Supports": [
{
"BossEscortType": "pmcBEAR",
- "BossEscortDifficult": [
- "normal"
- ],
+ "BossEscortDifficult": ["normal"],
"BossEscortAmount": "1"
}
],
@@ -384,9 +356,7 @@
"Supports": [
{
"BossEscortType": "pmcUSEC",
- "BossEscortDifficult": [
- "normal"
- ],
+ "BossEscortDifficult": ["normal"],
"BossEscortAmount": "1"
}
],
@@ -407,9 +377,7 @@
"Supports": [
{
"BossEscortType": "pmcBEAR",
- "BossEscortDifficult": [
- "normal"
- ],
+ "BossEscortDifficult": ["normal"],
"BossEscortAmount": "1"
}
],
@@ -432,9 +400,7 @@
"Supports": [
{
"BossEscortType": "pmcBEAR",
- "BossEscortDifficult": [
- "normal"
- ],
+ "BossEscortDifficult": ["normal"],
"BossEscortAmount": "1"
}
],
@@ -455,9 +421,7 @@
"Supports": [
{
"BossEscortType": "pmcBEAR",
- "BossEscortDifficult": [
- "normal"
- ],
+ "BossEscortDifficult": ["normal"],
"BossEscortAmount": "1"
}
],
@@ -478,9 +442,7 @@
"Supports": [
{
"BossEscortType": "pmcBEAR",
- "BossEscortDifficult": [
- "normal"
- ],
+ "BossEscortDifficult": ["normal"],
"BossEscortAmount": "0"
}
],
@@ -501,9 +463,7 @@
"Supports": [
{
"BossEscortType": "pmcUSEC",
- "BossEscortDifficult": [
- "normal"
- ],
+ "BossEscortDifficult": ["normal"],
"BossEscortAmount": "1"
}
],
@@ -524,9 +484,7 @@
"Supports": [
{
"BossEscortType": "pmcUSEC",
- "BossEscortDifficult": [
- "normal"
- ],
+ "BossEscortDifficult": ["normal"],
"BossEscortAmount": "1"
}
],
@@ -547,9 +505,7 @@
"Supports": [
{
"BossEscortType": "pmcUSEC",
- "BossEscortDifficult": [
- "normal"
- ],
+ "BossEscortDifficult": ["normal"],
"BossEscortAmount": "0"
}
],
@@ -572,9 +528,7 @@
"Supports": [
{
"BossEscortType": "pmcBEAR",
- "BossEscortDifficult": [
- "normal"
- ],
+ "BossEscortDifficult": ["normal"],
"BossEscortAmount": "1"
}
],
@@ -595,9 +549,7 @@
"Supports": [
{
"BossEscortType": "pmcUSEC",
- "BossEscortDifficult": [
- "normal"
- ],
+ "BossEscortDifficult": ["normal"],
"BossEscortAmount": "1"
}
],
@@ -620,9 +572,7 @@
"Supports": [
{
"BossEscortType": "pmcBEAR",
- "BossEscortDifficult": [
- "normal"
- ],
+ "BossEscortDifficult": ["normal"],
"BossEscortAmount": "1"
}
],
@@ -643,9 +593,7 @@
"Supports": [
{
"BossEscortType": "pmcUSEC",
- "BossEscortDifficult": [
- "normal"
- ],
+ "BossEscortDifficult": ["normal"],
"BossEscortAmount": "1"
}
],
@@ -668,9 +616,7 @@
"Supports": [
{
"BossEscortType": "pmcBEAR",
- "BossEscortDifficult": [
- "normal"
- ],
+ "BossEscortDifficult": ["normal"],
"BossEscortAmount": "1"
}
],
@@ -691,9 +637,7 @@
"Supports": [
{
"BossEscortType": "pmcBEAR",
- "BossEscortDifficult": [
- "normal"
- ],
+ "BossEscortDifficult": ["normal"],
"BossEscortAmount": "1"
}
],
@@ -714,9 +658,7 @@
"Supports": [
{
"BossEscortType": "pmcUSEC",
- "BossEscortDifficult": [
- "normal"
- ],
+ "BossEscortDifficult": ["normal"],
"BossEscortAmount": "1"
}
],
@@ -737,9 +679,7 @@
"Supports": [
{
"BossEscortType": "pmcUSEC",
- "BossEscortDifficult": [
- "normal"
- ],
+ "BossEscortDifficult": ["normal"],
"BossEscortAmount": "1"
}
],
@@ -762,9 +702,7 @@
"Supports": [
{
"BossEscortType": "pmcBEAR",
- "BossEscortDifficult": [
- "normal"
- ],
+ "BossEscortDifficult": ["normal"],
"BossEscortAmount": "2"
}
],
@@ -785,9 +723,7 @@
"Supports": [
{
"BossEscortType": "pmcUSEC",
- "BossEscortDifficult": [
- "normal"
- ],
+ "BossEscortDifficult": ["normal"],
"BossEscortAmount": "2"
}
],
@@ -795,7 +731,7 @@
"ChanceGroup": 0
}
],
- "sandbox_high": [
+ "sandbox_high": [
{
"sptId": "pmcBEARSandboxNormalSpawn",
"BossName": "pmcBEAR",
@@ -810,9 +746,7 @@
"Supports": [
{
"BossEscortType": "pmcBEAR",
- "BossEscortDifficult": [
- "normal"
- ],
+ "BossEscortDifficult": ["normal"],
"BossEscortAmount": "2"
}
],
@@ -833,9 +767,7 @@
"Supports": [
{
"BossEscortType": "pmcUSEC",
- "BossEscortDifficult": [
- "normal"
- ],
+ "BossEscortDifficult": ["normal"],
"BossEscortAmount": "2"
}
],
@@ -1047,36 +979,29 @@
}
},
"openZones": {
- "bigmap": [
- "ZoneScavBase"
- ]
+ "bigmap": ["ZoneScavBase"]
},
"forcedLootSingleSpawnById": {
"bigmap": [
"5ac620eb86f7743a8e6e0da0",
"5939e5a786f77461f11c0098",
"64e74a3d4d49d23b2c39d319",
- "6614230055afee107f05e998"
- ],
- "interchange": [
- "64e74a5ac2b4f829615ec336"
+ "6614230055afee107f05e998"
],
+ "interchange": ["64e74a5ac2b4f829615ec336"],
"lighthouse": [
"6331bb0d1aa9f42b804997a6",
"6398a0861c712b1e1d4dadf1",
"6399f54b0a36db13c823ad21",
"64e74a64aac4cd0a7264ecdf",
- "661666458c2aa9cb1602503b"
- ],
- "rezervbase": [
- "64e74a4baac4cd0a7264ecdd",
- "6398a072e301557ae24cec92"
+ "661666458c2aa9cb1602503b"
],
+ "rezervbase": ["64e74a4baac4cd0a7264ecdd", "6398a072e301557ae24cec92"],
"shoreline": [
"64e74a534d49d23b2c39d31b",
- "661421c7c1f2f548c50ee649",
- "6614217b6d9d5abcad0ff098",
- "661423200d240a5f5d0f679b"
+ "661421c7c1f2f548c50ee649",
+ "6614217b6d9d5abcad0ff098",
+ "661423200d240a5f5d0f679b"
],
"tarkovstreets": [
"638df4cc7b560b03794a18d2",
@@ -1101,14 +1026,8 @@
"657acb2ac900be5902191ac9",
"6582dbf0b8d7830efc45016f"
],
- "laboratory": [
- "6398a4cfb5992f573c6562b3",
- "64e74a44c2b4f829615ec334"
- ],
- "sandbox": [
- "6575a6ca8778e96ded05a802",
- "6582bd252b50c61c565828e2"
- ]
+ "laboratory": ["6398a4cfb5992f573c6562b3", "64e74a44c2b4f829615ec334"],
+ "sandbox": ["6575a6ca8778e96ded05a802", "6582bd252b50c61c565828e2"]
},
"splitWaveIntoSingleSpawnsSettings": {
"enabled": true,
@@ -1131,15 +1050,7 @@
},
"fixEmptyBotWavesSettings": {
"enabled": true,
- "ignoreMaps": [
- "base",
- "develop",
- "hideout",
- "privatearea",
- "suburbs",
- "terminal",
- "town"
- ]
+ "ignoreMaps": ["base", "develop", "hideout", "privatearea", "suburbs", "terminal", "town"]
},
"fitLootIntoContainerAttempts": 3,
"addOpenZonesToAllMaps": true,
@@ -1201,7 +1112,7 @@
"minFillStaticMagazinePercent": 50,
"allowDuplicateItemsInStaticContainers": true,
"magazineLootHasAmmoChancePercent": 50,
- "staticMagazineLootHasAmmoChancePercent": 0,
+ "staticMagazineLootHasAmmoChancePercent": 0,
"looseLootBlacklist": {},
"scavRaidTimeSettings": {
"settings": {
@@ -1424,4 +1335,4 @@
"mod_equipment": 5
}
}
-}
\ No newline at end of file
+}
diff --git a/project/assets/configs/loot.json b/project/assets/configs/loot.json
index d0112974..00fa6b61 100644
--- a/project/assets/configs/loot.json
+++ b/project/assets/configs/loot.json
@@ -9,4 +9,4 @@
"rezervbase": {},
"tarkovstreets": {}
}
-}
\ No newline at end of file
+}
diff --git a/project/assets/configs/lostondeath.json b/project/assets/configs/lostondeath.json
index 733859d4..0531ce5b 100644
--- a/project/assets/configs/lostondeath.json
+++ b/project/assets/configs/lostondeath.json
@@ -18,4 +18,4 @@
},
"questItems": true,
"specialSlotItems": false
-}
\ No newline at end of file
+}
diff --git a/project/assets/configs/match.json b/project/assets/configs/match.json
index ba99cdc2..ab130d0a 100644
--- a/project/assets/configs/match.json
+++ b/project/assets/configs/match.json
@@ -12,4 +12,4 @@
"laboratory": false,
"rezervbase": false
}
-}
\ No newline at end of file
+}
diff --git a/project/assets/configs/playerscav.json b/project/assets/configs/playerscav.json
index 1c47212d..e9c81b05 100644
--- a/project/assets/configs/playerscav.json
+++ b/project/assets/configs/playerscav.json
@@ -856,19 +856,10 @@
"botTypeForLoot": "assault",
"equipmentBlacklist": {
"Headwear": [],
- "ArmorVest": [
- "5df8a2ca86f7740bfe6df777"
- ],
- "TacticalVest": [
- "572b7adb24597762ae139821"
- ],
- "Backpack": [
- "56e33634d2720bd8058b456b",
- "5ab8ee7786f7742d8f33f0b9"
- ],
- "FirstPrimaryWeapon": [
- "5a38e6bac4a2826c6e06d79b"
- ],
+ "ArmorVest": ["5df8a2ca86f7740bfe6df777"],
+ "TacticalVest": ["572b7adb24597762ae139821"],
+ "Backpack": ["56e33634d2720bd8058b456b", "5ab8ee7786f7742d8f33f0b9"],
+ "FirstPrimaryWeapon": ["5a38e6bac4a2826c6e06d79b"],
"Holster": [],
"Scabbard": []
},
@@ -955,22 +946,10 @@
"botTypeForLoot": "assault",
"equipmentBlacklist": {
"Headwear": [],
- "ArmorVest": [
- "59e7635f86f7742cbf2c1095",
- "5df8a2ca86f7740bfe6df777"
- ],
- "TacticalVest": [
- "5fd4c5477a8d854fa0105061",
- "572b7adb24597762ae139821"
- ],
- "Backpack": [
- "56e33680d2720be2748b4576",
- "56e33634d2720bd8058b456b",
- "5ab8ee7786f7742d8f33f0b9"
- ],
- "FirstPrimaryWeapon": [
- "5a38e6bac4a2826c6e06d79b"
- ],
+ "ArmorVest": ["59e7635f86f7742cbf2c1095", "5df8a2ca86f7740bfe6df777"],
+ "TacticalVest": ["5fd4c5477a8d854fa0105061", "572b7adb24597762ae139821"],
+ "Backpack": ["56e33680d2720be2748b4576", "56e33634d2720bd8058b456b", "5ab8ee7786f7742d8f33f0b9"],
+ "FirstPrimaryWeapon": ["5a38e6bac4a2826c6e06d79b"],
"Holster": [],
"Scabbard": []
},
@@ -1056,22 +1035,10 @@
"botTypeForLoot": "assault",
"equipmentBlacklist": {
"Headwear": [],
- "ArmorVest": [
- "59e7635f86f7742cbf2c1095",
- "5df8a2ca86f7740bfe6df777"
- ],
- "TacticalVest": [
- "5fd4c5477a8d854fa0105061",
- "572b7adb24597762ae139821"
- ],
- "Backpack": [
- "56e33680d2720be2748b4576",
- "56e33634d2720bd8058b456b",
- "5ab8ee7786f7742d8f33f0b9"
- ],
- "FirstPrimaryWeapon": [
- "5a38e6bac4a2826c6e06d79b"
- ],
+ "ArmorVest": ["59e7635f86f7742cbf2c1095", "5df8a2ca86f7740bfe6df777"],
+ "TacticalVest": ["5fd4c5477a8d854fa0105061", "572b7adb24597762ae139821"],
+ "Backpack": ["56e33680d2720be2748b4576", "56e33634d2720bd8058b456b", "5ab8ee7786f7742d8f33f0b9"],
+ "FirstPrimaryWeapon": ["5a38e6bac4a2826c6e06d79b"],
"Holster": [],
"Scabbard": []
},
@@ -1168,14 +1135,8 @@
"5f60e7788adaa7100c3adb49",
"5aa2a7e8e5b5b00016327c16"
],
- "ArmorVest": [
- "59e7635f86f7742cbf2c1095",
- "5df8a2ca86f7740bfe6df777"
- ],
- "TacticalVest": [
- "5fd4c5477a8d854fa0105061",
- "572b7adb24597762ae139821"
- ],
+ "ArmorVest": ["59e7635f86f7742cbf2c1095", "5df8a2ca86f7740bfe6df777"],
+ "TacticalVest": ["5fd4c5477a8d854fa0105061", "572b7adb24597762ae139821"],
"Backpack": [
"56e33680d2720be2748b4576",
"56e33634d2720bd8058b456b",
@@ -1183,14 +1144,8 @@
"5ab8f04f86f774585f4237d8",
"5f5e45cc5021ce62144be7aa"
],
- "FirstPrimaryWeapon": [
- "5a38e6bac4a2826c6e06d79b"
- ],
- "Holster": [
- "5448bd6b4bdc2dfc2f8b4569",
- "579204f224597773d619e051",
- "571a12c42459771f627b58a0"
- ],
+ "FirstPrimaryWeapon": ["5a38e6bac4a2826c6e06d79b"],
+ "Holster": ["5448bd6b4bdc2dfc2f8b4569", "579204f224597773d619e051", "571a12c42459771f627b58a0"],
"Scabbard": []
},
"modifiers": {
@@ -1271,4 +1226,4 @@
}
}
}
-}
\ No newline at end of file
+}
diff --git a/project/assets/configs/pmc.json b/project/assets/configs/pmc.json
index 0392e00d..f69b0c3b 100644
--- a/project/assets/configs/pmc.json
+++ b/project/assets/configs/pmc.json
@@ -66,7 +66,7 @@
"6391fcf5744e45201147080f",
"614451b71e5874611e2c7ae5",
"6540d2162ae6d96b540afcaf",
- "65ca457b4aafb5d7fc0dcb5d"
+ "65ca457b4aafb5d7fc0dcb5d"
]
},
"pocketLoot": {
@@ -120,8 +120,8 @@
"57864c8c245977548867e7f1",
"6087e570b998180e9f76dc24",
"6391fcf5744e45201147080f",
- "65ca457b4aafb5d7fc0dcb5d",
- "660bbc98c38b837877075e4a"
+ "65ca457b4aafb5d7fc0dcb5d",
+ "660bbc98c38b837877075e4a"
]
},
"backpackLoot": {
@@ -179,8 +179,8 @@
"6391fcf5744e45201147080f",
"614451b71e5874611e2c7ae5",
"6540d2162ae6d96b540afcaf",
- "65ca457b4aafb5d7fc0dcb5d",
- "660bbc98c38b837877075e4a"
+ "65ca457b4aafb5d7fc0dcb5d",
+ "660bbc98c38b837877075e4a"
]
},
"useDifficultyOverride": false,
@@ -212,7 +212,7 @@
"arenaFighterEvent": 0,
"crazyAssaultEvent": 3,
"pmcBot": 5,
- "pmcBEAR": 2
+ "pmcBEAR": 2
},
"factory4_night": {
"bossKilla": 2,
@@ -233,7 +233,7 @@
"arenaFighterEvent": 0,
"crazyAssaultEvent": 3,
"pmcBot": 5,
- "pmcBEAR": 2
+ "pmcBEAR": 2
},
"bigmap": {
"bossKilla": 2,
@@ -254,7 +254,7 @@
"arenaFighterEvent": 0,
"crazyAssaultEvent": 3,
"pmcBot": 5,
- "pmcBEAR": 2
+ "pmcBEAR": 2
},
"laboratory": {
"bossKilla": 2,
@@ -275,7 +275,7 @@
"arenaFighterEvent": 0,
"crazyAssaultEvent": 3,
"pmcBot": 5,
- "pmcBEAR": 2
+ "pmcBEAR": 2
},
"woods": {
"bossKilla": 2,
@@ -297,7 +297,7 @@
"arenaFighterEvent": 0,
"crazyAssaultEvent": 3,
"pmcBot": 5,
- "pmcBEAR": 2
+ "pmcBEAR": 2
},
"interchange": {
"bossKilla": 2,
@@ -318,7 +318,7 @@
"arenaFighterEvent": 0,
"crazyAssaultEvent": 3,
"pmcBot": 5,
- "pmcBEAR": 2
+ "pmcBEAR": 2
},
"lighthouse": {
"bossKilla": 2,
@@ -339,7 +339,7 @@
"arenaFighterEvent": 0,
"crazyAssaultEvent": 3,
"pmcBot": 5,
- "pmcBEAR": 2
+ "pmcBEAR": 2
},
"rezervbase": {
"bossKilla": 2,
@@ -360,7 +360,7 @@
"arenaFighterEvent": 1,
"crazyAssaultEvent": 3,
"pmcBot": 5,
- "pmcBEAR": 2
+ "pmcBEAR": 2
},
"shoreline": {
"bossKilla": 2,
@@ -381,7 +381,7 @@
"arenaFighterEvent": 0,
"crazyAssaultEvent": 3,
"pmcBot": 5,
- "pmcBEAR": 2
+ "pmcBEAR": 2
},
"tarkovstreets": {
"bossKilla": 2,
@@ -402,7 +402,7 @@
"arenaFighterEvent": 0,
"crazyAssaultEvent": 3,
"pmcBot": 5,
- "pmcBEAR": 2
+ "pmcBEAR": 2
},
"sandbox": {
"bossKilla": 2,
@@ -425,7 +425,7 @@
"arenaFighterEvent": 1,
"crazyAssaultEvent": 1,
"pmcBot": 7,
- "pmcBEAR": 2
+ "pmcBEAR": 2
},
"sandbox_high": {
"bossKilla": 2,
@@ -448,7 +448,7 @@
"arenaFighterEvent": 1,
"crazyAssaultEvent": 1,
"pmcBot": 7,
- "pmcBEAR": 2
+ "pmcBEAR": 2
}
},
"pmcusec": {
@@ -471,7 +471,7 @@
"arenaFighterEvent": 0,
"crazyAssaultEvent": 3,
"pmcBot": 5,
- "pmcUSEC": 2
+ "pmcUSEC": 2
},
"factory4_night": {
"bossKilla": 2,
@@ -492,7 +492,7 @@
"arenaFighterEvent": 0,
"crazyAssaultEvent": 3,
"pmcBot": 5,
- "pmcUSEC": 2
+ "pmcUSEC": 2
},
"bigmap": {
"bossKilla": 0,
@@ -513,7 +513,7 @@
"arenaFighterEvent": 0,
"crazyAssaultEvent": 2,
"pmcBot": 6,
- "pmcUSEC": 2
+ "pmcUSEC": 2
},
"laboratory": {
"bossKilla": 2,
@@ -534,7 +534,7 @@
"arenaFighterEvent": 0,
"crazyAssaultEvent": 3,
"pmcBot": 5,
- "pmcUSEC": 2
+ "pmcUSEC": 2
},
"woods": {
"bossKilla": 2,
@@ -556,7 +556,7 @@
"arenaFighterEvent": 0,
"crazyAssaultEvent": 3,
"pmcBot": 5,
- "pmcUSEC": 2
+ "pmcUSEC": 2
},
"interchange": {
"bossKilla": 2,
@@ -577,7 +577,7 @@
"arenaFighterEvent": 0,
"crazyAssaultEvent": 3,
"pmcBot": 5,
- "pmcUSEC": 2
+ "pmcUSEC": 2
},
"lighthouse": {
"bossKilla": 2,
@@ -598,7 +598,7 @@
"arenaFighterEvent": 0,
"crazyAssaultEvent": 3,
"pmcBot": 5,
- "pmcUSEC": 2
+ "pmcUSEC": 2
},
"rezervbase": {
"bossKilla": 2,
@@ -619,7 +619,7 @@
"arenaFighterEvent": 1,
"crazyAssaultEvent": 3,
"pmcBot": 5,
- "pmcUSEC": 2
+ "pmcUSEC": 2
},
"shoreline": {
"bossKilla": 2,
@@ -640,7 +640,7 @@
"arenaFighterEvent": 0,
"crazyAssaultEvent": 3,
"pmcBot": 5,
- "pmcUSEC": 2
+ "pmcUSEC": 2
},
"tarkovstreets": {
"bossKilla": 2,
@@ -661,7 +661,7 @@
"arenaFighterEvent": 0,
"crazyAssaultEvent": 3,
"pmcBot": 5,
- "pmcUSEC": 2
+ "pmcUSEC": 2
},
"sandbox": {
"bossKilla": 2,
@@ -684,7 +684,7 @@
"arenaFighterEvent": 1,
"crazyAssaultEvent": 1,
"pmcBot": 7,
- "pmcUSEC": 2
+ "pmcUSEC": 2
},
"sandbox_high": {
"bossKilla": 2,
@@ -707,7 +707,7 @@
"arenaFighterEvent": 1,
"crazyAssaultEvent": 1,
"pmcBot": 7,
- "pmcUSEC": 2
+ "pmcUSEC": 2
}
}
},
diff --git a/project/assets/configs/quest.json b/project/assets/configs/quest.json
index f986c5bd..4d787ef7 100644
--- a/project/assets/configs/quest.json
+++ b/project/assets/configs/quest.json
@@ -1,8 +1,8 @@
{
"mailRedeemTimeHours": {
- "default": 48,
- "unheard_edition": 72
- },
+ "default": 48,
+ "unheard_edition": 72
+ },
"usecOnlyQuests": [
"6179b5eabca27a099552e052",
"5e383a6386f77465910ce1f3",
@@ -149,168 +149,73 @@
"endTimestamp": "",
"yearly": false
},
- "65e85198e32da31f2b30978e": {
- "name": "Evil Spirits",
- "season": "None",
- "startTimestamp": 1341615600000,
+ "65e85198e32da31f2b30978e": {
+ "name": "Evil Spirits",
+ "season": "None",
+ "startTimestamp": 1341615600000,
"endTimestamp": "",
"yearly": false
- },
- "6603fe74e773dcf3b0099f88": {
- "name": "The Tarkov Mystery",
- "season": "None",
- "startTimestamp": 1341615600000,
+ },
+ "6603fe74e773dcf3b0099f88": {
+ "name": "The Tarkov Mystery",
+ "season": "None",
+ "startTimestamp": 1341615600000,
"endTimestamp": "",
"yearly": false
- },
- "6658a15615cbb1b2c6014d5b": {
- "name": "Hustle2",
- "season": "None",
- "startTimestamp": 1341615600000,
+ },
+ "6658a15615cbb1b2c6014d5b": {
+ "name": "Hustle2",
+ "season": "None",
+ "startTimestamp": 1341615600000,
"endTimestamp": "",
"yearly": false
- },
- "6672ec2a2b6f3b71be794cc5": {
- "name": "Key to salvation",
- "season": "None",
- "startTimestamp": 1341615600000,
+ },
+ "6672ec2a2b6f3b71be794cc5": {
+ "name": "Key to salvation",
+ "season": "None",
+ "startTimestamp": 1341615600000,
"endTimestamp": "",
"yearly": false
- }
+ }
},
"repeatableQuests": [
{
"id": "615ffc701c97c768137e719b",
"name": "Daily",
"side": "Pmc",
- "types": [
- "Elimination",
- "Completion",
- "Exploration"
- ],
+ "types": ["Elimination", "Completion", "Exploration"],
"resetTime": 86400,
"numQuests": 3,
"minPlayerLevel": 5,
"rewardScaling": {
- "levels": [
- 1,
- 10,
- 20,
- 30,
- 40,
- 50,
- 60
- ],
- "experience": [
- 1000,
- 2000,
- 8000,
- 13000,
- 19000,
- 24000,
- 30000
- ],
- "roubles": [
- 11000,
- 20000,
- 32000,
- 45000,
- 58000,
- 70000,
- 82000
- ],
- "gpCoins": [
- 3,
- 3,
- 6,
- 6,
- 8,
- 8,
- 10
- ],
- "items": [
- 2,
- 4,
- 5,
- 5,
- 5,
- 5,
- 5
- ],
- "reputation": [
- 0.01,
- 0.01,
- 0.02,
- 0.02,
- 0.03,
- 0.03,
- 0.03
- ],
+ "levels": [1, 10, 20, 30, 40, 50, 60],
+ "experience": [1000, 2000, 8000, 13000, 19000, 24000, 30000],
+ "roubles": [11000, 20000, 32000, 45000, 58000, 70000, 82000],
+ "gpCoins": [3, 3, 6, 6, 8, 8, 10],
+ "items": [2, 4, 5, 5, 5, 5, 5],
+ "reputation": [0.01, 0.01, 0.02, 0.02, 0.03, 0.03, 0.03],
"rewardSpread": 0.5,
- "skillRewardChance": [
- 0,
- 0.01,
- 0.05,
- 0.1,
- 0.1,
- 0.15,
- 0.15
- ],
- "skillPointReward": [
- 10,
- 15,
- 20,
- 25,
- 30,
- 35,
- 40
- ]
+ "skillRewardChance": [0, 0.01, 0.05, 0.1, 0.1, 0.15, 0.15],
+ "skillPointReward": [10, 15, 20, 25, 30, 35, 40]
},
"locations": {
- "any": [
- "any"
- ],
- "factory4_day": [
- "factory4_day",
- "factory4_night"
- ],
- "bigmap": [
- "bigmap"
- ],
- "Woods": [
- "Woods"
- ],
- "Shoreline": [
- "Shoreline"
- ],
- "Interchange": [
- "Interchange"
- ],
- "Lighthouse": [
- "Lighthouse"
- ],
- "laboratory": [
- "laboratory"
- ],
- "RezervBase": [
- "RezervBase"
- ],
- "TarkovStreets": [
- "TarkovStreets"
- ],
- "Sandbox": [
- "Sandbox"
- ]
+ "any": ["any"],
+ "factory4_day": ["factory4_day", "factory4_night"],
+ "bigmap": ["bigmap"],
+ "Woods": ["Woods"],
+ "Shoreline": ["Shoreline"],
+ "Interchange": ["Interchange"],
+ "Lighthouse": ["Lighthouse"],
+ "laboratory": ["laboratory"],
+ "RezervBase": ["RezervBase"],
+ "TarkovStreets": ["TarkovStreets"],
+ "Sandbox": ["Sandbox"]
},
"traderWhitelist": [
{
"traderId": "54cb50c76803fa8b248b4571",
"name": "prapor",
- "questTypes": [
- "Completion",
- "Exploration",
- "Elimination"
- ],
+ "questTypes": ["Completion", "Exploration", "Elimination"],
"rewardBaseWhitelist": [
"543be6564bdc2df4348b4568",
"5485a8684bdc2da71d8b4567",
@@ -324,11 +229,7 @@
{
"traderId": "54cb57776803fa99248b456e",
"name": "therapist",
- "questTypes": [
- "Completion",
- "Exploration",
- "Elimination"
- ],
+ "questTypes": ["Completion", "Exploration", "Elimination"],
"rewardBaseWhitelist": [
"57864a66245977548f04a81f",
"5448f39d4bdc2d0a728b4568",
@@ -347,11 +248,7 @@
{
"traderId": "58330581ace78e27b8b10cee",
"name": "skier",
- "questTypes": [
- "Completion",
- "Exploration",
- "Elimination"
- ],
+ "questTypes": ["Completion", "Exploration", "Elimination"],
"rewardBaseWhitelist": [
"5a341c4086f77401f2541505",
"5448e8d64bdc2dce718b4568",
@@ -374,11 +271,7 @@
{
"traderId": "5935c25fb3acc3127c3d8cd9",
"name": "peacekeeper",
- "questTypes": [
- "Completion",
- "Exploration",
- "Elimination"
- ],
+ "questTypes": ["Completion", "Exploration", "Elimination"],
"rewardBaseWhitelist": [
"543be6564bdc2df4348b4568",
"5448e5284bdc2dcb718b4567",
@@ -396,10 +289,7 @@
{
"traderId": "5a7c2eca46aef81a7ca2145d",
"name": "mechanic",
- "questTypes": [
- "Completion",
- "Exploration"
- ],
+ "questTypes": ["Completion", "Exploration"],
"rewardBaseWhitelist": [
"55818af64bdc2d5b648b4570",
"5448bc234bdc2d3c308b4569",
@@ -420,11 +310,7 @@
{
"traderId": "5ac3b934156ae10c4430e83c",
"name": "ragman",
- "questTypes": [
- "Completion",
- "Exploration",
- "Elimination"
- ],
+ "questTypes": ["Completion", "Exploration", "Elimination"],
"rewardBaseWhitelist": [
"5a341c4086f77401f2541505",
"5448e5724bdc2ddf718b4568",
@@ -441,11 +327,7 @@
{
"traderId": "5c0647fdd443bc2504c2d371",
"name": "jaeger",
- "questTypes": [
- "Completion",
- "Exploration",
- "Elimination"
- ],
+ "questTypes": ["Completion", "Exploration", "Elimination"],
"rewardBaseWhitelist": [
"5448f3ac4bdc2dce718b4569",
"5c99f98d86f7745c314214b3",
@@ -462,14 +344,10 @@
"rewardCanBeWeapon": false,
"weaponRewardChancePercent": 0
},
- {
+ {
"traderId": "6617beeaa9cfa777ca915b7c",
"name": "ref",
- "questTypes": [
- "Completion",
- "Exploration",
- "Elimination"
- ],
+ "questTypes": ["Completion", "Exploration", "Elimination"],
"rewardBaseWhitelist": [
"543be6564bdc2df4348b4568",
"5485a8684bdc2da71d8b4567",
@@ -485,11 +363,7 @@
"Exploration": {
"maxExtracts": 5,
"maxExtractsWithSpecificExit": 3,
- "possibleSkillRewards": [
- "Endurance",
- "Strength",
- "Vitality"
- ],
+ "possibleSkillRewards": ["Endurance", "Strength", "Vitality"],
"specificExits": {
"probability": 0.25,
"passageRequirementWhitelist": [
@@ -503,11 +377,7 @@
}
},
"Completion": {
- "possibleSkillRewards": [
- "Endurance",
- "Strength",
- "Vitality"
- ],
+ "possibleSkillRewards": ["Endurance", "Strength", "Vitality"],
"minRequestedAmount": 1,
"maxRequestedAmount": 4,
"uniqueItemCount": 2,
@@ -522,11 +392,7 @@
"min": 1,
"max": 15
},
- "possibleSkillRewards": [
- "Endurance",
- "Strength",
- "Vitality"
- ],
+ "possibleSkillRewards": ["Endurance", "Strength", "Vitality"],
"targets": [
{
"key": "Savage",
@@ -541,41 +407,26 @@
{
"key": "Head",
"relativeProbability": 1,
- "data": [
- "Head"
- ]
+ "data": ["Head"]
},
{
"key": "Chest",
"relativeProbability": 25,
- "data": [
- "Chest",
- "Stomach"
- ]
+ "data": ["Chest", "Stomach"]
},
{
"key": "Arms",
"relativeProbability": 0.5,
- "data": [
- "LeftArm",
- "RightArm"
- ]
+ "data": ["LeftArm", "RightArm"]
},
{
"key": "Legs",
"relativeProbability": 1,
- "data": [
- "LeftLeg",
- "RightLeg"
- ]
+ "data": ["LeftLeg", "RightLeg"]
}
],
"specificLocationProb": 0.15,
- "distLocationBlacklist": [
- "laboratory",
- "factory4_day",
- "factory4_night"
- ],
+ "distLocationBlacklist": ["laboratory", "factory4_day", "factory4_night"],
"distProb": 0.15,
"maxDist": 75,
"minDist": 10,
@@ -591,123 +442,89 @@
{
"key": "Shotgun",
"relativeProbability": 10,
- "data": [
- "5b5f794b86f77409407a7f92"
- ]
+ "data": ["5b5f794b86f77409407a7f92"]
},
{
"key": "Pistol",
"relativeProbability": 10,
- "data": [
- "5b5f792486f77447ed5636b3"
- ]
+ "data": ["5b5f792486f77447ed5636b3"]
},
{
"key": "AssaultRifle",
"relativeProbability": 3,
- "data": [
- "5b5f78fc86f77409407a7f90"
- ]
+ "data": ["5b5f78fc86f77409407a7f90"]
},
{
"key": "AssaultCarbine",
"relativeProbability": 10,
- "data": [
- "5b5f78e986f77447ed5636b1"
- ]
+ "data": ["5b5f78e986f77447ed5636b1"]
},
{
"key": "SMG",
"relativeProbability": 3,
- "data": [
- "5b5f796a86f774093f2ed3c0"
- ]
+ "data": ["5b5f796a86f774093f2ed3c0"]
},
{
"key": "Melee",
"relativeProbability": 0,
- "data": [
- "5b5f7a0886f77409407a7f96"
- ]
+ "data": ["5b5f7a0886f77409407a7f96"]
},
{
"key": "DMR",
"relativeProbability": 3,
- "data": [
- "5b5f791486f774093f2ed3be"
- ]
+ "data": ["5b5f791486f774093f2ed3be"]
},
{
"key": "MarksmanRifle",
"relativeProbability": 1,
- "data": [
- "5447b6194bdc2d67278b4567"
- ]
+ "data": ["5447b6194bdc2d67278b4567"]
},
{
"key": "BoltAction",
"relativeProbability": 10,
- "data": [
- "5b5f798886f77447ed5636b5"
- ]
+ "data": ["5b5f798886f77447ed5636b5"]
},
{
"key": "MachineGun",
"relativeProbability": 0,
- "data": [
- "5b5f79a486f77409407a7f94"
- ]
+ "data": ["5b5f79a486f77409407a7f94"]
}
],
"weaponRequirements": [
{
"key": "Shotgun",
"relativeProbability": 10,
- "data": [
- "5447b6094bdc2dc3278b4567"
- ]
+ "data": ["5447b6094bdc2dc3278b4567"]
},
{
"key": "Pistol",
"relativeProbability": 10,
- "data": [
- "5447b5cf4bdc2d65278b4567"
- ]
+ "data": ["5447b5cf4bdc2d65278b4567"]
},
{
"key": "AssaultRifle",
"relativeProbability": 3,
- "data": [
- "5447b5f14bdc2d61278b4567"
- ]
+ "data": ["5447b5f14bdc2d61278b4567"]
},
{
"key": "AssaultCarbine",
"relativeProbability": 10,
- "data": [
- "5447b5fc4bdc2d87278b4567"
- ]
+ "data": ["5447b5fc4bdc2d87278b4567"]
},
{
"key": "MarksmanRifle",
"relativeProbability": 1,
- "data": [
- "5447b6194bdc2d67278b4567"
- ]
+ "data": ["5447b6194bdc2d67278b4567"]
},
{
"key": "SniperRifle",
"relativeProbability": 1,
- "data": [
- "5447b6254bdc2dc3278b4568"
- ]
+ "data": ["5447b6254bdc2dc3278b4568"]
},
{
"key": "SMG",
"relativeProbability": 1,
- "data": [
- "5447b5e04bdc2d62278b4567"
- ]
+ "data": ["5447b5e04bdc2d62278b4567"]
}
]
},
@@ -716,11 +533,7 @@
"min": 16,
"max": 40
},
- "possibleSkillRewards": [
- "Endurance",
- "Strength",
- "Vitality"
- ],
+ "possibleSkillRewards": ["Endurance", "Strength", "Vitality"],
"targets": [
{
"key": "Savage",
@@ -813,41 +626,26 @@
{
"key": "Head",
"relativeProbability": 1,
- "data": [
- "Head"
- ]
+ "data": ["Head"]
},
{
"key": "Chest",
"relativeProbability": 8,
- "data": [
- "Chest",
- "Stomach"
- ]
+ "data": ["Chest", "Stomach"]
},
{
"key": "Arms",
"relativeProbability": 0.5,
- "data": [
- "LeftArm",
- "RightArm"
- ]
+ "data": ["LeftArm", "RightArm"]
},
{
"key": "Legs",
"relativeProbability": 1,
- "data": [
- "LeftLeg",
- "RightLeg"
- ]
+ "data": ["LeftLeg", "RightLeg"]
}
],
"specificLocationProb": 0.2,
- "distLocationBlacklist": [
- "laboratory",
- "factory4_day",
- "factory4_night"
- ],
+ "distLocationBlacklist": ["laboratory", "factory4_day", "factory4_night"],
"distProb": 0.25,
"maxDist": 100,
"minDist": 10,
@@ -863,116 +661,84 @@
{
"key": "Shotgun",
"relativeProbability": 8,
- "data": [
- "5b5f794b86f77409407a7f92"
- ]
+ "data": ["5b5f794b86f77409407a7f92"]
},
{
"key": "Pistol",
"relativeProbability": 5,
- "data": [
- "5b5f792486f77447ed5636b3"
- ]
+ "data": ["5b5f792486f77447ed5636b3"]
},
{
"key": "AssaultRifle",
"relativeProbability": 10,
- "data": [
- "5b5f78fc86f77409407a7f90"
- ]
+ "data": ["5b5f78fc86f77409407a7f90"]
},
{
"key": "AssaultCarbine",
"relativeProbability": 10,
- "data": [
- "5b5f78e986f77447ed5636b1"
- ]
+ "data": ["5b5f78e986f77447ed5636b1"]
},
{
"key": "SMG",
"relativeProbability": 10,
- "data": [
- "5b5f796a86f774093f2ed3c0"
- ]
+ "data": ["5b5f796a86f774093f2ed3c0"]
},
{
"key": "Melee",
"relativeProbability": 0,
- "data": [
- "5b5f7a0886f77409407a7f96"
- ]
+ "data": ["5b5f7a0886f77409407a7f96"]
},
{
"key": "DMR",
"relativeProbability": 8,
- "data": [
- "5b5f791486f774093f2ed3be"
- ]
+ "data": ["5b5f791486f774093f2ed3be"]
},
{
"key": "BoltAction",
"relativeProbability": 10,
- "data": [
- "5b5f798886f77447ed5636b5"
- ]
+ "data": ["5b5f798886f77447ed5636b5"]
},
{
"key": "MachineGun",
"relativeProbability": 0,
- "data": [
- "5b5f79a486f77409407a7f94"
- ]
+ "data": ["5b5f79a486f77409407a7f94"]
}
],
"weaponRequirements": [
{
"key": "Shotgun",
"relativeProbability": 10,
- "data": [
- "5447b6094bdc2dc3278b4567"
- ]
+ "data": ["5447b6094bdc2dc3278b4567"]
},
{
"key": "Pistol",
"relativeProbability": 10,
- "data": [
- "5447b5cf4bdc2d65278b4567"
- ]
+ "data": ["5447b5cf4bdc2d65278b4567"]
},
{
"key": "AssaultRifle",
"relativeProbability": 3,
- "data": [
- "5447b5f14bdc2d61278b4567"
- ]
+ "data": ["5447b5f14bdc2d61278b4567"]
},
{
"key": "AssaultCarbine",
"relativeProbability": 5,
- "data": [
- "5447b5fc4bdc2d87278b4567"
- ]
+ "data": ["5447b5fc4bdc2d87278b4567"]
},
{
"key": "MarksmanRifle",
"relativeProbability": 1,
- "data": [
- "5447b6194bdc2d67278b4567"
- ]
+ "data": ["5447b6194bdc2d67278b4567"]
},
{
"key": "SniperRifle",
"relativeProbability": 1,
- "data": [
- "5447b6254bdc2dc3278b4568"
- ]
+ "data": ["5447b6254bdc2dc3278b4568"]
},
{
"key": "SMG",
"relativeProbability": 1,
- "data": [
- "5447b5e04bdc2d62278b4567"
- ]
+ "data": ["5447b5e04bdc2d62278b4567"]
}
]
},
@@ -981,11 +747,7 @@
"min": 41,
"max": 100
},
- "possibleSkillRewards": [
- "Endurance",
- "Strength",
- "Vitality"
- ],
+ "possibleSkillRewards": ["Endurance", "Strength", "Vitality"],
"targets": [
{
"key": "Savage",
@@ -1078,41 +840,26 @@
{
"key": "Head",
"relativeProbability": 1,
- "data": [
- "Head"
- ]
+ "data": ["Head"]
},
{
"key": "Chest",
"relativeProbability": 7,
- "data": [
- "Chest",
- "Stomach"
- ]
+ "data": ["Chest", "Stomach"]
},
{
"key": "Arms",
"relativeProbability": 0.5,
- "data": [
- "LeftArm",
- "RightArm"
- ]
+ "data": ["LeftArm", "RightArm"]
},
{
"key": "Legs",
"relativeProbability": 1,
- "data": [
- "LeftLeg",
- "RightLeg"
- ]
+ "data": ["LeftLeg", "RightLeg"]
}
],
"specificLocationProb": 0.25,
- "distLocationBlacklist": [
- "laboratory",
- "factory4_day",
- "factory4_night"
- ],
+ "distLocationBlacklist": ["laboratory", "factory4_day", "factory4_night"],
"distProb": 0.25,
"maxDist": 100,
"minDist": 10,
@@ -1128,116 +875,84 @@
{
"key": "Shotgun",
"relativeProbability": 10,
- "data": [
- "5b5f794b86f77409407a7f92"
- ]
+ "data": ["5b5f794b86f77409407a7f92"]
},
{
"key": "Pistol",
"relativeProbability": 10,
- "data": [
- "5b5f792486f77447ed5636b3"
- ]
+ "data": ["5b5f792486f77447ed5636b3"]
},
{
"key": "AssaultRifle",
"relativeProbability": 10,
- "data": [
- "5b5f78fc86f77409407a7f90"
- ]
+ "data": ["5b5f78fc86f77409407a7f90"]
},
{
"key": "AssaultCarbine",
"relativeProbability": 15,
- "data": [
- "5b5f78e986f77447ed5636b1"
- ]
+ "data": ["5b5f78e986f77447ed5636b1"]
},
{
"key": "SMG",
"relativeProbability": 8,
- "data": [
- "5b5f796a86f774093f2ed3c0"
- ]
+ "data": ["5b5f796a86f774093f2ed3c0"]
},
{
"key": "Melee",
"relativeProbability": 1,
- "data": [
- "5b5f7a0886f77409407a7f96"
- ]
+ "data": ["5b5f7a0886f77409407a7f96"]
},
{
"key": "DMR",
"relativeProbability": 10,
- "data": [
- "5b5f791486f774093f2ed3be"
- ]
+ "data": ["5b5f791486f774093f2ed3be"]
},
{
"key": "BoltAction",
"relativeProbability": 10,
- "data": [
- "5b5f798886f77447ed5636b5"
- ]
+ "data": ["5b5f798886f77447ed5636b5"]
},
{
"key": "MachineGun",
"relativeProbability": 1,
- "data": [
- "5b5f79a486f77409407a7f94"
- ]
+ "data": ["5b5f79a486f77409407a7f94"]
}
],
"weaponRequirements": [
{
"key": "Shotgun",
"relativeProbability": 10,
- "data": [
- "5447b6094bdc2dc3278b4567"
- ]
+ "data": ["5447b6094bdc2dc3278b4567"]
},
{
"key": "Pistol",
"relativeProbability": 10,
- "data": [
- "5447b5cf4bdc2d65278b4567"
- ]
+ "data": ["5447b5cf4bdc2d65278b4567"]
},
{
"key": "AssaultRifle",
"relativeProbability": 10,
- "data": [
- "5447b5f14bdc2d61278b4567"
- ]
+ "data": ["5447b5f14bdc2d61278b4567"]
},
{
"key": "AssaultCarbine",
"relativeProbability": 10,
- "data": [
- "5447b5fc4bdc2d87278b4567"
- ]
+ "data": ["5447b5fc4bdc2d87278b4567"]
},
{
"key": "MarksmanRifle",
"relativeProbability": 10,
- "data": [
- "5447b6194bdc2d67278b4567"
- ]
+ "data": ["5447b6194bdc2d67278b4567"]
},
{
"key": "SniperRifle",
"relativeProbability": 10,
- "data": [
- "5447b6254bdc2dc3278b4568"
- ]
+ "data": ["5447b6254bdc2dc3278b4568"]
},
{
"key": "SMG",
"relativeProbability": 10,
- "data": [
- "5447b5e04bdc2d62278b4567"
- ]
+ "data": ["5447b5e04bdc2d62278b4567"]
}
]
}
@@ -1248,147 +963,48 @@
"5b3f15d486f77432d0509248",
"65649eb40bf0ed77b8044453"
],
- "rewardBlacklist": [
- "627bce33f21bc425b06ab967",
- "59f32c3b86f77472a31742f0",
- "59f32bb586f774757e1e8442"
- ],
+ "rewardBlacklist": ["627bce33f21bc425b06ab967", "59f32c3b86f77472a31742f0", "59f32bb586f774757e1e8442"],
"rewardAmmoStackMinSize": 5,
- "freeChangesAvailable": 2,
+ "freeChangesAvailable": 2,
"freeChanges": 2
},
{
"id": "618035d38012292db3081bf0",
"name": "Weekly",
"side": "Pmc",
- "types": [
- "Elimination",
- "Completion",
- "Exploration"
- ],
+ "types": ["Elimination", "Completion", "Exploration"],
"resetTime": 604800,
"numQuests": 1,
"minPlayerLevel": 15,
"rewardScaling": {
- "levels": [
- 1,
- 10,
- 20,
- 30,
- 40,
- 50,
- 60
- ],
- "experience": [
- 5000,
- 15000,
- 27000,
- 80000,
- 142000,
- 220000,
- 290000
- ],
- "roubles": [
- 20000,
- 50000,
- 175000,
- 350000,
- 540000,
- 710000,
- 880000
- ],
- "gpCoins": [
- 10,
- 10,
- 16,
- 16,
- 20,
- 30,
- 35
- ],
- "items": [
- 4,
- 5,
- 5,
- 6,
- 6,
- 7,
- 7
- ],
- "reputation": [
- 0.02,
- 0.03,
- 0.04,
- 0.04,
- 0.05,
- 0.05,
- 0.05
- ],
+ "levels": [1, 10, 20, 30, 40, 50, 60],
+ "experience": [5000, 15000, 27000, 80000, 142000, 220000, 290000],
+ "roubles": [20000, 50000, 175000, 350000, 540000, 710000, 880000],
+ "gpCoins": [10, 10, 16, 16, 20, 30, 35],
+ "items": [4, 5, 5, 6, 6, 7, 7],
+ "reputation": [0.02, 0.03, 0.04, 0.04, 0.05, 0.05, 0.05],
"rewardSpread": 0.5,
- "skillRewardChance": [
- 0,
- 0.05,
- 0.1,
- 0.15,
- 0.2,
- 0.2,
- 0.2
- ],
- "skillPointReward": [
- 25,
- 35,
- 45,
- 50,
- 55,
- 60,
- 65
- ]
+ "skillRewardChance": [0, 0.05, 0.1, 0.15, 0.2, 0.2, 0.2],
+ "skillPointReward": [25, 35, 45, 50, 55, 60, 65]
},
"locations": {
- "any": [
- "any"
- ],
- "factory4_day": [
- "factory4_day",
- "factory4_night"
- ],
- "bigmap": [
- "bigmap"
- ],
- "Woods": [
- "Woods"
- ],
- "Shoreline": [
- "Shoreline"
- ],
- "Interchange": [
- "Interchange"
- ],
- "Lighthouse": [
- "Lighthouse"
- ],
- "laboratory": [
- "laboratory"
- ],
- "RezervBase": [
- "RezervBase"
- ],
- "TarkovStreets": [
- "TarkovStreets"
- ],
- "Sandbox": [
- "Sandbox"
- ]
+ "any": ["any"],
+ "factory4_day": ["factory4_day", "factory4_night"],
+ "bigmap": ["bigmap"],
+ "Woods": ["Woods"],
+ "Shoreline": ["Shoreline"],
+ "Interchange": ["Interchange"],
+ "Lighthouse": ["Lighthouse"],
+ "laboratory": ["laboratory"],
+ "RezervBase": ["RezervBase"],
+ "TarkovStreets": ["TarkovStreets"],
+ "Sandbox": ["Sandbox"]
},
"traderWhitelist": [
{
"traderId": "54cb50c76803fa8b248b4571",
"name": "prapor",
- "questTypes": [
- "Completion",
- "Exploration",
- "Elimination"
- ],
+ "questTypes": ["Completion", "Exploration", "Elimination"],
"rewardBaseWhitelist": [
"543be6564bdc2df4348b4568",
"5485a8684bdc2da71d8b4567",
@@ -1402,11 +1018,7 @@
{
"traderId": "54cb57776803fa99248b456e",
"name": "therapist",
- "questTypes": [
- "Completion",
- "Exploration",
- "Elimination"
- ],
+ "questTypes": ["Completion", "Exploration", "Elimination"],
"rewardBaseWhitelist": [
"57864a66245977548f04a81f",
"5448f39d4bdc2d0a728b4568",
@@ -1425,11 +1037,7 @@
{
"traderId": "58330581ace78e27b8b10cee",
"name": "skier",
- "questTypes": [
- "Completion",
- "Exploration",
- "Elimination"
- ],
+ "questTypes": ["Completion", "Exploration", "Elimination"],
"rewardBaseWhitelist": [
"5a341c4086f77401f2541505",
"5448e8d64bdc2dce718b4568",
@@ -1452,11 +1060,7 @@
{
"traderId": "5935c25fb3acc3127c3d8cd9",
"name": "peacekeeper",
- "questTypes": [
- "Completion",
- "Exploration",
- "Elimination"
- ],
+ "questTypes": ["Completion", "Exploration", "Elimination"],
"rewardBaseWhitelist": [
"543be6564bdc2df4348b4568",
"5448e5284bdc2dcb718b4567",
@@ -1474,10 +1078,7 @@
{
"traderId": "5a7c2eca46aef81a7ca2145d",
"name": "mechanic",
- "questTypes": [
- "Completion",
- "Exploration"
- ],
+ "questTypes": ["Completion", "Exploration"],
"rewardBaseWhitelist": [
"55818af64bdc2d5b648b4570",
"5448bc234bdc2d3c308b4569",
@@ -1498,11 +1099,7 @@
{
"traderId": "5ac3b934156ae10c4430e83c",
"name": "ragman",
- "questTypes": [
- "Completion",
- "Exploration",
- "Elimination"
- ],
+ "questTypes": ["Completion", "Exploration", "Elimination"],
"rewardBaseWhitelist": [
"5a341c4086f77401f2541505",
"5448e5724bdc2ddf718b4568",
@@ -1519,11 +1116,7 @@
{
"traderId": "5c0647fdd443bc2504c2d371",
"name": "jaeger",
- "questTypes": [
- "Completion",
- "Exploration",
- "Elimination"
- ],
+ "questTypes": ["Completion", "Exploration", "Elimination"],
"rewardBaseWhitelist": [
"5448f3ac4bdc2dce718b4569",
"5c99f98d86f7745c314214b3",
@@ -1545,11 +1138,7 @@
"Exploration": {
"maxExtracts": 25,
"maxExtractsWithSpecificExit": 12,
- "possibleSkillRewards": [
- "Endurance",
- "Strength",
- "Vitality"
- ],
+ "possibleSkillRewards": ["Endurance", "Strength", "Vitality"],
"specificExits": {
"probability": 0.4,
"passageRequirementWhitelist": [
@@ -1563,11 +1152,7 @@
}
},
"Completion": {
- "possibleSkillRewards": [
- "Endurance",
- "Strength",
- "Vitality"
- ],
+ "possibleSkillRewards": ["Endurance", "Strength", "Vitality"],
"minRequestedAmount": 4,
"maxRequestedAmount": 12,
"uniqueItemCount": 4,
@@ -1582,11 +1167,7 @@
"min": 1,
"max": 15
},
- "possibleSkillRewards": [
- "Endurance",
- "Strength",
- "Vitality"
- ],
+ "possibleSkillRewards": ["Endurance", "Strength", "Vitality"],
"targets": [
{
"key": "Savage",
@@ -1679,41 +1260,26 @@
{
"key": "Head",
"relativeProbability": 1,
- "data": [
- "Head"
- ]
+ "data": ["Head"]
},
{
"key": "Chest",
"relativeProbability": 5,
- "data": [
- "Chest",
- "Stomach"
- ]
+ "data": ["Chest", "Stomach"]
},
{
"key": "Arms",
"relativeProbability": 0.5,
- "data": [
- "LeftArm",
- "RightArm"
- ]
+ "data": ["LeftArm", "RightArm"]
},
{
"key": "Legs",
"relativeProbability": 1,
- "data": [
- "LeftLeg",
- "RightLeg"
- ]
+ "data": ["LeftLeg", "RightLeg"]
}
],
"specificLocationProb": 0.15,
- "distLocationBlacklist": [
- "laboratory",
- "factory4_day",
- "factory4_night"
- ],
+ "distLocationBlacklist": ["laboratory", "factory4_day", "factory4_night"],
"distProb": 0.15,
"maxDist": 75,
"minDist": 10,
@@ -1729,116 +1295,84 @@
{
"key": "Shotgun",
"relativeProbability": 10,
- "data": [
- "5b5f794b86f77409407a7f92"
- ]
+ "data": ["5b5f794b86f77409407a7f92"]
},
{
"key": "Pistol",
"relativeProbability": 10,
- "data": [
- "5b5f792486f77447ed5636b3"
- ]
+ "data": ["5b5f792486f77447ed5636b3"]
},
{
"key": "AssaultRifle",
"relativeProbability": 3,
- "data": [
- "5b5f78fc86f77409407a7f90"
- ]
+ "data": ["5b5f78fc86f77409407a7f90"]
},
{
"key": "AssaultCarbine",
"relativeProbability": 5,
- "data": [
- "5b5f78e986f77447ed5636b1"
- ]
+ "data": ["5b5f78e986f77447ed5636b1"]
},
{
"key": "SMG",
"relativeProbability": 1,
- "data": [
- "5b5f796a86f774093f2ed3c0"
- ]
+ "data": ["5b5f796a86f774093f2ed3c0"]
},
{
"key": "Melee",
"relativeProbability": 0,
- "data": [
- "5b5f7a0886f77409407a7f96"
- ]
+ "data": ["5b5f7a0886f77409407a7f96"]
},
{
"key": "DMR",
"relativeProbability": 1,
- "data": [
- "5b5f791486f774093f2ed3be"
- ]
+ "data": ["5b5f791486f774093f2ed3be"]
},
{
"key": "BoltAction",
"relativeProbability": 5,
- "data": [
- "5b5f798886f77447ed5636b5"
- ]
+ "data": ["5b5f798886f77447ed5636b5"]
},
{
"key": "MachineGun",
"relativeProbability": 0,
- "data": [
- "5b5f79a486f77409407a7f94"
- ]
+ "data": ["5b5f79a486f77409407a7f94"]
}
],
"weaponRequirements": [
{
"key": "Shotgun",
"relativeProbability": 10,
- "data": [
- "5447b6094bdc2dc3278b4567"
- ]
+ "data": ["5447b6094bdc2dc3278b4567"]
},
{
"key": "Pistol",
"relativeProbability": 10,
- "data": [
- "5447b5cf4bdc2d65278b4567"
- ]
+ "data": ["5447b5cf4bdc2d65278b4567"]
},
{
"key": "AssaultRifle",
"relativeProbability": 3,
- "data": [
- "5447b5f14bdc2d61278b4567"
- ]
+ "data": ["5447b5f14bdc2d61278b4567"]
},
{
"key": "AssaultCarbine",
"relativeProbability": 5,
- "data": [
- "5447b5fc4bdc2d87278b4567"
- ]
+ "data": ["5447b5fc4bdc2d87278b4567"]
},
{
"key": "MarksmanRifle",
"relativeProbability": 1,
- "data": [
- "5447b6194bdc2d67278b4567"
- ]
+ "data": ["5447b6194bdc2d67278b4567"]
},
{
"key": "SniperRifle",
"relativeProbability": 1,
- "data": [
- "5447b6254bdc2dc3278b4568"
- ]
+ "data": ["5447b6254bdc2dc3278b4568"]
},
{
"key": "SMG",
"relativeProbability": 1,
- "data": [
- "5447b5e04bdc2d62278b4567"
- ]
+ "data": ["5447b5e04bdc2d62278b4567"]
}
]
},
@@ -1847,11 +1381,7 @@
"min": 16,
"max": 40
},
- "possibleSkillRewards": [
- "Endurance",
- "Strength",
- "Vitality"
- ],
+ "possibleSkillRewards": ["Endurance", "Strength", "Vitality"],
"targets": [
{
"key": "Savage",
@@ -1944,41 +1474,26 @@
{
"key": "Head",
"relativeProbability": 1,
- "data": [
- "Head"
- ]
+ "data": ["Head"]
},
{
"key": "Chest",
"relativeProbability": 5,
- "data": [
- "Chest",
- "Stomach"
- ]
+ "data": ["Chest", "Stomach"]
},
{
"key": "Arms",
"relativeProbability": 0.5,
- "data": [
- "LeftArm",
- "RightArm"
- ]
+ "data": ["LeftArm", "RightArm"]
},
{
"key": "Legs",
"relativeProbability": 1,
- "data": [
- "LeftLeg",
- "RightLeg"
- ]
+ "data": ["LeftLeg", "RightLeg"]
}
],
"specificLocationProb": 0.2,
- "distLocationBlacklist": [
- "laboratory",
- "factory4_day",
- "factory4_night"
- ],
+ "distLocationBlacklist": ["laboratory", "factory4_day", "factory4_night"],
"distProb": 0.2,
"maxDist": 75,
"minDist": 10,
@@ -1994,116 +1509,84 @@
{
"key": "Shotgun",
"relativeProbability": 10,
- "data": [
- "5b5f794b86f77409407a7f92"
- ]
+ "data": ["5b5f794b86f77409407a7f92"]
},
{
"key": "Pistol",
"relativeProbability": 10,
- "data": [
- "5b5f792486f77447ed5636b3"
- ]
+ "data": ["5b5f792486f77447ed5636b3"]
},
{
"key": "AssaultRifle",
"relativeProbability": 3,
- "data": [
- "5b5f78fc86f77409407a7f90"
- ]
+ "data": ["5b5f78fc86f77409407a7f90"]
},
{
"key": "AssaultCarbine",
"relativeProbability": 5,
- "data": [
- "5b5f78e986f77447ed5636b1"
- ]
+ "data": ["5b5f78e986f77447ed5636b1"]
},
{
"key": "SMG",
"relativeProbability": 1,
- "data": [
- "5b5f796a86f774093f2ed3c0"
- ]
+ "data": ["5b5f796a86f774093f2ed3c0"]
},
{
"key": "Melee",
"relativeProbability": 0,
- "data": [
- "5b5f7a0886f77409407a7f96"
- ]
+ "data": ["5b5f7a0886f77409407a7f96"]
},
{
"key": "DMR",
"relativeProbability": 1,
- "data": [
- "5b5f791486f774093f2ed3be"
- ]
+ "data": ["5b5f791486f774093f2ed3be"]
},
{
"key": "BoltAction",
"relativeProbability": 1,
- "data": [
- "5b5f798886f77447ed5636b5"
- ]
+ "data": ["5b5f798886f77447ed5636b5"]
},
{
"key": "MachineGun",
"relativeProbability": 1,
- "data": [
- "5b5f79a486f77409407a7f94"
- ]
+ "data": ["5b5f79a486f77409407a7f94"]
}
],
"weaponRequirements": [
{
"key": "Shotgun",
"relativeProbability": 10,
- "data": [
- "5447b6094bdc2dc3278b4567"
- ]
+ "data": ["5447b6094bdc2dc3278b4567"]
},
{
"key": "Pistol",
"relativeProbability": 10,
- "data": [
- "5447b5cf4bdc2d65278b4567"
- ]
+ "data": ["5447b5cf4bdc2d65278b4567"]
},
{
"key": "AssaultRifle",
"relativeProbability": 3,
- "data": [
- "5447b5f14bdc2d61278b4567"
- ]
+ "data": ["5447b5f14bdc2d61278b4567"]
},
{
"key": "AssaultCarbine",
"relativeProbability": 5,
- "data": [
- "5447b5fc4bdc2d87278b4567"
- ]
+ "data": ["5447b5fc4bdc2d87278b4567"]
},
{
"key": "MarksmanRifle",
"relativeProbability": 1,
- "data": [
- "5447b6194bdc2d67278b4567"
- ]
+ "data": ["5447b6194bdc2d67278b4567"]
},
{
"key": "SniperRifle",
"relativeProbability": 1,
- "data": [
- "5447b6254bdc2dc3278b4568"
- ]
+ "data": ["5447b6254bdc2dc3278b4568"]
},
{
"key": "SMG",
"relativeProbability": 1,
- "data": [
- "5447b5e04bdc2d62278b4567"
- ]
+ "data": ["5447b5e04bdc2d62278b4567"]
}
]
},
@@ -2112,11 +1595,7 @@
"min": 41,
"max": 100
},
- "possibleSkillRewards": [
- "Endurance",
- "Strength",
- "Vitality"
- ],
+ "possibleSkillRewards": ["Endurance", "Strength", "Vitality"],
"targets": [
{
"key": "Savage",
@@ -2209,41 +1688,26 @@
{
"key": "Head",
"relativeProbability": 1,
- "data": [
- "Head"
- ]
+ "data": ["Head"]
},
{
"key": "Chest",
"relativeProbability": 5,
- "data": [
- "Chest",
- "Stomach"
- ]
+ "data": ["Chest", "Stomach"]
},
{
"key": "Arms",
"relativeProbability": 0.5,
- "data": [
- "LeftArm",
- "RightArm"
- ]
+ "data": ["LeftArm", "RightArm"]
},
{
"key": "Legs",
"relativeProbability": 1,
- "data": [
- "LeftLeg",
- "RightLeg"
- ]
+ "data": ["LeftLeg", "RightLeg"]
}
],
"specificLocationProb": 0.25,
- "distLocationBlacklist": [
- "laboratory",
- "factory4_day",
- "factory4_night"
- ],
+ "distLocationBlacklist": ["laboratory", "factory4_day", "factory4_night"],
"distProb": 0.25,
"maxDist": 100,
"minDist": 10,
@@ -2259,116 +1723,84 @@
{
"key": "Shotgun",
"relativeProbability": 10,
- "data": [
- "5b5f794b86f77409407a7f92"
- ]
+ "data": ["5b5f794b86f77409407a7f92"]
},
{
"key": "Pistol",
"relativeProbability": 10,
- "data": [
- "5b5f792486f77447ed5636b3"
- ]
+ "data": ["5b5f792486f77447ed5636b3"]
},
{
"key": "AssaultRifle",
"relativeProbability": 3,
- "data": [
- "5b5f78fc86f77409407a7f90"
- ]
+ "data": ["5b5f78fc86f77409407a7f90"]
},
{
"key": "AssaultCarbine",
"relativeProbability": 5,
- "data": [
- "5b5f78e986f77447ed5636b1"
- ]
+ "data": ["5b5f78e986f77447ed5636b1"]
},
{
"key": "SMG",
"relativeProbability": 1,
- "data": [
- "5b5f796a86f774093f2ed3c0"
- ]
+ "data": ["5b5f796a86f774093f2ed3c0"]
},
{
"key": "Melee",
"relativeProbability": 0,
- "data": [
- "5b5f7a0886f77409407a7f96"
- ]
+ "data": ["5b5f7a0886f77409407a7f96"]
},
{
"key": "DMR",
"relativeProbability": 1,
- "data": [
- "5b5f791486f774093f2ed3be"
- ]
+ "data": ["5b5f791486f774093f2ed3be"]
},
{
"key": "BoltAction",
"relativeProbability": 5,
- "data": [
- "5b5f798886f77447ed5636b5"
- ]
+ "data": ["5b5f798886f77447ed5636b5"]
},
{
"key": "MachineGun",
"relativeProbability": 1,
- "data": [
- "5b5f79a486f77409407a7f94"
- ]
+ "data": ["5b5f79a486f77409407a7f94"]
}
],
"weaponRequirements": [
{
"key": "Shotgun",
"relativeProbability": 10,
- "data": [
- "5447b6094bdc2dc3278b4567"
- ]
+ "data": ["5447b6094bdc2dc3278b4567"]
},
{
"key": "Pistol",
"relativeProbability": 10,
- "data": [
- "5447b5cf4bdc2d65278b4567"
- ]
+ "data": ["5447b5cf4bdc2d65278b4567"]
},
{
"key": "AssaultRifle",
"relativeProbability": 3,
- "data": [
- "5447b5f14bdc2d61278b4567"
- ]
+ "data": ["5447b5f14bdc2d61278b4567"]
},
{
"key": "AssaultCarbine",
"relativeProbability": 5,
- "data": [
- "5447b5fc4bdc2d87278b4567"
- ]
+ "data": ["5447b5fc4bdc2d87278b4567"]
},
{
"key": "MarksmanRifle",
"relativeProbability": 1,
- "data": [
- "5447b6194bdc2d67278b4567"
- ]
+ "data": ["5447b6194bdc2d67278b4567"]
},
{
"key": "SniperRifle",
"relativeProbability": 1,
- "data": [
- "5447b6254bdc2dc3278b4568"
- ]
+ "data": ["5447b6254bdc2dc3278b4568"]
},
{
"key": "SMG",
"relativeProbability": 1,
- "data": [
- "5447b5e04bdc2d62278b4567"
- ]
+ "data": ["5447b5e04bdc2d62278b4567"]
}
]
}
@@ -2379,144 +1811,46 @@
"5b3f15d486f77432d0509248",
"65649eb40bf0ed77b8044453"
],
- "rewardBlacklist": [
- "627bce33f21bc425b06ab967",
- "59f32c3b86f77472a31742f0",
- "59f32bb586f774757e1e8442"
- ],
+ "rewardBlacklist": ["627bce33f21bc425b06ab967", "59f32c3b86f77472a31742f0", "59f32bb586f774757e1e8442"],
"rewardAmmoStackMinSize": 5,
- "freeChangesAvailable": 0,
+ "freeChangesAvailable": 0,
"freeChanges": 0
},
{
"id": "62825ef60e88d037dc1eb426",
"name": "Daily_Savage",
"side": "Scav",
- "types": [
- "Exploration",
- "Elimination",
- "Completion"
- ],
+ "types": ["Exploration", "Elimination", "Completion"],
"resetTime": 86400,
"numQuests": 1,
"minPlayerLevel": 1,
"rewardScaling": {
- "levels": [
- 1,
- 10,
- 20,
- 30,
- 40,
- 50,
- 60
- ],
- "experience": [
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0
- ],
- "roubles": [
- 11000,
- 20000,
- 32000,
- 45000,
- 58000,
- 70000,
- 82000
- ],
- "gpCoins": [
- 1,
- 1,
- 2,
- 2,
- 4,
- 4,
- 5
- ],
- "items": [
- 2,
- 3,
- 3,
- 3,
- 3,
- 4,
- 4
- ],
- "reputation": [
- 0.02,
- 0.02,
- 0.03,
- 0.03,
- 0.04,
- 0.04,
- 0.05
- ],
+ "levels": [1, 10, 20, 30, 40, 50, 60],
+ "experience": [0, 0, 0, 0, 0, 0, 0],
+ "roubles": [11000, 20000, 32000, 45000, 58000, 70000, 82000],
+ "gpCoins": [1, 1, 2, 2, 4, 4, 5],
+ "items": [2, 3, 3, 3, 3, 4, 4],
+ "reputation": [0.02, 0.02, 0.03, 0.03, 0.04, 0.04, 0.05],
"rewardSpread": 0.5,
- "skillRewardChance": [
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0
- ],
- "skillPointReward": [
- 10,
- 15,
- 20,
- 25,
- 30,
- 35,
- 40
- ]
+ "skillRewardChance": [0, 0, 0, 0, 0, 0, 0],
+ "skillPointReward": [10, 15, 20, 25, 30, 35, 40]
},
"locations": {
- "any": [
- "any"
- ],
- "factory4_day": [
- "factory4_day",
- "factory4_night"
- ],
- "bigmap": [
- "bigmap"
- ],
- "Woods": [
- "Woods"
- ],
- "Shoreline": [
- "Shoreline"
- ],
- "Interchange": [
- "Interchange"
- ],
- "Lighthouse": [
- "Lighthouse"
- ],
- "RezervBase": [
- "RezervBase"
- ],
- "TarkovStreets": [
- "TarkovStreets"
- ],
- "Sandbox": [
- "Sandbox"
- ]
+ "any": ["any"],
+ "factory4_day": ["factory4_day", "factory4_night"],
+ "bigmap": ["bigmap"],
+ "Woods": ["Woods"],
+ "Shoreline": ["Shoreline"],
+ "Interchange": ["Interchange"],
+ "Lighthouse": ["Lighthouse"],
+ "RezervBase": ["RezervBase"],
+ "TarkovStreets": ["TarkovStreets"],
+ "Sandbox": ["Sandbox"]
},
"traderWhitelist": [
{
"traderId": "579dc571d53a0658a154fbec",
- "questTypes": [
- "Completion",
- "Exploration",
- "Elimination",
- "Pickup"
- ],
+ "questTypes": ["Completion", "Exploration", "Elimination", "Pickup"],
"rewardBaseWhitelist": [
"55818a684bdc2ddd698b456d",
"55818a594bdc2db9688b456a",
@@ -2530,30 +1864,16 @@
],
"questConfig": {
"Exploration": {
- "possibleSkillRewards": [
- "Endurance",
- "Strength",
- "Vitality"
- ],
+ "possibleSkillRewards": ["Endurance", "Strength", "Vitality"],
"maxExtracts": 4,
"maxExtractsWithSpecificExit": 2,
"specificExits": {
"probability": 0.25,
- "passageRequirementWhitelist": [
- "None",
- "WorldEvent",
- "Train",
- "Reference",
- "Empty"
- ]
+ "passageRequirementWhitelist": ["None", "WorldEvent", "Train", "Reference", "Empty"]
}
},
"Pickup": {
- "possibleSkillRewards": [
- "Endurance",
- "Strength",
- "Vitality"
- ],
+ "possibleSkillRewards": ["Endurance", "Strength", "Vitality"],
"ItemTypeToFetchWithMaxCount": [
{
"itemType": "5b47574386f77428ca22b335",
@@ -2614,11 +1934,7 @@
"maxItemFetchCount": 3
},
"Completion": {
- "possibleSkillRewards": [
- "Endurance",
- "Strength",
- "Vitality"
- ],
+ "possibleSkillRewards": ["Endurance", "Strength", "Vitality"],
"minRequestedAmount": 1,
"maxRequestedAmount": 3,
"uniqueItemCount": 1,
@@ -2633,11 +1949,7 @@
"min": 1,
"max": 15
},
- "possibleSkillRewards": [
- "Endurance",
- "Strength",
- "Vitality"
- ],
+ "possibleSkillRewards": ["Endurance", "Strength", "Vitality"],
"targets": [
{
"key": "AnyPmc",
@@ -2653,40 +1965,27 @@
{
"key": "Head",
"relativeProbability": 1,
- "data": [
- "Head"
- ]
+ "data": ["Head"]
},
{
"key": "Chest",
"relativeProbability": 10,
- "data": [
- "Chest",
- "Stomach"
- ]
+ "data": ["Chest", "Stomach"]
},
{
"key": "Arms",
"relativeProbability": 0.5,
- "data": [
- "LeftArm",
- "RightArm"
- ]
+ "data": ["LeftArm", "RightArm"]
},
{
"key": "Legs",
"relativeProbability": 1,
- "data": [
- "LeftLeg",
- "RightLeg"
- ]
+ "data": ["LeftLeg", "RightLeg"]
}
],
"specificLocationProb": 0.15,
- "distLocationBlacklist": [
- "laboratory"
- ],
- "distProb": 0.20,
+ "distLocationBlacklist": ["laboratory"],
+ "distProb": 0.2,
"maxDist": 75,
"minDist": 10,
"maxKills": 3,
@@ -2701,116 +2000,84 @@
{
"key": "Shotgun",
"relativeProbability": 10,
- "data": [
- "5b5f794b86f77409407a7f92"
- ]
+ "data": ["5b5f794b86f77409407a7f92"]
},
{
"key": "Pistol",
"relativeProbability": 10,
- "data": [
- "5b5f792486f77447ed5636b3"
- ]
+ "data": ["5b5f792486f77447ed5636b3"]
},
{
"key": "AssaultRifle",
"relativeProbability": 3,
- "data": [
- "5b5f78fc86f77409407a7f90"
- ]
+ "data": ["5b5f78fc86f77409407a7f90"]
},
{
"key": "AssaultCarbine",
"relativeProbability": 5,
- "data": [
- "5b5f78e986f77447ed5636b1"
- ]
+ "data": ["5b5f78e986f77447ed5636b1"]
},
{
"key": "SMG",
"relativeProbability": 1,
- "data": [
- "5b5f796a86f774093f2ed3c0"
- ]
+ "data": ["5b5f796a86f774093f2ed3c0"]
},
{
"key": "Melee",
"relativeProbability": 0,
- "data": [
- "5b5f7a0886f77409407a7f96"
- ]
+ "data": ["5b5f7a0886f77409407a7f96"]
},
{
"key": "DMR",
"relativeProbability": 1,
- "data": [
- "5b5f791486f774093f2ed3be"
- ]
+ "data": ["5b5f791486f774093f2ed3be"]
},
{
"key": "BoltAction",
"relativeProbability": 5,
- "data": [
- "5b5f798886f77447ed5636b5"
- ]
+ "data": ["5b5f798886f77447ed5636b5"]
},
{
"key": "MachineGun",
"relativeProbability": 0,
- "data": [
- "5b5f79a486f77409407a7f94"
- ]
+ "data": ["5b5f79a486f77409407a7f94"]
}
],
"weaponRequirements": [
{
"key": "Shotgun",
"relativeProbability": 10,
- "data": [
- "5447b6094bdc2dc3278b4567"
- ]
+ "data": ["5447b6094bdc2dc3278b4567"]
},
{
"key": "Pistol",
"relativeProbability": 10,
- "data": [
- "5447b5cf4bdc2d65278b4567"
- ]
+ "data": ["5447b5cf4bdc2d65278b4567"]
},
{
"key": "AssaultRifle",
"relativeProbability": 3,
- "data": [
- "5447b5f14bdc2d61278b4567"
- ]
+ "data": ["5447b5f14bdc2d61278b4567"]
},
{
"key": "AssaultCarbine",
"relativeProbability": 5,
- "data": [
- "5447b5fc4bdc2d87278b4567"
- ]
+ "data": ["5447b5fc4bdc2d87278b4567"]
},
{
"key": "MarksmanRifle",
"relativeProbability": 1,
- "data": [
- "5447b6194bdc2d67278b4567"
- ]
+ "data": ["5447b6194bdc2d67278b4567"]
},
{
"key": "SniperRifle",
"relativeProbability": 1,
- "data": [
- "5447b6254bdc2dc3278b4568"
- ]
+ "data": ["5447b6254bdc2dc3278b4568"]
},
{
"key": "SMG",
"relativeProbability": 1,
- "data": [
- "5447b5e04bdc2d62278b4567"
- ]
+ "data": ["5447b5e04bdc2d62278b4567"]
}
]
},
@@ -2819,11 +2086,7 @@
"min": 16,
"max": 100
},
- "possibleSkillRewards": [
- "Endurance",
- "Strength",
- "Vitality"
- ],
+ "possibleSkillRewards": ["Endurance", "Strength", "Vitality"],
"targets": [
{
"key": "AnyPmc",
@@ -2839,39 +2102,26 @@
{
"key": "Head",
"relativeProbability": 1,
- "data": [
- "Head"
- ]
+ "data": ["Head"]
},
{
"key": "Chest",
"relativeProbability": 5,
- "data": [
- "Chest",
- "Stomach"
- ]
+ "data": ["Chest", "Stomach"]
},
{
"key": "Arms",
"relativeProbability": 0.5,
- "data": [
- "LeftArm",
- "RightArm"
- ]
+ "data": ["LeftArm", "RightArm"]
},
{
"key": "Legs",
"relativeProbability": 1,
- "data": [
- "LeftLeg",
- "RightLeg"
- ]
+ "data": ["LeftLeg", "RightLeg"]
}
],
"specificLocationProb": 0.25,
- "distLocationBlacklist": [
- "laboratory"
- ],
+ "distLocationBlacklist": ["laboratory"],
"distProb": 0.25,
"maxDist": 75,
"minDist": 10,
@@ -2887,116 +2137,84 @@
{
"key": "Shotgun",
"relativeProbability": 1,
- "data": [
- "5b5f794b86f77409407a7f92"
- ]
+ "data": ["5b5f794b86f77409407a7f92"]
},
{
"key": "Pistol",
"relativeProbability": 1,
- "data": [
- "5b5f792486f77447ed5636b3"
- ]
+ "data": ["5b5f792486f77447ed5636b3"]
},
{
"key": "AssaultRifle",
"relativeProbability": 2,
- "data": [
- "5b5f78fc86f77409407a7f90"
- ]
+ "data": ["5b5f78fc86f77409407a7f90"]
},
{
"key": "AssaultCarbine",
"relativeProbability": 1,
- "data": [
- "5b5f78e986f77447ed5636b1"
- ]
+ "data": ["5b5f78e986f77447ed5636b1"]
},
{
"key": "SMG",
"relativeProbability": 1,
- "data": [
- "5b5f796a86f774093f2ed3c0"
- ]
+ "data": ["5b5f796a86f774093f2ed3c0"]
},
{
"key": "Melee",
"relativeProbability": 1,
- "data": [
- "5b5f7a0886f77409407a7f96"
- ]
+ "data": ["5b5f7a0886f77409407a7f96"]
},
{
"key": "DMR",
"relativeProbability": 1,
- "data": [
- "5b5f791486f774093f2ed3be"
- ]
+ "data": ["5b5f791486f774093f2ed3be"]
},
{
"key": "BoltAction",
"relativeProbability": 1,
- "data": [
- "5b5f798886f77447ed5636b5"
- ]
+ "data": ["5b5f798886f77447ed5636b5"]
},
{
"key": "MachineGun",
"relativeProbability": 1,
- "data": [
- "5b5f79a486f77409407a7f94"
- ]
+ "data": ["5b5f79a486f77409407a7f94"]
}
],
"weaponRequirements": [
{
"key": "Shotgun",
"relativeProbability": 10,
- "data": [
- "5447b6094bdc2dc3278b4567"
- ]
+ "data": ["5447b6094bdc2dc3278b4567"]
},
{
"key": "Pistol",
"relativeProbability": 10,
- "data": [
- "5447b5cf4bdc2d65278b4567"
- ]
+ "data": ["5447b5cf4bdc2d65278b4567"]
},
{
"key": "AssaultRifle",
"relativeProbability": 3,
- "data": [
- "5447b5f14bdc2d61278b4567"
- ]
+ "data": ["5447b5f14bdc2d61278b4567"]
},
{
"key": "AssaultCarbine",
"relativeProbability": 5,
- "data": [
- "5447b5fc4bdc2d87278b4567"
- ]
+ "data": ["5447b5fc4bdc2d87278b4567"]
},
{
"key": "MarksmanRifle",
"relativeProbability": 1,
- "data": [
- "5447b6194bdc2d67278b4567"
- ]
+ "data": ["5447b6194bdc2d67278b4567"]
},
{
"key": "SniperRifle",
"relativeProbability": 1,
- "data": [
- "5447b6254bdc2dc3278b4568"
- ]
+ "data": ["5447b6254bdc2dc3278b4568"]
},
{
"key": "SMG",
"relativeProbability": 1,
- "data": [
- "5447b5e04bdc2d62278b4567"
- ]
+ "data": ["5447b5e04bdc2d62278b4567"]
}
]
}
@@ -3007,13 +2225,9 @@
"5b3f15d486f77432d0509248",
"65649eb40bf0ed77b8044453"
],
- "rewardBlacklist": [
- "627bce33f21bc425b06ab967",
- "59f32c3b86f77472a31742f0",
- "59f32bb586f774757e1e8442"
- ],
+ "rewardBlacklist": ["627bce33f21bc425b06ab967", "59f32c3b86f77472a31742f0", "59f32bb586f774757e1e8442"],
"rewardAmmoStackMinSize": 5,
- "freeChangesAvailable": 0,
+ "freeChangesAvailable": 0,
"freeChanges": 0
}
],
@@ -3031,4 +2245,4 @@
"TarkovStreets": "5714dc692459777137212e12",
"Sandbox": "653e6760052c01c1c805532f"
}
-}
\ No newline at end of file
+}
diff --git a/project/assets/configs/ragfair.json b/project/assets/configs/ragfair.json
index 5475ae9b..1c58e195 100644
--- a/project/assets/configs/ragfair.json
+++ b/project/assets/configs/ragfair.json
@@ -276,10 +276,7 @@
},
"armor": {
"removeRemovablePlateChance": 40,
- "plateSlotIdToRemovePool": [
- "front_plate",
- "back_plate"
- ]
+ "plateSlotIdToRemovePool": ["front_plate", "back_plate"]
},
"itemPriceMultiplier": {
"5737292724597765e5728562": 6,
@@ -303,7 +300,7 @@
"62e910aaf957f2915e0a5e36",
"5447e1d04bdc2dff2f8b4567",
"57bef4c42459772e8d35a53b",
- "55802f4a4bdc2ddb688b4569"
+ "55802f4a4bdc2ddb688b4569"
],
"removeSeasonalItemsWhenNotInEvent": true,
"blacklist": {
@@ -314,10 +311,7 @@
"traderItems": false,
"armorPlate": {
"maxProtectionLevel": 4,
- "ignoreSlots": [
- "right_side_plate",
- "left_side_plate"
- ]
+ "ignoreSlots": ["right_side_plate", "left_side_plate"]
},
"enableCustomItemCategoryList": false,
"customItemCategoryList": []
@@ -337,4 +331,4 @@
}
}
}
-}
\ No newline at end of file
+}
diff --git a/project/assets/configs/repair.json b/project/assets/configs/repair.json
index 8d2f7980..cff2d136 100644
--- a/project/assets/configs/repair.json
+++ b/project/assets/configs/repair.json
@@ -12,9 +12,9 @@
"trader": 0.6
},
"weaponTreatment": {
- "critSuccessChance": 0.10,
+ "critSuccessChance": 0.1,
"critSuccessAmount": 4,
- "critFailureChance": 0.10,
+ "critFailureChance": 0.1,
"critFailureAmount": 4,
"pointGainMultiplier": 0.6
},
@@ -163,7 +163,7 @@
"MalfunctionProtections": {
"valuesMinMax": {
"min": 0.75,
- "max": 0.90
+ "max": 0.9
},
"activeDurabilityPercentMinMax": {
"min": 75,
@@ -183,4 +183,4 @@
}
}
}
-}
\ No newline at end of file
+}
diff --git a/project/assets/configs/scavcase.json b/project/assets/configs/scavcase.json
index ebdfd9b1..b95a06d2 100644
--- a/project/assets/configs/scavcase.json
+++ b/project/assets/configs/scavcase.json
@@ -86,9 +86,7 @@
"ammoRewardChancePercent": 10,
"minStackSize": 10,
"ammoRewardBlacklist": {
- "common": [
- "59e690b686f7746c9f75e848"
- ],
+ "common": ["59e690b686f7746c9f75e848"],
"rare": [],
"superrare": []
},
@@ -110,4 +108,4 @@
"allowMultipleMoneyRewardsPerRarity": false,
"allowMultipleAmmoRewardsPerRarity": true,
"allowBossItemsAsRewards": false
-}
\ No newline at end of file
+}
diff --git a/project/assets/configs/seasonalevents.json b/project/assets/configs/seasonalevents.json
index 7499ca10..d93d2df4 100644
--- a/project/assets/configs/seasonalevents.json
+++ b/project/assets/configs/seasonalevents.json
@@ -721,4 +721,4 @@
"endMonth": "2"
}
]
-}
\ No newline at end of file
+}
diff --git a/project/assets/configs/trader.json b/project/assets/configs/trader.json
index 24905f12..575b8c82 100644
--- a/project/assets/configs/trader.json
+++ b/project/assets/configs/trader.json
@@ -202,11 +202,11 @@
}
},
"chancePlateExistsInArmorPercent": {
- "3": 95,
- "4": 75,
- "5": 25,
- "6": 10
- },
+ "3": 95,
+ "4": 75,
+ "5": 25,
+ "6": 10
+ },
"armorMaxDurabilityPercentMinMax": {
"current": {
"min": 50,
diff --git a/project/assets/configs/weather.json b/project/assets/configs/weather.json
index 181bb86a..997a34b9 100644
--- a/project/assets/configs/weather.json
+++ b/project/assets/configs/weather.json
@@ -2,94 +2,32 @@
"acceleration": 7,
"weather": {
"clouds": {
- "values": [
- -1.5,
- -1,
- 0,
- 0.5,
- 1,
- 1.5
- ],
- "weights": [
- 60,
- 50,
- 15,
- 5,
- 4,
- 3
- ]
+ "values": [-1.5, -1, 0, 0.5, 1, 1.5],
+ "weights": [60, 50, 15, 5, 4, 3]
},
"windSpeed": {
- "values": [
- 0,
- 1,
- 2,
- 3
- ],
- "weights": [
- 4,
- 3,
- 2,
- 1
- ]
+ "values": [0, 1, 2, 3],
+ "weights": [4, 3, 2, 1]
},
"windDirection": {
- "values": [
- 1,
- 2,
- 3,
- 4,
- 5,
- 6,
- 7,
- 8
- ],
- "weights": [
- 1,
- 1,
- 1,
- 1,
- 1,
- 1,
- 1,
- 1
- ]
+ "values": [1, 2, 3, 4, 5, 6, 7, 8],
+ "weights": [1, 1, 1, 1, 1, 1, 1, 1]
},
"windGustiness": {
"min": 0,
"max": 1
},
"rain": {
- "values": [
- 1,
- 2,
- 3
- ],
- "weights": [
- 25,
- 1,
- 1
- ]
+ "values": [1, 2, 3],
+ "weights": [25, 1, 1]
},
"rainIntensity": {
"min": 0,
"max": 1
},
"fog": {
- "values": [
- 0.002,
- 0.004,
- 0.008,
- 0.012,
- 0.087
- ],
- "weights": [
- 20,
- 8,
- 5,
- 5,
- 1
- ]
+ "values": [0.002, 0.004, 0.008, 0.012, 0.087],
+ "weights": [20, 8, 5, 5, 1]
},
"temp": {
"min": 0,
@@ -100,55 +38,55 @@
"max": 764
}
},
- "seasonDates": [
- {
- "seasonType": 0,
- "name": "SUMMER",
- "startDay": "2",
+ "seasonDates": [
+ {
+ "seasonType": 0,
+ "name": "SUMMER",
+ "startDay": "2",
"startMonth": "6",
"endDay": "1",
"endMonth": "8"
- },
- {
- "seasonType": 1,
- "name": "AUTUMN",
- "startDay": "2",
+ },
+ {
+ "seasonType": 1,
+ "name": "AUTUMN",
+ "startDay": "2",
"startMonth": "8",
"endDay": "1",
"endMonth": "11"
- },
- {
- "seasonType": 2,
- "name": "WINTER_END",
- "startDay": "2",
+ },
+ {
+ "seasonType": 2,
+ "name": "WINTER_END",
+ "startDay": "2",
"startMonth": "11",
"endDay": "31",
"endMonth": "12"
- },
- {
- "seasonType": 2,
- "name": "WINTER_START",
- "startDay": "1",
+ },
+ {
+ "seasonType": 2,
+ "name": "WINTER_START",
+ "startDay": "1",
"startMonth": "1",
"endDay": "24",
"endMonth": "3"
- },
- {
- "seasonType": 3,
- "name": "SPRING",
- "startDay": "25",
+ },
+ {
+ "seasonType": 3,
+ "name": "SPRING",
+ "startDay": "25",
"startMonth": "3",
"endDay": "1",
"endMonth": "6"
- },
- {
- "seasonType": 4,
- "name": "STORM",
- "startDay": "24",
+ },
+ {
+ "seasonType": 4,
+ "name": "STORM",
+ "startDay": "24",
"startMonth": "10",
"endDay": "4",
"endMonth": "11"
- }
- ],
- "overrideSeason": null
-}
\ No newline at end of file
+ }
+ ],
+ "overrideSeason": null
+}
diff --git a/project/biome.jsonc b/project/biome.jsonc
index 1507924e..54b3e0e7 100644
--- a/project/biome.jsonc
+++ b/project/biome.jsonc
@@ -34,16 +34,16 @@
"enabled": true,
"formatWithErrors": false,
"ignore": [
- "**/.git",
- "**/.pkg-cache",
- "**/.vscode",
- "**/build",
- "**/node_modules",
- "**/types",
- "**/tests/__cache__",
- "**/tests/__coverage__",
- "**/.editorconfig"
- ],
+ "**/.git",
+ "**/.pkg-cache",
+ "**/.vscode",
+ "**/build",
+ "**/node_modules",
+ "**/types",
+ "**/tests/__cache__",
+ "**/tests/__coverage__",
+ "**/.editorconfig"
+ ],
"attributePosition": "auto",
"indentStyle": "space",
"indentWidth": 4,
diff --git a/project/gulpfile.mjs b/project/gulpfile.mjs
index fa1d1617..845ca61b 100644
--- a/project/gulpfile.mjs
+++ b/project/gulpfile.mjs
@@ -37,8 +37,7 @@ const licenseFile = "../LICENSE.md";
/**
* Transpile src files into Javascript with SWC
*/
-const compile = async () =>
-{
+const compile = async () => {
// Compile TypeScript files using SWC
await exec("npx swc src -d obj", { stdio: "inherit" });
@@ -46,29 +45,23 @@ const compile = async () =>
const srcDir = path.join("obj", "src");
const destDir = path.join("obj");
- try
- {
+ try {
const entities = await fs.readdir(srcDir);
- for (const entity of entities)
- {
+ for (const entity of entities) {
const srcPath = path.join(srcDir, entity);
const destPath = path.join(destDir, entity);
await fs.move(srcPath, destPath, { overwrite: true });
}
// After moving all contents, remove the now-empty /obj/src directory
await fs.remove(srcDir);
- }
- catch (error)
- {
+ } catch (error) {
console.error("An error occurred during the merge operation:", error);
}
};
// Packaging
-const fetchPackageImage = async () =>
-{
- try
- {
+const fetchPackageImage = async () => {
+ try {
const output = "./.pkg-cache/v3.5";
const fetchedPkg = await pkgfetch.need({
arch: targetArch,
@@ -79,18 +72,14 @@ const fetchPackageImage = async () =>
console.log(`fetched node binary at ${fetchedPkg}`);
const builtPkg = fetchedPkg.replace("node", "built");
await fs.copyFile(fetchedPkg, builtPkg);
- }
- catch (e)
- {
+ } catch (e) {
console.error(`Error while fetching and patching package image: ${e.message}`);
console.error(e.stack);
}
};
-const updateBuildProperties = async () =>
-{
- if (targetPlatform !== "win32")
- {
+const updateBuildProperties = async () => {
+ if (targetPlatform !== "win32") {
// can't modify executable's resource on non-windows build
return;
}
@@ -110,12 +99,15 @@ const updateBuildProperties = async () =>
const vi = ResEdit.Resource.VersionInfo.fromEntries(res.entries)[0];
- vi.setStringValues({ lang: 1033, codepage: 1200 }, {
- ProductName: manifest.author,
- FileDescription: manifest.description,
- CompanyName: manifest.name,
- LegalCopyright: manifest.license,
- });
+ vi.setStringValues(
+ { lang: 1033, codepage: 1200 },
+ {
+ ProductName: manifest.author,
+ FileDescription: manifest.description,
+ CompanyName: manifest.name,
+ LegalCopyright: manifest.license,
+ },
+ );
vi.removeStringValue({ lang: 1033, codepage: 1200 }, "OriginalFilename");
vi.removeStringValue({ lang: 1033, codepage: 1200 }, "InternalName");
vi.setFileVersion(...manifest.version.split(".").map(Number));
@@ -129,15 +121,14 @@ const updateBuildProperties = async () =>
* Copy various asset files to the destination directory
*/
const copyAssets = () =>
- gulp.src(["assets/**/*.json", "assets/**/*.json5", "assets/**/*.png", "assets/**/*.jpg", "assets/**/*.ico"]).pipe(
- gulp.dest(dataDir),
- );
+ gulp
+ .src(["assets/**/*.json", "assets/**/*.json5", "assets/**/*.png", "assets/**/*.jpg", "assets/**/*.ico"])
+ .pipe(gulp.dest(dataDir));
/**
* Download pnpm executable
*/
-const downloadPnpm = async () =>
-{
+const downloadPnpm = async () => {
// Please ensure that the @pnpm/exe version in devDependencies is pinned to a specific version. If it's not, the
// following task will download *all* versions that are compatible with the semver range specified.
const pnpmVersion = manifest.devDependencies["@pnpm/exe"];
@@ -145,7 +136,9 @@ const downloadPnpm = async () =>
const npmResult = await exec(`npm view ${pnpmPackageName}@${pnpmVersion} dist.tarball`, { stdout: "pipe" });
const pnpmLink = npmResult.stdout.trim();
console.log(`Downloading pnpm binary from ${pnpmLink}`);
- download(pnpmLink).pipe(decompress({ strip: 1 })).pipe(gulp.dest(path.join(dataDir, "@pnpm", "exe")));
+ download(pnpmLink)
+ .pipe(decompress({ strip: 1 }))
+ .pipe(gulp.dest(path.join(dataDir, "@pnpm", "exe")));
};
/**
@@ -156,10 +149,8 @@ const copyLicense = () => gulp.src([licenseFile]).pipe(rename("LICENSE-Server.tx
/**
* Writes the latest build data to the core.json and build.json configuration files.
*/
-const writeBuildDataToJSON = async () =>
-{
- try
- {
+const writeBuildDataToJSON = async () => {
+ try {
// Fetch the latest Git commit hash
const gitResult = await exec("git rev-parse HEAD", { stdout: "pipe" });
@@ -180,9 +171,7 @@ const writeBuildDataToJSON = async () =>
buildInfo.buildTime = coreParsed.buildTime;
buildInfo.sptVersion = coreParsed.sptVersion;
await fs.writeFile(buildJsonPath, JSON.stringify(buildInfo, null, 4));
- }
- catch (error)
- {
+ } catch (error) {
throw new Error(`Failed to write commit hash to core.json: ${error.message}`);
}
};
@@ -190,8 +179,7 @@ const writeBuildDataToJSON = async () =>
/**
* Create a hash file for asset checks
*/
-const createHashFile = async () =>
-{
+const createHashFile = async () => {
const hashFileDir = path.resolve(dataDir, "checks.dat");
const assetData = await loadRecursiveAsync("assets/");
const assetDataString = Buffer.from(JSON.stringify(assetData), "utf-8").toString("base64");
@@ -218,18 +206,13 @@ const cleanCompiled = async () => await fs.rm("./obj", { recursive: true, force:
* @param {string[]} files
* @returns {Promise}
*/
-const getJSONFiles = async (dir, files = []) =>
-{
+const getJSONFiles = async (dir, files = []) => {
const fileList = await fs.readdir(dir);
- for (const file of fileList)
- {
+ for (const file of fileList) {
const name = path.resolve(dir, file);
- if ((await fs.stat(name)).isDirectory())
- {
+ if ((await fs.stat(name)).isDirectory()) {
getJSONFiles(name, files);
- }
- else if (name.slice(-5) === ".json")
- {
+ } else if (name.slice(-5) === ".json") {
files.push(name);
}
}
@@ -239,21 +222,16 @@ const getJSONFiles = async (dir, files = []) =>
/**
* Goes through every json file in assets and makes sure they're valid json.
*/
-const validateJSONs = async () =>
-{
+const validateJSONs = async () => {
const assetsPath = path.resolve("assets");
const jsonFileList = await getJSONFiles(assetsPath);
let jsonFileInProcess = "";
- try
- {
- for (const jsonFile of jsonFileList)
- {
+ try {
+ for (const jsonFile of jsonFileList) {
jsonFileInProcess = jsonFile;
JSON.parse(await fs.readFile(jsonFile));
}
- }
- catch (error)
- {
+ } catch (error) {
throw new Error(`${error.message} | ${jsonFileInProcess}`);
}
};
@@ -264,8 +242,7 @@ const validateJSONs = async () =>
* @param {crypto.BinaryLike} data
* @returns {string}
*/
-const generateHashForData = (data) =>
-{
+const generateHashForData = (data) => {
const hashSum = crypto.createHash("sha1");
hashSum.update(data);
return hashSum.digest("hex");
@@ -277,21 +254,16 @@ const generateHashForData = (data) =>
* @param {fs.PathLike} filepath
* @returns {}
*/
-const loadRecursiveAsync = async (filepath) =>
-{
+const loadRecursiveAsync = async (filepath) => {
const result = {};
const filesList = await fs.readdir(filepath);
- for (const file of filesList)
- {
+ for (const file of filesList) {
const curPath = path.parse(path.join(filepath, file));
- if ((await fs.stat(path.join(curPath.dir, curPath.base))).isDirectory())
- {
+ if ((await fs.stat(path.join(curPath.dir, curPath.base))).isDirectory()) {
result[curPath.name] = loadRecursiveAsync(`${filepath}${file}/`);
- }
- else if (curPath.ext === ".json")
- {
+ } else if (curPath.ext === ".json") {
result[curPath.name] = generateHashForData(await fs.readFile(`${filepath}${file}`));
}
}
@@ -299,8 +271,7 @@ const loadRecursiveAsync = async (filepath) =>
// set all loadRecursive to be executed asynchronously
const resEntries = Object.entries(result);
const resResolved = await Promise.all(resEntries.map((ent) => ent[1]));
- for (let resIdx = 0; resIdx < resResolved.length; resIdx++)
- {
+ for (let resIdx = 0; resIdx < resResolved.length; resIdx++) {
resEntries[resIdx][1] = resResolved[resIdx];
}
@@ -309,8 +280,7 @@ const loadRecursiveAsync = async (filepath) =>
};
// Main Tasks Generation
-const build = (packagingType) =>
-{
+const build = (packagingType) => {
const anonPackaging = () => packaging(entries[packagingType]);
anonPackaging.displayName = `packaging-${packagingType}`;
const tasks = [
@@ -327,11 +297,9 @@ const build = (packagingType) =>
};
// Packaging Arguments
-const packaging = async (entry) =>
-{
+const packaging = async (entry) => {
const target = `${nodeVersion}-${targetPlatform}-${targetArch}`;
- try
- {
+ try {
await pkg.exec([
entry,
"--compress",
@@ -344,9 +312,7 @@ const packaging = async (entry) =>
pkgConfig,
"--public",
]);
- }
- catch (error)
- {
+ } catch (error) {
console.error(`Error occurred during packaging: ${error}`);
}
};
@@ -361,8 +327,7 @@ gulp.task(
"run:debug",
async () => await exec("ts-node-dev -r tsconfig-paths/register src/ide/TestEntry.ts", { stdio }),
);
-gulp.task("run:profiler", async () =>
-{
+gulp.task("run:profiler", async () => {
await cleanCompiled();
await compile();
await exec("node --prof --inspect --trace-warnings obj/ide/TestEntry.js", { stdio });
diff --git a/project/pkgconfig.json b/project/pkgconfig.json
index 7c438a55..e5a9d2ce 100644
--- a/project/pkgconfig.json
+++ b/project/pkgconfig.json
@@ -1,11 +1,6 @@
{
"pkg": {
- "scripts": [
- "obj/**/*.js"
- ],
- "assets": [
- "obj/**/*.js.map",
- "package.json"
- ]
+ "scripts": ["obj/**/*.js"],
+ "assets": ["obj/**/*.js.map", "package.json"]
}
}
diff --git a/project/src/ErrorHandler.ts b/project/src/ErrorHandler.ts
index 6e6fa673..17ea9bab 100644
--- a/project/src/ErrorHandler.ts
+++ b/project/src/ErrorHandler.ts
@@ -3,23 +3,19 @@ import { ILogger } from "@spt/models/spt/utils/ILogger";
import { AsyncQueue } from "@spt/utils/AsyncQueue";
import { WinstonMainLogger } from "@spt/utils/logging/WinstonMainLogger";
-export class ErrorHandler
-{
+export class ErrorHandler {
private logger: ILogger;
private readLine: readline.Interface;
- constructor()
- {
+ constructor() {
this.logger = new WinstonMainLogger(new AsyncQueue());
this.readLine = readline.createInterface({ input: process.stdin, output: process.stdout });
}
- public handleCriticalError(err: Error): void
- {
+ public handleCriticalError(err: Error): void {
this.logger.error("The application had a critical error and failed to run");
this.logger.error(`Exception produced: ${err.name}`);
- if (err.stack)
- {
+ if (err.stack) {
this.logger.error(`\nStacktrace:\n${err.stack}`);
}
diff --git a/project/src/Program.ts b/project/src/Program.ts
index 2d58379b..167cdc94 100644
--- a/project/src/Program.ts
+++ b/project/src/Program.ts
@@ -1,25 +1,21 @@
-import { container } from "tsyringe";
-import { Container } from "@spt/di/Container";
import { ErrorHandler } from "@spt/ErrorHandler";
+import { Container } from "@spt/di/Container";
import type { PreSptModLoader } from "@spt/loaders/PreSptModLoader";
import { App } from "@spt/utils/App";
import { Watermark } from "@spt/utils/Watermark";
+import { container } from "tsyringe";
-export class Program
-{
+export class Program {
private errorHandler: ErrorHandler;
- constructor()
- {
+ constructor() {
// set window properties
process.stdout.setEncoding("utf8");
process.title = "SPT Server";
this.errorHandler = new ErrorHandler();
}
- public async start(): Promise
- {
- try
- {
+ public async start(): Promise {
+ try {
Container.registerTypes(container);
const childContainer = container.createChildContainer();
const watermark = childContainer.resolve("Watermark");
@@ -31,9 +27,7 @@ export class Program
Container.registerPostLoadTypes(container, childContainer);
childContainer.resolve("App").load();
- }
- catch (err: any)
- {
+ } catch (err: any) {
this.errorHandler.handleCriticalError(err instanceof Error ? err : new Error(err));
}
}
diff --git a/project/src/callbacks/AchievementCallbacks.ts b/project/src/callbacks/AchievementCallbacks.ts
index 960666e6..6f5925b7 100644
--- a/project/src/callbacks/AchievementCallbacks.ts
+++ b/project/src/callbacks/AchievementCallbacks.ts
@@ -1,4 +1,3 @@
-import { inject, injectable } from "tsyringe";
import { AchievementController } from "@spt/controllers/AchievementController";
import { ProfileController } from "@spt/controllers/ProfileController";
import { IEmptyRequestData } from "@spt/models/eft/common/IEmptyRequestData";
@@ -6,16 +5,15 @@ import { IGetBodyResponseData } from "@spt/models/eft/httpResponse/IGetBodyRespo
import { ICompletedAchievementsResponse } from "@spt/models/eft/profile/ICompletedAchievementsResponse";
import { IGetAchievementsResponse } from "@spt/models/eft/profile/IGetAchievementsResponse";
import { HttpResponseUtil } from "@spt/utils/HttpResponseUtil";
+import { inject, injectable } from "tsyringe";
@injectable()
-export class AchievementCallbacks
-{
+export class AchievementCallbacks {
constructor(
@inject("AchievementController") protected achievementController: AchievementController,
@inject("ProfileController") protected profileController: ProfileController,
@inject("HttpResponseUtil") protected httpResponse: HttpResponseUtil,
- )
- {}
+ ) {}
/**
* Handle client/achievement/list
@@ -24,8 +22,7 @@ export class AchievementCallbacks
url: string,
info: IEmptyRequestData,
sessionID: string,
- ): IGetBodyResponseData
- {
+ ): IGetBodyResponseData {
return this.httpResponse.getBody(this.achievementController.getAchievements(sessionID));
}
@@ -36,8 +33,7 @@ export class AchievementCallbacks
url: string,
info: IEmptyRequestData,
sessionID: string,
- ): IGetBodyResponseData
- {
+ ): IGetBodyResponseData {
return this.httpResponse.getBody(this.achievementController.getAchievementStatistics(sessionID));
}
}
diff --git a/project/src/callbacks/BotCallbacks.ts b/project/src/callbacks/BotCallbacks.ts
index ff72176c..52c4d551 100644
--- a/project/src/callbacks/BotCallbacks.ts
+++ b/project/src/callbacks/BotCallbacks.ts
@@ -1,4 +1,3 @@
-import { inject, injectable } from "tsyringe";
import { BotController } from "@spt/controllers/BotController";
import { IGenerateBotsRequestData } from "@spt/models/eft/bot/IGenerateBotsRequestData";
import { IEmptyRequestData } from "@spt/models/eft/common/IEmptyRequestData";
@@ -6,23 +5,21 @@ import { IBotBase } from "@spt/models/eft/common/tables/IBotBase";
import { Difficulties } from "@spt/models/eft/common/tables/IBotType";
import { IGetBodyResponseData } from "@spt/models/eft/httpResponse/IGetBodyResponseData";
import { HttpResponseUtil } from "@spt/utils/HttpResponseUtil";
+import { inject, injectable } from "tsyringe";
@injectable()
-export class BotCallbacks
-{
+export class BotCallbacks {
constructor(
@inject("BotController") protected botController: BotController,
@inject("HttpResponseUtil") protected httpResponse: HttpResponseUtil,
- )
- {}
+ ) {}
/**
* Handle singleplayer/settings/bot/limit
* Is called by client to define each bot roles wave limit
* @returns string
*/
- public getBotLimit(url: string, info: IEmptyRequestData, sessionID: string): string
- {
+ public getBotLimit(url: string, info: IEmptyRequestData, sessionID: string): string {
const splittedUrl = url.split("/");
const type = splittedUrl[splittedUrl.length - 1];
return this.httpResponse.noBody(this.botController.getBotPresetGenerationLimit(type));
@@ -32,13 +29,11 @@ export class BotCallbacks
* Handle singleplayer/settings/bot/difficulty
* @returns string
*/
- public getBotDifficulty(url: string, info: IEmptyRequestData, sessionID: string): string
- {
+ public getBotDifficulty(url: string, info: IEmptyRequestData, sessionID: string): string {
const splittedUrl = url.split("/");
const type = splittedUrl[splittedUrl.length - 2].toLowerCase();
const difficulty = splittedUrl[splittedUrl.length - 1];
- if (difficulty === "core")
- {
+ if (difficulty === "core") {
return this.httpResponse.noBody(this.botController.getBotCoreDifficulty());
}
return this.httpResponse.noBody(this.botController.getBotDifficulty(type, difficulty));
@@ -52,8 +47,7 @@ export class BotCallbacks
url: string,
info: IEmptyRequestData,
sessionID: string,
- ): Record
- {
+ ): Record {
return this.httpResponse.noBody(this.botController.getAllBotDifficulties());
}
@@ -65,8 +59,7 @@ export class BotCallbacks
url: string,
info: IGenerateBotsRequestData,
sessionID: string,
- ): Promise>
- {
+ ): Promise> {
return this.httpResponse.getBody(await this.botController.generate(sessionID, info));
}
@@ -74,8 +67,7 @@ export class BotCallbacks
* Handle singleplayer/settings/bot/maxCap
* @returns string
*/
- public getBotCap(url: string, info: any, sessionID: string): string
- {
+ public getBotCap(url: string, info: any, sessionID: string): string {
const splitUrl = url.split("/");
const location = splitUrl[splitUrl.length - 1];
return this.httpResponse.noBody(this.botController.getBotCap(location));
@@ -85,8 +77,7 @@ export class BotCallbacks
* Handle singleplayer/settings/bot/getBotBehaviours
* @returns string
*/
- public getBotBehaviours(): string
- {
+ public getBotBehaviours(): string {
return this.httpResponse.noBody(this.botController.getAiBotBrainTypes());
}
}
diff --git a/project/src/callbacks/BuildsCallbacks.ts b/project/src/callbacks/BuildsCallbacks.ts
index 10813db1..358522bf 100644
--- a/project/src/callbacks/BuildsCallbacks.ts
+++ b/project/src/callbacks/BuildsCallbacks.ts
@@ -1,4 +1,3 @@
-import { inject, injectable } from "tsyringe";
import { BuildController } from "@spt/controllers/BuildController";
import { ISetMagazineRequest } from "@spt/models/eft/builds/ISetMagazineRequest";
import { IEmptyRequestData } from "@spt/models/eft/common/IEmptyRequestData";
@@ -8,29 +7,26 @@ import { IPresetBuildActionRequestData } from "@spt/models/eft/presetBuild/IPres
import { IRemoveBuildRequestData } from "@spt/models/eft/presetBuild/IRemoveBuildRequestData";
import { IUserBuilds } from "@spt/models/eft/profile/ISptProfile";
import { HttpResponseUtil } from "@spt/utils/HttpResponseUtil";
+import { inject, injectable } from "tsyringe";
@injectable()
-export class BuildsCallbacks
-{
+export class BuildsCallbacks {
constructor(
@inject("HttpResponseUtil") protected httpResponse: HttpResponseUtil,
@inject("BuildController") protected buildController: BuildController,
- )
- {}
+ ) {}
/**
* Handle client/builds/list
*/
- public getBuilds(url: string, info: IEmptyRequestData, sessionID: string): IGetBodyResponseData
- {
+ public getBuilds(url: string, info: IEmptyRequestData, sessionID: string): IGetBodyResponseData {
return this.httpResponse.getBody(this.buildController.getUserBuilds(sessionID));
}
/**
* Handle client/builds/magazine/save
*/
- public createMagazineTemplate(url: string, request: ISetMagazineRequest, sessionID: string): INullResponseData
- {
+ public createMagazineTemplate(url: string, request: ISetMagazineRequest, sessionID: string): INullResponseData {
this.buildController.createMagazineTemplate(sessionID, request);
return this.httpResponse.nullResponse();
@@ -39,8 +35,7 @@ export class BuildsCallbacks
/**
* Handle client/builds/weapon/save
*/
- public setWeapon(url: string, info: IPresetBuildActionRequestData, sessionID: string): INullResponseData
- {
+ public setWeapon(url: string, info: IPresetBuildActionRequestData, sessionID: string): INullResponseData {
this.buildController.saveWeaponBuild(sessionID, info);
return this.httpResponse.nullResponse();
@@ -49,8 +44,7 @@ export class BuildsCallbacks
/**
* Handle client/builds/equipment/save
*/
- public setEquipment(url: string, info: IPresetBuildActionRequestData, sessionID: string): INullResponseData
- {
+ public setEquipment(url: string, info: IPresetBuildActionRequestData, sessionID: string): INullResponseData {
this.buildController.saveEquipmentBuild(sessionID, info);
return this.httpResponse.nullResponse();
@@ -59,8 +53,7 @@ export class BuildsCallbacks
/**
* Handle client/builds/delete
*/
- public deleteBuild(url: string, info: IRemoveBuildRequestData, sessionID: string): INullResponseData
- {
+ public deleteBuild(url: string, info: IRemoveBuildRequestData, sessionID: string): INullResponseData {
this.buildController.removeBuild(sessionID, info);
return this.httpResponse.nullResponse();
diff --git a/project/src/callbacks/BundleCallbacks.ts b/project/src/callbacks/BundleCallbacks.ts
index 7c42d529..07cbebf5 100644
--- a/project/src/callbacks/BundleCallbacks.ts
+++ b/project/src/callbacks/BundleCallbacks.ts
@@ -1,34 +1,30 @@
-import { inject, injectable } from "tsyringe";
import { BundleLoader } from "@spt/loaders/BundleLoader";
import { ConfigTypes } from "@spt/models/enums/ConfigTypes";
import { IHttpConfig } from "@spt/models/spt/config/IHttpConfig";
import { ConfigServer } from "@spt/servers/ConfigServer";
import { HttpResponseUtil } from "@spt/utils/HttpResponseUtil";
+import { inject, injectable } from "tsyringe";
@injectable()
-export class BundleCallbacks
-{
+export class BundleCallbacks {
protected httpConfig: IHttpConfig;
constructor(
@inject("HttpResponseUtil") protected httpResponse: HttpResponseUtil,
@inject("BundleLoader") protected bundleLoader: BundleLoader,
@inject("ConfigServer") protected configServer: ConfigServer,
- )
- {
+ ) {
this.httpConfig = this.configServer.getConfig(ConfigTypes.HTTP);
}
/**
* Handle singleplayer/bundles
*/
- public getBundles(url: string, info: any, sessionID: string): string
- {
+ public getBundles(url: string, info: any, sessionID: string): string {
return this.httpResponse.noBody(this.bundleLoader.getBundles());
}
- public getBundle(url: string, info: any, sessionID: string): string
- {
+ public getBundle(url: string, info: any, sessionID: string): string {
return "BUNDLE";
}
}
diff --git a/project/src/callbacks/ClientLogCallbacks.ts b/project/src/callbacks/ClientLogCallbacks.ts
index 47c0cb24..b88d4fbc 100644
--- a/project/src/callbacks/ClientLogCallbacks.ts
+++ b/project/src/callbacks/ClientLogCallbacks.ts
@@ -1,4 +1,3 @@
-import { inject, injectable } from "tsyringe";
import { ClientLogController } from "@spt/controllers/ClientLogController";
import { ModLoadOrder } from "@spt/loaders/ModLoadOrder";
import { INullResponseData } from "@spt/models/eft/httpResponse/INullResponseData";
@@ -8,25 +7,23 @@ import { IClientLogRequest } from "@spt/models/spt/logging/IClientLogRequest";
import { ConfigServer } from "@spt/servers/ConfigServer";
import { LocalisationService } from "@spt/services/LocalisationService";
import { HttpResponseUtil } from "@spt/utils/HttpResponseUtil";
+import { inject, injectable } from "tsyringe";
/** Handle client logging related events */
@injectable()
-export class ClientLogCallbacks
-{
+export class ClientLogCallbacks {
constructor(
@inject("HttpResponseUtil") protected httpResponse: HttpResponseUtil,
@inject("ClientLogController") protected clientLogController: ClientLogController,
@inject("ConfigServer") protected configServer: ConfigServer,
@inject("LocalisationService") protected localisationService: LocalisationService,
@inject("ModLoadOrder") protected modLoadOrder: ModLoadOrder,
- )
- {}
+ ) {}
/**
* Handle /singleplayer/log
*/
- public clientLog(url: string, info: IClientLogRequest, sessionID: string): INullResponseData
- {
+ public clientLog(url: string, info: IClientLogRequest, sessionID: string): INullResponseData {
this.clientLogController.clientLog(info);
return this.httpResponse.nullResponse();
}
@@ -34,8 +31,7 @@ export class ClientLogCallbacks
/**
* Handle /singleplayer/release
*/
- public releaseNotes(): string
- {
+ public releaseNotes(): string {
const data: IRelease = this.configServer.getConfig(ConfigTypes.CORE).release;
data.betaDisclaimerText = globalThis.G_MODS_ENABLED
@@ -62,8 +58,7 @@ export class ClientLogCallbacks
* Handle /singleplayer/enableBSGlogging
*/
- public bsgLogging(): string
- {
+ public bsgLogging(): string {
const data: IBsgLogging = this.configServer.getConfig(ConfigTypes.CORE).bsgLogging;
return this.httpResponse.noBody(data);
}
diff --git a/project/src/callbacks/CustomizationCallbacks.ts b/project/src/callbacks/CustomizationCallbacks.ts
index 6bc39b56..fe59eb4d 100644
--- a/project/src/callbacks/CustomizationCallbacks.ts
+++ b/project/src/callbacks/CustomizationCallbacks.ts
@@ -1,4 +1,3 @@
-import { inject, injectable } from "tsyringe";
import { CustomizationController } from "@spt/controllers/CustomizationController";
import { IEmptyRequestData } from "@spt/models/eft/common/IEmptyRequestData";
import { IPmcData } from "@spt/models/eft/common/IPmcData";
@@ -10,23 +9,21 @@ import { IGetBodyResponseData } from "@spt/models/eft/httpResponse/IGetBodyRespo
import { IItemEventRouterResponse } from "@spt/models/eft/itemEvent/IItemEventRouterResponse";
import { SaveServer } from "@spt/servers/SaveServer";
import { HttpResponseUtil } from "@spt/utils/HttpResponseUtil";
+import { inject, injectable } from "tsyringe";
@injectable()
-export class CustomizationCallbacks
-{
+export class CustomizationCallbacks {
constructor(
@inject("CustomizationController") protected customizationController: CustomizationController,
@inject("SaveServer") protected saveServer: SaveServer,
@inject("HttpResponseUtil") protected httpResponse: HttpResponseUtil,
- )
- {}
+ ) {}
/**
* Handle client/trading/customization/storage
* @returns IGetSuitsResponse
*/
- public getSuits(url: string, info: IEmptyRequestData, sessionID: string): IGetBodyResponseData
- {
+ public getSuits(url: string, info: IEmptyRequestData, sessionID: string): IGetBodyResponseData {
const result: IGetSuitsResponse = { _id: sessionID, suites: this.saveServer.getProfile(sessionID).suits };
return this.httpResponse.getBody(result);
}
@@ -35,8 +32,7 @@ export class CustomizationCallbacks
* Handle client/trading/customization
* @returns ISuit[]
*/
- public getTraderSuits(url: string, info: IEmptyRequestData, sessionID: string): IGetBodyResponseData
- {
+ public getTraderSuits(url: string, info: IEmptyRequestData, sessionID: string): IGetBodyResponseData {
const splittedUrl = url.split("/");
const traderID = splittedUrl[splittedUrl.length - 2];
@@ -50,16 +46,14 @@ export class CustomizationCallbacks
pmcData: IPmcData,
body: IWearClothingRequestData,
sessionID: string,
- ): IItemEventRouterResponse
- {
+ ): IItemEventRouterResponse {
return this.customizationController.wearClothing(pmcData, body, sessionID);
}
/**
* Handle CustomizationBuy event
*/
- public buyClothing(pmcData: IPmcData, body: IBuyClothingRequestData, sessionID: string): IItemEventRouterResponse
- {
+ public buyClothing(pmcData: IPmcData, body: IBuyClothingRequestData, sessionID: string): IItemEventRouterResponse {
return this.customizationController.buyClothing(pmcData, body, sessionID);
}
}
diff --git a/project/src/callbacks/DataCallbacks.ts b/project/src/callbacks/DataCallbacks.ts
index 24fb67ba..6a369347 100644
--- a/project/src/callbacks/DataCallbacks.ts
+++ b/project/src/callbacks/DataCallbacks.ts
@@ -1,4 +1,3 @@
-import { inject, injectable } from "tsyringe";
import { HideoutController } from "@spt/controllers/HideoutController";
import { RagfairController } from "@spt/controllers/RagfairController";
import { TraderHelper } from "@spt/helpers/TraderHelper";
@@ -17,13 +16,13 @@ import { ISettingsBase } from "@spt/models/spt/server/ISettingsBase";
import { DatabaseService } from "@spt/services/DatabaseService";
import { HttpResponseUtil } from "@spt/utils/HttpResponseUtil";
import { TimeUtil } from "@spt/utils/TimeUtil";
+import { inject, injectable } from "tsyringe";
/**
* Handle client requests
*/
@injectable()
-export class DataCallbacks
-{
+export class DataCallbacks {
constructor(
@inject("HttpResponseUtil") protected httpResponse: HttpResponseUtil,
@inject("TimeUtil") protected timeUtil: TimeUtil,
@@ -31,15 +30,13 @@ export class DataCallbacks
@inject("DatabaseService") protected databaseService: DatabaseService,
@inject("RagfairController") protected ragfairController: RagfairController,
@inject("HideoutController") protected hideoutController: HideoutController,
- )
- {}
+ ) {}
/**
* Handle client/settings
* @returns ISettingsBase
*/
- public getSettings(url: string, info: IEmptyRequestData, sessionID: string): IGetBodyResponseData
- {
+ public getSettings(url: string, info: IEmptyRequestData, sessionID: string): IGetBodyResponseData {
return this.httpResponse.getBody(this.databaseService.getSettings());
}
@@ -47,8 +44,7 @@ export class DataCallbacks
* Handle client/globals
* @returns IGlobals
*/
- public getGlobals(url: string, info: IEmptyRequestData, sessionID: string): IGetBodyResponseData
- {
+ public getGlobals(url: string, info: IEmptyRequestData, sessionID: string): IGetBodyResponseData {
const globals = this.databaseService.getGlobals();
globals.time = Date.now() / 1000;
@@ -59,8 +55,7 @@ export class DataCallbacks
* Handle client/items
* @returns string
*/
- public getTemplateItems(url: string, info: IEmptyRequestData, sessionID: string): string
- {
+ public getTemplateItems(url: string, info: IEmptyRequestData, sessionID: string): string {
return this.httpResponse.getUnclearedBody(this.databaseService.getItems());
}
@@ -72,8 +67,7 @@ export class DataCallbacks
url: string,
info: IEmptyRequestData,
sessionID: string,
- ): IGetBodyResponseData
- {
+ ): IGetBodyResponseData {
return this.httpResponse.getBody(this.databaseService.getHandbook());
}
@@ -85,8 +79,7 @@ export class DataCallbacks
url: string,
info: IEmptyRequestData,
sessionID: string,
- ): IGetBodyResponseData>
- {
+ ): IGetBodyResponseData> {
return this.httpResponse.getBody(this.databaseService.getTemplates().customization);
}
@@ -98,8 +91,7 @@ export class DataCallbacks
url: string,
info: IEmptyRequestData,
sessionID: string,
- ): IGetBodyResponseData
- {
+ ): IGetBodyResponseData {
return this.httpResponse.getBody(this.databaseService.getTemplates().character);
}
@@ -111,8 +103,7 @@ export class DataCallbacks
url: string,
info: IEmptyRequestData,
sessionID: string,
- ): IGetBodyResponseData
- {
+ ): IGetBodyResponseData {
return this.httpResponse.getBody(this.databaseService.getHideout().settings);
}
@@ -120,8 +111,7 @@ export class DataCallbacks
url: string,
info: IEmptyRequestData,
sessionID: string,
- ): IGetBodyResponseData
- {
+ ): IGetBodyResponseData {
return this.httpResponse.getBody(this.databaseService.getHideout().areas);
}
@@ -129,8 +119,7 @@ export class DataCallbacks
url: string,
info: IEmptyRequestData,
sessionID: string,
- ): IGetBodyResponseData
- {
+ ): IGetBodyResponseData {
return this.httpResponse.getBody(this.databaseService.getHideout().production);
}
@@ -138,8 +127,7 @@ export class DataCallbacks
url: string,
info: IEmptyRequestData,
sessionID: string,
- ): IGetBodyResponseData
- {
+ ): IGetBodyResponseData {
return this.httpResponse.getBody(this.databaseService.getHideout().scavcase);
}
@@ -150,27 +138,23 @@ export class DataCallbacks
url: string,
info: IEmptyRequestData,
sessionID: string,
- ): IGetBodyResponseData>
- {
+ ): IGetBodyResponseData> {
return this.httpResponse.getBody(this.databaseService.getLocales().languages);
}
/**
* Handle client/menu/locale
*/
- public getLocalesMenu(url: string, info: IEmptyRequestData, sessionID: string): IGetBodyResponseData
- {
+ public getLocalesMenu(url: string, info: IEmptyRequestData, sessionID: string): IGetBodyResponseData {
const localeId = url.replace("/client/menu/locale/", "");
const locales = this.databaseService.getLocales();
let result = locales.menu[localeId];
- if (result === undefined)
- {
+ if (result === undefined) {
result = locales.menu.en;
}
- if (result === undefined)
- throw new Error(`Unable to determine locale for request with '${localeId}'`);
+ if (result === undefined) throw new Error(`Unable to determine locale for request with '${localeId}'`);
return this.httpResponse.getBody(result);
}
@@ -178,14 +162,12 @@ export class DataCallbacks
/**
* Handle client/locale
*/
- public getLocalesGlobal(url: string, info: IEmptyRequestData, sessionID: string): string
- {
+ public getLocalesGlobal(url: string, info: IEmptyRequestData, sessionID: string): string {
const localeId = url.replace("/client/locale/", "");
const locales = this.databaseService.getLocales();
let result = locales.global[localeId];
- if (result === undefined)
- {
+ if (result === undefined) {
result = locales.global["en"];
}
@@ -195,8 +177,7 @@ export class DataCallbacks
/**
* Handle client/hideout/qte/list
*/
- public getQteList(url: string, info: IEmptyRequestData, sessionID: string): string
- {
+ public getQteList(url: string, info: IEmptyRequestData, sessionID: string): string {
return this.httpResponse.getUnclearedBody(this.hideoutController.getQteList(sessionID));
}
@@ -209,16 +190,14 @@ export class DataCallbacks
url: string,
info: IEmptyRequestData,
sessionID: string,
- ): IGetBodyResponseData
- {
+ ): IGetBodyResponseData {
const traderId = url.replace("/client/items/prices/", "");
// All traders share same item prices, unknown how to tell what items are shown for each trader
// Shown items listed are likely linked to traders items_buy/category array
const handbookPrices = this.ragfairController.getStaticPrices();
- const response: IGetItemPricesResponse
- = {
+ const response: IGetItemPricesResponse = {
supplyNextTime: this.traderHelper.getNextUpdateTimestamp(traderId),
prices: handbookPrices,
currencyCourses: {
diff --git a/project/src/callbacks/DialogueCallbacks.ts b/project/src/callbacks/DialogueCallbacks.ts
index 734cddcb..e5f0d59c 100644
--- a/project/src/callbacks/DialogueCallbacks.ts
+++ b/project/src/callbacks/DialogueCallbacks.ts
@@ -1,4 +1,3 @@
-import { inject, injectable } from "tsyringe";
import { DialogueController } from "@spt/controllers/DialogueController";
import { OnUpdate } from "@spt/di/OnUpdate";
import { IEmptyRequestData } from "@spt/models/eft/common/IEmptyRequestData";
@@ -36,17 +35,16 @@ import { DialogueInfo } from "@spt/models/eft/profile/ISptProfile";
import { HashUtil } from "@spt/utils/HashUtil";
import { HttpResponseUtil } from "@spt/utils/HttpResponseUtil";
import { TimeUtil } from "@spt/utils/TimeUtil";
+import { inject, injectable } from "tsyringe";
@injectable()
-export class DialogueCallbacks implements OnUpdate
-{
+export class DialogueCallbacks implements OnUpdate {
constructor(
@inject("HashUtil") protected hashUtil: HashUtil,
@inject("TimeUtil") protected timeUtil: TimeUtil,
@inject("HttpResponseUtil") protected httpResponse: HttpResponseUtil,
@inject("DialogueController") protected dialogueController: DialogueController,
- )
- {}
+ ) {}
/**
* Handle client/friend/list
@@ -56,8 +54,7 @@ export class DialogueCallbacks implements OnUpdate
url: string,
info: IEmptyRequestData,
sessionID: string,
- ): IGetBodyResponseData
- {
+ ): IGetBodyResponseData {
return this.httpResponse.getBody(this.dialogueController.getFriendList(sessionID));
}
@@ -69,8 +66,7 @@ export class DialogueCallbacks implements OnUpdate
url: string,
info: IGetChatServerListRequestData,
sessionID: string,
- ): IGetBodyResponseData
- {
+ ): IGetBodyResponseData {
const chatServer: IChatServer = {
_id: this.hashUtil.generate(),
RegistrationId: 20,
@@ -91,8 +87,7 @@ export class DialogueCallbacks implements OnUpdate
url: string,
info: IGetMailDialogListRequestData,
sessionID: string,
- ): IGetBodyResponseData
- {
+ ): IGetBodyResponseData {
return this.httpResponse.getBody(this.dialogueController.generateDialogueList(sessionID), 0, undefined, false);
}
@@ -101,8 +96,7 @@ export class DialogueCallbacks implements OnUpdate
url: string,
info: IGetMailDialogViewRequestData,
sessionID: string,
- ): IGetBodyResponseData
- {
+ ): IGetBodyResponseData {
return this.httpResponse.getBody(
this.dialogueController.generateDialogueView(info, sessionID),
0,
@@ -116,35 +110,30 @@ export class DialogueCallbacks implements OnUpdate
url: string,
info: IGetMailDialogInfoRequestData,
sessionID: string,
- ): IGetBodyResponseData
- {
+ ): IGetBodyResponseData {
return this.httpResponse.getBody(this.dialogueController.getDialogueInfo(info.dialogId, sessionID));
}
/** Handle client/mail/dialog/remove */
- public removeDialog(url: string, info: IRemoveDialogRequestData, sessionID: string): IGetBodyResponseData
- {
+ public removeDialog(url: string, info: IRemoveDialogRequestData, sessionID: string): IGetBodyResponseData {
this.dialogueController.removeDialogue(info.dialogId, sessionID);
return this.httpResponse.emptyArrayResponse();
}
/** Handle client/mail/dialog/pin */
- public pinDialog(url: string, info: IPinDialogRequestData, sessionID: string): IGetBodyResponseData
- {
+ public pinDialog(url: string, info: IPinDialogRequestData, sessionID: string): IGetBodyResponseData {
this.dialogueController.setDialoguePin(info.dialogId, true, sessionID);
return this.httpResponse.emptyArrayResponse();
}
/** Handle client/mail/dialog/unpin */
- public unpinDialog(url: string, info: IPinDialogRequestData, sessionID: string): IGetBodyResponseData
- {
+ public unpinDialog(url: string, info: IPinDialogRequestData, sessionID: string): IGetBodyResponseData {
this.dialogueController.setDialoguePin(info.dialogId, false, sessionID);
return this.httpResponse.emptyArrayResponse();
}
/** Handle client/mail/dialog/read */
- public setRead(url: string, info: ISetDialogReadRequestData, sessionID: string): IGetBodyResponseData
- {
+ public setRead(url: string, info: ISetDialogReadRequestData, sessionID: string): IGetBodyResponseData {
this.dialogueController.setRead(info.dialogs, sessionID);
return this.httpResponse.emptyArrayResponse();
}
@@ -157,28 +146,24 @@ export class DialogueCallbacks implements OnUpdate
url: string,
info: IGetAllAttachmentsRequestData,
sessionID: string,
- ): IGetBodyResponseData
- {
+ ): IGetBodyResponseData {
return this.httpResponse.getBody(this.dialogueController.getAllAttachments(info.dialogId, sessionID));
}
/** Handle client/mail/msg/send */
- public sendMessage(url: string, request: ISendMessageRequest, sessionID: string): IGetBodyResponseData
- {
+ public sendMessage(url: string, request: ISendMessageRequest, sessionID: string): IGetBodyResponseData {
return this.httpResponse.getBody(this.dialogueController.sendMessage(sessionID, request));
}
/** Handle client/friend/request/list/outbox */
- public listOutbox(url: string, info: IEmptyRequestData, sessionID: string): IGetBodyResponseData
- {
+ public listOutbox(url: string, info: IEmptyRequestData, sessionID: string): IGetBodyResponseData {
return this.httpResponse.getBody([]);
}
/**
* Handle client/friend/request/list/inbox
*/
- public listInbox(url: string, info: IEmptyRequestData, sessionID: string): IGetBodyResponseData
- {
+ public listInbox(url: string, info: IEmptyRequestData, sessionID: string): IGetBodyResponseData {
return this.httpResponse.getBody([]);
}
@@ -189,16 +174,14 @@ export class DialogueCallbacks implements OnUpdate
url: string,
request: IFriendRequestData,
sessionID: string,
- ): IGetBodyResponseData
- {
+ ): IGetBodyResponseData {
return this.httpResponse.getBody(this.dialogueController.sendFriendRequest(sessionID, request));
}
/**
* Handle client/friend/request/accept-all
*/
- public acceptAllFriendRequests(url: string, request: IEmptyRequestData, sessionID: string): INullResponseData
- {
+ public acceptAllFriendRequests(url: string, request: IEmptyRequestData, sessionID: string): INullResponseData {
return this.httpResponse.nullResponse();
}
@@ -209,8 +192,7 @@ export class DialogueCallbacks implements OnUpdate
url: string,
request: IAcceptFriendRequestData,
sessionID: string,
- ): IGetBodyResponseData
- {
+ ): IGetBodyResponseData {
return this.httpResponse.getBody(true);
}
@@ -221,8 +203,7 @@ export class DialogueCallbacks implements OnUpdate
url: string,
request: IDeclineFriendRequestData,
sessionID: string,
- ): IGetBodyResponseData
- {
+ ): IGetBodyResponseData {
return this.httpResponse.getBody(true);
}
@@ -233,41 +214,34 @@ export class DialogueCallbacks implements OnUpdate
url: string,
request: ICancelFriendRequestData,
sessionID: string,
- ): IGetBodyResponseData
- {
+ ): IGetBodyResponseData {
return this.httpResponse.getBody(true);
}
/** Handle client/friend/delete */
- public deleteFriend(url: string, request: IDeleteFriendRequest, sessionID: string): INullResponseData
- {
+ public deleteFriend(url: string, request: IDeleteFriendRequest, sessionID: string): INullResponseData {
return this.httpResponse.nullResponse();
}
/** Handle client/friend/ignore/set */
- public ignoreFriend(url: string, request: IUIDRequestData, sessionID: string): INullResponseData
- {
+ public ignoreFriend(url: string, request: IUIDRequestData, sessionID: string): INullResponseData {
return this.httpResponse.nullResponse();
}
/** Handle client/friend/ignore/remove */
- public unIgnoreFriend(url: string, request: IUIDRequestData, sessionID: string): INullResponseData
- {
+ public unIgnoreFriend(url: string, request: IUIDRequestData, sessionID: string): INullResponseData {
return this.httpResponse.nullResponse();
}
- public clearMail(url: string, request: IClearMailMessageRequest, sessionID: string): IGetBodyResponseData
- {
+ public clearMail(url: string, request: IClearMailMessageRequest, sessionID: string): IGetBodyResponseData {
return this.httpResponse.emptyArrayResponse();
}
- public removeMail(url: string, request: IRemoveMailMessageRequest, sessionID: string): IGetBodyResponseData
- {
+ public removeMail(url: string, request: IRemoveMailMessageRequest, sessionID: string): IGetBodyResponseData {
return this.httpResponse.emptyArrayResponse();
}
- public createGroupMail(url: string, info: ICreateGroupMailRequest, sessionID: string): IGetBodyResponseData
- {
+ public createGroupMail(url: string, info: ICreateGroupMailRequest, sessionID: string): IGetBodyResponseData {
return this.httpResponse.emptyArrayResponse();
}
@@ -275,13 +249,11 @@ export class DialogueCallbacks implements OnUpdate
url: string,
info: IChangeGroupMailOwnerRequest,
sessionID: string,
- ): IGetBodyResponseData
- {
+ ): IGetBodyResponseData {
throw new Error("Method not implemented.");
}
- public addUserToMail(url: string, info: IAddUserGroupMailRequest, sessionID: string): IGetBodyResponseData
- {
+ public addUserToMail(url: string, info: IAddUserGroupMailRequest, sessionID: string): IGetBodyResponseData {
throw new Error("Method not implemented.");
}
@@ -289,19 +261,16 @@ export class DialogueCallbacks implements OnUpdate
url: string,
info: IRemoveUserGroupMailRequest,
sessionID: string,
- ): IGetBodyResponseData
- {
+ ): IGetBodyResponseData {
throw new Error("Method not implemented.");
}
- public async onUpdate(timeSinceLastRun: number): Promise
- {
+ public async onUpdate(timeSinceLastRun: number): Promise {
this.dialogueController.update();
return true;
}
- public getRoute(): string
- {
+ public getRoute(): string {
return "spt-dialogue";
}
}
diff --git a/project/src/callbacks/GameCallbacks.ts b/project/src/callbacks/GameCallbacks.ts
index 115f7d94..6b898862 100644
--- a/project/src/callbacks/GameCallbacks.ts
+++ b/project/src/callbacks/GameCallbacks.ts
@@ -1,4 +1,3 @@
-import { inject, injectable } from "tsyringe";
import { GameController } from "@spt/controllers/GameController";
import { OnLoad } from "@spt/di/OnLoad";
import { IEmptyRequestData } from "@spt/models/eft/common/IEmptyRequestData";
@@ -21,25 +20,22 @@ import { INullResponseData } from "@spt/models/eft/httpResponse/INullResponseDat
import { SaveServer } from "@spt/servers/SaveServer";
import { HttpResponseUtil } from "@spt/utils/HttpResponseUtil";
import { Watermark } from "@spt/utils/Watermark";
+import { inject, injectable } from "tsyringe";
@injectable()
-export class GameCallbacks implements OnLoad
-{
+export class GameCallbacks implements OnLoad {
constructor(
@inject("HttpResponseUtil") protected httpResponse: HttpResponseUtil,
@inject("Watermark") protected watermark: Watermark,
@inject("SaveServer") protected saveServer: SaveServer,
@inject("GameController") protected gameController: GameController,
- )
- {}
+ ) {}
- public async onLoad(): Promise
- {
+ public async onLoad(): Promise {
this.gameController.load();
}
- public getRoute(): string
- {
+ public getRoute(): string {
return "spt-game";
}
@@ -47,8 +43,7 @@ export class GameCallbacks implements OnLoad
* Handle client/game/version/validate
* @returns INullResponseData
*/
- public versionValidate(url: string, info: IVersionValidateRequestData, sessionID: string): INullResponseData
- {
+ public versionValidate(url: string, info: IVersionValidateRequestData, sessionID: string): INullResponseData {
return this.httpResponse.nullResponse();
}
@@ -60,8 +55,7 @@ export class GameCallbacks implements OnLoad
url: string,
info: IEmptyRequestData,
sessionID: string,
- ): IGetBodyResponseData
- {
+ ): IGetBodyResponseData {
const today = new Date().toUTCString();
const startTimeStampMS = Date.parse(today);
this.gameController.gameStart(url, info, sessionID, startTimeStampMS);
@@ -77,8 +71,7 @@ export class GameCallbacks implements OnLoad
url: string,
info: IEmptyRequestData,
sessionID: string,
- ): IGetBodyResponseData
- {
+ ): IGetBodyResponseData {
this.saveServer.save();
return this.httpResponse.getBody({ status: "ok" });
}
@@ -91,8 +84,7 @@ export class GameCallbacks implements OnLoad
url: string,
info: IGameEmptyCrcRequestData,
sessionID: string,
- ): IGetBodyResponseData
- {
+ ): IGetBodyResponseData {
return this.httpResponse.getBody(this.gameController.getGameConfig(sessionID));
}
@@ -104,16 +96,14 @@ export class GameCallbacks implements OnLoad
url: string,
info: IGameModeRequestData,
sessionID: string,
- ): IGetBodyResponseData
- {
+ ): IGetBodyResponseData {
return this.httpResponse.getBody(this.gameController.getGameMode(sessionID, info));
}
/**
* Handle client/server/list
*/
- public getServer(url: string, info: IEmptyRequestData, sessionID: string): IGetBodyResponseData
- {
+ public getServer(url: string, info: IEmptyRequestData, sessionID: string): IGetBodyResponseData {
return this.httpResponse.getBody(this.gameController.getServer(sessionID));
}
@@ -124,8 +114,7 @@ export class GameCallbacks implements OnLoad
url: string,
info: IEmptyRequestData,
sessionID: string,
- ): IGetBodyResponseData
- {
+ ): IGetBodyResponseData {
return this.httpResponse.getBody(this.gameController.getCurrentGroup(sessionID));
}
@@ -136,8 +125,7 @@ export class GameCallbacks implements OnLoad
url: string,
info: IEmptyRequestData,
sessionID: string,
- ): IGetBodyResponseData
- {
+ ): IGetBodyResponseData {
return this.httpResponse.getBody(this.gameController.getValidGameVersion(sessionID));
}
@@ -149,8 +137,7 @@ export class GameCallbacks implements OnLoad
url: string,
info: IEmptyRequestData,
sessionID: string,
- ): IGetBodyResponseData
- {
+ ): IGetBodyResponseData {
return this.httpResponse.getBody(this.gameController.getKeepAlive(sessionID));
}
@@ -158,8 +145,7 @@ export class GameCallbacks implements OnLoad
* Handle singleplayer/settings/version
* @returns string
*/
- public getVersion(url: string, info: IEmptyRequestData, sessionID: string): string
- {
+ public getVersion(url: string, info: IEmptyRequestData, sessionID: string): string {
return this.httpResponse.noBody({ Version: this.watermark.getInGameVersionLabel() });
}
@@ -167,8 +153,7 @@ export class GameCallbacks implements OnLoad
* Handle /client/report/send & /client/reports/lobby/send
* @returns INullResponseData
*/
- public reportNickname(url: string, info: IUIDRequestData, sessionID: string): INullResponseData
- {
+ public reportNickname(url: string, info: IUIDRequestData, sessionID: string): INullResponseData {
return this.httpResponse.nullResponse();
}
@@ -176,8 +161,7 @@ export class GameCallbacks implements OnLoad
* Handle singleplayer/settings/getRaidTime
* @returns string
*/
- public getRaidTime(url: string, request: IGetRaidTimeRequest, sessionID: string): IGetRaidTimeResponse
- {
+ public getRaidTime(url: string, request: IGetRaidTimeRequest, sessionID: string): IGetRaidTimeResponse {
return this.httpResponse.noBody(this.gameController.getRaidTime(sessionID, request));
}
@@ -185,8 +169,7 @@ export class GameCallbacks implements OnLoad
* Handle /client/survey
* @returns INullResponseData
*/
- public getSurvey(url: string, request: IEmptyRequestData, sessionID: string): INullResponseData
- {
+ public getSurvey(url: string, request: IEmptyRequestData, sessionID: string): INullResponseData {
return this.httpResponse.nullResponse();
}
}
diff --git a/project/src/callbacks/HandbookCallbacks.ts b/project/src/callbacks/HandbookCallbacks.ts
index 84aefa2b..616a1f86 100644
--- a/project/src/callbacks/HandbookCallbacks.ts
+++ b/project/src/callbacks/HandbookCallbacks.ts
@@ -1,20 +1,16 @@
-import { inject, injectable } from "tsyringe";
import { HandbookController } from "@spt/controllers/HandbookController";
import { OnLoad } from "@spt/di/OnLoad";
+import { inject, injectable } from "tsyringe";
@injectable()
-export class HandbookCallbacks implements OnLoad
-{
- constructor(@inject("HandbookController") protected handbookController: HandbookController)
- {}
+export class HandbookCallbacks implements OnLoad {
+ constructor(@inject("HandbookController") protected handbookController: HandbookController) {}
- public async onLoad(): Promise
- {
+ public async onLoad(): Promise {
this.handbookController.load();
}
- public getRoute(): string
- {
+ public getRoute(): string {
return "spt-handbook";
}
}
diff --git a/project/src/callbacks/HealthCallbacks.ts b/project/src/callbacks/HealthCallbacks.ts
index f3ff21ca..f473cdc0 100644
--- a/project/src/callbacks/HealthCallbacks.ts
+++ b/project/src/callbacks/HealthCallbacks.ts
@@ -1,4 +1,3 @@
-import { inject, injectable } from "tsyringe";
import { HealthController } from "@spt/controllers/HealthController";
import { ProfileHelper } from "@spt/helpers/ProfileHelper";
import { IPmcData } from "@spt/models/eft/common/IPmcData";
@@ -10,16 +9,15 @@ import { IWorkoutData } from "@spt/models/eft/health/IWorkoutData";
import { IGetBodyResponseData } from "@spt/models/eft/httpResponse/IGetBodyResponseData";
import { IItemEventRouterResponse } from "@spt/models/eft/itemEvent/IItemEventRouterResponse";
import { HttpResponseUtil } from "@spt/utils/HttpResponseUtil";
+import { inject, injectable } from "tsyringe";
@injectable()
-export class HealthCallbacks
-{
+export class HealthCallbacks {
constructor(
@inject("HttpResponseUtil") protected httpResponse: HttpResponseUtil,
@inject("ProfileHelper") protected profileHelper: ProfileHelper,
@inject("HealthController") protected healthController: HealthController,
- )
- {}
+ ) {}
/**
* Custom spt server request found in modules/HealthSynchronizer.cs
@@ -28,8 +26,7 @@ export class HealthCallbacks
* @param sessionID session id
* @returns empty response, no data sent back to client
*/
- public syncHealth(url: string, info: ISyncHealthRequestData, sessionID: string): IGetBodyResponseData
- {
+ public syncHealth(url: string, info: ISyncHealthRequestData, sessionID: string): IGetBodyResponseData {
this.healthController.saveVitality(this.profileHelper.getPmcProfile(sessionID), info, sessionID);
return this.httpResponse.emptyResponse();
}
@@ -41,8 +38,7 @@ export class HealthCallbacks
* @param sessionID session id
* @returns empty response, no data sent back to client
*/
- public handleWorkoutEffects(url: string, info: IWorkoutData, sessionID: string): IGetBodyResponseData
- {
+ public handleWorkoutEffects(url: string, info: IWorkoutData, sessionID: string): IGetBodyResponseData {
this.healthController.applyWorkoutChanges(this.profileHelper.getPmcProfile(sessionID), info, sessionID);
return this.httpResponse.emptyResponse();
}
@@ -51,8 +47,7 @@ export class HealthCallbacks
* Handle Eat
* @returns IItemEventRouterResponse
*/
- public offraidEat(pmcData: IPmcData, body: IOffraidEatRequestData, sessionID: string): IItemEventRouterResponse
- {
+ public offraidEat(pmcData: IPmcData, body: IOffraidEatRequestData, sessionID: string): IItemEventRouterResponse {
return this.healthController.offraidEat(pmcData, body, sessionID);
}
@@ -60,8 +55,7 @@ export class HealthCallbacks
* Handle Heal
* @returns IItemEventRouterResponse
*/
- public offraidHeal(pmcData: IPmcData, body: IOffraidHealRequestData, sessionID: string): IItemEventRouterResponse
- {
+ public offraidHeal(pmcData: IPmcData, body: IOffraidHealRequestData, sessionID: string): IItemEventRouterResponse {
return this.healthController.offraidHeal(pmcData, body, sessionID);
}
@@ -73,8 +67,7 @@ export class HealthCallbacks
pmcData: IPmcData,
info: IHealthTreatmentRequestData,
sessionID: string,
- ): IItemEventRouterResponse
- {
+ ): IItemEventRouterResponse {
return this.healthController.healthTreatment(pmcData, info, sessionID);
}
}
diff --git a/project/src/callbacks/HideoutCallbacks.ts b/project/src/callbacks/HideoutCallbacks.ts
index 8b076a9e..f40b7bec 100644
--- a/project/src/callbacks/HideoutCallbacks.ts
+++ b/project/src/callbacks/HideoutCallbacks.ts
@@ -1,4 +1,3 @@
-import { inject, injectable } from "tsyringe";
import { HideoutController } from "@spt/controllers/HideoutController";
import { OnUpdate } from "@spt/di/OnUpdate";
import { IPmcData } from "@spt/models/eft/common/IPmcData";
@@ -19,17 +18,16 @@ import { IItemEventRouterResponse } from "@spt/models/eft/itemEvent/IItemEventRo
import { ConfigTypes } from "@spt/models/enums/ConfigTypes";
import { IHideoutConfig } from "@spt/models/spt/config/IHideoutConfig";
import { ConfigServer } from "@spt/servers/ConfigServer";
+import { inject, injectable } from "tsyringe";
@injectable()
-export class HideoutCallbacks implements OnUpdate
-{
+export class HideoutCallbacks implements OnUpdate {
protected hideoutConfig: IHideoutConfig;
constructor(
@inject("HideoutController") protected hideoutController: HideoutController, // TODO: delay needed
@inject("ConfigServer") protected configServer: ConfigServer,
- )
- {
+ ) {
this.hideoutConfig = this.configServer.getConfig(ConfigTypes.HIDEOUT);
}
@@ -41,8 +39,7 @@ export class HideoutCallbacks implements OnUpdate
body: IHideoutUpgradeRequestData,
sessionID: string,
output: IItemEventRouterResponse,
- ): IItemEventRouterResponse
- {
+ ): IItemEventRouterResponse {
this.hideoutController.startUpgrade(pmcData, body, sessionID, output);
return output;
@@ -56,8 +53,7 @@ export class HideoutCallbacks implements OnUpdate
body: IHideoutUpgradeCompleteRequestData,
sessionID: string,
output: IItemEventRouterResponse,
- ): IItemEventRouterResponse
- {
+ ): IItemEventRouterResponse {
this.hideoutController.upgradeComplete(pmcData, body, sessionID, output);
return output;
@@ -70,8 +66,7 @@ export class HideoutCallbacks implements OnUpdate
pmcData: IPmcData,
body: IHideoutPutItemInRequestData,
sessionID: string,
- ): IItemEventRouterResponse
- {
+ ): IItemEventRouterResponse {
return this.hideoutController.putItemsInAreaSlots(pmcData, body, sessionID);
}
@@ -82,8 +77,7 @@ export class HideoutCallbacks implements OnUpdate
pmcData: IPmcData,
body: IHideoutTakeItemOutRequestData,
sessionID: string,
- ): IItemEventRouterResponse
- {
+ ): IItemEventRouterResponse {
return this.hideoutController.takeItemsFromAreaSlots(pmcData, body, sessionID);
}
@@ -94,8 +88,7 @@ export class HideoutCallbacks implements OnUpdate
pmcData: IPmcData,
body: IHideoutToggleAreaRequestData,
sessionID: string,
- ): IItemEventRouterResponse
- {
+ ): IItemEventRouterResponse {
return this.hideoutController.toggleArea(pmcData, body, sessionID);
}
@@ -106,8 +99,7 @@ export class HideoutCallbacks implements OnUpdate
pmcData: IPmcData,
body: IHideoutSingleProductionStartRequestData,
sessionID: string,
- ): IItemEventRouterResponse
- {
+ ): IItemEventRouterResponse {
return this.hideoutController.singleProductionStart(pmcData, body, sessionID);
}
@@ -118,8 +110,7 @@ export class HideoutCallbacks implements OnUpdate
pmcData: IPmcData,
body: IHideoutScavCaseStartRequestData,
sessionID: string,
- ): IItemEventRouterResponse
- {
+ ): IItemEventRouterResponse {
return this.hideoutController.scavCaseProductionStart(pmcData, body, sessionID);
}
@@ -130,8 +121,7 @@ export class HideoutCallbacks implements OnUpdate
pmcData: IPmcData,
body: IHideoutContinuousProductionStartRequestData,
sessionID: string,
- ): IItemEventRouterResponse
- {
+ ): IItemEventRouterResponse {
return this.hideoutController.continuousProductionStart(pmcData, body, sessionID);
}
@@ -142,8 +132,7 @@ export class HideoutCallbacks implements OnUpdate
pmcData: IPmcData,
body: IHideoutTakeProductionRequestData,
sessionID: string,
- ): IItemEventRouterResponse
- {
+ ): IItemEventRouterResponse {
return this.hideoutController.takeProduction(pmcData, body, sessionID);
}
@@ -155,8 +144,7 @@ export class HideoutCallbacks implements OnUpdate
request: IHandleQTEEventRequestData,
sessionId: string,
output: IItemEventRouterResponse,
- ): IItemEventRouterResponse
- {
+ ): IItemEventRouterResponse {
this.hideoutController.handleQTEEventOutcome(sessionId, pmcData, request, output);
return output;
@@ -170,8 +158,7 @@ export class HideoutCallbacks implements OnUpdate
request: IRecordShootingRangePoints,
sessionId: string,
output: IItemEventRouterResponse,
- ): IItemEventRouterResponse
- {
+ ): IItemEventRouterResponse {
this.hideoutController.recordShootingRangePoints(sessionId, pmcData, request);
return output;
@@ -184,8 +171,7 @@ export class HideoutCallbacks implements OnUpdate
pmcData: IPmcData,
request: IHideoutImproveAreaRequestData,
sessionId: string,
- ): IItemEventRouterResponse
- {
+ ): IItemEventRouterResponse {
return this.hideoutController.improveArea(sessionId, pmcData, request);
}
@@ -196,23 +182,19 @@ export class HideoutCallbacks implements OnUpdate
pmcData: IPmcData,
request: IHideoutCancelProductionRequestData,
sessionId: string,
- ): IItemEventRouterResponse
- {
+ ): IItemEventRouterResponse {
return this.hideoutController.cancelProduction(sessionId, pmcData, request);
}
- public async onUpdate(timeSinceLastRun: number): Promise
- {
- if (timeSinceLastRun > this.hideoutConfig.runIntervalSeconds)
- {
+ public async onUpdate(timeSinceLastRun: number): Promise {
+ if (timeSinceLastRun > this.hideoutConfig.runIntervalSeconds) {
this.hideoutController.update();
return true;
}
return false;
}
- public getRoute(): string
- {
+ public getRoute(): string {
return "spt-hideout";
}
}
diff --git a/project/src/callbacks/HttpCallbacks.ts b/project/src/callbacks/HttpCallbacks.ts
index a378126c..d1d2bffa 100644
--- a/project/src/callbacks/HttpCallbacks.ts
+++ b/project/src/callbacks/HttpCallbacks.ts
@@ -1,25 +1,20 @@
-import { inject, injectable } from "tsyringe";
import { OnLoad } from "@spt/di/OnLoad";
import { HttpServer } from "@spt/servers/HttpServer";
+import { inject, injectable } from "tsyringe";
@injectable()
-export class HttpCallbacks implements OnLoad
-{
- constructor(@inject("HttpServer") protected httpServer: HttpServer)
- {}
+export class HttpCallbacks implements OnLoad {
+ constructor(@inject("HttpServer") protected httpServer: HttpServer) {}
- public async onLoad(): Promise
- {
+ public async onLoad(): Promise {
this.httpServer.load();
}
- public getRoute(): string
- {
+ public getRoute(): string {
return "spt-http";
}
- public getImage(): string
- {
+ public getImage(): string {
return "";
}
}
diff --git a/project/src/callbacks/InraidCallbacks.ts b/project/src/callbacks/InraidCallbacks.ts
index daa01673..881a251f 100644
--- a/project/src/callbacks/InraidCallbacks.ts
+++ b/project/src/callbacks/InraidCallbacks.ts
@@ -1,22 +1,20 @@
-import { inject, injectable } from "tsyringe";
import { InraidController } from "@spt/controllers/InraidController";
import { IEmptyRequestData } from "@spt/models/eft/common/IEmptyRequestData";
import { INullResponseData } from "@spt/models/eft/httpResponse/INullResponseData";
import { IRegisterPlayerRequestData } from "@spt/models/eft/inRaid/IRegisterPlayerRequestData";
import { IScavSaveRequestData } from "@spt/models/eft/inRaid/IScavSaveRequestData";
import { HttpResponseUtil } from "@spt/utils/HttpResponseUtil";
+import { inject, injectable } from "tsyringe";
/**
* Handle client requests
*/
@injectable()
-export class InraidCallbacks
-{
+export class InraidCallbacks {
constructor(
@inject("InraidController") protected inraidController: InraidController,
@inject("HttpResponseUtil") protected httpResponse: HttpResponseUtil,
- )
- {}
+ ) {}
/**
* Handle client/location/getLocalloot
@@ -26,8 +24,7 @@ export class InraidCallbacks
* @param sessionID Session id
* @returns Null http response
*/
- public registerPlayer(url: string, info: IRegisterPlayerRequestData, sessionID: string): INullResponseData
- {
+ public registerPlayer(url: string, info: IRegisterPlayerRequestData, sessionID: string): INullResponseData {
this.inraidController.addPlayer(sessionID, info);
return this.httpResponse.nullResponse();
}
@@ -39,8 +36,7 @@ export class InraidCallbacks
* @param sessionID Session id
* @returns Null http response
*/
- public saveProgress(url: string, info: IScavSaveRequestData, sessionID: string): INullResponseData
- {
+ public saveProgress(url: string, info: IScavSaveRequestData, sessionID: string): INullResponseData {
this.inraidController.savePostRaidProfileForScav(info, sessionID);
return this.httpResponse.nullResponse();
}
@@ -50,8 +46,7 @@ export class InraidCallbacks
* Handle singleplayer/settings/raid/endstate
* @returns
*/
- public getRaidEndState(): string
- {
+ public getRaidEndState(): string {
return this.httpResponse.noBody(this.inraidController.getInraidConfig().MIAOnRaidEnd);
}
@@ -59,18 +54,15 @@ export class InraidCallbacks
* Handle singleplayer/settings/raid/menu
* @returns JSON as string
*/
- public getRaidMenuSettings(): string
- {
+ public getRaidMenuSettings(): string {
return this.httpResponse.noBody(this.inraidController.getInraidConfig().raidMenuSettings);
}
- public getTraitorScavHostileChance(url: string, info: IEmptyRequestData, sessionId: string): string
- {
+ public getTraitorScavHostileChance(url: string, info: IEmptyRequestData, sessionId: string): string {
return this.httpResponse.noBody(this.inraidController.getTraitorScavHostileChance(url, sessionId));
}
- public getBossConvertSettings(url: string, info: IEmptyRequestData, sessionId: string): string
- {
+ public getBossConvertSettings(url: string, info: IEmptyRequestData, sessionId: string): string {
return this.httpResponse.noBody(this.inraidController.getBossConvertSettings(url, sessionId));
}
}
diff --git a/project/src/callbacks/InsuranceCallbacks.ts b/project/src/callbacks/InsuranceCallbacks.ts
index 39786771..16728763 100644
--- a/project/src/callbacks/InsuranceCallbacks.ts
+++ b/project/src/callbacks/InsuranceCallbacks.ts
@@ -1,4 +1,3 @@
-import { inject, injectable } from "tsyringe";
import { InsuranceController } from "@spt/controllers/InsuranceController";
import { OnUpdate } from "@spt/di/OnUpdate";
import { IPmcData } from "@spt/models/eft/common/IPmcData";
@@ -12,18 +11,17 @@ import { IInsuranceConfig } from "@spt/models/spt/config/IInsuranceConfig";
import { ConfigServer } from "@spt/servers/ConfigServer";
import { InsuranceService } from "@spt/services/InsuranceService";
import { HttpResponseUtil } from "@spt/utils/HttpResponseUtil";
+import { inject, injectable } from "tsyringe";
@injectable()
-export class InsuranceCallbacks implements OnUpdate
-{
+export class InsuranceCallbacks implements OnUpdate {
protected insuranceConfig: IInsuranceConfig;
constructor(
@inject("InsuranceController") protected insuranceController: InsuranceController,
@inject("InsuranceService") protected insuranceService: InsuranceService,
@inject("HttpResponseUtil") protected httpResponse: HttpResponseUtil,
@inject("ConfigServer") protected configServer: ConfigServer,
- )
- {
+ ) {
this.insuranceConfig = this.configServer.getConfig(ConfigTypes.INSURANCE);
}
@@ -35,8 +33,7 @@ export class InsuranceCallbacks implements OnUpdate
url: string,
info: IGetInsuranceCostRequestData,
sessionID: string,
- ): IGetBodyResponseData
- {
+ ): IGetBodyResponseData {
return this.httpResponse.getBody(this.insuranceController.cost(info, sessionID));
}
@@ -44,24 +41,20 @@ export class InsuranceCallbacks implements OnUpdate
* Handle Insure event
* @returns IItemEventRouterResponse
*/
- public insure(pmcData: IPmcData, body: IInsureRequestData, sessionID: string): IItemEventRouterResponse
- {
+ public insure(pmcData: IPmcData, body: IInsureRequestData, sessionID: string): IItemEventRouterResponse {
return this.insuranceController.insure(pmcData, body, sessionID);
}
- public async onUpdate(secondsSinceLastRun: number): Promise
- {
+ public async onUpdate(secondsSinceLastRun: number): Promise {
// People edit the config value to be 0 and break it, force value to no lower than 1
- if (secondsSinceLastRun > Math.max(this.insuranceConfig.runIntervalSeconds, 1))
- {
+ if (secondsSinceLastRun > Math.max(this.insuranceConfig.runIntervalSeconds, 1)) {
this.insuranceController.processReturn();
return true;
}
return false;
}
- public getRoute(): string
- {
+ public getRoute(): string {
return "spt-insurance";
}
}
diff --git a/project/src/callbacks/InventoryCallbacks.ts b/project/src/callbacks/InventoryCallbacks.ts
index fb7546f1..5014b2bc 100644
--- a/project/src/callbacks/InventoryCallbacks.ts
+++ b/project/src/callbacks/InventoryCallbacks.ts
@@ -1,4 +1,3 @@
-import { inject, injectable } from "tsyringe";
import { InventoryController } from "@spt/controllers/InventoryController";
import { QuestController } from "@spt/controllers/QuestController";
import { IPmcData } from "@spt/models/eft/common/IPmcData";
@@ -23,15 +22,14 @@ import { IRedeemProfileRequestData } from "@spt/models/eft/inventory/IRedeemProf
import { ISetFavoriteItems } from "@spt/models/eft/inventory/ISetFavoriteItems";
import { IItemEventRouterResponse } from "@spt/models/eft/itemEvent/IItemEventRouterResponse";
import { IFailQuestRequestData } from "@spt/models/eft/quests/IFailQuestRequestData";
+import { inject, injectable } from "tsyringe";
@injectable()
-export class InventoryCallbacks
-{
+export class InventoryCallbacks {
constructor(
@inject("InventoryController") protected inventoryController: InventoryController,
@inject("QuestController") protected questController: QuestController,
- )
- {}
+ ) {}
/** Handle client/game/profile/items/moving Move event */
public moveItem(
@@ -39,8 +37,7 @@ export class InventoryCallbacks
body: IInventoryMoveRequestData,
sessionID: string,
output: IItemEventRouterResponse,
- ): IItemEventRouterResponse
- {
+ ): IItemEventRouterResponse {
this.inventoryController.moveItem(pmcData, body, sessionID, output);
return output;
@@ -52,8 +49,7 @@ export class InventoryCallbacks
body: IInventoryRemoveRequestData,
sessionID: string,
output: IItemEventRouterResponse,
- ): IItemEventRouterResponse
- {
+ ): IItemEventRouterResponse {
this.inventoryController.discardItem(pmcData, body, sessionID, output);
return output;
@@ -65,8 +61,7 @@ export class InventoryCallbacks
body: IInventorySplitRequestData,
sessionID: string,
output: IItemEventRouterResponse,
- ): IItemEventRouterResponse
- {
+ ): IItemEventRouterResponse {
return this.inventoryController.splitItem(pmcData, body, sessionID, output);
}
@@ -75,8 +70,7 @@ export class InventoryCallbacks
body: IInventoryMergeRequestData,
sessionID: string,
output: IItemEventRouterResponse,
- ): IItemEventRouterResponse
- {
+ ): IItemEventRouterResponse {
return this.inventoryController.mergeItem(pmcData, body, sessionID, output);
}
@@ -85,20 +79,17 @@ export class InventoryCallbacks
request: IInventoryTransferRequestData,
sessionID: string,
output: IItemEventRouterResponse,
- ): IItemEventRouterResponse
- {
+ ): IItemEventRouterResponse {
return this.inventoryController.transferItem(pmcData, request, sessionID, output);
}
/** Handle Swap */
// TODO: how is this triggered
- public swapItem(pmcData: IPmcData, body: IInventorySwapRequestData, sessionID: string): IItemEventRouterResponse
- {
+ public swapItem(pmcData: IPmcData, body: IInventorySwapRequestData, sessionID: string): IItemEventRouterResponse {
return this.inventoryController.swapItem(pmcData, body, sessionID);
}
- public foldItem(pmcData: IPmcData, body: IInventoryFoldRequestData, sessionID: string): IItemEventRouterResponse
- {
+ public foldItem(pmcData: IPmcData, body: IInventoryFoldRequestData, sessionID: string): IItemEventRouterResponse {
return this.inventoryController.foldItem(pmcData, body, sessionID);
}
@@ -106,13 +97,11 @@ export class InventoryCallbacks
pmcData: IPmcData,
body: IInventoryToggleRequestData,
sessionID: string,
- ): IItemEventRouterResponse
- {
+ ): IItemEventRouterResponse {
return this.inventoryController.toggleItem(pmcData, body, sessionID);
}
- public tagItem(pmcData: IPmcData, body: IInventoryTagRequestData, sessionID: string): IItemEventRouterResponse
- {
+ public tagItem(pmcData: IPmcData, body: IInventoryTagRequestData, sessionID: string): IItemEventRouterResponse {
return this.inventoryController.tagItem(pmcData, body, sessionID);
}
@@ -121,8 +110,7 @@ export class InventoryCallbacks
body: IInventoryBindRequestData,
sessionID: string,
output: IItemEventRouterResponse,
- ): IItemEventRouterResponse
- {
+ ): IItemEventRouterResponse {
this.inventoryController.bindItem(pmcData, body, sessionID);
return output;
@@ -133,8 +121,7 @@ export class InventoryCallbacks
body: IInventoryBindRequestData,
sessionID: string,
output: IItemEventRouterResponse,
- ): IItemEventRouterResponse
- {
+ ): IItemEventRouterResponse {
this.inventoryController.unbindItem(pmcData, body, sessionID, output);
return output;
@@ -145,8 +132,7 @@ export class InventoryCallbacks
body: IInventoryExamineRequestData,
sessionID: string,
output: IItemEventRouterResponse,
- ): IItemEventRouterResponse
- {
+ ): IItemEventRouterResponse {
return this.inventoryController.examineItem(pmcData, body, sessionID, output);
}
@@ -155,8 +141,7 @@ export class InventoryCallbacks
pmcData: IPmcData,
body: IInventoryReadEncyclopediaRequestData,
sessionID: string,
- ): IItemEventRouterResponse
- {
+ ): IItemEventRouterResponse {
return this.inventoryController.readEncyclopedia(pmcData, body, sessionID);
}
@@ -166,8 +151,7 @@ export class InventoryCallbacks
body: IInventorySortRequestData,
sessionID: string,
output: IItemEventRouterResponse,
- ): IItemEventRouterResponse
- {
+ ): IItemEventRouterResponse {
this.inventoryController.sortInventory(pmcData, body, sessionID);
return output;
@@ -178,8 +162,7 @@ export class InventoryCallbacks
body: IInventoryCreateMarkerRequestData,
sessionID: string,
output: IItemEventRouterResponse,
- ): IItemEventRouterResponse
- {
+ ): IItemEventRouterResponse {
this.inventoryController.createMapMarker(pmcData, body, sessionID, output);
return output;
@@ -190,8 +173,7 @@ export class InventoryCallbacks
body: IInventoryDeleteMarkerRequestData,
sessionID: string,
output: IItemEventRouterResponse,
- ): IItemEventRouterResponse
- {
+ ): IItemEventRouterResponse {
this.inventoryController.deleteMapMarker(pmcData, body, sessionID, output);
return output;
@@ -202,8 +184,7 @@ export class InventoryCallbacks
body: IInventoryEditMarkerRequestData,
sessionID: string,
output: IItemEventRouterResponse,
- ): IItemEventRouterResponse
- {
+ ): IItemEventRouterResponse {
this.inventoryController.editMapMarker(pmcData, body, sessionID, output);
return output;
@@ -215,8 +196,7 @@ export class InventoryCallbacks
body: IOpenRandomLootContainerRequestData,
sessionID: string,
output: IItemEventRouterResponse,
- ): IItemEventRouterResponse
- {
+ ): IItemEventRouterResponse {
this.inventoryController.openRandomLootContainer(pmcData, body, sessionID, output);
return output;
@@ -227,8 +207,7 @@ export class InventoryCallbacks
body: IRedeemProfileRequestData,
sessionId: string,
output: IItemEventRouterResponse,
- ): IItemEventRouterResponse
- {
+ ): IItemEventRouterResponse {
this.inventoryController.redeemProfileReward(pmcData, body, sessionId);
return output;
@@ -239,8 +218,7 @@ export class InventoryCallbacks
body: ISetFavoriteItems,
sessionId: string,
output: IItemEventRouterResponse,
- ): IItemEventRouterResponse
- {
+ ): IItemEventRouterResponse {
this.inventoryController.setFavoriteItem(pmcData, body, sessionId);
return output;
@@ -255,8 +233,7 @@ export class InventoryCallbacks
request: IFailQuestRequestData,
sessionID: string,
output: IItemEventRouterResponse,
- ): IItemEventRouterResponse
- {
+ ): IItemEventRouterResponse {
return this.questController.failQuest(pmcData, request, sessionID, output);
}
}
diff --git a/project/src/callbacks/ItemEventCallbacks.ts b/project/src/callbacks/ItemEventCallbacks.ts
index 96da162a..ee02539e 100644
--- a/project/src/callbacks/ItemEventCallbacks.ts
+++ b/project/src/callbacks/ItemEventCallbacks.ts
@@ -1,4 +1,3 @@
-import { inject, injectable } from "tsyringe";
import { IGetBodyResponseData } from "@spt/models/eft/httpResponse/IGetBodyResponseData";
import { Warning } from "@spt/models/eft/itemEvent/IItemEventRouterBase";
import { IItemEventRouterRequest } from "@spt/models/eft/itemEvent/IItemEventRouterRequest";
@@ -6,29 +5,27 @@ import { IItemEventRouterResponse } from "@spt/models/eft/itemEvent/IItemEventRo
import { BackendErrorCodes } from "@spt/models/enums/BackendErrorCodes";
import { ItemEventRouter } from "@spt/routers/ItemEventRouter";
import { HttpResponseUtil } from "@spt/utils/HttpResponseUtil";
+import { inject, injectable } from "tsyringe";
@injectable()
-export class ItemEventCallbacks
-{
+export class ItemEventCallbacks {
constructor(
@inject("HttpResponseUtil") protected httpResponse: HttpResponseUtil,
@inject("ItemEventRouter") protected itemEventRouter: ItemEventRouter,
- )
- {}
+ ) {}
public async handleEvents(
url: string,
info: IItemEventRouterRequest,
sessionID: string,
- ): Promise>
- {
+ ): Promise> {
const eventResponse = await this.itemEventRouter.handleEvents(info, sessionID);
const result = this.isCriticalError(eventResponse.warnings)
? this.httpResponse.getBody(
- eventResponse,
- this.getErrorCode(eventResponse.warnings),
- eventResponse.warnings[0].errmsg,
- )
+ eventResponse,
+ this.getErrorCode(eventResponse.warnings),
+ eventResponse.warnings[0].errmsg,
+ )
: this.httpResponse.getBody(eventResponse);
return result;
@@ -39,15 +36,12 @@ export class ItemEventCallbacks
* @param warnings The list of warnings to check for critical errors
* @returns
*/
- private isCriticalError(warnings: Warning[]): boolean
- {
+ private isCriticalError(warnings: Warning[]): boolean {
// List of non-critical error codes, we return true if any error NOT included is passed in
const nonCriticalErrorCodes: BackendErrorCodes[] = [BackendErrorCodes.NOTENOUGHSPACE];
- for (const warning of warnings)
- {
- if (!nonCriticalErrorCodes.includes(+(warning?.code ?? "0")))
- {
+ for (const warning of warnings) {
+ if (!nonCriticalErrorCodes.includes(+(warning?.code ?? "0"))) {
return true;
}
}
@@ -55,10 +49,8 @@ export class ItemEventCallbacks
return false;
}
- protected getErrorCode(warnings: Warning[]): number
- {
- if (warnings[0]?.code)
- {
+ protected getErrorCode(warnings: Warning[]): number {
+ if (warnings[0]?.code) {
return Number(warnings[0].code);
}
return BackendErrorCodes.UNKNOWN_ERROR;
diff --git a/project/src/callbacks/LauncherCallbacks.ts b/project/src/callbacks/LauncherCallbacks.ts
index 6324f5fb..e60cc5f1 100644
--- a/project/src/callbacks/LauncherCallbacks.ts
+++ b/project/src/callbacks/LauncherCallbacks.ts
@@ -1,4 +1,3 @@
-import { inject, injectable } from "tsyringe";
import { LauncherController } from "@spt/controllers/LauncherController";
import { IEmptyRequestData } from "@spt/models/eft/common/IEmptyRequestData";
import { IChangeRequestData } from "@spt/models/eft/launcher/IChangeRequestData";
@@ -8,86 +7,72 @@ import { IRemoveProfileData } from "@spt/models/eft/launcher/IRemoveProfileData"
import { SaveServer } from "@spt/servers/SaveServer";
import { HttpResponseUtil } from "@spt/utils/HttpResponseUtil";
import { Watermark } from "@spt/utils/Watermark";
+import { inject, injectable } from "tsyringe";
@injectable()
-export class LauncherCallbacks
-{
+export class LauncherCallbacks {
constructor(
@inject("HttpResponseUtil") protected httpResponse: HttpResponseUtil,
@inject("LauncherController") protected launcherController: LauncherController,
@inject("SaveServer") protected saveServer: SaveServer,
@inject("Watermark") protected watermark: Watermark,
- )
- {}
+ ) {}
- public connect(): string
- {
+ public connect(): string {
return this.httpResponse.noBody(this.launcherController.connect());
}
- public login(url: string, info: ILoginRequestData, sessionID: string): string
- {
+ public login(url: string, info: ILoginRequestData, sessionID: string): string {
const output = this.launcherController.login(info);
return !output ? "FAILED" : output;
}
- public register(url: string, info: IRegisterData, sessionID: string): "FAILED" | "OK"
- {
+ public register(url: string, info: IRegisterData, sessionID: string): "FAILED" | "OK" {
const output = this.launcherController.register(info);
return !output ? "FAILED" : "OK";
}
- public get(url: string, info: ILoginRequestData, sessionID: string): string
- {
+ public get(url: string, info: ILoginRequestData, sessionID: string): string {
const output = this.launcherController.find(this.launcherController.login(info));
return this.httpResponse.noBody(output);
}
- public changeUsername(url: string, info: IChangeRequestData, sessionID: string): "FAILED" | "OK"
- {
+ public changeUsername(url: string, info: IChangeRequestData, sessionID: string): "FAILED" | "OK" {
const output = this.launcherController.changeUsername(info);
return !output ? "FAILED" : "OK";
}
- public changePassword(url: string, info: IChangeRequestData, sessionID: string): "FAILED" | "OK"
- {
+ public changePassword(url: string, info: IChangeRequestData, sessionID: string): "FAILED" | "OK" {
const output = this.launcherController.changePassword(info);
return !output ? "FAILED" : "OK";
}
- public wipe(url: string, info: IRegisterData, sessionID: string): "FAILED" | "OK"
- {
+ public wipe(url: string, info: IRegisterData, sessionID: string): "FAILED" | "OK" {
const output = this.launcherController.wipe(info);
return !output ? "FAILED" : "OK";
}
- public getServerVersion(): string
- {
+ public getServerVersion(): string {
return this.httpResponse.noBody(this.watermark.getVersionTag());
}
- public ping(url: string, info: IEmptyRequestData, sessionID: string): string
- {
+ public ping(url: string, info: IEmptyRequestData, sessionID: string): string {
return this.httpResponse.noBody("pong!");
}
- public removeProfile(url: string, info: IRemoveProfileData, sessionID: string): string
- {
+ public removeProfile(url: string, info: IRemoveProfileData, sessionID: string): string {
return this.httpResponse.noBody(this.saveServer.removeProfile(sessionID));
}
- public getCompatibleTarkovVersion(): string
- {
+ public getCompatibleTarkovVersion(): string {
return this.httpResponse.noBody(this.launcherController.getCompatibleTarkovVersion());
}
- public getLoadedServerMods(): string
- {
+ public getLoadedServerMods(): string {
return this.httpResponse.noBody(this.launcherController.getLoadedServerMods());
}
- public getServerModsProfileUsed(url: string, info: IEmptyRequestData, sessionId: string): string
- {
+ public getServerModsProfileUsed(url: string, info: IEmptyRequestData, sessionId: string): string {
return this.httpResponse.noBody(this.launcherController.getServerModsProfileUsed(sessionId));
}
}
diff --git a/project/src/callbacks/LocationCallbacks.ts b/project/src/callbacks/LocationCallbacks.ts
index da0541f9..140702c4 100644
--- a/project/src/callbacks/LocationCallbacks.ts
+++ b/project/src/callbacks/LocationCallbacks.ts
@@ -1,27 +1,24 @@
-import { inject, injectable } from "tsyringe";
import { LocationController } from "@spt/controllers/LocationController";
import { IEmptyRequestData } from "@spt/models/eft/common/IEmptyRequestData";
import { ILocationsGenerateAllResponse } from "@spt/models/eft/common/ILocationsSourceDestinationBase";
import { IGetBodyResponseData } from "@spt/models/eft/httpResponse/IGetBodyResponseData";
import { IGetAirdropLootResponse } from "@spt/models/eft/location/IGetAirdropLootResponse";
import { HttpResponseUtil } from "@spt/utils/HttpResponseUtil";
+import { inject, injectable } from "tsyringe";
@injectable()
-export class LocationCallbacks
-{
+export class LocationCallbacks {
constructor(
@inject("HttpResponseUtil") protected httpResponse: HttpResponseUtil,
@inject("LocationController") protected locationController: LocationController,
- )
- {}
+ ) {}
/** Handle client/locations */
public getLocationData(
url: string,
info: IEmptyRequestData,
sessionID: string,
- ): IGetBodyResponseData
- {
+ ): IGetBodyResponseData {
return this.httpResponse.getBody(this.locationController.generateAll(sessionID));
}
@@ -30,8 +27,7 @@ export class LocationCallbacks
url: string,
info: IEmptyRequestData,
sessionID: string,
- ): IGetBodyResponseData
- {
+ ): IGetBodyResponseData {
return this.httpResponse.getBody(this.locationController.getAirdropLoot());
}
}
diff --git a/project/src/callbacks/MatchCallbacks.ts b/project/src/callbacks/MatchCallbacks.ts
index 114db4f0..4b00825b 100644
--- a/project/src/callbacks/MatchCallbacks.ts
+++ b/project/src/callbacks/MatchCallbacks.ts
@@ -1,4 +1,3 @@
-import { inject, injectable } from "tsyringe";
import { MatchController } from "@spt/controllers/MatchController";
import { IEmptyRequestData } from "@spt/models/eft/common/IEmptyRequestData";
import { IGetBodyResponseData } from "@spt/models/eft/httpResponse/IGetBodyResponseData";
@@ -22,33 +21,29 @@ import { IUpdatePingRequestData } from "@spt/models/eft/match/IUpdatePingRequest
import { DatabaseService } from "@spt/services/DatabaseService";
import { HttpResponseUtil } from "@spt/utils/HttpResponseUtil";
import { JsonUtil } from "@spt/utils/JsonUtil";
+import { inject, injectable } from "tsyringe";
@injectable()
-export class MatchCallbacks
-{
+export class MatchCallbacks {
constructor(
@inject("HttpResponseUtil") protected httpResponse: HttpResponseUtil,
@inject("JsonUtil") protected jsonUtil: JsonUtil,
@inject("MatchController") protected matchController: MatchController,
@inject("DatabaseService") protected databaseService: DatabaseService,
- )
- {}
+ ) {}
/** Handle client/match/updatePing */
- public updatePing(url: string, info: IUpdatePingRequestData, sessionID: string): INullResponseData
- {
+ public updatePing(url: string, info: IUpdatePingRequestData, sessionID: string): INullResponseData {
return this.httpResponse.nullResponse();
}
// Handle client/match/exit
- public exitMatch(url: string, info: IEmptyRequestData, sessionID: string): INullResponseData
- {
+ public exitMatch(url: string, info: IEmptyRequestData, sessionID: string): INullResponseData {
return this.httpResponse.nullResponse();
}
/** Handle client/match/group/exit_from_menu */
- public exitToMenu(url: string, info: IEmptyRequestData, sessionID: string): INullResponseData
- {
+ public exitToMenu(url: string, info: IEmptyRequestData, sessionID: string): INullResponseData {
return this.httpResponse.nullResponse();
}
@@ -56,18 +51,15 @@ export class MatchCallbacks
url: string,
info: IEmptyRequestData,
sessionID: string,
- ): IGetBodyResponseData
- {
+ ): IGetBodyResponseData {
return this.httpResponse.getBody({ squad: [] });
}
- public startGroupSearch(url: string, info: IEmptyRequestData, sessionID: string): INullResponseData
- {
+ public startGroupSearch(url: string, info: IEmptyRequestData, sessionID: string): INullResponseData {
return this.httpResponse.nullResponse();
}
- public stopGroupSearch(url: string, info: IEmptyRequestData, sessionID: string): INullResponseData
- {
+ public stopGroupSearch(url: string, info: IEmptyRequestData, sessionID: string): INullResponseData {
return this.httpResponse.nullResponse();
}
@@ -76,8 +68,7 @@ export class MatchCallbacks
url: string,
info: IMatchGroupInviteSendRequest,
sessionID: string,
- ): IGetBodyResponseData
- {
+ ): IGetBodyResponseData {
return this.httpResponse.getBody("2427943f23698ay9f2863735");
}
@@ -86,8 +77,7 @@ export class MatchCallbacks
url: string,
info: IRequestIdRequest,
sessionId: string,
- ): IGetBodyResponseData
- {
+ ): IGetBodyResponseData {
const result = [];
result.push({});
@@ -95,14 +85,12 @@ export class MatchCallbacks
}
/** Handle client/match/group/invite/decline */
- public declineGroupInvite(url: string, info: IRequestIdRequest, sessionId: string): IGetBodyResponseData
- {
+ public declineGroupInvite(url: string, info: IRequestIdRequest, sessionId: string): IGetBodyResponseData {
return this.httpResponse.getBody(true);
}
/** Handle client/match/group/invite/cancel */
- public cancelGroupInvite(url: string, info: IRequestIdRequest, sessionID: string): IGetBodyResponseData
- {
+ public cancelGroupInvite(url: string, info: IRequestIdRequest, sessionID: string): IGetBodyResponseData {
return this.httpResponse.getBody(true);
}
@@ -111,8 +99,7 @@ export class MatchCallbacks
url: string,
info: IMatchGroupTransferRequest,
sessionId: string,
- ): IGetBodyResponseData
- {
+ ): IGetBodyResponseData {
return this.httpResponse.getBody(true);
}
@@ -121,19 +108,16 @@ export class MatchCallbacks
url: string,
info: IEmptyRequestData,
sessionId: string,
- ): IGetBodyResponseData
- {
+ ): IGetBodyResponseData {
return this.httpResponse.getBody(true);
}
- public putMetrics(url: string, request: IPutMetricsRequestData, sessionId: string): INullResponseData
- {
+ public putMetrics(url: string, request: IPutMetricsRequestData, sessionId: string): INullResponseData {
return this.httpResponse.nullResponse();
}
// Handle client/match/available
- public serverAvailable(url: string, info: IEmptyRequestData, sessionId: string): IGetBodyResponseData
- {
+ public serverAvailable(url: string, info: IEmptyRequestData, sessionId: string): IGetBodyResponseData {
const output = this.matchController.getEnabled();
return this.httpResponse.getBody(output);
@@ -144,14 +128,12 @@ export class MatchCallbacks
url: string,
info: IMatchGroupStartGameRequest,
sessionID: string,
- ): IGetBodyResponseData
- {
+ ): IGetBodyResponseData {
return this.httpResponse.getBody(this.matchController.joinMatch(info, sessionID));
}
/** Handle client/getMetricsConfig */
- public getMetrics(url: string, info: any, sessionID: string): IGetBodyResponseData
- {
+ public getMetrics(url: string, info: any, sessionID: string): IGetBodyResponseData {
return this.httpResponse.getBody(this.jsonUtil.serialize(this.databaseService.getMatch().metrics));
}
@@ -164,21 +146,18 @@ export class MatchCallbacks
url: string,
info: IMatchGroupStatusRequest,
sessionID: string,
- ): IGetBodyResponseData
- {
+ ): IGetBodyResponseData {
return this.httpResponse.getBody(this.matchController.getGroupStatus(info));
}
/** Handle client/match/group/delete */
- public deleteGroup(url: string, info: IEmptyRequestData, sessionID: string): IGetBodyResponseData
- {
+ public deleteGroup(url: string, info: IEmptyRequestData, sessionID: string): IGetBodyResponseData {
this.matchController.deleteGroup(info);
return this.httpResponse.getBody(true);
}
// Handle client/match/group/leave
- public leaveGroup(url: string, info: IEmptyRequestData, sessionID: string): IGetBodyResponseData
- {
+ public leaveGroup(url: string, info: IEmptyRequestData, sessionID: string): IGetBodyResponseData {
return this.httpResponse.getBody(true);
}
@@ -187,8 +166,7 @@ export class MatchCallbacks
url: string,
info: IMatchGroupPlayerRemoveRequest,
sessionID: string,
- ): IGetBodyResponseData
- {
+ ): IGetBodyResponseData {
return this.httpResponse.getBody(true);
}
@@ -197,18 +175,12 @@ export class MatchCallbacks
url: string,
info: IStartLocalRaidRequestData,
sessionID: string,
- ): IGetBodyResponseData
- {
+ ): IGetBodyResponseData {
return this.httpResponse.getBody(this.matchController.startLocalRaid(sessionID, info));
}
/** Handle client/match/local/end */
- public endLocalRaid(
- url: string,
- info: IEndLocalRaidRequestData,
- sessionID: string,
- ): INullResponseData
- {
+ public endLocalRaid(url: string, info: IEndLocalRaidRequestData, sessionID: string): INullResponseData {
this.matchController.endLocalRaid(sessionID, info);
return this.httpResponse.nullResponse();
}
@@ -218,8 +190,7 @@ export class MatchCallbacks
url: string,
info: IGetRaidConfigurationRequestData,
sessionID: string,
- ): INullResponseData
- {
+ ): INullResponseData {
this.matchController.configureOfflineRaid(info, sessionID);
return this.httpResponse.nullResponse();
}
@@ -229,20 +200,17 @@ export class MatchCallbacks
url: string,
info: IGetRaidConfigurationRequestData,
sessionID: string,
- ): INullResponseData
- {
+ ): INullResponseData {
return this.httpResponse.nullResponse();
}
/** Handle client/match/group/raid/ready */
- public raidReady(url: string, info: IEmptyRequestData, sessionId: string): IGetBodyResponseData
- {
+ public raidReady(url: string, info: IEmptyRequestData, sessionId: string): IGetBodyResponseData {
return this.httpResponse.getBody(true);
}
/** Handle client/match/group/raid/not-ready */
- public notRaidReady(url: string, info: IEmptyRequestData, sessionId: string): IGetBodyResponseData
- {
+ public notRaidReady(url: string, info: IEmptyRequestData, sessionId: string): IGetBodyResponseData {
return this.httpResponse.getBody(true);
}
}
diff --git a/project/src/callbacks/ModCallbacks.ts b/project/src/callbacks/ModCallbacks.ts
index 3655902c..c6dce2c9 100644
--- a/project/src/callbacks/ModCallbacks.ts
+++ b/project/src/callbacks/ModCallbacks.ts
@@ -1,4 +1,3 @@
-import { inject, injectable } from "tsyringe";
import { OnLoad } from "@spt/di/OnLoad";
import { PostSptModLoader } from "@spt/loaders/PostSptModLoader";
import { ConfigTypes } from "@spt/models/enums/ConfigTypes";
@@ -8,10 +7,10 @@ import { ConfigServer } from "@spt/servers/ConfigServer";
import { LocalisationService } from "@spt/services/LocalisationService";
import { HttpFileUtil } from "@spt/utils/HttpFileUtil";
import { HttpResponseUtil } from "@spt/utils/HttpResponseUtil";
+import { inject, injectable } from "tsyringe";
@injectable()
-export class ModCallbacks implements OnLoad
-{
+export class ModCallbacks implements OnLoad {
protected httpConfig: IHttpConfig;
constructor(
@@ -21,21 +20,17 @@ export class ModCallbacks implements OnLoad
@inject("PostSptModLoader") protected postSptModLoader: PostSptModLoader,
@inject("LocalisationService") protected localisationService: LocalisationService,
@inject("ConfigServer") protected configServer: ConfigServer,
- )
- {
+ ) {
this.httpConfig = this.configServer.getConfig(ConfigTypes.HTTP);
}
- public async onLoad(): Promise
- {
- if (globalThis.G_MODS_ENABLED)
- {
+ public async onLoad(): Promise {
+ if (globalThis.G_MODS_ENABLED) {
await this.postSptModLoader.load();
}
}
- public getRoute(): string
- {
+ public getRoute(): string {
return "spt-mods";
}
}
diff --git a/project/src/callbacks/NoteCallbacks.ts b/project/src/callbacks/NoteCallbacks.ts
index 723496f5..603a89fb 100644
--- a/project/src/callbacks/NoteCallbacks.ts
+++ b/project/src/callbacks/NoteCallbacks.ts
@@ -1,30 +1,25 @@
-import { inject, injectable } from "tsyringe";
import { NoteController } from "@spt/controllers/NoteController";
import { IPmcData } from "@spt/models/eft/common/IPmcData";
import { IItemEventRouterResponse } from "@spt/models/eft/itemEvent/IItemEventRouterResponse";
import { INoteActionData } from "@spt/models/eft/notes/INoteActionData";
+import { inject, injectable } from "tsyringe";
@injectable()
-export class NoteCallbacks
-{
- constructor(@inject("NoteController") protected noteController: NoteController)
- {}
+export class NoteCallbacks {
+ constructor(@inject("NoteController") protected noteController: NoteController) {}
/** Handle AddNote event */
- public addNote(pmcData: IPmcData, body: INoteActionData, sessionID: string): IItemEventRouterResponse
- {
+ public addNote(pmcData: IPmcData, body: INoteActionData, sessionID: string): IItemEventRouterResponse {
return this.noteController.addNote(pmcData, body, sessionID);
}
/** Handle EditNote event */
- public editNote(pmcData: IPmcData, body: INoteActionData, sessionID: string): IItemEventRouterResponse
- {
+ public editNote(pmcData: IPmcData, body: INoteActionData, sessionID: string): IItemEventRouterResponse {
return this.noteController.editNote(pmcData, body, sessionID);
}
/** Handle DeleteNote event */
- public deleteNote(pmcData: IPmcData, body: INoteActionData, sessionID: string): IItemEventRouterResponse
- {
+ public deleteNote(pmcData: IPmcData, body: INoteActionData, sessionID: string): IItemEventRouterResponse {
return this.noteController.deleteNote(pmcData, body, sessionID);
}
}
diff --git a/project/src/callbacks/NotifierCallbacks.ts b/project/src/callbacks/NotifierCallbacks.ts
index 3eb9ab73..d6716add 100644
--- a/project/src/callbacks/NotifierCallbacks.ts
+++ b/project/src/callbacks/NotifierCallbacks.ts
@@ -1,4 +1,3 @@
-import { inject, injectable } from "tsyringe";
import { NotifierController } from "@spt/controllers/NotifierController";
import { HttpServerHelper } from "@spt/helpers/HttpServerHelper";
import { IEmptyRequestData } from "@spt/models/eft/common/IEmptyRequestData";
@@ -8,17 +7,16 @@ import { INotifierChannel } from "@spt/models/eft/notifier/INotifier";
import { ISelectProfileResponse } from "@spt/models/eft/notifier/ISelectProfileResponse";
import { HttpResponseUtil } from "@spt/utils/HttpResponseUtil";
import { JsonUtil } from "@spt/utils/JsonUtil";
+import { inject, injectable } from "tsyringe";
@injectable()
-export class NotifierCallbacks
-{
+export class NotifierCallbacks {
constructor(
@inject("HttpServerHelper") protected httpServerHelper: HttpServerHelper,
@inject("HttpResponseUtil") protected httpResponse: HttpResponseUtil,
@inject("JsonUtil") protected jsonUtil: JsonUtil,
@inject("NotifierController") protected notifierController: NotifierController,
- )
- {}
+ ) {}
/**
* If we don't have anything to send, it's ok to not send anything back
@@ -26,8 +24,7 @@ export class NotifierCallbacks
* until we actually have something to send because otherwise we'd spam the client
* and the client would abort the connection due to spam.
*/
- public sendNotification(sessionID: string, req: any, resp: any, data: any): void
- {
+ public sendNotification(sessionID: string, req: any, resp: any, data: any): void {
const splittedUrl = req.url.split("/");
const tmpSessionID = splittedUrl[splittedUrl.length - 1].split("?last_id")[0];
@@ -44,8 +41,7 @@ export class NotifierCallbacks
/** Handle push/notifier/get */
/** Handle push/notifier/getwebsocket */
// TODO: removed from client?
- public getNotifier(url: string, info: any, sessionID: string): IGetBodyResponseData
- {
+ public getNotifier(url: string, info: any, sessionID: string): IGetBodyResponseData {
return this.httpResponse.emptyArrayResponse();
}
@@ -54,8 +50,7 @@ export class NotifierCallbacks
url: string,
info: IEmptyRequestData,
sessionID: string,
- ): IGetBodyResponseData
- {
+ ): IGetBodyResponseData {
return this.httpResponse.getBody(this.notifierController.getChannel(sessionID));
}
@@ -67,13 +62,11 @@ export class NotifierCallbacks
url: string,
info: IUIDRequestData,
sessionID: string,
- ): IGetBodyResponseData
- {
+ ): IGetBodyResponseData {
return this.httpResponse.getBody({ status: "ok" });
}
- public notify(url: string, info: any, sessionID: string): string
- {
+ public notify(url: string, info: any, sessionID: string): string {
return "NOTIFY";
}
}
diff --git a/project/src/callbacks/PresetCallbacks.ts b/project/src/callbacks/PresetCallbacks.ts
index 0fafb7c1..81ff20d1 100644
--- a/project/src/callbacks/PresetCallbacks.ts
+++ b/project/src/callbacks/PresetCallbacks.ts
@@ -1,20 +1,16 @@
-import { inject, injectable } from "tsyringe";
import { PresetController } from "@spt/controllers/PresetController";
import { OnLoad } from "@spt/di/OnLoad";
+import { inject, injectable } from "tsyringe";
@injectable()
-export class PresetCallbacks implements OnLoad
-{
- constructor(@inject("PresetController") protected presetController: PresetController)
- {}
+export class PresetCallbacks implements OnLoad {
+ constructor(@inject("PresetController") protected presetController: PresetController) {}
- public async onLoad(): Promise
- {
+ public async onLoad(): Promise {
this.presetController.initialize();
}
- public getRoute(): string
- {
+ public getRoute(): string {
return "spt-presets";
}
}
diff --git a/project/src/callbacks/ProfileCallbacks.ts b/project/src/callbacks/ProfileCallbacks.ts
index 364c1c12..733037fd 100644
--- a/project/src/callbacks/ProfileCallbacks.ts
+++ b/project/src/callbacks/ProfileCallbacks.ts
@@ -1,4 +1,3 @@
-import { inject, injectable } from "tsyringe";
import { ProfileController } from "@spt/controllers/ProfileController";
import { ProfileHelper } from "@spt/helpers/ProfileHelper";
import { IEmptyRequestData } from "@spt/models/eft/common/IEmptyRequestData";
@@ -19,18 +18,17 @@ import { ISearchFriendResponse } from "@spt/models/eft/profile/ISearchFriendResp
import { IValidateNicknameRequestData } from "@spt/models/eft/profile/IValidateNicknameRequestData";
import { HttpResponseUtil } from "@spt/utils/HttpResponseUtil";
import { TimeUtil } from "@spt/utils/TimeUtil";
+import { inject, injectable } from "tsyringe";
/** Handle profile related client events */
@injectable()
-export class ProfileCallbacks
-{
+export class ProfileCallbacks {
constructor(
@inject("HttpResponseUtil") protected httpResponse: HttpResponseUtil,
@inject("TimeUtil") protected timeUtil: TimeUtil,
@inject("ProfileController") protected profileController: ProfileController,
@inject("ProfileHelper") protected profileHelper: ProfileHelper,
- )
- {}
+ ) {}
/**
* Handle client/game/profile/create
@@ -39,8 +37,7 @@ export class ProfileCallbacks
url: string,
info: IProfileCreateRequestData,
sessionID: string,
- ): IGetBodyResponseData
- {
+ ): IGetBodyResponseData {
const id = this.profileController.createProfile(info, sessionID);
return this.httpResponse.getBody({ uid: id });
}
@@ -49,8 +46,7 @@ export class ProfileCallbacks
* Handle client/game/profile/list
* Get the complete player profile (scav + pmc character)
*/
- public getProfileData(url: string, info: IEmptyRequestData, sessionID: string): IGetBodyResponseData
- {
+ public getProfileData(url: string, info: IEmptyRequestData, sessionID: string): IGetBodyResponseData {
return this.httpResponse.getBody(this.profileController.getCompleteProfile(sessionID));
}
@@ -63,16 +59,14 @@ export class ProfileCallbacks
* @param sessionID Session id
* @returns Profile object
*/
- public regenerateScav(url: string, info: IEmptyRequestData, sessionID: string): IGetBodyResponseData
- {
+ public regenerateScav(url: string, info: IEmptyRequestData, sessionID: string): IGetBodyResponseData {
return this.httpResponse.getBody([this.profileController.generatePlayerScav(sessionID)]);
}
/**
* Handle client/game/profile/voice/change event
*/
- public changeVoice(url: string, info: IProfileChangeVoiceRequestData, sessionID: string): INullResponseData
- {
+ public changeVoice(url: string, info: IProfileChangeVoiceRequestData, sessionID: string): INullResponseData {
this.profileController.changeVoice(info, sessionID);
return this.httpResponse.nullResponse();
}
@@ -85,17 +79,14 @@ export class ProfileCallbacks
url: string,
info: IProfileChangeNicknameRequestData,
sessionID: string,
- ): IGetBodyResponseData
- {
+ ): IGetBodyResponseData {
const output = this.profileController.changeNickname(info, sessionID);
- if (output === "taken")
- {
+ if (output === "taken") {
return this.httpResponse.getBody(undefined, 255, "The nickname is already in use");
}
- if (output === "tooshort")
- {
+ if (output === "tooshort") {
return this.httpResponse.getBody(undefined, 1, "The nickname is too short");
}
@@ -109,17 +100,14 @@ export class ProfileCallbacks
url: string,
info: IValidateNicknameRequestData,
sessionID: string,
- ): IGetBodyResponseData
- {
+ ): IGetBodyResponseData {
const output = this.profileController.validateNickname(info, sessionID);
- if (output === "taken")
- {
+ if (output === "taken") {
return this.httpResponse.getBody(undefined, 255, "225 - ");
}
- if (output === "tooshort")
- {
+ if (output === "tooshort") {
return this.httpResponse.getBody(undefined, 256, "256 - ");
}
@@ -129,8 +117,7 @@ export class ProfileCallbacks
/**
* Handle client/game/profile/nickname/reserved
*/
- public getReservedNickname(url: string, info: IEmptyRequestData, sessionID: string): IGetBodyResponseData
- {
+ public getReservedNickname(url: string, info: IEmptyRequestData, sessionID: string): IGetBodyResponseData {
return this.httpResponse.getBody("SPTarkov");
}
@@ -142,8 +129,7 @@ export class ProfileCallbacks
url: string,
info: IEmptyRequestData,
sessionID: string,
- ): IGetBodyResponseData
- {
+ ): IGetBodyResponseData {
return this.httpResponse.getBody(this.profileController.getProfileStatus(sessionID));
}
@@ -155,8 +141,7 @@ export class ProfileCallbacks
url: string,
request: IGetOtherProfileRequest,
sessionID: string,
- ): IGetBodyResponseData
- {
+ ): IGetBodyResponseData {
return this.httpResponse.getBody(this.profileController.getOtherProfile(sessionID, request));
}
@@ -167,8 +152,7 @@ export class ProfileCallbacks
url: string,
info: IGetProfileSettingsRequest,
sessionId: string,
- ): IGetBodyResponseData
- {
+ ): IGetBodyResponseData {
return this.httpResponse.getBody(this.profileController.setChosenProfileIcon(sessionId, info));
}
@@ -179,24 +163,21 @@ export class ProfileCallbacks
url: string,
info: ISearchFriendRequestData,
sessionID: string,
- ): IGetBodyResponseData
- {
+ ): IGetBodyResponseData {
return this.httpResponse.getBody(this.profileController.getFriends(info, sessionID));
}
/**
* Handle launcher/profile/info
*/
- public getMiniProfile(url: string, info: IGetMiniProfileRequestData, sessionID: string): string
- {
+ public getMiniProfile(url: string, info: IGetMiniProfileRequestData, sessionID: string): string {
return this.httpResponse.noBody(this.profileController.getMiniProfile(sessionID));
}
/**
* Handle /launcher/profiles
*/
- public getAllMiniProfiles(url: string, info: IEmptyRequestData, sessionID: string): string
- {
+ public getAllMiniProfiles(url: string, info: IEmptyRequestData, sessionID: string): string {
return this.httpResponse.noBody(this.profileController.getMiniProfiles());
}
}
diff --git a/project/src/callbacks/QuestCallbacks.ts b/project/src/callbacks/QuestCallbacks.ts
index 8ea32290..e080abce 100644
--- a/project/src/callbacks/QuestCallbacks.ts
+++ b/project/src/callbacks/QuestCallbacks.ts
@@ -1,4 +1,3 @@
-import { inject, injectable } from "tsyringe";
import { QuestController } from "@spt/controllers/QuestController";
import { RepeatableQuestController } from "@spt/controllers/RepeatableQuestController";
import { IEmptyRequestData } from "@spt/models/eft/common/IEmptyRequestData";
@@ -13,16 +12,15 @@ import { IHandoverQuestRequestData } from "@spt/models/eft/quests/IHandoverQuest
import { IListQuestsRequestData } from "@spt/models/eft/quests/IListQuestsRequestData";
import { IRepeatableQuestChangeRequest } from "@spt/models/eft/quests/IRepeatableQuestChangeRequest";
import { HttpResponseUtil } from "@spt/utils/HttpResponseUtil";
+import { inject, injectable } from "tsyringe";
@injectable()
-export class QuestCallbacks
-{
+export class QuestCallbacks {
constructor(
@inject("HttpResponseUtil") protected httpResponse: HttpResponseUtil,
@inject("QuestController") protected questController: QuestController,
@inject("RepeatableQuestController") protected repeatableQuestController: RepeatableQuestController,
- )
- {}
+ ) {}
/**
* Handle RepeatableQuestChange event
@@ -31,18 +29,15 @@ export class QuestCallbacks
pmcData: IPmcData,
body: IRepeatableQuestChangeRequest,
sessionID: string,
- ): IItemEventRouterResponse
- {
+ ): IItemEventRouterResponse {
return this.repeatableQuestController.changeRepeatableQuest(pmcData, body, sessionID);
}
/**
* Handle QuestAccept event
*/
- public acceptQuest(pmcData: IPmcData, body: IAcceptQuestRequestData, sessionID: string): IItemEventRouterResponse
- {
- if (body.type === "repeatable")
- {
+ public acceptQuest(pmcData: IPmcData, body: IAcceptQuestRequestData, sessionID: string): IItemEventRouterResponse {
+ if (body.type === "repeatable") {
return this.questController.acceptRepeatableQuest(pmcData, body, sessionID);
}
return this.questController.acceptQuest(pmcData, body, sessionID);
@@ -55,8 +50,7 @@ export class QuestCallbacks
pmcData: IPmcData,
body: ICompleteQuestRequestData,
sessionID: string,
- ): IItemEventRouterResponse
- {
+ ): IItemEventRouterResponse {
return this.questController.completeQuest(pmcData, body, sessionID);
}
@@ -67,16 +61,14 @@ export class QuestCallbacks
pmcData: IPmcData,
body: IHandoverQuestRequestData,
sessionID: string,
- ): IItemEventRouterResponse
- {
+ ): IItemEventRouterResponse {
return this.questController.handoverQuest(pmcData, body, sessionID);
}
/**
* Handle client/quest/list
*/
- public listQuests(url: string, info: IListQuestsRequestData, sessionID: string): IGetBodyResponseData
- {
+ public listQuests(url: string, info: IListQuestsRequestData, sessionID: string): IGetBodyResponseData {
return this.httpResponse.getBody(this.questController.getClientQuests(sessionID));
}
@@ -87,8 +79,7 @@ export class QuestCallbacks
url: string,
info: IEmptyRequestData,
sessionID: string,
- ): IGetBodyResponseData
- {
+ ): IGetBodyResponseData {
return this.httpResponse.getBody(this.repeatableQuestController.getClientRepeatableQuests(sessionID));
}
}
diff --git a/project/src/callbacks/RagfairCallbacks.ts b/project/src/callbacks/RagfairCallbacks.ts
index bc5b8e9a..99310a8c 100644
--- a/project/src/callbacks/RagfairCallbacks.ts
+++ b/project/src/callbacks/RagfairCallbacks.ts
@@ -1,4 +1,3 @@
-import { inject, injectable } from "tsyringe";
import { RagfairController } from "@spt/controllers/RagfairController";
import { OnLoad } from "@spt/di/OnLoad";
import { OnUpdate } from "@spt/di/OnUpdate";
@@ -24,13 +23,13 @@ import { ConfigServer } from "@spt/servers/ConfigServer";
import { RagfairServer } from "@spt/servers/RagfairServer";
import { RagfairTaxService } from "@spt/services/RagfairTaxService";
import { HttpResponseUtil } from "@spt/utils/HttpResponseUtil";
+import { inject, injectable } from "tsyringe";
/**
* Handle ragfair related callback events
*/
@injectable()
-export class RagfairCallbacks implements OnLoad, OnUpdate
-{
+export class RagfairCallbacks implements OnLoad, OnUpdate {
protected ragfairConfig: IRagfairConfig;
constructor(
@@ -39,25 +38,20 @@ export class RagfairCallbacks implements OnLoad, OnUpdate
@inject("RagfairController") protected ragfairController: RagfairController,
@inject("RagfairTaxService") protected ragfairTaxService: RagfairTaxService,
@inject("ConfigServer") protected configServer: ConfigServer,
- )
- {
+ ) {
this.ragfairConfig = this.configServer.getConfig(ConfigTypes.RAGFAIR);
}
- public async onLoad(): Promise
- {
+ public async onLoad(): Promise {
await this.ragfairServer.load();
}
- public getRoute(): string
- {
+ public getRoute(): string {
return "spt-ragfair";
}
- public async onUpdate(timeSinceLastRun: number): Promise
- {
- if (timeSinceLastRun > this.ragfairConfig.runIntervalSeconds)
- {
+ public async onUpdate(timeSinceLastRun: number): Promise {
+ if (timeSinceLastRun > this.ragfairConfig.runIntervalSeconds) {
// There is a flag inside this class that only makes it run once.
this.ragfairServer.addPlayerOffers();
@@ -76,8 +70,7 @@ export class RagfairCallbacks implements OnLoad, OnUpdate
* Handle client/ragfair/search
* Handle client/ragfair/find
*/
- public search(url: string, info: ISearchRequestData, sessionID: string): IGetBodyResponseData
- {
+ public search(url: string, info: ISearchRequestData, sessionID: string): IGetBodyResponseData {
return this.httpResponse.getBody(this.ragfairController.getOffers(sessionID, info));
}
@@ -86,26 +79,22 @@ export class RagfairCallbacks implements OnLoad, OnUpdate
url: string,
info: IGetMarketPriceRequestData,
sessionID: string,
- ): IGetBodyResponseData
- {
+ ): IGetBodyResponseData {
return this.httpResponse.getBody(this.ragfairController.getItemMinAvgMaxFleaPriceValues(info));
}
/** Handle RagFairAddOffer event */
- public addOffer(pmcData: IPmcData, info: IAddOfferRequestData, sessionID: string): IItemEventRouterResponse
- {
+ public addOffer(pmcData: IPmcData, info: IAddOfferRequestData, sessionID: string): IItemEventRouterResponse {
return this.ragfairController.addPlayerOffer(pmcData, info, sessionID);
}
/** Handle RagFairRemoveOffer event */
- public removeOffer(pmcData: IPmcData, info: IRemoveOfferRequestData, sessionID: string): IItemEventRouterResponse
- {
+ public removeOffer(pmcData: IPmcData, info: IRemoveOfferRequestData, sessionID: string): IItemEventRouterResponse {
return this.ragfairController.removeOffer(info, sessionID);
}
/** Handle RagFairRenewOffer event */
- public extendOffer(pmcData: IPmcData, info: IExtendOfferRequestData, sessionID: string): IItemEventRouterResponse
- {
+ public extendOffer(pmcData: IPmcData, info: IExtendOfferRequestData, sessionID: string): IItemEventRouterResponse {
return this.ragfairController.extendOffer(info, sessionID);
}
@@ -117,14 +106,12 @@ export class RagfairCallbacks implements OnLoad, OnUpdate
url: string,
request: IEmptyRequestData,
sessionID: string,
- ): IGetBodyResponseData>
- {
+ ): IGetBodyResponseData> {
return this.httpResponse.getBody(this.ragfairController.getAllFleaPrices());
}
/** Handle client/reports/ragfair/send */
- public sendReport(url: string, info: ISendRagfairReportRequestData, sessionID: string): INullResponseData
- {
+ public sendReport(url: string, info: ISendRagfairReportRequestData, sessionID: string): INullResponseData {
return this.httpResponse.nullResponse();
}
@@ -132,8 +119,7 @@ export class RagfairCallbacks implements OnLoad, OnUpdate
url: string,
request: IStorePlayerOfferTaxAmountRequestData,
sessionId: string,
- ): INullResponseData
- {
+ ): INullResponseData {
this.ragfairTaxService.storeClientOfferTaxValue(sessionId, request);
return this.httpResponse.nullResponse();
}
@@ -143,8 +129,7 @@ export class RagfairCallbacks implements OnLoad, OnUpdate
url: string,
request: IGetRagfairOfferByIdRequest,
sessionID: string,
- ): IGetBodyResponseData
- {
+ ): IGetBodyResponseData {
return this.httpResponse.getBody(this.ragfairController.getOfferById(sessionID, request));
}
}
diff --git a/project/src/callbacks/RepairCallbacks.ts b/project/src/callbacks/RepairCallbacks.ts
index 97095090..a32a79f3 100644
--- a/project/src/callbacks/RepairCallbacks.ts
+++ b/project/src/callbacks/RepairCallbacks.ts
@@ -1,15 +1,13 @@
-import { inject, injectable } from "tsyringe";
import { RepairController } from "@spt/controllers/RepairController";
import { IPmcData } from "@spt/models/eft/common/IPmcData";
import { IItemEventRouterResponse } from "@spt/models/eft/itemEvent/IItemEventRouterResponse";
import { IRepairActionDataRequest } from "@spt/models/eft/repair/IRepairActionDataRequest";
import { ITraderRepairActionDataRequest } from "@spt/models/eft/repair/ITraderRepairActionDataRequest";
+import { inject, injectable } from "tsyringe";
@injectable()
-export class RepairCallbacks
-{
- constructor(@inject("RepairController") protected repairController: RepairController)
- {}
+export class RepairCallbacks {
+ constructor(@inject("RepairController") protected repairController: RepairController) {}
/**
* Handle TraderRepair event
@@ -23,8 +21,7 @@ export class RepairCallbacks
pmcData: IPmcData,
traderRepairRequest: ITraderRepairActionDataRequest,
sessionID: string,
- ): IItemEventRouterResponse
- {
+ ): IItemEventRouterResponse {
return this.repairController.traderRepair(sessionID, traderRepairRequest, pmcData);
}
@@ -40,8 +37,7 @@ export class RepairCallbacks
pmcData: IPmcData,
repairRequest: IRepairActionDataRequest,
sessionID: string,
- ): IItemEventRouterResponse
- {
+ ): IItemEventRouterResponse {
return this.repairController.repairWithKit(sessionID, repairRequest, pmcData);
}
}
diff --git a/project/src/callbacks/SaveCallbacks.ts b/project/src/callbacks/SaveCallbacks.ts
index b5d7d941..82c3ee3b 100644
--- a/project/src/callbacks/SaveCallbacks.ts
+++ b/project/src/callbacks/SaveCallbacks.ts
@@ -1,39 +1,33 @@
-import { inject, injectable } from "tsyringe";
import { OnLoad } from "@spt/di/OnLoad";
import { OnUpdate } from "@spt/di/OnUpdate";
import { ConfigTypes } from "@spt/models/enums/ConfigTypes";
import { ICoreConfig } from "@spt/models/spt/config/ICoreConfig";
import { ConfigServer } from "@spt/servers/ConfigServer";
import { SaveServer } from "@spt/servers/SaveServer";
+import { inject, injectable } from "tsyringe";
@injectable()
-export class SaveCallbacks implements OnLoad, OnUpdate
-{
+export class SaveCallbacks implements OnLoad, OnUpdate {
protected coreConfig: ICoreConfig;
constructor(
@inject("SaveServer") protected saveServer: SaveServer,
@inject("ConfigServer") protected configServer: ConfigServer,
- )
- {
+ ) {
this.coreConfig = this.configServer.getConfig(ConfigTypes.CORE);
}
- public async onLoad(): Promise
- {
+ public async onLoad(): Promise {
this.saveServer.load();
}
- public getRoute(): string
- {
+ public getRoute(): string {
return "spt-save";
}
- public async onUpdate(secondsSinceLastRun: number): Promise
- {
+ public async onUpdate(secondsSinceLastRun: number): Promise {
// run every 15 seconds
- if (secondsSinceLastRun > this.coreConfig.profileSaveIntervalSeconds)
- {
+ if (secondsSinceLastRun > this.coreConfig.profileSaveIntervalSeconds) {
this.saveServer.save();
return true;
}
diff --git a/project/src/callbacks/TradeCallbacks.ts b/project/src/callbacks/TradeCallbacks.ts
index a77f5a0e..69195ea8 100644
--- a/project/src/callbacks/TradeCallbacks.ts
+++ b/project/src/callbacks/TradeCallbacks.ts
@@ -1,16 +1,14 @@
-import { inject, injectable } from "tsyringe";
import { TradeController } from "@spt/controllers/TradeController";
import { IPmcData } from "@spt/models/eft/common/IPmcData";
import { IItemEventRouterResponse } from "@spt/models/eft/itemEvent/IItemEventRouterResponse";
import { IProcessBaseTradeRequestData } from "@spt/models/eft/trade/IProcessBaseTradeRequestData";
import { IProcessRagfairTradeRequestData } from "@spt/models/eft/trade/IProcessRagfairTradeRequestData";
import { ISellScavItemsToFenceRequestData } from "@spt/models/eft/trade/ISellScavItemsToFenceRequestData";
+import { inject, injectable } from "tsyringe";
@injectable()
-export class TradeCallbacks
-{
- constructor(@inject("TradeController") protected tradeController: TradeController)
- {}
+export class TradeCallbacks {
+ constructor(@inject("TradeController") protected tradeController: TradeController) {}
/**
* Handle client/game/profile/items/moving TradingConfirm event
@@ -19,8 +17,7 @@ export class TradeCallbacks
pmcData: IPmcData,
body: IProcessBaseTradeRequestData,
sessionID: string,
- ): IItemEventRouterResponse
- {
+ ): IItemEventRouterResponse {
// body can be IProcessBuyTradeRequestData or IProcessSellTradeRequestData
return this.tradeController.confirmTrading(pmcData, body, sessionID);
}
@@ -30,8 +27,7 @@ export class TradeCallbacks
pmcData: IPmcData,
body: IProcessRagfairTradeRequestData,
sessionID: string,
- ): IItemEventRouterResponse
- {
+ ): IItemEventRouterResponse {
return this.tradeController.confirmRagfairTrading(pmcData, body, sessionID);
}
@@ -40,8 +36,7 @@ export class TradeCallbacks
pmcData: IPmcData,
body: ISellScavItemsToFenceRequestData,
sessionID: string,
- ): IItemEventRouterResponse
- {
+ ): IItemEventRouterResponse {
return this.tradeController.sellScavItemsToFence(pmcData, body, sessionID);
}
}
diff --git a/project/src/callbacks/TraderCallbacks.ts b/project/src/callbacks/TraderCallbacks.ts
index 45599353..9518070c 100644
--- a/project/src/callbacks/TraderCallbacks.ts
+++ b/project/src/callbacks/TraderCallbacks.ts
@@ -1,4 +1,3 @@
-import { inject, injectable } from "tsyringe";
import { TraderController } from "@spt/controllers/TraderController";
import { OnLoad } from "@spt/di/OnLoad";
import { OnUpdate } from "@spt/di/OnUpdate";
@@ -6,28 +5,24 @@ import { IEmptyRequestData } from "@spt/models/eft/common/IEmptyRequestData";
import { ITraderAssort, ITraderBase } from "@spt/models/eft/common/tables/ITrader";
import { IGetBodyResponseData } from "@spt/models/eft/httpResponse/IGetBodyResponseData";
import { HttpResponseUtil } from "@spt/utils/HttpResponseUtil";
+import { inject, injectable } from "tsyringe";
@injectable()
-export class TraderCallbacks implements OnLoad, OnUpdate
-{
+export class TraderCallbacks implements OnLoad, OnUpdate {
constructor(
@inject("HttpResponseUtil") protected httpResponse: HttpResponseUtil, // TODO: delay required
@inject("TraderController") protected traderController: TraderController,
- )
- {}
+ ) {}
- public async onLoad(): Promise
- {
+ public async onLoad(): Promise {
this.traderController.load();
}
- public async onUpdate(): Promise
- {
+ public async onUpdate(): Promise {
return this.traderController.update();
}
- public getRoute(): string
- {
+ public getRoute(): string {
return "spt-traders";
}
@@ -36,21 +31,18 @@ export class TraderCallbacks implements OnLoad, OnUpdate
url: string,
info: IEmptyRequestData,
sessionID: string,
- ): IGetBodyResponseData
- {
+ ): IGetBodyResponseData {
return this.httpResponse.getBody(this.traderController.getAllTraders(sessionID));
}
/** Handle client/trading/api/getTrader */
- public getTrader(url: string, info: IEmptyRequestData, sessionID: string): IGetBodyResponseData
- {
+ public getTrader(url: string, info: IEmptyRequestData, sessionID: string): IGetBodyResponseData {
const traderID = url.replace("/client/trading/api/getTrader/", "");
return this.httpResponse.getBody(this.traderController.getTrader(sessionID, traderID));
}
/** Handle client/trading/api/getTraderAssort */
- public getAssort(url: string, info: IEmptyRequestData, sessionID: string): IGetBodyResponseData
- {
+ public getAssort(url: string, info: IEmptyRequestData, sessionID: string): IGetBodyResponseData {
const traderID = url.replace("/client/trading/api/getTraderAssort/", "");
return this.httpResponse.getBody(this.traderController.getAssort(sessionID, traderID));
}
diff --git a/project/src/callbacks/WeatherCallbacks.ts b/project/src/callbacks/WeatherCallbacks.ts
index 975632ea..d3367989 100644
--- a/project/src/callbacks/WeatherCallbacks.ts
+++ b/project/src/callbacks/WeatherCallbacks.ts
@@ -1,31 +1,31 @@
-import { inject, injectable } from "tsyringe";
import { WeatherController } from "@spt/controllers/WeatherController";
import { IEmptyRequestData } from "@spt/models/eft/common/IEmptyRequestData";
import { IGetBodyResponseData } from "@spt/models/eft/httpResponse/IGetBodyResponseData";
import { IWeatherData } from "@spt/models/eft/weather/IWeatherData";
-import { HttpResponseUtil } from "@spt/utils/HttpResponseUtil";
import { IGetLocalWeatherResponseData } from "@spt/models/spt/weather/IGetLocalWeatherResponseData";
+import { HttpResponseUtil } from "@spt/utils/HttpResponseUtil";
+import { inject, injectable } from "tsyringe";
@injectable()
-export class WeatherCallbacks
-{
+export class WeatherCallbacks {
constructor(
@inject("HttpResponseUtil") protected httpResponse: HttpResponseUtil,
@inject("WeatherController") protected weatherController: WeatherController,
- )
- {}
+ ) {}
/**
* Handle client/weather
* @returns IWeatherData
*/
- public getWeather(url: string, info: IEmptyRequestData, sessionID: string): IGetBodyResponseData
- {
+ public getWeather(url: string, info: IEmptyRequestData, sessionID: string): IGetBodyResponseData {
return this.httpResponse.getBody(this.weatherController.generate());
}
- public getLocalWeather(url: string, info: IEmptyRequestData, sessionID: string): IGetBodyResponseData
- {
+ public getLocalWeather(
+ url: string,
+ info: IEmptyRequestData,
+ sessionID: string,
+ ): IGetBodyResponseData {
return this.httpResponse.getBody(this.weatherController.generateLocal(sessionID));
}
}
diff --git a/project/src/callbacks/WishlistCallbacks.ts b/project/src/callbacks/WishlistCallbacks.ts
index 7f103231..14c6b2b3 100644
--- a/project/src/callbacks/WishlistCallbacks.ts
+++ b/project/src/callbacks/WishlistCallbacks.ts
@@ -1,24 +1,21 @@
-import { inject, injectable } from "tsyringe";
import { WishlistController } from "@spt/controllers/WishlistController";
import { IPmcData } from "@spt/models/eft/common/IPmcData";
import { IItemEventRouterResponse } from "@spt/models/eft/itemEvent/IItemEventRouterResponse";
import { IAddToWishlistRequest } from "@spt/models/eft/wishlist/IAddToWishlistRequest";
import { IChangeWishlistItemCategoryRequest } from "@spt/models/eft/wishlist/IChangeWishlistItemCategoryRequest";
import { IRemoveFromWishlistRequest } from "@spt/models/eft/wishlist/IRemoveFromWishlistRequest";
+import { inject, injectable } from "tsyringe";
@injectable()
-export class WishlistCallbacks
-{
- constructor(@inject("WishlistController") protected wishlistController: WishlistController)
- {}
+export class WishlistCallbacks {
+ constructor(@inject("WishlistController") protected wishlistController: WishlistController) {}
/** Handle AddToWishList event */
public addToWishlist(
pmcData: IPmcData,
request: IAddToWishlistRequest,
sessionID: string,
- ): IItemEventRouterResponse
- {
+ ): IItemEventRouterResponse {
return this.wishlistController.addToWishList(pmcData, request, sessionID);
}
@@ -27,8 +24,7 @@ export class WishlistCallbacks
pmcData: IPmcData,
request: IRemoveFromWishlistRequest,
sessionID: string,
- ): IItemEventRouterResponse
- {
+ ): IItemEventRouterResponse {
return this.wishlistController.removeFromWishList(pmcData, request, sessionID);
}
@@ -37,8 +33,7 @@ export class WishlistCallbacks
pmcData: IPmcData,
request: IChangeWishlistItemCategoryRequest,
sessionID: string,
- ): IItemEventRouterResponse
- {
+ ): IItemEventRouterResponse {
return this.wishlistController.changeWishlistItemCategory(pmcData, request, sessionID);
}
}
diff --git a/project/src/context/ApplicationContext.ts b/project/src/context/ApplicationContext.ts
index e0720180..fdb6428a 100644
--- a/project/src/context/ApplicationContext.ts
+++ b/project/src/context/ApplicationContext.ts
@@ -1,11 +1,10 @@
-import { injectable } from "tsyringe";
import { ContextVariable } from "@spt/context/ContextVariable";
import { ContextVariableType } from "@spt/context/ContextVariableType";
import { LinkedList } from "@spt/utils/collections/lists/LinkedList";
+import { injectable } from "tsyringe";
@injectable()
-export class ApplicationContext
-{
+export class ApplicationContext {
private variables = new Map>();
private static holderMaxSize = 10;
@@ -19,23 +18,18 @@ export class ApplicationContext
* const matchInfo = this.applicationContext.getLatestValue(ContextVariableType.RAID_CONFIGURATION).getValue();
* ```
*/
- public getLatestValue(type: ContextVariableType): ContextVariable | undefined
- {
- if (this.variables.has(type))
- {
+ public getLatestValue(type: ContextVariableType): ContextVariable | undefined {
+ if (this.variables.has(type)) {
return this.variables.get(type)?.getTail();
}
return undefined;
}
- public getValues(type: ContextVariableType): ContextVariable[] | undefined
- {
- if (this.variables.has(type))
- {
+ public getValues(type: ContextVariableType): ContextVariable[] | undefined {
+ if (this.variables.has(type)) {
const res: ContextVariable[] = [];
- for (const value of this.variables.get(type)!.values())
- {
+ for (const value of this.variables.get(type)!.values()) {
res.push(value);
}
@@ -44,20 +38,15 @@ export class ApplicationContext
return undefined;
}
- public addValue(type: ContextVariableType, value: any): void
- {
+ public addValue(type: ContextVariableType, value: any): void {
let list: LinkedList;
- if (this.variables.has(type))
- {
+ if (this.variables.has(type)) {
list = this.variables.get(type)!;
- }
- else
- {
+ } else {
list = new LinkedList();
}
- if (list.length >= ApplicationContext.holderMaxSize)
- {
+ if (list.length >= ApplicationContext.holderMaxSize) {
list.shift();
}
@@ -65,10 +54,8 @@ export class ApplicationContext
this.variables.set(type, list);
}
- public clearValues(type: ContextVariableType): void
- {
- if (this.variables.has(type))
- {
+ public clearValues(type: ContextVariableType): void {
+ if (this.variables.has(type)) {
this.variables.delete(type);
}
}
diff --git a/project/src/context/ContextVariable.ts b/project/src/context/ContextVariable.ts
index 34c92ec7..3f14b7ee 100644
--- a/project/src/context/ContextVariable.ts
+++ b/project/src/context/ContextVariable.ts
@@ -1,30 +1,25 @@
import { ContextVariableType } from "@spt/context/ContextVariableType";
-export class ContextVariable
-{
+export class ContextVariable {
private value: any;
private timestamp: Date;
private type: ContextVariableType;
- constructor(value: any, type: ContextVariableType)
- {
+ constructor(value: any, type: ContextVariableType) {
this.value = value;
this.timestamp = new Date();
this.type = type;
}
- public getValue(): T
- {
+ public getValue(): T {
return this.value;
}
- public getTimestamp(): Date
- {
+ public getTimestamp(): Date {
return this.timestamp;
}
- public getType(): ContextVariableType
- {
+ public getType(): ContextVariableType {
return this.type;
}
}
diff --git a/project/src/context/ContextVariableType.ts b/project/src/context/ContextVariableType.ts
index 4632e8c1..e928a5a2 100644
--- a/project/src/context/ContextVariableType.ts
+++ b/project/src/context/ContextVariableType.ts
@@ -1,5 +1,4 @@
-export enum ContextVariableType
-{
+export enum ContextVariableType {
/** Logged in users session id */
SESSION_ID = 0,
/** Currently acive raid information */
diff --git a/project/src/controllers/AchievementController.ts b/project/src/controllers/AchievementController.ts
index eb8e4de8..88e947e7 100644
--- a/project/src/controllers/AchievementController.ts
+++ b/project/src/controllers/AchievementController.ts
@@ -1,27 +1,24 @@
-import { inject, injectable } from "tsyringe";
import { ICompletedAchievementsResponse } from "@spt/models/eft/profile/ICompletedAchievementsResponse";
import { IGetAchievementsResponse } from "@spt/models/eft/profile/IGetAchievementsResponse";
import { ILogger } from "@spt/models/spt/utils/ILogger";
import { DatabaseService } from "@spt/services/DatabaseService";
+import { inject, injectable } from "tsyringe";
/**
* Logic for handling In Raid callbacks
*/
@injectable()
-export class AchievementController
-{
+export class AchievementController {
constructor(
@inject("PrimaryLogger") protected logger: ILogger,
@inject("DatabaseService") protected databaseService: DatabaseService,
- )
- {}
+ ) {}
/**
* Get base achievements
* @param sessionID Session id
*/
- public getAchievements(sessionID: string): IGetAchievementsResponse
- {
+ public getAchievements(sessionID: string): IGetAchievementsResponse {
return { elements: this.databaseService.getAchievements() };
}
@@ -30,13 +27,11 @@ export class AchievementController
* @param sessionId Session id
* @returns ICompletedAchievementsResponse
*/
- public getAchievementStatistics(sessionId: string): ICompletedAchievementsResponse
- {
+ public getAchievementStatistics(sessionId: string): ICompletedAchievementsResponse {
const achievements = this.databaseService.getAchievements();
const stats = {};
- for (const achievement of achievements)
- {
+ for (const achievement of achievements) {
stats[achievement.id] = 0;
}
diff --git a/project/src/controllers/BotController.ts b/project/src/controllers/BotController.ts
index d82c4935..363cce0e 100644
--- a/project/src/controllers/BotController.ts
+++ b/project/src/controllers/BotController.ts
@@ -1,4 +1,3 @@
-import { inject, injectable } from "tsyringe";
import { ApplicationContext } from "@spt/context/ApplicationContext";
import { ContextVariableType } from "@spt/context/ContextVariableType";
import { BotGenerator } from "@spt/generators/BotGenerator";
@@ -25,12 +24,12 @@ import { DatabaseService } from "@spt/services/DatabaseService";
import { LocalisationService } from "@spt/services/LocalisationService";
import { MatchBotDetailsCacheService } from "@spt/services/MatchBotDetailsCacheService";
import { SeasonalEventService } from "@spt/services/SeasonalEventService";
-import { ICloner } from "@spt/utils/cloners/ICloner";
import { RandomUtil } from "@spt/utils/RandomUtil";
+import { ICloner } from "@spt/utils/cloners/ICloner";
+import { inject, injectable } from "tsyringe";
@injectable()
-export class BotController
-{
+export class BotController {
protected botConfig: IBotConfig;
protected pmcConfig: IPmcConfig;
@@ -50,8 +49,7 @@ export class BotController
@inject("ApplicationContext") protected applicationContext: ApplicationContext,
@inject("RandomUtil") protected randomUtil: RandomUtil,
@inject("PrimaryCloner") protected cloner: ICloner,
- )
- {
+ ) {
this.botConfig = this.configServer.getConfig(ConfigTypes.BOT);
this.pmcConfig = this.configServer.getConfig(ConfigTypes.PMC);
}
@@ -61,12 +59,10 @@ export class BotController
* @param type bot Type we want the load-out gen count for
* @returns number of bots to generate
*/
- public getBotPresetGenerationLimit(type: string): number
- {
+ public getBotPresetGenerationLimit(type: string): number {
const value = this.botConfig.presetBatch[type === "assaultGroup" ? "assault" : type];
- if (!value)
- {
+ if (!value) {
this.logger.warning(this.localisationService.getText("bot-bot_preset_count_value_missing", type));
return 30;
@@ -80,8 +76,7 @@ export class BotController
* Get the core.json difficulty settings from database/bots
* @returns IBotCore
*/
- public getBotCoreDifficulty(): IBotCore
- {
+ public getBotCoreDifficulty(): IBotCore {
return this.databaseService.getBots().core;
}
@@ -93,15 +88,13 @@ export class BotController
* @param ignoreRaidSettings should raid settings chosen pre-raid be ignored
* @returns Difficulty object
*/
- public getBotDifficulty(type: string, diffLevel: string, ignoreRaidSettings = false): Difficulty
- {
+ public getBotDifficulty(type: string, diffLevel: string, ignoreRaidSettings = false): Difficulty {
let difficulty = diffLevel.toLowerCase();
const raidConfig = this.applicationContext
.getLatestValue(ContextVariableType.RAID_CONFIGURATION)
?.getValue();
- if (!(raidConfig || ignoreRaidSettings))
- {
+ if (!(raidConfig || ignoreRaidSettings)) {
this.logger.error(
this.localisationService.getText("bot-missing_application_context", "RAID_CONFIGURATION"),
);
@@ -110,16 +103,14 @@ export class BotController
// Check value chosen in pre-raid difficulty dropdown
// If value is not 'asonline', change requested difficulty to be what was chosen in dropdown
const botDifficultyDropDownValue = raidConfig?.wavesSettings.botDifficulty.toLowerCase() ?? "asonline";
- if (botDifficultyDropDownValue !== "asonline")
- {
- difficulty
- = this.botDifficultyHelper.convertBotDifficultyDropdownToBotDifficulty(botDifficultyDropDownValue);
+ if (botDifficultyDropDownValue !== "asonline") {
+ difficulty =
+ this.botDifficultyHelper.convertBotDifficultyDropdownToBotDifficulty(botDifficultyDropDownValue);
}
let difficultySettings: Difficulty;
const lowercasedBotType = type.toLowerCase();
- switch (lowercasedBotType)
- {
+ switch (lowercasedBotType) {
case this.pmcConfig.bearType.toLowerCase():
difficultySettings = this.botDifficultyHelper.getPmcDifficultySettings(
"bear",
@@ -144,14 +135,12 @@ export class BotController
return difficultySettings;
}
- public getAllBotDifficulties(): Record
- {
+ public getAllBotDifficulties(): Record {
const result = {};
const botTypesDb = this.databaseService.getBots().types;
const botTypes = Object.keys(WildSpawnTypeNumber).filter((v) => Number.isNaN(Number(v)));
- for (let botType of botTypes)
- {
+ for (let botType of botTypes) {
const enumType = botType.toLowerCase();
// pmcBEAR/pmcUSEC need to be converted into `usec`/`bear` so we can read difficulty settings from bots/types
botType = this.botHelper.isBotPmc(botType)
@@ -159,15 +148,13 @@ export class BotController
: botType.toLowerCase();
const botDetails = botTypesDb[botType];
- if (!botDetails?.difficulty)
- {
+ if (!botDetails?.difficulty) {
continue;
}
const botDifficulties = Object.keys(botDetails.difficulty);
result[enumType] = {};
- for (const difficulty of botDifficulties)
- {
+ for (const difficulty of botDifficulties) {
result[enumType][difficulty] = this.getBotDifficulty(enumType, difficulty, true);
}
}
@@ -181,14 +168,12 @@ export class BotController
* @param info bot generation request info
* @returns IBotBase array
*/
- public async generate(sessionId: string, info: IGenerateBotsRequestData): Promise
- {
+ public async generate(sessionId: string, info: IGenerateBotsRequestData): Promise {
const pmcProfile = this.profileHelper.getPmcProfile(sessionId);
// Use this opportunity to create and cache bots for later retreval
const multipleBotTypesRequested = info.conditions.length > 1;
- if (multipleBotTypesRequested)
- {
+ if (multipleBotTypesRequested) {
return this.generateMultipleBotsAndCache(info, pmcProfile, sessionId);
}
@@ -206,26 +191,23 @@ export class BotController
request: IGenerateBotsRequestData,
pmcProfile: IPmcData,
sessionId: string,
- ): Promise
- {
+ ): Promise {
const raidSettings = this.applicationContext
.getLatestValue(ContextVariableType.RAID_CONFIGURATION)
?.getValue();
- if (raidSettings === undefined)
- {
+ if (raidSettings === undefined) {
// throw new Error(this.localisationService.getText("bot-unable_to_load_raid_settings_from_appcontext"));
}
- const pmcLevelRangeForMap
- = this.pmcConfig.locationSpecificPmcLevelOverride[raidSettings?.location.toLowerCase()];
+ const pmcLevelRangeForMap =
+ this.pmcConfig.locationSpecificPmcLevelOverride[raidSettings?.location.toLowerCase()];
const allPmcsHaveSameNameAsPlayer = this.randomUtil.getChance100(
this.pmcConfig.allPMCsHavePlayerNameWithRandomPrefixChance,
);
const conditionPromises: Promise[] = [];
- for (const condition of request.conditions)
- {
+ for (const condition of request.conditions) {
const botGenerationDetails = this.getBotGenerationDetailsForWave(
condition,
pmcProfile,
@@ -260,8 +242,7 @@ export class BotController
pmcLevelRangeForMap: MinMax,
botCountToGenerate: number,
generateAsPmc: boolean,
- ): BotGenerationDetails
- {
+ ): BotGenerationDetails {
return {
isPmc: generateAsPmc,
side: "Savage",
@@ -283,8 +264,7 @@ export class BotController
* @param pmcProfile Profile to get level from
* @returns Level as number
*/
- protected getPlayerLevelFromProfile(pmcProfile: IPmcData): number
- {
+ protected getPlayerLevelFromProfile(pmcProfile: IPmcData): number {
return pmcProfile.Info.Level;
}
@@ -299,11 +279,9 @@ export class BotController
condition: Condition,
botGenerationDetails: BotGenerationDetails,
sessionId: string,
- ): Promise
- {
+ ): Promise {
const isEventBot = condition.Role.toLowerCase().includes("event");
- if (isEventBot)
- {
+ if (isEventBot) {
// Add eventRole data + reassign role property to be base type
botGenerationDetails.eventRole = condition.Role;
botGenerationDetails.role = this.seasonalEventService.getBaseRoleForEventBot(
@@ -313,8 +291,7 @@ export class BotController
// Custom map waves can have spt roles in them
// Is bot type pmcUSEC/pmcBEAR, set is pmc true and set side
- if (this.botHelper.botRoleIsPmc(condition.Role))
- {
+ if (this.botHelper.botRoleIsPmc(condition.Role)) {
botGenerationDetails.isPmc = true;
botGenerationDetails.side = this.botHelper.getPmcSideByRole(condition.Role);
}
@@ -328,20 +305,17 @@ export class BotController
// Get number of bots we have in cache
const botCacheCount = this.botGenerationCacheService.getCachedBotCount(cacheKey);
const botPromises: Promise[] = [];
- if (botCacheCount > botGenerationDetails.botCountToGenerate)
- {
+ if (botCacheCount > botGenerationDetails.botCountToGenerate) {
return;
}
// We're below desired count, add bots to cache
- for (let i = 0; i < botGenerationDetails.botCountToGenerate; i++)
- {
+ for (let i = 0; i < botGenerationDetails.botCountToGenerate; i++) {
const detailsClone = this.cloner.clone(botGenerationDetails);
botPromises.push(this.generateSingleBotAndStoreInCache(detailsClone, sessionId, cacheKey));
}
- return Promise.all(botPromises).then(() =>
- {
+ return Promise.all(botPromises).then(() => {
this.logger.debug(
`Generated ${botGenerationDetails.botCountToGenerate} ${botGenerationDetails.role} (${
botGenerationDetails.eventRole ?? ""
@@ -361,8 +335,7 @@ export class BotController
botGenerationDetails: BotGenerationDetails,
sessionId: string,
cacheKey: string,
- ): Promise
- {
+ ): Promise {
const botToCache = this.botGenerator.prepareAndGenerateBot(sessionId, botGenerationDetails);
this.botGenerationCacheService.storeBots(cacheKey, [botToCache]);
@@ -379,8 +352,7 @@ export class BotController
protected async returnSingleBotFromCache(
sessionId: string,
request: IGenerateBotsRequestData,
- ): Promise
- {
+ ): Promise {
const pmcProfile = this.profileHelper.getPmcProfile(sessionId);
const requestedBot = request.conditions[0];
@@ -388,12 +360,11 @@ export class BotController
.getLatestValue(ContextVariableType.RAID_CONFIGURATION)
?.getValue();
- if (raidSettings === undefined)
- {
+ if (raidSettings === undefined) {
throw new Error(this.localisationService.getText("bot-unable_to_load_raid_settings_from_appcontext"));
}
- const pmcLevelRangeForMap
- = this.pmcConfig.locationSpecificPmcLevelOverride[raidSettings.location.toLowerCase()];
+ const pmcLevelRangeForMap =
+ this.pmcConfig.locationSpecificPmcLevelOverride[raidSettings.location.toLowerCase()];
// Create gen request for when cache is empty
const condition: Condition = {
@@ -412,8 +383,7 @@ export class BotController
// Event bots need special actions to occur, set data up for them
const isEventBot = requestedBot.Role.toLowerCase().includes("event");
- if (isEventBot)
- {
+ if (isEventBot) {
// Add eventRole data + reassign role property
botGenerationDetails.eventRole = requestedBot.Role;
botGenerationDetails.role = this.seasonalEventService.getBaseRoleForEventBot(
@@ -421,20 +391,17 @@ export class BotController
);
}
- if (this.botHelper.isBotPmc(botGenerationDetails.role))
- {
+ if (this.botHelper.isBotPmc(botGenerationDetails.role)) {
botGenerationDetails.isPmc = true;
botGenerationDetails.side = this.botHelper.getPmcSideByRole(requestedBot.Role);
}
// Roll chance to be pmc if type is allowed to be one
const botConvertRateMinMax = this.pmcConfig.convertIntoPmcChance[requestedBot.Role.toLowerCase()];
- if (botConvertRateMinMax)
- {
+ if (botConvertRateMinMax) {
// Should bot become PMC
const convertToPmc = this.botHelper.rollChanceToBePmc(requestedBot.Role, botConvertRateMinMax);
- if (convertToPmc)
- {
+ if (convertToPmc) {
botGenerationDetails.isPmc = true;
botGenerationDetails.role = this.botHelper.getRandomizedPmcRole();
botGenerationDetails.side = this.botHelper.getPmcSideByRole(botGenerationDetails.role);
@@ -443,22 +410,16 @@ export class BotController
}
}
// Only convert to boss when not already converted to PMC & Boss Convert is enabled
- const {
- bossConvertEnabled,
- bossConvertMinMax,
- bossesToConvertToWeights } = this.botConfig.assaultToBossConversion;
- if (bossConvertEnabled && !botGenerationDetails.isPmc)
- {
+ const { bossConvertEnabled, bossConvertMinMax, bossesToConvertToWeights } =
+ this.botConfig.assaultToBossConversion;
+ if (bossConvertEnabled && !botGenerationDetails.isPmc) {
const bossConvertPercent = bossConvertMinMax[requestedBot.Role.toLowerCase()];
- if (bossConvertPercent)
- {
+ if (bossConvertPercent) {
// Roll a percentage check if we should convert scav to boss
- if (this.randomUtil.getChance100(
- this.randomUtil.getInt(bossConvertPercent.min, bossConvertPercent.max)))
- {
- this.updateBotGenerationDetailsToRandomBoss(
- botGenerationDetails,
- bossesToConvertToWeights);
+ if (
+ this.randomUtil.getChance100(this.randomUtil.getInt(bossConvertPercent.min, bossConvertPercent.max))
+ ) {
+ this.updateBotGenerationDetailsToRandomBoss(botGenerationDetails, bossesToConvertToWeights);
}
}
}
@@ -466,20 +427,18 @@ export class BotController
// Create a compound key to store bots in cache against
const cacheKey = this.botGenerationCacheService.createCacheKey(
botGenerationDetails.eventRole ?? botGenerationDetails.role,
- botGenerationDetails.botDifficulty);
+ botGenerationDetails.botDifficulty,
+ );
// Check cache for bot using above key
- if (!this.botGenerationCacheService.cacheHasBotOfRole(cacheKey))
- {
+ if (!this.botGenerationCacheService.cacheHasBotOfRole(cacheKey)) {
const botPromises: Promise[] = [];
// No bot in cache, generate new and return one
- for (let i = 0; i < botGenerationDetails.botCountToGenerate; i++)
- {
+ for (let i = 0; i < botGenerationDetails.botCountToGenerate; i++) {
botPromises.push(this.generateSingleBotAndStoreInCache(botGenerationDetails, sessionId, cacheKey));
}
- await Promise.all(botPromises).then(() =>
- {
+ await Promise.all(botPromises).then(() => {
this.logger.debug(
`Generated ${botGenerationDetails.botCountToGenerate} ${botGenerationDetails.role} (${
botGenerationDetails.eventRole ?? ""
@@ -496,11 +455,10 @@ export class BotController
protected updateBotGenerationDetailsToRandomBoss(
botGenerationDetails: BotGenerationDetails,
- possibleBossTypeWeights: Record): void
- {
+ possibleBossTypeWeights: Record