Insurgency: Sandstorm

Improved AI (v2.6.1) for Insurgency: Sandstorm

Released (updated ago). Ranked 8 of 478 with 228,015 (105 today) downloads

Published by Destinate (mod ID: 93636)

improvedai.png

Note: This mod is for the server only, because its a mutator. Please do not subscribe to it on your client-side.

The goal of this mod is to improve the AI to make the coop has better experience and better gameplay.

You will be able to fully customize the configs and settings of this mod. We will see if we can change the AI and improve them like making them peek while they are behind the cover. They will know how to change their position and give themselves a better position to target the player. They will know when to use grenade at the right time and call for support and such.


Mutator Name:
- ImprovedAI


All configs will go in your game.ini and under the line [/ImprovedAI/Mutators/ImprovedAI.ImprovedAI_C]
You do not have to put all the configs. Only use the config you want to change the default value to something you want. The configs that aren't present in your game.ini file, it will be automatic use the default value below.




Configuring BotSkillCfg

The BotSkillCfg is originally part of the game but we weren't able to fully config it to the way we want it to be. With this mod, you will able to modify the config to the way you want without changing it in the theater. If you are not an advanced user then I suggest you look at other mod that changes bot skill config.

You can disable BotSkillCfg if you don't want to change any bot behavior and just use other features like auto-scale AI Difficulty and Custom Bot Names.


Note: Anything has to do with the distance in the config, they are all in unreal units.


General

;Use BotSkillCfg
bEnableBotSkillCfg=True

;Will the BotSkillCfg also affect friendly AI?
;This only work if you are not using custom BotSKillCfg assets
bEnableForFriendlyAI=True


Custom BotSkillCfg Assets
If you are using other mods and you want to change their BotSkillCfg, you can override those mods by putting their BotSkillCfg asset file path in here. If you don't want to change any of those BotSkillCfg then don't put them here.

Remember, putting an invalid BotSkillCfg file path will crash your server. Also, you must have ImprovedAI mutator loads last so it can grab all the assets from other mods like ISMC. That is only if you are going to change that mod BotSkillCfg. Otherwise, ignore this.

;If this is disabled by default, so we will not use any custom asset and all bots will use ImprovedAI assets instead
;If this is enabled, then ImprovedAI assets will not be used. ONLY specific bots that using these assets will have their BotSkillCfg override.
;bEnableBotSkillCfg must also be enabled. Otherwise, your bot configs will not override on these assets.
bUseBotSkillCfgAssets=False

;As default BotSkillCfgAssets is EMPTY!!!
;You can put in as many assets as you want in each line and all of them will have their BotSkillCfg override
;This is an example of using BotSkillCfgAssets
BotSkillCfgAssets=BotSkillConfig'/Game/Game/Data/Bots/DefaultBotSkillConfig.DefaultBotSkillConfig' 
BotSkillCfgAssets=BotSkillConfig'/Game/Game/Data/Bots/HardcoreBotSkillConfig.HardcoreBotSkillConfig'

;You can find more BotSkillCfg in the sandstorm mod tool
;ISMC mod BotSkillCfg path 
; BotSkillConfig'/ISMCmod/Game/Factions/HardcoreBotSkillConfig.HardcoreBotSkillConfig'
; BotSkillConfig'/ISMCmod/Game/Factions/HardcoreBotSkillConfig_2.HardcoreBotSkillConfig_2'
; BotSkillConfig'/ISMCmod/Game/Factions/HardcoreBotSkillConfig_3.HardcoreBotSkillConfig_3'
; BotSkillConfig'/ISMCmod/Game/Factions/HardcoreBotSkillConfig_4.HardcoreBotSkillConfig_4'
; BotSkillConfig'/ISMCmod/Game/Factions/PMCBotSkillConfig_PVP.PMCBotSkillConfig_PVP'


Hearing

;Distance from this sound that we confirm our target is an enemy
HearAwareDistanceRadial=3000.0
HearAwareDistanceGunshot=6000.0
HearAwareDistanceSprintFootstep=2000.0
HearAwareDistanceBreach=1000.0
HearAwareDistanceDoor=500.0
HearAwareDistanceRigExplosive=1000.0

;Distance from this sound that we can hear the target
HearDistanceFootstepsSprinting=3500.0
HearDistanceFootstepsRunning=2000.0


Vision

SightRangeAlert=20000.0
SightRangeIdle=5000.0
SightRangeWithinSmokeGrenade=1500.0
SightRangeWithinSmokeGrenadeEye=250.0
SightRangeSmokeEyeFrac=0.8


Reactions

TurnSpeedMaxAngleThreshold=90.0
TurnSpeedMinAngleThreshold=5.0

;Speed this AI turns at
TurnSpeedMaxAngle=30.0
TurnSpeedMinAngle=60.0

