Left 4 Dead 2

Left 4 Dead 2

Left 4 Bots 2
LimmyTastic 4 Apr, 2024 @ 7:03am
Your Guide To Make Survivor Bots Pro
Follow All The Instructions Below

Make sure to play a campaign map first so that the Left 4 Bots 2 addon can generate an ems folder for you to edit the txt files in it. If you have already downloaded the addon before the update on 15 Feb 2025, delete the said ems folder (titled "left4bots2") before following the said instruction. I strongly suggest using Notepad++ (Google it) for editing since Microsoft Notepad might incorrectly display the commands in the files. In addition, remove all other addons that alter the AI of the survivor bots if you notice your survivor bots acting weirdly after installing L4B2 (including the original Left 4 Bots addon if any).


Lore Friendly Weapon Preferences

Go to...

SteamLibrary\steamapps\common\Left 4 Dead 2\left4dead2\ems\left4bots2\cfg\weapons

This is where you can change the weapon preference of your survivor bots so they will pick up items based on the order of priority you have personally set for your bots. For an optimal experience, I would recommend that you replace the default setting of the files with the settings I have written below for each of the survivor bots respectively. These fix the issues of bots picking up the CS Scout and CS AWP as tier 2 weapons (I have shifted it to the tier 1 category) while keeping the survivor bots weapon preference lore-friendly in the context of the Left 4 Dead universe.


Bill

rifle,rifle_ak47,rifle_sg552,rifle_desert,shotgun_spas,autoshotgun,sniper_military,hunting_rifle,smg_mp5,smg_silenced,smg,shotgun_chrome,pumpshotgun,sniper_awp,sniper_scout,rifle_m60,grenade_launcher
pistol_magnum,pistol,machete,knife,katana,golfclub,baseball_bat,fireaxe,chainsaw,cricket_bat,electric_guitar,tonfa,shovel,frying_pan,crowbar,pitchfork,riotshield
molotov,pipe_bomb,vomitjar
first_aid_kit,defibrillator,upgradepack_explosive,upgradepack_incendiary
pain_pills,adrenaline


Coach

shotgun_spas,autoshotgun,hunting_rifle,sniper_military,rifle,rifle_ak47,rifle_sg552,rifle_desert,shotgun_chrome,pumpshotgun,sniper_scout,sniper_awp,smg,smg_silenced,smg_mp5,rifle_m60,grenade_launcher
pistol,pistol_magnum,chainsaw,frying_pan,katana,machete,golfclub,baseball_bat,knife,fireaxe,cricket_bat,electric_guitar,tonfa,shovel,crowbar,pitchfork,riotshield
molotov,pipe_bomb,vomitjar
first_aid_kit,defibrillator,upgradepack_explosive,upgradepack_incendiary
pain_pills,adrenaline


Ellis

sniper_military,hunting_rifle,rifle_sg552,rifle_desert,rifle_ak47,rifle,shotgun_spas,autoshotgun,sniper_awp,sniper_scout,smg_mp5,smg_silenced,smg,shotgun_chrome,pumpshotgun,rifle_m60,grenade_launcher
pistol,pistol_magnum,electric_guitar,pitchfork,katana,machete,golfclub,baseball_bat,knife,fireaxe,chainsaw,cricket_bat,tonfa,shovel,frying_pan,crowbar,riotshield
molotov,pipe_bomb,vomitjar
first_aid_kit,defibrillator,upgradepack_explosive,upgradepack_incendiary
pain_pills,adrenaline


Francis

autoshotgun,shotgun_spas,sniper_military,hunting_rifle,rifle_ak47,rifle,rifle_desert,rifle_sg552,pumpshotgun,shotgun_chrome,sniper_awp,sniper_scout,smg_silenced,smg,smg_mp5,rifle_m60,grenade_launcher
pistol,pistol_magnum,chainsaw,crowbar,katana,machete,golfclub,baseball_bat,knife,fireaxe,cricket_bat,electric_guitar,tonfa,shovel,frying_pan,pitchfork,riotshield
molotov,pipe_bomb,vomitjar
first_aid_kit,defibrillator,upgradepack_explosive,upgradepack_incendiary
pain_pills,adrenaline


Louis

