Skip to content

Releases: dwesterwick/SPTQuestingBots

Questing Bots 0.9.1

03 Mar 04:30
Compare
Choose a tag to compare

Gameplay Changes:

  • Added adjustments to EFT Scav spawns when using the Questing Bots spawning system (#44). See 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.

Questing Bots 0.9.1 (RC 2)

01 Mar 16:08
Compare
Choose a tag to compare
Pre-release

Changes from the 0.9.1 RC 1 Release:

  • 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)
  • Added a description of the new Scav spawning restrictions in the README

config.json files from the 0.9.1 RC1 release only are compatible.

Questing Bots 0.9.1 (RC 1)

16 Feb 21:57
Compare
Choose a tag to compare
Pre-release

Changes from the 0.9.1 Alpha 3 Release:

  • 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.
  • Changed logging level for messages about Scav spawning restrictions from Warning to Debug
  • Minor refactoring

config.json files from previous releases are not compatible - even from the previous 0.9.1 Alpha releases!

Questing Bots 0.9.1 (Alpha 3)

14 Feb 04:56
Compare
Choose a tag to compare
Pre-release

Changes from the 0.9.1 Alpha 2 Release:

  • 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.
  • Added server and client validation of arrays in config.json including a check to ensure an older version of the file isn't used
  • Changed more logging messages from Info to Debug or disabled them
  • Bug fix for bosses not spawning when playing solo using a Fika dedicated server (#49)

config.json files from previous releases are not compatible - even from the previous 0.9.1 Alpha 2 release!

Questing Bots 0.9.1 (Alpha 2)

13 Feb 04:45
Compare
Choose a tag to compare
Pre-release

Gameplay Changes:

  • Added adjustments to EFT Scav spawns when using the Questing Bots spawning system (#44):
    • Added a Map Fraction for Scav Spawning Exclusion Radius slider in the F12 menu that adjusts how close Scavs are allowed to spawn to human players, PMC's, and player Scavs. The map size is first calculated by searching for the longest distance between any two spawn points, and then the exclusion radius is determined by multiplying this distance by the slider value. Using the default slider value of 0.1, this means Scavs cannot spawn within ~100m of you on Customs but only ~17m of you on Factory. Higher values may overly restrict Scav spawns, while lower values have a higher risk of Scavs spawning near you.
    • Added a Permitted Scav Spawn Rate slider in the F12 menu that adjusts how quickly Scavs are allowed to respawn so that you can continue to find them later in the raid, but you won't be fighting endless waves of them. This is set to 2.5 by default (2.5 Scavs / minute, on average).
    • Added a Threshold for Scav Spawn Rate Limit slider in the F12 menu to define how many Scavs can spawn before the Permitted Scav Spawn Rate limit will be enabled. 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.
    • Added a Max Alive Scavs slider in the F12 menu to limit the number of Scavs that can be alive at the same time on the map, which includes assault, assaultGroup, cursedAssault, and marksman Scavs. This is set to 15 by default.
    • Added a Enable Scav Spawn Restrictions checkbox in the F12 menu to allow you to disable the new Scav spawn limitations if you still want the vanilla PvE experience.
    • Added a bot_spawns.eft_new_spawn_system_adjustments.non_wave_retry_delay_after_blocked setting in config.json. If any Scav spawns are blocked due to the Permitted Scav Spawn Rate or Max Alive Scavs settings, EFT's checks to see if more Scavs should spawn will be delayed by this number of seconds (180s by default). This setting replaces the bot_spawns.non_wave_bot_spawn_period_factor setting in previous releases.
    • Added a bot_spawns.eft_new_spawn_system_adjustments.scav_spawn_rate_time_window setting in config.json. This setting defines the time window used to calculate the Scav spawn rate for the Permitted Scav Spawn Rate restriction and is 300s by default.
  • 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
  • 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
  • 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)

Code Changes:

  • 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 a placeholder method for continuously updating the BotZone for a bot group to prevent its members from running away when their questing is paused. This is currently disabled and will be implemented in a future release.
  • 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.

Questing Bots 0.9.1 (Alpha 1)

10 Feb 03:20
Compare
Choose a tag to compare
Pre-release

DO NOT USE - DOES NOT WORK WITH OTHER SPAWNING SYSTEMS

Gameplay Changes:

  • Added adjustments to EFT Scav spawns when using the Questing Bots spawning system (#44):
    • Added a Map Fraction for Scav Spawning Exclusion Radius slider in the F12 menu that adjusts how close Scavs are allowed to spawn to human players, PMC's, and player Scavs. The map size is first calculated by searching for the longest distance between any two spawn points, and then the exclusion radius is determined by multiplying this distance by the slider value. Using the default slider value of 0.1, this means Scavs cannot spawn within ~100m of you on Customs but only ~17m of you on Factory. Higher values may overly restrict Scav spawns, while lower values have a higher risk of Scavs spawning near you.
    • Added a Permitted Scav Spawn Rate slider in the F12 menu that adjusts how many total Scavs are allowed to spawn by a certain point in the raid. The purpose of this is to limit Scav respawns so that you can continue to find them later in the raid, but you won't be fighting endless waves of them. The total Scav limit is calculated by: [ bot cap for the map ] * [ slider value ] * [ fraction of time elapsed in the raid ]. This is set to 4.0 by default (meaning that by the end of the raid, the number of total Scavs that are allowed to spawn is 4X the map's bot cap).
    • Added a Threshold for Scav Spawn Rate Limit slider in the F12 menu to define how many Scavs can spawn before the Permitted Scav Spawn Rate limit will be enabled. The purpose of this threshold is to ensure the map is initially populated before Scav respawns are blocked. This is set to 15 by default.
    • Added a Max Alive Scavs slider in the F12 menu to limit the number of Scavs that can be alive at the same time on the map, which includes assault, assaultGroup, cursedAssault, and marksman Scavs. This is set to 15 by default.
    • Added a Enable Scav Spawn Restrictions checkbox in the F12 menu to allow you to disable the new Scav spawn limitations if you still want the vanilla PvE experience.
    • Added a bot_spawns.non_wave_retry_delay_after_blocked setting in config.json. If any Scav spawns are blocked due to the Permitted Scav Spawn Rate or Max Alive Scavs settings, EFT's checks to see if more Scavs should spawn will be delayed by this number of seconds (180 by default). This setting replaces the bot_spawns.non_wave_bot_spawn_period_factor setting in previous releases.
  • When using the Questing Bots spawning system, register PMC's and player Scavs as actual players in EFT to prevent Scavs from spawning near them
  • Reduced the desirability of EFT quests from 60 to 55
  • Reduced the desirability of boss hunter quests from 40 to 35
  • Allow bots using PmcBear and PmcUsec brain types to quest
  • 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)

Code Changes:

  • 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 a placeholder method for continuously updating the BotZone for a bot group to prevent its members from running away when their questing is paused. This is currently disabled and will be implemented in a future release.
  • Reorganized patches into multiple namespaces
  • Minor refactoring
  • Removed obsolete code

config.json files from previous releases are not compatible.

Questing Bots 0.9.0

26 Jan 16:45
Compare
Choose a tag to compare
  • 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.

Questing Bots 0.9.0 (RC 1)

26 Jan 04:15
Compare
Choose a tag to compare
Pre-release

Changes from the 0.9.0 Alpha 1 Release:

  • 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
  • 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
  • Only show warning messages about null quest templates once when loading into a raid instead of when processing each quest
  • 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 the 0.9.0 Alpha 1 release are compatible.

Questing Bots 0.9.0 (Alpha 1)

21 Jan 03:43
Compare
Choose a tag to compare
Pre-release
  • 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
  • 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
  • Create a "fake stash" for keys before transferring them to bots that are about to unlock doors
  • 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

config.json files from previous releases are not compatible.

Questing Bots 0.8.1

18 Nov 01:35
Compare
Choose a tag to compare
  • 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.