#base robot_giant.pop #base robot_standard.pop #base robot_gatebot.pop #base conga_weapons.pop population { StartingCurrency 0 RespawnWaveTime 6 CanBotsAttackWhileInSpawnRoom no AddSentryBusterWhenDamageDealtExceeds 10000 AddSentryBusterWhenKillCountExceeds 10 // RobotLimit 32 Mission { Objective DestroySentries Where spawnbot_right BeginAtWave 1 RunForThisManyWaves 7 InitialCooldown 30 CooldownTime 45 DesiredCount 1 TFBot { Template T_TFBot_SentryBuster } } Mission { Objective Spy Where spawnbot_right BeginAtWave 2 RunForThisManyWaves 2 InitialCooldown 30 CooldownTime 45 DesiredCount 2 TFBot { Template T_TFBot_Spy } } Mission { Objective Sniper Where spawnbot_left BeginAtWave 4 RunForThisManyWaves 1 InitialCooldown 30 CooldownTime 25 DesiredCount 2 TFBot { Template T_TFBot_Sniper } } Mission { Objective Spy Where spawnbot_right BeginAtWave 7 RunForThisManyWaves 1 InitialCooldown 30 CooldownTime 45 DesiredCount 2 TFBot { Template T_TFBot_Spy } } Mission { Objective Sniper Where spawnbot_left BeginAtWave 7 RunForThisManyWaves 1 InitialCooldown 30 CooldownTime 25 DesiredCount 2 TFBot { Template T_TFBot_Sniper } } // Mission // { // Objective Engineer // Where spawnbot // BeginAtWave 2 // RunForThisManyWaves 2 // InitialCooldown 30 // CooldownTime 45 // DesiredCount 1 // TFBot // { // Template T_TFBot_Engineer_Sentry_Teleporter // } // } PointTemplates { finalsubPT { logic_relay { "targetname" "FinalSubCheck" "OnTrigger" "finalsubmath,Add,1,0,-1" } math_counter { "targetname" "finalsubmath" "min" "0" "max" "2" "OnHitMax" "tank_boss,RemoveHealth,999999,0,-1" } } bosswavelogic { logic_relay //Should probably change a few of the sounds so it's not just the same as electrolysis { "targetname" "boss_intro" "OnTrigger" "tf_gamerules,PlayVO,mvm/giant_heavy/giant_heavy_entrance.wav,2.1,-1" "OnTrigger" "tf_gamerules,PlayVO,mvm/giant_heavy/giant_heavy_entrance.wav,2.1,-1" "OnTrigger" "tf_gamerules,PlayVO,npc/combine_gunship/ping_patrol.wav,2.9,-1" } ambient_generic { "targetname" "bosstime" "health" "10" "pitch" "100" "spawnflags" "17" "message" "#music/HL2_song16.mp3" } trigger_remove_tf_player_condition { StartDisabled 1 "targetname" "RemoveAllies" "condition" "43" "origin" "2022 3612 704" "mins" "9999 9999 9999" "maxs" "-9999 -9999 -9999" "spawnflags" 64 } game_text { "origin" "1984 1984 9999" "targetname" "upper_text" "message" "WHY THE FUCK IS THE MANGLED MENACE HERE" "x" "-1" "y" "0.4" "spawnflags" "1" "effect" "2" "channel" "2" "color" "255 255 255" "fxtime" "0.2" "fadeout" "1" //"fadein" "0" "holdtime" "5" } game_text { "origin" "1208 2036 9999" "targetname" "text_lower" "message" "THIS IS THE WRONG MISSION" "x" "-1" "y" "0.45" "channel" "1" "spawnflags" "1" "color" "155 155 255" "fadein" "0.2" "fadeout" "1" "holdtime" "3.8" } logic_case { "targetname" "RandomAttackChooser" "OnCase01" "IgniterBulletsPrep,Trigger,,0,-1" "OnCase02" "ShotgunFire,Trigger,,0,-1" "OnCase03" "CheersMate,Trigger,,0,-1" "OnCase04" "DeflectorPhase,Trigger,,0,-1" "OnCase05" "TomislavPhase,Trigger,,0,-1" } logic_relay { "targetname" "StartTheFight" "OnTrigger" "RandomAttackChooser,PickRandomShuffle,,12,-1" "OnTrigger" "boss_intro,Trigger,,4,-1" "OnTrigger" "bosstime,PlaySound,,4.5,-1" "OnTrigger" "upper_text,Display,,5,-1" "OnTrigger" "text_lower,Display,,7.1,-1" } logic_relay { "targetname" "IgniterBulletsPrep" "OnTrigger" "pop_interface,ChangeBotAttributes,FireBulletsPrep,0,-1" "OnTrigger" "IgniterBullets,Trigger,,1,-1" } logic_relay { "targetname" "IgniterBullets" "OnTrigger" "pop_interface,ChangeBotAttributes,FireBullets,0,-1" "OnTrigger" "RandomAttackChooser,PickRandomShuffle,,12,-1" } logic_relay { "targetname" "ShotgunFire" "OnTrigger" "pop_interface,ChangeBotAttributes,FireballShotgun,0,-1" "OnTrigger" "RandomAttackChooser,PickRandomShuffle,,12,-1" } logic_relay { "targetname" "CheersMate" "OnTrigger" "pop_interface,ChangeBotAttributes,YummyCrits,0,-1" "OnTrigger" "RandomAttackChooser,PickRandomShuffle,,3,-1" } logic_relay { "targetname" "DeflectorPhase" "OnTrigger" "pop_interface,ChangeBotAttributes,Deflection,0,-1" "OnTrigger" "RandomAttackChooser,PickRandomShuffle,,12,-1" } logic_relay { "targetname" "TomislavPhase" "OnTrigger" "pop_interface,ChangeBotAttributes,FastFiring,0,-1" "OnTrigger" "RandomAttackChooser,PickRandomShuffle,,12,-1" } } MissionName { point_populator_interface { "targetname" "pop_interface" } filter_activator_tfteam { "targetname" "redteam" "teamnum" "2" } filter_activator_tfteam { "targetname" "blueteam" "teamnum" "3" } } } SpawnTemplate MissionName SpawnTemplate finalsubPT SpawnTemplate bosswavelogic Templates { GiantHeavyDeflector { Class Heavyweapons Name "Giant Deflector Heavy" ClassIcon heavy_deflector Skill Expert Health 5000 Scale 1.8 WeaponRestrictions PrimaryOnly Attributes MiniBoss Item "The U-clank-a" CharacterAttributes { "move speed bonus" 0.4 "damage force reduction" 0.3 "airblast vulnerability multiplier" 0.4 "airblast vertical vulnerability multiplier" 0.1 "rage giving scale" 0.9 "override footstep sound set" 2 "damage bonus" 1.2 "attack projectiles" 2 } } GiantUberMedic { Class Medic Name "Giant Uber Medic" ClassIcon medic_uber_giant Skill Expert Health 4500 Attributes SpawnWithFullCharge WeaponRestrictions SecondaryOnly Attributes MiniBoss CharacterAttributes { "move speed bonus" 0.5 "damage force reduction" 0.6 "airblast vulnerability multiplier" 0.6 "heal rate bonus" 200 // only works on mediguns that have this attribute ie quickfix "bot medic uber health threshold" 1000 } } GiantKritzMedic { Class Medic Name "Giant Kritz Medic" ClassIcon medic_kritz Skill Expert Health 4500 Attributes SpawnWithFullCharge WeaponRestrictions SecondaryOnly Attributes MiniBoss Item "The Kritzkrieg" CharacterAttributes { "uber duration bonus" 999.0 "move speed bonus" 0.5 "damage force reduction" 0.6 "airblast vulnerability multiplier" 0.6 "heal rate bonus" 200 // only works on mediguns that have this attribute ie quickfix } FireWeapon { Delay 1 //Time before the first fire input starts (Default: 10) Cooldown 3 //Time between each fire input (Default: 10) Repeats 0 //How many times should bot use the fire input in total (Default: 0 - Infinite) //IfSeeTarget 1 //When set to 1, this task activates only when the bot can see the target player (Default 0 - Always activate) Duration 0.5 //How long should the button be pressed (Default: 0.1) Type "Secondary" } } GiantShieldMedic { Class Medic Name "Giant Shield Medic" ClassIcon medic_shield_lite Skill Expert Health 4500 Attributes SpawnWithFullCharge WeaponRestrictions SecondaryOnly Attributes MiniBoss Attributes ProjectileShield Attributes SpawnWithFullCharge FireWeapon { Delay 1 //Time before the first fire input starts (Default: 10) Cooldown 3 //Time between each fire input (Default: 10) Repeats 0 //How many times should bot use the fire input in total (Default: 0 - Infinite) //IfSeeTarget 1 //When set to 1, this task activates only when the bot can see the target player (Default 0 - Always activate) Duration 0.5 //How long should the button be pressed (Default: 0.1) Type "Special" } CharacterAttributes { "bot medic uber deploy delay duration" 999999 "generate rage on heal" 2 "heal rate bonus" 2 "move speed bonus" 0.5 "damage force reduction" 0.6 "airblast vulnerability multiplier" 0.6 "heal rate bonus" 200 // only works on mediguns that have this attribute ie quickfix "increase buff duration" 999.0 } } GiantHomingSoldier { Template T_TFBot_Giant_Demo_RapidFire Health 3800 ClassIcon demo_rapid_giant CharacterAttributes { "reload time decreased" 0.01 } } GiantHomingSoldierRapid { Template T_TFBot_Giant_Soldier_Spammer_Reload } GiantBisonRapid { Class Soldier Skill Expert Health 3800 ClassIcon soldier_bison_spammer Attributes "MiniBoss" Name "Giant Rapidfire Bison Soldier" WeaponRestrictions SecondaryOnly Item "The Righteous Bison" CharacterAttributes { "fire rate bonus" 0.1 "reload time decreased" 0.1 "move speed bonus" 0.5 "damage force reduction" 0.6 "airblast vulnerability multiplier" 0.6 } } GiantPyroFury { Class Pyro Skill Expert Health 3800 ClassIcon Pyro_dragon_fury Attributes "MiniBoss" Name "Giant Dragon's Fury Pyro" WeaponRestrictions PrimaryOnly Item "The Dragon's Fury" CharacterAttributes { "fire rate bonus" 0.8 "move speed bonus" 0.5 "damage force reduction" 0.6 "airblast vulnerability multiplier" 0.6 } } FamilyBusiness { Class Heavyweapons Skill Hard ClassIcon heavy_family_business Name "Family Business Heavy" WeaponRestrictions SecondaryOnly Item "The Family Business" } MonorailTank { Health 30000 Speed 75 Name "Monorail Tank" Gravity 0 DisableTracks 1 DisableChildModels 1 NoCrushDamage 1 StartingPathTrackNode monorail_path_B ClassIcon monorail_tank Model //Set custom model on tank. Will spit harmless errors on client console if the model does not have enough sequences { Default "models/robot_factory/monorail_tank.mdl" Damage1 "models/robot_factory/monorail_tank_damage1.mdl" Damage2 "models/robot_factory/monorail_tank_damage2.mdl" Damage3 "models/robot_factory/monorail_tank_damage3.mdl" } OnKilledOutput { Target boss_dead_relay Action Trigger } OnBombDroppedOutput { Target boss_deploy_relay Action Trigger } } TheGiantHeavyWeaponsGuyBossDudeFromRenfe { Class Heavyweapons Name "Mangled Menace" ClassIcon heavy_ignite Skill Expert Health 80000 Scale 1.8 Attributes "MiniBoss" Attributes "UseBossHealthBar" WeaponRestrictions MeleeOnly CharacterAttributes { "move speed bonus" 0.4 "damage force reduction" 0.3 "airblast vulnerability multiplier" 0.4 "airblast vertical vulnerability multiplier" 0.1 "rage giving scale" 0.2 "override footstep sound set" 2 "cannot pick up intelligence" 1 } FireInput { Target "StartTheFight" Action Trigger Delay 0 Cooldown 0 Repeats 1 } EventChangeAttributes { FireBulletsPrep { Item "the huo long heatmaker" Taunt //Taunt periodically { Delay 0 //Time before the first taunt starts (Default: 10) Cooldown 0 //Time between each taunt (Default: 10) Repeats 0 //How many times the bot should taunt in total (Default: 0 - Infinite) Duration 1 //Duration of a looping taunt (Default: 0.1) Name "Taunt: Russian Rubdown" //If set, uses this item taunt instead of default } FireInput { Target player Action $SetProp$m_iszClassIcon Param pyro_hyper Delay 0 Cooldown 0 Repeats 1 } CharacterAttributes { "move speed bonus" 0.4 "damage force reduction" 0.3 "airblast vulnerability multiplier" 0.4 "airblast vertical vulnerability multiplier" 0.1 "rage giving scale" 0.2 "override footstep sound set" 2 "cannot pick up intelligence" 1 "gesture speed increase" 4 } } FireBullets { Item "the huo long heatmaker" WeaponRestrictions PrimaryOnly FireInput { Target player Action $SetProp$m_iszClassIcon Param heavy_ignite Delay 0 Cooldown 0 Repeats 1 } CharacterAttributes { "move speed bonus" 0.4 "damage force reduction" 0.3 "airblast vulnerability multiplier" 0.4 "airblast vertical vulnerability multiplier" 0.1 "rage giving scale" 0.2 "override footstep sound set" 2 "cannot pick up intelligence" 1 "Set DamageType Ignite" 1 "weapon burn dmg increased" 3 } } FireballShotgun { Item "Iron Curtain" WeaponRestrictions PrimaryOnly FireInput { Target player Action $SetProp$m_iszClassIcon Param heavy_fireballgun Delay 0 Cooldown 0 Repeats 1 } CharacterAttributes { "move speed bonus" 0.4 "damage force reduction" 0.3 "airblast vulnerability multiplier" 0.4 "airblast vertical vulnerability multiplier" 0.1 "rage giving scale" 0.2 "override footstep sound set" 2 "cannot pick up intelligence" 1 "damage penalty" 0.75 "override projectile type extra" "spellfireball" // Attributes "fire rate penalty" 20 "projectile spread angle penalty" 7 "mult projectile count" 5 "dmg bonus vs buildings" 5 } } YummyCrits //Add more buffs? { Item "Iron Curtain" FireInput { Target player Action $SetProp$m_iszClassIcon Param demoknight_bottle_lite Delay 0 Cooldown 0 Repeats 1 } Addcond { Index 11 Delay 3 Duration 20 } Taunt //Taunt periodically { Delay 0 //Time before the first taunt starts (Default: 10) Cooldown 0 //Time between each taunt (Default: 10) Repeats 0 //How many times the bot should taunt in total (Default: 0 - Infinite) Duration 4 //Duration of a looping taunt (Default: 0.1) Name "Taunt: Cheers!" //If set, uses this item taunt instead of default } CharacterAttributes { "move speed bonus" 0.4 "damage force reduction" 0.3 "airblast vulnerability multiplier" 0.4 "airblast vertical vulnerability multiplier" 0.1 "rage giving scale" 0.2 "override footstep sound set" 2 "cannot pick up intelligence" 1 "health regen" 1800 "gesture speed increase" 2 } } Deflection { Item "The Brass Beast" WeaponRestrictions PrimaryOnly FireInput { Target player Action $SetProp$m_iszClassIcon Param heavy_deflector Delay 0 Cooldown 0 Repeats 1 } CharacterAttributes { "move speed bonus" 0.4 "damage force reduction" 0.3 "airblast vulnerability multiplier" 0.4 "airblast vertical vulnerability multiplier" 0.1 "rage giving scale" 0.2 "override footstep sound set" 2 "cannot pick up intelligence" 1 "attack projectiles" 2 } } FastFiring { Item "Tomislav" WeaponRestrictions PrimaryOnly FireInput { Target player Action $SetProp$m_iszClassIcon Param heavy_hyper Delay 0 Cooldown 0 Repeats 1 } CharacterAttributes { "move speed bonus" 0.4 "damage force reduction" 0.3 "airblast vulnerability multiplier" 0.4 "airblast vertical vulnerability multiplier" 0.1 "rage giving scale" 0.2 "override footstep sound set" 2 "cannot pick up intelligence" 1 "fire rate bonus" 0.4 } } } } } Wave //WAVE 1 - CASH 900 { WaitWhenDone 65 Checkpoint Yes Explanation { Line "{red}haha funny Frantic Flood superbuff time to throw more awesomes epic and cool random hard shit like every superbuff real. Also I ate your cash " } InitWaveOutput { Target relay_A Action Trigger } StartWaveOutput { Target wave_start_relay Action Trigger } DoneOutput { Target wave_finished_relay Action Trigger } WaveSpawn { Name Main1 TotalCurrency 100 TotalCount 20 MaxActive 8 SpawnCount 2 Where spawnbot_left Where spawnbot_right WaitBeforeStarting 0 WaitBetweenSpawns 5 RandomSpawn 1 TFBot { Class Soldier Skill Normal } } WaveSpawn { Name Main1 TotalCurrency 150 TotalCount 6 MaxActive 4 SpawnCount 2 Where spawnbot_left Where spawnbot_right WaitBeforeStarting 0 WaitBetweenSpawns 20 RandomSpawn 1 TFBot { Class Demoman Name "Giant Demoman" ClassIcon demo_giant Skill Expert Health 3300 WeaponRestrictions PrimaryOnly Attributes HoldFireUntilFullReload Attributes MiniBoss ItemAttributes { ItemName "TF_WEAPON_GRENADELAUNCHER" } CharacterAttributes { "move speed bonus" 0.5 "damage force reduction" 0.5 "airblast vulnerability multiplier" 0.5 "override footstep sound set" 4 } } } WaveSpawn { WaitForAllSpawned Main1 TotalCurrency 100 TotalCount 40 MaxActive 15 SpawnCount 5 Where spawnbot_left_tank Where spawnbot_right_tank WaitBeforeStarting 15 WaitBetweenSpawns 5 RandomSpawn 1 TFBot { Template T_TFBot_Pyro_Flaregun Tag flank } } WaveSpawn { WaitForAllDead Main1 Name Main2 TotalCurrency 100 TotalCount 2 MaxActive 2 SpawnCount 1 Where spawnbot_left Where spawnbot_right WaitBeforeStarting 0 WaitBetweenSpawns 40 RandomSpawn 1 TFBot { Template T_TFBot_Giant_Heavyweapons } } WaveSpawn { WaitForAllSpawned Main2 TotalCurrency 150 TotalCount 21 MaxActive 9 SpawnCount 3 Where spawnbot_left_tank Where spawnbot_right_tank WaitBeforeStarting 0 WaitBetweenSpawns 11 RandomSpawn 1 Support 1 TFBot { Class Scout Name "Scout" WeaponRestrictions PrimaryOnly Skill Normal Tag flank } } WaveSpawn { WaitForAllDead Main2 TotalCurrency 100 TotalCount 3 MaxActive 2 SpawnCount 1 Where spawnbot_left Where spawnbot_right WaitBeforeStarting 0 WaitBetweenSpawns 15 RandomSpawn 1 TFBot { Template T_TFBot_Giant_Scout_Fast } } WaveSpawn //Consider adding demomen to this subwave? { WaitForAllDead Main2 TotalCurrency 1150 TotalCount 24 MaxActive 9 SpawnCount 3 Where spawnbot_left Where spawnbot_right WaitBeforeStarting 0 WaitBetweenSpawns 2.8 RandomSpawn 1 Support limited TFBot { Template T_TFBot_Sniper_Huntsman Attributes "AlwaysCrit" } } } Wave //WAVE 2 - CASH 1000 { WaitWhenDone 65 Checkpoint Yes Explanation { Line "{red}Waiter, Waiter! More MaxActive 22 please!" } InitWaveOutput { Target relay_E Action Trigger } StartWaveOutput { Target wave_start_relay Action Trigger } DoneOutput { Target wave_finished_relay Action Trigger } WaveSpawn { Name Main1 TotalCurrency 25 TotalCount 3 MaxActive 2 SpawnCount 1 Where spawnbot_left WaitBeforeStarting 0 WaitBetweenSpawns 18 TFBot { Template GiantHomingSoldier } } WaveSpawn { Name Main1b TotalCurrency 25 TotalCount 27 MaxActive 22 SpawnCount 3 Where spawnbot_left Where spawnbot_right WaitBeforeStarting 0 WaitBetweenSpawns 6 RandomSpawn 1 TFBot { Template T_TFBot_Pyro Skill Easy } } WaveSpawn { Name Main1b TotalCurrency 125 TotalCount 22 MaxActive 22 SpawnCount 2 Where spawnbot_left_tank Where spawnbot_right_tank WaitBeforeStarting 0 WaitBetweenSpawns 5 RandomSpawn 1 TFBot { Class Scout WeaponRestrictions SecondaryOnly Name "Pistol Scout" ClassIcon scout_pistol_nys Skill Easy } } WaveSpawn { WaitForAllDead Main1 WaitForAllSpawned Main1b Name Main2 TotalCurrency 125 TotalCount 4 MaxActive 4 SpawnCount 1 Where spawnbot_left Where spawnbot_right WaitBeforeStarting 0 WaitBetweenSpawns 20 RandomSpawn 1 Tank { Template MonorailTank StartingPathTrackNode monorail_path_B Health 9500 } FirstSpawnOutput { Target relay_monorail_hologram_B Action Trigger } DoneOutput { Target monorail_holograms_clear_relay Action Trigger } } WaveSpawn { WaitForAllSpawned Main1 Name Main2b TotalCurrency 150 TotalCount 22 MaxActive 22 SpawnCount 2 Where spawnbot_left_tank Where spawnbot_right_tank WaitBeforeStarting 0 WaitBetweenSpawns 5 RandomSpawn 1 TFBot { Template T_TFBot_Demo_Burst Tag flank } } WaveSpawn { WaitForAllDead Main1 WaitForAllSpawned Main1b Name Main2 TotalCurrency 150 TotalCount 3 MaxActive 3 SpawnCount 1 Where spawnbot_left Where spawnbot_right WaitBeforeStarting 0 WaitBetweenSpawns 15 RandomSpawn 1 TFBot { Template T_TFBot_Giant_Soldier_Spammer } } WaveSpawn { WaitForAllDead Main2b Name Main3b TotalCurrency 150 TotalCount 16 MaxActive 16 SpawnCount 1 Where spawnbot_left Where spawnbot_right WaitBeforeStarting 0 WaitBetweenSpawns 3 RandomSpawn 1 TFBot { Class Heavyweapons Name "Heavy" } } WaveSpawn { WaitForAllSpawned Main2 Name Main3 TotalCurrency 75 TotalCount 5 MaxActive 4 SpawnCount 1 Where spawnbot_left Where spawnbot_right WaitBeforeStarting 5 WaitBetweenSpawns 5 RandomSpawn 1 TFBot { Template T_TFBot_Giant_Soldier_Extended_Buff_Banner } } WaveSpawn { WaitForAllSpawned Main3 TotalCurrency 175 TotalCount 2 MaxActive 2 SpawnCount 1 Where spawnbot_left Where spawnbot_right WaitBeforeStarting 25 WaitBetweenSpawns 5 RandomSpawn 1 TFBot { Template T_TFBot_Giant_Heavyweapons_Shotgun } } WaveSpawn { WaitForAllDead Main3b TotalCurrency 0 TotalCount 6 MaxActive 16 SpawnCount 2 Where spawnbot_left_tank Where spawnbot_right_tank WaitBeforeStarting 0 WaitBetweenSpawns 2 RandomSpawn 1 Support 1 TFBot { Template T_TFBot_Demoman Skill Easy Tag flank } } } Wave //WAVE 3 - CASH 800 { WaitWhenDone 65 Checkpoint Yes Explanation { Line "{red}Spam and HP buffs are surely the answer..." } InitWaveOutput { Target relay_C Action Trigger } StartWaveOutput { Target wave_start_relay Action Trigger } DoneOutput { Target wave_finished_relay Action Trigger } WaveSpawn { Name Main1 TotalCurrency 50 TotalCount 6 MaxActive 4 SpawnCount 3 Where spawnbot_left WaitBeforeStarting 0 WaitBetweenSpawns 20 Squad { TFBot { Template T_TFBot_Giant_Soldier Item "The Cow Mangler 5000" ClassIcon soldier_mangler Attributes "HoldFireUntilFullReload" Attributes "AlwaysCrit" FireWeapon { Delay 10 //Time before the first fire input starts (Default: 10) Cooldown 2 //Time between each fire input (Default: 10) Repeats 0 //How many times should bot use the fire input in total (Default: 0 - Infinite) //IfSeeTarget 1 //When set to 1, this task activates only when the bot can see the target player (Default 0 - Always activate) Duration 2 //How long should the button be pressed (Default: 0.1) Type "Secondary" } CharacterAttributes { "damage bonus" 1.5 "faster reload rate" 0.1 "clip size bonus" 0.25 } } TFBot { Template GiantKritzMedic } TFBot { Template GiantKritzMedic } } } WaveSpawn { Name Main1 TotalCurrency 50 TotalCount 26 MaxActive 8 SpawnCount 2 Where spawnbot_left Where spawnbot_right WaitBeforeStarting 0 WaitBetweenSpawns 4 RandomSpawn 1 TFBot { Template T_TFBot_Soldier_Extended_Battalion } } WaveSpawn { WaitForAllSpawned Main1 TotalCurrency 50 TotalCount 64 MaxActive 12 SpawnCount 4 Where spawnbot_left Where spawnbot_right WaitBeforeStarting 5 WaitBetweenSpawns 0.5 RandomSpawn 1 TFBot { Class Scout Name "Guillotine Scout" Item "The Flying Guillotine" WeaponRestrictions SecondaryOnly Attributes "AlwaysCrit" ClassIcon scout_guillotine CharacterAttributes { "effect bar recharge rate increased" 0.1 } } } WaveSpawn { WaitForAllDead Main1 Name Main2 TotalCurrency 50 TotalCount 6 MaxActive 3 SpawnCount 1 Where spawnbot_left Where spawnbot_right WaitBeforeStarting 0 WaitBetweenSpawns 8 RandomSpawn 1 TFBot { Template T_TFBot_Giant_Pyro } } WaveSpawn { WaitForAllDead Main1 Name Main2 TotalCurrency 100 TotalCount 4 MaxActive 2 SpawnCount 1 Where spawnbot_left Where spawnbot_right WaitBeforeStarting 0 WaitBetweenSpawns 12 RandomSpawn 1 TFBot { Template GiantHomingSoldierRapid } } WaveSpawn { WaitForAllDead Main2 Name Main3 TotalCurrency 100 TotalCount 1 MaxActive 1 SpawnCount 1 Where spawnbot_left Where spawnbot_right WaitBeforeStarting 0 WaitBetweenSpawns 0 RandomSpawn 1 Tank { Template MonorailTank StartingPathTrackNode monorail_path_B Health 43000 Speed 50 } FirstSpawnOutput { Target relay_monorail_hologram_B Action Trigger } } WaveSpawn { WaitForAllDead Main2 Name Main3 TotalCurrency 100 TotalCount 1 MaxActive 1 SpawnCount 1 Where spawnbot_left Where spawnbot_right WaitBeforeStarting 26 WaitBetweenSpawns 0 RandomSpawn 1 Tank { Template MonorailTank StartingPathTrackNode monorail_path_E Health 41000 Speed 50 } FirstSpawnOutput { Target relay_monorail_hologram_E Action Trigger } DoneOutput { Target monorail_holograms_clear_relay Action Trigger } } WaveSpawn { WaitForAllDead Main2 Name Main3 TotalCurrency 100 TotalCount 5 MaxActive 4 SpawnCount 1 Where spawnbot_left Where spawnbot_right WaitBeforeStarting 0 WaitBetweenSpawns 7 RandomSpawn 1 TFBot { Template T_TFBot_Giant_Demo_Burst } } WaveSpawn { WaitForAllSpawned Main2 Name Main3 TotalCurrency 100 TotalCount 22 MaxActive 8 SpawnCount 2 Where spawnbot_left_tank Where spawnbot_right_tank WaitBeforeStarting 10 WaitBetweenSpawns 6 RandomSpawn 1 Support limited TFBot { Template T_TFBot_Heavyweapons_Shotgun } } WaveSpawn { WaitForAllSpawned Main2 Name Main3 TotalCurrency 100 TotalCount 16 MaxActive 10 SpawnCount 2 Where spawnbot_left_tank Where spawnbot_right_tank WaitBeforeStarting 10 WaitBetweenSpawns 1 RandomSpawn 1 Support 1 TFBot { Template T_TFBot_Pyro_Flaregun } } } Wave //WAVE 4 - CASH 900 { WaitWhenDone 65 Checkpoint Yes Explanation { Line "{red}We need more gun! There aren't enough random buffs!" } InitWaveOutput { Target relay_D Action Trigger } StartWaveOutput { Target wave_start_relay Action Trigger } DoneOutput { Target wave_finished_relay Action Trigger } WaveSpawn { Name Main1 TotalCurrency 50 TotalCount 3 MaxActive 2 SpawnCount 1 Where spawnbot_left WaitBeforeStarting 0 WaitBetweenSpawns 13 RandomSpawn 1 TFBot { Template T_TFBot_Giant_Soldier_Extended_Concheror } } WaveSpawn { Name Main1 TotalCurrency 50 TotalCount 3 MaxActive 2 SpawnCount 1 Where spawnbot_right WaitBeforeStarting 0 WaitBetweenSpawns 13 RandomSpawn 1 TFBot { Template T_TFBot_Giant_Soldier_Extended_Concheror } } WaveSpawn { Name Main1b TotalCurrency 50 TotalCount 22 MaxActive 8 SpawnCount 2 Where spawnbot_right WaitBeforeStarting 0 WaitBetweenSpawns 5 RandomSpawn 1 TFBot { Class Scout Name "Scout" WeaponRestrictions PrimaryOnly Skill Normal Tag flank CharacterAttributes { "damage bonus" 0.25 "bullets per shot bonus" 5 } } } WaveSpawn { Name Main1b TotalCurrency 50 TotalCount 21 MaxActive 6 SpawnCount 3 Where spawnbot_left WaitBeforeStarting 0 WaitBetweenSpawns 9 RandomSpawn 1 TFBot { Class Soldier Attributes "AlwaysCrit" Skill Normal RocketCustomParticle "eyeboss_projectile" HomingRockets { RocketSpeed 0.33 // Multiplier of rocket speed. 1 for default speed Acceleration -64 TurnPower 999 //How fast should the rocket rotate to face the target= MaxAimError 360 //Max angle between rocket and the target } CharacterAttributes { "blast radius increased" 20 } } } WaveSpawn { WaitForAllDead Main1 WaitForAllSpawned Main1b Name Main2 TotalCurrency 150 TotalCount 36 MaxActive 12 SpawnCount 6 Where spawnbot_right Where spawnbot_left WaitBeforeStarting 0 WaitBetweenSpawns 4 RandomSpawn 1 TFBot { Template T_TFBot_Giant_Scout_Fast } } WaveSpawn { WaitForAllDead Main1 WaitForAllSpawned Main1b Name Main2b TotalCurrency 125 TotalCount 9 MaxActive 5 SpawnCount 1 Where spawnbot_right Where spawnbot_left WaitBeforeStarting 0 WaitBetweenSpawns 4 RandomSpawn 1 TFBot { Template T_TFBot_Heavyweapons_Fist Tag bot_giant } } WaveSpawn { WaitForAllDead Main1 WaitForAllSpawned Main1b Name Main2b TotalCurrency 100 TotalCount 24 MaxActive 9 SpawnCount 3 Where spawnbot_right Where spawnbot_left WaitBeforeStarting 0 WaitBetweenSpawns 4 RandomSpawn 1 TFBot { Template T_TFBot_Scout_FAN CharacterAttributes { "damage bonus" 0.25 "bullets per shot bonus" 5 } } } WaveSpawn { WaitForAllDead Main2 WaitForAllSpawned Main2b Name Main3 TotalCurrency 125 TotalCount 4 MaxActive 4 SpawnCount 2 Where spawnbot_right Where spawnbot_left WaitBeforeStarting 0 WaitBetweenSpawns 10 RandomSpawn 1 Squad { TFBot { Template T_TFBot_Giant_Demoman_PrinceTavish Attributes AlwaysFireWeapon CharacterAttributes { "melee range multiplier" 5 } } TFBot { Template T_TFBot_Giant_Soldier_Extended_Concheror Addcond { Index 91 } } } } WaveSpawn { WaitForAllDead Main2 WaitForAllSpawned Main2b Name Main3b TotalCurrency 100 TotalCount 16 MaxActive 4 SpawnCount 2 Where spawnbot_left_tank Where spawnbot_right_tank WaitBeforeStarting 10 WaitBetweenSpawns 3.5 RandomSpawn 1 Support 1 TFBot { Template T_TFBot_Pyro_Flaregun Tag flank } } WaveSpawn { WaitForAllDead Main2 WaitForAllSpawned Main2b Name Main3b TotalCurrency 100 TotalCount 8 MaxActive 12 SpawnCount 1 Where spawnbot_left Where spawnbot_right WaitBeforeStarting 40 WaitBetweenSpawns 1 RandomSpawn 1 Support 1 TFBot { Attributes "AlwaysCrit" Class Heavyweapons Skill Easy CharacterAttributes { "damage bonus" 0.25 "bullets per shot bonus" 5 } } } } Wave //WAVE 5 - CASH 800 { WaitWhenDone 65 Checkpoint Yes Explanation { Line "{red} Quick! Send more at once! Change the weapon! Surely giving them speed is what we need!" } InitWaveOutput { Target relay_E Action Trigger } StartWaveOutput { Target wave_start_relay Action Trigger } DoneOutput { Target wave_finished_relay Action Trigger } WaveSpawn { Name Main1 TotalCurrency 100 TotalCount 3 MaxActive 3 SpawnCount 3 Where spawnbot_right Where spawnbot_left WaitBeforeStarting 0 WaitBetweenSpawns 10 RandomSpawn 1 TFBot { Template T_TFBot_Giant_Heavyweapons Item "The Fuming Flamer" ClassIcon heavy_fireballgun Attributes "AlwaysCrit" CharacterAttributes { "move speed bonus" 1.3 "fire rate bonus" 0.3 } } } WaveSpawn { Name Main1b TotalCurrency 50 TotalCount 12 MaxActive 9 SpawnCount 3 Where spawnbot_right_tank Where spawnbot_left_tank WaitBeforeStarting 0 WaitBetweenSpawns 4 RandomSpawn 1 TFBot { Template T_TFBot_Pyro Skill Hard Attributes "AlwaysCrit" } } WaveSpawn { Name Main1b TotalCurrency 100 TotalCount 8 MaxActive 6 SpawnCount 2 Where spawnbot_right Where spawnbot_left WaitBeforeStarting 0 WaitBetweenSpawns 5 RandomSpawn 1 TFBot { Template T_TFBot_Demo_Burst Attributes "AlwaysCrit" } } WaveSpawn { WaitForAllDead Main1 WaitForAllSpawned Main1b Name Main2 TotalCurrency 50 TotalCount 2 MaxActive 2 SpawnCount 1 Where spawnbot_right Where spawnbot_left WaitBeforeStarting 0 WaitBetweenSpawns 30 RandomSpawn 1 Tank { StartingPathTrackNode monorail_path_E Template MonorailTank Health 5000 Speed 500 } FirstSpawnOutput { Target relay_monorail_hologram_E Action Trigger } DoneOutput { Target monorail_holograms_clear_relay Action Trigger } } WaveSpawn { WaitForAllDead Main1 WaitForAllSpawned Main1b Name Main2 TotalCurrency 100 TotalCount 6 MaxActive 4 SpawnCount 1 Where spawnbot_right Where spawnbot_left WaitBeforeStarting 0 WaitBetweenSpawns 8 RandomSpawn 1 TFBot { Template T_TFBot_Giant_Soldier_RocketPush CharacterAttributes { "clip size bonus" 5 "reload time decreased" 0.02 } } } WaveSpawn { WaitForAllDead Main1 WaitForAllSpawned Main1b Name Main2b TotalCurrency 50 TotalCount 18 MaxActive 8 SpawnCount 2 Where spawnbot_right Where spawnbot_left WaitBeforeStarting 0 WaitBetweenSpawns 5 RandomSpawn 1 TFBot { Template T_TFBot_Scout_Bonk Attributes "AlwaysCrit" } } WaveSpawn { WaitForAllDead Main1 WaitForAllSpawned Main1b Name Main2b TotalCurrency 50 TotalCount 18 MaxActive 9 SpawnCount 3 Where spawnbot_right Where spawnbot_left WaitBeforeStarting 0 WaitBetweenSpawns 6 RandomSpawn 1 TFBot { Template T_TFBot_Heavyweapons_Shotgun } } WaveSpawn //Remove a medic if it is too difficult { WaitForAllDead Main2 Name Main3 TotalCurrency 50 TotalCount 4 MaxActive 4 SpawnCount 2 Where spawnbot_right WaitBeforeStarting 0 WaitBetweenSpawns 14 RandomSpawn 1 Squad { TFBot { Template T_TFBot_Giant_Demoman ClassIcon demo_rapid_giant Attributes "AlwaysCrit" } TFBot { Template GiantUberMedic } } } WaveSpawn { WaitForAllDead Main2b Name Main3 TotalCurrency 100 TotalCount 20 MaxActive 4 SpawnCount 1 Where spawnbot_right_tank Where spawnbot_left_tank WaitBeforeStarting 0 WaitBetweenSpawns 2 RandomSpawn 1 Support 1 TFBot { Class Scout Attributes "AlwaysCrit" Name "Scout" Tag flank } } WaveSpawn { WaitForAllDead Main2 Name Main3 TotalCurrency 50 TotalCount 11 MaxActive 3 SpawnCount 1 Where spawnbot_right WaitBeforeStarting 0 WaitBetweenSpawns 6 RandomSpawn 1 Support 1 TFBot { Template T_TFBot_Soldier_RocketShotgun CharacterAttributes { "clip size bonus" 10 } } } WaveSpawn { WaitForAllDead Main2 Name Main3 TotalCurrency 100 TotalCount 10 MaxActive 3 SpawnCount 1 Where spawnbot_right WaitBeforeStarting 0 WaitBetweenSpawns 7 RandomSpawn 1 Support limited TFBot { Template T_TFBot_Soldier_Extended_Concheror RocketCustomParticle "eyeboss_projectile" HomingRockets { RocketSpeed 0.75 // Multiplier of rocket speed. 1 for default speed Acceleration -128 TurnPower 999 //How fast should the rocket rotate to face the target= MaxAimError 360 //Max angle between rocket and the target } CharacterAttributes { "blast radius increased" 20 "damage bonus" 2 } } } } Wave //WAVE 6 - CASH 1000 { WaitWhenDone 65 Checkpoint Yes Explanation { Line "{red}More random buffs to bots! more high HP stuff! We need more artificial difficulty!" } InitWaveOutput { Target relay_B Action Trigger } StartWaveOutput { Target wave_start_relay Action Trigger } DoneOutput { Target wave_finished_relay Action Trigger } WaveSpawn { Name Main1 TotalCurrency 50 TotalCount 7 MaxActive 5 SpawnCount 1 Where spawnbot_right Where spawnbot_left WaitBeforeStarting 0 WaitBetweenSpawns 3 RandomSpawn 1 TFBot { Template GiantBisonRapid CharacterAttributes { "fire rate bonus" 0.04 "reload time decreased" 0.04 } } } WaveSpawn { Name Main1 TotalCurrency 50 TotalCount 1 MaxActive 1 SpawnCount 1 Where spawnbot_right Where spawnbot_left WaitBeforeStarting 0 WaitBetweenSpawns 12 RandomSpawn 1 Tank { StartingPathTrackNode tank_path_D Health 40000 OnKilledOutput { Target boss_dead_relay Action Trigger } OnBombDroppedOutput { Target boss_deploy_relay Action Trigger } } FirstSpawnOutput { Target relay_tank_hologram_D Action Trigger } DoneOutput { Target tank_holograms_clear_relay Action Trigger } } WaveSpawn { Name Main1b TotalCurrency 75 TotalCount 40 MaxActive 12 SpawnCount 4 Where spawnbot_right Where spawnbot_left WaitBeforeStarting 0 WaitBetweenSpawns 3 RandomSpawn 1 TFBot { Template T_TFBot_Demoman_Knight Attributes "AlwaysCrit" } } WaveSpawn { Name Main1b TotalCurrency 25 TotalCount 20 MaxActive 6 SpawnCount 4 Where spawnbot_right Where spawnbot_left WaitBeforeStarting 0 WaitBetweenSpawns 4 RandomSpawn 1 TFBot { Template T_TFBot_Demoman Attributes "AlwaysCrit" } } WaveSpawn { WaitForAllDead Main1 WaitForAllSpawned Main1b Name Main2 TotalCurrency 100 TotalCount 2 MaxActive 2 SpawnCount 1 Where spawnbot_right Where spawnbot_left WaitBeforeStarting 0 WaitBetweenSpawns 16 RandomSpawn 1 TFBot { Template T_TFBot_Giant_Heavyweapons_BrassBeast ClassIcon heavy_brass_nys CharacterAttributes { "minigun spinup time increased" 2 "bullets per shot bonus" 10 } } } WaveSpawn { WaitForAllDead Main1b Name Main2b TotalCurrency 125 TotalCount 15 MaxActive 9 SpawnCount 3 Where spawnbot_right Where spawnbot_left WaitBeforeStarting 0 WaitBetweenSpawns 7 RandomSpawn 1 TFBot { Class Scout WeaponRestrictions SecondaryOnly Name "Pistol Scout" ClassIcon scout_pistol_nys Skill Normal Attributes "AlwaysCrit" } } WaveSpawn { WaitForAllDead Main1b Name Main2b TotalCurrency 75 TotalCount 12 MaxActive 6 SpawnCount 2 Where spawnbot_right_tank Where spawnbot_left_tank WaitBeforeStarting 0 WaitBetweenSpawns 5 RandomSpawn 1 TFBot { Template FamilyBusiness Tag flank } } WaveSpawn { WaitForAllDead Main2 Name Main3 TotalCurrency 50 TotalCount 1 MaxActive 1 SpawnCount 1 Where spawnbot_right Where spawnbot_left WaitBeforeStarting 10 WaitBetweenSpawns 0 RandomSpawn 1 Tank { Template MonorailTank StartingPathTrackNode monorail_path_B Health 26000 } FirstSpawnOutput { Target relay_monorail_hologram_B Action Trigger } } WaveSpawn { WaitForAllDead Main2 Name Main3 TotalCurrency 50 TotalCount 1 MaxActive 1 SpawnCount 1 Where spawnbot_right Where spawnbot_left WaitBeforeStarting 40 WaitBetweenSpawns 0 RandomSpawn 1 Tank { Template MonorailTank StartingPathTrackNode monorail_path_D Health 22000 } FirstSpawnOutput { Target relay_monorail_hologram_D Action Trigger } DoneOutput { Target monorail_holograms_clear_relay Action Trigger } } WaveSpawn { WaitForAllDead Main2 Name Main3 TotalCurrency 50 TotalCount 1 MaxActive 1 SpawnCount 1 Where spawnbot_right Where spawnbot_left WaitBeforeStarting 0 WaitBetweenSpawns 0 RandomSpawn 1 Tank { StartingPathTrackNode tank_path_B Health 50000 Speed 50 OnKilledOutput { Target boss_dead_relay Action Trigger } OnBombDroppedOutput { Target boss_deploy_relay Action Trigger } } FirstSpawnOutput { Target relay_tank_hologram_B Action Trigger } DoneOutput { Target tank_holograms_clear_relay Action Trigger } } WaveSpawn { WaitForAllDead Main2 Name Main3 TotalCurrency 100 TotalCount 9 MaxActive 6 SpawnCount 3 Where spawnbot_right Where spawnbot_left WaitBeforeStarting 0 WaitBetweenSpawns 31 RandomSpawn 1 Squad { TFBot { Template T_TFBot_Giant_Soldier_SlowBarrage } TFBot { Template GiantShieldMedic } TFBot { Template GiantKritzMedic } } } WaveSpawn { WaitForAllDead Main2b Name Main3b TotalCurrency 100 TotalCount 18 MaxActive 4 SpawnCount 2 Where spawnbot_right Where spawnbot_left WaitBeforeStarting 0 WaitBetweenSpawns 4.5 RandomSpawn 1 Support limited TFBot { Template T_TFBot_Scout_FAN WeaponRestrictions PrimaryOnly Attributes "AlwaysCrit" Tag flank } } WaveSpawn { WaitForAllDead Main2b Name Main3b TotalCurrency 75 TotalCount 16 MaxActive 4 SpawnCount 2 Where spawnbot_right Where spawnbot_left WaitBeforeStarting 0 WaitBetweenSpawns 10 RandomSpawn 1 Support 1 TFBot { Template T_TFBot_Demo_Burst } } WaveSpawn { WaitForAllDead Main2b Name Main3b TotalCurrency 75 TotalCount 10 MaxActive 8 SpawnCount 1 Where spawnbot_right Where spawnbot_left WaitBeforeStarting 60 WaitBetweenSpawns 2 RandomSpawn 1 Support 1 TFBot { Template T_TFBot_Heavyweapons_Fist Tag bot_giant } } } Wave //WAVE 7 - CASH 1100 { WaitWhenDone 65 Checkpoint Yes InitWaveOutput { Target relay_B Action Trigger } StartWaveOutput { Target wave_start_relay Action Trigger } DoneOutput { Target wave_finished_relay Action Trigger } Explanation { Line "{red}lmoa time for cool epic superbuff boss wave" Line "" Line "{ffff00}///MONORAIL SAFETY PROTOCOL OVERRIDE ENABLED///" Line "{ffff00}///SPEED NO LONGER LIMITED///" Line "{ff0000}///DANGER!!! ROBOT INHIBITORS DISABLED///" } WaveSpawn { TotalCurrency 100 TotalCount 6 MaxActive 2 SpawnCount 1 Where spawnbot_right Where spawnbot_left WaitBeforeStarting 0 WaitBetweenSpawns 30 RandomSpawn 1 Support 1 RandomChoice { Tank { Template MonorailTank StartingPathTrackNode monorail_path_E Speed 125 Health 12000 } Tank { Template MonorailTank StartingPathTrackNode monorail_path_B Speed 125 Health 14000 } } FirstSpawnOutput { Target relay_monorail_hologram_B Action Trigger } DoneOutput { Target tank_holograms_clear_relay Action Trigger } } WaveSpawn { Name Main1 TotalCurrency 50 TotalCount 4 MaxActive 4 SpawnCount 4 Where spawnbot_right Where spawnbot_left WaitBeforeStarting 0 WaitBetweenSpawns 9 RandomSpawn 1 Squad { TFBot { Template TheGiantHeavyWeaponsGuyBossDudeFromRenfe Action Mobber Attributes "AlwaysCrit" FireInput { Target "StartTheFight" Action Trigger Delay 0 Cooldown 0 Repeats 1 } } TFBot { Template T_TFBot_Medic_BigHeal } TFBot { Template T_TFBot_Medic_BigHeal } TFBot { Template T_TFBot_Medic_BigHeal } } } WaveSpawn { Name Main1 TotalCurrency 50 TotalCount 2 MaxActive 2 SpawnCount 2 Where spawnbot_right Where spawnbot_left WaitBeforeStarting 60 WaitBetweenSpawns 9 RandomSpawn 1 TFBot { Template TheGiantHeavyWeaponsGuyBossDudeFromRenfe Attributes "AlwaysCrit" } } WaveSpawn { Name Main1b TotalCurrency 50 TotalCount 24 MaxActive 9 SpawnCount 3 Where spawnbot_right_tank Where spawnbot_left_tank WaitBeforeStarting 0 WaitBetweenSpawns 6 RandomSpawn 1 TFBot { Template FamilyBusiness } FirstSpawnOutput { Target relay_monorail_hologram_E Action Trigger } } WaveSpawn { WaitForAllDead Main1 WaitForAllSpawned Main1b Name Main3 TotalCurrency 100 TotalCount 8 MaxActive 6 SpawnCount 2 Where spawnbot_right Where spawnbot_left WaitBeforeStarting 0 WaitBetweenSpawns 14 RandomSpawn 1 TFBot { Template T_TFBot_Giant_Soldier_SlowBarrage } } WaveSpawn { WaitForAllDead Main1b Name Main2b TotalCurrency 100 TotalCount 32 MaxActive 6 SpawnCount 2 Where spawnbot_right Where spawnbot_left WaitBeforeStarting 0 WaitBetweenSpawns 3 RandomSpawn 1 TFBot { Class Scout Name "Scout" Tag flank Attributes "AlwaysCrit" } } WaveSpawn { WaitForAllDead Main2b Name Main3b TotalCurrency 100 TotalCount 18 MaxActive 6 SpawnCount 2 Where spawnbot_right Where spawnbot_left WaitBeforeStarting 0 WaitBetweenSpawns 5 RandomSpawn 1 TFBot { Class Heavyweapons WeaponRestrictions PrimaryOnly Skill Easy Attributes "AlwaysCrit" } } WaveSpawn { WaitForAllDead Main3 Name Main4 TotalCurrency 100 TotalCount 8 MaxActive 4 SpawnCount 2 Where spawnbot_right Where spawnbot_left WaitBeforeStarting 0 WaitBetweenSpawns 15 RandomSpawn 1 DoneOutput { Target FinalSubCheck Action Trigger } Squad { TFBot { Template GiantHeavyDeflector Attributes "AlwaysCrit" } TFBot { Template GiantUberMedic } } } WaveSpawn { WaitForAllDead Main3 Name Main4 TotalCurrency 100 TotalCount 4 MaxActive 2 SpawnCount 1 Where spawnbot_right Where spawnbot_left WaitBeforeStarting 0 WaitBetweenSpawns 15 RandomSpawn 1 DoneOutput { Target FinalSubCheck Action Trigger } TFBot { Template T_TFBot_Giant_Soldier_RocketShotgun Attributes "AlwaysCrit" } } WaveSpawn { WaitForAllDead Main3b Name Main4b TotalCurrency 100 TotalCount 26 MaxActive 6 SpawnCount 2 Where spawnbot_right Where spawnbot_left WaitBeforeStarting 0 WaitBetweenSpawns 3 RandomSpawn 1 Support 1 TFBot { Template T_TFBot_Demo_Burst Attributes "AlwaysCrit" } } WaveSpawn { WaitForAllDead Main3b Name Main4b TotalCurrency 50 TotalCount 18 MaxActive 4 SpawnCount 1 Where spawnbot_right Where spawnbot_left WaitBeforeStarting 0 WaitBetweenSpawns 3 RandomSpawn 1 Support 1 TFBot { Template T_TFBot_Pyro Skill Hard Tag flank } } WaveSpawn { WaitForAllDead Main3b Name Main4b TotalCurrency 50 TotalCount 15 MaxActive 4 SpawnCount 1 Where spawnbot_right Where spawnbot_left WaitBeforeStarting 0 WaitBetweenSpawns 3 RandomSpawn 1 Support limited TFBot { Template T_TFBot_Scout_Bonk Tag flank } } } }