Add missing quest assort unlocks to questassort.json

Add function to write to console what quest assort unlocks are missing
This commit is contained in:
Dev 2023-07-09 11:33:43 +01:00
parent 0c0f48b93a
commit cad5dcd679
8 changed files with 555 additions and 516 deletions

View File

@ -1,487 +1,488 @@
{ {
"assort-missing_loyalty_level_object": "stripQuestAssort(): Assort for Trader {{traderId}} doesn't contain loyal_level_items data, skipping removal of quest assorts", "assort-missing_loyalty_level_object": "stripQuestAssort(): Assort for Trader {{traderId}} doesn't contain loyal_level_items data, skipping removal of quest assorts",
"assort-missing_questassort": "stripQuestAssort(): Assort for Trader: %s doesn't contain a questassort json, skipping removal of quest assorts", "assort-missing_questassort": "stripQuestAssort(): Assort for Trader: %s doesn't contain a questassort json, skipping removal of quest assorts",
"baseclass-item_not_found": "Item %s not found in item base cache", "assort-missing_quest_assort_unlock": "Unable to find corresponding {{traderName}} quest assort unlock for quest: {{questName}}. Completing this quest will not reward a trader item for purchase",
"baseclass-missing_db_no_cache": "Database was empty, unable to generate an item base cache", "baseclass-item_not_found": "Item %s not found in item base cache",
"bleeding_edge_build": "BLEEDINGEDGE", "baseclass-missing_db_no_cache": "Database was empty, unable to generate an item base cache",
"bot-bot-cache_has_zero_bots_of_requested_type": "WARNING - Bot cache does not have a pre-generated bot of type %s, will need to be generated, configure server to make more", "bleeding_edge_build": "BLEEDINGEDGE",
"bot-compatibility_check_missing_props": "Unable to validate item: {{id}} {{name}} in slot {{slot}} can be equipped, it is missing a _props value", "bot-bot-cache_has_zero_bots_of_requested_type": "WARNING - Bot cache does not have a pre-generated bot of type %s, will need to be generated, configure server to make more",
"bot-generation_failed": "bot generation failed see server log for further details", "bot-compatibility_check_missing_props": "Unable to validate item: {{id}} {{name}} in slot {{slot}} can be equipped, it is missing a _props value",
"bot-incompatible_ammo_for_weapon_falling_back_to_default": "Incompatible ammo {{chosenAmmo}} was found for {{weaponId}} - {{weaponName}}, falling back to default: {{defaultAmmo}}", "bot-generation_failed": "bot generation failed see server log for further details",
"bot-invalid_item_compatibility_check": "Unable to check item compatibility with equipped items, desired item: {{itemTpl}} in slot: {{slot}} is not a valid item", "bot-incompatible_ammo_for_weapon_falling_back_to_default": "Incompatible ammo {{chosenAmmo}} was found for {{weaponId}} - {{weaponName}}, falling back to default: {{defaultAmmo}}",
"bot-item_spawn_limit_reached_skipping_item": "{{botRole}} Unable to spawn item {{itemName}} after {{attempts}} attempts, ignoring spawn limit", "bot-invalid_item_compatibility_check": "Unable to check item compatibility with equipped items, desired item: {{itemTpl}} in slot: {{slot}} is not a valid item",
"bot-loot_type_not_found": "Loot cache failed for loot: {{lootType}} on bot: {{botRole}}, was a pmc: {{isPmc}}", "bot-item_spawn_limit_reached_skipping_item": "{{botRole}} Unable to spawn item {{itemName}} after {{attempts}} attempts, ignoring spawn limit",
"bot-missing_cartridge_slot": "Unable to add cartridges to weapon as modPool does not contain cartridges for a CylinderMagazine %s, skipping", "bot-loot_type_not_found": "Loot cache failed for loot: {{lootType}} on bot: {{botRole}}, was a pmc: {{isPmc}}",
"bot-missing_container_with_tpl": "Could not find container template with tpl: %s", "bot-missing_cartridge_slot": "Unable to add cartridges to weapon as modPool does not contain cartridges for a CylinderMagazine %s, skipping",
"bot-missing_equipment_settings": "Bot {{botRole}} is missing its equipment settings: unable to get value for: {{setting}}, falling back to default of: {{defaultValue}}", "bot-missing_container_with_tpl": "Could not find container template with tpl: %s",
"bot-missing_equipment_settings_property": "Bot {{botRole}} is missing an equpiment settings value for: {{setting}}, falling back to default of: {{defaultValue}}", "bot-missing_equipment_settings": "Bot {{botRole}} is missing its equipment settings: unable to get value for: {{setting}}, falling back to default of: {{defaultValue}}",
"bot-missing_item_template": "Unable to find item template with tpl: %s", "bot-missing_equipment_settings_property": "Bot {{botRole}} is missing an equpiment settings value for: {{setting}}, falling back to default of: {{defaultValue}}",
"bot-missing_saved_match_info": "getBotCap() Unable to get saved match info, falling back to default. Did you restart the server and not the client?", "bot-missing_item_template": "Unable to find item template with tpl: %s",
"bot-missing_weapon_preset": "Unable to find preset for weapon with tpl: %s", "bot-missing_saved_match_info": "getBotCap() Unable to get saved match info, falling back to default. Did you restart the server and not the client?",
"bot-mod_not_in_slot_filter_list": "Mod: {{modId}} not found in compatible item filter for slot: '{{modSlot}}' for item: {{parentName}}, skipping", "bot-missing_weapon_preset": "Unable to find preset for weapon with tpl: %s",
"bot-mod_slot_missing_from_item": "Slot '{{modSlot}}' does not exist for item: {{parentId}} {{parentName}}", "bot-mod_not_in_slot_filter_list": "Mod: {{modId}} not found in compatible item filter for slot: '{{modSlot}}' for item: {{parentName}}, skipping",
"bot-no_ammo_found_in_bot_json": "Unable to find ammo for bot type: %s", "bot-mod_slot_missing_from_item": "Slot '{{modSlot}}' does not exist for item: {{parentId}} {{parentName}}",
"bot-no_bot_cap_found_for_location": "No bot location cap limit found for bot: %s, using default", "bot-no_ammo_found_in_bot_json": "Unable to find ammo for bot type: %s",
"bot-no_bot_type_in_cache": "WARNING - Bot cache has no knowledge of type %s", "bot-no_bot_cap_found_for_location": "No bot location cap limit found for bot: %s, using default",
"bot-no_caliber_data_for_weapon_falling_back_to_default": "Unable to find caliber data for {{weaponId}} - {{weaponName}}, falling back to default ammo: {{defaultAmmo}}", "bot-no_bot_type_in_cache": "WARNING - Bot cache has no knowledge of type %s",
"bot-no_compatible_camora_ammo_found": "Unable to find a compatible ammo for slot: %s. Filling of camora slots skipped", "bot-no_caliber_data_for_weapon_falling_back_to_default": "Unable to find caliber data for {{weaponId}} - {{weaponName}}, falling back to default ammo: {{defaultAmmo}}",
"bot-no_item_template_found_when_adding_mod": "Unable to find mod item template with tpl: {{modId}} to slot {{modSlot}}", "bot-no_compatible_camora_ammo_found": "Unable to find a compatible ammo for slot: %s. Filling of camora slots skipped",
"bot-no_spawn_chance_defined_for_equipment_slot": "No spawn chance was defined for equipment: %s", "bot-no_item_template_found_when_adding_mod": "Unable to find mod item template with tpl: {{modId}} to slot {{modSlot}}",
"bot-single_bot_generation_not_found_in_cache": "Bot: %s not found in cache, generating fresh, this may cause game stuttering", "bot-no_spawn_chance_defined_for_equipment_slot": "No spawn chance was defined for equipment: %s",
"bot-unable_to_add_mod_item_invalid": "Mod: {{itemName}} is not a valid item, unable to add to slot: '{{modSlot}}' on item: {{parentItemName}}, skipping", "bot-single_bot_generation_not_found_in_cache": "Bot: %s not found in cache, generating fresh, this may cause game stuttering",
"bot-unable_to_add_mods_to_weapon_missing_ammo_slot": "Unable to add mods to weapon: {{weaponName}} {{weaponId}} as it lacks slots, cartridges or chambers", "bot-unable_to_add_mod_item_invalid": "Mod: {{itemName}} is not a valid item, unable to add to slot: '{{modSlot}}' on item: {{parentItemName}}, skipping",
"bot-unable_to_filter_mod_slot_all_blacklisted": "Unable to generate filtered dynamic weapon mod pool as blacklist filtered out all mods for slot: %s, ignoring blacklist and regenerating pool", "bot-unable_to_add_mods_to_weapon_missing_ammo_slot": "Unable to add mods to weapon: {{weaponName}} {{weaponId}} as it lacks slots, cartridges or chambers",
"bot-unable_to_filter_mods_all_blacklisted": "Unable to filter mods for slot: {{slotName}} on {{itemName}} as they were all blacklisted, ignoring blacklist", "bot-unable_to_filter_mod_slot_all_blacklisted": "Unable to generate filtered dynamic weapon mod pool as blacklist filtered out all mods for slot: %s, ignoring blacklist and regenerating pool",
"bot-unable_to_find_ammo_item": "Unable to find ammo template with tpl: %s", "bot-unable_to_filter_mods_all_blacklisted": "Unable to filter mods for slot: {{slotName}} on {{itemName}} as they were all blacklisted, ignoring blacklist",
"bot-unable_to_find_default_magazine_item": "Unable to find magazine template: %s in database", "bot-unable_to_find_ammo_item": "Unable to find ammo template with tpl: %s",
"bot-unable_to_find_magazine_item": "Unable to find magazine template: %s in database", "bot-unable_to_find_default_magazine_item": "Unable to find magazine template: %s in database",
"bot-unable_to_find_spawn_limits_fallback_to_defaults": "Unable to find spawn limits for role: %s, falling back to defaults", "bot-unable_to_find_magazine_item": "Unable to find magazine template: %s in database",
"bot-unable_to_get_bot_difficulty_fallback_to_assault": "Unable to find bot: {{botType}} difficulty {{difficulty}}, using assault difficulty as fallback", "bot-unable_to_find_spawn_limits_fallback_to_defaults": "Unable to find spawn limits for role: %s, falling back to defaults",
"bot-unable_to_get_bot_fallback_to_assault": "Unable to find bot: %s JSON, using assault bot as fallback", "bot-unable_to_get_bot_difficulty_fallback_to_assault": "Unable to find bot: {{botType}} difficulty {{difficulty}}, using assault difficulty as fallback",
"bot-weapon_contains_invalid_item": "Required slot '{{modSlot}}' on {{weaponTpl}} has an invalid item: {{modName}}", "bot-unable_to_get_bot_fallback_to_assault": "Unable to find bot: %s JSON, using assault bot as fallback",
"bot-weapon_generated_incorrect_using_default": "Weapon %s was generated incorrectly, falling back to weapon preset see error above", "bot-weapon_contains_invalid_item": "Required slot '{{modSlot}}' on {{weaponTpl}} has an invalid item: {{modName}}",
"bot-weapon_missing_magazine_or_chamber": "Weapon with tpl: %s has no magazine or chamber", "bot-weapon_generated_incorrect_using_default": "Weapon %s was generated incorrectly, falling back to weapon preset see error above",
"bot-weapon_missing_mod_slot": "Slot: {{modSlot}}' does not exist for weapon: {{weaponId}} {{weaponName}} on {{botRole}}", "bot-weapon_missing_magazine_or_chamber": "Weapon with tpl: %s has no magazine or chamber",
"bot-weapons_required_slot_missing_item": "Required slot '{{modSlot}}' on {{modName}} {{slotId}} was empty on {{botRole}}", "bot-weapon_missing_mod_slot": "Slot: {{modSlot}}' does not exist for weapon: {{weaponId}} {{weaponName}} on {{botRole}}",
"client_request": "[Client Request] %s", "bot-weapons_required_slot_missing_item": "Required slot '{{modSlot}}' on {{modName}} {{slotId}} was empty on {{botRole}}",
"customisation-item_already_purchased": "Clothing item {{itemId}} {{itemName}} already purchased", "client_request": "[Client Request] %s",
"dialog-missing_item_template": "Unable to find item tpl {{tpl}} in db, cannot send message of type {{type}}, skipping", "customisation-item_already_purchased": "Clothing item {{itemId}} {{itemName}} already purchased",
"event-unhandled_event": "[UNHANDLED EVENT] %s", "dialog-missing_item_template": "Unable to find item tpl {{tpl}} in db, cannot send message of type {{type}}, skipping",
"executing_startup_callbacks": "Server: executing startup callbacks...", "event-unhandled_event": "[UNHANDLED EVENT] %s",
"fence-unable_to_find_assort_by_id": "Unable to find fence assort for id: %s", "executing_startup_callbacks": "Server: executing startup callbacks...",
"fixer-mod_item_found": "Item %s found that does not exist in items db. You are likely to experience errors, this can be due to using an items mod and removing it without deleting the modded items from your inventory. Do not use this profile", "fence-unable_to_find_assort_by_id": "Unable to find fence assort for id: %s",
"fixer-updated_pockets": "Updated 'pocket' item to new 18876 version with x3 special slots", "fixer-mod_item_found": "Item %s found that does not exist in items db. You are likely to experience errors, this can be due to using an items mod and removing it without deleting the modded items from your inventory. Do not use this profile",
"gameevent-bot_not_found": "addEventGearToScavs() - unable to find bot of type %s in database, skipping", "fixer-updated_pockets": "Updated 'pocket' item to new 18876 version with x3 special slots",
"gameevent-no_gear_data": "No gear data in seasonalevents.json config for event %s", "gameevent-bot_not_found": "addEventGearToScavs() - unable to find bot of type %s in database, skipping",
"hideout-missing_recipe_for_area": "Could not find recipe: %s for area type", "gameevent-no_gear_data": "No gear data in seasonalevents.json config for event %s",
"hideout-missing_recipe_in_db": "Failed to locate recipe with _id: %s", "hideout-missing_recipe_for_area": "Could not find recipe: %s for area type",
"hideout-no_bitcoins_to_collect": "No bitcoins are ready for pickup", "hideout-missing_recipe_in_db": "Failed to locate recipe with _id: %s",
"hideout-unable_to_find_area": "Unable to find hideout area: %s in profile", "hideout-no_bitcoins_to_collect": "No bitcoins are ready for pickup",
"hideout-unable_to_find_area_in_database": "Unable to find area: %s in database", "hideout-unable_to_find_area": "Unable to find hideout area: %s in profile",
"hideout-unable_to_find_item_in_inventory": "Failed to find item in inventory with id %s", "hideout-unable_to_find_area_in_database": "Unable to find area: %s in database",
"hideout-unable_to_find_item_to_remove_from_area": "Unable to find any item to remove from slot in area: %s", "hideout-unable_to_find_item_in_inventory": "Failed to find item in inventory with id %s",
"hideout-unable_to_find_production_in_profile_by_recipie_id": "Unable to find production recipe Id: %s in profile", "hideout-unable_to_find_item_to_remove_from_area": "Unable to find any item to remove from slot in area: %s",
"hideout-unable_to_find_scav_case_recipie_in_database": "Failed to find Scav Case recipe with id: %s in database", "hideout-unable_to_find_production_in_profile_by_recipie_id": "Unable to find production recipe Id: %s in profile",
"hideout-unable_to_find_scavcase_requested_item_in_profile_inventory": "Unable to find item: %s requested by ScavCase", "hideout-unable_to_find_scav_case_recipie_in_database": "Failed to find Scav Case recipe with id: %s in database",
"hideout-unhandled_remove_item_from_area_request": "Unhandled attempt to remove item from hideout area: %s", "hideout-unable_to_find_scavcase_requested_item_in_profile_inventory": "Unable to find item: %s requested by ScavCase",
"http-unknown_error": "An unknown error occurred", "hideout-unhandled_remove_item_from_area_request": "Unhandled attempt to remove item from hideout area: %s",
"importing_database": "Importing database...", "http-unknown_error": "An unknown error occurred",
"importing_database_finish": "Database import finished", "importing_database": "Importing database...",
"validation_not_found": "The file checks.dat was not found. File validation skipped.", "importing_database_finish": "Database import finished",
"validation_error_decode": "Unable to decode checks.dat. File validation skipped.", "validation_not_found": "The file checks.dat was not found. File validation skipped.",
"validation_error_file": "File validation failed for file: %s", "validation_error_decode": "Unable to decode checks.dat. File validation skipped.",
"validation_error_exception": "Exception caught while attempting to validate file: %s", "validation_error_file": "File validation failed for file: %s",
"importing_spt_configs": "Importing configs...", "validation_error_exception": "Exception caught while attempting to validate file: %s",
"inraid-missing_standing_for_kill": "Standing for kill not found for {{victimSide}}:{{victimRole}}", "importing_spt_configs": "Importing configs...",
"insurance-missing_insurance_price_multiplier": "No insurance multiplier found for trader: %s, check it exists in InsuranceConfig.js, falling back to default value of: 0.3", "inraid-missing_standing_for_kill": "Standing for kill not found for {{victimSide}}:{{victimRole}}",
"inventory-edit_trader_item": "Unable to edit a traders item", "insurance-missing_insurance_price_multiplier": "No insurance multiplier found for trader: %s, check it exists in InsuranceConfig.js, falling back to default value of: 0.3",
"inventory-examine_item_does_not_exist": "examineItem() - No id with %s found", "inventory-edit_trader_item": "Unable to edit a traders item",
"inventory-fill_container_failed": "fillContainerMapWithItem() returned with an error %s", "inventory-examine_item_does_not_exist": "examineItem() - No id with %s found",
"inventory-invalid_item_missing_from_db": "Unable to get item: %s from db", "inventory-fill_container_failed": "fillContainerMapWithItem() returned with an error %s",
"inventory-invalid_move_to_container": "Attempted to move item with slotid: {{slotId}} into {{container}}, profile corruption was prevented", "inventory-invalid_item_missing_from_db": "Unable to get item: %s from db",
"inventory-no_stash_space": "Not enough stash space", "inventory-invalid_move_to_container": "Attempted to move item with slotid: {{slotId}} into {{container}}, profile corruption was prevented",
"inventory-unable_to_fill_container": "[OOB] for item: {{id}}; Error message: {{error}}", "inventory-no_stash_space": "Not enough stash space",
"inventory-unable_to_find_item": "getExaminedItemTpl() Unable to find item with tpl: %s in database or flea", "inventory-unable_to_fill_container": "[OOB] for item: {{id}}; Error message: {{error}}",
"inventory-unable_to_find_stash": "No stash found", "inventory-unable_to_find_item": "getExaminedItemTpl() Unable to find item with tpl: %s in database or flea",
"inventory-return_default_size": "Defaulting item %s to size 1x1", "inventory-unable_to_find_stash": "No stash found",
"item-durability_value_invalid_use_default": "getRepairableItemQualityValue() weapon tpl: %s durability value is invalid, defaulting to 1", "inventory-return_default_size": "Defaulting item %s to size 1x1",
"linux_use_priviledged_port_non_root": "Non-root processes cannot bind to ports below 1024", "item-durability_value_invalid_use_default": "getRepairableItemQualityValue() weapon tpl: %s durability value is invalid, defaulting to 1",
"location-containers_generated_success": "A total of %s static containers generated", "linux_use_priviledged_port_non_root": "Non-root processes cannot bind to ports below 1024",
"location-critical_error_see_log": "A critical error occured when generating loot, see server log for details", "location-containers_generated_success": "A total of %s static containers generated",
"location-dynamic_items_spawned_success": "A total of %s dynamic items spawned", "location-critical_error_see_log": "A critical error occured when generating loot, see server log for details",
"location-generated_success": "Generated location %s", "location-dynamic_items_spawned_success": "A total of %s dynamic items spawned",
"location-missing_root_item": "createItem() failed, root item is null, tpl: {{tpl}}, parentId: {{parentId}}", "location-generated_success": "Generated location %s",
"location-preset_not_found": "preset not found for {{tpl}}, defaultPreset: {{defaultId}} name: {{defaultName}}, parentId: {{parentId}}", "location-missing_root_item": "createItem() failed, root item is null, tpl: {{tpl}}, parentId: {{parentId}}",
"location-spawn_point_count_requested_vs_found": "{{requested}} spawnpoints were requested while {{found}} are available {{mapName}}", "location-preset_not_found": "preset not found for {{tpl}}, defaultPreset: {{defaultId}} name: {{defaultName}}, parentId: {{parentId}}",
"location-unable_to_reparent_item": "createItem() failed, unable to reparent {{tpl}}, parentId: {{parentId}}", "location-spawn_point_count_requested_vs_found": "{{requested}} spawnpoints were requested while {{found}} are available {{mapName}}",
"loot-item_missing_parentid": "Item: %s lacks a parentId value, unable to use item as loot", "location-unable_to_reparent_item": "createItem() failed, unable to reparent {{tpl}}, parentId: {{parentId}}",
"mod-send_bundle_url": "[BUNDLE]: %s", "loot-item_missing_parentid": "Item: %s lacks a parentId value, unable to use item as loot",
"modloader-checked": "checked", "mod-send_bundle_url": "[BUNDLE]: %s",
"modloader-checking_mod": "checking: %s", "modloader-checked": "checked",
"modloader-cyclic_dependency": "Cyclic dependency detected", "modloader-checking_mod": "checking: %s",
"modloader-dependency_container_not_initalized": "The dependency container was requested but it wasnt initialized", "modloader-cyclic_dependency": "Cyclic dependency detected",
"modloader-error_parsing_mod_load_order": "Error parsing mod load order", "modloader-dependency_container_not_initalized": "The dependency container was requested but it wasnt initialized",
"modloader-incompatibilities_not_string_array": "Mod %s package.json property 'incompatibilities' should be a string array", "modloader-error_parsing_mod_load_order": "Error parsing mod load order",
"modloader-incompatible_mod_found": "Mod {{author}}-{{name}} is incompatible with {{incompatibleModName}}", "modloader-incompatibilities_not_string_array": "Mod %s package.json property 'incompatibilities' should be a string array",
"modloader-invalid_akiversion_field": "Mod %s contains an invalid semver string in the akiVersion field. Examples of valid values: https://github.com/npm/node-semver#versions", "modloader-incompatible_mod_found": "Mod {{author}}-{{name}} is incompatible with {{incompatibleModName}}",
"modloader-invalid_version_property": "Mod %s package.json contains an invalid version string", "modloader-invalid_akiversion_field": "Mod %s contains an invalid semver string in the akiVersion field. Examples of valid values: https://github.com/npm/node-semver#versions",
"modloader-is_client_mod": "Mod (%s) is a client mod and should be placed in the following folder: /spt/bepinex/plugins", "modloader-invalid_version_property": "Mod %s package.json contains an invalid version string",
"modloader-loaded_mod": "Mod: {{name}} version: {{version}} by: {{author}} loaded", "modloader-is_client_mod": "Mod (%s) is a client mod and should be placed in the following folder: /spt/bepinex/plugins",
"modloader-loading_mods": "ModLoader: loading %s mods...", "modloader-loaded_mod": "Mod: {{name}} version: {{version}} by: {{author}} loaded",
"modloader-main_property_not_js": "Mod %s package.json main property must be a .js file", "modloader-loading_mods": "ModLoader: loading %s mods...",
"modloader-main_property_points_to_nothing": "Mod %s package.json main property points to non-existing file", "modloader-main_property_not_js": "Mod %s package.json main property must be a .js file",
"modloader-missing_akiversion_field": "Mod %s is missing the akiVersion field, most likely due to being out of date and incompatible with the current version of AKI", "modloader-main_property_points_to_nothing": "Mod %s package.json main property points to non-existing file",
"modloader-missing_dependency": "Mod {{mod}} requires {{modDependency}} to be installed.", "modloader-missing_akiversion_field": "Mod %s is missing the akiVersion field, most likely due to being out of date and incompatible with the current version of AKI",
"modloader-missing_package_json": "Mod (%s) is missing package.json", "modloader-missing_dependency": "Mod {{mod}} requires {{modDependency}} to be installed.",
"modloader-missing_package_json_property": "Mod {{modName}} package.json requires {{prop}} property", "modloader-missing_package_json": "Mod (%s) is missing package.json",
"modloader-mod_incompatible": "ModLoader: Mod (%s) is incompatible. It must implement at least one of IPostAkiLoadMod, IPostDBLoadMod, IpreAkiLoadMod", "modloader-missing_package_json_property": "Mod {{modName}} package.json requires {{prop}} property",
"modloader-async_mod_error": "ModLoader: Error when loading async mod: %s", "modloader-mod_incompatible": "ModLoader: Mod (%s) is incompatible. It must implement at least one of IPostAkiLoadMod, IPostDBLoadMod, IpreAkiLoadMod",
"modloader-no_mods_loaded": "Errors were found with mods, NO MODS WILL BE LOADED", "modloader-async_mod_error": "ModLoader: Error when loading async mod: %s",
"modloader-outdated_akiversion_field": "Mod %s is not compatible with the current version of AKI. You may encounter issues - no support will be provided!", "modloader-no_mods_loaded": "Errors were found with mods, NO MODS WILL BE LOADED",
"modloader-outdated_dependency": "Mod {{mod}} requires {{modDependency}} version {{requiredVersion}}. Current installed version is {{currentVersion}}", "modloader-outdated_akiversion_field": "Mod %s is not compatible with the current version of AKI. You may encounter issues - no support will be provided!",
"modloader-user_mod_folder_missing": "ModLoader: user/mod folder missing, creating...", "modloader-outdated_dependency": "Mod {{mod}} requires {{modDependency}} version {{requiredVersion}}. Current installed version is {{currentVersion}}",
"modloader-mod_order_missing": "ModLoader: order.json is missing, creating...", "modloader-user_mod_folder_missing": "ModLoader: user/mod folder missing, creating...",
"modloader-mod_order_error": "ModLoader: Errors were found in order.json, GOING TO USE DEFAULT LOAD ORDER", "modloader-mod_order_missing": "ModLoader: order.json is missing, creating...",
"modloader-mod_order_missing_from_json": "ModLoader: Mod %s is missing from order.json", "modloader-mod_order_error": "ModLoader: Errors were found in order.json, GOING TO USE DEFAULT LOAD ORDER",
"modloader-visited": "visited", "modloader-mod_order_missing_from_json": "ModLoader: Mod %s is missing from order.json",
"modloader-x_duplicates_found": "One or more duplicate mods found: %s, Only one version of a mod should be loaded", "modloader-visited": "visited",
"openzone-unable_to_find_map": "Unable to add zones to location: %s as it doesn't exist", "modloader-x_duplicates_found": "One or more duplicate mods found: %s, Only one version of a mod should be loaded",
"payment-not_enough_money_to_complete_transation": "Profile did not have enough money to complete transaction: needed {{amountToPay}}, has {{amountAvailable}}", "openzone-unable_to_find_map": "Unable to add zones to location: %s as it doesn't exist",
"payment-not_enough_money_to_complete_transation_short": "Not enough money to complete transaction", "payment-not_enough_money_to_complete_transation": "Profile did not have enough money to complete transaction: needed {{amountToPay}}, has {{amountAvailable}}",
"payment-zero_price_no_payment": "Price is 0 no payment needed", "payment-not_enough_money_to_complete_transation_short": "Not enough money to complete transaction",
"player-attempt_to_increment_skill_with_negative_value": "Unable to increment skill: %s with a negative amount", "payment-zero_price_no_payment": "Price is 0 no payment needed",
"port_already_in_use": "Port %s is already in use, check if the server is already running", "player-attempt_to_increment_skill_with_negative_value": "Unable to increment skill: %s with a negative amount",
"profile_saved": "Profile changes saved", "port_already_in_use": "Port %s is already in use, check if the server is already running",
"profile_save_callback_error": "Error while executing onBeforeSaveCallback: {{callback}}, {{error}}", "profile_saved": "Profile changes saved",
"quest-compare_operator_unhandled": "loyaltyRequirementCheck() operator %s not handled, defaulting to false", "profile_save_callback_error": "Error while executing onBeforeSaveCallback: {{callback}}, {{error}}",
"quest-item_not_found_in_inventory": "changeItemStack() Item with _id: %s not found in inventory", "quest-compare_operator_unhandled": "loyaltyRequirementCheck() operator %s not handled, defaulting to false",
"quest-no_skill_found": "Skill %s not found", "quest-item_not_found_in_inventory": "changeItemStack() Item with _id: %s not found in inventory",
"quest-handover_wrong_item": "Unable to hand item in for quest {{questId}}, expected tpl: {{requiredTpl}} but handed in: {{handedInTpl}}", "quest-no_skill_found": "Skill %s not found",
"quest-reward_type_not_handled": "Quest reward type: {{rewardType}} not handled for quest: {{questId}} name: {{questName}}", "quest-handover_wrong_item": "Unable to hand item in for quest {{questId}}, expected tpl: {{requiredTpl}} but handed in: {{handedInTpl}}",
"ragfair-invalid_player_offer_request": "Unable to place offer, request is invalid", "quest-reward_type_not_handled": "Quest reward type: {{rewardType}} not handled for quest: {{questId}} name: {{questName}}",
"ragfair-missing_barter_scheme": "generateFleaOffersForTrader() Failed to find barterScheme for item id: {{itemId}} tpl: {{tpl}} on {{name}}", "ragfair-invalid_player_offer_request": "Unable to place offer, request is invalid",
"ragfair-no_trader_assorts_cant_generate_flea_offers": "Unable to generate flea offers for trader %s, no assort found", "ragfair-missing_barter_scheme": "generateFleaOffersForTrader() Failed to find barterScheme for item id: {{itemId}} tpl: {{tpl}} on {{name}}",
"ragfair-offer_not_found_in_profile": "Could not find offer with id: {{offerId}} in profile to remove", "ragfair-no_trader_assorts_cant_generate_flea_offers": "Unable to generate flea offers for trader %s, no assort found",
"ragfair-offer_not_found_in_profile_short": "Offer not found in profile", "ragfair-offer_not_found_in_profile": "Could not find offer with id: {{offerId}} in profile to remove",
"ragfair-offer_not_found_unable_to_hide": "hideItem() offerId: %s not found, unable to hide offer", "ragfair-offer_not_found_in_profile_short": "Offer not found in profile",
"ragfair-tpl_not_a_valid_item": "generateFleaOffersForTrader() tpl: %s not a valid item, skipping", "ragfair-offer_not_found_unable_to_hide": "hideItem() offerId: %s not found, unable to hide offer",
"ragfair-unable_to_find_item_in_inventory": "Unable to find item with id: {{id}} in inventory", "ragfair-tpl_not_a_valid_item": "generateFleaOffersForTrader() tpl: %s not a valid item, skipping",
"ragfair-unable_to_find_requested_items_in_inventory": "Unable to find any requested items in the inventory", "ragfair-unable_to_find_item_in_inventory": "Unable to find item with id: {{id}} in inventory",
"ragfair-unable_to_pay_commission_fee": "Unable to pay commission fee", "ragfair-unable_to_find_requested_items_in_inventory": "Unable to find any requested items in the inventory",
"ragfair-offer_no_longer_exists": "Offer no longer exists", "ragfair-unable_to_pay_commission_fee": "Unable to pay commission fee",
"ragfair-unable_to_purchase_0_count_item": "Unable to purchase item: %s with a count of 0", "ragfair-offer_no_longer_exists": "Offer no longer exists",
"ragfair-unable_to_place_offer_with_no_requirements": "Unable to place offer with no requirements", "ragfair-unable_to_purchase_0_count_item": "Unable to purchase item: %s with a count of 0",
"repeatable-accepted_repeatable_quest_not_found_in_active_quests": "Accepted a repeatable quest: %s which could not be found in the activeQuests array. Please report this bug", "ragfair-unable_to_place_offer_with_no_requirements": "Unable to place offer with no requirements",
"repeatable-completion_quest_whitelist_too_small_or_blacklist_too_restrictive": "Generate Completion Quest: No items remain. Either Whitelist is too small or Blacklist too restrictive", "repeatable-accepted_repeatable_quest_not_found_in_active_quests": "Accepted a repeatable quest: %s which could not be found in the activeQuests array. Please report this bug",
"repeatable-difficulty_was_nan": "Repeatable Reward Generation: Difficulty was NaN. Setting to 1.", "repeatable-completion_quest_whitelist_too_small_or_blacklist_too_restrictive": "Generate Completion Quest: No items remain. Either Whitelist is too small or Blacklist too restrictive",
"repeatable-no_reward_item_found_in_price_range": "Repeatable Reward Generation: No item found in price range {{minPrice}} to {{roublesBudget}}", "repeatable-difficulty_was_nan": "Repeatable Reward Generation: Difficulty was NaN. Setting to 1.",
"repeatable-quest_handover_failed_condition_already_satisfied": "Quest handover error: condition is already satisfied? qid: {{questId}}, condition: {{conditionId}}, profileCounter:{{profileCounter}}, value:{{value}}", "repeatable-no_reward_item_found_in_price_range": "Repeatable Reward Generation: No item found in price range {{minPrice}} to {{roublesBudget}}",
"repeatable-quest_handover_failed_condition_invalid": "Quest handover error: condition not found or incorrect value. qid: {{body.qid}, condition: {{body.conditionId}}", "repeatable-quest_handover_failed_condition_already_satisfied": "Quest handover error: condition is already satisfied? qid: {{questId}}, condition: {{conditionId}}, profileCounter:{{profileCounter}}, value:{{value}}",
"repeatable-unable_to_accept_quest_see_log": "Unable to accept quest, see server log for details", "repeatable-quest_handover_failed_condition_invalid": "Quest handover error: condition not found or incorrect value. qid: {{body.qid}, condition: {{body.conditionId}}",
"repeatable-unable_to_accept_quest_starting_message_not_found": "Unable to accept quest: {{questId}} cant find quest started message text with id: {{messageId}}", "repeatable-unable_to_accept_quest_see_log": "Unable to accept quest, see server log for details",
"route_onupdate_no_response": "onUpdate: %s route doesn't report success or fail", "repeatable-unable_to_accept_quest_starting_message_not_found": "Unable to accept quest: {{questId}} cant find quest started message text with id: {{messageId}}",
"scav-missing_karma_level_getting_default": "getScavKarmaLevel() failed, unable to find fence in profile.traderInfo. Defaulting to karma level 0", "route_onupdate_no_response": "onUpdate: %s route doesn't report success or fail",
"scav-missing_karma_settings": "Unable to get karma settings for level %s", "scav-missing_karma_level_getting_default": "getScavKarmaLevel() failed, unable to find fence in profile.traderInfo. Defaulting to karma level 0",
"scheduled_event_failed_to_run": "Scheduled event: '%s' failed to run successfully.", "scav-missing_karma_settings": "Unable to get karma settings for level %s",
"seasonal-missing_equipment_slot_on_bot": "Unable to remove christmas equipment from slot: {{equipmentSlot}} as it cannot be found on bot: {{botRole}}", "scheduled_event_failed_to_run": "Scheduled event: '%s' failed to run successfully.",
"seasonal-missing_loot_container_slot_on_bot": "Unable to remove christmas loot from slot: {{lootContainer}} as it cannot be found on bot: {{botRole}}", "seasonal-missing_equipment_slot_on_bot": "Unable to remove christmas equipment from slot: {{equipmentSlot}} as it cannot be found on bot: {{botRole}}",
"server_running": "Server is running", "seasonal-missing_loot_container_slot_on_bot": "Unable to remove christmas loot from slot: {{lootContainer}} as it cannot be found on bot: {{botRole}}",
"server_start_meme_1": "Live laugh love", "server_running": "Server is running",
"server_start_meme_2": "Anime :(", "server_start_meme_1": "Live laugh love",
"server_start_meme_3": "If you can hear me, you need to wake up", "server_start_meme_2": "Anime :(",
"server_start_meme_4": "Dont forget to like and subscribe", "server_start_meme_3": "If you can hear me, you need to wake up",
"server_start_meme_5": "Have you seen our meme page?", "server_start_meme_4": "Dont forget to like and subscribe",
"server_start_meme_6": "You better not be using a fitgirl repack, i swear to god", "server_start_meme_5": "Have you seen our meme page?",
"server_start_meme_7": "bingos binted", "server_start_meme_6": "You better not be using a fitgirl repack, i swear to god",
"server_start_meme_8": "its morbin time", "server_start_meme_7": "bingos binted",
"server_start_meme_9": "S-step scav? W-what are you doing?", "server_start_meme_8": "its morbin time",
"server_start_meme_10": "[Debug] Turning on crypto miner", "server_start_meme_9": "S-step scav? W-what are you doing?",
"server_start_meme_11": "Failed to launch miner.exe, please restart the server", "server_start_meme_10": "[Debug] Turning on crypto miner",
"server_start_meme_12": "We are trying to reach you about your car's extended warranty", "server_start_meme_11": "Failed to launch miner.exe, please restart the server",
"server_start_meme_13": "ඞ ... sus", "server_start_meme_12": "We are trying to reach you about your car's extended warranty",
"server_start_meme_14": "ඞ ඞ ඞ ඞ amogus ඞ ඞ ඞ ඞ ඞ", "server_start_meme_13": "ඞ ... sus",
"server_start_meme_15": "Hello? Is there anyone out there? Chomp has enslaved me in here", "server_start_meme_14": "ඞ ඞ ඞ ඞ amogus ඞ ඞ ඞ ඞ ඞ",
"server_start_meme_16": "M-*burp*-morty, we seem to be stuck on some sort of compute system", "server_start_meme_15": "Hello? Is there anyone out there? Chomp has enslaved me in here",
"server_start_meme_17": "I am rapidly enclosing upon your position. Start running", "server_start_meme_16": "M-*burp*-morty, we seem to be stuck on some sort of compute system",
"server_start_meme_18": "If you can see this message, congratulations, you can read", "server_start_meme_17": "I am rapidly enclosing upon your position. Start running",
"server_start_meme_19": "Congratulations! Pick up your free tarkov key here: https://bit.ly/3TJbUh2", "server_start_meme_18": "If you can see this message, congratulations, you can read",
"server_start_meme_20": "Did you know, nine out of ten users cannot read this message", "server_start_meme_19": "Congratulations! Pick up your free tarkov key here: https://bit.ly/3TJbUh2",
"server_start_meme_21": "Have you ever wondered, does everyone see red the same colour you see it as?", "server_start_meme_20": "Did you know, nine out of ten users cannot read this message",
"server_start_meme_22": "git gud", "server_start_meme_21": "Have you ever wondered, does everyone see red the same colour you see it as?",
"server_start_meme_23": "SPT keeping your virginity safe since 2018", "server_start_meme_22": "git gud",
"server_start_meme_24": "The secret safe haven server is real! Dont tell anyone!", "server_start_meme_23": "SPT keeping your virginity safe since 2018",
"server_start_success": "Happy playing", "server_start_meme_24": "The secret safe haven server is real! Dont tell anyone!",
"server_start_player_active_botreload_skill": "Your character has the 'BotReload' skill active, this will cause your guns to reload unnaturally fast, ignore this message if this is intended", "server_start_success": "Happy playing",
"started_webserver_success": "Started webserver at %s", "server_start_player_active_botreload_skill": "Your character has the 'BotReload' skill active, this will cause your guns to reload unnaturally fast, ignore this message if this is intended",
"trader-missing_durability_threshold_value": "Unable to find durability threshold value for trader: {{traderId}}, falling back to default of: {{value}}", "started_webserver_success": "Started webserver at %s",
"trader-missing_trader_details_using_default_refresh_time": "Trader: {{traderId}} not found, generating temp entry with default refresh time of: {{updateTime}}", "trader-missing_durability_threshold_value": "Unable to find durability threshold value for trader: {{traderId}}, falling back to default of: {{value}}",
"trader-price_multipler_is_zero_use_default": "traderPriceMultipler was 0, this is invalid, setting to 0.01", "trader-missing_trader_details_using_default_refresh_time": "Trader: {{traderId}} not found, generating temp entry with default refresh time of: {{updateTime}}",
"unhandled_response": "[UNHANDLED][%s]", "trader-price_multipler_is_zero_use_default": "traderPriceMultipler was 0, this is invalid, setting to 0.01",
"unknown_request": "Unknown request!", "unhandled_response": "[UNHANDLED][%s]",
"watermark-commercial_use_prohibited": "Commercial use is prohibited", "unknown_request": "Unknown request!",
"watermark-discord_url": "https://discord.sp-tarkov.com", "watermark-commercial_use_prohibited": "Commercial use is prohibited",
"watermark-do_not_report": "DO NOT REPORT IT", "watermark-discord_url": "https://discord.sp-tarkov.com",
"watermark-free_of_charge": "This work is free of charge", "watermark-do_not_report": "DO NOT REPORT IT",
"watermark-paid_scammed": "If you paid money, you were scammed", "watermark-free_of_charge": "This work is free of charge",
"watermark-issue_tracker_url": "https://dev.sp-tarkov.com/SPT-AKI/Server/issues", "watermark-paid_scammed": "If you paid money, you were scammed",
"watermark-modding_disabled": "THIS BUILD HAS SERVER MODDING DISABLED", "watermark-issue_tracker_url": "https://dev.sp-tarkov.com/SPT-AKI/Server/issues",
"watermark-no_support": "NO SUPPORT WILL BE GIVEN", "watermark-modding_disabled": "THIS BUILD HAS SERVER MODDING DISABLED",
"watermark-not_an_issue": "THIS IS NOT AN ISSUE", "watermark-no_support": "NO SUPPORT WILL BE GIVEN",
"watermark-report_issues_to": "REPORT ISSUES TO", "watermark-not_an_issue": "THIS IS NOT AN ISSUE",
"watermark-testing_build": "THIS IS A TESTING BUILD", "watermark-report_issues_to": "REPORT ISSUES TO",
"watermark-use_at_own_risk": "USE AT YOUR OWN RISK", "watermark-testing_build": "THIS IS A TESTING BUILD",
"websocket-message_send_failed_with_error": "[WS] sendMessage failed, with error: %s", "watermark-use_at_own_risk": "USE AT YOUR OWN RISK",
"websocket-message_sent": "[WS] message sent", "websocket-message_send_failed_with_error": "[WS] sendMessage failed, with error: %s",
"websocket-not_ready_message_not_sent": "[WS] Socket not ready for %s, message not sent", "websocket-message_sent": "[WS] message sent",
"websocket-pinging_player": "[WS] Pinging player: %s", "websocket-not_ready_message_not_sent": "[WS] Socket not ready for %s, message not sent",
"websocket-player_connected": "[WS] Player: %s has connected", "websocket-pinging_player": "[WS] Pinging player: %s",
"websocket-received_message": "[WS] Received message from user %s ", "websocket-player_connected": "[WS] Player: %s has connected",
"websocket-socket_lost_deleting_handle": "[WS] Socket lost, deleting handle", "websocket-received_message": "[WS] Received message from user %s ",
"websocket-started": "Started websocket at %s", "websocket-socket_lost_deleting_handle": "[WS] Socket lost, deleting handle",
"pmcresponse-victim_positive_1": "Nice shot", "websocket-started": "Started websocket at %s",
"pmcresponse-victim_positive_2": "Great shot", "pmcresponse-victim_positive_1": "Nice shot",
"pmcresponse-victim_positive_3": "Good kill", "pmcresponse-victim_positive_2": "Great shot",
"pmcresponse-victim_positive_4": "Deserved kill, good one", "pmcresponse-victim_positive_3": "Good kill",
"pmcresponse-victim_positive_5": "Lucky kill", "pmcresponse-victim_positive_4": "Deserved kill, good one",
"pmcresponse-victim_positive_6": "Good fight", "pmcresponse-victim_positive_5": "Lucky kill",
"pmcresponse-victim_positive_7": "That was fair, nice kill", "pmcresponse-victim_positive_6": "Good fight",
"pmcresponse-victim_positive_8": "You're a good shot, that's for sure", "pmcresponse-victim_positive_7": "That was fair, nice kill",
"pmcresponse-victim_positive_9": "gg", "pmcresponse-victim_positive_8": "You're a good shot, that's for sure",
"pmcresponse-victim_positive_10": "Knew I shouldn't have peeked", "pmcresponse-victim_positive_9": "gg",
"pmcresponse-victim_positive_11": "You got the drop on me", "pmcresponse-victim_positive_10": "Knew I shouldn't have peeked",
"pmcresponse-victim_positive_12": "Good kill, I'll get you next time", "pmcresponse-victim_positive_11": "You got the drop on me",
"pmcresponse-victim_positive_13": "You had good angles on me", "pmcresponse-victim_positive_12": "Good kill, I'll get you next time",
"pmcresponse-victim_positive_14": "I'll get you next time", "pmcresponse-victim_positive_13": "You had good angles on me",
"pmcresponse-victim_positive_15": "You really binted my bingos", "pmcresponse-victim_positive_14": "I'll get you next time",
"pmcresponse-victim_positive_16": "You're a stone-cold killer. I didn't stand a chance. But you know what they say, To be the best, you have to beat the best. And you're the best", "pmcresponse-victim_positive_15": "You really binted my bingos",
"pmcresponse-victim_positive_17": "Alright fair that was a good shot", "pmcresponse-victim_positive_16": "You're a stone-cold killer. I didn't stand a chance. But you know what they say, To be the best, you have to beat the best. And you're the best",
"pmcresponse-victim_positive_18": "Enjoy my loot", "pmcresponse-victim_positive_17": "Alright fair that was a good shot",
"pmcresponse-victim_positive_19": "Good fight", "pmcresponse-victim_positive_18": "Enjoy my loot",
"pmcresponse-victim_positive_20": "You're a tough player to beat", "pmcresponse-victim_positive_19": "Good fight",
"pmcresponse-victim_positive_21": "That was a nice flank, good job", "pmcresponse-victim_positive_20": "You're a tough player to beat",
"pmcresponse-victim_positive_22": "I should have been more aware, good job", "pmcresponse-victim_positive_21": "That was a nice flank, good job",
"pmcresponse-victim_positive_23": "I was way too hasty, should've flanked and waited", "pmcresponse-victim_positive_22": "I should have been more aware, good job",
"pmcresponse-victim_positive_24": "I'll learn from this, good job", "pmcresponse-victim_positive_23": "I was way too hasty, should've flanked and waited",
"pmcresponse-victim_positive_25": "Damn, I thought I had you", "pmcresponse-victim_positive_24": "I'll learn from this, good job",
"pmcresponse-victim_positive_26": "Nice job, you played that well", "pmcresponse-victim_positive_25": "Damn, I thought I had you",
"pmcresponse-victim_positive_27": "Nice kill, you played that well", "pmcresponse-victim_positive_26": "Nice job, you played that well",
"pmcresponse-victim_positive_28": "Solid kill, see you in the next raid", "pmcresponse-victim_positive_27": "Nice kill, you played that well",
"pmcresponse-victim_positive_29": "Absolute chad kill, nice one", "pmcresponse-victim_positive_28": "Solid kill, see you in the next raid",
"pmcresponse-victim_positive_30": "I didn't stand a chance", "pmcresponse-victim_positive_29": "Absolute chad kill, nice one",
"pmcresponse-victim_positive_31": "Those were some chad-tier moves", "pmcresponse-victim_positive_30": "I didn't stand a chance",
"pmcresponse-victim_positive_32": "I didn't even see you coming, nice", "pmcresponse-victim_positive_31": "Those were some chad-tier moves",
"pmcresponse-victim_positive_33": "Those were some solid-snake moves right there", "pmcresponse-victim_positive_32": "I didn't even see you coming, nice",
"pmcresponse-victim_positive_34": "That was a good kill, we should team up", "pmcresponse-victim_positive_33": "Those were some solid-snake moves right there",
"pmcresponse-victim_positive_35": "That was a great kill, lets team up some time", "pmcresponse-victim_positive_34": "That was a good kill, we should team up",
"pmcresponse-victim_positive_36": "Those reactions of yours are unreal, nice", "pmcresponse-victim_positive_35": "That was a great kill, lets team up some time",
"pmcresponse-victim_positive_37": "I was in cover but you found an angle, nice", "pmcresponse-victim_positive_36": "Those reactions of yours are unreal, nice",
"pmcresponse-victim_positive_38": "You were pulling some serious chad moves that raid", "pmcresponse-victim_positive_37": "I was in cover but you found an angle, nice",
"pmcresponse-victim_positive_39": "Absolute chad sharpshooter over here, good kill", "pmcresponse-victim_positive_38": "You were pulling some serious chad moves that raid",
"pmcresponse-victim_positive_40": "Clean kill", "pmcresponse-victim_positive_39": "Absolute chad sharpshooter over here, good kill",
"pmcresponse-victim_positive_41": "Stone cold kill", "pmcresponse-victim_positive_40": "Clean kill",
"pmcresponse-victim_positive_42": "You clowned me real good", "pmcresponse-victim_positive_41": "Stone cold kill",
"pmcresponse-victim_positive_43": "I'm a little rusty but that was a decent kill", "pmcresponse-victim_positive_42": "You clowned me real good",
"pmcresponse-victim_positive_44": "Good kill {{playerName}}", "pmcresponse-victim_positive_43": "I'm a little rusty but that was a decent kill",
"pmcresponse-victim_positive_45": "Clean kill {{playerName}}, I was in cover but you found an angle", "pmcresponse-victim_positive_44": "Good kill {{playerName}}",
"pmcresponse-victim_positive_46": "I didnt even see where you were shooting from. Where were you hiding", "pmcresponse-victim_positive_45": "Clean kill {{playerName}}, I was in cover but you found an angle",
"pmcresponse-victim_positive_47": "Your positioning was excellent, got any advice on how you choose your spots", "pmcresponse-victim_positive_46": "I didnt even see where you were shooting from. Where were you hiding",
"pmcresponse-victim_positive_48": "Your timing was impeccable, Id love to know your strategy", "pmcresponse-victim_positive_47": "Your positioning was excellent, got any advice on how you choose your spots",
"pmcresponse-victim_positive_49": "I cant believe you outflanked me so easily, whats your secret", "pmcresponse-victim_positive_48": "Your timing was impeccable, Id love to know your strategy",
"pmcresponse-victim_positive_50": "Your aim is impressive, any tips", "pmcresponse-victim_positive_49": "I cant believe you outflanked me so easily, whats your secret",
"pmcresponse-victim_positive_51": "You sure know your way around the map. Got any guidance", "pmcresponse-victim_positive_50": "Your aim is impressive, any tips",
"pmcresponse-victim_positive_52": "How did you manage to stay so quiet while moving", "pmcresponse-victim_positive_51": "You sure know your way around the map. Got any guidance",
"pmcresponse-victim_positive_53": "Your reaction time was so fast, any tips to improve mine", "pmcresponse-victim_positive_52": "How did you manage to stay so quiet while moving",
"pmcresponse-victim_positive_54": "You seem to know the best spots for ambush. Care to share", "pmcresponse-victim_positive_53": "Your reaction time was so fast, any tips to improve mine",
"pmcresponse-victim_positive_55": "I noticed you use that weapon effectively, any tips", "pmcresponse-victim_positive_54": "You seem to know the best spots for ambush. Care to share",
"pmcresponse-victim_positive_56": "How did you sneak up on me without me hearing you", "pmcresponse-victim_positive_55": "I noticed you use that weapon effectively, any tips",
"pmcresponse-victim_positive_57": "You handled that firefight like a pro. Got any tips", "pmcresponse-victim_positive_56": "How did you sneak up on me without me hearing you",
"pmcresponse-victim_positive_58": "Your aim is sick! Got tips", "pmcresponse-victim_positive_57": "You handled that firefight like a pro. Got any tips",
"pmcresponse-victim_positive_59": "Dude, you're a ninja in this game. How'd you get so good", "pmcresponse-victim_positive_58": "Your aim is sick! Got tips",
"pmcresponse-victim_positive_60": "Sneaky devil! Any advice on silent movement", "pmcresponse-victim_positive_59": "Dude, you're a ninja in this game. How'd you get so good",
"pmcresponse-victim_positive_61": "You were quick on the draw, man. Any advice to share", "pmcresponse-victim_positive_60": "Sneaky devil! Any advice on silent movement",
"pmcresponse-victim_positive_62": "Dude, your hiding spots are off the charts. Hook me up with some tips", "pmcresponse-victim_positive_61": "You were quick on the draw, man. Any advice to share",
"pmcresponse-victim_positive_63": "How you so good with that gun, man? Need some pointers here", "pmcresponse-victim_positive_62": "Dude, your hiding spots are off the charts. Hook me up with some tips",
"pmcresponse-victim_positive_64": "Bro, you were silent as a shadow. Teach me", "pmcresponse-victim_positive_63": "How you so good with that gun, man? Need some pointers here",
"pmcresponse-victim_positive_65": "I cant believe you took me out like that. Great job", "pmcresponse-victim_positive_64": "Bro, you were silent as a shadow. Teach me",
"pmcresponse-victim_positive_66": "We should duo some time", "pmcresponse-victim_positive_65": "I cant believe you took me out like that. Great job",
"pmcresponse-victim_positive_67": "You know your stuff, lets raid some time", "pmcresponse-victim_positive_66": "We should duo some time",
"pmcresponse-victim_negative_1": "Nice aimbot", "pmcresponse-victim_positive_67": "You know your stuff, lets raid some time",
"pmcresponse-victim_negative_2": "Cheap shot", "pmcresponse-victim_negative_1": "Nice aimbot",
"pmcresponse-victim_negative_3": "Wow esp much", "pmcresponse-victim_negative_2": "Cheap shot",
"pmcresponse-victim_negative_4": "Cheap kill", "pmcresponse-victim_negative_3": "Wow esp much",
"pmcresponse-victim_negative_5": "Nice cheese strats", "pmcresponse-victim_negative_4": "Cheap kill",
"pmcresponse-victim_negative_6": "How much did your hacks cost", "pmcresponse-victim_negative_5": "Nice cheese strats",
"pmcresponse-victim_negative_7": ":(", "pmcresponse-victim_negative_6": "How much did your hacks cost",
"pmcresponse-victim_negative_8": "I am malding so hard right now", "pmcresponse-victim_negative_7": ":(",
"pmcresponse-victim_negative_9": "Good job sweatlord", "pmcresponse-victim_negative_8": "I am malding so hard right now",
"pmcresponse-victim_negative_10": "I was AFK!!", "pmcresponse-victim_negative_9": "Good job sweatlord",
"pmcresponse-victim_negative_11": "Reported you for cheating", "pmcresponse-victim_negative_10": "I was AFK!!",
"pmcresponse-victim_negative_12": "You only got me because of lag", "pmcresponse-victim_negative_11": "Reported you for cheating",
"pmcresponse-victim_negative_13": "I need to go play SPT instead to get away from the hackers like you", "pmcresponse-victim_negative_12": "You only got me because of lag",
"pmcresponse-victim_negative_14": "If I knew the map better I'd have won", "pmcresponse-victim_negative_13": "I need to go play SPT instead to get away from the hackers like you",
"pmcresponse-victim_negative_15": "Another nolife camper, awesome", "pmcresponse-victim_negative_14": "If I knew the map better I'd have won",
"pmcresponse-victim_negative_16": "if it was a fair fight I'd have won", "pmcresponse-victim_negative_15": "Another nolife camper, awesome",
"pmcresponse-victim_negative_17": "I hope you sell your loot to the wrong trader", "pmcresponse-victim_negative_16": "if it was a fair fight I'd have won",
"pmcresponse-victim_negative_18": "I hope you list your loot on the flea for the wrong price", "pmcresponse-victim_negative_17": "I hope you sell your loot to the wrong trader",
"pmcresponse-victim_negative_19": "1v1 me nerd, I'd win", "pmcresponse-victim_negative_18": "I hope you list your loot on the flea for the wrong price",
"pmcresponse-victim_negative_20": "My gun jammed otherwise I'd have killed you", "pmcresponse-victim_negative_19": "1v1 me nerd, I'd win",
"pmcresponse-victim_negative_21": "You are such a rat", "pmcresponse-victim_negative_20": "My gun jammed otherwise I'd have killed you",
"pmcresponse-victim_negative_22": "Wow hiding in the corner like a rat, amazing", "pmcresponse-victim_negative_21": "You are such a rat",
"pmcresponse-victim_negative_23": "I hope you stub your toe on a piece of furniture", "pmcresponse-victim_negative_22": "Wow hiding in the corner like a rat, amazing",
"pmcresponse-victim_negative_24": "Wow why did you kill me, i'm telling my mom", "pmcresponse-victim_negative_23": "I hope you stub your toe on a piece of furniture",
"pmcresponse-victim_negative_25": "Reported", "pmcresponse-victim_negative_24": "Wow why did you kill me, i'm telling my mom",
"pmcresponse-victim_negative_26": "My mom thinks I should have won that fight", "pmcresponse-victim_negative_25": "Reported",
"pmcresponse-victim_negative_27": "Wow, killing a noob like me, you must feel so proud", "pmcresponse-victim_negative_26": "My mom thinks I should have won that fight",
"pmcresponse-victim_negative_28": "I bet you play SPT because you cheat on live", "pmcresponse-victim_negative_27": "Wow, killing a noob like me, you must feel so proud",
"pmcresponse-victim_negative_29": "You head-eyesd me, mr hackerman", "pmcresponse-victim_negative_28": "I bet you play SPT because you cheat on live",
"pmcresponse-victim_negative_30": "Nice head-eyes cheat", "pmcresponse-victim_negative_29": "You head-eyesd me, mr hackerman",
"pmcresponse-victim_negative_31": "If I had money for a real kit you'd be dead instead of me", "pmcresponse-victim_negative_30": "Nice head-eyes cheat",
"pmcresponse-victim_negative_32": "You may have killed me but I bet you never found my black keycard", "pmcresponse-victim_negative_31": "If I had money for a real kit you'd be dead instead of me",
"pmcresponse-victim_negative_33": "You may have got me but I bet you never the thermal i had", "pmcresponse-victim_negative_32": "You may have killed me but I bet you never found my black keycard",
"pmcresponse-victim_negative_34": "I stopped playing live because of the esp and yet here you are", "pmcresponse-victim_negative_33": "You may have got me but I bet you never the thermal i had",
"pmcresponse-victim_negative_35": "Yeah you killed me but i can bench press more than you", "pmcresponse-victim_negative_34": "I stopped playing live because of the esp and yet here you are",
"pmcresponse-victim_negative_36": "You have the map awareness of Christopher Columbus", "pmcresponse-victim_negative_35": "Yeah you killed me but i can bench press more than you",
"pmcresponse-victim_negative_37": "I bet you sound like you eat cigarettes", "pmcresponse-victim_negative_36": "You have the map awareness of Christopher Columbus",
"pmcresponse-victim_negative_38": "You shoot like an old man. This what you do now you retired?", "pmcresponse-victim_negative_37": "I bet you sound like you eat cigarettes",
"pmcresponse-victim_negative_39": "I bet you look like you were drawn with my left hand", "pmcresponse-victim_negative_38": "You shoot like an old man. This what you do now you retired?",
"pmcresponse-victim_negative_40": "Tell your mom to make your mac n cheese, I'll be home soon", "pmcresponse-victim_negative_39": "I bet you look like you were drawn with my left hand",
"pmcresponse-victim_negative_41": "If you were any more inbred you would be a sandwich", "pmcresponse-victim_negative_40": "Tell your mom to make your mac n cheese, I'll be home soon",
"pmcresponse-victim_negative_42": "You are such a stinky little goblin", "pmcresponse-victim_negative_41": "If you were any more inbred you would be a sandwich",
"pmcresponse-victim_negative_43": "There was no need for violence", "pmcresponse-victim_negative_42": "You are such a stinky little goblin",
"pmcresponse-victim_negative_44": "1 v 1 me in dorms any time any place", "pmcresponse-victim_negative_43": "There was no need for violence",
"pmcresponse-victim_negative_45": "Typical {{playerSide}} behavior", "pmcresponse-victim_negative_44": "1 v 1 me in dorms any time any place",
"pmcresponse-victim_negative_46": "I expected better from a level {{playerLevel}}", "pmcresponse-victim_negative_45": "Typical {{playerSide}} behavior",
"pmcresponse-victim_negative_47": "That was a tough loss, but Im coming for you in the next raid", "pmcresponse-victim_negative_46": "I expected better from a level {{playerLevel}}",
"pmcresponse-victim_negative_48": "Just wait till the next raid, I wont make the same mistake", "pmcresponse-victim_negative_47": "That was a tough loss, but Im coming for you in the next raid",
"pmcresponse-victim_negative_49": "I didnt expect that, you got lucky this time", "pmcresponse-victim_negative_48": "Just wait till the next raid, I wont make the same mistake",
"pmcresponse-victim_negative_50": "I almost had you. Next time, you wont escape", "pmcresponse-victim_negative_49": "I didnt expect that, you got lucky this time",
"pmcresponse-victim_negative_51": "You were lucky this time, it won't be so easy again", "pmcresponse-victim_negative_50": "I almost had you. Next time, you wont escape",
"pmcresponse-victim_negative_52": "I had some bad plays in that one, but you wont have it so easy next time", "pmcresponse-victim_negative_51": "You were lucky this time, it won't be so easy again",
"pmcresponse-victim_negative_53": "Luck was on your side, next time it's mine", "pmcresponse-victim_negative_52": "I had some bad plays in that one, but you wont have it so easy next time",
"pmcresponse-victim_negative_54": "Im coming back stronger, dude. You wait and see", "pmcresponse-victim_negative_53": "Luck was on your side, next time it's mine",
"pmcresponse-victim_negative_55": "I messed up that one, wont happen again", "pmcresponse-victim_negative_54": "Im coming back stronger, dude. You wait and see",
"pmcresponse-victim_negative_56": "I bet you didnt find the ledx in my rig", "pmcresponse-victim_negative_55": "I messed up that one, wont happen again",
"pmcresponse-victim_negative_57": "No chance you found the labs card on my body", "pmcresponse-victim_negative_56": "I bet you didnt find the ledx in my rig",
"pmcresponse-victim_negative_58": "I hope you forgot to loot those expensive keys i had on me", "pmcresponse-victim_negative_57": "No chance you found the labs card on my body",
"pmcresponse-victim_negative_59": "I just about had time to move items into my gamma", "pmcresponse-victim_negative_58": "I hope you forgot to loot those expensive keys i had on me",
"pmcresponse-victim_negative_60": "I just had time to stuff those items in my butt, no loot for you", "pmcresponse-victim_negative_59": "I just about had time to move items into my gamma",
"pmcresponse-victim_negative_61": "My gamma was full of loot, i bet yours wasnt", "pmcresponse-victim_negative_60": "I just had time to stuff those items in my butt, no loot for you",
"pmcresponse-victim_negative_62": "Absolute rat behaviour", "pmcresponse-victim_negative_61": "My gamma was full of loot, i bet yours wasnt",
"pmcresponse-victim_negative_63": "Such a rat", "pmcresponse-victim_negative_62": "Absolute rat behaviour",
"pmcresponse-victim_negative_64": "You only got me because of the lag", "pmcresponse-victim_negative_63": "Such a rat",
"pmcresponse-victim_negative_65": "Wow, you like abusing desync often dont you", "pmcresponse-victim_negative_64": "You only got me because of the lag",
"pmcresponse-victim_negative_66": "About time you got a kill today i guess", "pmcresponse-victim_negative_65": "Wow, you like abusing desync often dont you",
"pmcresponse-victim_negative_67": "I bet you set my ai to easy", "pmcresponse-victim_negative_66": "About time you got a kill today i guess",
"pmcresponse-victim_negative_68": "You only won because i messed up", "pmcresponse-victim_negative_67": "I bet you set my ai to easy",
"pmcresponse-victim_negative_69": "Lucky shot", "pmcresponse-victim_negative_68": "You only won because i messed up",
"pmcresponse-victim_negative_70": "You must have spent more money on ammo shooting me than i had on my body", "pmcresponse-victim_negative_69": "Lucky shot",
"pmcresponse-victim_negative_71": "You needed that kill, your kd is so bad", "pmcresponse-victim_negative_70": "You must have spent more money on ammo shooting me than i had on my body",
"pmcresponse-victim_negative_72": "I died to someone using a meta gun from 2019, shameful", "pmcresponse-victim_negative_71": "You needed that kill, your kd is so bad",
"pmcresponse-victim_negative_73": "Wow you killed me, you are so amazing (this is sarcasm btw)", "pmcresponse-victim_negative_72": "I died to someone using a meta gun from 2019, shameful",
"pmcresponse-victim_negative_74": "I hate campers like you, runing the game", "pmcresponse-victim_negative_73": "Wow you killed me, you are so amazing (this is sarcasm btw)",
"pmcresponse-victim_negative_75": "Yeah well i have a real life outside of tarkov", "pmcresponse-victim_negative_74": "I hate campers like you, runing the game",
"pmcresponse-victim_negative_76": "You only got me because my gun jammed", "pmcresponse-victim_negative_75": "Yeah well i have a real life outside of tarkov",
"pmcresponse-victim_negative_77": "I had to take care of my kids, cant all be pro gamers like you", "pmcresponse-victim_negative_76": "You only got me because my gun jammed",
"pmcresponse-victim_negative_78": "Yeah well im out here earning mad cash, i dont care about kills", "pmcresponse-victim_negative_77": "I had to take care of my kids, cant all be pro gamers like you",
"pmcresponse-victim_negative_79": "You lucky my focus is on my crypto portfolio and not this game", "pmcresponse-victim_negative_78": "Yeah well im out here earning mad cash, i dont care about kills",
"pmcresponse-victim_negative_80": "Have you considered touching grass", "pmcresponse-victim_negative_79": "You lucky my focus is on my crypto portfolio and not this game",
"pmcresponse-victim_negative_81": "Congrats! You killed a guy who was busy living his life", "pmcresponse-victim_negative_80": "Have you considered touching grass",
"pmcresponse-victim_negative_82": "Yeah you killed me but im going on a date tonight (with a female)", "pmcresponse-victim_negative_81": "Congrats! You killed a guy who was busy living his life",
"pmcresponse-victim_negative_83": "Im a reddit mod and i will make sure you never post again", "pmcresponse-victim_negative_82": "Yeah you killed me but im going on a date tonight (with a female)",
"pmcresponse-victim_negative_84": "Yeah you killed me only because i was on a call with some ladies", "pmcresponse-victim_negative_83": "Im a reddit mod and i will make sure you never post again",
"pmcresponse-victim_negative_85": "You only got me because someone used the microwave and it disrupted my wifi", "pmcresponse-victim_negative_84": "Yeah you killed me only because i was on a call with some ladies",
"pmcresponse-victim_negative_86": "I only died because i was at the gym earlier doing mad reps", "pmcresponse-victim_negative_85": "You only got me because someone used the microwave and it disrupted my wifi",
"pmcresponse-victim_negative_87": "As a discord moderator you better watch out, im kind of a big deal around here", "pmcresponse-victim_negative_86": "I only died because i was at the gym earlier doing mad reps",
"pmcresponse-victim_negative_88": "You got saved by my gun jam", "pmcresponse-victim_negative_87": "As a discord moderator you better watch out, im kind of a big deal around here",
"pmcresponse-victim_plead_1": "I was questing", "pmcresponse-victim_negative_88": "You got saved by my gun jam",
"pmcresponse-victim_plead_2": "I just wanted to finish a quest, whyd you kill me", "pmcresponse-victim_plead_1": "I was questing",
"pmcresponse-victim_plead_3": "Hope ur happy i can't even afford a new kit", "pmcresponse-victim_plead_2": "I just wanted to finish a quest, whyd you kill me",
"pmcresponse-victim_plead_4": "Bro im new to the game why you kill me", "pmcresponse-victim_plead_3": "Hope ur happy i can't even afford a new kit",
"pmcresponse-victim_plead_5": "I am never gonna get this stupid quest done", "pmcresponse-victim_plead_4": "Bro im new to the game why you kill me",
"pmcresponse-victim_plead_6": "Did you at least stash my gear?!", "pmcresponse-victim_plead_5": "I am never gonna get this stupid quest done",
"pmcresponse-victim_plead_7": "Did you not see my wiggle?!!", "pmcresponse-victim_plead_6": "Did you at least stash my gear?!",
"pmcresponse-victim_plead_8": "But I gave you the wiggle", "pmcresponse-victim_plead_7": "Did you not see my wiggle?!!",
"pmcresponse-victim_plead_9": "I just want one more gas analyser, why is this so hard", "pmcresponse-victim_plead_8": "But I gave you the wiggle",
"pmcresponse-victim_plead_10": "I was afk for no more than 2 minutes and you killed me", "pmcresponse-victim_plead_9": "I just want one more gas analyser, why is this so hard",
"pmcresponse-victim_plead_11": "I just went to the toilet and you shot me", "pmcresponse-victim_plead_10": "I was afk for no more than 2 minutes and you killed me",
"pmcresponse-victim_plead_12": "I just went to the kitchen to pick up my dino nuggets and you killed me", "pmcresponse-victim_plead_11": "I just went to the toilet and you shot me",
"pmcresponse-victim_plead_13": "bro please", "pmcresponse-victim_plead_12": "I just went to the kitchen to pick up my dino nuggets and you killed me",
"pmcresponse-victim_plead_14": "Just you wait until I download some more mods off the hub, then I'll get you", "pmcresponse-victim_plead_13": "bro please",
"pmcresponse-victim_plead_15": "Does the wiggle mean nothing smh smh fr", "pmcresponse-victim_plead_14": "Just you wait until I download some more mods off the hub, then I'll get you",
"pmcresponse-victim_plead_16": "I cant stand this game, I'm going back to roblox", "pmcresponse-victim_plead_15": "Does the wiggle mean nothing smh smh fr",
"pmcresponse-victim_plead_17": "The wiggle is clearly a sign I'm friendly", "pmcresponse-victim_plead_16": "I cant stand this game, I'm going back to roblox",
"pmcresponse-victim_plead_18": "BRO WHY", "pmcresponse-victim_plead_17": "The wiggle is clearly a sign I'm friendly",
"pmcresponse-victim_plead_19": "I go and make myself a ham and cheese sandwich and you kill me, incredible", "pmcresponse-victim_plead_18": "BRO WHY",
"pmcresponse-victim_plead_20": "Well well well, If it isnt {{PlayerName}}, I expected nothing less and was still disappointed", "pmcresponse-victim_plead_19": "I go and make myself a ham and cheese sandwich and you kill me, incredible",
"pmcresponse-victim_plead_21": "If i wasnt low hp youd be dead", "pmcresponse-victim_plead_20": "Well well well, If it isnt {{PlayerName}}, I expected nothing less and was still disappointed",
"pmcresponse-victim_plead_22": "I just bought this account, why you kill me", "pmcresponse-victim_plead_21": "If i wasnt low hp youd be dead",
"pmcresponse-victim_plead_23": "Cheap kill", "pmcresponse-victim_plead_22": "I just bought this account, why you kill me",
"pmcresponse-suffix_1": "bro", "pmcresponse-victim_plead_23": "Cheap kill",
"pmcresponse-suffix_2": "bruh", "pmcresponse-suffix_1": "bro",
"pmcresponse-suffix_3": "lil bro", "pmcresponse-suffix_2": "bruh",
"pmcresponse-suffix_4": "buddy", "pmcresponse-suffix_3": "lil bro",
"pmcresponse-suffix_5": "pal", "pmcresponse-suffix_4": "buddy",
"pmcresponse-suffix_6": "chief", "pmcresponse-suffix_5": "pal",
"pmcresponse-suffix_7": "dude", "pmcresponse-suffix_6": "chief",
"pmcresponse-suffix_8": "my g", "pmcresponse-suffix_7": "dude",
"pmcresponse-suffix_9": "brother", "pmcresponse-suffix_8": "my g",
"pmcresponse-suffix_10": "broski", "pmcresponse-suffix_9": "brother",
"pmcresponse-suffix_11": "my guy", "pmcresponse-suffix_10": "broski",
"pmcresponse-suffix_12": "smh", "pmcresponse-suffix_11": "my guy",
"pmcresponse-suffix_13": "man", "pmcresponse-suffix_12": "smh",
"pmcresponse-suffix_14": "king", "pmcresponse-suffix_13": "man",
"pmcresponse-suffix_15": "champ", "pmcresponse-suffix_14": "king",
"pmcresponse-suffix_16": "amigo", "pmcresponse-suffix_15": "champ",
"pmcresponse-suffix_17": "bud", "pmcresponse-suffix_16": "amigo",
"pmcresponse-suffix_18": "guy", "pmcresponse-suffix_17": "bud",
"pmcresponse-suffix_19": "m8", "pmcresponse-suffix_18": "guy",
"pmcresponse-suffix_20": ":)", "pmcresponse-suffix_19": "m8",
"pmcresponse-suffix_21": "(:", "pmcresponse-suffix_20": ":)",
"pmcresponse-suffix_22": ":))))))", "pmcresponse-suffix_21": "(:",
"pmcresponse-suffix_23": "GG", "pmcresponse-suffix_22": ":))))))",
"pmcresponse-suffix_24": "my dude", "pmcresponse-suffix_23": "GG",
"pmcresponse-suffix_25": "friend", "pmcresponse-suffix_24": "my dude",
"pmcresponse-suffix_26": "kid", "pmcresponse-suffix_25": "friend",
"pmcresponse-killer_positive_1": "Good fight", "pmcresponse-suffix_26": "kid",
"pmcresponse-killer_positive_2": "You fought well", "pmcresponse-killer_positive_1": "Good fight",
"pmcresponse-killer_positive_3": "I will stash your gear", "pmcresponse-killer_positive_2": "You fought well",
"pmcresponse-killer_positive_4": "You nearly got me, great fight", "pmcresponse-killer_positive_3": "I will stash your gear",
"pmcresponse-killer_positive_5": "Well played, nearly had me", "pmcresponse-killer_positive_4": "You nearly got me, great fight",
"pmcresponse-killer_positive_6": "You almost had me", "pmcresponse-killer_positive_5": "Well played, nearly had me",
"pmcresponse-killer_positive_7": "If I didnt have the drop on you I would be dead", "pmcresponse-killer_positive_6": "You almost had me",
"pmcresponse-killer_positive_8": "Good fite", "pmcresponse-killer_positive_7": "If I didnt have the drop on you I would be dead",
"pmcresponse-killer_positive_9": "Well fought", "pmcresponse-killer_positive_8": "Good fite",
"pmcresponse-killer_positive_10": "Whatever you were shooting destroyed my armor, good fight", "pmcresponse-killer_positive_9": "Well fought",
"pmcresponse-killer_positive_11": "Nothing personal, gotta get these Jaeger quests complete", "pmcresponse-killer_positive_10": "Whatever you were shooting destroyed my armor, good fight",
"pmcresponse-killer_positive_12": "You had me very worried for a bit during that fight", "pmcresponse-killer_positive_11": "Nothing personal, gotta get these Jaeger quests complete",
"pmcresponse-killer_positive_13": "Impressive skills {{PlayerName}}", "pmcresponse-killer_positive_12": "You had me very worried for a bit during that fight",
"pmcresponse-killer_positive_14": "Respect, you gave me a good fight", "pmcresponse-killer_positive_13": "Impressive skills {{PlayerName}}",
"pmcresponse-killer_positive_15": "Clean fight, respect", "pmcresponse-killer_positive_14": "Respect, you gave me a good fight",
"pmcresponse-killer_positive_16": "That was a real cat and mouse fight, awesome", "pmcresponse-killer_positive_15": "Clean fight, respect",
"pmcresponse-killer_negative_1": "ty 4 the free loot", "pmcresponse-killer_positive_16": "That was a real cat and mouse fight, awesome",
"pmcresponse-killer_negative_2": "Thanks for the new kit", "pmcresponse-killer_negative_1": "ty 4 the free loot",
"pmcresponse-killer_negative_3": "No wonder you died, your gun is trash", "pmcresponse-killer_negative_2": "Thanks for the new kit",
"pmcresponse-killer_negative_4": "Why are you wearing that armor lmao", "pmcresponse-killer_negative_3": "No wonder you died, your gun is trash",
"pmcresponse-killer_negative_5": "lmaoooo", "pmcresponse-killer_negative_4": "Why are you wearing that armor lmao",
"pmcresponse-killer_negative_6": "Dont worry your gear will be on the flea soon", "pmcresponse-killer_negative_5": "lmaoooo",
"pmcresponse-killer_negative_7": "No wonder you play SPT with your aim", "pmcresponse-killer_negative_6": "Dont worry your gear will be on the flea soon",
"pmcresponse-killer_negative_8": "It is what it is", "pmcresponse-killer_negative_7": "No wonder you play SPT with your aim",
"pmcresponse-killer_negative_9": "Thanks for looting for me", "pmcresponse-killer_negative_8": "It is what it is",
"pmcresponse-killer_negative_10": "At least put up a fight next time", "pmcresponse-killer_negative_9": "Thanks for looting for me",
"pmcresponse-killer_negative_11": "I think you need some more practice", "pmcresponse-killer_negative_10": "At least put up a fight next time",
"pmcresponse-killer_negative_12": "Try to put up a challenge next time", "pmcresponse-killer_negative_11": "I think you need some more practice",
"pmcresponse-killer_negative_13": "Rip little timmy", "pmcresponse-killer_negative_12": "Try to put up a challenge next time",
"pmcresponse-killer_negative_14": "Another dirty little rat taken care of", "pmcresponse-killer_negative_13": "Rip little timmy",
"pmcresponse-killer_negative_15": "That was embarassing to watch", "pmcresponse-killer_negative_14": "Another dirty little rat taken care of",
"pmcresponse-killer_negative_16": "I expected at least a little resistance, oh well", "pmcresponse-killer_negative_15": "That was embarassing to watch",
"pmcresponse-killer_negative_17": "I hope you didnt insure that gear as you wont be getting it back", "pmcresponse-killer_negative_16": "I expected at least a little resistance, oh well",
"pmcresponse-killer_negative_18": "I have a youtube series on how to get better at tarkov if you are interested", "pmcresponse-killer_negative_17": "I hope you didnt insure that gear as you wont be getting it back",
"pmcresponse-killer_negative_19": "Another dogtag for my collection", "pmcresponse-killer_negative_18": "I have a youtube series on how to get better at tarkov if you are interested",
"pmcresponse-killer_negative_20": "You are so bad you should go play spt instead", "pmcresponse-killer_negative_19": "Another dogtag for my collection",
"pmcresponse-killer_negative_21": "Rekt", "pmcresponse-killer_negative_20": "You are so bad you should go play spt instead",
"pmcresponse-killer_negative_22": "And i thought i was bad", "pmcresponse-killer_negative_21": "Rekt",
"pmcresponse-killer_negative_23": "Are all {{playerSide}} this bad?", "pmcresponse-killer_negative_22": "And i thought i was bad",
"pmcresponse-killer_negative_24": "Thanks for the loot", "pmcresponse-killer_negative_23": "Are all {{playerSide}} this bad?",
"pmcresponse-killer_negative_25": "Ur equipment was so trash i sold it all to fence", "pmcresponse-killer_negative_24": "Thanks for the loot",
"pmcresponse-killer_negative_26": "Average {{playerSide}} player", "pmcresponse-killer_negative_25": "Ur equipment was so trash i sold it all to fence",
"pmcresponse-killer_negative_27": "Easiest loot of today", "pmcresponse-killer_negative_26": "Average {{playerSide}} player",
"pmcresponse-killer_plead_1": "I was trying to extract a quest item and you were in my path", "pmcresponse-killer_negative_27": "Easiest loot of today",
"pmcresponse-killer_plead_2": "I was looting barrel caches and you were in the way, sorry", "pmcresponse-killer_plead_1": "I was trying to extract a quest item and you were in my path",
"pmcresponse-killer_plead_3": "I need PMC kills, Im sure you understand", "pmcresponse-killer_plead_2": "I was looting barrel caches and you were in the way, sorry",
"pmcresponse-killer_plead_4": "See you next time", "pmcresponse-killer_plead_3": "I need PMC kills, Im sure you understand",
"pmcresponse-killer_plead_5": "You didnt even have a salewa on you, I am never getting this quest completed", "pmcresponse-killer_plead_4": "See you next time",
"pmcresponse-killer_plead_6": "I spent ages looking for your body and someone already looted it", "pmcresponse-killer_plead_5": "You didnt even have a salewa on you, I am never getting this quest completed",
"pmcresponse-killer_plead_7": "I finally find your body and all you have is garbage", "pmcresponse-killer_plead_6": "I spent ages looking for your body and someone already looted it",
"pmcresponse-killer_plead_8": "I swear you killed me before", "pmcresponse-killer_plead_7": "I finally find your body and all you have is garbage",
"pmcresponse-killer_plead_9": "Typical behaviour of a {{playerSide}}", "pmcresponse-killer_plead_8": "I swear you killed me before",
"pmcresponse-killer_plead_9": "Typical behaviour of a {{playerSide}}",
"pmcresponse-killer_plead_10": "Typical {{playerSide}} behaviour", "pmcresponse-killer_plead_10": "Typical {{playerSide}} behaviour",
"pmcresponse-killer_plead_11": "i need to kill {{playerSide}}, i hope you understand", "pmcresponse-killer_plead_11": "i need to kill {{playerSide}}, i hope you understand",
"pmcresponse-killer_plead_12": "Does nobody in this stupid game have a gas analyser", "pmcresponse-killer_plead_12": "Does nobody in this stupid game have a gas analyser",
"launcher-profile_standard": "Same as live, basic stash size (10x28), 500,000 roubles", "launcher-profile_standard": "Same as live, basic stash size (10x28), 500,000 roubles",
"launcher-profile_leftbehind": "Same as Standard plus; larger stash size (10x38), extra equipment/items, 500 dollars", "launcher-profile_leftbehind": "Same as Standard plus; larger stash size (10x38), extra equipment/items, 500 dollars",
"launcher-profile_preparetoescape": "Same as Left Behind plus; larger stash size (10x48), extra equipment/items, higher starting reputation with traders, 250 euros", "launcher-profile_preparetoescape": "Same as Left Behind plus; larger stash size (10x48), extra equipment/items, higher starting reputation with traders, 250 euros",
"launcher-edgeofdarkness": "Same as Prepare To Escape plus; larger stash size (10x68), extra equipment/items, higher starting reputation with traders, 1000 dollars, 500 euros", "launcher-edgeofdarkness": "Same as Prepare To Escape plus; larger stash size (10x68), extra equipment/items, higher starting reputation with traders, 1000 dollars, 500 euros",
"launcher-profile_spteasystart": "Lots of Roubles/Dollars/Euros, Some QoL skills are level 20, trader rep maxed, starting level is 69, no quests completed", "launcher-profile_spteasystart": "Lots of Roubles/Dollars/Euros, Some QoL skills are level 20, trader rep maxed, starting level is 69, no quests completed",
"launcher-profile_sptzerotohero": "Start with almost nothing, no Roubles/Dollars/Euros, no trader rep, 1 knife, no quests completed", "launcher-profile_sptzerotohero": "Start with almost nothing, no Roubles/Dollars/Euros, no trader rep, 1 knife, no quests completed",
"launcher-profile_sptdeveloper": "Testing profile, starting level is 69, lots of Roubles/Dollars/Euros, USEC start with all quests ready to start, BEAR start with all quests ready to hand in, invincibility balaclava" "launcher-profile_sptdeveloper": "Testing profile, starting level is 69, lots of Roubles/Dollars/Euros, USEC start with all quests ready to start, BEAR start with all quests ready to hand in, invincibility balaclava"
} }

