Posts by DanW
-
-
DanW added a new file:
QuoteThis mod will add a new action called "Open Sesame" to context menus to allow you to open things without requiring the key:
It also adds a "Turn On Power" action to doors that require the map's power switch to be turned on before they can be unlocked:
To prevent you from accidentally unlocking things, a "Do Nothing" action is added first (so it's the default action). This can be disabled in the Configuration Manager.
You can also enable options in the Configuration Manager to write debug messages when the context menu opens or when you select the "Open Sesame" or "Turn on Power" actions. Enabling these will allow you to see the door ID (when the context menu opens), key ID (when you unlock a door via the "Open Sesame" action), or switch ID (when you turn on the power switch):
You can also prevent this mod from adding actions to context menus via a Configuration Manager option.
I wrote this to be agnostic of the SPT/EFT version, so you should rarely (if ever) have to update it.
Translations for the new context-menu actions exist for:
- English
- Chinese
- French
- German
- Portuguese
- Russian
- Spanish
If you would like to help me include other languages, please post a comment with the locale ID in Aki_Data\Server\database\locales\global and translations for:
- "Do Nothing"
- "Open Sesame"
- "Turn On Power"
Known Issues:
- Cannot directly open the saferoom door in Interchange. You can only open it via the keypad in the Burger Spot restroom.
-
DanW added a new version:
FileLate to the Party 2.0.0Only compatible with SPT-AKI 3.7.4 - 3.7.6- Updated required version of SPT-AKI to 3.7.4
- The following changes for Scav raids are now managed by base SPT:
- Spawning into raids late
- Reducing the minimum time needed to stay in the raid to get a "Survived" status
- Updating train times
- Removing missed bot waves
- If
destroy_loot_during_raid.enabled=false
, reducing starting loot. - Client-side raid-time calculations
- Added an option to force you to spawn late 100% of the time as a Scav (enabled by default)
Quote- Updated required version of SPT-AKI to 3.7.4
- The following changes for Scav raids are now managed by base SPT:
- Spawning into raids late
- Reducing the minimum time needed to stay in the raid to get a "Survived" status
- Updating train times
- Removing missed bot waves
- If
destroy_loot_during_raid.enabled=false
, reducing starting loot. - Client-side raid-time calculations
- Added an option to force you to spawn late 100% of the time as a Scav (enabled by default)
- Caching original escape times is now done slightly later as you load into the raid
- Removed all code for features now managed by base SPT
- Removed enums from server code because they cause issues with development SPT builds
- Fixed incorrect type name
Preset
to correct nameIPreset
in server code - Bug fix for the mod trying to store null items as loot picked-up or dropped by bots
The following changes for Scav raids can still be done by Late to the Party:
- Initial setup with doors opened and loot removed (in a more realistic manner than base SPT)
- Reduced vehicle extract chances
- Reduced boss spawn rates
- PMC-conversion chances change over the course of the raid (disabled by default)
The config.json file from previous releases is NOT compatible.
NOTE: This release uses the previous code (for SPT-AKI 3.6.1) to change Fence's inventory, so that will need to be revised now that SPT-AKI 3.7.0+ has fixed some of the issues LTTP addressed back in the 1.2.0 release.
-
DanW added a new version:
FileQuesting Bots 0.3.3Hotfix 1:- Fixed incorrect version in package.json
Feature Changes:- Bots can now unlock doors
- The ability for (questing) bots to unlock doors can be enabled independently for PMC's, Scavs, and bosses. Only PMC's are enabled by default.
- If a bot cannot reach its objective location, it will automatically search for the nearest locked door to it within a certain radius (25m by default)
- If the bot can reach the door, there is a configurable chance that the required key will be transferred to the bot
QuoteFeature Changes:
- Bots can now unlock doors
- The ability for (questing) bots to unlock doors can be enabled independently for PMC's, Scavs, and bosses. Only PMC's are enabled by default.
- If a bot cannot reach its objective location, it will automatically search for the nearest locked door to it within a certain radius (25m by default)
- If the bot can reach the door, there is a configurable chance that the required key will be transferred to the bot (by default: 50% for EFT quests, 25% for all other quests)
- If the bot is a PMC, the key will first be placed into its secure container if there is space. For Scavs and bosses (and PMC's will full secure containers), keys will be placed elsewhere in their inventories (backpack, rigs, or pockets) if possible. If there is absolutely nowhere to put the key, the bot will not be able to unlock the door. These keys are NOT found-in-raid (for now).
- For debugging, the test positions used to determine locked-door accessibility can be outlined. See the README for more information.
- Increased the required version of Waypoints from 1.3.2 to 1.3.3 to allow bots to interact with initially-locked doors
- Prevented bots from doing any quest objectives on Lightkeeper island
- When "planting" items, bots tend to aim toward the position where bots are most likely to be (based on averaging the positions of all alive bots on the map)
- Reduced the search radius for valid NavMesh positions for quest items and quest zones from 2m to 1.5m to prevent locations from being incorrectly found on the floors above or below them
- Added server warning message about known performance issues when using QuestManiac
- Bug fix for "Boss xxx has not been added to the follower dictionary" exception when followers are initialized before their bosses
- Bug fix for multiple quest objectives being failed at the same time
- Bug fix for quest objectives being failed when the bot isn't actively questing
- Bug fix for race condition that may cause questing brain layers to be infinitely suspended
- Bug fix for the mod internally reporting that it was unable to delete a quest objective when it actually was
- Bug fix for very unlikely condition causing bots to get stuck in the "Plant Item" action indefinitely
- Bug fix for some spherical outlines drawn for debugging not appearing
Quest Changes:
- Reduced the maximum number of bots simultaneously doing the same EFT quest from 4 to 3
- Added "Marked Room Rush" quest for Customs
- Added "Engineer's Office", "Gate 0", "Gate 3", "Med Tent Gate", and "Cellars" quests for Factory
- Reduced chance of bots selecting the "Scav Camp Area" quest on Interchange from 20 to 10
- Reduced chance of bots selecting the "Goshan Interior Tents" quest on Interchange from 30 to 15
- Reduced chance of bots selecting the "Goshan Lockers" quest on Interchange from 25 to 15
- Reduced chance of bots selecting the "Lexos Director's Office" quest on Streets from 15 to 5
- Reduced chance of bots selecting the "Lexos North Entry" quest on Streets from 30 to 15
- Reduced chance of bots selecting the "Lexos South Entry" quest on Streets from 30 to 15
- Reduced chance of bots selecting the "Lexos Center" quest on Streets from 30 to 15
- Reduced chance of bots selecting the "Lexos Garage" quest on Streets from 30 to 15
- Reduced chance of bots selecting the "Lexos Offices" quest on Streets from 30 to 15
- Reduced chance of bots selecting the "Checkannaya 15" quest on Streets from 15 to 10
- Reduced chance of bots selecting the "Checkannaya 15 Upstairs" quest on Streets from 20 to 10
- Reduced chance of bots selecting the "Sparja" quest on Streets from 30 to 15
- Reduced chance of bots selecting the "Pinewood Hotel Sparja" quest on Streets from 20 to 15
- Reduced chance of bots selecting the "Sawmill Cabins" quest on Woods from 20 to 15
config.json files from previous releases are not compatible.
-
DanW added a new version:
FileLate to the Party 1.4.0- Adding a configuration option to only destroy loot for a short time after you spawn, but the option is disabled by default. This is intended to be enabled if you're using Questing Bots and Looting Bots. By default, loot will only be destroyed and doors will only be opened/closed for the first 30s after you spawn when this is enabled. However, locked doors can still be opened because Questing Bots does not yet allow bots to unlock doors (as of the 0.3.2 release). The following systems can be
Quote- Adding a configuration option to only destroy loot for a short time after you spawn, but the option is disabled by default. This is intended to be enabled if you're using Questing Bots and Looting Bots. By default, loot will only be destroyed and doors will only be opened/closed for the first 30s after you spawn when this is enabled. However, locked doors can still be opened because Questing Bots does not yet allow bots to unlock doors (as of the 0.3.2 release). The following systems can be individually enabled or disabled for this feature:
- Loot destruction
- Opening unlocked doors
- Opening locked doors
- Closing doors
- Revised loot-sorting algorithm when loot ranking is enabled. Instead of destroy_loot_during_raid.loot_ranking.randomness applying to all possible items in the game, it only applies to the accessible loot on the map. This means that higher-value loot is more likely to be destroyed per loot-destruction event. To compensate for this, randomness has been increased by default from 30% to 200%, and a top_value_retain_count setting was added to prevent a configurable number of the highest-value items from being destroyed (5 by default). That way, you always have a small chance of finding high-value loot regardless of how much time has elapsed in the raid when you spawn. The randomness factor is now proportional to 2σ of the values of all accessible loot on the map, which effectively ignores outliers like Labs cards and provides better consistency between raids for the items that are destroyed.
- Added a slot-count limit for destroyed loot that's proportional to the maximum number of players for the map. Practically, this means there will be no change to the number of destroyed loot items for less loot-dense maps like Factory and Customs, but more loot will be remaining near the end of raids for more loot-dense maps like Interchange and Reserve.
- Limit the number of individual items and item slots that are destroyed per loot-destruction event. This provides better accuracy for the value of destroyed loot when destroying initial loot in Scav runs.
- Do not destroy loot until the first wave of doors have been unlocked (if applicable). This allows loot to be destroyed behind previously locked doors after you spawn in Scav runs.
- Boss spawn chances are reduced by default again if you spawn in late. Previously this was disabled by default because the setting to enable multiple options for adjusting bot-spawn chances were lumped together.
- Removed the version number from the directory name in \user\mods\
- Removed duplicate debug message when enumerating loot that is already in a player's inventory
- Revised debug messages to include more information about loot-destruction limits
- Removed commas in the names of items when generating the loot log at the end of raids. Otherwise, columns may be shifted in the CSV files.
- When creating loot-data CSV files at the end of raids, prevent the value of "Raid ET When Found" from being below 0
- Bug fix for loot-remaining fraction not including items that have been picked up by players/bots
The config.json file from previous releases is NOT compatible.
NOTE: This release uses the previous code (for SPT-AKI 3.6.1) to change Fence's inventory, so that will need to be revised now that SPT-AKI 3.7.0+ has fixed some of the issues LTTP addressed back in the 1.2.0 release.
Please make sure you delete previous versions of this mod from your \user\mods directory!
-
DanW added a new version:
FileQuesting Bots 0.3.2Feature Changes:- Bots will now toggle switches
- Added prerequisites for some quests that require a switch to be in a certain position. For example, if the Hermetic extract switch is on in Reserve, don't allow bots to try and turn it on again (until it turns back off).
- Automatically disable initial PMC spawns if MOAR is detected
- Added logging message when a map has been loaded
- Added logging message when quest data is being erased at the end of raids
- Changed server message about PMC spawns being
QuoteFeature Changes:
- Bots will now toggle switches
- Added prerequisites for some quests that require a switch to be in a certain position. For example, if the Hermetic extract switch is on in Reserve, don't allow bots to try and turn it on again (until it turns back off).
- Automatically disable initial PMC spawns if MOAR is detected
- Added logging message when a map has been loaded
- Added logging message when quest data is being erased at the end of raids
- Changed server message about PMC spawns being automatically disabled to a warning
- Do not write a server message about PMC spawns being disabled if they're already disabled
- Write a server message when the mod is complete disabled
- Bug fix for dead bots still being assigned new quests
- Bug fix for chanceForSelecting property for quests not working correctly (thanks, BSG...)
- Bug fix for maxBots property for quests not actually being used
- Bug fix for errors caused by rare condition where the mod searches for switches and doors in the map multiple times
Quest Changes:
- Added intermediate point for the "D2 Switch" quest in Reserve to reduce bot pathing failures to it
- Reduced the chance for selecting the Customs "Power Switch" quest from 50% to 30%, and reduced the max distance to select it from 500m to 200m.
- Added quests for KIBA alarm panels on Interchange that become available when the power switch is turned on
- Changed the priority of the "Hidden Panel" quest in the Interchange Burger Spot bathroom from 19 to 20, changed the chance of selecting it from 15% to 20%, don't allow it to be selected until 180s after the raid starts, and only allow it to be selected when the power switch is turned on
- Changed the priority of the "Safe Room" quest in Interchange from 19 to 18, changed the chance of selecting it from 30% to 10%, and only allow it to be selected if the power switch is turned on and keycard has been swiped in the Burger Spot bathroom
- Added "Sewage Conduit Pump Switch" quest in Labs
- Reduced the chance of the "Medical Block Elevator Power Switch" quest in Labs being selected from 10% to 5%
- Reduced the chance of the "Cargo Block Elevator Power Switch" quest in Labs being selected from 15% to 5%
- Reduced the chance of the "Main Elevator Power Switch" quest in Labs being selected from 10% to 5%
- Only allow the "Parking Gate Controls" quest in Labs to be selected after 420s has elapsed in the raid and the gate isn't already open
- Changed the priority of the "Parking Gate Alarm Controls" quest in Labs from 19 to 18, the chance of it being selected from 5% to 10%, at least 420s has elapsed in the raid, and only allow it to be selected if the Parking Gate is open and the alarm hasn't already been turned off
- Only allow the "Hangar Gate Controls" quest in Labs to be selected after 420s has elapsed in the raid and the gate isn't already open
- Only allow the "Hermetic Door Switch" quest in Reserve to be selected after 300s has elapsed in the raid and the switch isn't already on
- Added D2-switch objective to the "D2 Area" quest in Reserve
- Reduced the chance of the "D2 Area" quest in Reserve being selected from 30% to 15%
- Added "Hermetic Alarm Patrol" quest in Reserve that can only be selected while the Hermetic extract switch is on
config.json files from the 0.3.0 and 0.3.1 releases are fully compatible.
-
DanW added a new version:
FileQuesting Bots 0.3.1- Improved PMC group spawning system thanks to DrakiaXYZ
- PMC's are no longer forced to be enemies with you
- Removed the mod version number from the folder name
- Removed obsolete code
config.json files from the 0.3.0 release are fully compatible.
Please make sure you delete previous versions of this mod from your \user\mods directory!Quote- Improved PMC group spawning system thanks to DrakiaXYZ
- PMC's are no longer forced to be enemies with you
- Removed the mod version number from the folder name
- Removed obsolete code
config.json files from the 0.3.0 release are fully compatible.
Please make sure you delete previous versions of this mod from your \user\mods directory!
-
DanW added a new version:
FileQuesting Bots 0.3.0- Massive rewrite of the quest management system for bots. The quest-selection algorithm is about the same but will soon change too.
- Added an option in the F12 menu to prevent bots from sprinting while questing (sprinting is enabled by default)
- Bots will now crouch or go prone for a certain amount of time to simulate planting items for quests like Farming Part 1, Delivery from the Past, etc.
- The limit for how many bots can do the same quest was moved from individual objectives to the parent quest
Quote- Massive rewrite of the quest management system for bots. The quest-selection algorithm is about the same but will soon change too.
- Added an option in the F12 menu to prevent bots from sprinting while questing (sprinting is enabled by default)
- Bots will now crouch or go prone for a certain amount of time to simulate planting items for quests like Farming Part 1, Delivery from the Past, etc.
- The limit for how many bots can do the same quest was moved from individual objectives to the parent quest itself
- Make the wait time after a bot completes a quest unique for every quest instead of universal. Currently, this is still 10s for all quests.
- Added minRaidET property for quests. The only quest currently using this is "Hermetic Door Switch" (300 s).
- Added pmcsOnly property for quests. Now only PMC's can perform the Spawn-Rush and EFT quests.
- If initial_PMC_spawns.enabled=true, force the PMC-conversion chance to be 0%. If it's >0%, it causes issues with PMC group spawns. Also removed server_pmc_conversion_factor from config.json.
- If the PMC-conversion chance was set to 0% and it's not 0% when generating initial PMC's, write an error message in the server console.
- Added units to the AI-Limiter distance options in the F12 menu
- Added debug option to force initial PMC's to spawn (if initial_PMC_spawns.enabled=true) even when you select "None" for the amount of bots when entering a raid.
- Added option to completely disable questing in config.json. I don't know why you'd want to do this, but it's there.
- Revised debug messages to show more information about bots. This allows you to locate them more easily when using BotDebug.
- Revised logging
- Separate files are now generated for available quests and bot assignments
- Removed quests from quest log if they aren't in the current map
- Created new file showing all assignments for every questing bot along with their final status
- Revised file naming
- Remove commas from quest names, objective names, and bot names to prevent columns from being shifted in CSV files
- Find switches on the map before generating quests (will be used in a future release)
- Bug fix for constant "boss xxx has not been added to the follower dictionary" exceptions
- Bug fix for you counting as an initial PMC in Scav runs
- Bug fix for dead bots and boss followers counting toward max-bot limits for quests
- Bug fix for questing logic running after a bot is dead
- Bug fix for followers getting stuck when running to their boss and never trying to adjust their pathing
- Bug fix for bot friendliness not being updated if EFT hasn't identified any enemies for its group. This mostly just affects the color of the bot text in BotDebug.
- A LOT of refactoring (over 7000 lines of new/changed code)
config.json files from previous releases are not compatible.
Breaking Changes for Custom Quest Files:
- maxBots was moved from quest objectives to the parent quest. If you don't move it, the default value of 2 will be used.
-
DanW added a new version:
FileQuesting Bots 0.2.10- Added AI limiter accessible via the F12 menu thanks to Props. Please see the README or Overview tab for more information.
- Added PMC group spawns. Please see the README or Overview tab for more information.
- Initial PMC spawning is automatically disabled if SWAG + DONUTS is detected thanks to DrakiaXYZ
- Fixed broken PMC's that spawn south of the cinema on Streets and in the SW corner of Interchange thanks to DrakiaXYZ, WolfGrey, and Cosm1c Gam3r
- Increased required version of Waypoints from 1.3.1
Quote- Added AI limiter accessible via the F12 menu thanks to Props. Please see the README or Overview tab for more information.
- Added PMC group spawns. Please see the README or Overview tab for more information.
- Initial PMC spawning is automatically disabled if SWAG + DONUTS is detected thanks to DrakiaXYZ
- Fixed broken PMC's that spawn south of the cinema on Streets and in the SW corner of Interchange thanks to DrakiaXYZ, WolfGrey, and Cosm1c Gam3r
- Increased required version of Waypoints from 1.3.1 to 1.3.2, which is required for the previously mentioned fix to work properly
- If boss questing is enabled, bosses with followers will use the same logic as PMC groups, so they will more effectively travel around the map as a group.
- Reduced chance of bots selecting "standard" Resort quests in Shoreline
- Implemented time-gating of questing logic to provide a small performance improvement. This can be disabled in the F12 menu if needed.
- Allow bots with Shturman-follower, Cultist-priest, and Bloodhound "brains" to quest (if applicable)
- Prevented PMC's from using Knight's "brain" because he gets stuck in combat for long periods of time
- Force all PMC's to be hostile to you (I may revisit this in the future)
- Bug fix (hopefully) for "0 of # initial PMC's were generated" error. This needs more investigation, but the root cause for this might actually be using other mods that are not compatible with the version of SPT-AKI being used.
- Bug fix for infinite loop (causing the game to freeze) when failing to find a valid spawn point for an initial PMC group
- Lots of refactoring
config.json files from previous releases are not compatible.
Huge thanks to nooky, Props, and DrakiaXYZ for help with developing and testing these changes. Also a huge thanks to everyone on Discord who tested the many alpha releases for this update. There are too many people to name, but you're all awesome.
-
I have the same error saying "[Questing Bots] Only 0 of 9 initial PMC's were generated due to an error"
I can't attach the log file for some reason, but here's what I found.
The log file is repeating this line:
[Error :DanW-QuestingBots] Only 0 of 4 initial PMC's were generated due to an error.
[Info :RequestHandler] Request GET json: 15543b6c1c55a5d0d246e74f:http://127.0.0.1:6969/QuestingBots/ReportError/Only 0 of 4 initial PMC's were generated due to an error.
[Info :RequestHandler] Request was successful
[Info :DanW-QuestingBots] Generating initial PMC groups...done.
[Info :DanW-QuestingBots] Generating initial PMC groups (Raid time remaining factor: 1)...
[Info :DanW-QuestingBots] Max PMC's on the map (factory4_night) at the same time: 5
[Info :DanW-QuestingBots] Max total bots on the map (factory4_night) at the same time: 15
[Info :DanW-QuestingBots] Generating initial PMC groups...Generating 4 PMC's (Min: 4, Max: 5)
[Info :DanW-QuestingBots] Generating PMC bots...
[Error :DanW-QuestingBots] Non-static field requires a target
[Error :DanW-QuestingBots] at System.Reflection.MonoField.GetValue (System.Object obj) [0x0000b] in <eae584ce26bc40229c1b1aa476bfa589>:0
at SPTQuestingBots.Controllers.BotGenerator+<generateBots>d__37.MoveNext () [0x0005e] in <46b5cb655f16409dba772db14c7f5f2b>:0
[Error :DanW-QuestingBots] Only 0 of 4 initial PMC's were generated due to an error.
[Info :RequestHandler] Request GET json: 15543b6c1c55a5d0d246e74f:http://127.0.0.1:6969/QuestingBots/ReportError/Only 0 of 4 initial PMC's were generated due to an error.
[Info :RequestHandler] Request was successful
[Info :DanW-QuestingBots] Generating initial PMC groups...done.
[Info :DanW-QuestingBots] Generating initial PMC groups (Raid time remaining factor: 1)...
[Info :DanW-QuestingBots] Max PMC's on the map (factory4_night) at the same time: 5
[Info :DanW-QuestingBots] Max total bots on the map (factory4_night) at the same time: 15
[Info :DanW-QuestingBots] Generating initial PMC groups...Generating 4 PMC's (Min: 4, Max: 5)
[Info :DanW-QuestingBots] Generating PMC bots...
[Error :DanW-QuestingBots] Non-static field requires a target
[Error :DanW-QuestingBots] at System.Reflection.MonoField.GetValue (System.Object obj) [0x0000b] in <eae584ce26bc40229c1b1aa476bfa589>:0
at SPTQuestingBots.Controllers.BotGenerator+<generateBots>d__37.MoveNext () [0x0005e] in <46b5cb655f16409dba772db14c7f5f2b>:0
[Error :DanW-QuestingBots] Only 0 of 4 initial PMC's were generated due to an error.
[Info :RequestHandler] Request GET json: 15543b6c1c55a5d0d246e74f:http://127.0.0.1:6969/QuestingBots/ReportError/Only 0 of 4 initial PMC's were generated due to an error.
[Info :RequestHandler] Request was successful
[Info :DanW-QuestingBots] Generating initial PMC groups...done.
[Info :DanW-QuestingBots] Generating initial PMC groups (Raid time remaining factor: 1)...
[Info :DanW-QuestingBots] Max PMC's on the map (factory4_night) at the same time: 5
[Info :DanW-QuestingBots] Max total bots on the map (factory4_night) at the same time: 15
[Info :DanW-QuestingBots] Generating initial PMC groups...Generating 4 PMC's (Min: 4, Max: 5)
[Info :DanW-QuestingBots] Generating PMC bots...
[Error :DanW-QuestingBots] Non-static field requires a target
[Error :DanW-QuestingBots] at System.Reflection.MonoField.GetValue (System.Object obj) [0x0000b] in <eae584ce26bc40229c1b1aa476bfa589>:0
at SPTQuestingBots.Controllers.BotGenerator+<generateBots>d__37.MoveNext () [0x0005e] in <46b5cb655f16409dba772db14c7f5f2b>:0
Thanks, that helps to narrow down the error. I'm not sure why the site won't let you upload the log file, but it would definitely help to see the whole log. Could you try posting a link to another file-hosting site where you can upload it?
-
hey, sorry to bother you, but this is my first post on this site. I downloaded this mod and fired it up and I kept getting this error
[Client Request] /QuestingBots/ReportError/Only%200%20of%204%20initial%20PMC's%20were%20generated%20due%20to%20an%20error.
[Questing Bots] Only 0 of 4 initial PMC's were generated due to an error.
If you have any idea what I did wrong and you decide to help me out, that would be great man.
Sure. A few other people have reported this error, so I don't think you're doing anything wrong.
To help me troubleshoot, please do the following:
- Open config.json in your user\mods\DanW-SPTQuestingBots-0.2.x\config directory
- Ensure debug.enabled is true
- Run the game and reproduce the error. You should get it within the first 30 seconds of starting a raid.
- Immediately after closing the game, please post LogOutput.log in your BepInEx directory here. Restarting the game will erase this file.
I'll review the log messages and let you know what I find.
-
DanW added a new version:
Quote- Updated for SPT-AKI 3.7.1
config.json files from the 0.2.7 release are fully compatible.
NOTE: Since SAIN hasn't been updated for SPT-AKI 3.7.1 yet, I'll ASSume it'll be compatible for now...
-
DanW added a new version:
FileLate to the Party 1.3.5- Updated for SPT-AKI 3.7.1
- Bug fix for not being able to enter a raid after leaving one while it was loading
config.json files from the 1.3.1 through 1.3.4 releases are fully compatible. config.json files from the 1.2.2 and 1.3.0 releases are compatible, but destroy_loot_during_raid.exclusion_radius_bots will always be 10m.
NOTE: This release uses the previous code (for SPT-AKI 3.6.1) to change Fence's inventory, so that will need to be revised now that SPT-AKI 3.7.0+ has fixed some of the issues…Quote- Updated for SPT-AKI 3.7.1
- Bug fix for not being able to enter a raid after leaving one while it was loading
config.json files from the 1.3.1 through 1.3.4 releases are fully compatible. config.json files from the 1.2.2 and 1.3.0 releases are compatible, but destroy_loot_during_raid.exclusion_radius_bots will always be 10m.
NOTE: This release uses the previous code (for SPT-AKI 3.6.1) to change Fence's inventory, so that will need to be revised now that SPT-AKI 3.7.0+ has fixed some of the issues LTTP addressed back in the 1.2.0 release.
-
DanW added a new version:
FileHardcore Rules 1.2.2- Updated for SPT-AKI 3.7.1
- Bug fix for cash offers eventually returning to the flea market when services.flea_market.only_barter_offers=true
Config.json files from the 1.2.0 and 1.2.1 releases are compatible.
Thanks to Bayard for help with testing!Quote- Updated for SPT-AKI 3.7.1
- Bug fix for cash offers eventually returning to the flea market when services.flea_market.only_barter_offers=true
Config.json files from the 1.2.0 and 1.2.1 releases are compatible.
-
DanW added a new file:
QuoteSAIN 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:
REQUIRED BigBrain (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)Compatible SWAG + 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.
-
DanW added a new version:
FileLate to the Party 1.3.4- Updated for SPT-AKI 3.7.0
config.json files from the 1.3.1 through 1.3.3 releases are fully compatible. config.json files from the 1.2.2 and 1.3.0 releases are compatible, but destroy_loot_during_raid.exclusion_radius_bots will always be 10m.
NOTE: This release uses the same code (for SPT-AKI 3.6.1) to change Fence's inventory, so that will need to be revised now that SPT-AKI 3.7.0 has fixed some of the issues LTTP addressed back in the 1.2.0 release.Quote- Updated for SPT-AKI 3.7.0
config.json files from the 1.3.1 through 1.3.3 releases are fully compatible. config.json files from the 1.2.2 and 1.3.0 releases are compatible, but destroy_loot_during_raid.exclusion_radius_bots will always be 10m.
NOTE: This release uses the same code (for SPT-AKI 3.6.1) to change Fence's inventory, so that will need to be revised now that SPT-AKI 3.7.0 has fixed some of the issues LTTP addressed back in the 1.2.0 release.
-
-
DanW added a new version:
FileLate to the Party 1.3.3- Bug fix for some functions not working after the first raid
config.json files from the 1.3.1 and 1.3.2 releases are fully compatible. config.json files from the 1.2.2 and 1.3.0 releases are compatible, but destroy_loot_during_raid.exclusion_radius_bots will always be 10m.Quote- Bug fix for some functions not working after the first raid
config.json files from the 1.3.1 and 1.3.2 releases are fully compatible. config.json files from the 1.2.2 and 1.3.0 releases are compatible, but destroy_loot_during_raid.exclusion_radius_bots will always be 10m.
-
DanW added a new version:
FileLate to the Party 1.3.2- Bug fix for dropped items despawning (i.e. items in backpacks that you drop)
- Removed the root folder from the ZIP
config.json files from the 1.3.1 release are fully compatible. config.json files from the 1.2.2 and 1.3.0 releases are compatible, but destroy_loot_during_raid.exclusion_radius_bots will always be 10m.
Thanks to prettyplayer for the bug report!Quote- Bug fix for dropped items despawning (i.e. items in backpacks that you drop)
- Removed the root folder from the ZIP
config.json files from the 1.3.1 release are fully compatible. config.json files from the 1.2.2 and 1.3.0 releases are compatible, but destroy_loot_during_raid.exclusion_radius_bots will always be 10m.
-
DanW added a new version:
FileLate to the Party 1.3.1- Improved compatibility with LootingBots
- Loot cannot despawn if it's too close to a bot (25m by default)
- Improved accuracy for percentage of remaining loot
- If debug.free_labs_access=true, you will also be able to enter Labs as a Scav
- Fixed delayed door openings when spawning as a Scav
- Fixed doors constantly opening/closing when using ImmersiveRaids
- Fixed debug settings being enabled and changed by default
- Fixed adjust_raid_times.adjust_bot_waves being disabled by default
- Reduced minimum bot-wave
Quote- Improved compatibility with LootingBots
- Loot cannot despawn if it's too close to a bot (25m by default)
- Improved accuracy for percentage of remaining loot
- If debug.free_labs_access=true, you will also be able to enter Labs as a Scav
- Fixed delayed door openings when spawning as a Scav
- Fixed doors constantly opening/closing when using ImmersiveRaids
- Fixed debug settings being enabled and changed by default
- Fixed adjust_raid_times.adjust_bot_waves being disabled by default
- Reduced minimum bot-wave time from 20s to 1s when spawning in late
- Disabled adjust_bot_spawn_chances.enabled by default anticipating that SWAG/DONUTS or QuestingBots will be used for this instead.
- Fixed NRE when searching for the bot closest to a point on the map
- Fixed game freezing when raids end
- Improved compatibility when parsing EFT JSON data from the server
config.json files from the 1.2.2 or 1.3.0 releases are compatible, but destroy_loot_during_raid.exclusion_radius_bots will always be 10m.