Raised This Month: $ Target: $400
 0% 

[L4D2] Survivor Bot AI Improver


Post New Thread Reply   
 
Thread Tools Display Modes
kooper990
Member
Join Date: Jan 2021
Old 05-15-2024 , 21:32   Re: [L4D2] Survivor Bot AI Improver
Reply With Quote #121

Quote:
Originally Posted by liquidplasma View Post
no, they can still crown it, but they're dumb against tanks yea. however due to their aimbot nature tanks have a hard time against them anyway
Okay, I see.

Then you suggest I remove ACTION files to mitigate the chance of extreme server lag?
kooper990 is offline
liquidplasma
Member
Join Date: May 2023
Old 05-31-2024 , 13:18   Re: [L4D2] Survivor Bot AI Improver
Reply With Quote #122

Quote:
Originally Posted by kooper990 View Post
Then you suggest I remove ACTION files to mitigate the chance of extreme server lag?
Try it
liquidplasma is offline
Kerouha
Member
Join Date: Jul 2015
Location: Russian Federation
Old 08-30-2024 , 18:18   Re: [L4D2] Survivor Bot AI Improver
Reply With Quote #123

Packaged current edited version. Can we get an un-unapprove please?

Requires:
Attached Files
File Type: zip l4d2_sb_ai_improver.zip (178.6 KB, 123 views)
__________________
L4D2 Survivor Bot AI Improver [fork at GitHub]
Kerouha is offline
Mystik Spiral
Senior Member
Join Date: Oct 2020
Location: Orlando, FL
Old 08-31-2024 , 07:58   Re: [L4D2] Survivor Bot AI Improver
Reply With Quote #124

Quote:
Originally Posted by Kerouha View Post
Packaged current edited version. Can we get an un-unapprove please?
I do not have SM 1.12 yet, but I will put it on my test server and try this out. I am particularly interested in this: "Bots are less likely commit absurd backtracking (or deviate far from main path) to grab items."

FWIW, I am currently using an only slightly modified version of the "official" release on my public server, and I am not getting any errors or slowdowns. However, that is only after moving to a far more powerful server (and changing the server from Windows to Ubuntu). On my previous server I was having way too many problems to use it... constant errors and crashes. I am sure a lot of people would appreciate a version that is stable on less powerful servers.

Since it has different prerequisite requirements and CVar names, maybe you should consider your own separate release? Like "Improved Survivor Bot AI Improver" or similar.
__________________
Mystik Spiral is offline
Mystik Spiral
Senior Member
Join Date: Oct 2020
Location: Orlando, FL
Old 08-31-2024 , 17:28   Re: [L4D2] Survivor Bot AI Improver
Reply With Quote #125

@Kerouha

I will keep running tests on my private server over the holiday weekend, then try it on my public server, but my preliminary tests are astounding! I cannot speak to the performance issue because I was not having any, but one of the many things I do to test AI bots is run an all bot team on l4d2_tank_challenge on normal difficulty. Previously, the all bot team would usually fail in level 4, sometimes 5. With your version, the bots are routinely making it to level 9 and sometimes 10!

An all bot team is also able to routinely clear all official campaigns on advanced difficulty, and can clear most official campaigns on expert difficulty without any restarts about 70% of the time.

Outstanding job, very impressed! I definitely think you should create a new thread and post your own version... rather than getting the "official" version un-unapproved.

Disclaimer: I am using your (Kerouha) version of Survivor Bot AI Improver, along with Left 4 Bots 2, my own Healing Alternative and Detonation Control... and very tweaked cfg files for each of them.
__________________

Last edited by Mystik Spiral; 09-01-2024 at 00:06.
Mystik Spiral is offline
Mystik Spiral
Senior Member
Join Date: Oct 2020
Location: Orlando, FL
Old 09-03-2024 , 08:07   Re: [L4D2] Survivor Bot AI Improver
Reply With Quote #126

@Kerouha

Update on my testing... I tweaked a few more settings and for the first time I saw an all bot team complete all ten levels of Tank Challenge (l4d2_tank_challenge) on normal difficulty and they all escaped!

This is running on my public server now.

Try it yourself, connect to my server:
__________________

Last edited by Mystik Spiral; 09-03-2024 at 08:10.
Mystik Spiral is offline
Mika Misori
Senior Member
Join Date: Sep 2022
Old 09-03-2024 , 13:12   Re: [L4D2] Survivor Bot AI Improver
Reply With Quote #127

Quote:
Originally Posted by Kerouha View Post
Packaged current edited version.
Thank you so much for your fork. For the sake of this fork I put SourceMod 1.12 and VScripts on the server : ) I've been testing it for a few days on a dedicated server (hardcore co-op for 4 players). So far so good, no lags, as it was with the original version of the plugin.

Quote:
Originally Posted by Mystik Spiral View Post
I tweaked a few more settings and for the first time I saw an all bot team complete all ten levels of Tank Challenge (l4d2_tank_challenge) on normal difficulty and they all escaped!
On the default config settings, the bots are not as strong as I think they were in the original plugin.
Can you please share your config?