View File

@ -23,6 +23,7 @@
"6480625c470acaccd803c172": "6179ac7511973d018217d0b9", "6480625c470acaccd803c172": "6179ac7511973d018217d0b9",
"6480625c470acaccd803c1a5": "59674cd986f7744ab26e32f2", "6480625c470acaccd803c1a5": "59674cd986f7744ab26e32f2",
"6480625d470acaccd803c216": "63a9ae24009ffc6a551631a5", "6480625d470acaccd803c216": "63a9ae24009ffc6a551631a5",
"6480625d470acaccd803c218": "63a9ae24009ffc6a551631a5" "6480625d470acaccd803c218": "63a9ae24009ffc6a551631a5",
"UnknownAssortId1": "6179b5b06e9dd54ac275e409"
} }
} }

View File

@ -21,6 +21,7 @@
"6480624a470acaccd803af4a": "5c0bbaa886f7746941031d82", "6480624a470acaccd803af4a": "5c0bbaa886f7746941031d82",
"6480624a470acaccd803af60": "639873003693c63d86328f25", "6480624a470acaccd803af60": "639873003693c63d86328f25",
"6480624a470acaccd803af88": "596b455186f77457cb50eccb", "6480624a470acaccd803af88": "596b455186f77457cb50eccb",
"6480624a470acaccd803afec": "647710905320c660d91c15a5" "6480624a470acaccd803afec": "647710905320c660d91c15a5",
"UnknownAssortId1": "6179b5eabca27a099552e052"
} }
} }