;Time before we start attacking at close targets
AttackDelayClose=0.2

;Time before we start attacking at distant targets
AttackDelayDistant=0.8

;Range we consider to be maximum distance for spot checks
DistanceRange=15000.0

;Range we consider to be close range for spot checks
CloseRange=500.0

;Multiplier applied to spotting chance
ChanceSprintMultiplier=2.0
ChanceMovingMultiplier=1.25


Accuracy
This is where bot accuracy settings. AccuracyMultiplier will increase the hit chance but if you want the hit chance to be higher then you should change the bloatbox in WeaponCategoryConfigs. A lot of people ask what is the bloatbox. It's pretty much like strike zone in baseball. The strike zone will show up in every player model. Increasing the bloatbox will make the zone bigger and will lead to a higher miss chance. The bloatbox also multiply and base on the difficulty. Take a look at the Difficulty section with this.

;The higher, the more accurate. 1.0 is easy, 4.0 is hard
AccuracyMultiplier=3.0

;Multiply our spread by this much when fully suppressed
SuppressionAccuracyMultiplier=0.1



;Change weapon type config for bot like changing the accuracy for that weapon and such

;List of weapon types
;Launcher
;MarksmanRifle
;BoltRifle
;Shotgun
;LightMachineGun
;HeavyMachineGun
;SubmachineGun
;AssaultRifle
;Carbine
;Pistol

;Weapon configs type
;MaxDistance (Distance we can shoot at, otherwise we try to get closer)
;MinAttackDegrees (Start attacking when our aim on the target by this much)
;MinAttackDegreesClose
;MaxAttackDegrees (Stop attacking when our aim off the target by this much)
;ProjectileSpreadZeroTimeFar (How fast we zero in on the target when target is far)
;ProjectileSpreadZeroTimeClose (How fast we zero in on the target when target is close)
;BloatBoxMin (Our bloat box after zeroing) (Require X and Y)
;BloatBoxMax (Our bloat box at first sight) (Require X and Y)

;Make sure you get rid of spacing for this line
WeaponCategoryConfigs=((Launcher, (MinAttackDegrees=1.000000, MaxAttackDegrees=2.000000, ProjectileSpreadZeroTimeFar=0.000000, ProjectileSpreadZeroTimeClose=0.000000, BloatBoxMax=(X=200.000000,Y=100.000000))), (MarksmanRifle, (MinAttackDegreesClose=10.000000, ProjectileSpreadZeroTimeFar=8.000000, BloatBoxMin=(X=50.000000,Y=50.000000), BloatBoxMax=(X=150.000000,Y=100.000000))), (BoltRifle, (MinAttackDegreesClose=10.000000, MaxAttackDegrees=0.500000, BloatBoxMin=(X=25.000000,Y=25.000000), BloatBoxMax=(X=125.000000,Y=80.000000))), (Shotgun, (MaxDistance=15000.000000, MinAttackDegrees=1.000000, MaxAttackDegrees=2.000000, ProjectileSpreadZeroTimeFar=5.000000, ProjectileSpreadZeroTimeClose=2.500000, BloatBoxMin=(X=75.000000,Y=75.000000), BloatBoxMax=(X=150.000000,Y=150.000000))), (LightMachineGun, (MinAttackDegrees=2.000000, MaxAttackDegrees=3.000000, ProjectileSpreadZeroTimeFar=8.000000, BloatBoxMin=(X=75.000000,Y=75.000000), BloatBoxMax=(X=150.000000,Y=150.000000))),(HeavyMachineGun, (MaxDistance=50000.000000, MinAttackDegrees=2.000000, MaxAttackDegrees=3.000000, ProjectileSpreadZeroTimeFar=8.000000, BloatBoxMin=(X=75.000000,Y=75.000000), BloatBoxMax=(X=200.000000,Y=150.000000))), (SubmachineGun, (MinAttackDegrees=1.000000, MaxAttackDegrees=2.000000, ProjectileSpreadZeroTimeFar=5.000000, ProjectileSpreadZeroTimeClose=1.500000, BloatBoxMin=(X=25.000000,Y=25.000000), BloatBoxMax=(X=100.000000,Y=75.000000))))

;The default config for all weapons that isn't in WeaponCategoryConfigs
;Make sure you get rid of spacing for this line
DefaultCategoryConfig=(MaxDistance=30000.000000, MinAttackDegrees=1.000000, MinAttackDegreesClose=20.000000, MaxAttackDegrees=2.000000, ProjectileSpreadZeroTimeFar=4.000000, ProjectileSpreadZeroTimeClose=1.500000, BloatBoxMin=(X=25.000000,Y=25.000000), BloatBoxMax=(X=100.000000,Y=75.000000))


