#base robot_standard.pop #base robot_giant.pop WaveSchedule { StartingCurrency 400 CanBotsAttackWhileInSpawnRoom no RespawnWaveTime 3 AddSentryBusterWhenDamageDealtExceeds 3000 AddSentryBusterWhenKillCountExceeds 15 Templates {} PrecacheModel "models/props_cuba/gameplay_cosmetic/scout_bot_brazilium.mdl" PrecacheModel "models/props_cuba/gameplay_cosmetic/scout_bot_brazilium.mdl" PrecacheModel "models/props_cuba/gameplay_cosmetic/sniper_bot_brazilium.mdl" PrecacheModel "models/props_cuba/gameplay_cosmetic/soldier_bot_brazilium.mdl" PrecacheModel "models/props_cuba/gameplay_cosmetic/demo_bot_brazilium.mdl" PrecacheModel "models/props_cuba/gameplay_cosmetic/medic_bot_brazilium.mdl" PrecacheModel "models/props_cuba/gameplay_cosmetic/heavy_bot_brazilium.mdl" PrecacheModel "models/props_cuba/gameplay_cosmetic/pyro_bot_brazilium.mdl" PrecacheModel "models/props_cuba/gameplay_cosmetic/spy_bot_brazilium.mdl" PrecacheModel "models/props_cuba/gameplay_cosmetic/engineer_bot_brazilium.mdl" PrecacheModel "models/props_cuba/gameplay_cosmetic/scout_bot_brazilium_boss.mdl" PrecacheModel "models/props_cuba/gameplay_cosmetic/scout_bot_brazilium_boss.mdl" PrecacheModel "models/props_cuba/gameplay_cosmetic/sniper_bot_brazilium_boss.mdl" PrecacheModel "models/props_cuba/gameplay_cosmetic/soldier_bot_brazilium_boss.mdl" PrecacheModel "models/props_cuba/gameplay_cosmetic/demo_bot_brazilium_boss.mdl" PrecacheModel "models/props_cuba/gameplay_cosmetic/medic_bot_brazilium_boss.mdl" PrecacheModel "models/props_cuba/gameplay_cosmetic/heavy_bot_brazilium_boss.mdl" PrecacheModel "models/props_cuba/gameplay_cosmetic/pyro_bot_brazilium_boss.mdl" PrecacheModel "models/props_cuba/gameplay_cosmetic/spy_bot_brazilium_boss.mdl" PrecacheModel "models/props_cuba/gameplay_cosmetic/engineer_bot_brazilium_boss.mdl" Mission // For Wave { Where spawnbot_mission_sentrybuster Objective DestroySentries // Engineer,Sniper,Spy,DestroySentries BeginAtWave 1 RunForThisManyWaves 7 DesiredCount 2 InitialCooldown 20 CooldownTime 35 TFBot { Template T_TFBot_SentryBuster } } Mission // For Wave # { Where spawnbot_mission_sniper Objective Sniper // Engineer,Sniper,Spy,DestroySentries BeginAtWave 3 RunForThisManyWaves 3 DesiredCount 2 InitialCooldown 20 CooldownTime 35 TFBot { Template T_TFBot_Sniper } } Mission // For Wave # { Where spawnbot_mission_spy Objective Spy // Engineer,Sniper,Spy,DestroySentries BeginAtWave 3 RunForThisManyWaves 1 DesiredCount 2 InitialCooldown 60 CooldownTime 35 TFBot { Template T_TFBot_Spy } } Mission // For Wave # { Where spawnbot_mission_spy Objective Spy // Engineer,Sniper,Spy,DestroySentries BeginAtWave 4 RunForThisManyWaves 1 DesiredCount 4 InitialCooldown 60 CooldownTime 60 TFBot { Template T_TFBot_Spy } } Mission // For Wave # { Where spawnbot Objective Engineer // Engineer,Sniper,Spy,DestroySentries BeginAtWave 2 RunForThisManyWaves 1 DesiredCount 2 InitialCooldown 90 CooldownTime 35 TFBot { Template T_TFBot_Engineer_Sentry_Battle_TeleIn } } Mission // For Wave # { Where spawnbot_mission_spy Objective Spy // Engineer,Sniper,Spy,DestroySentries BeginAtWave 5 RunForThisManyWaves 1 DesiredCount 2 InitialCooldown 60 CooldownTime 45 TFBot { Template T_TFBot_Spy } } Mission // For Wave # { Where spawnbot Objective Engineer // Engineer,Sniper,Spy,DestroySentries BeginAtWave 5 RunForThisManyWaves 1 DesiredCount 1 InitialCooldown 90 CooldownTime 35 TFBot { Template T_TFBot_Engineer_Sentry_Battle_TeleIn } } Mission // For Wave # { Where spawnbot_mission_spy Objective Spy // Engineer,Sniper,Spy,DestroySentries BeginAtWave 6 RunForThisManyWaves 1 DesiredCount 3 InitialCooldown 30 CooldownTime 45 TFBot { Template T_TFBot_Spy } } Mission // For Wave # { Where spawnbot Objective Engineer // Engineer,Sniper,Spy,DestroySentries BeginAtWave 6 RunForThisManyWaves 1 DesiredCount 1 InitialCooldown 60 CooldownTime 20 TFBot { Template T_TFBot_Engineer_Sentry_Battle_TeleIn } } Wave // Wave 1 { StartWaveOutput { Target wave_start_relay Action Trigger } DoneOutput { Target wave_finished_relay Action Trigger } WaveSpawn { Name "w1a" WaitForAllDead "" Where spawnbot TotalCount 14 MaxActive 14 SpawnCount 1 WaitBeforeStarting 0 WaitBetweenSpawns 0 TotalCurrency 100 TFBot { Template T_TFBot_Scout_Melee ClassIcon scout_bat_nys } } WaveSpawn { Name "" WaitForAllDead "" Where spawnbot TotalCount 6 MaxActive 6 SpawnCount 6 WaitBeforeStarting 1 WaitBetweenSpawns 0 TotalCurrency 50 Support Limited TFBot { Template T_TFBot_Medic_BigHeal } } WaveSpawn // Tank # HP { Name "w1b" WaitForAllSpawned "w1a" TotalCount 1 MaxActive 1 SpawnCount 1 WaitBeforeStarting 18 WaitBetweenSpawns 0 TotalCurrency 150 Tank { Name "tankboss" StartingPathTrackNode "boss_path_1" Health 15000 Speed 75 Skin 0 OnKilledOutput {} OnBombDroppedOutput { Target boss_deploy_relay Action Trigger } } } WaveSpawn { Name "w1ba" WaitForAllDead "w1a" Where spawnbot TotalCount 32 MaxActive 12 SpawnCount 4 WaitBeforeStarting 0 WaitBetweenSpawns 5 TotalCurrency 200 Squad { TFBot { Template T_TFBot_Scout_Sandman_FastCharge ClassIcon scout_stun_giant_armored Scale 1.4 Name "Armored League Scout" Health 650 } TFBot { Class Soldier Skill Hard } TFBot { Class Soldier Skill Hard } TFBot { Class Soldier Skill Hard } } } WaveSpawn { Name "" WaitForAllDead "w1a" Where spawnbot3 TotalCount 8 MaxActive 8 SpawnCount 2 WaitBeforeStarting 15 WaitBetweenSpawns 8 TotalCurrency 25 TFBot { Template T_TFBot_Scout_Bonk } } WaveSpawn { Name "" WaitForAllDead "w1a" Where spawnbot2 TotalCount 8 MaxActive 3 SpawnCount 1 WaitBeforeStarting 5 WaitBetweenSpawns 9 TotalCurrency 50 Support Limited TFBot { Template T_TFBot_Medic_BigHeal } } WaveSpawn { Name "" WaitForAllSpawned "w1ba" Where spawnbot TotalCount 2 MaxActive 2 SpawnCount 1 WaitBeforeStarting 25 WaitBetweenSpawns 20 TotalCurrency 200 TFBot { Template T_TFBot_Giant_Scout } } WaveSpawn { Name "" WaitForAllSpawned "w1b" Where spawnbot3 TotalCount 20 MaxActive 14 SpawnCount 10 WaitBeforeStarting 20 WaitBetweenSpawns 0 TotalCurrency 100 TFBot { Name "Scatter-Bonk Scout" Template T_TFBot_Scout_Bonk WeaponRestrictions PrimaryOnly Skill Easy } } WaveSpawn { Name "" WaitForAllDead "w1a" Where spawnbot TotalCount 10 MaxActive 2 SpawnCount 2 WaitBeforeStarting 35 WaitBetweenSpawns 25 TotalCurrency 25 Support Limited TFBot { Template T_TFBot_Medic_QuickUber } } } Wave // Wave # { StartWaveOutput { Target wave_start_relay Action Trigger } DoneOutput { Target wave_finished_relay Action Trigger } WaveSpawn { Name "w3a" WaitForAllDead "" Where spawnbot TotalCount 4 MaxActive 4 SpawnCount 1 WaitBeforeStarting 0 WaitBetweenSpawns 10 TotalCurrency 100 TFBot { Template T_TFBot_Giant_Boxing_Heavy Attributes AlwaysCrit } } WaveSpawn { Name "w3at" WaitForAllDead "" Where spawnbot Where spawnbot3 TotalCount 30 MaxActive 12 SpawnCount 3 WaitBeforeStarting 3 WaitBetweenSpawns 3 TotalCurrency 50 TFBot { Class Demoman Skill Expert } } WaveSpawn { Name "w3aa" WaitForAllSpawned "w3at" Where spawnbot3 TotalCount 20 MaxActive 15 SpawnCount 10 WaitBeforeStarting 5 WaitBetweenSpawns 0.1 TotalCurrency 50 TFBot { Class Heavyweapons Skill Easy } } WaveSpawn { Name "w3b" WaitForAllSpawned "w3aa" Where spawnbot3 TotalCount 12 MaxActive 12 SpawnCount 6 WaitBeforeStarting 0 WaitBetweenSpawns 14 TotalCurrency 200 Squad { TFBot { Name "Super Featherweight Champ" Template T_TFBot_Giant_Boxing_Heavy ClassIcon heavy_gru_giant Attributes AlwaysCrit Item "Gloves of Running Urgently MvM" } TFBot { Template T_TFBot_Soldier_Extended_Battalion } TFBot { Template T_TFBot_Soldier_Extended_Battalion } TFBot { Template T_TFBot_Soldier_Extended_Battalion } TFBot { Template T_TFBot_Soldier_Extended_Battalion } TFBot { Template T_TFBot_Soldier_Extended_Battalion } } } WaveSpawn { Name "w3ba" WaitForAllSpawned "w3aa" Where spawnbot3 TotalCount 20 MaxActive 10 SpawnCount 1 WaitBeforeStarting 5 WaitBetweenSpawns 2 TotalCurrency 50 TFBot { Class Heavyweapons Skill Easy } } WaveSpawn { Name "" WaitForAllSpawned "w3b" Where spawnbot3 TotalCount 3 MaxActive 3 SpawnCount 1 WaitBeforeStarting 10 WaitBetweenSpawns 10 TotalCurrency 100 TFBot { Name "Super Steelweight Champ" Template T_TFBot_Giant_Boxing_Heavy ClassIcon heavy_steelfist_pusher Item "Fists of Steel" Attributes AlwaysCrit ItemAttributes { ItemName "Fists of Steel" "damage causes airblast" 1 "damage bonus" 1.5 } } } WaveSpawn { Name "" WaitForAllSpawned "w3b" Where spawnbot TotalCount 99 MaxActive 19 SpawnCount 2 WaitBeforeStarting 25 WaitBetweenSpawns 1.3 Support 1 TotalCurrency 150 RandomChoice { TFBot { Name "Steel Manlet" Template T_TFBot_Heavyweapons_Heavyweight_Champ Item "Fists of Steel" Skill Expert ClassIcon heavy_steelfist } TFBot { Template T_TFBot_Sniper_Huntsman } TFBot { Class Demoman } TFBot { Name "Extended Conch Miner Soldier" Class Soldier Skill Expert ClassIcon soldier_conch_pickaxe WeaponRestrictions MeleeOnly Item "The Escape Plan" Attributes SpawnWithFullCharge Item "The Concheror" ItemAttributes { ItemName "The Escape Plan" "critboost on kill" 5 "self mark for death" 0 } CharacterAttributes { "increase buff duration" 9.0 } } } } } Wave // Wave # { StartWaveOutput { Target wave_start_relay Action Trigger } DoneOutput { Target wave_finished_relay Action Trigger } InitWaveOutput { Target gamerules // gamerules or tf_gamerules, depending on the map Action RunScriptCode Param " IncludeScript(`havana_bot_scripts`) " } WaveSpawn { Name "w2a" WaitForAllDead "" Where spawnbot TotalCount 2 MaxActive 2 SpawnCount 1 WaitBeforeStarting 0 WaitBetweenSpawns 10 TotalCurrency 100 TFBot { Template T_TFBot_Giant_Soldier_Spammer_Reload } } WaveSpawn { Name "w2aa" WaitForAllDead "" Where spawnbot2 TotalCount 50 MaxActive 18 SpawnCount 6 WaitBeforeStarting 0 WaitBetweenSpawns 7 TotalCurrency 100 RandomChoice { TFBot { Template T_TFBot_Demoman_Knight } TFBot { Name "Extended Charge Knight" Item "The Claidheamohmor" Template T_TFBot_Demoman_Knight CharacterAttributes { "cancel falling damage" 1 "charge time increased" 2 } } TFBot { Class Demoman Name "Persian Demoknight" ClassIcon demoknight Skill Expert Item "Ali Baba's Wee Booties" Item "The Splendid Screen" Item "The Persian Persuader" Item "Sultan's Ceremonial" MaxVisionRange 800 WeaponRestrictions MeleeOnly ItemAttributes { ItemName "The Splendid Screen" "Attack not cancel charge" 1 } ItemAttributes { ItemName "The Persian Persuader" "critboost on kill" 3 } } } } WaveSpawn { Name "w2b" WaitForAllSpawned "w2a" Where spawnbot Where spawnbot3 TotalCount 4 MaxActive 4 SpawnCount 1 WaitBeforeStarting 20 WaitBetweenSpawns 7.5 TotalCurrency 100 TFBot { Template T_TFBot_Giant_Soldier_Spammer_Reload } } WaveSpawn { Name "" WaitForAllDead "w2a" Where spawnbot3 Where spawnbot TotalCount 32 MaxActive 10 SpawnCount 3 WaitBeforeStarting 0 WaitBetweenSpawns 4 TotalCurrency 50 TFBot { Template T_TFBot_Sniper_Huntsman } } WaveSpawn { Name "w2ba" WaitForAllSpawned "w2b" Where spawnbot3 TotalCount 12 MaxActive 12 SpawnCount 6 WaitBeforeStarting 0 WaitBetweenSpawns 15 TotalCurrency 150 Squad { TFBot { Template T_TFBot_Giant_Soldier_Spammer_Reload } TFBot { Template T_TFBot_Soldier_Extended_Concheror } TFBot { Template T_TFBot_Soldier_Extended_Concheror } TFBot { Template T_TFBot_Soldier_Extended_Concheror } TFBot { Template T_TFBot_Soldier_Extended_Concheror } TFBot { Template T_TFBot_Soldier_Extended_Concheror } } } WaveSpawn { Name "" WaitForAllSpawned "w2aa" Where spawnbot2 TotalCount 51 MaxActive 9 SpawnCount 3 WaitBeforeStarting 10 WaitBetweenSpawns 6 Support 1 TotalCurrency 200 Squad { ShouldPreserveSquad 1 TFBot { Template T_TFBot_Heavy_IronFist_Airblast Tag bot_explodesondeath Name "Faulty Gauntlet" } TFBot { Class Spy Skill Normal ClassIcon spy_revolver_lite Name "Faulty Gun Spy" WeaponRestrictions PrimaryOnly Tag bot_explodesondeath ItemAttributes { ItemName TF_WEAPON_REVOLVER "cannot disguise" 1 } } TFBot { Class Spy Skill Normal ClassIcon spy_revolver_lite Name "Faulty Gun Spy" WeaponRestrictions PrimaryOnly Tag bot_explodesondeath ItemAttributes { ItemName TF_WEAPON_REVOLVER "cannot disguise" 1 } } } } } Wave // Wave # { StartWaveOutput { Target wave_start_relay Action Trigger } DoneOutput { Target wave_finished_relay Action Trigger } InitWaveOutput { Target gamerules // gamerules or tf_gamerules, depending on the map Action RunScriptCode Param " IncludeScript(`havana_bot_scripts`) IncludeScript(`distance_based_weaponswitch_v2.nut`) IncludeScript(`tankextensions_main`, getroottable()) IncludeScript(`tankextensions/combattank`, getroottable()) IncludeScript(`tankextensions/combattank_weapons/rocketpod`, getroottable()) " } WaveSpawn { Name "w4boss" WaitForAllDead "" Where spawnbot TotalCount 1 MaxActive 1 SpawnCount 1 WaitBeforeStarting 0 WaitBetweenSpawns 0 TotalCurrency 200 FirstSpawnWarningSound "mvm/giant_heavy/giant_heavy_entrance.wav" TFBot { ClassIcon pyro_degreaser_flare Scale 1.75 Health 25000 Name "Chief Combo Pyro" Class Pyro Skill Expert Attributes MiniBoss Attributes UseBossHealthBar Item "the flare gun" Item "the degreaser" Item "the axtinguisher" Tag bot_chief ItemAttributes { ItemName "The Flare Gun" "fire rate bonus" 0.4 "Reload time decreased" 0.2 "Projectile speed increased" 0.7 } CharacterAttributes { "move speed bonus" 0.5 "damage force reduction" 0.1 "airblast vulnerability multiplier" 0.1 "override footstep sound set" 6 "damage bonus" 1.2 "melee range multiplier" 2 } ItemAttributes { ItemName "the degreaser" "weapon burn dmg increased" 1.5 "flame_drag" 4 "max_flame_reflection_count" 1000 "flame_reflect_on_collision" 1000 "flame_spread_degree" 5 "flame_up_speed" -25 } // WeaponSwitch // { // Type "Primary" // MaxTargetRange 500 // MinTargetRange 200 // Delay 0.1 // Repeats 0 // Cooldown 0 // IfSeeTarget 1 // } // WeaponSwitch // { // Type "Secondary" // MaxTargetRange 9999 // MinTargetRange 500 // Delay 0.1 // Repeats 0 // Cooldown 0 // IfSeeTarget 1 // } // WeaponSwitch // { // Type "Melee" // MaxTargetRange 200 // MinTargetRange 1 // Delay 0.1 // Repeats 0 // Cooldown 0 // IfSeeTarget 1 // } } } WaveSpawn { Name "" WaitForAllDead "" Where spawnbot Where spawnbot2 Where spawnbot3 TotalCount 30 MaxActive 18 SpawnCount 1 WaitBeforeStarting 1 WaitBetweenSpawns 2 TotalCurrency 50 TFBot { Template T_TFBot_Heavyweapons_Gnome Health 150 Name "Faulty Mittens" Scale 1.01 Tag bot_explodesondeath Attributes DisableDodge CharacterAttributes { "move speed bonus" 1.5 } } } WaveSpawn { Name "" WaitForAllDead "" Where spawnbot2 TotalCount 25 MaxActive 10 SpawnCount 1 WaitBeforeStarting 10 WaitBetweenSpawns 2 TotalCurrency 25 TFBot { Class Soldier Skill Hard } } WaveSpawn { Name "w4b" WaitForAllDead "w4boss" Where spawnbot3 TotalCount 16 MaxActive 12 SpawnCount 4 WaitBeforeStarting 0 WaitBetweenSpawns 10 TotalCurrency 150 Squad { ShouldPreserveSquad 1 TFBot { Class Medic Name "Armored Shield Basher" Skill Expert ClassIcon medic_shield_armored_lite WeaponRestrictions SecondaryOnly Attributes SpawnWithFullCharge Attributes ProjectileShield Attributes IgnoreEnemies Health 650 Scale 1.5 Item "titanium tyrolean" ItemAttributes { ItemName tf_weapon_medigun "ubercharge rate penalty" -7 "generate rage on heal" 2 "increase buff duration" 999 } CharacterAttributes { "bot medic uber health threshold" 999 "bot medic uber deploy delay duration" 9999 "no_duck" 1 "mod soldier buff type" 5 // 5 + 1 "deploy time increased" 1.34 "move speed bonus" 0.7 } Item "The Buff Banner" } TFBot { Template T_TFBot_Giant_Soldier_Spammer } TFBot { ClassIcon pyro_dragon_fury_swordstone Name "Dragon's Fury Pyro" Class Pyro Skill Expert Item "The Dragon's Fury" MaxVisionRange 700 CharacterAttributes { "airblast disabled" 1 } } TFBot { ClassIcon pyro_dragon_fury_swordstone Name "Dragon's Fury Pyro" Class Pyro Skill Expert Item "The Dragon's Fury" MaxVisionRange 700 CharacterAttributes { "airblast disabled" 1 } } } } WaveSpawn { Name "w4ba" WaitForAllDead "w4boss" Where spawnbot TotalCount 30 MaxActive 12 SpawnCount 4 WaitBeforeStarting 0 WaitBetweenSpawns 4 TotalCurrency 75 TFBot { Template T_TFBot_Demo_Burst Attributes AlwaysFireWeapon Attributes HoldFireUntilFullReload ItemAttributes { ItemName "TF_WEAPON_GRENADELAUNCHER" "clip size upgrade atomic" 2 } } } WaveSpawn { Name "" WaitForAllDead "w4b" Where spawnbot3 TotalCount 2 MaxActive 2 SpawnCount 1 WaitBeforeStarting 0 WaitBetweenSpawns 30 TotalCurrency 50 TFBot { Template T_TFBot_Giant_Heavyweapons_Deflector } } WaveSpawn { Name "w4bb" WaitForAllDead "w4ba" Where spawnbot TotalCount 50 MaxActive 12 SpawnCount 1 WaitBeforeStarting 0 WaitBetweenSpawns 1 TotalCurrency 100 TFBot { Class Scout Skill Normal } } WaveSpawn // Tank # HP { Name "" WaitForAllDead "w4b" TotalCount 1 MaxActive 1 SpawnCount 1 WaitBeforeStarting 15 WaitBetweenSpawns 0 TotalCurrency 350 Tank { Name "combattank_bomb|rocketpod|rocketpod" StartingPathTrackNode "boss_path_1" Health 20000 Speed 75 Skin 0 OnKilledOutput {} OnBombDroppedOutput { Target boss_deploy_relay Action Trigger } } } } Wave // Wave # { StartWaveOutput { Target wave_start_relay Action Trigger } DoneOutput { Target wave_finished_relay Action Trigger } InitWaveOutput { Target gamerules // gamerules or tf_gamerules, depending on the map Action RunScriptCode Param " IncludeScript(`havana_bot_scripts`) " } WaveSpawn { Name "w5a" WaitForAllDead "" Where spawnbot3 TotalCount 4 MaxActive 4 SpawnCount 2 WaitBeforeStarting 0 WaitBetweenSpawns 20 TotalCurrency 100 Squad { TFBot { Class Pyro Name "Giant Burst Dragon's Fury Pyro" ClassIcon pyro_dragon_fury_burstfire_swordstone_giant Skill Expert Health 3000 MaxVisionRange 900 WeaponRestrictions PrimaryOnly Attributes MiniBoss Item "The Dragon's Fury" ItemAttributes { ItemName "The Dragon's Fury" "item_meter_charge_rate" 0.125 "fire rate bonus" 0.1 "reload time increased" 2 "damage bonus" 1.5 } ItemAttributes { ItemName "TF_WEAPON_SHOTGUN_PYRO" "faster reload rate" 0.35 "fire rate bonus" 0.1 "is_passive_weapon" 1 "auto fires full clip" 1 "auto fires when full" 1 "override projectile type" 27 "clip size bonus" 2 } CharacterAttributes { "move speed bonus" 0.4 "damage force reduction" 0.6 "airblast vulnerability multiplier" 0.6 "override footstep sound set" 6 } } TFBot { Template T_TFBot_Giant_Medic_Regen } } } WaveSpawn { Name "w5aa" WaitForAllDead "" Where spawnbot2 TotalCount 40 MaxActive 18 SpawnCount 10 WaitBeforeStarting 5 WaitBetweenSpawns 0 TotalCurrency 50 TFBot { Template T_TFBot_Heavyweapons_Shotgun } } WaveSpawn { Name "" WaitForAllSpawned "w5aa" Where spawnbot2 TotalCount 48 MaxActive 14 SpawnCount 2 WaitBeforeStarting 5 WaitBetweenSpawns 2 TotalCurrency 50 RandomChoice { TFBot { Class Scout Skill Hard } TFBot { Class Pyro Skill Expert Name "Rapid Flare Pyro" WeaponRestrictions "SecondaryOnly" ClassIcon "pyro_flare_spammer" Item "The Flare Gun" ItemAttributes { ItemName "The Flare Gun" "fire rate bonus" 0.4 "Reload time decreased" 0.2 "Projectile speed increased" 1.5 } } } } WaveSpawn { Name "w5b" WaitForAllDead "w5a" Where spawnbot TotalCount 4 MaxActive 4 SpawnCount 1 WaitBeforeStarting 0 WaitBetweenSpawns 13 TotalCurrency 150 TFBot { Template T_TFBot_Giant_Scout_Baseball_Armored } } WaveSpawn { Name "" WaitForAllSpawned "w5a" Where spawnbot2 TotalCount 18 MaxActive 3 SpawnCount 1 WaitBeforeStarting 5 WaitBetweenSpawns 4 TotalCurrency 150 TFBot { Name "Faulty Crisis Caber" Class Demoman Skill Expert ClassIcon demo_caber_nuke Health 450 Scale 1.3 Attributes AlwaysCrit WeaponRestrictions PrimaryOnly MaxVisionRange 300 Tag bot_explodesondeath_big Item "Contaminated Carryall" Item "Brain Interface" Item "The Rusty Reaper" Item "Mine Sweepers" Item "The Ullapool Caber" ItemAttributes { ItemName "The Ullapool Caber" "is_passive_weapon" 1 "fire rate penalty" 1.5 "damage penalty" 0.0001 "melee range multiplier" 0.01 } ItemAttributes // this fakes the caber { ItemName "TF_WEAPON_GRENADELAUNCHER" "faster reload rate" -1 "fire rate penalty" 3 "grenade no bounce" 1 "blast dmg to self increased" 999.0 "damage bonus" 2 "dmg bonus vs buildings" 4 "fuse bonus" 0.0001 "Projectile speed increased" 0.0001 "Blast radius increased" 2 "use large smoke explosion" 1 "ragdolls become ash" 1 } CharacterAttributes { "attach particle effect" 69 "particle effect use head origin" 1 "move speed penalty" 0.9 "hand scale" 0 "gesture speed increase" 0.8 "voice pitch scale" 0.8 } } } WaveSpawn // Tank # HP { Name "w5bb" WaitForAllDead "w5a" TotalCount 1 MaxActive 1 SpawnCount 1 WaitBeforeStarting 10 WaitBetweenSpawns 35 TotalCurrency 100 Tank { Name "tankboss" StartingPathTrackNode "boss_path_1" Health 25000 Speed 75 Skin 0 OnKilledOutput {} OnBombDroppedOutput { Target boss_deploy_relay Action Trigger } } } WaveSpawn { Name "" WaitForAllDead "w5bb" Where spawnbot3 TotalCount 4 MaxActive 4 SpawnCount 2 WaitBeforeStarting 0 WaitBetweenSpawns 30 TotalCurrency 50 TFBot { Template T_TFBot_Giant_Demo_Burst } } WaveSpawn // Tank # HP { Name "w5ctank" WaitForAllDead "w5b" TotalCount 1 MaxActive 1 SpawnCount 1 WaitBeforeStarting 10 WaitBetweenSpawns 0 TotalCurrency 100 Tank { Name "tankboss" StartingPathTrackNode "boss_path_1" Health 25000 Speed 75 Skin 0 OnKilledOutput {} OnBombDroppedOutput { Target boss_deploy_relay Action Trigger } } } WaveSpawn { Name "" WaitForAllDead "w5bb" Where spawnbot3 TotalCount 2 MaxActive 2 SpawnCount 1 WaitBeforeStarting 15 WaitBetweenSpawns 23 TotalCurrency 50 TFBot { Class Soldier Name "Giant Crisis Soldier" ClassIcon soldier_nuke2 Skill Expert Health 3800 WeaponRestrictions PrimaryOnly Attributes MiniBoss Item "The Valley Forge" Item "Batter's Bracers" Item "The Black Box" ItemAttributes { ItemName "The Black Box" "damage bonus" 3.5 "faster reload rate" -0.8 "blast radius increased" 1.5 //"use large smoke explosion" 1 "fire rate penalty" 3 "projectile speed decreased" 0.5 } CharacterAttributes { "move speed bonus" 0.5 "damage force reduction" 0.4 "airblast vulnerability multiplier" 0.4 "override footstep sound set" 3 } } } WaveSpawn { Name "" WaitForAllSpawned "w5ctank" Where spawnbot TotalCount 99 MaxActive 15 SpawnCount 3 WaitBeforeStarting 10 WaitBetweenSpawns 6 Support 1 TotalCurrency 0 TFBot { Class Heavyweapons } } } Wave // Wave # { StartWaveOutput { Target wave_start_relay Action Trigger } DoneOutput { Target wave_finished_relay Action Trigger } InitWaveOutput { Target gamerules // gamerules or tf_gamerules, depending on the map Action RunScriptCode Param " IncludeScript(`havana_bot_scripts`) IncludeScript(`distance_based_weaponswitch_v2.nut`) IncludeScript(`tankextensions_main`, getroottable()) IncludeScript(`tankextensions/combattank`, getroottable()) IncludeScript(`tankextensions/combattank_weapons/rocketpod`, getroottable()) IncludeScript(`tankextensions/combattank_weapons/railgun`, getroottable()) " } WaveSpawn { Name "w6a" WaitForAllDead "" Where spawnbot TotalCount 3 MaxActive 3 SpawnCount 3 WaitBeforeStarting 0 WaitBetweenSpawns 0 TotalCurrency 25 Squad { TFBot { Template T_TFBot_Giant_Soldier_SlowBarrage Tag bot_explodesondeath_big } TFBot { Template T_TFBot_Soldier_Extended_Concheror } TFBot { Template T_TFBot_Soldier_Extended_Concheror } } } WaveSpawn { Name "w6a" WaitForAllDead "" Where spawnbot2 TotalCount 3 MaxActive 3 SpawnCount 3 WaitBeforeStarting 10 WaitBetweenSpawns 0.1 TotalCurrency 25 Squad { TFBot { Template T_TFBot_Giant_Soldier_SlowBarrage Tag bot_explodesondeath_big } TFBot { Template T_TFBot_Soldier_Extended_Concheror } TFBot { Template T_TFBot_Soldier_Extended_Concheror } } } WaveSpawn { Name "w6a" WaitForAllDead "" Where spawnbot3 TotalCount 3 MaxActive 3 SpawnCount 3 WaitBeforeStarting 10 WaitBetweenSpawns 0.1 TotalCurrency 25 Squad { TFBot { Template T_TFBot_Giant_Soldier_SlowBarrage Tag bot_explodesondeath_big } TFBot { Template T_TFBot_Soldier_Extended_Concheror } TFBot { Template T_TFBot_Soldier_Extended_Concheror } } } WaveSpawn { Name "w6b" WaitForAllSpawned "w6a" Where spawnbot TotalCount 3 MaxActive 3 SpawnCount 1 WaitBeforeStarting 20 WaitBetweenSpawns 3 TotalCurrency 100 TFBot { Template T_TFBot_Giant_Scout_Fast } } WaveSpawn { Name "w6b" WaitForAllDead "w6a" Where spawnbot2 TotalCount 28 MaxActive 12 SpawnCount 2 WaitBeforeStarting 0 WaitBetweenSpawns 4.8 TotalCurrency 50 Squad { TFBot { Template T_TFBot_Pyro Skill Hard ItemAttributes { ItemName "TF_WEAPON_FLAMETHROWER" "airblast_destroy_projectile" 1 } } TFBot { Template T_TFBot_Medic_QuickUber Tag bot_explodesondeath_big } } } WaveSpawn { Name "w6b" WaitForAllDead "w6a" Where spawnbot TotalCount 14 MaxActive 6 SpawnCount 2 WaitBeforeStarting 0 WaitBetweenSpawns 10 TotalCurrency 75 TFBot { Template T_TFBot_Sniper_Huntsman_Spammer ClassIcon sniper_bow_multi Tag bot_explodesondeath } } WaveSpawn { Name "w6ba" WaitForAllDead "w6a" Where spawnbot TotalCount 6 MaxActive 6 SpawnCount 3 WaitBeforeStarting 0 WaitBetweenSpawns 26 TotalCurrency 250 Squad { NoWaitForFormation 1 TFBot { Name "Giant Heal-On-Kill Deflector" Template T_TFBot_Giant_Heavyweapons_HealOnKill Item "officer's ushanka" Item "the apparatchik's apparel" } TFBot { Name "Super Steelweight Champ" Template T_TFBot_Giant_Boxing_Heavy ClassIcon heavy_steelfist_pusher Item "Fists of Steel" Attributes AlwaysCrit ItemAttributes { ItemName "Fists of Steel" "damage causes airblast" 1 "damage bonus" 1.5 } } TFBot { Name "Super Steelweight Champ" Template T_TFBot_Giant_Boxing_Heavy ClassIcon heavy_steelfist_pusher Item "Fists of Steel" Attributes AlwaysCrit ItemAttributes { ItemName "Fists of Steel" "damage causes airblast" 1 "damage bonus" 1.5 } } } } WaveSpawn { Name "moresupers" WaitForAllDead "w6ba" Where spawnbot2 TotalCount 3 MaxActive 3 SpawnCount 1 WaitBeforeStarting 0 WaitBetweenSpawns 0 TotalCurrency 100 TFBot { Template T_TFBot_Giant_Scout_Fast } } WaveSpawn { Name "w6c" WaitForAllSpawned "moresupers" Where spawnbot TotalCount 40 MaxActive 12 SpawnCount 5 WaitBeforeStarting 0 WaitBetweenSpawns 7 TotalCurrency 50 TFBot { Template T_TFBot_Soldier_RocketShotgun Tag bot_explodesondeath } } WaveSpawn // Tank # HP { Name "" WaitForAllSpawned "w6ba" TotalCount 1 MaxActive 1 SpawnCount 1 WaitBeforeStarting 40 WaitBetweenSpawns 0 TotalCurrency 100 Tank { Name "combattank_bomb|rocketpod|railgun" StartingPathTrackNode "boss_path_1" Health 25000 Speed 75 Skin 0 OnKilledOutput {} OnBombDroppedOutput { Target boss_deploy_relay Action Trigger } } } } Wave // Wave # { StartWaveOutput { Target wave_start_relay Action Trigger } DoneOutput { Target wave_finished_relay Action Trigger } InitWaveOutput { Target gamerules // gamerules or tf_gamerules, depending on the map Action RunScriptCode Param " IncludeScript(`havana_bot_scripts`) IncludeScript(`distance_based_weaponswitch_v2.nut`) IncludeScript(`tankextensions_main`, getroottable()) IncludeScript(`tankextensions/ubertank`, getroottable()) " } WaveSpawn // Tank # HP { Name "finaluber" TotalCount 1 MaxActive 1 SpawnCount 1 WaitBeforeStarting 0 WaitBetweenSpawns 0 TotalCurrency 100 Tank { Name "ubertank|0|-1" StartingPathTrackNode "boss_path_1" ClassIcon tank_uber_lite Health 60000 Speed 55 Skin 1 OnBombDroppedOutput { Target boss_deploy_relay Action Trigger } } } WaveSpawn { Name "" WaitForAllDead "" Where spawnbot TotalCount 4 MaxActive 4 SpawnCount 2 WaitBeforeStarting 0 WaitBetweenSpawns 0 TotalCurrency 200 Squad { TFBot { Template T_TFBot_Giant_Soldier_Spammer ClassIcon soldier_shotgun_yoovy_giant Attributes HoldFireUntilFullReload Health 3800 Name "Giant Combo Soldier" Tag bot_switcher_attack ItemAttributes { ItemName "TF_WEAPON_SHOTGUN_SOLDIER" "faster reload rate" 0.5 "damage bonus" 1.15 } ItemAttributes { ItemName "TF_WEAPON_SHOVEL" "damage bonus" 1.5 "damage causes airblast" 3 } } TFBot { Template T_TFBot_Giant_Medic_Regen } } DoneOutput { Target wave_start_relay Action RunScriptCode Param " EntFire(`ubertank*`,`CallScriptFunction`,`ToggleUber`) EntFire(`ubertank*`,`setspeed`,`0`) EntFire(`tf_gamerules`,`playvo`,`mvm/mvm_cpoint_klaxon.wav`,5) EntFire(`tf_gamerules`,`playvo`,`mvm/mvm_cpoint_klaxon.wav`,10) EntFire(`tf_gamerules`,`playvo`,`mvm/mvm_cpoint_klaxon.wav`,15) EntFire(`tf_gamerules`,`playvo`,`mvm/mvm_cpoint_klaxon.wav`,17) EntFire(`tf_gamerules`,`playvo`,`mvm/mvm_cpoint_klaxon.wav`,17.5) EntFire(`ubertank*`,`CallScriptFunction`,`ToggleUber`,18) EntFire(`ubertank*`,`setspeed`,`55`,19) " } } WaveSpawn { Name "support2" WaitForAllSpawned "support1" Where spawnbot2 TotalCount 12 MaxActive 12 SpawnCount 3 WaitBeforeStarting 30 WaitBetweenSpawns 4.5 Support Limited TotalCurrency 50 TFBot { Template T_TFBot_Heavyweapons_Heavyweight_Champ_Fast Attributes AlwaysCrit Health 900 Scale 1.4 Name "Faulty Featherweight Gauntlet" Tag bot_explodesondeath_big } } WaveSpawn { Name "" WaitForAllSpawned "support1" Where spawnbot TotalCount 8 MaxActive 6 SpawnCount 1 WaitBeforeStarting 40 WaitBetweenSpawns 2.5 Support Limited TotalCurrency 50 TFBot { Name "Faulty Crisis Caber" Class Demoman Skill Expert ClassIcon demo_caber_nuke Health 450 Scale 1.3 Attributes AlwaysCrit WeaponRestrictions PrimaryOnly MaxVisionRange 300 Tag bot_explodesondeath_big Item "Contaminated Carryall" Item "Brain Interface" Item "The Rusty Reaper" Item "Mine Sweepers" Item "The Ullapool Caber" ItemAttributes { ItemName "The Ullapool Caber" "is_passive_weapon" 1 "fire rate penalty" 1.5 "damage penalty" 0.0001 "melee range multiplier" 0.01 } ItemAttributes // this fakes the caber { ItemName "TF_WEAPON_GRENADELAUNCHER" "faster reload rate" -1 "fire rate penalty" 3 "grenade no bounce" 1 "blast dmg to self increased" 999.0 "damage bonus" 2 "dmg bonus vs buildings" 4 "fuse bonus" 0.0001 "Projectile speed increased" 0.0001 "Blast radius increased" 2 "use large smoke explosion" 1 "ragdolls become ash" 1 } CharacterAttributes { "attach particle effect" 69 "particle effect use head origin" 1 "move speed penalty" 0.9 "hand scale" 0 "gesture speed increase" 0.8 "voice pitch scale" 0.8 } } } WaveSpawn { Name "" WaitForAllSpawned "mainwave4" Where spawnbot TotalCount 10 MaxActive 5 SpawnCount 1 WaitBeforeStarting 15 WaitBetweenSpawns 4.5 TotalCurrency 100 TFBot { Class Medic Name "Armored Shielded Menace" Skill Expert ClassIcon medic_shield_armored_lite Attributes SpawnWithFullCharge Attributes ProjectileShield Health 900 Scale 1.5 Item "titanium tyrolean" Item "The Crusader's Crossbow" Tag "bot_chief" ItemAttributes { ItemName tf_weapon_medigun "ubercharge rate penalty" -7 "generate rage on heal" 2 "increase buff duration" 999 } ItemAttributes { ItemName "the crusader's crossbow" "auto fires when full" 1 "auto fires full clip" 1 "clip size bonus" 2 "faster reload rate" 0.8 //"override projectile type" 8 "fire rate bonus" 0.1 "projectile penetration" 1 "projectile spread angle penalty" 3 } CharacterAttributes { "bot medic uber health threshold" 999 "bot medic uber deploy delay duration" 9999 "no_duck" 1 "mod soldier buff type" 5 // 5 + 1 "deploy time increased" 1.34 "move speed bonus" 0.7 } Item "The Buff Banner" Item "The Ubersaw" } } WaveSpawn { Name "" WaitForAllDead "mainwave4" Where spawnbot TotalCount 12 MaxActive 5 SpawnCount 1 WaitBeforeStarting 0 WaitBetweenSpawns 1 Support Limited TotalCurrency 0 TFBot { Template T_TFBot_Engineer_Sentry_Teleporter TeleportWhere spawnbot2 TeleportWhere spawnbot3 } } } }