Left 4 Dead 2

Left 4 Dead 2

Eco's Gameplay + Bot Tweaks
EcoDoBoteco  [developer] 6 Jul @ 12:41pm
changed cvars
// Miscellaneous
Convars.SetValue("z_head_damage_causes_wounds", "1");
Convars.SetValue("g_ragdoll_lvfadespeed", "1");
Convars.SetValue("g_ragdoll_fadespeed", "1");
Convars.SetValue("cl_ragdoll_limit", "0");
Convars.SetValue("cl_ragdoll_maxcount", "0");
Convars.SetValue("sv_client_min_interp_ratio", "0");
Convars.SetValue("sv_mincmdrate", "10");
Convars.SetValue("sv_minupdaterate", "10");
Convars.SetValue("sv_maxcmdrate", "100");
Convars.SetValue("sv_maxupdaterate", "100");
Convars.SetValue("melee_range", "90");
Convars.SetValue("chainsaw_attack_distance", "70");
Convars.SetValue("decalfrequency", "0");
Convars.SetValue("sv_vote_command_delay", "0");
Convars.SetValue("sv_vote_creation_timer", "0");
Convars.SetValue("director_afk_timeout", "20");

// Survivor AI
Convars.SetValue("allow_all_bot_survivor_team", "1");
Convars.SetValue("sb_all_bot_game", "1");
Convars.SetValue("sb_allow_shoot_through_survivors", "0");
Convars.SetValue("sb_sidestep_for_horde", "1");
Convars.SetValue("sb_battlestation_human_hold_time", "0.4"); // def 4
Convars.SetValue("sb_combat_saccade_speed", "2000"); // def 1000 = bots need 0.18s to turn 180 degrees 1500 = 0.12s 2000 = 0.09s
Convars.SetValue("sb_normal_saccade_speed", "700"); // def 350
Convars.SetValue("sb_debug_apoproach_wait_time", "0.5"); // def 5
Convars.SetValue("sb_enforce_proximity_lookat_timeout", "1"); // def 10
Convars.SetValue("sb_locomotion_wait_threshold", "1"); // def 10
Convars.SetValue("sb_friend_immobilized_reaction_time_normal", "0.2"); // average human reaction time 200-300ms, how quickly a bot realizes a friend has been immobilized
Convars.SetValue("sb_friend_immobilized_reaction_time_hard", "0.15"); // average athlete reaction time
Convars.SetValue("sb_friend_immobilized_reaction_time_expert", "0.1"); // fastest human reaction time recorded
Convars.SetValue("sb_friend_immobilized_reaction_time_vs", "0.1");
Convars.SetValue("sb_path_lookahead_range", "400");
Convars.SetValue("sb_reachability_cache_lifetime", "0.3"); // def 3
Convars.SetValue("sb_reachable_cache_paranoia", "0");
Convars.SetValue("sb_separation_danger_max_range", "600"); A Survivor teammate this far away needs to be gathered back into the group
Convars.SetValue("sb_separation_danger_min_range", "200"); A Survivor teammate this far away is straying from the group
Convars.SetValue("sb_separation_range", "200"); Desired distance between Survivors
Convars.SetValue("sb_threat_very_close_range", "750"); // def 150 (i halved it). very close range for threats
Convars.SetValue("sb_threat_close_range", "1500"); // def 150 close range for threats
Convars.SetValue("sb_close_threat_range", "2000"); // default 200 close range for threats
Convars.SetValue("sb_threat_medium_range", "3000"); // def 300. Too close for comfort, even when neutral
Convars.SetValue("sb_threat_far_range", "6000"); // def 600. Close enough to be a threat if near several other threats
Convars.SetValue("sb_threat_very_far_range", "15000"); // def 1500. Too far to be a threat, even for boss infected, might set to 0xffffff just need to know what it does.

// Infected AI
Convars.SetValue("nb_goal_look_ahead_range", "100"); // def 50, 0xffffff, just need to know what it does first.
Convars.SetValue("nb_path_draw_inc", "200"); // def 100, 0xffffff
Convars.SetValue("nb_path_segment_influence_radius", "200"); // def 100, 0xffffff
Convars.SetValue("nb_saccade_speed", 2000); // def 1000, compensating for surv bots increase.
//Convars.SetValue("nb_saccade_time", 0.1); // def 0.1 CB+ sets it to 0 but idk, keep it at 0.1
Convars.SetValue("nb_update_framelimit", "30"); // doubled framelimit shouldn't have too big of a performance impact
Convars.SetValue("nb_update_frequency", "0.066"); // updates 15x every 1s instead of 10x
Convars.SetValue("nb_update_maxslide", "0"); // def 2
Convars.SetValue("nb_speed_look_ahead_range", "300");

// Boomer
Convars.SetValue("boomer_exposed_time_tolerance", "0.1"); // def 1, 0 is stupid, this should buff reaction time enough.
Convars.SetValue("boomer_vomit_delay", "0.1"); // def 1, 0 is stupid, this should buff reaction time enough.

// Charger
Convars.SetValue("z_charge_warmup", "0.05"); // def 0.5, 0 is stupid, this should buff reaction time enough.

// Hunter
Convars.SetValue("hunter_pounce_max_loft_angle", "90");
Convars.SetValue("hunter_pounce_ready_range", "0");
Convars.SetValue("z_pounce_stumble_radius", "160"); // added the stumble from vs and survival modes to all modes.
Convars.SetValue("z_lunge_reflect", "1");

// Jockey
Convars.SetValue("jockey_pounce_max_loft_angle", "90");
Convars.SetValue("z_jockey_leap_time", "0.5"); // def 1 but leap cooldown is 0.5 so i made bots use the cooldown humans use.
//Convars.SetValue("z_jockey_leap_range", "400"); // removed for compatibilty with jockeys constantly jump
Convars.SetValue("z_jockey_min_ledge_distance", "0"); // jockey will take you to ledges more.

// Smoker
Convars.SetValue("smoker_tongue_delay", "0.15"); // def 1.5, 0 is stupid, this should buff reaction time enough.

// Tank
Convars.SetValue("tank_throw_max_loft_angle", "90");
Convars.SetValue("tank_stuck_time_choose_new_target", "0.4"); // def 2, 20%, not setting it too low so tank doesn't get too "shaky"
Convars.SetValue("tank_stuck_visibility_tolerance_choose_new_target", "1"); // def 5. 20%
Convars.SetValue("tank_ground_pound_duration", "0");
Last edited by EcoDoBoteco; 6 Jul @ 12:42pm