Last edited by Mika Misori; 09-03-2024 at 14:53.
Mika Misori is offline
Kerouha
Member
Join Date: Jul 2015
Location: Russian Federation
Old 09-03-2024 , 14:43   Re: [L4D2] Survivor Bot AI Improver
Reply With Quote #128

Emana202's code remains the plugin's backbone, and while some things under the hood were changed (thus different dependencies), functionally plugins are similar; it's why I wondered if this thread could be reinstated.

I'd like to know how do you measure bots' "strength", and what changes to config have you made to get better results. Any other plugins altering bots' behavior?

AFAIK positioning is important when fighting Tanks, and plugin does not change bots' navigation that much (apart from occasional "dodge rock" and "don't revive").
__________________
L4D2 Survivor Bot AI Improver [fork at GitHub]
Kerouha is offline
Mystik Spiral
Senior Member
Join Date: Oct 2020
Location: Orlando, FL
Old 09-03-2024 , 23:58   Re: [L4D2] Survivor Bot AI Improver
Reply With Quote #129

Although the bots were able to complete all ten levels of l4d2_tank_challenge and escape, they are still really really bad on Tank's Playground (l4d2_tanksplayground). They are not able to track multiple tanks at once. Maybe a future version could improve that.

Anyway, I am using this plugin, the Left 4 Bots 2 mod by smilz0, Healing Alternative, Detonation Control, and several other plugins that are not related to bot behavior. Healing Alternative allows the bots to last longer by preferring pills/adrenaline over first aid kits and Detonation Control to lessen the number of times the bots burn the team to death with a bad molotov throw.

autoexec.cfg (on the server):
HTML Code:
//
//Server options
//
sv_gametypes "coop,realism,nightmaredifficulty"	//allowed game types
sv_steamgroup_exclusive 0			//allow non-steamgroup connections
sv_allow_lobby_connect_only 0			//allow non-lobby connections
sv_allow_wait_command 0				//disable wait command (in scripts)
//sv_lan 0					//disable lan packets
sv_forcepreload 1				//preload clients to avoid in-game lags
sv_pure 2					//all game files must match server
sv_pure_kick_clients 1				//kick clients that have modified game files
sv_search_key ""				//enable match-making

hostfile myhost.txt
motdfile mymotd.txt

//
// Load bans from file into memory
//
exec banned_user.cfg				//load banned user list
exec banned_ip.cfg				//load banded IP addresses

//
// Server logging
//
log on						//enable logging
sv_logbans 1					//log bans
sv_logecho 0					//do not echo logs to console
sv_logfile 1					//include server info in log file
sv_log_onefile 1				//use only one log file

//
//Network tweaks
//
sv_minrate 60000				//minimum bandwidth rate allowed on server
sv_maxrate 60000				//maximum bandwidth rate allowed on server
sv_mincmdrate 60				//client-to-server updates per second minimum (cl_cmdrate)
sv_maxcmdrate 60				//client-to_server updates per second maximum (cl_cmdrate)
net_splitpacket_maxrate 30000			//max bps when queueing splitpacket chunks (default: 15000)
server.cfg (actually l4d2server.cfg):
HTML Code:
sm_cvar sv_hibernate_when_empty 0			//0 = do not hibernate

// SourceTV
//sm_cvar tv_enable 1					//SourceTV enabled
//sm_cvar tv_port 37020					//SourceTV port
//sm_cvar tv_name "SourceTV Broadcast Stream"		//SourceTV bot name
//sm_cvar tv_title "The Tank Broadcast"			//SourceTV stream name
//sm_cvar tv_maxclients 6				//SourceTV max spectators
//sm_cvar tv_delay 1					//SourceTV live delay in seconds
//sm_cvar tv_transmitall 1				//SourceTV transmit all entities (allow auto-director)
//sm_cvar tv_snapshotrate 60				//SourceTV framerate?
//sm_cvar tv_maxrate 0					//SourceTV do not limit transmission rate
//sm_cvar tv_allow_camera_man 0				//SourceTV no camera man
//sm_cvar tv_allow_static_shots 1			//SourceTV allow fixed camera positions

// Hostname for server.
hostname "The Tank [ReverseFF]"
hostfile myhost.txt
motdfile mymotd.txt

//Write bans to disk on map change
writeid							//flush banned id from memory to file
writeip

//Game options
sm_cvar survivor_ff_avoidance 1				//default: 0
sm_cvar survivor_ff_tolerance 1				//default: 26
sm_cvar pain_pills_health_threshold 90			//default: 99
sm_cvar r_spray_lifetime 0				//default: 10

//
//Survivor bot options
//