rifle_sg552,rifle_desert,rifle_ak47,rifle,shotgun_spas,autoshotgun,hunting_rifle,sniper_military,smg,smg_silenced,smg_mp5,shotgun_chrome,pumpshotgun,sniper_scout,sniper_awp,rifle_m60,grenade_launcher
pistol_magnum,pistol,tonfa,riotshield,katana,machete,golfclub,baseball_bat,knife,fireaxe,chainsaw,cricket_bat,electric_guitar,shovel,frying_pan,crowbar,pitchfork
molotov,pipe_bomb,vomitjar
first_aid_kit,defibrillator,upgradepack_explosive,upgradepack_incendiary
pain_pills,adrenaline


Nick

rifle_ak47,rifle,rifle_desert,rifle_sg552,autoshotgun,shotgun_spas,sniper_military,hunting_rifle,smg_silenced,smg,smg_mp5,pumpshotgun,shotgun_chrome,sniper_awp,sniper_scout,rifle_m60,grenade_launcher
pistol_magnum,pistol,golfclub,baseball_bat,katana,machete,knife,fireaxe,chainsaw,cricket_bat,electric_guitar,tonfa,shovel,frying_pan,crowbar,pitchfork,riotshield
molotov,pipe_bomb,vomitjar
first_aid_kit,defibrillator,upgradepack_explosive,upgradepack_incendiary
pain_pills,adrenaline


Rochelle

rifle_desert,rifle_sg552,rifle,rifle_ak47,autoshotgun,shotgun_spas,hunting_rifle,sniper_military,smg_mp5,smg,smg_silenced,pumpshotgun,shotgun_chrome,sniper_scout,sniper_awp,rifle_m60,grenade_launcher
pistol_magnum,pistol,fireaxe,shovel,katana,machete,golfclub,baseball_bat,knife,chainsaw,cricket_bat,electric_guitar,tonfa,frying_pan,crowbar,pitchfork,riotshield
molotov,pipe_bomb,vomitjar
first_aid_kit,defibrillator,upgradepack_explosive,upgradepack_incendiary
pain_pills,adrenaline


Zoey

hunting_rifle,sniper_military,rifle_desert,rifle_sg552,rifle,rifle_ak47,autoshotgun,shotgun_spas,sniper_scout,sniper_awp,smg_mp5,smg,smg_silenced,pumpshotgun,shotgun_chrome,rifle_m60,grenade_launcher
pistol,pistol_magnum,katana,cricket_bat,machete,golfclub,baseball_bat,knife,fireaxe,chainsaw,electric_guitar,tonfa,shovel,frying_pan,crowbar,pitchfork,riotshield
molotov,pipe_bomb,vomitjar
first_aid_kit,defibrillator,upgradepack_explosive,upgradepack_incendiary
pain_pills,adrenaline


After modifying and saving the txt files, you will need to copy and paste the said txt files into the "c6m3_port" folder located in the same directory already mentioned. Make sure that your txt files overwrite the txt files in the folder. Otherwise, the survivor bots will default to their original weapon preference in the last level of "The Passing" campaign.


Settings

Go to...

SteamLibrary\steamapps\common\Left 4 Dead 2\left4dead2\ems\left4bots2\cfg

Locate the file titled "settings.txt". This is where you will adjust how will survivor bots behave and react in the game. For an optimal experience, copy and paste the commands below into the "settings.txt" file, thus, replacing all the default commands in it.