Reactions for specific stance (Standing, Crouched, and Prone)
The chance bot will spot you. What determines the close-range distance or the max amount of distance will be in the Reactions section above.

;Chance of spotting in percentage
ChanceAtDistanceStanding=50.0
ChanceAtCloseRangeStanding=100.0

ChanceAtDistanceCrounched=25.0
ChanceAtCloseRangeCrouched=50.0

ChanceAtDistanceProne=5.0
ChanceAtCloseRangeProne=20.0


Behavior
If you are a modder, you can create custom bot behaviors and let the server owner put it here to use it. ImprovedAI has 2 custom bot behaviors (WIP). The example is at the bottom of the list.
Also thank NWI AI dev that made a list for us to use it.

;Bot behaviors
ValidBehaviors=(Class'"/Script/Insurgency.BotBehavior_FollowSquadLeader"',Class'"/Script/Insurgency.BotBehavior_MoveToObjective"',Class'"/Script/Insurgency.BotBehavior_Wander"',Class'"/Script/Insurgency.BotBehavior_ThrowBackGrenade"',Class'"/Script/Insurgency.BotBehavior_AttackRanged"',Class'"/Script/Insurgency.BotBehavior_ThrowGrenade"',Class'"/Script/Insurgency.BotBehavior_ThrowSmokeGrenade"',Class'"/Script/Insurgency.BotBehavior_ThrowGrenadeAtWindows"',Class'"/Script/Insurgency.BotBehavior_FireRocket"',Class'"/Script/Insurgency.BotBehavior_FlushTarget"',Class'"/Script/Insurgency.BotBehavior_SuppressTarget"',Class'"/Script/Insurgency.BotBehavior_FleeGrenade"',Class'"/Script/Insurgency.BotBehavior_AttackMelee"',Class'"/Script/Insurgency.BotBehavior_Retreat"',Class'"/Script/Insurgency.BotBehavior_RequestFireSupport"',Class'"/Script/Insurgency.BotBehavior_Ambush"',Class'"/Script/Insurgency.BotBehavior_Pursue"',Class'"/Script/Insurgency.BotBehavior_Investigate"',Class'"/Script/Insurgency.BotBehavior_Vehicle"',Class'"/Script/Insurgency.BotBehavior_MoveToSeat"',Class'"/Script/Insurgency.BotBehavior_DestroyObjective"',Class'"/Script/Insurgency.BotBehavior_UseSmartActor"',Class'"/Script/Insurgency.BotBehavior_OutpostPrepare"',Class'"/Script/Insurgency.BotBehavior_ClearObjective"',Class'"/Script/Insurgency.BotBehavior_SeekAndDestroy"')

;List of behavior you can use
; Class'"/Script/Insurgency.BotBehavior_ADSWithPrimary"'
; Class'"/Script/Insurgency.BotBehavior_ADSWithSecondary"'
; Class'"/Script/Insurgency.BotBehavior_Ambush"'
; Class'"/Script/Insurgency.BotBehavior_AttackMelee"'
; Class'"/Script/Insurgency.BotBehavior_AttackRanged"'
; Class'"/Script/Insurgency.BotBehavior_Blink"'
; Class'"/Script/Insurgency.BotBehavior_ClearObjective"'
; Class'"/Script/Insurgency.BotBehavior_DestroyObjective"'
; Class'"/Script/Insurgency.BotBehavior_FireRocket"'
; Class'"/Script/Insurgency.BotBehavior_FleeGrenade"'
; Class'"/Script/Insurgency.BotBehavior_FlushTarget"'
; Class'"/Script/Insurgency.BotBehavior_FollowSquadLeader"'
; Class'"/Script/Insurgency.BotBehavior_HipFireWithPrimary"'
; Class'"/Script/Insurgency.BotBehavior_Investigate"'
; Class'"/Script/Insurgency.BotBehavior_MoveToObjective"'
; Class'"/Script/Insurgency.BotBehavior_MoveToSeat"'
; Class'"/Script/Insurgency.BotBehavior_OutpostPrepare"'
; Class'"/Script/Insurgency.BotBehavior_Pursue"'
; Class'"/Script/Insurgency.BotBehavior_ReloadBackupWeapon"'
; Class'"/Script/Insurgency.BotBehavior_ReloadEquippedWeapon"'
; Class'"/Script/Insurgency.BotBehavior_RequestFireSupport"'
; Class'"/Script/Insurgency.BotBehavior_Retreat"'
; Class'"/Script/Insurgency.BotBehavior_SeekAndDestroy"'
; Class'"/Script/Insurgency.BotBehavior_SuicideBomb"'
; Class'"/Script/Insurgency.BotBehavior_SuppressTarget"'
; Class'"/Script/Insurgency.BotBehavior_TacticalMoveToObjective"'
; Class'"/Script/Insurgency.BotBehavior_ThrowBackGrenade"'
; Class'"/Script/Insurgency.BotBehavior_ThrowGrenade"'
; Class'"/Script/Insurgency.BotBehavior_ThrowGrenadeAtWindows"'
; Class'"/Script/Insurgency.BotBehavior_ThrowSmokeGrenade"'
; Class'"/Script/Insurgency.BotBehavior_UseSmartActor"'
; Class'"/Script/Insurgency.BotBehavior_Vehicle"'
; Class'"/Script/Insurgency.BotBehavior_Wander"'