sm_cvar allow_all_bot_survivor_team 1			//default: 0
sm_cvar sb_all_bot_game 1				//default: 0
sm_cvar sb_allow_leading 1				//default: 0
sm_cvar sb_debug_apoproach_wait_time 0.5		//default: 5
sm_cvar sb_neighbor_range 450				//default: 300
sm_cvar sb_separation_range 155				//default: 200
sm_cvar sb_separation_danger_min_range 135		//default: 200
sm_cvar sb_separation_danger_max_range 1000		//default: 600
sm_cvar sb_locomotion_wait_threshold 0.5		//default: 10
sm_cvar sb_temp_health_consider_factor 0.0		//default: 0.5
sm_cvar sb_toughness_buffer 0				//default: 15
sm_cvar sb_allow_shoot_through_survivors 0		//default: 1
sm_cvar sb_sidestep_for_horde 1				//default: 0
sm_cvar sb_rescue_vehicle_loading_range 50		//default: 300
sm_cvar sb_unstick 1					//default: 1
sm_cvar sb_close_checkpoint_door_interval 0.7		//default: 2
sm_cvar sb_battlestation_human_hold_time 2		//default: 4
sm_cvar sb_battlestation_give_up_range_from_human 750	//default: 1500
sm_cvar sb_max_battlestation_range_from_human 250	//default: 750
sm_cvar sb_enforce_proximity_range 450			//default: 1500

sm_cvar sv_minupdaterate 60				//server-to-client updates per second minimum (cl_updaterate)
sm_cvar sv_maxupdaterate 60				//server-to-client updates per second maximum (cl_updaterate)
sm_cvar sv_client_min_interp_ratio -1			//artificial latency for lag compensation (cl_interp_ratio)
sm_cvar sv_client_max_interp_ratio 0			//artificial latency for lag compensation (cl_interp_ratio)
sm_cvar sv_client_predict 1                 		//this is already set on clients, but force them to predict
sm_cvar sv_allowupload 0				//block sprays
sm_cvar sv_allowdownload 0				//block sprays
sm_cvar sv_hibernate_when_empty 0			//0 = do not hibernate
l4d2_improved_bots.cfg:

HTML Code:
// This file was auto-generated by SourceMod (v1.12.0.7157)
// ConVars for plugin "l4d2_sb_ai_improver.smx"


// If enabled, survivor bot will keep holding the prop it currently has unless it's swarmed by a mob, every teammate needs help, or it wants to use an item.
// -
// Default: "1"
// Minimum: "0.000000"
// Maximum: "1.000000"
ib_alwayscarryprop "0"

// If your server has weapons with modified ammo types/amounts, put them here in a following format: "weapon_id:ammo_max weapon_id:ammo_max ..."
// -
// Default: ""
ib_ammotype_override ""

// Makes survivor bots automatically shove every nearby infected. <0: Disabled, 1: All infected, 2: Only if infected is behind them>
// -
// Default: "1"
// Minimum: "0.000000"
// Maximum: "2.000000"
ib_autoshove_enabled "1"

// If bots should change their primary weapon to other one if they're using CSS weapons.
// -
// Default: "0"
// Minimum: "0.000000"
// Maximum: "1.000000"
ib_avoid_css "0"

// If bots should avoid and retreat from tanks that are nearby punchable props like cars.
// -
// Default: "1"
// Minimum: "0.000000"
// Maximum: "1.000000"
ib_avoidtanksnearpunchableprops "1"

// Spam console/chat in hopes of finding a a clue for your problems. Prints WILL LAG on Windows GUI!
// -
// Default: "0"
// Minimum: "0.000000"
// Maximum: "15.000000"
ib_debug "0"

// Range at which survivor's dead body should be for bot to consider it reviveable.
// -
// Default: "2000"
// Minimum: "0.000000"
ib_defib_revive_distance "2000"

// Enable bots reviving dead players with defibrillators if they have one available.
// -
// Default: "1"
// Minimum: "0.000000"
// Maximum: "1.000000"
ib_defib_revive_enabled "1"

// If bots should deploy their upgrade pack when available and not in combat.
// -
// Default: "1"
// Minimum: "0.000000"
// Maximum: "1.000000"
ib_deployupgradepacks "0"

// If bots shouldn't switch to their pistol while they have sniper rifle equiped.
// -
// Default: "0"
// Minimum: "0.000000"
// Maximum: "1.000000"
ib_dontswitchtopistol "1"

// Enables survivor bots's charger dodging behavior.
// -
// Default: "1"
// Minimum: "0.000000"
// Maximum: "1.000000"
ib_evade_charge "1"

// Enables survivor bots' improved spitter acid evasion
// -
// Default: "1"
// Minimum: "0.000000"
// Maximum: "1.000000"
ib_evade_spit "1"

// Distance at which item should be for bot to move it.
// -
// Default: "300"
// Minimum: "0.000000"
ib_grab_distance "300"

// Enable improved bot item scavenging for specified items. <0: Disable, 1: Pipe Bomb, 2: Molotov, 4: Bile Bomb, 8: Medkit, 16: Defibrillator, 32: UpgradePack, 64: Pain Pills, 128: Adrenaline, 256: Laser Sights, 512: Ammopack, 1024: Ammopile, 2048: Chainsaw
// -
// Default: "16383"
// Minimum: "0.000000"
// Maximum: "16383.000000"
ib_grab_enabled "16383"

// How close should the item be to the survivor bot to able to count it when searching?
// -
// Default: "2500"
// Minimum: "0.000000"
ib_grab_mapsearchdistance "2500"