anti_pipebomb_bug = 1
automation = 1
automation_autostart = 0
automation_debug = 0
automation_stay_in_end_saferoom = 0
bot_think_interval = -1
carry_debug = 0
chat_bg_chance = 100
chat_bg_lines = "bg,cheater,hack,ihatemylife,nooo,reported,vacbanplz,why"
chat_gg_chance = 100
chat_gg_lines = "ggez,ggnore,ggs,ggwp,gitgud,glhf,gm,yesss"
chat_hello_chance = 100
chat_hello_replies = "hello,ahoj,annyeonghaseyo,bonjour,bunaziua,ciao,czesc,hallo,hei,hej,hola,konnichiwa,kumusta,marhaban,merhaba,nihao,ola,privet,pryvit,sawasdeekhap,selamat,szia,xinchao,yassou,zdrasti"
chat_hello_triggers = "hi,hello,hey,hi guys,hi all,hey guys,wassup,yo"
close_saferoom_door = 1
close_saferoom_door_all_chance = 0
close_saferoom_door_behind_range = 1000
close_saferoom_door_distance = 100
close_saferoom_door_highres = 0
damage_barricade = 1
damage_other = 0
deads_scan_defibradius = 250
deads_scan_maxaltdiff = 320
deads_scan_radius = 2000
deploy_upgrades = 1
die_humans_alive = 1
dodge_charger = 1
dodge_charger_diffangle = 10
dodge_charger_distdelay_factor = 0.0006
dodge_charger_maxdistance = 600
dodge_charger_mindistance = 80
dodge_rock = 1
dodge_rock_diffangle = 8
dodge_rock_maxdistance = 600
dodge_rock_mindistance = 140
dodge_spit = 1
dodge_spit_radius = 300
door_failsafe_delay = 0.15
fall_velocity_warp = 560
file_convars = "left4bots2/cfg/convars.txt"
file_itemstoavoid = "left4bots2/cfg/itemstoavoid.txt"
file_vocalizer = "left4bots2/cfg/vocalizer.txt"
file_weapons_prefix = "left4bots2/cfg/weapons/"
follow_pause_radius = 220
give_bots_medkits = 1
give_bots_nades = 1
give_bots_pills = 1
give_bots_upgrades = 1
give_bots_weapons = 1
give_humans_meds = 1
give_humans_nades = 1
give_max_range = 270
handle_l4d1_survivors = 2
heal_force = 0
heal_interrupt_minhealth = 39
heal_spare_medkits_radius = 500
horde_nades_chance = 100
horde_nades_maxaltdiff = 120
horde_nades_radius = 450
horde_nades_size = 10
hurry_time = 180
incap_block_nav_radius = 100
incap_block_nav_tank_range = 2000
items_not_to_avoid = 1
jockey_redirect_damage = 100
lead_check_ground = 0
lead_debug_duration = 0
lead_detour_maxdist = 10000
lead_dontstop_ondamaging = 1
lead_max_segment = 800
lead_max_separation = 0
lead_min_segment = 100
lead_pause_behind_dist = 0
lead_vocalize_interval = 50
load_convars = 1
loglevel = 3
manual_attack_always = 1
manual_attack_common_head_radius = 2000
manual_attack_dual_pistol_nerf = 0
manual_attack_mindot = -1
manual_attack_radius = 2000
manual_attack_saccade_speed = 2000
manual_attack_special_head_radius = 2000
manual_attack_wandering = 0
move_end_radius = 30
move_end_radius_defib = 80
move_end_radius_door = 100
move_end_radius_follow = 100
move_end_radius_heal = 80
move_end_radius_lead = 110
move_end_radius_pour = 16
move_end_radius_scavenge = 80
move_end_radius_wait = 150
move_end_radius_witch = 55
move_hipri_timeout = 5
move_wait_time = 0.5
moveto_debug_duration = 0
moveto_nav = 1
orders_debug = 0
orders_no_queue = 0
pause_debug = 0
pause_min_time = 2
pickups_failsafe_delay = 0.15
pickups_max_separation = 800
pickups_melee_noprimary = 1
pickups_min_interval = 0.8
pickups_pick_range = 90
pickups_pistol_dual = 1
pickups_scan_radius = 400
pickups_wep_always = 1
pickups_wep_ammo_replenish = 80
pickups_wep_min_ammo = 1
pickups_wep_replace_ammo = 1
pickups_wep_upgraded_ammo = 1
play_sounds = 1
scavenge_campaign_autostart = 1
scavenge_drop_radius = 200
scavenge_items_farthest_first = 0
scavenge_items_flow_distance = 1
scavenge_items_from_pourtarget = 0
scavenge_manager_interval = 1
scavenge_max_autofollow = 2
scavenge_max_bots = 1
scavenge_pour = 1
scavenge_usetarget_debug = 0
shoot_rock = 1
shoot_rock_ahead = 4
shoot_rock_diffangle = 8
should_hurry = 1
shove_commons_deltapitch = -6
shove_commons_radius = 35
shove_deadstop_chance = 100
shove_deadstop_deltapitch = -9.5
shove_specials_deltapitch = -6
shove_specials_radius = 70
shove_tonguevictim_deltapitch = -6
shove_tonguevictim_radius = 90
signal_chat = 0
signal_max_distance = 2500
signal_min_distance = 150
signal_min_interval = 5
signal_ping = 0
smart_use_carry = 1
smart_use_deploy = 1
smart_use_destroy = 1
smart_use_scavenge = 1
smoker_shoot_tongue = 1
smoker_shoot_tongue_duck = 0
spit_block_nav = 0
spit_damage_multiplier = 1
stuck_debug = 0
stuck_detection = 1
stuck_nomove_unstuck = 1
stuck_range = 100
stuck_time = 3
t3_ammo_bots = 1
t3_ammo_human = 1
tank_molotov_chance = 100
tank_retreat_radius = 650
tank_throw_deltapitch = 3
tank_throw_min_health = 1
tank_throw_range_max = 1300
tank_throw_range_min = 200
tank_throw_survivors_mindistance = 240
tank_vomitjar_chance = 0
team_max_chainsaws = 8
team_max_melee = 8
team_min_defibs = 0
team_min_medkits = 0
team_min_molotovs = 0
team_min_pipebombs = 0
team_min_shotguns = 0
team_min_vomitjars = 0
thinkers_think_interval = -1
throw_molotov = 1
throw_molotov_interval = 5
throw_nade_deltapitch = -6
throw_nade_interval = 10
throw_nade_mindistance = 250
throw_nade_radius = 500
throw_pipebomb = 1
throw_vomitjar = 1
tracemask_others = 1174421507
tracemask_pickups = 134242379
trigger_caralarm = 0
trigger_witch = 0
userlevel_give_medkit = 1
userlevel_give_others = 0
userlevel_give_weapons = 1
userlevel_orders = 1
userlevel_vocalizer = 0
vocalize_botselect_timeout = 4
vocalizer_commands = 1
vocalizer_goto_stop = "PlayerAnswerLostCall,PlayerLostCall"
vocalizer_laugh_chance = 100
vocalizer_lead_start = "PlayerFollowMe,PlayerMoveOn,PlayerEmphaticGo"
vocalizer_lead_stop = "PlayerAnswerLostCall,PlayerLostCall,PlayerStayTogether,PlayerLeadOn"
vocalizer_onpause_horde_chance = 100
vocalizer_onpause_special_chance = 100
vocalizer_onpause_tank_chance = 100
vocalizer_onpause_witch_chance = 100
vocalizer_sorry_chance = 100
vocalizer_thanks_chance = 100
vocalizer_yes = "PlayerYes,SurvivorBotYesReady"
vocalizer_youwelcome_chance = 100
wait_crouch = 1
wait_nopause = 1
witch_autocrown = 1


