Skip to content

Releases: dwesterwick/SPTQuestingBots

Questing Bots 0.8.1 (Alpha 1)

11 Nov 05:11
Compare
Choose a tag to compare
Pre-release
  • Renamed the "Distance from PMCs (m)" F12 menu option to "Distance from Bots That Are Questing (m)"
  • Simplified the code needed to create custom bot generators using this mod's spawn system (a patch is no longer needed)
  • Use the SPT method for getting members of a bot group
  • Bug fix for PMC spawns being too close together when using other mods that allow more than one human player (#38)
  • Bug fix for bots incorrectly being prevented from grouping together
  • Bug fix for Zryachiy and his followers not able to be excluded from the AI limiter

config.json files from the 0.8.0 release are compatible.

Questing Bots 0.8.0

20 Oct 03:31
Compare
Choose a tag to compare
  • Increased required version of SPT from 3.9.0 to 3.9.6
  • Increased required version of Waypoints from 1.5.1 to 1.5.2
  • Added support for bots doing quests on Lightkeeper Island:
    • If a bot selects a quest on Lightkeeper Island, it will become allied with Zryachiy and his followers
    • Once a bot passes through the gate on the bridge leading to Lightkeeper Island, it will become temporarily allied with all bots beyond that point on the bridge or anywhere on the island. After the bot returns back through the gate going in the opposite direction, it will end its temporary alliances.
    • Bots that select a quest on Lightkeeper Island will be able to pass through the claymores on the bridge without setting them off even if you can't
    • Any player that kills a bot beyond the gate leading to Lightkeeper Island or anywhere on the island will receive negative Lightkeeper rep and have their DSP encoding disabled
    • Added Lightkeeper Island quests (only allowed for PMC's level 35 or higher)
    • If SAIN is detected, it must be at least a certain version for Lightkeeper Island quests to be enabled. This is currently set to SAIN 3.1.2, which has not been released! Previous versions of SAIN do not allow enemy bots to become allies during the raid.
  • Significantly improved bot path-finding to quest objectives in the command bunker and around D2 in Reserve
  • Added D2 camping quests to Reserve
  • Added remedies for bots getting stuck while questing:
    • If a bot becomes stuck for >6 seconds (configurable) while doing a quest, it will try jumping over the obstacle in front of it. It will retry this every 4 seconds (configurable) until it gives up.
    • If a bot becomes stuck for >8 seconds (configurable) while doing a quest, it will try vaulting over the obstacle in front of it. It will retry this every 4 seconds (configurable) until it gives up.
    • If either remedy is used, bots will recalculate their paths to their objectives after they land back on the ground
  • Added setting to F12 menu to only enable the AI limiter if there are at least a certain number of bots on the map (15 by default)
  • Added optional forbiddenWeapons field to quests to prevent bots from using weapons that are not appropriate for the quest. If the types of all of the bot's weapons are in the array, it will not be allowed to select the quest. This is mostly used to prevent bots from using pistols and shotguns for sniping quests and using sniper rifles for ambush quests.
  • Separated boss hunter quests into individual quests for each boss instead of a single quest for all of them. The name of each quest will now contain the boss's name, so it's easier to understand what bots are doing using the bot debug overlays.
  • Blacklisted Zryachiy and his followers, "skier", and "peacemaker" from Boss Hunter quests
  • Changed the min/max number of EFT quests a bot needs to complete before trying to extract from 2/5 to 2/4
  • Changed the min/max number of non-EFT quests a bot needs to complete before trying to extract from 6/12 to 3/8
  • Changed the default bot-cap adjustment for Factory Day from 13 to 0 because the SPT location data for it has been fixed
  • Use SPT's USEC chance when generating PMC's instead of having a fixed 50% chance
  • Changed the way bot-generation requests are intercepted so a custom endpoint is no longer needed
  • Show an error when the game starts if this mod's spawning system and nVidia reflex are both enabled
  • Prevent PMC's and PScavs spawned by this mod from being forced to be hostile with Zryachiy and his followers, the BTR, or Santa
  • Always allow bots to join boss bot groups
  • If a bot's state is not EBotState.Active, show its state in its bot overlay instead of any other information
  • Added debug setting to make all PMC's friendly
  • Simplified the method used to generate bot groups
  • Stop trying to find static paths to invalid quest objectives
  • Removed the patch that fixed a bug with bot Standby logic because it's no longer needed
  • Use the SPT method for getting members of a bot group
  • Ensure private fields are arguments in patches, not accessed via reflection while the patch runs
  • Ensure private fields that cannot be arguments in patches are cached when the patch is created
  • Added unused method to prevent a bot from sprinting for a certain amount of time
  • Added unused method to delete all static-path data
  • Fixed typo in message when bots are ready to extract after completing a certain number of quests
  • Added warning messages when processing EFT quests if any of their templates are null
  • Bug fix for the AI limiter not working on Ground Zero when you are level 21 or higher
  • Bug fix for errors when bots try unlocking doors that no longer exist (namely because they were destroyed by Backdoor Bandit)
  • Bug fix for bots trying to unlock the same door multiple times
  • Bug fix for error when multiple waypoints for a quest are connected with a static path
  • Bug fix for redundant static paths being generated (where one is the reverse of another)
  • Bug fix for error spam if a questing bot's path data is null
  • Bug fix for respawns of Zryachiy's followers not being able to join his bot group
  • Bug fix for the members of the wrong bot group being used to check if a bot can join a bot group
  • Bug fix for not being able to override properties of quests that are private, arrays, or reference types via eftQuestSettings.json
  • Bug fix for quest zone positions not able to be changed via zoneAndItemQuestPositions.json

config.json files from previous releases are not compatible.

Questing Bots 0.7.0

20 Jul 03:49
cb31185
Compare
Choose a tag to compare
  • Updated to SPT 3.9.x
  • Increased required version of Waypoints from 1.4.3 to 1.5.1
  • Increased required version of BigBrain from 0.4.0 to 1.0.1
  • Improved the interaction between Questing Bots and SAIN:
    • Reduced brain-layer priorities of questing and boss-following to be less than SAIN's brain-layer priorities. This fixes issues where bots would prematurely end combat and run away, and bots will generally be much more alert, patient, and effective in combat. However, they will also tend to perform significantly fewer quests throughout the raid.
    • Added a new brain layer (with a higher priority than SAIN's) to make bots retreat and support their boss if their group is in combat and they're not in immediate danger. This prevents bot groups from becoming too spread out and running around the same general area chasing each other between engagements. The distance thresholds are configurable, but by default they will use this layer if they're more than 35m away from their boss, and they will stop using the layer once they are within 15m of their boss.
    • Only prevent followers from following or regrouping with their bosses if they need to heal, and ignore other "able-bodied" checks. This prevents bot followers from running away and ignoring their bosses for a while instead of healing.
    • Added separate min/max pairs to questing.bot_questing_requirements.search_time_after_combat that are automatically selected based on Questing Bots's brain-layer priorities vs. SAIN's. If SAIN is prioritized, questing.bot_questing_requirements.search_time_after_combat will be 5/20 s. Otherwise, it will be 20/45 s.
  • Changed the raid-start delay to occur before the final countdown until the raid starts instead of being in parallel with it
  • Added a config option to override the radius around the BTR within which questing bots will "avoid danger" (reduced EFT's 40m setting to 10m by default).
  • Added config options to change priorities of all Questing Bots brain layers
  • Updated bot-overlay information to include the new brain layer and to hide some information when one of SAIN's brain layers is active
  • Added an Advanced F12 menu option to show your current coordinates on the screen
  • Bug fix for bots ignoring their hearing (using SAIN) when sniping
  • Bug fix for not using the "default" Scav raid-time reduction settings to generate the player-Scav spawn schedule if the location ID cannot be found in the server data

**Please use my AI Hostility Fix mod if you're using SAIN 3.0.3 (or below) or SPT 3.9.1 (or below).

config.json files from previous releases are not compatible.

Questing Bots 0.7.0 (Alpha 2)

15 Jul 04:31
8979c45
Compare
Choose a tag to compare
Pre-release

Changes from the 0.7.0 Alpha 1 Release:

  • Increased required version of Waypoints from 1.4.3 to 1.5.0
  • Increased required version of BigBrain from 0.4.0 to 1.0.0
  • Improved the interaction between this mod and SAIN:
    • Reduced brain-layer priorities of questing and boss-following to be less than SAIN's brain-layer priorities. This fixes issues where bots would prematurely end combat and run away, and bots will generally be much more alert, patient, and effective in combat. However, they will also tend to perform significantly fewer quests throughout the raid.
    • Added a new brain layer (with a higher priority than SAIN's) to make bots retreat and support their boss if their group is in combat and they're not in immediate danger. This prevents bot groups from becoming too spread out and running around the same general area chasing each other between engagements. The distance thresholds are configurable, but by default they will use this layer if they're more than 30m away from their boss, and they will stop using the layer once they are within 20m of their boss.
    • Only prevent followers from following or regrouping with their bosses if they need to heal, and ignore other "able-bodied" checks. This prevents bot followers from running away and ignoring their bosses for a while instead of healing.
    • Reduced default min/max values of questing.bot_questing_requirements.search_time_after_combat from 20/45 to 10/20 seconds because most people will be using SAIN to control searching after engagements.
  • Added config options to change priorities of all brain layers
  • Updated bot-overlay information to include the new brain layer and to hide some information when one of SAIN's brain layers is active

Known Issues:

  • Some Woods quests cannot be resolved until Waypoints is updated, and bots will be unable to traverse some areas (i.e. the upper part of sniper rock)

Please use my AI Hostility Fix mod if you're using SAIN 3.0.3 (or below) or if you haven't updated to the hotfixed SPT 3.9.1 released on 7/15/24.

config.json files from previous releases are not compatible.

Questing Bots 0.7.0 (Alpha 1)

14 Jul 04:46
b576a8c
Compare
Choose a tag to compare
Pre-release
  • Updated to SPT 3.9.0
  • Changed the raid-start delay to occur before the final countdown until the raid starts instead of being in parallel with it
  • Added a config option to override the radius around the BTR within which questing bots will "avoid danger" (reduced EFT's 40m setting to 10m by default).
  • Added an Advanced F12 menu option to show your current coordinates on the screen
  • Bug fix for bots ignoring their hearing (using SAIN) when sniping
  • Bug fix for not using the "default" Scav raid-time reduction settings to generate the player-Scav spawn schedule if the location ID cannot be found in the server data

Known Issues:

  • The new raid-start delay system is untested with Fika, and there might be syncing issues with clients
  • Some Woods quests cannot be resolved until Waypoints is updated, and bots will be unable to traverse some areas (i.e. the upper part of sniper rock)
  • Once a bot has entered combat via SAIN, it may not loot for a while even when instructed to
  • The player-Scav spawn schedule for Ground Zero for level 20+ players uses the "default" server settings, not the "sandbox" server settings

Using my AI Hostility Fix mod is HIGHLY recommended!

config.json files from the 0.6.1 release are compatible, but questing.btr_run_distance will always be 40.

Questing Bots 0.6.1

07 Jul 02:30
Compare
Choose a tag to compare
  • Added map-specific distances for the AI limiter. These can be accessed via the "Advanced" F12 menu settings, and the actual distance used is the lesser of the map-specific distance and the global limiting distance for human players.
  • Increased default min/max values of questing.bot_questing_requirements.search_time_after_combat from 10/30 to 20/45 seconds to dissuade bots from leaving combat as quickly
  • Updated the algorithm used to find locations of EFT quests. All EFT quests can now be located, which fixes problems in previous releases with finding positions for the following quests:
    • Capturing Outposts on all locations (Customs, Woods, and Shoreline)
    • Background Check on Customs
    • Return the Favor on Woods
    • Overpopulation on Lighthouse
    • Knock-knock on Lighthouse
    • Seaside Vacation on Lighthouse
    • Safe Corridor on Reserve
    • No Place for Renegades on Reserve
    • One location for Bunker Part 2 on Reserve
    • All locations for Long Line on Interchange
    • No Swiping on Shoreline
    • Multiple locations for Scrap Metal on Shoreline
    • One location for Spa Tour Part 2 on Shoreline
    • One location for Eagle Eye on Shoreline
    • Gendarmerie Mall Cop on Streets
  • Added the ability for bots to open car doors and trunks. Added/updated the following quests to use this feature:
    • Merin Car on Lighthouse
    • Truck that spawns a violet card by the Sawmill Checkpoint on Woods
    • Giving Trunk on Customs
    • Car trunk that spawns the OLI Logistics key on Customs
    • Car trunk with the medbag in the Storage area on Customs
  • Added a config option to increase the desirability of quests that are currently active for you. Desirability is increased by 1.2X by default.
  • Added config option to scale the value of BotSpawnPeriodCheck to reduce the feeling of Scavs "swarming" you. The period is 3X longer by default.
  • Added the ability to override EFT quest properties using the new config/eftQuestSettings.json file. None are changed by default.
  • Added the ability to specify target positions for bots to collect EFT quest items and doors that must be unlocked to reach them using the new config/zoneAndItemQuestPositions.json file.
  • After each objective that a bot completes for an EFT quest requiring you to place a marker, it will wait for the "protect objective" time before selecting another quest.
  • After each objective that a bot completes for an EFT elimination quest, it will wait a configurable amount of time (60s by default) before selecting another quest.
  • Implemented SAIN interop method to instruct bots to ignore their hearing when in an ambush position defined by a quest. This is needed if questing.brain_layer_priority is reduced to be a lower priority than SAIN's brain layers.
  • Stop treating assaultGroup Scavs as bosses
  • Added debug option in the advanced F12 menu to write more information about bot spawning to the game console
  • Added unused method to find the bot's weapon with the longest sighting range
  • Bug fix for CloseNearbyDoors action not working
  • Bug fix for allowing SPT 3.9.0

config.json files from previous releases are not compatible.

Questing Bots 0.6.1 (Alpha 2)

23 Jun 02:59
Compare
Choose a tag to compare
Pre-release

Changes from the 0.6.1 Alpha 1 Release:

  • Updated the algorithm used to find locations of EFT quests. All EFT quests can now be located, which fixes problems in previous releases with finding positions for the following quests:
    • Capturing Outposts on all locations (Customs, Woods, and Shoreline)
    • Background Check on Customs
    • Return the Favor on Woods
    • Overpopulation on Lighthouse
    • Knock-knock on Lighthouse
    • Seaside Vacation on Lighthouse
    • Safe Corridor on Reserve
    • No Place for Renegades on Reserve
    • One location for Bunker Part 2 on Reserve
    • All locations for Long Line on Interchange
    • No Swiping on Shoreline
    • Multiple locations for Scrap Metal on Shoreline
    • One location for Spa Tour Part 2 on Shoreline
    • One location for Eagle Eye on Shoreline
    • Gendarmerie Mall Cop on Streets
  • Added the ability for bots to open car doors and trunks. Added/updated the following quests to use this feature:
    • Merin Car on Lighthouse
    • Truck that spawns a violet card by the Sawmill Checkpoint on Woods
    • Giving Trunk on Customs
    • Car trunk that spawns the OLI Logistics key on Customs
    • Car trunk with the medbag in the Storage area on Customs
  • Added a config option to increase the desirability of quests that are currently active for you. Desirability is increased by 1.2X by default.
  • Added the ability to override EFT quest properties using the new config/eftQuestSettings.json file. None are changed by default.
  • Added the ability to specify target positions for bots to collect EFT quest items and doors that must be unlocked to reach them using the new config/zoneAndItemQuestPositions.json file.
  • After each objective that a bot completes for an EFT quest requiring you to place a marker, it will wait for the "protect objective" time before selecting another quest.
  • After each objective that a bot completes for an EFT elimination quest, it will wait a configurable amount of time (60s by default) before selecting another quest.

config.json files from previous 0.6.x releases are compatible, but questing.bot_quests.elimination_quest_search_time will always be 60, and questing.bot_quests.desirability_active_quest_multiplier will always be 1.0.

Questing Bots 0.6.1 (Alpha 1)

02 Jun 21:43
Compare
Choose a tag to compare
Pre-release
  • Added config option to scale the value of BotSpawnPeriodCheck to reduce the feeling of Scavs "swarming" you. The period is 3X longer by default.
  • Added debug option in the advanced F12 menu to write more information about bot spawning to the game console

config.json files from previous releases are not compatible.

Questing Bots 0.6.0

01 Jun 16:30
Compare
Choose a tag to compare
  • Allow the server and client to run on different machines. To accomplish this, the following changes were made:
    • Check the positions of all non-AI players, not only the main player, when determining which bots to disable in the AI limiter
    • Check the positions of all non-AI players, not only the main player, to determine where to spawn bots
    • Added interop support that provides a method to obtain the current bot-generation progress
    • Moved the client DLL into its own folder ("DanW-SPTQuestingBots")
    • Moved the "quests" folder from the server directory to the new client directory for this mod
    • Log files will now be stored within the new client directory for this mod
    • Removed the basic quest-file validation script that runs as the server starts
    • Added a basic quest-file validation script that runs as the game starts. If quests are missing or cannot be validated, a warning message will be written to the server console, but the mod will still function.
    • Added server and client checks for an older client DLL still remaining in the "BepInEx\plugins" directory. If so, show an error when the server or game starts and disable this mod.
    • If "quests" and "log" directories from older versions of the server files still exist, write warning messages in the server console, but still allow the mod to function
    • Bug fix for boss-spawn limiting not working when there are multiple non-AI players in the raid
    • Bug fix for multiple instances of components trying to be added when using certain types of mods (thanks to @belettee)
    • Bug fix for the raid-start delay-code running multiple times if multiple non-AI players are in the raid (thanks to @belettee)
  • Added config option to replace SPT's bot caps with EFT's when using the advanced spawning system. There are also options to only change the bot cap if EFT's is lower (enabled by default) and to apply additional map-specific adjustments.
  • If "As Online" difficulty is selected for a raid, random difficulties will be assigned to bots spawned by Questing Bots. The weighting of the difficulties is defined by the bot_difficulty_as_online array for each bot type in config.json.
  • Added AI-limiter option to keep certain bot types always active (accessible in the F12 menu). By default, Rogues and sniper Scavs will always be active.
  • Added a setting in the F12 menu to prevent bots from sprinting when they're within a certain distance of any quest objective (3m by default)
  • Disable BotStandby logic for all bots because it was causing problems and the AI limiter basically serves the same purpose
  • Reduced questing.bot_search_distances.objective_reached_navmesh_path_error from 20m to 2m because bots should be able to reach all quest positions now. This also prevents bots from trying to reach all steps for an inaccessible quest objective.
  • Added a configuration option to only reset a bot's decisions before looting if SAIN is a older than a specified version (2.2.1.99 by default). Additional improvements for switching between Questing Bots's and SAIN's logic will be included in future releases.
  • Added min_raid_time_remaining config option (180s by default) to prevent bots from spawning too late in the raid
  • Blacklist quest objectives on Scav island on Shoreline because Unity struggles to find complete paths to it (thanks to @MonstraG)
  • Ensure quest objectives on Lightkeeper Island on Lighthouse are blacklisted even if the first step is not on the island
  • If bots cannot form a valid path and are not on the NavMesh, teleport them to a valid NavMesh position (WIP)
  • Automatically disable the bot spawning system if Better Spawns Plus is detected (thanks to @xuvvy and @artofsound)
  • Added an error message when using DONUTS but not SWAG when EFT loads, but still allow the mod to function
  • Added null checks in case doors no longer exist (namely because they were destroyed by Backdoor Bandit)
  • Added bot difficulties to the "assignments" log file written at the end of each raid
  • Added rows for bots that were generated by Questing Bots but never spawned in the "assignments" log file written at the end of each raid
  • Removed the Questing Bots endpoint for writing error messages to the server console and will now use the SPT one
  • Changed the server message about the advanced spawning system ignoring bot caps for PMC's and PScavs from a warning to an info message
  • Bug fix for bots sprinting after completing objectives when they're still within maxRunDistance of them
  • Bug fix for Scavs not spawning later in the raid
  • Bug fix for bots unlocking doors requiring power (before it's turned on) when other mods are used that add context-menu actions
  • Bug fix for bots unlocking the inner KIBA door before the outer door
  • Bug fix for the AI limiter preventing bots from achieving the EBotState.PreActive state
  • Bug fix for bot and quest overlays not rendering properly when DLSS is enabled (thanks to Solarint)

config.json files from previous releases are not compatible.

IMPORTANT:

  • Because the file structure has changed with this release, files from all previous versions of this mod must be removed before installing this version!
  • If you're using Fika, you must set bot_spawns.delay_game_start_until_bot_gen_finishes=false in config.json or bosses may not spawn. Setting bot_spawns.spawn_initial_bosses_first=true may also help to ensure there are no long delays before bosses spawn.

Questing Bots 0.5.1 (RC1)

31 May 13:04
Compare
Choose a tag to compare
Pre-release

Changes from the 0.5.1 Alpha 3 Release:

  • Added AI-limiter option to keep certain bot types always active (accessible in the F12 menu). By default, Rogues and sniper Scavs will always be active.
  • Added config option to replace SPT's bot caps with EFT's when using the advanced spawning system. There are also options to only change the bot cap if EFT's is lower (enabled by default) and to apply additional map-specific adjustments.

config.json files from previous releases are not compatible.

IMPORTANT: Because the file structure has changed from the 0.5.0 release, files from all previous versions of this mod must be removed before installing this version!