github dwesterwick/SPTQuestingBots 0.4.0
Questing Bots 0.4.0

latest releases: 0.7.0, 0.7.0-alpha2, 0.7.0-alpha1...
6 months ago

Highlights:

  • Added and updated quests on every map, including new ones for the 0.13.5 Streets expansion
  • Added new questing features that instruct bots to loot, snipe, and camp. Requires SAIN 2.1.9 or later and Looting Bots 1.2.1 or later.
  • Implemented a new quest-selection algorithm that makes bots travel more naturally through the map
  • Implemented player-Scav spawning system. If the player-Scav spawning system is disabled (i.e. if you're using SWAG + DONUTS), the SPT player-Scav-conversion chance will adjust throughout the raid.
  • Allow player Scavs to quest without making all Scavs quest
  • Implemented advanced spawning system that tricks EFT into thinking bots spawned by Questing Bots are human players. This makes them not count toward the bot cap, and all other EFT spawns will work like they do in live Tarkov. This only applies to bots spawned by Questing Bots; it will not apply to bots spawned by mods like SWAG + DONUTS.
  • Added a system to wait for all PMC's and player Scavs to be generated before the raid starts. PMC's will now spawn immediately on all maps.

Full Release Notes:

  • Implemented player-Scav spawning system
    • Player Scav spawn times are selected by the reductionPercentWeights settings for each map in the server's ILocationConfig config with some randomness applied. Player Scavs will not be allowed to spawn outside of the ranges defined for each map.
    • Player Scavs will only begin spawning after all PMC's have spawned and max_alive_bots for the map won't be exceeded
    • The maximum number of player Scavs that can spawn in total during the raid is limited based on the maximum player count for the map (1.5X by default)
    • Player Scavs are more likely to spawn and traverse the map solo compared to PMC's, but there is still a small chance of player-Scav group spawns (with up to 5 members).
    • Added debug option in config.json to always spawn player Scavs even if the bot amount is changed to "None" in the raid settings.
  • If the player-Scav spawning system is disabled, the SPT player-Scav-conversion chance will adjust throughout the raid. For the first few minutes it will be 0%, and by the last 30% of the raid, it will be 50% (configurable). This system can also be disabled if desired.
  • If either the PMC or Player-scav spawning systems are enabled, disable all SPT custom Scav spawns (namely for Factory).
  • Allow player Scavs to quest without making all Scavs quest. This allows most Scavs to spawn and behave as they would in base EFT, but player Scavs will traverse the map like PMC's. However, some quests are marked as PMC-only including all EFT quests. As a result, player Scavs will mostly quest to locations with high loot density, not to EFT quest locations.
  • Added option to allow player Scavs to unlock doors while questing, but this is disabled by default.
  • Implemented advanced spawning system with the following features:
    • PMC's and player Scavs will no longer count toward the maximum bots on the map, so the bot cap no longer needs to be increased to accommodate them
    • EFT will now consider PMC's and player Scavs to be non-AI players when determining spawn points and spawn timing for bots
    • PMC's can now be spawned immediately when the raid starts instead of waiting for initial bosses to spawn
    • This system can be disabled in config.json
    • This system is only used for Questing Bots' spawns. Is it NOT used for other mods with spawning systems like SWAG + DONUTS.
  • Added system to wait for all PMC's and player Scavs to be generated before the raid starts. Without doing this, there can sometimes be long delays when generating bots after the raid starts and lag when starting raids, especially when using mods like Algorithmic Level Progression. This system can be disabled in config.json.
  • Added config option for waiting until initial bosses have spawned before allowing initial PMC's to spawn
  • Added config option to enable bot-cap modifications
  • Added config options for limiting initial boss spawns and removing the delay SPT applies to Rogue spawns on Lighthouse
  • Added a configurable chance for bots to be initially hostile toward all bosses. Currently, there is an 80% chance this will be applied to PMC's and a 20% chance this will be applied to player Scavs. This makes USEC PMC's engage Rogues in the water treatment plant instead of allowing them to roam around freely there.
  • Reduced the chances that large PMC groups (of 4-5 members) will spawn
  • Added and updated quests on every map
  • Added quests for the 0.13.5 Streets expansion
  • Increased max_alive_bots on Lighthouse from 6 to 7
  • Increased max_alive_bots on Labs from 7 to 8
  • Implemented a new quest-selection algorithm:
    • Quests are now ranked by desirability instead of the old system that used a priority number and a chance of selecting the quest
    • Added a system to make bots more likely to select quests that are further from their spawn point. This encourages bots to traverse the map instead of randomly selecting quests around it. The weighting of this system is lower for maps with limited extracts (i.e. Factory and Reserve) and higher for maps that force you to the other side of it (i.e. Woods and Customs).
    • Weighting can be adjusted for the distance to the quest, the desirability of the quest, and the map-traversal adjustment to get bot movement more realistic. Randomness can be applied to the distance to the quest and the desirability of the quest.
  • Added feature to either force or prevent bots from looting after they complete each part of their quests. By default, bots will never loot after completing an EFT quest and will always loot after performing any other type of quest (unless they detect danger). Requires SAIN 2.1.9 or later and Looting Bots 1.2.1 or later.
  • When forcing bots to extract, first check if an exfil position can be selected via SAIN (2.1.9 or later) before disabling questing for them
  • Added a configurable parameter to define the minimum time bots must be alive before they're allowed to extract (separate from the minimum survival time for the raid)
  • Stop changing the pose and speed of bots after forcing them to search for loot because Looting Bots already does this, and it doesn't seem to work in all cases anyway.
  • If a bot is trying to extract, do not allow the AI limiter to disable it unless it's allowed to disable questing bots on that map. This allows it to leave the map so a new bot can replace it.
  • Added new actions for bots:
    • Ambush: Bots will stand still, aim at a specified location, and wait silently. The amount of time they wait is randomly selected based on a specified range for the quest.
    • HoldAtPosition: Bots will only be allowed to stealthily wander within a certain radius of their target location. If they don't detect any danger, they will remain still. The amount of time they wait is randomly selected based on a specified range for the quest.
    • CloseNearbyDoors: Bots will close all doors within a certain radius of them.
  • Added maxBotsInGroup limit for quests. This was added to prevent bot groups from selecting ambush/sniper quests.
  • When "planting" items, bots now look at the last corner of the path they took to their objective location. This is more realistic than the previous system because this is the path that other bots (and you) will likely take to this location.
  • Increased the required version of Waypoints from 1.3.3 to 1.3.4
  • Preventing bots from sprinting and sliding in the following conditions:
    • When they approach a corner in their path that makes them turn more than 45 deg. This stops them from sliding around stairwells.
    • When they approach a closed door (they have to be aiming at it, not passing next to it)
    • When they reach the last 2m of their path
    • When they select another action to do (i.e. unlock a door) while performing the same quest. Previously this caused bots to suddenly slide.
  • Reduce the size of PMC groups in Scav raids based on bot_spawns.pmcs.fraction_of_max_players_vs_raidET
  • Added F12 debug option thanks to DrakiaXYZ to display markers and overlays for all quest locations on the map. Only quest markers/overlays within a certain distance of you will be shown (configurable).
  • Added F12 debug option thanks to DrakiaXYZ to display overlays above each bot to show what they're doing, what quest (if applicable) they're performing, and who their boss is (if applicable).
  • Cache processed quest data like minimum player level to improve performance when loading into a raid
  • Attached most components to GameWorld instead of the plugin to limit when they're active. This provides a small performance improvement by eliminating unnecessary checks every frame.
  • Abstracted bot-generator code so it can be used to create other types of bot spawns throughout the raid
  • Check if config data cannot be retrieved from the server when starting EFT. If not, disable the mod and display an error message in the main menu.
  • Moved sprinting thresholds for bot stamina to config.json but did not change their values
  • Made the default value of waitTimeAfterCompleting for objective steps into a config option and reduced it from 10s to 5s
  • If the location ID for the map is not found in bot_spawns.max_alive_bots or questing.bot_quests.exfil_direction_weighting, use the default setting for it
  • Write an error message to the game console if a bot cannot select any quests and is unable to extract instead of throwing a timeout exception
  • Improved error handling for server requests. Up to 5 retry attempts will be made before giving up, and more details about errors will be added to logs.
  • Write the logging path in the server console when it's requested by the client
  • Bug fix for the client failing to retrieve the logging path from the server (which prevents quests from loading)
  • Bug fix for constant exceptions if bots cannot select any quests. If this happens, now the mod will first try instructing them to do repeatable quests again (disregarding questing.bot_questing_requirements.repeat_quest_delay), and then it will try instructing the bot to extract. If neither work, it will disable questing for them.
  • Bug fix for constant exceptions when trying to initialize a bot that cannot get an objective assignment
  • Bug fix for PMC's spawning at player-Scav spawn points (i.e. in the train yard behind the water treatment plant on Lighthouse)
  • Bug fix for rare condition in which PMC's will spawn in areas not normally accessible to players
  • Bug fix for exceptions when processing quests while loading into raids when using custom quests added by other mods
  • Bug fix for bots sprinting too much in the following conditions:
    • They're boss followers trying to catch up with their boss
    • They're bosses trying to regroup with their followers
    • They got distracted just before "planting" an item and need to return to that location
    • They got distracted just before turning on a switch and need to return to it
    • They got distracted just before unlocking a door and need to return to it
  • Bug fix for bots snapping between looking at multiple locations while "planting" items
  • Bug fix for bots spinning in circles while "planting" items when they're the only alive bot on the map
  • Bug fix for the maxBots limit of a quest being exceeded if multiple bots select it in a short period of time
  • Bug fix for PMC's sometimes also being registered as bosses
  • Bug fix for boss followers sometimes having active quests if there's a delay before they're assigned a boss
  • Bug fix for some bots not realizing when their boss has died
  • Bug fix for dead followers being instructed to extract
  • Bug fix for bosses trying to regroup with dead followers
  • Bug fix for some bots not realizing they're stuck and constantly selecting new quests for the rest of the raid
  • Bug fix for remaining members of a Scav group becoming hostile toward you if another bot kills their "boss" even if you're a Scav and haven't attacked any Scavs
  • Bug fix for exceptions when trying to write logging information for a null bot
  • Bug fix for some properties not working when added to quests in questing.bot_quests.eft_quests
  • Bug fix for rare condition causing a constant initialization loop for bots that have unknown types or were not registered properly
  • Removed obsolete priority and chanceForSelecting fields from quests, and removed related client code

config.json files from previous releases are not compatible.

IMPORTANT: If either the player-Scav spawning system or player-Scav conversion-chance adjustment system is active, the "/client/game/bot/generate" endpoint will be overwritten with a QuestingBots endpoint! This may affect compatibility with other mods!

Don't miss a new SPTQuestingBots release

NewReleases is sending notifications on new releases.