This settings above will make the bots react much more quickly to aggressive zombies running toward your general direction, as well as protecting you from most special infected that are planning to ambush you. Do note that this setting above is compatible with the sourcemod All 8 Survivors Sourcemod 2018-2025 addon in the Steam workshop if you wish to play with 8 survivor bots. I would not suggest using any other addon that implement the 8 survivor bots feature since its might cause the L4B2 addon to break in some inexplicable way.

I highly recommend installing this addon Bot Primary Weapon Enforcer. This addon will force the survivor bot to stick to its primary weapon without switching to its secondary weapon, that is until the bots runs out of ammo. In other words, this turn sniper-wielding Ellis and Zoey from worst bots to best bots as they no longer switch to their pistols randomly at the worst possible time. I also recommend installing this addon ion's Vocalizer so that you have an arsenal of vocal commands that you can use to order survivors bots around. Lastly, if you have a persistent issue of survivor bots getting in your line of fire during a firefight, consider installing this addon No Friendly Fire! so as to disable friendly fire entirely.

Locate the file titled "convars.txt" located in the same directory I already mentioned and replace the commands inside it with the commands below...


allow_all_bot_survivor_team 1
sb_all_bot_game 1
sb_enforce_proximity_range 999999
sb_separation_danger_max_range 300
sb_separation_danger_min_range 100
sb_separation_range 300


This will ensure that the survivor bots will not magically teleport to your location when you command bots to wait and you are far away from them. In addition, survivor bots will also follow you closely without straying too far off from you.