// If enabled, objects with certain models will be considered as scavengeable items.
// -
// Default: "0"
// Minimum: "0.000000"
// Maximum: "1.000000"
ib_grab_models "0"

// The bots' scavenge distance is multiplied to this value when there's no human players left in the team.
// -
// Default: "1.2"
// Minimum: "0.000000"
ib_grab_nohumans_rangemultiplier "1.2"

// Distance at which item should be for bot to able to pick it up.
// -
// Default: "100"
// Minimum: "0.000000"
ib_grab_pickup_distance "100"

// Distance at which a visible item should be for bot to move it.
// -
// Default: "600"
// Minimum: "0.000000"
ib_grab_visible_distance "600"

// Enables survivor bots throwing grenades.
// -
// Default: "1"
// Minimum: "0.000000"
// Maximum: "1.000000"
ib_gren_enabled "0"

// Infected count required to throw grenade Multiplier (Value * SurvivorCount).
// -
// Default: "5.0"
// Minimum: "1.000000"
ib_gren_horde_size_multiplier "5.0"

// Second number to pick to randomize next grenade throw time.
// -
// Default: "30"
// Minimum: "0.000000"
ib_gren_next_throw_time_max "30"

// First number to pick to randomize next grenade throw time.
// -
// Default: "20"
// Minimum: "0.000000"
ib_gren_next_throw_time_min "20"

// Range at which target needs to be for bot to throw grenade at it.
// -
// Default: "1500"
ib_gren_throw_range "1500"

// What grenades should survivor bots throw? <1: Pipe-Bomb, 2: Molotov, 4: Bile Bomb. Add numbers together.>
// -
// Default: "7"
// Minimum: "1.000000"
// Maximum: "7.000000"
ib_gren_types "7"

// Makes survivor bots force attack pinned survivor's SI if possible. <0: Disabled, 1: Shoot at attacker, 2: Shove the attacker if close enough. Add numbers together.>
// -
// Default: "3"
// Minimum: "0.000000"
// Maximum: "3.000000"
ib_help_pinned_enabled "3"

// Range at which bots will start firing at SI.
// -
// Default: "2000"
// Minimum: "0.000000"
ib_help_pinned_shootrange "2000"

// Range at which bots will start to bash SI.
// -
// Default: "75"
// Minimum: "0.000000"
ib_help_pinned_shoverange "75"

// If bots shouldn't stop moving in combat when there's no human players in team.
// -
// Default: "1"
// Minimum: "0.000000"
// Maximum: "1.000000"
ib_keepmovingincombat "1"

// Range at which bot's target should be to start taking aim at it.
// -
// Default: "125"
// Minimum: "0.000000"
ib_melee_aim_range "125"

// Range at which bot's target should be to approach it. <0: Disable Approaching>
// -
// Default: "120"
// Minimum: "0.000000"
ib_melee_approach_range "10"

// Range at which bot's target should be to start attacking it.
// -
// Default: "70"
// Minimum: "0.000000"
ib_melee_attack_range "70"

// The total number of chainsaws allowed on the team. <0: Bots never use chainsaw>
// -
// Default: "1"
// Minimum: "0.000000"
ib_melee_chainsaw_limit "1"

// The nearby infected count required for bot to switch to chainsaw.
// -
// Default: "6"
// Minimum: "1.000000"
ib_melee_chainsaw_switch_count "6"

// Enables survivor bots' improved melee behaviour.
// -
// Default: "1"
// Minimum: "0.000000"
// Maximum: "1.000000"
ib_melee_enabled "1"

// The total number of melee weapons allowed on the team. <0: Bots never use melee>
// -
// Default: "2"
// Minimum: "0.000000"
ib_melee_max_team "2"

// Chance for bot to bash target instead of attacking with melee. <0: Disable Bashing>
// -
// Default: "4"
// Minimum: "0.000000"
ib_melee_shove_chance "2"

// The nearby infected count required for bot to switch to their melee weapon.
// -
// Default: "3"
// Minimum: "1.000000"
ib_melee_switch_count "3"

// Range at which bot's target should be to switch to melee weapon.
// -
// Default: "250"
// Minimum: "0.000000"
ib_melee_switch_range "100"

// Makes survivor bots change their grenade type if there's too much of the same one, Ex. Pipe-Bomb to Molotov.
// -
// Default: "1"
// Minimum: "0.000000"
// Maximum: "1.000000"
ib_mix_grenades "0"

// Makes survivor bots change their primary weapon subtype if there's too much of the same one, Ex. change AK-47 to M16 or SPAS-12 to Autoshotgun.
// -
// Default: "1"
// Minimum: "0.000000"
// Maximum: "1.000000"
ib_mix_primaries "0"

// If enabled, survivor bots won't take fall damage if they were climbing a ladder just before that.
// -
// Default: "0"
// Minimum: "0.000000"
// Maximum: "1.000000"
ib_nofalldmgonladderfail "1"

// Bot Bill's weapon preference. <0: Default, 1: Assault Rifle, 2: Shotgun, 3: Sniper Rifle, 4: SMG, 5: Secondary Weapon>
// -
// Default: "1"
// Minimum: "0.000000"
// Maximum: "5.000000"
ib_pref_bill "1"

