Insurgency: Sandstorm

Improved AI (v2.9.6) for Insurgency: Sandstorm

Released (updated ago). Ranked 6 of 664 with 419,307 (257 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.
Last Check: 9/4/2022 (It is to let you know when was the last time I check this mod. I will only update the mod if it stops working)

The goal of this mod is to improve the AI to make the coop has a 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.



Starting version 2.9.5, it supports with zCore
If you are using it with zCore then put this in the zCore setting

[/zCore/Mutators/zCore.zCore_C]
zCoreMods=BlueprintGeneratedClass'/ImprovedAI/zCore/zCore_ImprovedAI.zCore_ImprovedAI_C'


Mutator Name:
- ImprovedAI
- ImprovedAI_2
- ImprovedAI_3
- ImprovedAI_4


All configs will go in your game.ini and under the line [/ImprovedAI/Mutators/ImprovedAI.ImprovedAI_C]

If you are using ImprovedAI_2 then it will be under the line [/ImprovedAI/Mutators/ImprovedAI_2.ImprovedAI_2_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

;You can put in as many assets as you want 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
HearAwareDistanceFootsteps=500.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

;Min Height from this sound that we can hear the target
HearAbilityZOffsetMin=200.0

;Max Height from this sound that we can hear the target
HearAbilityZOffsetMax=400.0


Vision

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

;AI Sight is weighted based on Light and Darkness
MinLightIntensityToSeeTarget=0.02
MinLightIntensitytoSeeTargetatNight=0.0185
LightIntensityforFullyVisibleTarget=0.1
TimetoNoticeVisibilityMultiplier=1.0
MinLightIntensitytoAffectNightVision=50.0
MinNightVisionSightStrength=0.2


Reactions

TurnSpeedMaxAngleThreshold=90.0
TurnSpeedMinAngleThreshold=5.0

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

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

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

;Time before we start using melee attack
AttackDelayMelee=0.5

;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

;Range we consider to be maximum distance for spot checks (This description is from NWI. I'm not sure what middle range is)
MiddleRange=3750.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 and the projectile spread 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 is 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.05



;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=100.000000,Y=75.000000))), (MarksmanRifle, (MinAttackDegreesClose=10.000000, BloatBoxMin=(X=50.000000,Y=50.000000), BloatBoxMax=(X=100.000000,Y=75.000000))), (BoltRifle, (MinAttackDegreesClose=10.000000, MaxAttackDegrees=0.500000, BloatBoxMin=(X=25.000000,Y=25.000000), BloatBoxMax=(X=100.000000,Y=75.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=100.000000,Y=75.000000))), (LightMachineGun, (MinAttackDegrees=2.000000, MaxAttackDegrees=3.000000, ProjectileSpreadZeroTimeClose=2.000000, BloatBoxMin=(X=75.000000,Y=75.000000), BloatBoxMax=(X=100.000000,Y=75.000000))), (HeavyMachineGun, (MaxDistance=50000.000000, MinAttackDegrees=2.000000, MaxAttackDegrees=3.000000, ProjectileSpreadZeroTimeFar=7.000000, BloatBoxMin=(X=75.000000,Y=75.000000), BloatBoxMax=(X=100.000000,Y=75.000000))), (SubmachineGun, (MinAttackDegrees=1.000000, MaxAttackDegrees=2.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 isnt 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=3.000000, ProjectileSpreadZeroTimeClose=1.500000, HipFireChanceClose=0.800000, HipFireChanceLong=0.100000, HipFireCloseRange=50.000000, HipFireLongRange=1500.000000, 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. Not sure why NWI calls this section reaction.

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

ChanceAtDistanceCrouched=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_HipFireWithPrimary"',Class'"/Script/Insurgency.BotBehavior_ADSWithPrimary"',Class'"/Script/Insurgency.BotBehavior_ADSWithSecondary"',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'


;Enabled or disable DefferedRetreat (Means that bot will not retreat immediately if it engaged in a firefight)
RetreatIsDeffered=True
;For how long bot should behave the most appropriately to a situation before retreat if it is not engaged in a firefight for that specified time
DefferedRetreatDelayTime=5.0
;Min value of how often bot should shout about retreat necessity while engaged in a firefight or while retreat is being delayed due to the DefferedRetreatDelayTime
DefferedRetreatShoutFrequencyMin=3.0
;Max value of how often bot should shout about retreat necessity while engaged in a firefight or while retreat is being delayed due to the DefferedRetreatDelayTime
DefferedRetreatShoutFrequencyMax=5.0


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=7000.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
;If this is enable then AttackDelayClose and AttackDelayDistant will be ignored 
bStrafe=False

;This is from the NWI Gamemode
;Set where bot should spawn for each objective (Mostly for checkpoint. Havn't test for other gamemode)
;Default
;ClosestToPlayerSpawn
;ClosestToObjective
;FurthestFromObjective
;Random
BotSpawnMethod=Default


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.


Force Bot Move to Objective (Removed)
Use Improved Counter-attack mod instead.


Counter Fire Support
This custom bot behavior will make the bot attempt to shoot at Blackhawk or helicopter. It was in the official game before. We just trying to reproduce this behavior to have better gameplay.

;Can bot counter the fire support using weapon?
bCounterFireSupport=True

;Chance bot will fire their weapon 0.0 to 1.0
;1.0 is 100% chance bot will fire their weapon
;This only affect when firing at the heli support
;This only affect normal weapons! NOT RPG/Explosive!
CounterFireSupportWeaponFiringChance=0.25

;Can bot counter the fire support using RPG/Launcher
bCounterFireSupportUsingRPG=True

;Every X second(s) to check for fire support
;Only apply to bot using RPG
IntervalCheckForFireSupportRPG=1.0

;The maximum distance of blackhawk/heli since the last check
;It uses with IntervalCheckForFireSupportRPG to calculate the velocity of the heli (Determine how fast the heli is flying)
;Bot will try shoot an RPG at the target only if the distance of heli since last check is less than this
;Lower this value will make bot only shoot at it if the heli isn't moving much. It will increase the accuracy but only if the heli isn't moving much.
;Increasing this will make bot shoot RPG at the heli more but high chance of miss due to the distance different. That's mean the velocity is really high.
;This ONLY USE FOR RPG!
MaxDistanceDiffSinceLastCheck=1000.0

;The maximum distance bot can fire RPG at the blackhawk/heli
;If the target exceed this distance between the bot then the bot won't fire RPG at the target
MaxDistanceRPGAtHeli=30000.0

;Can bot counter IED drone?
bCounterFireSupportDroneIED=True



Custom Bot Names

This feature will work regardless of whether 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 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

;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





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.

Dependencies

NameAddedUpdated
zCore (1.0.1c)

Releases

FilenameSizeVersionAddedOptions
filedata.p9.zip52.61kb2.9.6

filedata.9D.zip51.21kb2.9.5b

filedata.lX.zip50.67kb2.9.5a

filedata.Kh.zip50.64kb2.9.5

filedata.nl.zip43.33kb2.9.4

filedata.wD.zip41.67kb2.9.3a

filedata.nm.zip41.7kb2.9.3

filedata.rS.zip41.52kb2.9.2

filedata.ia.zip41.51kb2.9.1

filedata.3A.zip41.22kb2.9.0a

filedata.Kw.zip44.11mb2.9.0

filedata.be.zip38.83kb2.8.0

filedata.Js.zip39.35kb2.7.8

filedata.Za.zip38.54kb2.7.7

filedata.Oc.zip38.35kb2.7.6a

filedata.xk.zip38.22kb2.7.6

filedata.49.zip35.92kb2.7.5

filedata.48.zip36.05kb2.7.4

filedata.47.zip36.06kb2.7.3

filedata.46.zip35.31kb2.7.2

filedata.45.zip35.03kb2.7.1

filedata.44.zip35.03kb2.7.0

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

316 comments

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

PE
penthopia @penthopia

Destinate I set the BotSpawnMethod=ClosestToObjective. It works. Enemies no longer spawn inside Checkpoint after we completed Defend. Thanks

PE
penthopia @penthopia

Destinate I did not do any adjustment to the script. Yet this happened every map now. Not right. Shouldn't happened. Now the game becomes ridiculous. After winning every checkpoint and before we could proceed to next checkpoint. So many Bots spawn right where we are. We have to be at all time ready to take them out. It's scary and not easy. Most of the times we are dead. Please help us resolve this issue. Tell us what to do? How to correct this? Is there any adjustment in the script that we can correct this? Please Destinate please help. I love improvedAI mod. It's a good mod.

Thrillzorz
Thrillzorz @thrillzorz

Quick question, the settings "TurnSpeedMaxAngle=60.0 and TurnSpeedMinAngle=90.0" it says that this adjusts the speed the AI turn at, what would be the optimal values if I want them to turn quicker because I feel like the AI still turn to you at a very slow pace? I'm not sure if I understand it correctly but, would I have to increase the min angle and lower the max angle?

BioRage
BioRage @biorage

Destinate
Is there a setting we can adjust for

1) Snap shooting (sometimes they don't fully turn before they kill you)
2) Wall shooting rampage

Thank you sir!

Lozza-Redback_Gaming
Lozza-Redback_Gaming @lozza-redback-admin

What is the advantage of using zCore? Is it needed, and why?

Swat22
Swat22 @swat221

I honestly don't know what zCore is, off the top of my head. It's probably from another mod? The only things I can find related to "zCore" are hidden mods that are no longer available. I use the following line in my server's Game.ini file, followed by the Improved AI commands:

[/ImprovedAI/Mutators/ImprovedAI.ImprovedAI_C]

Ninja1923
Ninja1923 @ninja1923

Due to last update, ai spawning at captured checkpoints usualy (ministry c for security for example)

Destinate
Destinate @destinate

BotSpawnMethod=ClosestToObjective

Swat22
Swat22 @swat221

Destinate For more clarify, will this also make the bots spawn closer to the players when they are actively defending an objective?

After a break, I've come back and set up my server, again. Copied and pasted my old server files. This time around, I am noticing the bots spawn on top of the players AFTER completing a defend objective. I know Ministry was notorious for this, before, but now it's happening on ALMOST every map.

PE
penthopia @penthopia

Wow. I am so lucky to real this, Swat22 Yes Yes. I did not do any adjustment to the script. Yet this happened every map now. Not right. Shouldn't happened. Now the game becomes ridiculous. After winning every checkpoint and before we could proceed to next checkpoint. So many Bots spawn right where we are. We have to be at all time ready to take them out. It's scary and not easy. Hi @Destinate. Please help us resolve this issue. Tell us what to do? How to correct this? Is there any adjustment in the script that we can correct this? Please Destinate please.

Swat22
Swat22 @swat221

What Destinate posted: BotSpawnMethod=ClosestToObjective
That line seems to resolve the issue. After playing for about 10 hours of various maps, the AI has NOT spawned on top of us like they were before. I haven't played on Ministry, since adding that line, though. When I get back in my server, I will force load Ministry to verify that it fixes that one as well.

ZERODEGREESC
ZERODEGREESC @zerodegreesc

Bot Names seems to be bugged, I tried changing the names, nothing happened, tried to set false so bots couldn't use players names, they still did.

This is the code I used to deactivate everything, but bots still used player names
bCustomBotNames=False
ScoreboardUpdateInterval=0.4
bUsePlayerName=False
BotNameList=Mikee,Arc,DaraDef,AniCator,Guinevere,sswires,Circleus,John Doe,Jeroen,fatherHank,phen,Destinate
bBotRank=False

This is the code I used to set custom names, but it was still the default names and player names
bCustomBotNames=True
ScoreboardUpdateInterval=0.4
bUsePlayerName=False
BotNameList=Wiz Khalifa,Willie Nelson,Woody Harrelson,Miley Cyrus,Martha Stewart,Snoop Doog,Cheech,Chong,Seth Rogen,Joe Rogan,Elon Musk
bBotRank=False

Destinate
Destinate @destinate

You have to wait for the next map and restart the game due to cache

ZERODEGREESC
ZERODEGREESC @zerodegreesc

Thank you so much for taking your time to reply.
But my server has been restarted and maps have been cycled many times, but the bots still use player names which is odd..

It's not a huge problem though, we still love the mod and the difficulty the new AI brings

bCustomBotNames=False
ScoreboardUpdateInterval=0.4
bUsePlayerName=False
BotNameList=Mikee,Arc,DaraDef,AniCator,Guinevere,sswires,Circleus,John Doe,Jeroen,fatherHank,phen,Destinate
bBotRank=False
bBotPing=False


Destinate
Destinate @destinate

Restart your server and your game. Don't join your server when you start up your game. Play official matchmaking to clear the cache and then join back to your server after the game is done.

ZERODEGREESC
ZERODEGREESC @zerodegreesc

I don't know if someone asked about this already, sorry if it has been asked and answered.

What are the differences between the differrent AI
- ImprovedAI
- ImprovedAI_2
- ImprovedAI_3
- ImprovedAI_4

Destinate
Destinate @destinate

There's no different. It just let people set different configs for specific mutator. So like ImprovedAI will be used for checkpoints and ImprovedAI_2 will be used for survival. They set up how they want in the mapcycle to use specific mutator

ZERODEGREESC
ZERODEGREESC @zerodegreesc

Oh, so on my server that is a Checkpoint server I should be using ImprovedAI instead of ImprovedAI_2

Destinate
Destinate @destinate

Doesn't matter which one u use. You just set it up in the game.ini
So if u use ImprovedAI_2 then you will put all the settings under [/ImprovedAI/Mutators/ImprovedAI_2.ImprovedAI_2_C] in game.ini

chaikobar
chaikobar @chaikobar

I have a Bug with Custom Bot Names
Targets in Blue (in defense) get a Name from the BotnameList and listed as Bot-Teammember
or wrong input in game.ini?

[/ImprovedAI/Mutators/ImprovedAI.ImprovedAI_C
;Custom Bot Names
bCustomBotNames=True

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=False

;List of bot names
BotNameList=Mike,Thomas,Igor,Bianca,Hank,Boris,John Doe,Feron,fatherHank,Commander Shepard,KillHunter,KillHunter2,Peter,Günther,Jürgen,Julian,Max,Vlad

bBotRank=True

bBotPing=True

Edit: And now shows no Name on Bots :(
Edit 2: Reload Map fix this,with no Custom Name, but this is always until you have load a new map