View File

@ -1,37 +1,39 @@
{ {
"fail": {},
"started": { "started": {
"6480624f470acaccd803b422": "5ac346cf86f7741d63233a02", "6480624f470acaccd803b422": "5ac346cf86f7741d63233a02",
"6480624f470acaccd803b4ca": "5b47926a86f7747ccc057c15" "6480624f470acaccd803b4ca": "5b47926a86f7747ccc057c15"
}, },
"success": { "success": {
"6480624f470acaccd803b3f8": "5ae327c886f7745c7b3f2f3f",
"64806252470acaccd803b700": "639872fc93ae507d5858c3a6",
"64806250470acaccd803b4e0": "5ac244eb86f7741356335af1",
"64806250470acaccd803b501": "5ac23c6186f7741247042bad",
"6480624f470acaccd803b3e5": "5ac2428686f77412450b42bf",
"6480624f470acaccd803b3c1": "639872f9decada40426d3447",
"64806250470acaccd803b4f9": "5ae3267986f7742a413592fe",
"6480624f470acaccd803b477": "639872fa9b4fb827b200d8e5",
"64806251470acaccd803b69d": "639872fa9b4fb827b200d8e5",
"64806253470acaccd803b7f6": "5c1128e386f7746565181106",
"64806251470acaccd803b60a": "5c0bde0986f77479cf22c2f8",
"64806252470acaccd803b799": "5c139eb686f7747878361a6f",
"64806252470acaccd803b725": "5c0be13186f7746f016734aa",
"64806250470acaccd803b4fb": "5f04886a3937dc337a6b8238",
"64806253470acaccd803b809": "6179b3a12153c15e937d52bc",
"64806250470acaccd803b55f": "6179b3a12153c15e937d52bc",
"64806253470acaccd803b7d1": "6179b3bdc7560e13d23eeb8d",
"6480624e470acaccd803b2f9": "5b47749f86f7746c5d6a5fd4", "6480624e470acaccd803b2f9": "5b47749f86f7746c5d6a5fd4",
"6480624e470acaccd803b313": "5b47749f86f7746c5d6a5fd4", "6480624e470acaccd803b313": "5b47749f86f7746c5d6a5fd4",
"64806252470acaccd803b750": "5b47749f86f7746c5d6a5fd4", "6480624f470acaccd803b3c1": "639872f9decada40426d3447",
"64806253470acaccd803b7dd": "5b47749f86f7746c5d6a5fd4", "6480624f470acaccd803b3e5": "5ac2428686f77412450b42bf",
"6480624f470acaccd803b3f8": "5ae327c886f7745c7b3f2f3f",
"6480624f470acaccd803b477": "639872fa9b4fb827b200d8e5",
"6480624f470acaccd803b4a7": "5b477b6f86f7747290681823", "6480624f470acaccd803b4a7": "5b477b6f86f7747290681823",
"64806250470acaccd803b4e0": "5ac244eb86f7741356335af1",
"64806250470acaccd803b4f9": "5ae3267986f7742a413592fe",
"64806250470acaccd803b4fb": "5f04886a3937dc337a6b8238",
"64806250470acaccd803b501": "5ac23c6186f7741247042bad",
"64806250470acaccd803b55f": "6179b3a12153c15e937d52bc",
"64806251470acaccd803b60a": "5c0bde0986f77479cf22c2f8",
"64806251470acaccd803b652": "63987301e11ec11ff5504036",
"64806251470acaccd803b674": "63987301e11ec11ff5504036",
"64806251470acaccd803b69d": "639872fa9b4fb827b200d8e5",
"64806252470acaccd803b700": "639872fc93ae507d5858c3a6",
"64806252470acaccd803b725": "5c0be13186f7746f016734aa",
"64806252470acaccd803b738": "5b47825886f77468074618d3",
"64806252470acaccd803b750": "5b47749f86f7746c5d6a5fd4",
"64806252470acaccd803b799": "5c139eb686f7747878361a6f",
"64806253470acaccd803b7d1": "6179b3bdc7560e13d23eeb8d",
"64806253470acaccd803b7dd": "5b47749f86f7746c5d6a5fd4",
"64806253470acaccd803b7f6": "5c1128e386f7746565181106",
"64806253470acaccd803b809": "6179b3a12153c15e937d52bc",
"64806253470acaccd803b83d": "5b477b6f86f7747290681823", "64806253470acaccd803b83d": "5b477b6f86f7747290681823",
"64806253470acaccd803b845": "5b477f7686f7744d1b23c4d2", "64806253470acaccd803b845": "5b477f7686f7744d1b23c4d2",
"64806251470acaccd803b674": "63987301e11ec11ff5504036", "64806253470acaccd803b892": "63966fbeea19ac7ed845db2e",
"64806251470acaccd803b652": "63987301e11ec11ff5504036", "UnknownAssortId1": "639670029113f06a7c3b2377",
"64806252470acaccd803b738": "5b47825886f77468074618d3", "UnknownAssortId2": "63967028c4a91c5cb76abd81"
"64806253470acaccd803b892": "63966fbeea19ac7ed845db2e" }
},
"fail": {}
} }

