Insurgency: Sandstorm

Improved AI (v2.6.1) for Insurgency: Sandstorm

Released (updated ago). Ranked 4 of 455 with 207,163 (4 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 overwrite those mods by putting their BotSkillCfg asset files 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 then 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 overwrite.
;bEnableBotSkillCfg must also be enabled. Otherwise, your bot configs will not overwrite 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 get overwritten
;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
ChangeMovingMultiplier=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
ChangeAtCloseRangeProne=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

183 comments

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

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.

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.

N85
N85 @n85

All looks good, but curious about the custom names. Do they take into account male/female AI? Or is there no difference? For instance, if I put female names in the list will that apply to anyone, and if I put only male names in the list, will they apply to female security as well? As far as I know there are no Insurgent females (sadly, though maybe we could pretend the suicide bombers are since they are all covered up :P)

Destinate
Destinate @destinate

No, bot names are random to every bot

publicENEMY80
publicENEMY80 @publicenemy80

I have issue with ImprovedAI where the friendly AI just walking in circles and not trying to complete objectives. See Youtube.com
Thoughts?

Destinate
Destinate @destinate

Are you changing the ValidBehaviors in your game.ini? If so then remove that line in your game.ini and use the default. I just pushed an update to it. This can be easily fixed by changing the bot behaviors.

publicENEMY80
publicENEMY80 @publicenemy80

Spoke too soon. They did not go to objectives. They just go near it.

Destinate
Destinate @destinate

Add these to config see if it works
ChanceAtDistanceStanding=5.0
ChanceAtDistanceCrounched=1.0

publicENEMY80
publicENEMY80 @publicenemy80

While they do try to complete objectives, I wish they were more aggressive.

publicENEMY80
publicENEMY80 @publicenemy80

No. I did not use ValidBehaviors in my game.ini. Ill update improved ai and see what happens.

publicENEMY80
publicENEMY80 @publicenemy80

Is there a way to quickly enable and disable this mod?