
You're no longer the only PMC running around placing markers and collecting quest items. The bots have transcended and are coming for you...
SAIN 3.2.0 or later and Looting Bots 1.4.0 or later are highly recommended!
This mod may have a performance impact, but it should be minimal starting with the 0.5.0 release. If you notice performance problems, please try using the built-in AI limiter.
Mod Compatibility:
REQUIREDBigBrain (1.2.0 or later)
Waypoints (1.6.2 or later)
Highly Recommended
SAIN (3.2.0 or later recommended)
Looting Bots (1.4.0 or later recommended)
NOT Compatible
AI Limit or any other mods that disable AI in a similar manner. This mod relies on the AI being active throughout the entire map. Starting with 0.2.10, Questing Bots has its own AI Limiter feature. Please see the tab below for more information.Partially Compatible
Fika (Requires client version 0.9.8962.33287 or later) (If you're using the Questing Bots spawning system, you must disable Enforced Spawn Limits in the F12 menu for Fika)
Traveler, Entry Point Selector, and similar mods that significantly reduce spawn points (You MUST use another mod like SWAG + DONUTS to manage bot spawning when using this mod. Otherwise, bots will spawn right in front of you.)
Please Just Fight (This mod should only be used if you're not using the Questing Bots spawning system)CompatibleSWAG + DONUTS (Bot spawning in this mod will be automatically disabled)
Late to the Party
Performance Improvements (Must be version 0.2.4 or newer) NOTE: Please disable the bot-spawning system in this mod if you're using other mods that manage spawning! Otherwise, there will be too many bots on the map. The bot-spawning system in this quest will be automatically disabled if any of the following mods are detected:
- Open the ZIP file you downloaded for this mod
- Extract the "BepInEx" and "user" folders into your SPT install directory, and overwrite any existing files
Example from another mod (thanks, DrakiaXYZ!):
Instead of simply patrolling their spawn areas, bots will now move around the map to perform randomly-selected quest objectives. By default this system is only active for PMC's and player Scavs, but it can be enabled for normal Scavs and bosses if you want an extra challenge.
After spawning (regardless of when this occurs during the raid), bots will immediately begin questing, and there are only a few conditions that will cause them to stop questing:
- They got stuck too many times
- Their health is too low and they're unable to heal
- They're over-encumbered
- They're trying to extract (using SAIN)
Otherwise, they will only temporarily stop questing for the following reasons:
- They're currently or were just recently in combat
- They heard a suspicious noise
- They recently completed an objective
- They're checking for or have found loot
- Their health is too low or they have blacked limbs (besides arms)
- Their energy or hydration is too low
- They have followers that are too far from them
There are several types of quests available to each bot:
- EFT Quests: Bots will go to locations specified in EFT quests for placing markers, collecting/placing items, killing other bots, etc. Bots can also use quests added by other mods.
- Spawn Rush: At the beginning of the raid, bots that are within a certain distance of you will run to your spawn point. Only a certain number of bots are allowed to perform this quest, and they won't always select it. This makes PVP-focused maps like Factory even more challenging.
- Boss Hunter: Bots will search zones in which bosses are known to spawn. They will only be allowed to select this quest at the beginning of the raid (within the first 5 minutes by default) and if they're a high enough level.
- Airdrop Chaser: Bots will run to the most recent airdrop if it's close to them (within 500m by default). They will be allowed to select this quest within questing.bot_quests.airdrop_bot_interest_time seconds (420s by default) of the airdrop crate landing.
- Spawn Point Wandering: Bots will wander to different spawn points around the map. This is used as a last resort in case the bot doesn't select any other quests. This quest is currently disabled by default because it should no longer be needed with the quest variety offered in the 0.4.0 and later releases.
- "Standard" Quests: Bots will go to specified locations around the map. They will prioritize more desirable locations for loot and locations that are closer to them. These also include some sniping and camping quests on all maps, so be careful!
- "Custom" Quests: You can create your own quests for bots using the templates for "standard" quests. None are provided by default.
---------- Bot Quest-Selection Algorithm Overview ----------
When each bot spawns, this mod finds the furthest extract from them and references it when selecting new quests for the bot. If the bot ever comes close enough to that extract while traversing the map, this happens again; a new extract is selected for it that is the furthest one from its current location. This continues until the bot extracts or dies. This extract is NOT used when bots extract via SAIN; it is only used when this mod selects new quests for the bot.
Before selecting a quest for a bot, all quests are first filtered to ensure they have at least one valid location on the map and the bot is able to accept the quest (it's not blocked by player level, etc.). Then, the following metrics are generated for every valid quest:
- The distance between the bot and each objective for the quest with some randomness applied (by questing.bot_quests.distance_randomness). This value is then normalized based on the furthest objective from the bot (for any valid quest), and finally it's multiplied by a weighting factor defined by questing.bot_quests.distance_weighting (1 by default).
- A "desirability" rating for each quest, which is the desirability rating
assigned to the quest but with some randomness applied (by questing.bot_quests.desirability_randomness). This value is divided by 100 and then multiplied by a weighting factor defined by questing.bot_quests.desirability_weighting (1 by default). There are modifiers that can be applied to the desirability ratings of quests including questing.bot_quests.desirability_camping_multiplier, questing.bot_quests.desirability_sniping_multiplier, and questing.bot_quests.desirability_active_quest_multiplier. More information about these settings can be found in the README or GitHub repo for this mod. - The angle between two vectors: the vector between the bot and its selected extract (described above), and the vector between the bot and each objective for the quest. If the quest objective is in the same direction as the bot's selected extract, this angle will be small. If the bot has to move further from its selected extract, this angle will be large. Angles that are below a certain threshold (90 deg by default) are reduced down to 0 deg. This value is divided by 180 deg minus the threshold just described (90 deg by default), and finally it's multiplied by a weighting factor defined by questing.bot_quests.exfil_direction_weighting, which is different for every map.
These three metrics are then added together, and the result is the overall score for the corresponding quest. The quest with the highest score is assigned to the bot. If for some reason the bot is unable to perform that quest, it selects the one with the next-highest score, and so on. If no quests are available for the bot to select, this mod will first try allowing the bot to perform repeatable quests early (before the questing.bot_questing_requirements.repeat_quest_delay delay expires). If there are no available repeatable quests, this mod will then attempt to make the bot extract via SAIN. Finally, this mod will stop assigning new quests to the bot.
At the beginning of the raid, PMC's will spawn around the map at actual EFT PMC spawn points. The spawning system will try to separate spawn points as much as possible, but spawn killing is still entirely possible just like it is in live Tarkov. The total number of PMC's that can spawn is a random number between the minimum and maximum player count for the map (other mods can change these values). However, you count as one of those PMC's for PMC raids. That number will be reduced if you spawn into the map late for a Scav run. The PMC difficulty is set by your raid settings in EFT.
Starting with the 0.4.0 release, player Scavs will also spawn throughout the raid. Each group of player Scavs will be assigned a minimum spawn time that is generated using SPT's raid-time-reduction settings for Scav raids. This mod will use SPT's weighting settings for choosing when player Scavs will spawn into each location, it will add some randomness, and then it will generate a spawn schedule for all player-Scav spawns. Effectively, this means that player Scavs are most likely to spawn toward the middle and last third of raids. They're unlikely to spawn toward the very beginning or very end of them. Player Scavs can spawn at any EFT PMC or player-Scav spawn point on the map, and player-Scav bot difficulty is set by your raid settings in EFT.
Only a certain (configurable) number of initial PMC's will spawn at the beginning of the raid, and the rest will spawn as the existing ones die. PMC's that spawn after the initial wave can spawn anywhere that is far enough from you and other bots (at any EFT spawn point for PMC's or player Scavs). After all PMC's have spawned, player Scavs will be allowed to spawn. The maximum total number of PMC's and player Scavs on the map cannot exceed the number of initial PMC's (determined by bot_spawns.max_alive_bots). For example, Customs allows 10-12 players, but Questing Bots only allows 7 to be on the map at the same time by default. That means 7 PMC's will spawn immediately as the raid starts, and as some of them die others will spawn to replace them. After all PMC's have spawned and less than 7 are remaining, player Scavs will be allowed to spawn. If there are 5 PMC's left on the map, 2 player Scavs will be allowed to spawn. If there are 3 PMC's left on the map, 4 player Scavs will be allowed to spawn, and so on. Even if most total PMC's have died, player Scavs will not be allowed to spawn earlier than their scheduled spawn times.
A new feature of the 0.4.0 and later releases is an advanced spawning system that tricks EFT into thinking that PMC's and player Scavs are human players. This makes PMC's and player Scavs not count toward the bot cap for the map, so they shouldn't impede normal EFT bot spawns for normal Scavs and bosses. It also prevents PMC's and player Scavs from counting toward the maximum bot counts for each zone on the map, and this allows normal Scavs to spawn like they would in live EFT. Without this system, all initial bosses must be configured to spawn first (which is a config option in this mod) or EFT may suppress them due to the high number of bots on the map. To accomodate the large initial PMC wave and still allow Scavs and bosses to spawn, the bot cap can be optionally increased (which is also a config option in this mod) if you're not using the advanced spawning system.
---------- PMC Group Spawning System ----------
- Spawn chances for various group sizes are configurable. By default, solo spawns are most likely, but 2-man and 3-man groups will be commonly seen. 4-man and 5-man groups are rare but possible.
- EFT will assign one bot in the group to be a "boss", and the boss will select the quest to perform. All other bots in the group will follow the boss.
- If any group members stray too far from the boss, the boss will stop questing and attempt to regroup
- If any member of the group engages in combat or hears a suspicious noise, all other members will stop questing (or following) and engage in combat too.
- If the boss is allowed to sprint, so are its followers and vice versa.
- If the boss of a bot group dies, EFT will automatically assign a new one from the remaining members
- Followers are only allowed to loot if they remain within a certain distance from the boss
---------- AI Limiter System ----------
Since normal AI Limit mods will disable bots that are questing (which will prevent them from exploring the map), this mod has its own AI Limiter with the following features:
- AI Limiting must be explicitly enabled in the F12 menu.
- AI Limiting must be explicitly enabled for bots that are questing for each map. By default, questing bots will only be disabled on Streets.
- Bots will only be allowed to be disabled if they are beyond a certain distance (200m by default) from human players. There are individual map-specific distances that can be adjusted by enabling advanced settings in the F12 menu, but the global setting will take priority. In other words, the actual limiting distance is the minimum of the two (the map-specific value and the global value). By default, all map-specific distances are set to 1000m to avoid confusion when only the global setting is adjusted.
- Bots will only be allowed to be disabled if they are beyond a certain distance (75m by default) from other bots that are questing (and not disabled)
---------- Scav Spawn Restrictions System ----------
The Questing Bots spawning system adds PMC and player-Scav spawns on top of existing vanilla EFT spawns to mimic the live PvP experience as much as possible. However, that also means issues with vanilla EFT spawning will also exist while using this mod, including excessive Scav spawning that overwhelms players. This is especially a problem in live PvE.
To mitigate Scav spawning issues experienced in live EFT, the 0.9.1 release introduces several F12 menu options to intervene with its Scav spawning system:
- Enable Scav Spawn Restrictions: Completely enable or disable all features described below.
- Map Fraction for Scav Spawning Exclusion Radius: In live PvP and PvE, Scavs may spawn as close as 1.8m from you, which is immersion-breaking and unfair. Questing Bots significantly increases the minimum distance from you that Scavs can spawn, based on this slider value. First, it finds the maximum distance between any two spawn points on the map (which approximates the map size). Then, it calculates the minimum spawning distance for Scavs by multiplying this distance by the slider value (0.1 by default). Finally, it blocks EFT from spawning any Scavs within the calculated minimum spawning distance of any players (human, AI PMC, or AI player Scav). Because the minimum distance scales with the map size, practically this means that Scavs cannot spawn within ~100m of you on Customs but only ~17m of you on Factory (using the default setting). Higher values may overly restrict Scav spawns, while lower values have a higher risk of Scavs spawning near you.
- Permitted Scav Spawn Rate: As Scavs are killed, EFT rapidly spawns new ones to replace them (until the map's bot cap is reached). This means you can get stuck in situations where Scavs are constantly swarming you during the raid. To alleviate this problem, Questing Bots limits the rate at which EFT is allowed to spawn Scavs to this slider value (2.5 Scavs / minute by default). This restriction begins after a certain number of Scavs have spawned, determined by the value of Threshold for Scav Spawn Rate Limit (see below). The time window used to calculate the Scav spawn rate is defined by bot_spawns.eft_new_spawn_system_adjustments.scav_spawn_rate_time_window (300s by default).
- Threshold for Scav Spawn Rate Limit: EFT will be allowed to spawn this number of Scavs from the start of the raid, and then Scav spawns will be limited by Permitted Scav Spawn Rate. The purpose of this threshold is to ensure the map is initially populated before Scav respawns are blocked. This is set to 10 by default.
- Max Alive Scavs: The total number of assault, assaultGroup, cursedAssault, and marksman Scavs that are alive on the map at the same time will be limited to this value (15 by default). Questing Bots will prevent EFT from spawning additional Scavs if this limit would be exceeded.
If Scav spawns are blocked by either the Permitted Scav Spawn Rate or Max Alive Scavs restrictions, Questing Bots will prevent EFT from attempting to spawn additional Scavs by the number of seconds defined by bot_spawns.eft_new_spawn_system_adjustments.non_wave_retry_delay_after_blocked (180s by default).
Objective System:
-
Mods that add a lot of new quests may cause latency issues that may result in game stability problems and stuttering
-
Bots tend to get trapped in certain areas. Known areas:
- Customs between Warehouse 4 and New Gas
- Customs in some Dorms rooms
- Lighthouse in the mountains near the Resort spawn
- Lighthouse on the rocks near the helicopter crash
-
Bots blindly run to their objective (unless they're in combat) even if it's certain death (i.e. running into the Sawmill when Shturman is there).
-
Bots take the most direct path to their objectives, which may involve running in the middle of an open area without any cover.
-
Certain bot "brains" stay in a combat state for a long time, during which they're unable to continue their quests.
-
Certain bot "brains" are blacklisted because they cause the bot to always be in a combat state and therefore never quest (i.e. exUSEC's when they're near a stationary weapon)
-
Bots sometimes unlock doors for no reason if they can't properly resolve their quest locations.
-
A "Destroying GameObjects immediately is not permitted during physics trigger/contact, animation event callbacks or OnValidate. You must use Destroy instead." error will sometimes appear in the game console after a bot unlocks a door. This can be ignored.
-
Player-level ranges for some quests are not reasonable, so bots may do late-game quests at low player levels and vice versa. This is because EFT has no minimum level defined for several quest lines.
-
Thanks to Props for sharing the code DONUTS uses to spawn bots. This was the inspiration to create this mod.
-
Thanks to DrakiaXYZ for creating BigBrain and Waypoints and for all of your help with developing this mod.
-
Thanks to nooky for lots of help with testing and ensuring this mod remains compatible with SWAG + DONUTS.
-
Thanks to Skwizzy for help with adding interop capability to Looting Bots.
-
Thanks to Solarint for help with improving interop capability to SAIN and working with me to balance bot questing vs. combat behavior.
-
Thanks to everyone else on Discord who helped to test the many alpha releases of this mod and provided feedback to make it better. There are too many people to name, but you're all awesome.
-
Of course, thanks to the SPT development team who made this possible in the first place.
Please see the README or https://github.com/dwesterwick/SPTQuestingBots for information about the configuration options in config.json and how to add custom quests.
SPT 3.10.5
13.5K Downloads
Gameplay Changes:
- Added adjustments to EFT Scav spawns when using the Questing Bots spawning system (#44). See the Overview tab or the README for a description of the system concept and details about each setting.
- When using the Questing Bots spawning system, register PMC's and player Scavs as actual players in EFT to reduce the chance that Scavs will spawn near them
- Regularly update the BotZone for bot groups to be whichever one is closest to its boss. This prevents them from running far away whenever they stop questing, and instead they should patrol the local area.
- Reduced the desirability of EFT quests from 60 to 50
- Reduced the desirability of boss hunter quests from 40 to 30
- Reset all map-specific bot-cap adjustments in bot_spawns.bot_cap_adjustments.map_specific_adjustments to 0
- Prevented PMC's and PScavs from spawning inside the broken silo on Factory
- Allow bots using PmcBear and PmcUsec brain types to quest
- Changed bots_per_group_distribution and bot_difficulty_as_online arrays for PMC's and player Scavs from using interpolation to using chances. In the new format, the chance that the value in the left column will be selected is defined in the right column. Chances values do not need to add up to 100; the algorithm simply uses relative weighting (for the numbers in the second column) between rows.
- Revised the chances that various bot difficulties will be selected and bot groups will be of various sizes for PMC's and player Scavs. Most notably, PMC's are more likely to spawn as solos compared to previous releases.
- Reverted when PMC conversion chances are adjusted from the /client/game/start endpoint back to when the plugin loads. This will allow future versions of Realism (>1.5.0) to work with the Questing Bots spawning system without having to make any configuration changes.
- Bug fix for crashing or freezing when loading into raids if a custom trader mod is used that has quests with prerequisites containing circular references to other quests. (#43)
- Bug fix for incessant exceptions when the BotObjectiveManager component is not disposed when a bot is disposed (due to an error). This is mostly seen on Fika servers. (#46)
- Bug fix for bot group members attacking bots that are separated due to being stuck or healing for too long (#47)
- Bug fix for the new rewrite of DONUTS not being detected (if DONUTS is installed without SWAG)
- Bug fix for bosses not spawning when playing solo using a Fika dedicated server (#49)
Code Changes:
- Added server and client validation of arrays in config.json including a check to ensure an older version of the file isn't used
- Prevented the "advanced spawning system" from being disabled
- Removed the obsolete contents of the bot_spawns.bot_cap_adjustments section in config.json and related code. The contents from the previous bot_spawns.advanced_eft_bot_count_management section (with the enabled setting removed) were then moved to this section.
- Revised the abstract bot generator class to prevent bot-generator instances from overriding Unity's Awake and Update methods. Instead, these methods call new methods (Init and Refresh, respectively) that must be implemented in each bot-generator instance. This is a breaking change for any spawn mod that uses the Questing Bots spawning system as its framework!
- Set the maximum generated bot count for bot generators in the Awake method instead of the constructor
- Moved the PendingSpawnPoints list into the abstract bot generator class because it's needed for all instances of it
- Changed the method patched when activating bots from method_11 to method_10
- Added some additional error handling to PMC and player Scav spawning
- Added debug patches to expose errors discarded in EFT's HandleFinishedTask methods (currently disabled)
- Changed more logging messages from Info to Debug or disabled them
- Reorganized patches into multiple namespaces
- Minor refactoring
- Removed obsolete code
config.json files from previous releases are not compatible.
Unknown SPT Version
26.7K Downloads
- Updated to SPT 3.10.x (#39)
- Increased required version of Waypoints from 1.5.2 to 1.6.2
- Increased required version of BigBrain from 1.0.1 to 1.2.0
- Updates for the new Factory map:
- Updated standard quests
- Prevent bots from spawning outside of the building where the transit is located
- Increased max_alive_bots from 5 to 7
- Updated management of bots on Lightkeeper Island:
- Use EFT's LighthouseTraderZone class for tracking which bots are allowed on the island and currently on the island
- Use the collider in LighthouseTraderZone to determine the boundary of Lightkeeper Island for changing bot hostilities instead of hardcoding corner locations (but keep the hardcoded points as a failsafe in case the collider is null)
- Force Zryachiy and his followers to become hostile toward you if your DSP encoding is removed
- Force your DSP encoding to be disabled and Lighkeeper trader rep to be reduced if you kill another player on Lightkeeper Island, unless that player is also an aggressor on the island
- Added (configurable) overrides for EFT's new bot hostility settings:
- Added override to force all PMC groups to be hostile toward each other
- Added override to force PMC groups to be hostile toward Scavs (and vice versa)
- If the spawning system in this mod is used, remove all PMC waves in BSG's PvE settings
- If Performance Improvements versions 0.2.1 - 0.2.3 is loaded, show a constant error in the game, and write an error to the server and game consoles.
- If Please Just Fight is loaded with the Questing Bots spawning system enabled, show an error in the game, game console, and server console.
- Automatically disable this mod's spawning system if Reality is loaded
- Hardcoded some quest locations on various maps
- Slightly reduced the chances that PMC and PScav groups of 3 or more members will spawn
- Prevented PMC's and Partisan from being included in Boss Hunter quests
- Wait for EFT's "bot preset" bot generation to finish before starting this mod's bot generation
- Ensure the server's PMC conversion chance is 0% before EFT's "bot preset" bot generation begins
- Adjust PMC conversion chances when the /client/game/start endpoint is called instead of when the plugin loads. The endpoint might be changed in the future to improve compatibility with Realism.
- Improved the robustness of the code that verifies PMC-conversion chances haven't been changed by another mod, and write warning messages to the server to explain what changed if the verification fails
- Create a "fake stash" for keys before transferring them to bots that are about to unlock doors
- Only show warning messages about null quest templates once when loading into a raid instead of when processing each quest
- Removed many debug options and moved them to a separate mod
- Changed the logging level for many client messages (mostly from Info to Debug)
- Some refactoring but much more is needed
- Removed obsolete methods from the client and server code
- Bug fixes for problems introduced in SPT 3.10:
- Bug fix for remaining members of a bot group generated by this mod not becoming followers after a boss is set
- Bug fix for a new boss of a PMC group generated by this mod not being set when the initial one dies
- Bug fix for a new boss not being selected if the current one is separated from its group (due to being stuck for too long)
- Bug fix for bot paths not avoiding airdrop crates (EFT issue)
- Bug fix for initial raid setup failing when WorldInteractiveObjects with the same ID are found on the map (EFT issue)
- Bug fix for exceptions when sounds fail to play while bots perform certain actions if you're using a third-person view
- Bug fixes for remaining problems from previous SPT releases:
- Bug fix for door and switch interactions not working for all clients when using Fika
- Bug fix for PScav groups generated by this mod allowing Scavs who spawned earlier to join
- Bug fix for bots generated by this mod being allowed to join other bot groups
- Bug fix for PMC spawn points being too restricted when spawning at the beginning of a Scav raid
- Bug fix for 0 bots being infinitely generated for bot groups. Ensure at least 1 PMC and 1 PScav is generated (if those generators are enabled).
- Bug fix for StackOverflowException when finding the required level for a quest added by a custom trader that has circular references in its prerequisites. When this happens, show an error in the game console and server console, and set the required level for that quest to 1.
- Bug fix for exception when airdrops land for Fika client machines
config.json files from previous releases are not compatible.
Unknown SPT Version
14.4K Downloads
SAIN 3.1.0 or later and Looting Bots 1.3.5 or later are highly recommended!
- Renamed the "Distance from PMCs (m)" F12 menu option to "Distance from Bots That Are Questing (m)"
- Instead of showing a warning message when QuestManiac is detected, make it incompatible. Quests take far too long to process, and the performance impact is too significant to tolerate.
- Simplified the code needed to create custom bot generators using this mod's spawn system (a patch is no longer needed)
- Disabled logging messages when bots are forced to be hostile toward bosses
- Disabled server messages showing BotSpawnPeriodCheck values
- Use the SPT method for getting members of a bot group
- Made all Unity methods protected instead of private because the recent Visual Studio update is dumb and forces them to be faded out
- Removed unused OnGameStarted patch
- 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
- Bug fix for followers of bots with quests on Lightkeeper Island setting off the mines on the bridge
config.json files from the 0.8.0 release are compatible.
Unknown SPT Version
13.7K Downloads
SAIN 3.1.0 or later and Looting Bots 1.3.5 or later are highly recommended!
- 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.
Unknown SPT Version
80.7K Downloads
SAIN 3.0.4 or later and Looting Bots 1.3.5 or later are highly recommended!
- 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.
Unknown SPT Version
6.3K Downloads
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.
SAIN 2.3.3 or later and Looting Bots 1.3.3 or later are highly recommended!
- 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.
Not quite yet...