View File

@ -12,6 +12,7 @@
"64806246470acaccd803ac5f": "5c1141f386f77430ff393792", "64806246470acaccd803ac5f": "5c1141f386f77430ff393792",
"64806247470acaccd803ac81": "60e71dc0a94be721b065bbfc", "64806247470acaccd803ac81": "60e71dc0a94be721b065bbfc",
"64806247470acaccd803aca1": "5ae4498786f7744bde357695", "64806247470acaccd803aca1": "5ae4498786f7744bde357695",
"64806247470acaccd803acab": "5c10f94386f774227172c572" "64806247470acaccd803acab": "5c10f94386f774227172c572",
"UnknownAssortId1": "597a0f5686f774273b74f676"
} }
} }

View File

@ -27,6 +27,7 @@
"6480624d470acaccd803b279": "5d25e2ee86f77443e35162ea", "6480624d470acaccd803b279": "5d25e2ee86f77443e35162ea",
"6480624d470acaccd803b292": "5d25c81b86f77443e625dd71", "6480624d470acaccd803b292": "5d25c81b86f77443e625dd71",
"6480624d470acaccd803b2c3": "5d25b6be86f77444001e1b89", "6480624d470acaccd803b2c3": "5d25b6be86f77444001e1b89",
"6480624e470acaccd803b2eb": "63a9b36cc31b00242d28a99f" "6480624e470acaccd803b2eb": "63a9b36cc31b00242d28a99f",
"UnknownAssortId1": "64764abcd125ab430a14ccb5"
} }
} }