// Bot Coach's weapon preference. <0: Default, 1: Assault Rifle, 2: Shotgun, 3: Sniper Rifle, 4: SMG, 5: Secondary Weapon>
// -
// Default: "2"
// Minimum: "0.000000"
// Maximum: "5.000000"
ib_pref_coach "2"

// Bot Ellis's weapon preference. <0: Default, 1: Assault Rifle, 2: Shotgun, 3: Sniper Rifle, 4: SMG, 5: Secondary Weapon>
// -
// Default: "3"
// Minimum: "0.000000"
// Maximum: "5.000000"
ib_pref_ellis "3"

// Bot Francis's weapon preference. <0: Default, 1: Assault Rifle, 2: Shotgun, 3: Sniper Rifle, 4: SMG, 5: Secondary Weapon>
// -
// Default: "2"
// Minimum: "0.000000"
// Maximum: "5.000000"
ib_pref_francis "2"

// Bot Louis's weapon preference. <0: Default, 1: Assault Rifle, 2: Shotgun, 3: Sniper Rifle, 4: SMG, 5: Secondary Weapon>
// -
// Default: "1"
// Minimum: "0.000000"
// Maximum: "5.000000"
ib_pref_louis "1"

// If every survivor bot should only use magnum instead of regular pistol if possible.
// -
// Default: "0"
// Minimum: "0.000000"
// Maximum: "1.000000"
ib_pref_magnums_only "0"

// Bot Nick's weapon preference. <0: Default, 1: Assault Rifle, 2: Shotgun, 3: Sniper Rifle, 4: SMG, 5: Secondary Weapon>
// -
// Default: "1"
// Minimum: "0.000000"
// Maximum: "5.000000"
ib_pref_nick "1"

// Bot Rochelle's weapon preference. <0: Default, 1: Assault Rifle, 2: Shotgun, 3: Sniper Rifle, 4: SMG, 5: Secondary Weapon>
// -
// Default: "1"
// Minimum: "0.000000"
// Maximum: "5.000000"
ib_pref_rochelle "1"

// Bot Zoey's weapon preference. <0: Default, 1: Assault Rifle, 2: Shotgun, 3: Sniper Rifle, 4: SMG, 5: Secondary Weapon>
// -
// Default: "3"
// Minimum: "0.000000"
// Maximum: "5.000000"
ib_pref_zoey "3"

// Bots' data computing time delay (infected count, nearby friends, etc). Increasing the value might help increasing the game performance, but slow down bots.
// -
// Default: "0.2"
// Minimum: "0.033000"
ib_process_time "0.1"

// Enables survivor bots shooting tank's thrown rocks.
// -
// Default: "1"
// Minimum: "0.000000"
// Maximum: "1.000000"
ib_shootattankrocks_enabled "1"

// Range at which rock needs to be for bot to start shooting at it.
// -
// Default: "1500"
// Minimum: "0.000000"
ib_shootattankrocks_range "1500"

// Chance at which survivor bot may shove after firing a bolt-action sniper rifle. <0: Disabled, 1: Always>
// -
// Default: "3"
// Minimum: "0.000000"
ib_shove_chance_css "2"

// Chance at which survivor bot may shove after firing a pump-action shotgun. <0: Disabled, 1: Always>
// -
// Default: "4"
// Minimum: "0.000000"
ib_shove_chance_pump "2"

// The total number of grenade launchers allowed on the team. <0: Bots never use grenade launcher>
// -
// Default: "2"
// Minimum: "0.000000"
ib_t3_limit_gl "0"

// The total number of M60s allowed on the team. <0: Bots never use M60>
// -
// Default: "2"
// Minimum: "0.000000"
ib_t3_limit_m60 "1"

// Should bots pick up ammo when carrying a Tier 3 weapon? Keep disabled if your server does not allow that. <0: Disabled, 1: Grenade Launcher, 2: M60, 3: Both>
// -
// Default: "3"
// Minimum: "0.000000"
// Maximum: "3.000000"
ib_t3_refill "2"

// If bots should take cover from tank's thrown rocks.
// -
// Default: "1"
// Minimum: "0.000000"
// Maximum: "1.000000"
ib_takecoverfromtankrocks "1"

// Enables survivor bots' improved target selection.
// -
// Default: "1"
// Minimum: "0.000000"
// Maximum: "1.000000"
ib_targeting_enabled "1"

// If bots shouldn't target common infected that are currently not attacking survivors.
// -
// Default: "1"
// Minimum: "0.000000"
// Maximum: "1.000000"
ib_targeting_ignoredociles "1"

// Range at which target need to be for bots to start firing at it.
// -
// Default: "2000"
// Minimum: "0.000000"
ib_targeting_range "2000"

// Range at which target need to be for bots to start firing at it with secondary weapon.
// -
// Default: "1500"
// Minimum: "0.000000"
ib_targeting_range_pistol "1500"

// Range at which target need to be for bots to start firing at it with shotgun.
// -
// Default: "750"
// Minimum: "0.000000"
ib_targeting_range_shotgun "750"