For the rest of the files in the "cfg" folder (except vocalizer.txt), delete all the commands before saving the files (Yes, that mean the content of the files must be completely empty). These will ensure that bots aren't prohibited from picking up the items as delineated in your weapon preference files (itemstoavoid.txt is responsible for causing this issue to occur), while making sure that the other settings files do not interfere with the behavior of the survivor bots in any matter. Specifically, these are the files below you should look out for...


  • itemstoavoid.txt
  • settings_c1m4_atrium.txt
  • settings_c1m4_atrium_hard.txt
  • settings_c1m4_atrium_impossible.txt
  • settings_c6m1_riverbank.txt
  • settings_c6m2_bedlam.txt
  • settings_c6m3_port.txt
  • settings_c6m3_port_hard.txt
  • settings_c6m3_port_impossible.txt
  • settings_hard.txt
  • settings_impossible.txt


You are now ready to enjoy Left 4 Dead 2 the way it meant to be played :)
Last edited by LimmyTastic; 23 Apr @ 9:22pm
< >
Showing 1-15 of 298 comments
smilzo  [developer] 6 Apr, 2024 @ 2:12am 
Thx, i'm gonna try this.
Phoenix‎ Rose 17 Apr, 2024 @ 8:08pm 
this is quite good, very good in fact. however some of these settings will have to be "updated"

these ones here

scavenge_campaign_autostart = 1
scavenge_drop_radius = 200
scavenge_manager_interval = 1
scavenge_max_autofollow = 2
scavenge_max_bots = 2
scavenge_pour = 1
scavenge_usetarget_debug = 0

are named differently in the new updated "GitHub" version of this mod where you can test some things. so i do hope you update this as im using your settings and i gotta tell you, freaking love them
LimmyTastic 18 Apr, 2024 @ 4:17pm 
Originally posted by Phoenix Rose:
this is quite good, very good in fact. however some of these settings will have to be "updated"

these ones here

scavenge_campaign_autostart = 1
scavenge_drop_radius = 200
scavenge_manager_interval = 1
scavenge_max_autofollow = 2
scavenge_max_bots = 2
scavenge_pour = 1
scavenge_usetarget_debug = 0

are named differently in the new updated "GitHub" version of this mod where you can test some things. so i do hope you update this as im using your settings and i gotta tell you, freaking love them

