SAIN - Solarint's AI Modifications - Full AI Combat System Replacement 4.0.4

Do not ask when mod authors will update their mods or if they can upload older versions of their mods.
Bothering mod authors will lead to warnings and repeat offenses will lead to bans.
Due to an unusually high volume of traffic, our site may be experiencing intermittent slowdowns. If you notice any issues, log out of your account and browse anonymously so you can better utilize caching or try using forge.sp-tarkov.com to search for and download mods.

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 4.0.4

    Fixed ADS Spam causing inter dimensional scavs that break your sound and cause desync with fika.
    Fixed a few bot reload bugs.

  • Version 4.0.3

    Full credit to @dwesterwick for the fixes here.

    Gameplay Changes:


    Fixed bots being unable to extract

    Bots will now use the new SAIN steering system while extracting (instead of only looking straight ahead)


    Code Changes:


    Fixed BotPathFollowerClass.WalkToPoint() not returning true if Bot.Mover.CanGoToPoint() returns true (which is the case with RunToPoint())

    Expose mustHaveCompletePath as an argument in WalkToPoint() and RunToPoint()

    Fixed NRE spam for GetEnemyToShoot() if priorityEnemy == null

    Fixed BotComponent.Bot NRE if BotOwner == null

    Fixed AddCornersToPath() exception when a path was not previously set for the bot

  • Version 4.0.2

    Changes to door opening to try to make it less broken. When a door is opened or closed, it will disable collision for 3 seconds on any nearby bots. It's still pretty awful, but BSG updated their ai door opener in a future patch, so just hold tight.
    Removed all of sain's mag refilling logic and reverted everything back to mostly vanilla. Bots should never run out of ammo now.
    Fixed bots being unable to move when trying to melee.
    Bots still get the infinite mag bug, and it looks like its a vanilla eft issue.
    Added some config options for suppression under Global Settings -> Mind
    Added slight random sway to bot look directions so they look less robotic. It increases or decreases depending on if they are moving, aiming down sights, or their arms are injured. Can be configured or disabled in GlobalSettings -> Steering.
    Slight adjustments to bot turn smoothing.
    Bots can now suppress any target at any time if they meet requirements, rather than just their focused enemy.
    Bots now check if any target is shootable rather than just their focus enemy. Should prevent bots from ignoring obvious enemies.

  • Version 4.0.1

    SPT 3.11.x


    Fixed error spam when out of raid.
    Bots now use the same movement smoothing and inertia as players.
    Added more control over turn smoothing and corrected a few issues with it (can be edited from globalsettings .json file of your preset)
    Increased smoothing for better visual results, but it now changes depending on if a bot is aiming, at peace, sprinting, ect.
    Decoupled bot character steering from movement direction, bot animations now look like players do.

  • Version 4.0.0

    SPT 3.11.3 Only.
    New:
    Silky Smooth bot turning.

    Added smoothing to bot movement, leaning, speed changes, and posed changes.

    Added new path visibility system that is multi-threaded. Bots should no longer stare into walls if their enemy is on the other side of it, but rather will look to the place that enemy would appear. (still needs some work, but is mostly functional)

    Improved bot reactions to grenades, including their own grenades (not perfect but the entire system should be redone)

    Rewrote how audible distance of footstep sounds is calculated, should be more closely aligned with how it sounds to players.

    Fixed flashlight detection not working.

    Moved all bots in combat to use sain's pathfinder for walking instead of just sprinting.

    Greatly increased the amount of suppressing fire from bots. (Not configurable yet)

    Added "Strafe Speed" Config option for bot settings. Depending on bot type and difficulty bots will strafe faster or slower.

    Rewrote how bots are ticked and initialized.

    Fixed a vanilla behavior not being removed from scavs and overwriting sain behavior.

    Added new multithreaded functions.
    - Enemy Place Job (for checking distance and visibility of last known positions)
    - Path Visibility Job (Finds the place a bot should look at, based on where their enemies last know position)

    Optimized everything based on Unity Profiling data.

    Added new Hearing sensor that should both run better and expand functionality.

    Added Bot deafening system from gunfire. If a shot goes off close to a bot, they will be partially deaf to quieter sounds such as footsteps.

    Added audio masking system where bots will be unable to hear a sound if they heard something louder than that sound very recently.

    The intent is to allow players to use voice-lines to cover up the sounds of them healing.

    Added new system for bullet fly-by detection on bots that tracks each bullet's real position to see if it comes close to them.
    Many small tweaks to bot decision making to resolve issues and improve behavior.


    Fixed:

    Everything.

    Multiple patches were targeting the wrong methods, and a few were entirely outdated.

    Fixed bots teleporting.

    Fixed integrated suppressors not counting as being suppressed for bot hearing.

    Simplified a bunch of systems that were not working correctly.

    And a lot more.

  • Version 3.3.1

    Small bug fixes from contributors:

    • Fix: Use HeadCommon for players without eyes aka infected by @gottyduke
    • Fix: Added a check to see if the bot is alive when trying to use healing by @DragonX86-dev
  • Version 3.3.0

    - Updated for 3.11


    No new functionality has been added, this is simply to update SAIN to work on 3.11. Bugs that were on 3.10 are most likely going to be in 3.11 until Solar gets the time to work on SAIN again. Please be patient.

    Thanks to all new contributors for helping, and an especially big thanks to Brie for updating most of the AI logic that was broken with 3.11. <3

  • Version 3.2.1

    SPT 3.10.X ONLY

    VirusTotal Results

    There is still 1 false positive and "Antiy-AVL" thinks SAIN is "pornware".

    Changes:

    Reworked Bot Suppression.

    1. Added New Tier System for how much bots are suppressed. Old: Suppressed / Heavy Suppressed. New: Light, Medium, Heavy, Extreme
    2. Bots get Light Suppression from almost any bullet flying by them.
    3. Increased the effect that suppression has on bot stats.
    4. Add Suppression Amp to boost suppression received when bullets are very close to a bot's head.
    5. Suppression now depends on the caliber of bullet being fired at the bot. Big Boolet = much more scary.
    6. Added extensive config options for suppression (Global Settings => Mind) Most are marked as Advanced Settings. All new settings have full tooltips to explain the system.
    7. Added Suppression Resistance for Personality and BotType configs. It is not yet pre-configured, so no bots will have resistance by default.
    8. Configuring each tier of suppression is possible by editing the GlobalSettings.json in a custom preset. No GUI for it yet.
    9. Added Hearing Distance Multiplier to Suppression Effects

    Added Extensive New Config Options

    1. Everything is configurable for bot hearing.
    2. Added Toggle in GlobalSettings => Shoot to force bots to only use semi auto if desired. (Defaults to off)
    3. Added toggles for each bot type and global toggles for different movement options for bots. So you can disable lean, vault, jump, pose adjustment, and prone globally or for specific bot types.
    4. Added Power Level Options to Global Settings, these control how different things about a bot affect their power level score, and in return what personality they are allowed to use.
    5. Added Time and Weather config options for vision and hearing.
    6. Added several new advanced config options for bot steering.
    7. Added config option to change what personality bosses are assigned. (Found in GlobalSettings.json in a custom preset, no GUI yet)

    GUI Reworks

    1. Settings menu is now more condensed to allow more options.
    2. Slight adjustments to the dimensions of everything to improve readability and consistency.
    3. Added Toggle on the top bar to enable/disable advanced settings.
    4. Added a ton of new descriptions and proper names for config values. Almost all global settings have explanations now.

    General Improvements

    1. Added .json file to match nicknames with specific personalities. (Generated on game launch when sain is installed)
    2. Enable Extract Global now swaps between SAIN extract and Vanilla extract systems. Defaults to Vanilla.
    3. Bots now have more difficulty hearing suppressed gunfire.
    4. Bots now sprint when possible when under fire by someone shooting from long range. (Can be toggled in Global Settings => Mind.

    Fixes

    1. Fixed some vanilla combat layers still being active for PMC AI.
    2. Fixed guns not firing if returning from a raid and entering the shooting range.
    3. Fixed Bot hearing not being affected by stun/flash grenades.
    4. Disabled several loggers from activating unless SAIN Debug Mode is enabled.
    5. Fixed SAIN Server mod showing incorrect version.
  • Version 3.2.0

    SPT 3.10+ ONLY


    Full credit to @Lacyway for getting SAIN working with SPT 310!
    Note: Apparently Virus total thinks SAIN is "Pornware". So consider this the official porn update!
    https://www.virustotal.com/gui…2ccd4000ecbac59/detection
    Changelog:

    Solarint:

    • Added new config options for customizing bot sound position estimation, or how accurate they are at locating the source of heard sounds. Found in Global Settings => Hearing
    • Added new styling and design for some GUI visuals.
    • Added categories to settings folders to improve organization (wip)
    • Added toggle at the top of the SAIN GUI to enable/disable advanced settings.

    Lacyway:

    • Updated for SPT 310.
    • Zombies are now ignored by SAIN, and should be working properly.
    • SAIN hit reactions are now off by default until Solar / new developer can take a look at them (they are known to cause issues)
    • Fixes to improve Fika/SAIN compatibility.
    • Add sandbox_high to locations (Fixes: #9) by @ArchangelWTF in #10
    • Added new ammo calibers
    • Added new missing guards for Kaban
    • Added Partisan to bot types
    • Merged PR from DanW fixing nullref (other one was skipped as it was causing side effects

    Known Issues:

    • In some openable menus in the GUI, you cannot directly type a number into the box, and you have to use the slider.
  • Version 3.1.0

    SPT 3.9 ONLY

    Changelog