// Range at which target need to be for bots to start firing at it with sniper rifle.
// -
// Default: "3000"
// Minimum: "0.000000"
ib_targeting_range_sniperrifle "3000"

// The field of view of survivor bots.
// -
// Default: "75.0"
// Minimum: "0.000000"
// Maximum: "180.000000"
ib_vision_fov "75.0"

// The time required for bots to notice enemy target is multiplied to this value.
// -
// Default: "1.1"
// Minimum: "0.000000"
// Maximum: "4.000000"
ib_vision_noticetimescale "1.1"

// Allows survivor bots to crown witch on their path if they're holding any shotgun type weapon. <0: Disabled; 1: Only if survivor team doesn't have any human players; 2:Enabled>
// -
// Default: "1"
// Minimum: "0.000000"
// Maximum: "2.000000"
ib_witchbehavior_allowcrowning "0"

// Survivor bots will start walking near witch if they're this range near her and she's not disturbed. <0: Disabled>
// -
// Default: "0"
// Minimum: "0.000000"
ib_witchbehavior_walkwhennearby "0"
settings.txt (for Left 4 Bots 2):
HTML Code:
anti_pipebomb_bug = 1
automation_autostart = 1
automation_debug = 0
bot_think_interval = -1
carry_debug = 0
chat_bg_chance = 50
chat_bg_lines = "bg,:(,:'("
chat_gg_chance = 70
chat_gg_lines = "gg,GG,gg,GGG,gg,ggs,gg,GG,gg"
chat_hello_chance = 85
chat_hello_replies = "hi,hello,hey,hi dude,wassup,hi,hello,hi,ciao"
chat_hello_triggers = "hi,hello,hey,hi guys,hi all,hey guys,yo,ciao"
close_saferoom_door = 1
close_saferoom_door_all_chance = 50
close_saferoom_door_behind_range = 400
close_saferoom_door_distance = 70
close_saferoom_door_highres = 0
damage_barricade = 1
damage_other = 0
deads_scan_defibradius = 0
deads_scan_maxaltdiff = 320
deads_scan_radius = 0
deploy_upgrades = 1
die_humans_alive = 1
dodge_charger = 0
dodge_charger_diffangle = 10
dodge_charger_distdelay_factor = 0.0006
dodge_charger_maxdistance = 600
dodge_charger_mindistance = 80
dodge_rock = 0
dodge_rock_diffangle = 8
dodge_rock_maxdistance = 600
dodge_rock_mindistance = 140
dodge_spit = 0
dodge_spit_radius = 150
door_failsafe_delay = 0.15
fall_velocity_warp = 0
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 = 0
give_bots_nades = 0
give_bots_pills = 0
give_bots_upgrades = 0
give_bots_weapons = 0
give_humans_meds = 0
give_humans_nades = 0
give_max_range = 270
handle_l4d1_survivors = 2
heal_force = 0
heal_interrupt_minhealth = 99
heal_spare_medkits_radius = 500
horde_nades_chance = 30
horde_nades_maxaltdiff = 120
horde_nades_radius = 450
horde_nades_size = 10
hurry_time = 15
items_not_to_avoid = 1
jockey_redirect_damage = 40
lead_check_ground = 0
lead_debug_duration = 0
lead_detour_maxdist = 10000
lead_dontstop_ondamaging = 1
lead_max_segment = 400
lead_max_separation = 300
lead_min_segment = 100
lead_pause_behind_dist = 250
lead_vocalize_interval = 50
load_convars = 0
loglevel = 0
manual_attack_always = 1
manual_attack_mindot = 0.9
manual_attack_radius = 1100
manual_attack_skill = 3
move_end_radius = 30
move_end_radius_defib = 80
move_end_radius_door = 100
move_end_radius_follow = 50
move_end_radius_heal = 80
move_end_radius_lead = 110
move_end_radius_pour = 16
move_end_radius_scavenge = 80
move_end_radius_wait = 100
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 = 1.75
pickups_failsafe_delay = 0.15
pickups_max_separation = 325
pickups_melee_noprimary = 1
pickups_min_interval = 8.8
pickups_pick_range = 90
pickups_pistol_dual = 1
pickups_scan_radius = 300
pickups_wep_always = 1
pickups_wep_ammo_replenish = 80
pickups_wep_min_ammo = 10
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 = 1
scavenge_manager_interval = 0.5
scavenge_max_autofollow = 2
scavenge_max_bots = 2
scavenge_pour = 1
scavenge_usetarget_debug = 0
shoot_rock = 0
shoot_rock_ahead = 4
shoot_rock_diffangle = 8
should_hurry = 1
shove_commons_deltapitch = -6
shove_commons_radius = 35
shove_deadstop_chance = 95
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 = 0.5
stuck_debug = 0
stuck_detection = 1
stuck_nomove_unstuck = 1
stuck_range = 100
stuck_time = 2.4
t3_ammo_bots = 1
t3_ammo_human = 1
tank_molotov_chance = 25
tank_retreat_radius = 525
tank_throw_deltapitch = 3
tank_throw_min_health = 1500
tank_throw_range_max = 1300
tank_throw_range_min = 200
tank_throw_survivors_mindistance = 300
tank_vomitjar_chance = 0
team_max_chainsaws = 1
team_max_melee = 2
team_min_defibs = 0
team_min_medkits = 3
team_min_molotovs = 3
team_min_pipebombs = 1
team_min_shotguns = 1
team_min_vomitjars = 0
thinkers_think_interval = -1
throw_molotov = 1
throw_molotov_interval = 8
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 = 1
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 = 30
vocalizer_lead_start = "PlayerFollowMe,PlayerMoveOn,PlayerEmphaticGo"
vocalizer_lead_stop = "PlayerAnswerLostCall,PlayerLostCall,PlayerStayTogether,PlayerLeadOn"
vocalizer_onpause_horde_chance = 30
vocalizer_onpause_special_chance = 70
vocalizer_onpause_tank_chance = 90
vocalizer_onpause_witch_chance = 80
vocalizer_sorry_chance = 80
vocalizer_thanks_chance = 90
vocalizer_yes = "PlayerYes,SurvivorBotYesReady"
vocalizer_youwelcome_chance = 90
wait_crouch = 0
wait_nopause = 0
witch_autocrown = 1
l4d_det_cntrl:
HTML Code:
// This file was auto-generated by SourceMod (v1.12.0.7157)
// ConVars for plugin "l4d_det_cntrl.smx"