I might have to wait for smilzo to release the update on Steam first before I can make any definitive change to the settings. Sorry about that :(
KAWAAAHHH 19 Apr, 2024 @ 6:06pm 
can you also do some settings for them using melees and maybe use special weapons (the grenade launcher,chainsaw and lmg i mean, i dunno what you call them rather than tier 3 lol
Phoenix‎ Rose 19 Apr, 2024 @ 7:24pm 
Originally posted by Lim:
Originally posted by Phoenix Rose:
this is quite good, very good in fact. however some of these settings will have to be "updated"

these ones here

scavenge_campaign_autostart = 1
scavenge_drop_radius = 200
scavenge_manager_interval = 1
scavenge_max_autofollow = 2
scavenge_max_bots = 2
scavenge_pour = 1
scavenge_usetarget_debug = 0

are named differently in the new updated "GitHub" version of this mod where you can test some things. so i do hope you update this as im using your settings and i gotta tell you, freaking love them

I might have to wait for smilzo to release the update on Steam first before I can make any definitive change to the settings. Sorry about that :(
good news, the update is released!

you just also need this mod along with it Smilzo made this mod as well

https://steamhost.cn/steamcommunity_com/sharedfiles/filedetails/?id=3226661388

NavFixes. it fixes some nav issues. Smilzo really should add this to "required items" but he hasn't for some reason
Last edited by Phoenix‎ Rose; 19 Apr, 2024 @ 7:24pm
LimmyTastic 19 Apr, 2024 @ 7:41pm 
Originally posted by Phoenix Rose:
Originally posted by Lim:

I might have to wait for smilzo to release the update on Steam first before I can make any definitive change to the settings. Sorry about that :(
good news, the update is released!

you just also need this mod along with it Smilzo made this mod as well

https://steamhost.cn/steamcommunity_com/sharedfiles/filedetails/?id=3226661388

NavFixes. it fixes some nav issues. Smilzo really should add this to "required items" but he hasn't for some reason
All right, I will take a look at the settings when I get back home from work. Do be aware it might take a couple of days since Steam automated check for my post have been unacceptably slow these days. I am quite surprised that this NavFixes isn't integrated
into the Left 4 Bots 2 addon. Is it possible to do that?
Last edited by LimmyTastic; 19 Apr, 2024 @ 7:51pm
LimmyTastic 19 Apr, 2024 @ 8:11pm 
Originally posted by KAWAAAHHH:
can you also do some settings for them using melees and maybe use special weapons (the grenade launcher,chainsaw and lmg i mean, i dunno what you call them rather than tier 3 lol
You can easily edit the weapons perference by yourself. Order of perference from most perferable to least preferable goes from left to right.

For example, if you want Bill to perfer grenade launcher over all other weapons. Then the scripts become like this...

grenade_launcher,rifle,rifle_ak47,rifle_sg552,rifle_desert,shotgun_spas,autoshotgun,sniper_military,hunting_rifle,rifle_m60,smg_mp5,smg_silenced,smg,pumpshotgun,shotgun_chrome,sniper_awp,sniper_scout

Where the grenade_launcher is most perferable since it is the utmost left of this line, followed by rifle (m16).

Say that if Bill have to choose between AK-47 vs M16, he will pick the M16 over the Ak-47 since it is of higher perference to the Ak-47. But if you want him to perfer the AK-47 instead, the the line will become...

grenade_launcher,rifle_ak47,rifle,rifle_sg552,rifle_desert,shotgun_spas,autoshotgun,sniper_military,hunting_rifle,rifle_m60,smg_mp5,smg_silenced,smg,pumpshotgun,shotgun_chrome,sniper_awp,sniper_scout

Notice that the AK-47 is now left of M16, meaning that given two of these choices Bill will choose the AK-47 instead. Of course, if the grenade launcher is on the table instead, then Bill will grab it at the very first opportunity.

I hope that help.

Regard,
Lim
Last edited by LimmyTastic; 19 Apr, 2024 @ 8:34pm
KAWAAAHHH 19 Apr, 2024 @ 8:16pm 
got it, thank you
Phoenix‎ Rose 19 Apr, 2024 @ 8:22pm 
Originally posted by Lim:
Originally posted by Phoenix Rose:
good news, the update is released!

you just also need this mod along with it Smilzo made this mod as well

https://steamhost.cn/steamcommunity_com/sharedfiles/filedetails/?id=3226661388

NavFixes. it fixes some nav issues. Smilzo really should add this to "required items" but he hasn't for some reason
All right, I will take a look at the settings when I get back home from work. Do be aware it might take a couple of days since Steam automated check for my post have been unacceptably slow these days. I am quite surprised that this NavFixes isn't integrated
into the Left 4 Bots 2 addon. Is it possible to do that?
i do not know if it is possible to intergrate it into the addon. im assuming if it was possible the nthe dev would have done so
KAWAAAHHH 19 Apr, 2024 @ 8:24pm 
im guessing its a separated addon (this doesnt fix the bots getting stuck during dead center's cola escort though)
LimmyTastic 20 Apr, 2024 @ 6:22am 
I updated this guide for the 19 April 2024 version of this addon.
KAWAAAHHH 20 Apr, 2024 @ 6:42am 
"the Competitive-Bots+ addon (Make sure that the load_convars = 0, otherwise the Competitive-Bots+ addon WILL NOT work with Left 4 Bots 2)." does it mean i turn off l4b2's convar load?
LimmyTastic 20 Apr, 2024 @ 7:51am 
Originally posted by KAWAAAHHH:
"the Competitive-Bots+ addon (Make sure that the load_convars = 0, otherwise the Competitive-Bots+ addon WILL NOT work with Left 4 Bots 2)." does it mean i turn off l4b2's convar load?
Yes, so that Competitive-Bots+ can load it very own convar inside L4B2 addon.
KAWAAAHHH 20 Apr, 2024 @ 8:13am 
alright, works well
Phoenix‎ Rose 20 Apr, 2024 @ 11:58am 
what does "manual_attack_skill 2" do over "manual_attack_skill 1"?
< >
Showing 1-15 of 298 comments
Per page: 1530 50