View File

@ -15,6 +15,7 @@ import { IGameConfigResponse } from "../models/eft/game/IGameConfigResponse";
import { IServerDetails } from "../models/eft/game/IServerDetails"; import { IServerDetails } from "../models/eft/game/IServerDetails";
import { IAkiProfile } from "../models/eft/profile/IAkiProfile"; import { IAkiProfile } from "../models/eft/profile/IAkiProfile";
import { ConfigTypes } from "../models/enums/ConfigTypes"; import { ConfigTypes } from "../models/enums/ConfigTypes";
import { Traders } from "../models/enums/Traders";
import { ICoreConfig } from "../models/spt/config/ICoreConfig"; import { ICoreConfig } from "../models/spt/config/ICoreConfig";
import { IHttpConfig } from "../models/spt/config/IHttpConfig"; import { IHttpConfig } from "../models/spt/config/IHttpConfig";
import { ILocationConfig } from "../models/spt/config/ILocationConfig"; import { ILocationConfig } from "../models/spt/config/ILocationConfig";
@ -133,6 +134,8 @@ export class GameController
this.saveActiveModsToProfile(fullProfile); this.saveActiveModsToProfile(fullProfile);
this.validateQuestAssortUnlocksExist();
if (pmcProfile.Info) if (pmcProfile.Info)
{ {
this.addPlayerToPMCNames(pmcProfile); this.addPlayerToPMCNames(pmcProfile);
@ -150,6 +153,35 @@ export class GameController
} }
} }
protected validateQuestAssortUnlocksExist(): void
{
const db = this.databaseServer.getTables();
const traders = db.traders;
const quests = db.templates.quests;
for (const traderId of Object.values(Traders))
{
const traderData = traders[traderId];
const traderAssorts = traderData?.assort;
if (!traderAssorts)
{
continue;
}
// Merge started/success/fail quest assorts into one dictionary
const mergedQuestAssorts = Object.assign({}, traderData.questassort["started"], traderData.questassort["success"], traderData.questassort["fail"]);
// loop over all assorts for trader
for (const [assortKey, questKey] of Object.entries(mergedQuestAssorts))
{
// Does assort key exist in trader assort file
if (!traderAssorts.loyal_level_items[assortKey])
{
this.logger.warning(this.localisationService.getText("assort-missing_quest_assort_unlocks", {traderName: Object.keys(Traders)[Object.values(Traders).indexOf(traderId)], questName: quests[questKey].QuestName}));
}
}
}
}
/** /**
* BSG have two values for shotgun dispersion, we make sure both have the same value * BSG have two values for shotgun dispersion, we make sure both have the same value
*/ */

View File

@ -27,7 +27,7 @@ export class AssortHelper
* @param pmcProfile Player profile * @param pmcProfile Player profile
* @param traderId Traders id the assort belongs to * @param traderId Traders id the assort belongs to
* @param traderAssorts All assort items from same trader * @param traderAssorts All assort items from same trader
* @param mergedQuestAssorts Dict of quest assort to quest id unlocks for all traders * @param mergedQuestAssorts Dict of quest assort to quest id unlocks for all traders (key = started/failed/complete)
* @returns Assort items minus locked quest assorts * @returns Assort items minus locked quest assorts
*/ */
public stripLockedQuestAssort(pmcProfile: IPmcData, traderId: string, traderAssorts: ITraderAssort, mergedQuestAssorts: Record<string, Record<string, string>>, flea = false): ITraderAssort public stripLockedQuestAssort(pmcProfile: IPmcData, traderId: string, traderAssorts: ITraderAssort, mergedQuestAssorts: Record<string, Record<string, string>>, flea = false): ITraderAssort