- 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. Settingbot_spawns.spawn_initial_bosses_first=true
may also help to ensure there are no long delays before bosses spawn.