#base robot_giant.pop #base robot_standard.pop #base robot_gatebot.pop #base robot_standard_red.pop #base robot_giant_red.pop population { StartingCurrency 1250 RespawnWaveTime 6 CanBotsAttackWhileInSpawnRoom no AddSentryBusterWhenDamageDealtExceeds 3000 AddSentryBusterWhenKillCountExceeds 12 ForceHoliday 2 EventPopfile Halloween PrecacheModel "models/watermine/drill_tank.mdl" PrecacheModel "models/watermine/drill_tank_damage1.mdl" PrecacheModel "models/watermine/drill_tank_damage2.mdl" PrecacheModel "models/watermine/drill_tank_damage3.mdl" Mission { Objective DestroySentries Where spawnbot BeginAtWave 1 RunForThisManyWaves 1 InitialCooldown 30 CooldownTime 45 DesiredCount 1 TFBot { Template T_TFBot_SentryBuster } } Mission { Objective Engineer Where spawnbot BeginAtWave 1 RunForThisManyWaves 1 InitialCooldown 25 CooldownTime 25 DesiredCount 1 TFBot { Class Engineer Name Engineer Skill Expert TeleportWhere spawnbot Health 275 Tag common } } Templates { Igniter_Minigun { Health 4000 Name "Flare Minigun" Scale 1.8 Class Pyro Skill Expert WeaponRestrictions SecondaryOnly Attributes "MiniBoss" ClassIcon Pyro_flare Item "The Flare Gun" ClassIcon pyro_detonator_lite CharacterAttributes { "airblast vulnerability multiplier" 0.2 "move speed penalty" 0.5 "damage force reduction" 0.3 "fire rate penalty" 0.12 "reload time decreased" 0.0001 "dmg bonus vs buildings" 4 "damage bonus" 0.35 } } SkeleBoss { Health 70000 Name "Chief Skellington" Scale 1.8 Class Soldier Skill Expert Attributes "MiniBoss" Attributes "UseBossHealthBar" Attributes "AlwaysCrit" ClassIcon soldier_spammer WeaponRestrictions PrimaryOnly Item "The Manneater" UseMeleeThreatPrioritization 1 CharacterAttributes { "airblast vulnerability multiplier" 0.1 "move speed penalty" 0.5 "damage force reduction" 0.1 "fire rate penalty" 0.6 "reload time decreased" 0.0001 "rage giving scale" 0.1 } Taunt //Taunt periodically { Delay 0 //Time before the first taunt starts (Default: 10) Cooldown 1 //Time between each taunt (Default: 10) Repeats 1 //How many times the bot should taunt in total (Default: 0 - Infinite) Duration 5 //Duration of a looping taunt (Default: 0.1) IfSeeTarget 1 //When set to 1, this task activates only when the bot can see the target player (Default 0 - Always activate) IfHealthBelow 60000 //When set, the task activates only when the bot health is below specified value //IfHealthAbove 100 //When set, the task activates only when the bot health is above specified value } Taunt //Taunt periodically { Delay 0 //Time before the first taunt starts (Default: 10) Cooldown 1 //Time between each taunt (Default: 10) Repeats 1 //How many times the bot should taunt in total (Default: 0 - Infinite) Duration 5 //Duration of a looping taunt (Default: 0.1) IfSeeTarget 1 //When set to 1, this task activates only when the bot can see the target player (Default 0 - Always activate) IfHealthBelow 40000 //When set, the task activates only when the bot health is below specified value //IfHealthAbove 100 //When set, the task activates only when the bot health is above specified value } Taunt //Taunt periodically { Delay 0 //Time before the first taunt starts (Default: 10) Cooldown 1 //Time between each taunt (Default: 10) Repeats 1 //How many times the bot should taunt in total (Default: 0 - Infinite) Duration 5 //Duration of a looping taunt (Default: 0.1) IfSeeTarget 1 //When set to 1, this task activates only when the bot can see the target player (Default 0 - Always activate) IfHealthBelow 20000 //When set, the task activates only when the bot health is below specified value //IfHealthAbove 100 //When set, the task activates only when the bot health is above specified value } AddCond //Adds conditions to bots { Index 5 //Condition index can be used instead Duration 5 // Duration of the condition effect (Default: 0 - infinite duration) IfHealthBelow 60000 //When set, the task activates only when the bot health is below specified value } AddCond //Adds conditions to bots { Index 5 //Condition index can be used instead Duration 5 // Duration of the condition effect (Default: 0 - infinite duration) IfHealthBelow 40000 //When set, the task activates only when the bot health is below specified value } AddCond //Adds conditions to bots { Index 5 //Condition index can be used instead Duration 5 // Duration of the condition effect (Default: 0 - infinite duration) IfHealthBelow 20000 //When set, the task activates only when the bot health is below specified value } ChangeAttributes { Delay 0 Repeats 1 Name "phasefinal" } ChangeAttributes { Delay 0 Repeats 1 IfHealthBelow 60000 Name "phaseA" } ChangeAttributes { Delay 0 Repeats 1 IfHealthBelow 40000 Name "phase1" } ChangeAttributes { Delay 0 Repeats 1 IfHealthBelow 20000 Name "phase2" } EventChangeAttributes { phaseA { UseMeleeThreatPrioritization 1 Item "The Original" Item "The Manneater" Skill Expert AimTrackingInterval 0.05 WeaponRestrictions PrimaryOnly Item "The Manneater" UseMeleeThreatPrioritization 1 CharacterAttributes { "airblast vulnerability multiplier" 0.1 "move speed penalty" 0.5 "damage force reduction" 0.1 "fire rate penalty" 0.6 "reload time decreased" 0.0001 "rage giving scale" 0.1 } } phase1 { UseMeleeThreatPrioritization 1 Item "The Original" Item "The Manneater" Skill Expert AimTrackingInterval 0.05 ItemAttributes { ItemName "The Original" "faster reload rate" 1.5 "damage bonus" 5 "fire rate bonus" 1.5 "projectile spread angle penalty" 5 "no self blast dmg" 1 "blast radius increased" 1.5 "use large smoke explosion" 1 "Projectile speed increased" 0.8 } CharacterAttributes { "move speed bonus" 0.5 "damage force reduction" 0.1 "airblast vulnerability multiplier" 0.1 "override footstep sound set" 3 "rage giving scale" 0.1 "airblast vertical vulnerability multiplier" 0.1 } } phase2 { UseMeleeThreatPrioritization 1 Attributes HoldFireUntilFullReload Item "The Beggar's Bazooka" Item "The Manneater" Attributes AlwaysCrit Skill Expert AimTrackingInterval 0.05 ItemAttributes { ItemName "The Beggar's Bazooka" "clip size upgrade atomic" 12.0 "mult crit dmg" 0.66 "faster reload rate" 0.2 "fire rate bonus" 0.2 "projectile spread angle penalty" 10 "no self blast dmg" 1 "can overload" 0 "projectile no deflect" 1 } CharacterAttributes { "move speed bonus" 0.5 "damage force reduction" 0.1 "airblast vulnerability multiplier" 0.1 "override footstep sound set" 3 "rage giving scale" 0.1 "airblast vertical vulnerability multiplier" 0.1 } } phasefinal { WeaponRestrictions MeleeOnly Attributes HoldFireUntilFullReload Item "The Manneater" Item "Shovel" Skill Expert AimTrackingInterval 0.05 ItemAttributes { ItemName "TF_WEAPON_SHOVEL" "damage bonus" 4 "mult crit dmg" 0.66 } CharacterAttributes { "move speed bonus" 2.5 "damage force reduction" 0.1 "airblast vulnerability multiplier" 0.1 "override footstep sound set" 3 "rage giving scale" 0.1 "airblast vertical vulnerability multiplier" 0.1 } } } } } Wave { WaitWhenDone 65 Checkpoint Yes StartWaveOutput { Target wave_start_relay Action Trigger } DoneOutput { Target wave_finished_relay Action Trigger } WaveSpawn { TotalCurrency 300 TotalCount 36 MaxActive 9 SpawnCount 3 Where spawnbot Where spawnbot_right WaitBeforeStarting 0 WaitBetweenSpawns 5 RandomSpawn 1 TFBot { Class Soldier Skill Normal Name "Direct Hit Soldier" Item "The Direct Hit" } } WaveSpawn { Name Main1 TotalCurrency 250 TotalCount 3 MaxActive 3 SpawnCount 1 Where spawnbot WaitBeforeStarting 0 WaitBetweenSpawns 25 TFBot { Template T_TFBot_Giant_Demo_Burst } } WaveSpawn { WaitForAllDead Main1 Name Main2a TotalCurrency 350 TotalCount 30 MaxActive 15 SpawnCount 3 Where spawnbot_left Where spawnbot_right WaitBeforeStarting 0 WaitBetweenSpawns 6 RandomSpawn 1 TFBot { Template T_TFBot_Demoman_Knight Tag flank } } WaveSpawn { WaitForAllDead Main1 Name Main2 TotalCurrency 250 TotalCount 3 MaxActive 3 SpawnCount 1 Where spawnbot WaitBeforeStarting 5 WaitBetweenSpawns 18 //Change back to 25 and remove a gheavy if too unbalanced TFBot { Template T_TFBot_Giant_Heavyweapons } } WaveSpawn { WaitForAllDead Main2 Name Main3 TotalCurrency 250 TotalCount 42 MaxActive 14 SpawnCount 2 Where spawnbot WaitBeforeStarting 5 WaitBetweenSpawns 2 Squad { TFBot { Class HeavyWeapons Skill Easy Name "Heavy" } TFBot { Template T_TFBot_Medic_QuickFix ClassIcon uber_quickfix_medic_nys } } } WaveSpawn { WaitForAllDead Main2 Name Main3 TotalCurrency 250 TotalCount 6 MaxActive 4 SpawnCount 1 Where spawnbot WaitBeforeStarting 0 WaitBetweenSpawns 18 TFBot { Template T_TFBot_Giant_Pyro } } WaveSpawn { WaitForAllSpawned Main2a TotalCurrency 250 TotalCount 42 MaxActive 9 SpawnCount 3 Where spawnbot_right Where spawnbot_left WaitBeforeStarting 10 WaitBetweenSpawns 6 Support limited RandomSpawn 1 TFBot { Class Scout Skill Normal Name "Pistol Scout" WeaponRestrictions SecondaryOnly Tag flank } } WaveSpawn { WaitForAllSpawned Main3 Name Main4 TotalCurrency 250 TotalCount 6 MaxActive 4 SpawnCount 2 Where spawnbot_left Where spawnbot_right WaitBeforeStarting 15 WaitBetweenSpawns 30 RandomSpawn 1 TFBot { Template T_TFBot_Giant_Soldier_Spammer_Reload } } WaveSpawn { WaitForAllDead Main3 TotalCurrency 200 TotalCount 44 MaxActive 12 SpawnCount 4 Where spawnbot WaitBeforeStarting 10 WaitBetweenSpawns 7 Support limited TFBot { Template T_TFBot_Demo_Burst } } WaveSpawn { WaitForAllDead Main4 TotalCurrency 100 TotalCount 14 MaxActive 5 SpawnCount 1 Where spawnbot WaitBeforeStarting 10 WaitBetweenSpawns 4 TFBot { Class HeavyWeapons Name "Heavy" } } WaveSpawn { WaitForAllDead Main4 Name MainIntermission1 TotalCurrency 400 TotalCount 8 MaxActive 8 SpawnCount 2 Where spawnbot_left WaitBeforeStarting 10 WaitBetweenSpawns 7 TFBot { Template T_TFBot_Giant_Demo_RapidFire } } WaveSpawn { WaitForAllDead MainIntermission1 Name Main5 TotalCurrency 150 TotalCount 8 MaxActive 5 SpawnCount 1 Where spawnbot WaitBeforeStarting 0 WaitBetweenSpawns 12 TFBot { Template Igniter_Minigun } } WaveSpawn { WaitForAllDead MainIntermission1 Name Main5tank TotalCurrency 75 TotalCount 1 MaxActive 1 SpawnCount 1 WaitBeforeStarting 0 WaitBetweenSpawns 32 Tank { Health 30000 Name Tank Speed 75 StartingPathTrackNode boss_path_1 OnKilledOutput { Target boss_dead_relay Action Trigger } OnBombDroppedOutput { Target boss_deploy_relay Action Trigger } Model //Set custom model on tank. Will spit harmless errors on client console if the model does not have enough sequences { Default "models/watermine/drill_tank.mdl" Damage1 "models/watermine/drill_tank_damage1.mdl" Damage2 "models/watermine/drill_tank_damage2.mdl" Damage3 "models/watermine/drill_tank_damage3.mdl" } } } WaveSpawn { WaitForAllSpawned Main5tank Name Main5 TotalCurrency 75 TotalCount 2 MaxActive 2 SpawnCount 1 WaitBeforeStarting 40 WaitBetweenSpawns 40 Tank { Health 13500 Name Tank Speed 75 StartingPathTrackNode boss_path_1 OnKilledOutput { Target boss_dead_relay Action Trigger } OnBombDroppedOutput { Target boss_deploy_relay Action Trigger } Model //Set custom model on tank. Will spit harmless errors on client console if the model does not have enough sequences { Default "models/watermine/drill_tank.mdl" Damage1 "models/watermine/drill_tank_damage1.mdl" Damage2 "models/watermine/drill_tank_damage2.mdl" Damage3 "models/watermine/drill_tank_damage3.mdl" } } } WaveSpawn { WaitForAllDead MainIntermission1 TotalCurrency 150 TotalCount 14 MaxActive 16 SpawnCount 2 Where spawnbot WaitBeforeStarting 0 WaitBetweenSpawns 8 TFBot { Class Heavy Item "the huo long heatmaker" Skill Easy Name "Huo-Long Heater Heavy" } } WaveSpawn { WaitForAllDead MainIntermission1 Name Main4a TotalCurrency 150 TotalCount 14 MaxActive 16 SpawnCount 2 Where spawnbot_right Where spawnbot_left WaitBeforeStarting 0 WaitBetweenSpawns 5 RandomSpawn 1 Support limited RandomChoice { TFBot { Class Pyro Item "The Axtinguisher" Name "Axtinguisher Pyro" WeaponRestrictions MeleeOnly Tag flank } TFBot { Class Pyro Item "The Axtinguisher" Name "Axtinguisher Pyro" WeaponRestrictions MeleeOnly } } } WaveSpawn { WaitForAllSpawned Main4a TotalCurrency 250 TotalCount 26 MaxActive 16 SpawnCount 2 Where spawnbot Where spawnbot_right Where spawnbot_left WaitBeforeStarting 0 WaitBetweenSpawns 5 TFBot { Template T_TFBot_Pyro_Flaregun } } WaveSpawn { WaitForAllSpawned Main4a Name Main4b TotalCurrency 150 TotalCount 30 MaxActive 9 SpawnCount 3 Where spawnbot_right Where spawnbot_left WaitBeforeStarting 15 WaitBetweenSpawns 4 Support limited RandomSpawn 1 TFBot { Class Scout Skill Normal Name "Pistol Scout" WeaponRestrictions SecondaryOnly Tag flank } } WaveSpawn { WaitForAllSpawned Main4a Name Main4b TotalCurrency 150 TotalCount 24 MaxActive 9 SpawnCount 3 Where spawnbot WaitBeforeStarting 15 WaitBetweenSpawns 6 TFBot { Class Soldier Skill Hard Name "Direct Hit Soldier" Item "The Direct Hit" } } WaveSpawn { WaitForAllSpawned Main5 Name Main6 TotalCurrency 250 TotalCount 15 MaxActive 9 SpawnCount 3 Where spawnbot_left WaitBeforeStarting 15 WaitBetweenSpawns 10 Squad { TFBot { Template T_TFBot_Giant_Pyro } TFBot { Template T_TFBot_Medic ClassIcon uber_quickfix_medic_nys } TFBot { Template T_TFBot_Medic ClassIcon uber_quickfix_medic_nys } } } WaveSpawn { WaitForAllSpawned Main5 TotalCurrency 150 TotalCount 36 MaxActive 15 SpawnCount 3 Where spawnbot Where spawnbot_right WaitBeforeStarting 10 WaitBetweenSpawns 4 RandomSpawn 1 TFBot { Template T_TFBot_Soldier_Extended_Concheror } } WaveSpawn { WaitForAllSpawned Main5 Name Main6 TotalCurrency 250 TotalCount 5 MaxActive 3 SpawnCount 1 Where spawnbot_right WaitBeforeStarting 15 WaitBetweenSpawns 10 RandomSpawn 1 TFBot { Template T_TFBot_Giant_Demo_Burst } } WaveSpawn { WaitForAllDead Main6 Name Main7g TotalCurrency 250 TotalCount 5 MaxActive 4 SpawnCount 1 Where spawnbot WaitBeforeStarting 0 WaitBetweenSpawns 10 TFBot { Template T_TFBot_Giant_Heavyweapons_Shotgun } } WaveSpawn { WaitForAllDead Main6 Name Main6a TotalCurrency 75 TotalCount 1 MaxActive 1 SpawnCount 1 WaitBeforeStarting 0 WaitBetweenSpawns 80 Tank { Health 21000 Name Tank Speed 75 StartingPathTrackNode boss_path_1 OnKilledOutput { Target boss_dead_relay Action Trigger } OnBombDroppedOutput { Target boss_deploy_relay Action Trigger } Model //Set custom model on tank. Will spit harmless errors on client console if the model does not have enough sequences { Default "models/watermine/drill_tank.mdl" Damage1 "models/watermine/drill_tank_damage1.mdl" Damage2 "models/watermine/drill_tank_damage2.mdl" Damage3 "models/watermine/drill_tank_damage3.mdl" } } } WaveSpawn { WaitForAllSpawned Main6a Name Main7a TotalCurrency 75 TotalCount 1 MaxActive 1 SpawnCount 1 WaitBeforeStarting 70 WaitBetweenSpawns 70 Tank { Health 40000 Name Tank Speed 75 StartingPathTrackNode boss_path_1 OnKilledOutput { Target boss_dead_relay Action Trigger } OnBombDroppedOutput { Target boss_deploy_relay Action Trigger } Model //Set custom model on tank. Will spit harmless errors on client console if the model does not have enough sequences { Default "models/watermine/drill_tank.mdl" Damage1 "models/watermine/drill_tank_damage1.mdl" Damage2 "models/watermine/drill_tank_damage2.mdl" Damage3 "models/watermine/drill_tank_damage3.mdl" } } } WaveSpawn { WaitForAllSpawned Main7a Name Main7 TotalCurrency 150 TotalCount 1 MaxActive 1 SpawnCount 1 WaitBeforeStarting 70 WaitBetweenSpawns 70 Tank { Health 21000 Name Tank Speed 75 Skin 1 StartingPathTrackNode boss_path_1 OnKilledOutput { Target boss_dead_relay Action Trigger } OnBombDroppedOutput { Target boss_deploy_relay Action Trigger } Model //Set custom model on tank. Will spit harmless errors on client console if the model does not have enough sequences { Default "models/watermine/drill_tank.mdl" Damage1 "models/watermine/drill_tank_damage1.mdl" Damage2 "models/watermine/drill_tank_damage2.mdl" Damage3 "models/watermine/drill_tank_damage3.mdl" } } } WaveSpawn { WaitForAllSpawned Main6 Name Main7a TotalCurrency 150 TotalCount 50 MaxActive 12 SpawnCount 2 Where spawnbot Where spawnbot_right WaitBeforeStarting 0 WaitBetweenSpawns 3 RandomSpawn 1 Support limited TFBot { Class Scout Name "Scout" } } WaveSpawn { WaitForAllSpawned Main7a TotalCurrency 350 TotalCount 50 MaxActive 12 SpawnCount 2 Where spawnbot Where spawnbot_right WaitBeforeStarting 0 WaitBetweenSpawns 3 RandomSpawn 1 Support limited TFBot { Template T_TFBot_Demo_Burst } } WaveSpawn { WaitForAllDead Main6 Name Main7g TotalCurrency 250 TotalCount 5 MaxActive 4 SpawnCount 1 Where spawnbot WaitBeforeStarting 0 WaitBetweenSpawns 10 RandomSpawn 1 TFBot { Template T_TFBot_Giant_Soldier_Extended_Concheror } } WaveSpawn { WaitForAllSpawned Main7g Name Main7 TotalCurrency 150 TotalCount 12 MaxActive 6 SpawnCount 2 Where spawnbot WaitBeforeStarting 15 WaitBetweenSpawns 10 RandomSpawn 1 TFBot { Template T_TFBot_Giant_Soldier_Spammer_Reload } } WaveSpawn { WaitForAllSpawned Main7g Name Main7 TotalCurrency 150 TotalCount 6 MaxActive 4 SpawnCount 1 Where spawnbot WaitBeforeStarting 15 WaitBetweenSpawns 10 RandomSpawn 1 TFBot { Template T_TFBot_Giant_Demo_Burst } } WaveSpawn { WaitForAllSpawned Main7 Name Main7c TotalCurrency 250 TotalCount 6 MaxActive 4 SpawnCount 1 Where spawnbot WaitBeforeStarting 15 WaitBetweenSpawns 15 RandomSpawn 1 TFBot { Template T_TFBot_Giant_Heavyweapons_BrassBeast } } WaveSpawn { WaitForAllSpawned Main7 TotalCurrency 150 TotalCount 38 MaxActive 8 SpawnCount 2 Where spawnbot_left Where spawnbot_right WaitBeforeStarting 15 WaitBetweenSpawns 3 RandomSpawn 1 Support 1 RandomChoice { TFBot { Template T_TFBot_Heavyweapons_Shotgun } TFBot { Template T_TFBot_Heavyweapons_Shotgun Tag flank } } } WaveSpawn { WaitForAllSpawned Main7 TotalCurrency 250 TotalCount 33 MaxActive 6 SpawnCount 3 Where spawnbot_left Where spawnbot_right WaitBeforeStarting 0 WaitBetweenSpawns 3 RandomSpawn 1 Support limited TFBot { Class Scout Name "Scout" } } WaveSpawn { WaitForAllDead Main7c TotalCurrency 500 TotalCount 1 MaxActive 1 SpawnCount 1 Where spawnbot WaitBeforeStarting 10 WaitBetweenSpawns 90 RandomSpawn 1 TFBot { Template SkeleBoss } } WaveSpawn { WaitForAllDead Main7c Where spawnbot_left Where spawnbot Where spawnbot_right TotalCount 10 MaxActive 4 SpawnCount 1 WaitBeforeStarting 0 WaitBetweenSpawns 6 Support 1 HalloweenBoss // HalloweenBoss spawner. Spawns a boss { IsMiniBoss 1 // Shows icon as mini boss (Default: 1) ClassIcon dead_blu_lite // ClassIcon to use BossType SkeletonNormal // Boss type: MONOCULUS, Merasmus, HHH, SkeletonSmall, SkeletonNormal, SkeletonKing. Skeletons default limit is 30 active at once unless modified by MaxActiveSkeletons SpawnCurrencyPack 1 // If set, the boss will drop money on death. Otherwise its distributed automatically (Default: 1) TeamNum 3 // Team number for Monoculus (2 - red, 3 - blu, 5 - neutral) (Default: 5) Health 0 // Boss health, 0 means default health (Default: 0) Lifetime 180 // Boss lifetime for Monoculus, Merasmus and skeletons in seconds (Default: infinite) } } WaveSpawn { WaitForAllDead Main7c Name Main8 TotalCurrency 300 TotalCount 20 MaxActive 10 SpawnCount 2 Where spawnbot Where spawnbot_right WaitBeforeStarting 0 WaitBetweenSpawns 5 RandomSpawn 1 Support limited TFBot { Class Pyro Skill Easy Name "Pyro" } } WaveSpawn { WaitForAllDead Main7c Name Main8 TotalCurrency 100 TotalCount 25 MaxActive 10 SpawnCount 1 Where spawnbot_left Where spawnbot_right WaitBeforeStarting 0 WaitBetweenSpawns 2 Support limited TFBot { Class Scout Skill Normal Name "Pistol Scout" WeaponRestrictions SecondaryOnly Tag flank } } } }