// 0=Plugin off, 1=Plugin on.
// -
// Default: "1"
l4d_detctl_enabled "1"

// Display gascan chat messages
// -
// Default: "1"
l4d_detctl_gascan_chat_msgs "1"

// Block gascan detonation if any survivor would be burned
// -
// Default: "1"
l4d_detctl_gascan_enable "1"

// Gascan vector incap proximity
// -
// Default: "275"
l4d_detctl_gascan_vec_incap_prox "275"

// Gascan vector other proximity
// -
// Default: "170"
l4d_detctl_gascan_vec_other_prox "100"

// Gascan vector self proximity
// -
// Default: "120"
l4d_detctl_gascan_vec_self_prox "40"

// Gascan vertical incap proximity
// -
// Default: "160"
l4d_detctl_gascan_vert_incap_prox "160"

// Gascan vertical other proximity
// -
// Default: "150"
l4d_detctl_gascan_vert_other_prox "150"

// Gascan vertical self proximity
// -
// Default: "100"
l4d_detctl_gascan_vert_self_prox "100"

// Game mode names off, comma separated, no spaces. (Empty = none).
// -
// Default: ""
l4d_detctl_modes_off ""

// Game mode names on, comma separated, no spaces. (Empty = all).
// -
// Default: ""
l4d_detctl_modes_on ""

// Game type bitflags on, add #s together. 0=All, 1=Coop, 2=Survival, 4=Versus, 8=Scavenge
// -
// Default: "0"
l4d_detctl_modes_tog "0"

// Display molotov chat messages
// -
// Default: "1"
l4d_detctl_molotov_chat_msgs "1"

// Block molotov detonation if any survivor would be burned
// -
// Default: "1"
l4d_detctl_molotov_enable "1"

// Molotov vector incap proximity
// -
// Default: "275"
l4d_detctl_molotov_vec_incap_prox "275"

// Molotov vector other proximity
// -
// Default: "170"
l4d_detctl_molotov_vec_other_prox "100"

// Molotov vector self proximity
// -
// Default: "120"
l4d_detctl_molotov_vec_self_prox "40"

// Molotov vertical incap proximity
// -
// Default: "160"
l4d_detctl_molotov_vert_incap_prox "160"

// Molotov vertical other proximity
// -
// Default: "150"
l4d_detctl_molotov_vert_other_prox "150"

// Molotov vertical self proximity
// -
// Default: "100"
l4d_detctl_molotov_vert_self_prox "100"
l4d2_HealAlt.cfg:

HTML Code:
// This file was auto-generated by SourceMod (v1.12.0.7157)
// ConVars for plugin "l4d2_HealAlt.smx"


// 0=Plugin off, 1=Plugin on.
// -
// Default: "1"
HealAlt_enabled "1"

// Game mode names off, comma separated, no spaces. (Empty=none).
// -
// Default: ""
HealAlt_modes_off ""

// Game mode names on, comma separated, no spaces. (Empty=all).
// -
// Default: ""
HealAlt_modes_on ""

// Game type bitflags on, add #s together. 0=All, 1=Coop, 2=Survival, 4=Versus, 8=Scavenge
// -
// Default: "1"
HealAlt_modes_tog "1"
One of the key features of Survivor Bot AI Improver is doging rocks and shooting rocks, and preventing bots from rushing to pickup an incapped survivor when it means running into the tank and getting themselves incapped too.
__________________
Mystik Spiral is offline
XENORT
New Member
Join Date: Sep 2024
Old 09-05-2024 , 12:48   Re: [L4D2] Survivor Bot AI Improver
Reply With Quote #130

Quote:
Originally Posted by Kerouha View Post
Packaged current edited version. Can we get an un-unapprove please?