;Improved AI Custom bot behavior (WIP) (Not ready for use)
; BlueprintGeneratedClass'/ImprovedAI/BotBehaviors/ImprovedAI_CustomStance.ImprovedAI_CustomStance_C'
; BlueprintGeneratedClass'/ImprovedAI/BotBehaviors/ImprovedAI_CustomWeaponFiring.ImprovedAI_CustomWeaponFiring_C'


Behavior (Misc)

;Distance from our enemy we need to be to door breach
DoorBreachAwareDistance=3000.0


Grenades

;When throwing a grenade, try to give this much time before it detonates after impact (so bots don't throw aiburst grenades)
FragGrenadeMinDetonateTime=1.5

;Only throw grenades at unreachable targets (used in Frenzy)
bOnlyGrenadeUnreachable=False

;Is allowed to throw grenades at targets currently in LoS
bCanGrenadewithLOS=False

;Minimum distance away from the target that the bot must be to throw a grenade
GrenadeMinimumDistance=500.0

;Grenade Inaccuracy Max Distance
GrenadeInaccuracyMaxDistance=1500.0

;Only throw grenades once every N seconds per squad
SquadGrenadeCooldown=45.0

;X and Y location where the grenade will land around that area. Minimum value
GrenadeInaccuracyMin=(X=25.0,Y=25.0)

;X and Y location where the grenade will land around that area. Maximum value. If X=1.0 and Y=1.0 on both then grenade will be really accurate.
GrenadeInaccuracyMax=(X=200.0,Y=200.0)


Rockets

;Minimum distance away from the target that the bot must be to fire a rocket
RocketMinimumDistance=2000.0

;Only shoot rocket once every N seconds per squad
RocketSquadCooldown=45.0

;Minimum number of enemies who should be in a cluster to be considered a valid rocket target
RocketMinimumClusterSize=2


Difficulty

ZeroTimeMultiplierEasy=1.25
ZeroTimeMultiplierHard=0.5
BloatBoxMultiplierEasy=1.25
BloatBoxMultiplierHard=0.5
BloatBoxMultiplierDistance=2.0
BloatBoxMultiplierMaxDistance=10000.0
BloatBoxMultiplierMinDistance=2000.0


Misc

bBotIgnoresDamage=False
bBotHasInfiniteAmmo=False
bBotUsesVehicles=True

;No idea what this is
MemoryMaxAge=90.0


Cover

;If we are in cover and have > this suppression, get lower (While firing at a target)
CoverSuppressionToCowerCombat=0.1

;If we are in cover and have > this suppression, get lower
CoverSuppressionToCower=0.0

;If we are in cover and have <= this suppression, stand back up
CoverSuppressionToRecover=0.0

;Minimum time we should stay in cover after cowering to avoid flip flopping
CoverCowerMinTime=2.5


Ambush
Ambush bots are the bot that camp in the corners. I'm sure you saw them a few times. These are the settings for those bots. If you want to increase the amount of bot camping in the corner then you should take a look at BotAmbushRatioCheckpointMaxDeaths=0.8 , BotAmbushRatioCheckpointMinDeaths=0.4 , and BotAmbushRatio=0.10. The bot will start ambush base on the number of deaths between these configs and the ratio of bots. These configs will go in specific coop game mode settings like [/Script/Insurgency.INSCheckpointGameMode]

;Apply ambush bonuses when our target is within this distance
AmbushBonusDistance=2000.0

;The higher this is, the faster bots react to targets when ambushing
AmbushReactionTimeMultiplier=2.5

;The higher this is, the more accurate bots are when ambushing
AmbushAccuracyMultiplier=2.0

;The higher this is, the faster bots turn when ambushing
AmbushTurnSpeedMultiplier=2.0


Morale

;Time fully restore morale when shattered
MoraleRestoreTime=10.0

;Morale lost when a nearby teammate is headshot
MoraleLostOnHeadShot=50.0

;Morale lost when a nearby teammate is killed
MoraleLostOnDeath=15.0

;Morale lost when a nearby teammate is killed in a gruesome way (burning, chemicals etc.)
MoraleLostOnGruesomeDeath=35.0

;Morale < than this means the bot will start to retreat
MoraleToRetreat=10.0

;Morale > than this means the bot can fight again after retreating
MoraleToRecover=90.0



Auto-scale AI Difficulty

This has absolutely nothing to do with BotSkillCfg. This is just simply auto-scale the AIDifficulty in [/Script/Insurgency.INSCoopMode] base on the number of players in-game.
There are PlayerCountForMinAIDifficulty and PlayerCountForMaxAIDifficulty for scaling. If the number of players in-game is between those 2 then the AIDifficulty will try to scale base on the following formula:

Formula

bScaleAIDifficulty=False

;Minimum number of players to start scaling. Anything less than this or equal to this will just use MinAIDifficulty
PlayerCountForMinAIDifficulty=2

;Maximum number of players to stop scaling. Anything greater than this or equal to this will just use MaxAIDifficulty
PlayerCountForMaxAIDifficulty=7

;The minimum AIDifficulty can have for scaling
MinAIDifficulty=0.5

;The maximum AIDifficulty can have for scaling
MaxAIDifficulty=1.0



Custom Bot Behavior Configs

These are custom bot behavior I made using the blueprints that we have. It can change how a bot behaves. It still needs more work and testing. If you do not wish to use these, you can disable them. These bot behaviors will not change BotSkillCfg. It is just another behavior on top of it.

Aim at Closest Target

;Amount of second delay before finding another closest target
AimDelay=1.0

;Enable bot to aim at the closest target base on the distance
bForceAimAtClosestTarget=False

;Line of sight check for bot (Disabling this will just make bot target the closest target without LOS)
bLOS=True

;Aim at target base on the priority type
;Example for Sprint, it will only aim at the target if they are sprinting and the rest that are on top of Sprint (Idle, Interesting, LastSeenThreat, and Footsteps)
AimPriority=Forced

;List of Priority Type
;Idle
;Interesting
;LastSeenThreat
;Footsteps
;Sprint
;Gunshot
;Enemy
;Forced

Note: Aiming at the target doesn't mean they will shoot at them. BotSkillCfg will before the one trigger the weapon fire and the accuracy or you can use the Force Firing behavior I made.


Find Cover

;Enable to force bot to find the closest area to cover
bFindCover=False

;Amount of X seconds before looking for new cover
;Having least seconds will make bot keep trying to moving from cover to cover instead of shooting their target
CoverTick=5.0

;Bot will only stay in cover when bot's morale is less than or equal to this value after getting a new cover
;No morale at all = 0.0 Thats when bot is taking a lot of damage and teammate is dying a lot
;Max morale = 100.0
CoverMoraleValue=20.0

Note: This cover behavior is just to force the bot to find a new hiding area. The base game cover will still apply to this. BotSkillCfg cover will be the one changing the bot stance like prone. Using this behavior will make the game longer because the bot tends to stay in cover more.


Misc

;Strafing is from UE4
;It allow the bot to run and slide and shoot at the same time
;This is disabled by default. Enable it will make game pace faster and the bot will run and gun at you more often
bStrafe=True


Force Firing

;Force bot to fire at player
;Require bLOS and from bForceAimAtClosestTarget from Aim at closest target config
bForceFiring=True

;Chance to trigger when bForceFiring is enabled, every X second base on AimDelay
;Default 10%
FiringChance=0.1

;Chance the bot will keep firing their weapon after FiringChance is triggered
SuppressionChance=0.01

Note: Force Firing is base on Aim at Closest Target. It will only fire if the closest target is found. If that feature is disabled then this force firing will not work.



Custom Bot Names

This feature will work regardless if you are using another mod that is replacing the BotSkillCfg or not. This is made using blueprints/nodes.
All bot names are randomly picked and you have to set them in BotNameList. If the bot amount exceeds the bot name list then the bot name won't be changed.
The bot names will be automatic updates with new bot joins or leaves. If a bot is using a player's name and that player left the game. That bot name will be replaced.
Remember if you have a duplicated bot name on the list, it will only appear once.

Random bot rank and random bot ping for the scoreboard are client-side. Everyone will get a different bot ranks and bot pings. ScoreboardUpdateInterval might affect client-side performance like FPS loss.

;Enable the custom bot names feature
;If you don't like custom bot names and you want to use other feature from the mutator then you can disable this
bCustomBotNames=True

;Every N seconds, we will update the scoreboard (This does not affect the original scoreboard in-game. Only for updating botname, bot rank, and bot ping)
;Default 0.4
;Lower will update faster but will affect performance for clients (Set however you want but if your players experience some lag or FPS drop due to this then it better to increase it)
;Recommend 0.2 for faster update
ScoreboardUpdateInterval=0.4

;Bot also use player name and add it to the bot name list only if the player is present in game
bUsePlayerName=True

;List of bot names
BotNameList=Mikee,Arc,DaraDef,AniCator,Guinevere,sswires,Circleus,John Doe,Jeroen,fatherHank,phen,Destinate

;Allow bot to use random rank in the scoreboard
;If this is disabled, bot will just have the BOT tag instead
bBotRank=False

;Allow bot to have random ping in the scoreboard
bBotPing=False





If something isn't working, please report it so I can fix it. All feedbacks are welcome!

If you like my mod and you want to support me, you can make a donation on my profile.

Releases

FilenameSizeVersionAddedOptions
filedata.43.zip30.53kb2.6.1

filedata.42.zip30.1kb2.6.0c

filedata.41.zip29.91kb2.6.0b

filedata.40.zip29.85kb2.6.0a

filedata.39.zip29.86kb2.6.0

filedata.38.zip27.62kb2.5.4a

filedata.37.zip27.57kb2.5.4

filedata.36.zip27.55kb2.5.3a

filedata.35.zip21.43kb2.5.3

filedata.34.zip26.04kb2.5.2a

filedata.33.zip25.8kb2.5.2

filedata.32.zip26.06kb2.5.1c

filedata.31.zip26.03kb2.5.1b

filedata.30.zip7.31kb2.5.1a

filedata.29.zip25.97kb2.5.1

filedata.28.zip25.97kb2.5.0

filedata.27.zip21.48kb2.4.0d

filedata.25.zip21.48kb2.4.0c

filedata.24.zip21.48kb2.4.0b

filedata.23.zip21.52kb2.4.0a

filedata.26.zip21.57kb2.4.0

filedata.22.zip15.85kb2.3.1c

filedata.21.zip15.91kb2.3.1b

filedata.20.zip15.88kb2.3.1a

filedata.19.zip2.82kb2.3.1

filedata.18.zip15.86kb2.3.0

filedata.17.zip15.86kb2.2.3

filedata.16.zip1.43mb2.2.2

filedata.15.zip1.43mb2.2.1c

filedata.14.zip1.42mb2.2.1b

filedata.13.zip1.42mb2.2.1a

filedata.12.zip1.42mb2.2.1

filedata.11.zip1.42mb2.2.0

filedata.10.zip1.42mb2.1.0a

filedata.9.zip1.42mb2.1.0

filedata.8.zip1.42mb2.0.2b

filedata.7.zip1.22mb2.0.2a

filedata.4.zip1.22mb2.0.2

filedata.3.zip1.15mb2.0.1a

filedata.1.zip1.15mb2.0.1

filedata.2.zip1.15mb2.0.0a

filedata.zip1.14mb2.0.0

filedata.6.zip1.01mb1.0.4

filedata.5.zip1.01mb1.0.3d

192 comments

Join the community or sign in with your gaming account to join the conversation:

Xanamu
Xanamu @xanamu

Did i catch typos (either in documentation or in your code?):
"ChangeAtCloseRangeProne" vs. "ChanceAtCloseRangeProne"
"ChangeMovingMultiplier" vs. "ChanceMovingMultiplier"

In both cases, similar configs are with "chanCe" instead of "chanGe".

Darskiy
Darskiy @darskiy

Did I understand correctly that for this mod to work by default, it is enough to add:

[/ImprovedAI/Mutators/ImprovedAI.ImprovedAI_C]
; Use BotSkillCfg
bEnableBotSkillCfg = True

To the Game.ini file

And add the mod ID(93636) to Mods.txt and the mutator (-mutators = ImprovedAI) to the starting .bat file?

E1xP
E1xP @e1xp

When i try to set a small BloatBox it seem will less accuracy. So i cam curious about hot BloatBox line up with the player box. Is that center line up or the a point line up?

Xanamu
Xanamu @xanamu

isn't it the other way round? larger bloatbox values = less accuracy?

[BG]Nomy61
[BG]Nomy61 @bgnomy61

hi guys i have this mutator running on our windows server but it did not work for our linux server , it just wouldn't start so i fooled around with removing some the lines and found that i removed this " ;If this is disabled by default, so we will not use any custom asset and all bots will use ImprovedAI assets instead
;If this is enabled, then ImprovedAI assets will not be used. ONLY specific bots that using these assets will have their BotSkillCfg override.
;bEnableBotSkillCfg must also be enabled. Otherwise, your bot configs will not override on these assets.
bUseBotSkillCfgAssets=False

;As default BotSkillCfgAssets is EMPTY!!!
;You can put in as many assets as you want in each line and all of them will have their BotSkillCfg override
;This is an example of using BotSkillCfgAssets
BotSkillCfgAssets=BotSkillConfig'/Game/Game/Data/Bots/DefaultBotSkillConfig.DefaultBotSkillConfig'
BotSkillCfgAssets=BotSkillConfig'/Game/Game/Data/Bots/HardcoreBotSkillConfig.HardcoreBotSkillConfig'

;You can find more BotSkillCfg in the sandstorm mod tool
;ISMC mod BotSkillCfg path
; BotSkillConfig'/ISMCmod/Game/Factions/HardcoreBotSkillConfig.HardcoreBotSkillConfig'
; BotSkillConfig'/ISMCmod/Game/Factions/HardcoreBotSkillConfig_2.HardcoreBotSkillConfig_2'
; BotSkillConfig'/ISMCmod/Game/Factions/HardcoreBotSkillConfig_3.HardcoreBotSkillConfig_3'
; BotSkillConfig'/ISMCmod/Game/Factions/HardcoreBotSkillConfig_4.HardcoreBotSkillConfig_4'
; BotSkillConfig'/ISMCmod/Game/Factions/PMCBotSkillConfig_PVP.PMCBotSkillConfig_PVP' "

it finally started up. Any ideas ??

N85
N85 @n85

Could you clear up how we configure the turn speeds? Like the Min Angle Max Angle I'm not sure how those work.

Also, are suppression and morale the same thing? For instance, retreat if morale is low and seek cover and fire if suppression is high... could you clarify how those work?

I'm noticing that the enemies are basically dropshotting me at every turn... I get in close (<5m), and they either immediately prone or we exchange a couple rounds then they go prone while shooting. Is this related to a setting in ImprovedAI or hardcoded into the game? Essentially I'd like them not to prone at the drop of a hat. I'm exploring the cfg and haven't quite figured out how to accomplish that.

Thank you for your mod and your help, by the way.

Lastly and unrelated, think you can figure out how the NoSmoking mod works and fix that? Many people would be very grateful! :P

Ok one truly last question... this setting in the AISenseConfig section... do you know how it works?

;Last seen location (Default -1)
AutoSuccessRangeFromLastSeenLocation=-1 ;was 500

I copied it from someone else's config but now I can't remember whose and I'm not sure what it does so I don't know if their value is a good one XD

Thanks again. Do you have a paypal and do you accept donations?

Destinate
Destinate @destinate

I don't know how the Min angle and the max angle work. I think it's some FOV.

The suppression and morale are 2 different things. The morale is something NWI creates to use for the bot behaviors I think. The find cover behavior using the morale is something I made. The same for the cover suppression is also made by NWI to works with the bot behavior. As you can see there are a lot of bot behaviors. For example, BotBehavior_Retreat behavior, for sure that will work with the morale. Can't really tell which behavior will use them which will not. Modders don't have access to the source code file.

For the prone and drop shooting, that has to do with suppression. Whenever you miss your shot or not, they will get some suppression. When they reach some amount of suppression they will go prone. I'm not sure which bot behaviors use them. All you can do is try to mess around with the cover suppression.

The NoSmoking mod is just editing the player class and squad to remove anything that has to do with smokes. You can prevent AI from throwing smoke by removing the BotBehavior_ThrowSmokeGrenade behavior. But for players, you will have to mod the player class and squad. It will have a conflict with other mods that editing the player class and squad too like ISMC.

The AISenseConfig you mentioned is part of UE4. The AutoSuccessRangeFromLastSeenLocation will just make the bot able to detect the player 100% with a distance of x amount since the last location the player is seen. Enable it will have the bot try to shoot the player through the wall within that x amount since the last location (like suppression) and the bot will try to chase the player. Because the player still counts as detected within that x value. The -1 value will disable it and will keep making the bot lost the vision of the player. Let say the bot spotted you and then u run behind the wall then the bot lost vision of you and can't detect you then the bot will just retreat or stand still waiting for the next action. For realism, you can try to disable it but if you want the bot to be able to detect players through the wall or obstruct objects and target them then I would have it as 500.

You can find my Paypal in my profile. Just click on my name and you will see it in the status.

publicENEMY80
publicENEMY80 @publicenemy80

This is my game.ini settings for checkpoint. I created a dedicated server and join the server.

[/Script/Insurgency.INSCoopMode]
FriendlyBotQuota=4
MinimumEnemies=16
MaximumEnemies=16
bBots=True
AIDifficulty=0.8
IdleLimit=999
IdleCheckFrequency=999

[/Script/Insurgency.INSCheckpointGameMode]
FriendlyBotQuota=4
bBots=True
SoloEnemies=16
AIDifficulty=0.8
MinimumEnemies=16
MaximumEnemies=16
SoloWaves=10
IdleLimit=999
IdleCheckFrequency=999

ImprovedAI friendly AI are worse than default AI. Although the enemy AI is better with Improved AI. Is it possible to use default AI for friendly AI? Toggling perhaps?

Also, is it possible to toggle ImproveAI? So that I dont have to restart server just to change the AI.

Destinate
Destinate @destinate

It possible to make the ImprovedAI assets not affect the friendly AI. But if you are using custom botskillcfg assets then it's not possible.

And I don't think it is possible to toggle ImproveAI without restarting the server because the game.ini is reload every map change.

publicENEMY80
publicENEMY80 @publicenemy80

I dont understand. Can I use ImprovedAI for enemy ai and use default ai for friendly? Im not sure what is botskillcfg. The only ImproveAI setting that i use is game.ini, as per your instructions.

Destinate
Destinate @destinate

BotSkillCfg is basically everything for AI settings. It's best to mess around the configurations to fit your play style.

bEnableForFriendlyAI=False
To disable BotSkillCfg for friendly AI and use the default game.

publicENEMY80
publicENEMY80 @publicenemy80

After setting
bEnableForFriendlyAI=False
I can confirm that the friendly bot still dont try to complete objectives. They just stay at the starting position. Tested on official maps.
Any ideas?

UN
underlines @underlines

same problem. using ImprovedAI with only two Game.ini settings:

bEnableBotSkillCfg=True
bEnableForFriendlyAI=True

Friendly bots just stand and do almost nothing. I didn't use any settings in Game.ini for the regular AI. Everything default and bots just stand around :(

MO
MOsabbroxd @mosabbroxd

Can you make new behavior that allow the bots to call in (A10 strafe) ??
because this behavior are disabled by default.

N85
N85 @n85

Would also like to ask, what measurements are the distances?

It seems like they are essentially blind so I'm wondering if the distances are too small. For example on Hillside I can snipe with no threat from about 145m from point A... they just stand on the hill and don't even attempt to shoot back. Can they not see me?

Destinate
Destinate @destinate

measurements for distance is in unreal units
If you want them to able to snipe you like 500m then you have to look at the Hearing, Vision, and Reactions for specific stance configs.

Also don't forget about the AIModule
[/Script/AIModule.AIPerceptionComponent]
HearingRange=4000
SightRadius=9000
LoseSightRadius=10000
LoSHearingRange=6000

[/Script/AIModule.AISenseConfig_Hearing]
bUseLoSHearing=True
HearingRange=4000
LoSHearingRange=6000

[/Script/AIModule.AISenseConfig_Sight]
SightRadius=9000
LoseSightRadius=10000

N85
N85 @n85

Roger that. So these sections can just go anywhere in game.ini? Do they override your previous values above? (I've already copied and pasted from the boxes here on the mod description page)

When you say Unreal units, what does that translate to in game? For instance, sight radius = 9000, what would that be in meters (so I have a point of reference)

Thank you for such a prompt reply, I can tell you have done a lot of work on this.

EDIT: Some quick googling apparently 1 unreal unit = 1cm... soooooo yeah lol that'll be an interesting point of reference (in US we are still using Imperial units)

Destinate
Destinate @destinate

They are all in game.ini
The AIModule is from UE4. The BotSkillCfg is more like some configurations for the sandstorm bot that runs under AIModule. You still have to mess around the configs for both of them to suit your gameplay style.

N85
N85 @n85

Ok, I am just a bit confused as to which behavior will take precedence. For example I've got

;ImprovedAI
[/ImprovedAI/Mutators/ImprovedAI.ImprovedAI_C]
;Use BotSkillCfg
bEnableBotSkillCfg=True

;Distance from this sound that we confirm our target is an enemy
HearAwareDistanceRadial=3000.0
HearAwareDistanceGunshot=6000.0
HearAwareDistanceSprintFootstep=2000.0
HearAwareDistanceBreach=1000.0
HearAwareDistanceDoor=500.0
HearAwareDistanceRigExplosive=1000.0

;Distance from this sound that we can hear the target
HearDistanceFootstepsSprinting=3500.0
HearDistanceFootstepsRunning=2000.0

and then down below from the suggestion you just made

[/Script/AIModule.AISenseConfig_Hearing]
bUseLoSHearing=True
HearingRange=6000 ;was 40m
LoSHearingRange=8000 ;was 60m

So should they be the same values? Or does one take precedence?

Thank you again for your help and if this is better asked somewhere else, please feel free to let me know.

Destinate
Destinate @destinate

Think of it as AIModule is the box. Then inside the box we have another box and that's the BotSkillCfg
We don't how the hearing or vision works exactly for the BotSkillCfg. It is hardcoded into the game. I can't even explain to you 100% because I'm just assuming and guessing how it works.
The only thing I know is that these are the config for you to change it. If my guess is right, these configs are used in the bot behaviors section.

You really want the bot to shoot you like 300m or so. You have 2 choices. Either mess with the configs until you figure out what it does or make your own bot behaviors using the mod tool.