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 thePermitted 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 includesassault
,assaultGroup
,cursedAssault
, andmarksman
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 thePermitted Scav Spawn Rate
orMax 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 thebot_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 thePermitted Scav Spawn Rate
restriction and is 300s by default.
- Added a
- 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
andPmcUsec
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 previousbot_spawns.advanced_eft_bot_count_management
section (with theenabled
setting removed) were then moved to this section. - Revised the abstract bot generator class to prevent bot-generator instances from overriding Unity's
Awake
andUpdate
methods. Instead, these methods call new methods (Init
andRefresh
, 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
tomethod_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
toDebug
or disabled them - Reorganized patches into multiple namespaces
- Minor refactoring
- Removed obsolete code
config.json files from previous releases are not compatible.