Featured SAIN - Solarint's AI Modifications - Full AI Combat System Replacement 3.0.6

Please do not ask when mod authors will update their mods to 3.9.X
Bothering mod authors will lead to warnings and repeat offenses will lead to eventual bans.

Bots that don't suck.

REQUIRES latest BigBrain by DrakiaXYZ
REQUIRES latest Waypoints by DrakiaXYZ

Report issues or bugs to here: SAIN Github Issue Tracker

Any issues must include a full list of your server and client mods, the version of SPT you are playing on, and either your Bepinex/LogOutput file or an exact description of the issue you are experiencing and the context of when it occurred. Just telling me "its broken" is not helpful what so ever.


[tabmenu]

HUGE Thanks to everyone in the Discord who helped test the Alpha builds of 2.0. Ya'll are the only reason this mod works as well as it does!

  • Version 3.0.6

    SPT 3.9 ONLY


    Changelog:

    SAIN 3.0.6
    SAIN 3.0.6 Changelog Grenades Reworked how grenade spread works for bots, they are much more likely to misjudge the distance to throw, and their grenades are…
    docs.google.com


    VirusTotal result:

    VirusTotal

  • Version 3.0.5

    SPT 3.9.0-3.9.2 ONLY


    Changelog: https://docs.google.com/docume…TLwYCerg-Ppojql8iENM/edit


    Just a few bugfixes and difficulty preset changes mostly.

  • Version 3.0.4

    SPT 3.9.0 - 3.9.2 ONLY

    Changelog HERE
    Virustotal Result HERE

  • Version 3.0.3

    Changelog: https://docs.google.com/docume…QWJOGu7otE2VV0FJcbc4/edit


    SPT 3.8.3 build HERE
    This will ACTUALLY be the last spt 3.8.3 release.
    spt 3.8.3 build only includes bot fixes.


    Edit:
    Fixed version being linked here going to the spt 3.8.3 version.

  • Version 3.0.1

    Changelog here:
    https://docs.google.com/docume…duIRu6OkpUrxIb83k86w/edit
    Zip includes a SPT 3.8.3 version and a 3.9.0 version.

    Install the correct one, please.
    Unless there is something major I need to fix, this will be the last SPT 3.8.3 release for sain, porting stuff back and forth is incredibly tedious.
    Virustotal results:
    3.9.0 dll: https://www.virustotal.com/gui…d04c8a681427162?nocache=1

    3.8.3 dll: https://www.virustotal.com/gui…082131c3a82eb64?nocache=1

  • Version 3.0.0 - 3.9.0

    Only works on 3.9.0
    OLD PRESETS ARE NOT COMPATIBLE.

    Updated for SPT 3.9.0. Requires the latest BigBrain and Waypoints version!

    Updated download link to a version without extra files in the User Mod that can affect Linux users. Sorry!

    Note: I accidentally left some loose files in a folder called "3.8.0" in the rush to fix the above issue before anyone noticed, you can just ignore it, its just some zips of releases.

    special thanks to Phiveaces for their help getting a few references updated to new EFT code!

    Change log here: 3.0.0 Changelog

  • Version 3.0.0

    Only works on 3.8.1 - 3.8.3

    Change Log

  • Version 2.3.3

    Major Update


    Important:

    Added detection for when the sain server mod is installed incorrectly. Due to allowing bot types to have sain disabled on them, I need to check to make sure PMC brains are set correctly. You will get an ingame error notification if sain detects that a PMC does not have the correct brain type. Read the error.


    Reworking Bot recoil. (Will need more adjustments)

    Headshot protection slightly reworked. Instead of always aiming for the specific center mass, it will limit the height of their aim target to the height of center mass, meaning stomach shots should be less frequent.

    Added scatter and aim buffs/debuffs for bots using weapons with or without different types of optics.

    For example: When using an optic, Bots will be more accurate at long range, and less accurate at close range.

    Bots who are shooting at prone or crouching enemies are now more inaccurate.

    Bot accuracy when only a single body part is visible is now reduced.

    Updated and reworked how bots use flashlights slightly.

    Bots who are searching will turn their flashlight on when turning a corner if they are not a sneaky personality type.

    Added config option to disable sneaky bot search behavior.

    Fixed issue where bots would not properly sense bullets flying by them at range.

    Replaced function that detects this with a brand new one, and its working well.

    Increased distance that bots can see players shooting at them.

    Changes to bot vision:

    Peripheral vision is dramatically reduced, they see much slower, and can see less far on enemies further than 45 degrees to their side.

    Reduced Bot Raycasts against other bots to optimize.

    Bots will have reduced vision speed based on how many body parts are visible or not. So if they can only see your head, they will set you as visible far slower.

    Third Party: Bots have reduced vision speed against Non-Active enemies, if they are currently fighting and the other enemy is more than 30 degrees away from where they last saw their active enemy.

    Bots see enemies infront of them who have shot recently further.

    Hearing:

    Hearing range reduced across the board, but especially for bots without headsets (mostly scavs).

    Adjusted chance to hear footsteps, they are less likely to hear footsteps on the max range of their hearing.

    Added config options for max footstep range while not wearing headset.

    Added chance to hear enemy actions (reloading, ect) instead of it being always 100% chance, similar to how hearing footsteps works.

    Fixed Bot Taunting and Responding to Enemies being broken. Bots are talking a lot more now.

    Scavs now respond to friendly voicelines even when actively fighting an enemy, rather than only when at peace.

    (will need to be adjusted now, scavs are a bit too talkative)

    Added option to enable PMCs being allowed to aim for the head.

    Fixed bots not being able to sprint because other code was forcing them to look in a certain direction.

    Fixed bots not sprinting to cover while reloading or healing.

    Reworked bot sprinting, now working much better than before.

    New Stamina management system for bots sprinting. Bots will dynamically adjust how much stamina to use or keep in reserve based on the action they are doing.

    Fixed personality settings not being imported or saved properly.

    Reworked how bots look for and decide to fight enemies that are extremely close.

    Fixed bots ignoring other enemies that are closer when currently "DogFighting" an enemy.

    Fixed bots getting yanked back down to earth after jumping.

    Fixed console errors about coroutines being unable to be started on bots.

    Moved Headshot protection into the "Aiming" category.

    Tweaked sound detection distances and chances.

    Added config options to edit the range bots can hear different enemy actions such as reloading or healing. (Advanced)

    Added config option to change the max range to report enemy actions for bots without headsets.

    Fixed bots not actually "hearing" enemy actions, and thus not being able to act upon the information.

    Added frequency limit on the number of sounds a single player can broadcast to bots per second.

    Moved Max Footstep distance to global settings.

    Added missing sounds that bots can now hear properly.

    - Landing from a fall, Vaulting, Breathing, Heavy Breathing, Pain, injury, and Weapon DryFiring.

    Reduced the distance that bots can hear looting slightly.

    Increased the distance that bots can hear surgery from 40 meters to 55 meters.

    Increased the distance that bots can hear grenades being pulled slightly. 25 meters to 30 meters.

    Slightly reduced the distance that bots think is within range to rush enemies to better match the reality of the time it takes to get there.

    Reworked sounds from aiming, gear, prone, turning to better match the range that a real player can hear those things. Uses the same functions to calculate volume.

    Fixed (?) bots using surgery when enemies are too close, or they've seen them recently.

    Fixed bots not canceling surgery when an enemy is approaching.

    Fixed Errors from SelfActionDecisionClass.

    Fixed Errors from SAINPerson Constructor.

    Added Joke option to General Settings to add random 1% chance at a speed hacker, I could only get them moving about 1.5x as faster before I moved on. :P

    Reworked bot running, they should only pause sprint to turn when they actually need to turn now.

    Moved sain toggles for bots into a new category in global settings.

    Added additional options to disable sain for specific bot types. Requires game restart still for all options.

    Removed option to disable sain for player scavs, as p-scavs use the same brain type as PMC, and it would not work properly with the current method.

    Removed option to disable sain for raiders, for the same reason.

    Added check to make sure bots don't get stuck in SurgeryAction.

    Adjusted bot friendly fire checks to be more accurate, hopefully.

    Fixed bots being excluded from playing pain noises in vanilla EFT code.

    Bots now prioritize looking at their enemies last know position more compared to randomly looking around to check for enemies.

  • Version 2.2.5.4

    Major Issues Fixed:

    Fixed Issue where bots were getting incorrect information on whether an enemy was in line of sight or not, leading them to not be able to see targets infront of them.

    Fixed Issue where bots who get disabled by an AI limiter will ignore enemies after being reactivated.

    Fixed issue where bots were entering search quicker than intended.


    Performance improvements to coverfinder and bot vision raycasts.

    Adjusted bot sprinting to get them sprinting a bit more.

    Added null check to SelfDecisionClass

    Fixed bots T-Bagging while shooting at enemies sometimes.

    Added new config options to configure the distance that bots will ignore AI gunshots sounds when extremely far from the player.

    Added config option to personality settings to configure the distance a bot while "chase" gunshot sounds, or when they will ignore sounds instead.

    Fixed bot hearing sensor not working as intended and ignoring gunshots sometimes.

    Note:
    Due to resolving an issue with bot's hearing, I will likely need to rebalance it, as it seems scavs are having a lot of trouble hearing footsteps now. One bug fixed leads into another :D

  • Version 2.2.5.2

    Performance Optimizations to coverfinder.


    New: Added toggles to disable SAIN for Bosses and Normal Scavs. All behavior will be vanilla with these options enabled for those bot types. Also have a seperate toggle for player scavs. All disabled by default. Requires game restart after enabling or disabling.


    New: Reworked how bots react when enemies are very close, should be better at playing footsies and peeking enemies at close range.


    New: Reworked how bots stop and shoot for distant enemies.


    New: Personality Setting that tells a bot to kick every door they come across if they have an active enemy.


    New: Added new handling for how bots see you faster after repeat contact, instead of working off a timer like vanilla EFT, it now never expires, but scales by distance to the place they last saw you, it also works with hearing and where they last heard you, but to a lesser extent.


    New: Reworked personality settings to break them into categories (gui not updated yet). Old preset personality settings will be reset.


    Reworked how personalities are assigned and how the percentage chance works, it now scales with power level, so their chance to be assigned will increase up to a target power level, until it caps out at the assigned chance.


    New: Added special behavior for when bots detect an enemy using surgery or looting.


    New: Started work on bots considering more than just 1 active enemy at a time when making decisions.


    Fixed door desync while using Project Fika.


    Adjusted bot door opening to prevent them from freezing up for a moment after it opens.


    Trying some experimental stuff with doors in general, let me know if its hella broken.


    Fixed error from grenades in SAIN Bot Controller.


    Fixed bots not reacting to grenades.


    Reworked how bots react to grenades slightly.


    Fixed bots walking backwards off into the distance while they should be fighting.


    Reduced distance that bots will enter extreme close quarters fighting mode (DogFight)


    Fixed: Bots who hear a grenade explosion would consider the explosion position as a last known location, causing them to get confused and look towards where it exploded. They now estimate the thrower's position and go off that information.


    Fixed: Discovered and resolved issue where after a bot is shot, they will get instant, perfect information on their enemy location and look at them, now references their last known location and looks to that, which has randomized dispersion as intended.


    Reworked a lot of bot steering to fix many issues (still wip)


    Reworked how bot's enemies are assigned to make sure their active enemy is being set correctly.


    Slightly reduced the range bots without headphones can hear footsteps.


    Disabled some EFT bot functions that are resource expensive and rarely used by SAIN.


    Added more places that bots can try to throw grenades at to try to flush/kill their enemy.