Questing Bots

  • I am having HUGE perfomance issue i am new to spt and am wondering why i am having such an issue heres are specs and mods
    specs
    ryzen 7 5800x3d
    64 gb 3600mhz ram
    msi vectis 4060Ti 16 gb
    1 tb nvme ssd

    mods are
    Sain2.19
    swag+donuts
    questingbots
    lootingbots
    Waypoints
    Late to the party
    algorithmiclevelprogress
    Bigbrain
    Livefleaprices
    itemsellprice
    morecheckmarks

    Idk why i am having fps but on streets i get like 30-40's and on every other map i get barely 70's

    interesting to note that also i have no questingbot config in the F12 menu dont know if thats an issue or not. Please help as i am completely lost.

  • Idk why i am having fps but on streets i get like 30-40's and on every other map i get barely 70's

    interesting to note that also i have no questingbot config in the F12 menu dont know if thats an issue or not. Please help as i am completely lost.

    As far as I understand it Streets isn't well optimised in SPT in the current AKI version (3.7.6) and I believe in 3.8.0 Streets will have a significant performance boost.


    As for QuestingBots have you extracted the files in to correct folders?




    Edit: forgot to mention, having too many AI spawning can really impact performance in your raids, it's a wise option to limit or lower the total amount to find a good balance in performance and AI. I use SWAG & Donuts with custom edited values, would really recommend using it. Take your time and read everything thoroughly and follow the instructions as best as you can.


    Hope this helps!

  • So i have it in my bepinex folder should i extract it here? Once again sorry I am new

    You should look at the contents of each ZIP file to see where they should be extracted. Like Rad Roach posted earlier, most ZIP files for mods can be extracted into your SPT install directory. However, not everyone has the same folder structure for their ZIP files, so you'll have to match the subfolders in the ZIP with the subfolders in the SPT install directory.


    As a rule of thumb, DLL's go into the Bepinex/plugins directory. If the folder contains a package.json file, that folder should be in the user/mods directory.

  • So i have it in my bepinex folder should i extract it here? Once again sorry I am new

    Your 'user' folder should not be where your BepInEx & Config folders are, it should be placed like this...



    I totally understand if you are new to modding and using SPT, learning is all part of the experience! :)


    As for the ZIP files you need to extract them like I advertised earlier, you can't just place the ZIP file in to a folder and expect it to work it just doesn't work like that.

    Roach

  • DanW added a new version:

    Quote

    New Features:

    • Implemented bot hearing sensor to make them less oblivious and more proficient in CBQ. This system has the following features:
      • If bots hear enemy footsteps or gunfire within a certain range, they will stop questing for some time between 5s and 20s (configurable). By default, the threshold for them to detect enemy footsteps is 20m, and the threshold for gunfire (including suppressed gunfire) is 50m.
      • If they continue hearing suspicious noises (described above), they will keep being prevented from questing until a maximum time is reached, which is configurable for each map. By default, the maximum time for all maps is 120s except Labs (60s) and Factory (30s Day, 45s Night). The more PVP-focused maps have lower maximum times to discourage bots from staying in one location for a long time. After this maximum time is reached, bots will ignore suspicious noises for a certain time, which is 7s by default.
      • The hearing sensitivity for bots is higher if they're wearing headsets and lower if they're wearing helmets that block sound.
      • If the loudness of the sound is below a certain configurable level, bots will ignore it. Currently, bots will ignore you crouch-walking at the slowest speed even if they're wearing headsets. That way, you can still sneak up on them. In contrast, bots that are wearing helmets that block noise and not wearing headsets will likely not hear you walking at all. All bots will hear you sprint, and all bots will hear gunfire regardless of their loadouts.
      • When bots first hear suspicious noises, they will not be allowed to loot for some time between 5s and 20s (same as the setting above). This requires Looting Bots 1.2.1 or later.
      • Bots will ignore suspicious noises if they're closing doors, planting items, toggling switches, or in an ambush position
      • If a bot in a group stops questing to investigate a suspicious noise, all other group members will stop questing
      • SAIN is highly recommended to complement this system
      • This system can be disabled if desired
    • Adjusted default configuration to make bots in groups travel closer together:
      • Reduced questing.bot_questing_requirements.max_follower_distance.target_range.min from 10m to 7m
      • Reduced questing.bot_questing_requirements.max_follower_distance.target_range.max from 20m to 12m
      • Reduced questing.bot_questing_requirements.max_follower_distance.nearest from 25m to 15m
      • Reduced questing.bot_questing_requirements.max_follower_distance.furthest from 40m to 25m
      • Reduced questing.bot_questing_requirements.break_for_looting.max_distance_from_boss from 75m to 50m
    • Removed legacy code that doubled the number of bots allowed to do a quest if it was for an EFT quest in a large area (i.e. locations for Capturing Outposts)
    • Increased questing.bot_questing_requirements.repeat_quest_delay from 300s to 360s so bots are less likely to bounce between nearby quests that have many objectives
    • Allow bots to loot after completing EFT quests if there is a non-EFT quest objective within a certain distance (5m by default) that allows looting. However, bots will never be able to loot at quest objectives requiring them to plant items.
    • Allow bosses of bot groups to wander around and patrol if they're regrouping and they've reached their nearest follower. Previously they would stand still after reaching their nearest follower, making them easy sniping targets.
    • Added configuration options to adjust the desirabilities of quests that are marked as camping quests or sniping quests
    • Reduced the minimum distance above which bots can be disabled by the AI limiter if they're near other questing bots from 50m to 25m
    • Added new fields to bot overlays to show why they are not questing or following their bosses. Logic checks for determining if bots can quest or follow bots were reorganized so the most severe reasons are shown in this field.
    • Relocated search_time_after_combat in config.json but did not change its values
    • Removed the F12 option to disable time-gating because there's no benefit
    • Fixed special quests like "Boss Hunter" have unnamed quest objectives
    • Bug fix for slow bot generation (and related lag spikes) compared to the 0.3.5 release
    • Bug fix for not all members of a Scav group being converted to PScavs when using another spawning mod like SWAG + DONUTS and having adjust_pscav_chance.enabled=true
    • Bug fix for bots attacking other bots that are disabled by the AI limiter
    • Bug fix (for broken bug fix) for bots being able to join other bot groups
    • Bug fix for pausing of questing brain layers not working. This mainly affected the transition between bots unlocking and opening doors.
    • Disabled old debug messages
    • Refactoring and removal of unused code


    Quest Changes:

    • Reduced desirability of EFT quests from 65 to 60
    • Increased min_distance of "Boss Hunter" quests from 25m to 50m
    • Reduced max_distance of Airdrop Chaser quests from 500m to 400m
    • Changed "3rd Floor Office Rush" quest in Factory to have an ambush step instead of a hold-position step
    • Reduced desirability of "3rd Floor Bridge" in Factory from 35 to 25
    • Increased desirability of "Gate 3" in Factory from 10to 15
    • Increased desirability of "Gate 3 Entrance" in Factory from 10to 15
    • Increased desirability of "Gate 3 Camping" in Factory from 10to 15
    • Separated ambush objective in "Cafeteria" quest in Labs into a new quest
    • Reduced desirability of "Medical Block Elevator Stairwell" in Labs from 30 to 25
    • Reduced desirability of "Ventilation Shaft Stairwell" in Labs from 20 to 10
    • Reduced desirability of "Parking Stairwell" in Labs from 20 to 10
    • Reduced desirability of "NE Stairwell" in Labs from 20 to 10
    • Reduced desirability of "Central Stairwell 1" in Labs from 20 to 15
    • Reduced desirability of "Central Stairwell 2" in Labs from 20 to 15
    • Reduced desirability of "Server Room SW Stairs" in Labs from 30 to 25
    • Reduced desirability of "Server Room NW Stairs" in Labs from 30 to 25


    config.json files from previous releases are not compatible.

  • DanW added a new version:

    Quote

    Feature Changes:

    • Increased required SPT version to 3.7.6
    • Revised spawn-location selection algorithm for PMC's and PScav's that spawn after the beginning of the raid
    • Separate bots from their groups if they take too long to heal (>120s by default) or get stuck too many times (8 by default). If the boss of a group is separated, a new boss for the group will be selected. The timer for determining if bots take too long to heal will be paused when bots hear suspicious noises or are in combat.
    • Added new Snipe quest step type that operates the same as Ambush but allows bots to be interrupted by suspicious noises
    • Increased bot_spawns.max_alive_bots for Labs from 8 to 9
    • Updated SPT-version check when the game starts
    • Use raid-time-adjustment properties provided in SPT 3.7.6
    • If bots stop questing or following because they got stuck, show "IsStuck" for the reason why they stopped instead of "CannotQuest"
    • Bug fix for constant exceptions when the game starts that "break" bots and cause them to shuffle and not engage enemies
    • Bug fix for bots continuing to perform quests with maxBotsInGroup limits below their group size if followers are assigned to them after they started doing the quest
    • Bug fix for bots being able to unlock or open doors that would have no interaction options for human players (i.e. the Saferoom door in Interchange when the power is off)
    • Bug fix (for broken bug fix) for bots being able to join other bot groups (for real this time?)
    • Bug fix for player Scavs spawning next to each other during the raid
    • Added debug messages to help troubleshoot spawn issues
    • If a PMC or PScav spawn was prevented because it would be too close to another bot, show the distance to that bot in the game console

    Quest Changes:

    • Updated all sniping quests to use the new Snipe quest step type instead of Ambush
    • Changed "Bridge Sniping" on Customs from being considered a camping quest to a sniping quest


    config.json files from previous releases are not compatible.

  • DanW added a new version:

    Quote
    • Updated for SPT-AKI 3.8.0
    • Increased required version of Waypoints from 1.3.4 to 1.4.3
    • Increased required version of BigBrain from 0.3.1 to 0.4.0
    • Changed required version of SPT-AKI to 3.8.x for client DLL and server files
    • Added standard quests for Ground Zero
    • Updated quests for Shoreline including expansion area
    • Added quests for new Streets locations
    • Implemented a bot pathing controller with the following features:
      • Paths are cached and only recalculated when needed.
      • Added the ability to create waypoints for quests. When the raid starts, static paths will be calculated from each of the quest's objectives to each waypoint defined for the quest. If a bot cannot find a complete path to its objective, it will check if a complete path can be formed to any of the quest's waypoints. If so, it will use that waypoint to get to the objective. This will help bots to navigate to quests locations that are difficult for Unity to calculate a path to them.
      • Quest waypoints and target positions for bot paths can be visualized by enabling debug options in the F12 menu. Bot-path target overlays are an advanced option.
      • The status of each bot's current path will be shown in the bot overlays enabled in the F12 menu
    • Added Ground Zero to AI-limiter options and config.json options
    • Reduced desirability of Boss Hunter quest type from 65 to 40
    • Added options for exporting custom quest locations in the F12 menu (requires advanced options to be checked)
    • Allow Kollontay and his followers to quest if questing.allowed_bot_types_for_questing.boss=true
    • Added a 20ms delay between each bot-generation task to attempt to reduce server retries
    • When making bots hostile toward bosses, excludes ones in questing.bot_quests.blacklisted_boss_hunter_bosses
    • Changed the text color of the bot's brain layer from yellow to magenta in the bot overlays enabled in the F12 menu
    • If a bot gets stuck, show a warning message in the game console instead of an info message
    • Only show a warning message about the Boss Hunter quest not being used if more than one bot zone exists on the map
    • Added shooterBTR to blacklisted bot brains for PMC's
    • Ensure LocationData component is destroyed before adding it to a GameWorld instance
    • Made "Show Quest Info for Spawn-Search Quests" F12-menu option an advanced option
    • Bug fix for bots trying to regroup with dead followers
    • Bug fix for failed bot paths not being drawn unless debug.show_zone_outlines=true
    • Bug fix for failed bot paths and zone outlines persisting across multiple raids (even if the map changes)
    • Bug fix for possible NRE's when trying to show bot overlays for despawned bots


    config.json files from previous releases are not compatible.

  • DanW added a new version:

    Quote
    • 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.
  • DanW added a new version:

    Quote
    • 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.

  • DanW added a new version:

    Quote
    • 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.

  • Is that possible to add another option that allows you to enable the AI limiter but disable it for PMCs? I only saw the option for sniperscav, bossandfellow, raiders, and rouges.

  • Hey Dan, first all thanks, for the amazing mod.


    Quick questions for clarification on the configuration process. I want to use the questing bots portion of your mod but keep vanilla SPT spawn behavior. Under the configuration file I changed "true" to "false", like so...


    "bot_spawns": {

    "enabled": false


    Is there anything else I need to do under that section? I've also set everything below it to "false" like "bot_cap_adjustments", "limit_initial_boss_spawns", "pmcs" etc. Is doing that even necessary?


    Thanks again.

  • All you have to do is change bot_spawns.enabled=false. That will disable everything related to spawning in this mod.

  • That's the default behavior. There's already another option to allow the system to disable PMC's.

    What's the name of that option? What I am looking for is that all PMC bots can walk freely on the map no matter where they are, but the other bots would only act if I approached them

Participate now!

Don’t have an account yet? Register yourself now and be a part of our community!