Requires:
Could be an issue on my end, but I can't compile the plugin for some reason. I'm using latest SourceMod, Left 4 DHooks, Actions, SourceScramble and VScript versions. Whenever I compile "l4d2_sb_ai_improver.sp" I get this:
Code:
//// l4d2_sb_ai_improver.sp
//
// D:\Data\Steam\steamapps\common\Left 4 Dead 2\left4dead2\addons\sourcemod\scripting\include\vscript.inc(11) : error 021: symbol already defined: "fieldtype_t"
//     11 | enum fieldtype_t
// ---------^
//
// D:\Data\Steam\steamapps\common\Left 4 Dead 2\left4dead2\addons\sourcemod\scripting\include\vscript.inc(13) : error 021: symbol already defined: "FIELD_VOID"
//     13 |     FIELD_VOID,
// ----------^
//
// D:\Data\Steam\steamapps\common\Left 4 Dead 2\left4dead2\addons\sourcemod\scripting\include\vscript.inc(14) : error 021: symbol already defined: "FIELD_FLOAT"
//     14 |     FIELD_FLOAT,
// ----------^
//
// D:\Data\Steam\steamapps\common\Left 4 Dead 2\left4dead2\addons\sourcemod\scripting\include\vscript.inc(15) : error 021: symbol already defined: "FIELD_VECTOR"
//     15 |     FIELD_VECTOR,
// ----------^
//
// D:\Data\Steam\steamapps\common\Left 4 Dead 2\left4dead2\addons\sourcemod\scripting\include\vscript.inc(16) : error 021: symbol already defined: "FIELD_INTEGER"
//     16 |     FIELD_INTEGER,
// ----------^
//
// D:\Data\Steam\steamapps\common\Left 4 Dead 2\left4dead2\addons\sourcemod\scripting\include\vscript.inc(17) : error 021: symbol already defined: "FIELD_BOOLEAN"
//     17 |     FIELD_BOOLEAN,
// ----------^
//
// D:\Data\Steam\steamapps\common\Left 4 Dead 2\left4dead2\addons\sourcemod\scripting\include\vscript.inc(19) : error 021: symbol already defined: "FIELD_CSTRING"
//     19 |     FIELD_CSTRING,
// ----------^
//
// D:\Data\Steam\steamapps\common\Left 4 Dead 2\left4dead2\addons\sourcemod\scripting\include\vscript.inc(22) : error 021: symbol already defined: "FIELD_QANGLE"
//     22 |     FIELD_QANGLE,
// ----------^
//
// 8 Errors.
//
// Compilation Time: 0,67 sec
// ----------------------------------------
I know I really shouldn't do that, but I tried to ""fix"" the errors by deleting referenced symbols from vscript.inc, which allowed the plugin to finally compile, but now I get this error while ingame:
Code:
L 09/05/2024 - 17:02:59: SourceMod error session started
L 09/05/2024 - 17:02:59: Info (map "c2m2_fairgrounds") (file "D:\Data\Steam\steamapps\common\Left 4 Dead 2\left4dead2\addons\sourcemod\logs\errors_20240905.log")
L 09/05/2024 - 17:02:59: [SM] Exception reported: Invalid field type 'FIELD_VOID' for SDKPassMethod
L 09/05/2024 - 17:02:59: [SM] Blaming: vscript.smx
L 09/05/2024 - 17:02:59: [SM] Call stack trace:
L 09/05/2024 - 17:02:59: [SM]   [0] ThrowError
L 09/05/2024 - 17:02:59: [SM]   [1] Line 91, vscript\field.sp::Field_GetSDKPassMethod
L 09/05/2024 - 17:02:59: [SM]   [2] Line 270, vscript\function.sp::Function_CreateSDKCall
L 09/05/2024 - 17:02:59: [SM]   [3] Line 57, vscript\binding.sp::Binding_SetCustom
L 09/05/2024 - 17:02:59: [SM]   [4] Line 419, D:\Data\Steam\steamapps\common\Left 4 Dead 2\left4dead2\addons\sourcemod\scripting\vscript.sp::Native_Function_SetFunctionEmpty
L 09/05/2024 - 17:02:59: [SM]   [6] VScriptFunction.SetFunctionEmpty
L 09/05/2024 - 17:02:59: [SM]   [7] Line 1350, D:\Data\Steam\steamapps\common\Left 4 Dead 2\left4dead2\addons\sourcemod\scripting\l4d2_sb_ai_improver.sp::CreateVScriptCommandDetour
L 09/05/2024 - 17:02:59: [SM]   [8] Line 4586, D:\Data\Steam\steamapps\common\Left 4 Dead 2\left4dead2\addons\sourcemod\scripting\l4d2_sb_ai_improver.sp::OnMapStart
L 09/05/2024 - 17:06:12: Error log file session closed.
Any help will be appreciated.
XENORT is offline
Reply


Thread Tools
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump


All times are GMT -4. The time now is 04:12.


Powered by vBulletin®
Copyright ©2000 - 2024, vBulletin Solutions, Inc.
Theme made by Freecode