///////////////////////////////////////////////////////////////////// // Helpful debug and console commands for developing MVM population scripts: // // sv_cheats 1 // Allows cheat commands. // currency_give x // Give player x amount of game currency to be used on upgrades. // tf_populator_health_multiplier x.x // Multiplies health of enemy bots - example: tf_populator_health_multiplier 0.01 will set health of bots to 1% of normal. // tf_mvm_popfile abcd // Will load the .pop file of the specified name - example tf_mvm_popfile mvm_mapname_challenge2 will load mvm_mapname_challenge2.pop in the tf/scripts/population directory. // tf_mvm_jump_to_wave x // Will jump to the specified wave number of the current .pop file - example tf_mvm_jump_to_wave 6 will jump to wave 6. // tf_bot_flag_kill_on_touch 1 // When a bot picks up the flag, they die. // host_timescale 10 // timescale up // addcond [91, 72, 33, 5] // Enables Haste, Jump, Crit, and Uber respectively ///////////////////////////////////////////////////////////////////// // BEGIN POP FILE ///////////////////////////////////////////////////////////////////// #base yiresa_mehbot_total.pop WaveSchedule { //execute StartingCurrency 800 RespawnWaveTime 8 //Check if you can disable 2s increase CanBotsAttackWhileInSpawnRoom no RobotLimit 24 SniperAllowHeadshots 1 PointTemplates { SentryStickyTank { obj_sentrygun { "targetname" "l" "origin" "100 70 80" "SolidToPlayer" "0" "teamnum" "3" } obj_sentrygun { "targetname" "l" "origin" "-110 70 60" "SolidToPlayer" "0" "teamnum" "3" } obj_sentrygun { "targetname" "l" "origin" "100 -70 80" "SolidToPlayer" "0" "teamnum" "3" } obj_sentrygun { "targetname" "l" "origin" "-110 -70 60" "SolidToPlayer" "0" "teamnum" "3" } logic_relay { "id" "2" "classname" "logic_relay" "spawnflags" "0" "targetname" "ST_kill_relay" "OnTrigger" "ST_mimic,Kill,,0,-1" "OnTrigger" "ST_mimic_crit,Kill,,0,-1" "OnTrigger" "ST_shoot_sound,Kill,,0,-1" "OnTrigger" "ST_shoot_sound_crit,Kill,,0,-1" "OnTrigger" "ST_model,Kill,,0,-1" "OnTrigger" "ST_timer,Disable,,0,-1" "OnTrigger" "ST_shooter_relay,CancelPending,,0,-1" "OnTrigger" "tf_projectile_pipe,Kill,,0,-1" "origin" "-16 480 0" } logic_relay { "id" "4" "classname" "logic_relay" "spawnflags" "0" "targetname" "ST_shooter_relay" "OnTrigger" "ST_mimic_crit,DetonateStickies,,7,-1" "OnTrigger" "ST_mimic,DetonateStickies,,7,-1" "OnTrigger" "ST_shoot_sound,PlaySound,,0.5,-1" "OnTrigger" "ST_mimic,FireMultiple,4,0.5,-1" "OnTrigger" "ST_shoot_sound,PlaySound,,0.3,-1" "OnTrigger" "ST_mimic,FireOnce,,0.3,-1" "OnTrigger" "ST_shoot_sound,PlaySound,,0.2,-1" "OnTrigger" "ST_mimic,FireOnce,,0.2,-1" "OnTrigger" "ST_shoot_sound,PlaySound,,0.1,-1" "OnTrigger" "ST_mimic,FireOnce,,0.1,-1" "OnTrigger" "ST_shoot_sound,PlaySound,,0,-1" "OnTrigger" "ST_mimic,FireOnce,,0,-1" "OnTrigger" "ST_mimic,FireOnce,,0.4,-1" "OnTrigger" "ST_shoot_sound,PlaySound,,0.4,-1" "OnTrigger" "ST_mimic,FireOnce,,0.6,-1" "OnTrigger" "ST_shoot_sound,PlaySound,,0.6,-1" "OnTrigger" "ST_shoot_sound,PlaySound,,0.7,-1" "OnTrigger" "ST_mimic,FireOnce,,0.7,-1" "OnTrigger" "ST_shoot_sound,PlaySound,,0.8,-1" "OnTrigger" "ST_mimic,FireOnce,,0.8,-1" "OnTrigger" "ST_shoot_sound,PlaySound,,0.9,-1" "OnTrigger" "ST_mimic,FireOnce,,0.9,-1" "OnTrigger" "ST_mimic,FireMultiple,4,1,-1" "OnTrigger" "ST_shoot_sound,PlaySound,,1,-1" "OnTrigger" "ST_mimic_crit,FireOnce,,1.5,-1" "OnTrigger" "ST_shoot_sound_crit,PlaySound,,1.5,-1" "OnTrigger" "ST_shoot_sound_crit,PlaySound,,2,-1" "OnTrigger" "ST_mimic_crit,FireMultiple,2,2,-1" "OnTrigger" "ST_shoot_sound_crit,PlaySound,,2.5,-1" "OnTrigger" "ST_mimic_crit,FireMultiple,3,2.5,-1" "OnTrigger" "ST_shoot_sound_crit,PlaySound,,3,-1" "OnTrigger" "ST_mimic_crit,FireMultiple,6,3,-1" "origin" "-16 496 0" } logic_timer { "id" "8" "classname" "logic_timer" "LowerRandomBound" "5" "spawnflags" "0" "StartDisabled" "0" "targetname" "ST_timer" "UpperRandomBound" "5" "UseRandomTime" "0" "OnTimer" "ST_shooter_relay,Trigger,,0,-1" "origin" "0 496 0" } tf_point_weapon_mimic { "id" "18" "classname" "tf_point_weapon_mimic" "angles" "-56.5 0 0" "Crits" "1" "Damage" "138" "FireSound" "weapons/stickybomblauncher_shoot_crit.wav" "ModelScale" "1" "SpeedMax" "525" "SpeedMin" "525" "SplashRadius" "189" "SpreadAngle" "25" "targetname" "ST_mimic_crit" "WeaponType" "3" "origin" "33.948 59 167.289" } tf_point_weapon_mimic { "id" "20" "classname" "tf_point_weapon_mimic" "angles" "-58.5 0 180" "Crits" "1" "Damage" "138" "FireSound" "weapons/stickybomblauncher_shoot_crit.wav" "ModelScale" "1" "SpeedMax" "525" "SpeedMin" "525" "SplashRadius" "189" "SpreadAngle" "25" "targetname" "ST_mimic_crit" "WeaponType" "3" "origin" "34.16 -59 167.121" } tf_point_weapon_mimic { "id" "22" "classname" "tf_point_weapon_mimic" "angles" "-58.5 0 180" "Crits" "0" "Damage" "138" "FireSound" "weapons/stickybomblauncher_shoot.wav" "ModelScale" "1" "SpeedMax" "525" "SpeedMin" "525" "SplashRadius" "189" "SpreadAngle" "25" "targetname" "ST_mimic" "WeaponType" "3" "origin" "34.16 -59 167.121" } tf_point_weapon_mimic { "id" "24" "classname" "tf_point_weapon_mimic" "angles" "-56.5 0 0" "Crits" "0" "Damage" "138" "FireSound" "weapons/stickybomblauncher_shoot.wav" "ModelScale" "1" "SpeedMax" "525" "SpeedMin" "525" "SplashRadius" "189" "SpreadAngle" "25" "targetname" "ST_mimic" "WeaponType" "3" "origin" "33.948 59 167.289" } prop_dynamic { "id" "30" "classname" "prop_dynamic" "angles" "-58.5 0 90" "DisableBoneFollowers" "0" "disablereceiveshadows" "1" "disableshadows" "1" "ExplodeDamage" "0" "ExplodeRadius" "0" "fademaxdist" "0" "fademindist" "-1" "fadescale" "1" "MaxAnimTime" "10" "maxdxlevel" "0" "MinAnimTime" "5" "mindxlevel" "0" "model" "models/props_frontline/tank_turret.mdl" "modelscale" "1" "PerformanceMode" "0" "physdamagescale" "1.0" "pressuredelay" "0" "RandomAnimation" "0" "renderamt" "255" "rendercolor" "255 255 255" "renderfx" "0" "rendermode" "0" "SetBodyGroup" "0" "skin" "2" "solid" "0" "spawnflags" "0" "StartDisabled" "0" "targetname" "ST_model" "origin" "-32.851 64 57.912" } prop_dynamic { "id" "32" "classname" "prop_dynamic" "angles" "-56.5 0 -90" "DisableBoneFollowers" "0" "disablereceiveshadows" "1" "disableshadows" "1" "ExplodeDamage" "0" "ExplodeRadius" "0" "fademaxdist" "0" "fademindist" "-1" "fadescale" "1" "MaxAnimTime" "10" "maxdxlevel" "0" "MinAnimTime" "5" "mindxlevel" "0" "model" "models/props_frontline/tank_turret.mdl" "modelscale" "1" "PerformanceMode" "0" "physdamagescale" "1.0" "pressuredelay" "0" "RandomAnimation" "0" "renderamt" "255" "rendercolor" "255 255 255" "renderfx" "0" "rendermode" "0" "SetBodyGroup" "0" "skin" "2" "solid" "0" "spawnflags" "0" "StartDisabled" "0" "targetname" "ST_model" "origin" "-36.709 -64 60.403" } ambient_generic { "id" "34" "classname" "ambient_generic" "angles" "0 0 0" "cspinup" "0" "fadeinsecs" "0" "fadeoutsecs" "0" "health" "10" "lfomodpitch" "0" "lfomodvol" "0" "lforate" "0" "lfotype" "0" "message" "weapons/stickybomblauncher_shoot_crit.wav" "pitch" "100" "pitchstart" "100" "preset" "0" "radius" "5000" "spawnflags" "48" "spindown" "0" "spinup" "0" "targetname" "ST_shoot_sound_crit" "volstart" "0" "origin" "36 -9.53674e-07 168" } ambient_generic { "id" "37" "classname" "ambient_generic" "angles" "0 0 0" "cspinup" "0" "fadeinsecs" "0" "fadeoutsecs" "0" "health" "10" "lfomodpitch" "0" "lfomodvol" "0" "lforate" "0" "lfotype" "0" "message" "weapons/stickybomblauncher_shoot.wav" "pitch" "100" "pitchstart" "100" "preset" "0" "radius" "5000" "spawnflags" "48" "spindown" "0" "spinup" "0" "targetname" "ST_shoot_sound" "volstart" "0" "origin" "36 -9.53674e-07 168" } } TeleportTank { OnSpawnOutput //set builder to parent entity { Target "tp" Action "setbuilder" Delay 0.00 } obj_teleporter { "targetname" "tp" "origin" "0 0 150" "teamnum" "3" "health" "55000" "TeleportWhere" "all" "solid" "0" "SolidToPlayer" "0" } } powerup_logic_critbuff_recipient { OnParentKilledOutput { Target "item_powerup_rune" Action Kill } OnSpawnOutput { Target "parentoutput_target" Action SetParent Param "!activator" } info_target { "targetname" "parentoutput_target" "$OnUser5" "recipient_counter,Add,1,0,-1" "$OnUser6" "recipient_counter,Subtract,1,0,-1" } math_counter { "targetname" "recipient_counter" "max" "9999" "outvalue" "countcompare,setvaluecompare,,0,-1" } logic_compare { "targetname" "countcompare" "onequalto" "!parent,$removecond,40,0,-1" "ongreaterthan" "!parent,$addcond,40,0,-1" } } crit_radius { KeepAlive 1 OnParentKilledOutput { Target "crit_radius_brush" Action Disable } OnParentKilledOutput { Target "crit_radius_brush" Action Kill Delay 0.2 } OnSpawnOutput { Target "crit_radius_brush" Action Enable Delay 0.2 } trigger_multiple { "targetname" "crit_radius_brush" "filtername" "filter_bluteam" "spawnflags" "1" "StartDisabled" "1" "mins" "-225 -225 -450" "maxs" "225 225 450" "origin" "100 0 0" "onstarttouch" "@c@!activator,$fireuser5,,0,-1" "onendtouch" "@c@!activator,$fireuser6,,0,-1" } RemoveIfKilled "haste_radius_brush" } } Templates { TankIcon1 { ClassIcon tank_sticky_sentry } TankIcon2 { ClassIcon tank_tele } TankIcon3 { ClassIcon tank_lite } } ExtraSpawnPoint //Adds spawn points on specified location { Name "spawnredey" TeamNum 3 X "-4056.51" Y "-120.18" Z "164.03" } ExtraSpawnPoint //Adds spawn points on specified location { Name "spawnredey2" TeamNum 3 X "-2894.73" Y "2540.91" Z "132.03" } ExtraSpawnPoint //Adds spawn points on specified location { Name "spawnsupport1" TeamNum 3 X "-9879.01" Y "695.74" Z "68.03" } ItemAttributes //Adds attributes to specified item given to players { ItemName "The Hitman's Heatmaker" "fire rate bonus" 0.95 } ExtendedUpgrades { explosiveheadshot { Name "1 level Explosive Headshot" Attribute "explosive sniper shot" Cap 1 Increment 1 Cost 600 Description "Only 1 explosive headshot." // Additional description line AllowPlayerClass Sniper AllowedWeapons // Restricts upgrade to specified weapons { ItemName "The Hitman's Heatmaker" } } xplosiveheadshot { Name "Explosive sniper shot" Attribute "explosive sniper shot" Cap 3 Increment 1 Cost 350 Description "Get explosive headshots." // Additional description line AllowPlayerClass Sniper AllowedWeapons // Restricts upgrade to specified weapons { Slot "Primary" } DisallowedWeapons // Disallow those weapons { ItemName "The Hitman's Heatmaker" } } } // Missions (Support Bots) Mission // Sentry Buster - Wave 1 to 8 { Objective DestroySentries InitialCooldown 20 Where spawnbot_mission_sentrybuster Where spawnbot_mission_sentrybuster_left Where spawnbot_mission_sentrybuster_right BeginAtWave 1 RunForThisManyWaves 7 CooldownTime 45 DesiredCount 1 TFBot { Template T_TFBot_SentryBuster } } Mission { Objective Sniper InitialCooldown 240 Where spawnbot_mission_sniper Where spawnbot_mission_sniper_left Where spawnbot_mission_sniper_right BeginAtWave 5 RunForThisManyWaves 1 CooldownTime 18 DesiredCount 3 TFBot { Template T_TFBot_Sniper_FastCharge } } //Mission // Spy - Wave 6 //{ // Objective Spy // InitialCooldown 200 // Where spawnbot_mission_spy // BeginAtWave 6 // RunForThisManyWaves 1 // CooldownTime 4 // DesiredCount 8 // // TFBot // { // Template T_TFBot_Spy_lessflame // } //} //WAVE 01 | Money: 650 (650 + 100) //Random Side Wave { WaitWhenDone 60 Sound "Announcer.IncomingMob" Checkpoint Yes StartWaveOutput { Target wave_start_relay Action trigger } DoneOutput { Target wave_finished_nextwave_right Action trigger } Explanation //Dispayed once the wave is initialized { Line "{blue}Weak but speedy tank comes out first." Line "{yellow}Watch out for the SMG /n jarate Sniper!" Line ">wave 1<" } //WaveSpawn // side indicator //{ //TotalCurrency 0 //Name "w1_side_indicator" //WaitForAllDead "w1_side_indicator" //Where spawnbot_mission_sentrybuster //Where spawnbot_mission_sentrybuster_left //Where spawnbot_mission_sentrybuster_right //RandomSpawn 1 //Support 1 //TFBot //{ //Template T_TFBot_SentryBuster //ClassIcon pathrandom //} //} WaveSpawn { TotalCurrency 0 Name "wave01s1" Where spawnbot_front_left Where spawnbot_front_right Where spawnbot_left Where spawnbot_right TotalCount 10 MaxActive 10 SpawnCount 5 WaitBetweenSpawns 40 WaitBeforeStarting 45 Support 1 Squad { TFBot { Template T_TFBot_Soldier_Battalion_BlackBox_Support } TFBot { Class Soldier Item "The Black Box" ClassIcon soldier_blackbox_backup_lite } TFBot { Class Soldier Item "The Black Box" ClassIcon soldier_blackbox_backup_lite } TFBot { Class Soldier Item "The Black Box" ClassIcon soldier_blackbox_backup_lite } TFBot { Class Soldier Item "The Black Box" ClassIcon soldier_blackbox_backup_lite } } } WaveSpawn { Name "wave01s2" Where spawnredey TotalCount 2 MaxActive 1 SpawnCount 1 WaitBetweenSpawns 150 WaitBeforeStarting 1 Support limited TFBot { Template T_TFBot_Reprogramed_Medic_1 } } WaveSpawn // Tank Boss (Fast) | 50 { TotalCount 1 Name "w1_tank" TotalCurrency 175 Tank { Name "tankboss" Health 3800 Speed 170 StartingPathTrackNode "boss_path_1" Skin 0 IsMiniBoss 0 OnBombDroppedOutput { Target boss_deploy_relay Action Trigger } Template "TankIcon3" } } WaveSpawn { TotalCurrency 80 Name "wave01a" Where spawnbot_front_left Where spawnbot_left Where spawnbot_right TotalCount 36 MaxActive 4 SpawnCount 4 WaitBetweenSpawns 9 WaitBeforeStarting 9 TFBot { Template T_TFGatebot_Pyro_BackBurner_Push } } WaveSpawn { TotalCurrency 200 Name "wave01b" WaitForAllDead "w1_tank" Where spawnbot Where spawnbot_left Where spawnbot_right TotalCount 66 MaxActive 6 SpawnCount 6 WaitBetweenSpawns 14 WaitBeforeStarting 9 Squad { ShouldPreserveSquad 1 TFBot { Template T_TFGatebot_Sniper_SMG_Moabullet } TFBot { Template T_TFGatebot_Sniper_SMG_Moabullet } TFBot { Template T_TFGatebot_Sniper_SMG_Moabullet } TFBot { Template T_TFGatebot_Sniper_SMG_Moabullet } TFBot { Template T_TFBot_Sniper_Piss } TFBot { Template T_TFBot_Sniper_Piss } } } WaveSpawn { TotalCurrency 150 Name "wave01c" WaitForAllDead "w1_tank" Where spawnbot_front_right Where spawnbot_left Where spawnbot_right TotalCount 2 MaxActive 2 SpawnCount 2 WaitBeforeStarting 88 Squad { ShouldPreserveSquad 1 TFBot { Template T_TFGatebot_Solder_Liberty_Crit } TFBot { Template T_TFBot_Medic_Bullet_Resist } } } } Wave { WaitWhenDone 60 Sound "Announcer.IncomingMob" Checkpoint Yes StartWaveOutput { Target wave_start_relay Action trigger } DoneOutput { Target wave_finished_nextwave_random_consistent Action trigger } Explanation //Dispayed once the wave is initialized { Line "{blue}Yeah... There are alot of Steel heavy's in this wave." Line "{yellow}Don't get poped!" Line ">wave 2<" } WaveSpawn // side indicator { TotalCurrency 0 Name "w2_side_indicator" WaitForAllDead "w2_side_indicator" Where spawnbot_mission_sentrybuster Where spawnbot_mission_sentrybuster_left Where spawnbot_mission_sentrybuster_right RandomSpawn 1 Support 1 TFBot { Template T_TFBot_SentryBuster ClassIcon pathblu } } WaveSpawn { TotalCurrency 0 Name "wave02s1" Where spawnbot_front_right Where spawnbot_left Where spawnbot_right TotalCount 12 MaxActive 4 SpawnCount 4 WaitBetweenSpawns 126 Support 1 TFBot { Template T_TFBot_Spy_Ambassidor_Expert_Support } } WaveSpawn { TotalCurrency 180 Name "wave02a" Where spawnbot_front_left Where spawnbot_front_right Where spawnbot_left Where spawnbot_right TotalCount 66 MaxActive 11 SpawnCount 11 WaitBetweenSpawns 28 WaitBeforeStarting 5 RandomSpawn 1 RandomChoice { TFBot { Template T_TFGatebot_Heavy_Gaunlet } TFBot { Template T_TFGatebot_Heavy_Gaunlet_dupe } } } WaveSpawn { TotalCurrency 150 Name "wave02b" Where spawnbot_front_left Where spawnbot_left Where spawnbot_right TotalCount 42 MaxActive 6 SpawnCount 6 WaitBetweenSpawns 24 WaitBeforeStarting 19 Squad { ShouldPreserveSquad 1 TFBot { Template T_TFGatebot_Soldier_Infinite } } } WaveSpawn { TotalCurrency 50 Name "wave02scout" Where spawnbot Where spawnbot_left Where spawnbot_right TotalCount 14 MaxActive 2 SpawnCount 2 WaitBetweenSpawns 6 WaitBeforeStarting 25 TFBot { Class Scout Skill Easy } } WaveSpawn { TotalCurrency 5 Name "wave02c" WaitForAllDead "wave02b" Where spawnbot Where spawnbot_left Where spawnbot_right TotalCount 3 MaxActive 3 SpawnCount 3 WaitBeforeStarting 19 TFBot { Template T_TFGatebot_Soldier_Infinite } } WaveSpawn { TotalCurrency 75 Name "wave02s2" WaitForAllSpawned "wave02c" Where spawnbot Where spawnbot_left Where spawnbot_right TotalCount 20 MaxActive 4 SpawnCount 4 WaitBeforeStarting 1 WaitBetweenSpawns 36 TFBot { Template T_TFBot_Demoman_Skall } } WaveSpawn { TotalCurrency 10 Name "wave02d" WaitForAllDead "wave02c" Where spawnbot Where spawnbot_left Where spawnbot_right TotalCount 16 MaxActive 2 SpawnCount 1 WaitBeforeStarting 2 WaitBetweenSpawns 7 TFBot { Template T_TFBot_Scout_Bleeder } } WaveSpawn { TotalCurrency 230 Name "wave02boss" WaitForAllDead "wave02b" Where spawnbot Where spawnbot_left Where spawnbot_right TotalCount 1 MaxActive 1 SpawnCount 1 WaitBeforeStarting 4 TFBot { Template T_TFBot_Sniper_Blowoutbrain } } } Wave { WaitWhenDone 60 Sound "Announcer.IncomingMob" Checkpoint Yes StartWaveOutput { Target wave_start_relay Action trigger } DoneOutput { Target wave_finished_nextwave_Left Action trigger } Explanation //Dispayed once the wave is initialized { Line "{red}Inf heal meds /w Huo Heavy" Line "{yellow}Thrower Scout Going to push" Line ">wave 3<" } WaveSpawn // side indicator { TotalCurrency 0 Name "w3_side_indicator" WaitForAllDead "w3_side_indicator" Where spawnbot_mission_sentrybuster Where spawnbot_mission_sentrybuster_left Where spawnbot_mission_sentrybuster_right RandomSpawn 1 Support 1 TFBot { Template T_TFBot_SentryBuster ClassIcon pathrandom } } WaveSpawn { TotalCurrency 20 Name "wave03a" Where spawnbot Where spawnbot_left Where spawnbot_right TotalCount 28 MaxActive 8 SpawnCount 4 WaitBetweenSpawns 14 TFBot { Template T_TFBot_Demoman_Bomber_NoReload } } WaveSpawn { TotalCurrency 0 Name "wave03s1" Where spawnbot_front_left Where spawnbot_front_right TotalCount 8 MaxActive 4 SpawnCount 4 WaitBeforeStarting 160 WaitBetweenSpawns 26 Support 1 RandomSpawn 1 TFBot { Template T_TFGatebot_Scout_BabyBlaster } } WaveSpawn // Tank Boss conga { TotalCount 1 Name "w3_tank" TotalCurrency 50 WaitBeforeStarting 80 Tank { Name "tankboss" Health 19000 Speed 110 StartingPathTrackNode "boss_path_1" Skin 0 OnBombDroppedOutput { Target boss_deploy_relay Action Trigger } } } WaveSpawn // Tank Boss conga { TotalCount 1 Name "w3_tank2" TotalCurrency 100 WaitBeforeStarting 91 Tank { Name "tankboss" Health 24000 Speed 80 StartingPathTrackNode "boss_path_1" Skin 0 OnBombDroppedOutput { Target boss_deploy_relay Action Trigger } } } WaveSpawn // Tank Boss conga { TotalCount 1 Name "w3_tank3" TotalCurrency 100 WaitBeforeStarting 98 Tank { Name "tankboss" Health 40000 Speed 40 StartingPathTrackNode "boss_path_1" Skin 0 OnBombDroppedOutput { Target boss_deploy_relay Action Trigger } SpawnTemplate "SentryStickyTank" Template "TankIcon1" } } WaveSpawn { TotalCurrency 175 Name "wave03b" Where spawnbot_front_left Where spawnbot_front_right Where spawnbot_left Where spawnbot_right TotalCount 16 MaxActive 8 SpawnCount 4 WaitBeforeStarting 130 WaitBetweenSpawns 15 Squad { ShouldPreserveSquad 1 TFBot { Template T_TFGatebot_Heavy_Deflector_Heater } TFBot { Template T_TFBot_Medic_Huge_Overheal } } } WaveSpawn { TotalCurrency 100 Name "wave03c" Where spawnbot_front_left Where spawnbot_front_right Where spawnbot_left Where spawnbot_right TotalCount 4 MaxActive 2 SpawnCount 2 WaitBeforeStarting 145 WaitBetweenSpawns 20 TFBot { Template T_TFGatebot_Heavy_Deflector_Heater } } WaveSpawn { TotalCurrency 20 Name "wave03d" Where spawnbot_front_left Where spawnbot_front_right Where spawnbot_left Where spawnbot_right TotalCount 24 MaxActive 3 SpawnCount 3 WaitBeforeStarting 285 WaitBetweenSpawns 5 TFBot { Template T_TFBot_Scout_Burner } } WaveSpawn { TotalCurrency 45 Name "wave03e" Where spawnbot Where spawnbot_left Where spawnbot_right TotalCount 20 MaxActive 6 SpawnCount 2 WaitBeforeStarting 287 WaitBetweenSpawns 2 TFBot { Template T_TFGatebot_Pyro_Flaregun } } WaveSpawn { TotalCurrency 55 Name "wave03f" WaitForAllDead "wave03d" Where spawnbot_front_right Where spawnbot_left Where spawnbot_right TotalCount 15 MaxActive 5 SpawnCount 5 WaitBeforeStarting 12 WaitBetweenSpawns 8 TFBot { Template T_TFBot_Sniper_Huntsmen_Blood } } WaveSpawn { TotalCurrency 10 Name "wave03g" WaitForAllDead "wave03e" Where spawnbot Where spawnbot_left Where spawnbot_right TotalCount 1 MaxActive 1 SpawnCount 1 WaitBeforeStarting 2 TFBot { Template T_TFBot_Scout_Stun_Push_Big } } } Wave { WaitWhenDone 60 Sound "Announcer.IncomingMob" Checkpoint Yes StartWaveOutput { Target wave_start_relay Action trigger } DoneOutput { Target wave_finished_nextwave_Left Action trigger } Explanation //Dispayed once the wave is initialized { Line "{red}!!!ALERT A HEAVYBOSS HAS ENTERED THE AREA!!!" Line "{yellow}Don't give up the gate!!!" Line ">wave 4<" } WaveSpawn // side indicator { TotalCurrency 0 Name "w4_side_indicator" WaitForAllDead "w4_side_indicator" Where spawnbot_mission_sentrybuster Where spawnbot_mission_sentrybuster_left Where spawnbot_mission_sentrybuster_right RandomSpawn 1 Support 1 TFBot { Template T_TFBot_SentryBuster ClassIcon pathred } } WaveSpawn { TotalCurrency 800 Name "wave04Boss" Where spawnbot TotalCount 1 MaxActive 1 SpawnCount 1 TFBot { Template T_TFBot_Heavy_ChainSmoker_Giant } } WaveSpawn { TotalCurrency 0 Name "wave04s1" Where spawnbot Where spawnbot_left Where spawnbot_right TotalCount 1 MaxActive 1 SpawnCount 1 WaitBeforeStarting 20 WaitBetweenSpawns 10 Support 1 TFBot { Template T_TFBot_Scout_Marker } } WaveSpawn { TotalCurrency 150 Name "wave04s2" Where spawnbot Where spawnbot_left Where spawnbot_right TotalCount 32 MaxActive 2 SpawnCount 2 WaitBeforeStarting 10 WaitBetweenSpawns 25 Support 1 TFBot { Template T_TFGatebot_Heavy_Shotgunner_Fastfire } } WaveSpawn { TotalCurrency 0 Name "wave04s3" Where spawnbot_left Where spawnbot_right TotalCount 9 MaxActive 9 SpawnCount 9 WaitBeforeStarting 1 WaitBetweenSpawns 41 Support 1 TFBot { Template T_TFBot_Demoman_Caber } } WaveSpawn { TotalCurrency 0 Name "wave04s4" Where spawnbot_left Where spawnbot_right TotalCount 10 MaxActive 10 SpawnCount 10 WaitBeforeStarting 5 WaitBetweenSpawns 20 Support 1 TFBot { Template T_TFBot_Pyro_Dragons_Fury } } WaveSpawn { TotalCurrency 0 Name "wave04Red" Where spawnredey2 TotalCount 1 MaxActive 1 SpawnCount 1 WaitBeforeStarting 15 Support Limited TFBot { Template T_TFBot_Reprogramed_Soldier } } } Wave { WaitWhenDone 60 Sound "Announcer.IncomingMob" Checkpoint Yes StartWaveOutput { Target wave_start_relay Action trigger } DoneOutput { Target wave_finished_nextwave_random Action trigger } Explanation //Dispayed once the wave is initialized { Line "{red}Teleporter Tank incoming." Line "{yellow}Mid push from robot's" Line ">wave 5<" } WaveSpawn // side indicator { TotalCurrency 0 Name "w5_side_indicator" WaitForAllDead "w5_side_indicator" Where spawnbot_mission_sentrybuster Where spawnbot_mission_sentrybuster_left Where spawnbot_mission_sentrybuster_right RandomSpawn 1 Support 1 TFBot { Template T_TFBot_SentryBuster ClassIcon pathred } } WaveSpawn { TotalCurrency 130 Name "wave05a" Where spawnbot Where spawnbot_left Where spawnbot_right TotalCount 3 MaxActive 3 SpawnCount 1 WaitBeforeStarting 1 WaitBetweenSpawns 20 TFBot { Template T_TFBot_Scout_Burst_Hyper_Giant } } WaveSpawn { TotalCurrency 50 Name "wave05b" Where spawnbot_front_left Where spawnbot_front_right Where spawnbot_left Where spawnbot_right TotalCount 40 MaxActive 20 SpawnCount 20 WaitBeforeStarting 2 WaitBetweenSpawns 2 RandomSpawn 1 TFBot { Class Soldier ClassIcon soldier_barrage_charged Item "Upgradeable TF_WEAPON_ROCKETLAUNCHER" Item "Bucket Hat" Attributes AlwaysCrit ItemAttributes { ItemName "Upgradeable TF_WEAPON_ROCKETLAUNCHER" "fire rate bonus" 0.5 "clip size bonus" 2 } } } WaveSpawn { TotalCurrency 200 Name "wave05B1" Where spawnbot_front_left Where spawnbot_left Where spawnbot_right TotalCount 1 MaxActive 1 SpawnCount 1 WaitBeforeStarting 60 TFBot { Template T_TFBot_Chief_Soldier } } WaveSpawn { TotalCurrency 50 Name "wave05c" Where spawnbot_front_left Where spawnbot_front_right Where spawnbot_left Where spawnbot_right TotalCount 28 MaxActive 7 SpawnCount 7 WaitBeforeStarting 70 WaitBetweenSpawns 17 TFBot { Template T_TFBot_Scout_Bonk } } WaveSpawn { TotalCurrency 10 Name "wave05d" Where spawnbot Where spawnbot_left Where spawnbot_right TotalCount 35 MaxActive 10 SpawnCount 5 WaitBeforeStarting 92 WaitBetweenSpawns 20 TFBot { Template T_TFGatebot_Heavy_Natascha } } WaveSpawn // Tank Boss Teleporter { TotalCount 1 Name "w5_tank" WaitForAllDead "wave05d" TotalCurrency 280 WaitBeforeStarting 1 Tank { Name "tankboss" Health 75000 Speed 62 StartingPathTrackNode "boss_path_1" Skin 0 OnBombDroppedOutput { Target boss_deploy_relay Action Trigger } SpawnTemplate "TeleportTank" Template "TankIcon2" } } WaveSpawn { TotalCurrency 50 Name "wave05Squad" WaitForAllDead "wave05d" Where spawnbot TotalCount 100 MaxActive 12 SpawnCount 4 WaitBeforeStarting 21 WaitBetweenSpawns 4 Squad { ShouldPreserveSquad 1 TFBot { Template T_TFBot_Soldier_BatConch_duo1 } TFBot { Template T_TFBot_Soldier_BatConch_duo2 } TFBot { Template T_TFBot_Pyro_Phlog } TFBot { Template T_TFBot_Pyro_Phlog } } } WaveSpawn { TotalCurrency 50 Name "wave05s" WaitForAllDead "wave05d" Where spawnsupport1 TotalCount 4 MaxActive 4 SpawnCount 2 WaitBeforeStarting 40 WaitBetweenSpawns 3 Support 1 TFBot { Class Pyro ClassIcon pyro_powerjack Item "The Attendant" Item "The Powerjack" WeaponRestrictions MeleeOnly Action Mobber ItemAttributes { ItemName "The Powerjack" "heal on hit for rapidfire" 75 "crit mod disabled" 0 } } } WaveSpawn { WaitForAllDead "w5_tank" WaitBeforeStarting 1 DoneOutput { Target "spawnsupport1" Action Disable } } } Wave { WaitWhenDone 60 Sound "Announcer.IncomingMob" Checkpoint Yes StartWaveOutput { Target wave_start_relay Action trigger } DoneOutput { Target wave_finished_nextwave_left Action trigger } Explanation //Dispayed once the wave is initialized { Line "{grey}lol i hijacked the info dumper, get rekt soon you will." Line "{yellow}*********" Line "*******" } WaveSpawn // side indicator { TotalCurrency 0 Name "w5_side_indicator" WaitForAllDead "w5_side_indicator" Where spawnbot_mission_sentrybuster Where spawnbot_mission_sentrybuster_left Where spawnbot_mission_sentrybuster_right RandomSpawn 1 Support 1 TFBot { Template T_TFBot_SentryBuster ClassIcon pathrandom } } WaveSpawn { TotalCurrency 40 Name "wave06a" Where spawnbot Where spawnbot_left Where spawnbot_right TotalCount 55 MaxActive 10 SpawnCount 5 WaitBeforeStarting 3 WaitBetweenSpawns 5 TFBot { Template T_TFBot_Soldier_Equalizer_lessnerf } } WaveSpawn { TotalCurrency 40 Name "wave06b" Where spawnbot_front_left Where spawnbot_front_right Where spawnbot_left Where spawnbot_right TotalCount 32 MaxActive 4 SpawnCount 2 WaitBeforeStarting 12 WaitBetweenSpawns 5 TFBot { Template T_TFBot_Soldier_Infinite_Buff } } WaveSpawn { TotalCurrency 125 Name "wave05B1" Where spawnbot_front_left Where spawnbot_front_right Where spawnbot_left Where spawnbot_right TotalCount 4 MaxActive 4 SpawnCount 1 WaitBeforeStarting 30 WaitBetweenSpawns 0.4 RandomSpawn 1 TFBot { Template T_TFGatebot_Pyro_Scotch_MiniBoss } } WaveSpawn { TotalCurrency 400 Name "wave05Bses2" WaitForAllDead "wave05B1" Where spawnbot_front_left Where spawnbot_front_right Where spawnbot_left Where spawnbot_right TotalCount 16 MaxActive 16 SpawnCount 16 WaitBeforeStarting 30 RandomSpawn 1 Squad { ShouldPreserveSquad 1 TFBot { Template T_TFBot_Medic_Sryinge_Stizer_Giant } TFBot { Template T_TFBot_Medic_Shield_Armored } } } WaveSpawn { Name "mfmusic1" WaitForAllDead "wave05Bses2" WaitBeforeStarting 2 FirstSpawnWarningSound "sound/music/BAD TO THE BONE.mp3" } WaveSpawn { TotalCurrency 10 Name "wave06toughsoldier" WaitForAllDead "wave05Bses2" Where spawnbot_front_left Where spawnbot_front_right Where spawnbot_left Where spawnbot_right TotalCount 2 MaxActive 2 SpawnCount 2 WaitBeforeStarting 11 RandomSpawn 1 TFBot { Template T_TFBot_Soldier_Upgraded_BoxConch } } } Wave { WaitWhenDone 60 Sound "Announcer.IncomingMob" Checkpoint Yes StartWaveOutput { Target wave_start_relay Action trigger } DoneOutput { Target wave_finished_nextwave_random Action trigger } Explanation //Dispayed once the wave is initialized { Line "{red}!!!ALERT, THE GIANT HEAVY'S ARE GOING TO USE THE TRIO BANNER'S!!!" Line "{yellow}demoknight's drop the haste powerup. quickly grab to gain an advantage" Line ">wave 7<" } WaveSpawn // side indicator { TotalCurrency 0 Name "w5_side_indicator" WaitForAllDead "w5_side_indicator" Where spawnbot_mission_sentrybuster Where spawnbot_mission_sentrybuster_left Where spawnbot_mission_sentrybuster_right RandomSpawn 1 Support 1 TFBot { Template T_TFBot_SentryBuster ClassIcon pathrandom } } WaveSpawn { Name "wave07sRED" Where spawnredey TotalCount 1 MaxActive 1 SpawnCount 1 WaitBeforeStarting 1 Support limited RandomChoice { TFBot { Template T_TFBot_Reprogramed_Medic_2 } TFBot { Template T_TFBot_Soldier_Upgraded_BoxConch_Reprogramed } } } WaveSpawn { TotalCurrency 300 Name "wave07Bannerbros1" Where spawnbot_front_left Where spawnbot_left Where spawnbot_right TotalCount 2 MaxActive 2 SpawnCount 2 WaitBeforeStarting 1 Squad { ShouldPreserveSquad 1 TFBot { Template T_TFBot_Heavy_Conch_Giant } TFBot { Template T_TFBot_Medic_Shield_Armored CharacterAttributes { "increase buff duration" 10 } } } } WaveSpawn { TotalCurrency 350 Name "wave07Bannerbros2" Where spawnbot_front_left Where spawnbot_left Where spawnbot_right TotalCount 2 MaxActive 2 SpawnCount 2 WaitBeforeStarting 2 Squad { ShouldPreserveSquad 1 TFBot { Template T_TFBot_Heavy_Buff_Giant } TFBot { Template T_TFBot_Medic_Fire_Resist_Giant } } } WaveSpawn { TotalCurrency 450 Name "wave07Bannerbros3" Where spawnbot_front_left Where spawnbot_left Where spawnbot_right TotalCount 2 MaxActive 2 SpawnCount 2 WaitBeforeStarting 3 Squad { ShouldPreserveSquad 1 TFBot { Template T_TFBot_Heavy_Battalion_Giant } TFBot { Template T_TFBot_Giant_Medic_Regen } } } WaveSpawn { Name "wave07scout" Where spawnbot_front_right Where spawnbot_left Where spawnbot_right TotalCount 84 MaxActive 12 SpawnCount 6 WaitBetweenSpawns 3 WaitBeforeStarting 4 TFBot { Template T_TFBot_Scout_Cola } } WaveSpawn { TotalCurrency 180 Name "wave07Soldier" Where spawnbot_front_left Where spawnbot_front_right Where spawnbot_left Where spawnbot_right TotalCount 50 MaxActive 2 SpawnCount 1 WaitBetweenSpawns 4 WaitBeforeStarting 10 RandomSpawn 1 RandomChoice { TFBot { Template T_TFBot_Soldier_Extended_Buff_Banner } TFBot { Template T_TFBot_Soldier_Extended_Concheror } TFBot { Template T_TFBot_Soldier_Extended_Battalion } } } WaveSpawn // Tank Boss { TotalCount 1 Name "w7_tank" TotalCurrency 55 WaitBeforeStarting 125 Tank { Name "tankboss" Health 150000 Speed 30 StartingPathTrackNode "boss_path_1" Skin 0 OnBombDroppedOutput { Target boss_deploy_relay Action Trigger } Template "TankIcon3" } } WaveSpawn { TotalCurrency 50 Name "wave07critbannerguys" Where spawnbot_front_left Where spawnbot_left Where spawnbot_right TotalCount 30 MaxActive 3 SpawnCount 3 WaitBeforeStarting 128 WaitBetweenSpawns 28 Support 1 Squad { ShouldPreserveSquad 1 TFBot { Template T_TFBot_Giant_Soldier_Critbuff } TFBot { Template T_TFBot_Soldier_Critbuff } TFBot { Template T_TFBot_Soldier_Critbuff } } } WaveSpawn { Name "wave07Demoknightsupport" Where spawnbot_front_left Where spawnbot_front_right Where spawnbot_left Where spawnbot_right TotalCount 9 MaxActive 9 SpawnCount 3 WaitBetweenSpawns 16 WaitBeforeStarting 133 Support 1 TFBot { Template T_TFGateBot_Demoknight_Faster } } } Wave { WaitWhenDone 60 Sound "Announcer.IncomingMob" Checkpoint Yes StartWaveOutput { Target wave_start_relay Action trigger } DoneOutput { Target wave_finished_nextwave_random Action trigger } Explanation //Dispayed once the wave is initialized { Line "{red}!!!WARNING, WE HAVE DETECTED A TANK PUSH COMING YOUR WAY!!!" Line "{yellow}The Giant's will be unexpectedly late for an unknown reason." Line ">wave 8 FINAL testing soon<" } WaveSpawn // side indicator { TotalCurrency 0 Name "w5_side_indicator" WaitForAllDead "w5_side_indicator" Where spawnbot_mission_sentrybuster Where spawnbot_mission_sentrybuster_left Where spawnbot_mission_sentrybuster_right RandomSpawn 1 Support 1 TFBot { Template T_TFBot_SentryBuster ClassIcon pathrandom } } WaveSpawn // Tank Boss duo { TotalCount 1 Name "w7_tank" TotalCurrency 750 WaitBeforeStarting 1 Tank { Name "tankboss" Health 450000 Speed 40 StartingPathTrackNode "boss_path_1" Skin 0 OnBombDroppedOutput { Target boss_deploy_relay Action Trigger } Template "TankIcon3" } } WaveSpawn // Tank Boss duo { TotalCount 1 Name "w7_tank" TotalCurrency 750 WaitBeforeStarting 8 Tank { Name "tankboss" Health 500000 Speed 30 StartingPathTrackNode "boss_path_1" Skin 0 OnBombDroppedOutput { Target boss_deploy_relay Action Trigger } Template "TankIcon3" } } WaveSpawn { Name "wave08Heavy" Where spawnbot_front_left Where spawnbot_front_right Where spawnbot_left Where spawnbot_right TotalCount 160 MaxActive 6 SpawnCount 3 WaitBetweenSpawns 3 WaitBeforeStarting 3 TFBot { Template T_TFBot_Scout_Melee } } WaveSpawn { Name "wave08SoldierBoss" Where spawnbot_front_left Where spawnbot_front_right Where spawnbot_left Where spawnbot_right TotalCount 8 MaxActive 8 SpawnCount 8 WaitBeforeStarting 250 TotalCurrency 125 Squad { ShouldPreserveSquad 1 TFBot { Template T_TFGateBot_Sergeant_Direct_Hit } TFBot { Template T_TFBot_Medic_Kritzkrieg_Giant } TFBot { Template T_TFBot_Medic } TFBot { Template T_TFBot_Medic } TFBot { Template T_TFBot_Medic } TFBot { Template T_TFBot_Medic } TFBot { Template T_TFBot_Medic } TFBot { Template T_TFBot_Medic } } } WaveSpawn { Name "wave08HeavyBoss" WaitForAllDead "wave08SoldierBoss" Where spawnbot_front_left Where spawnbot_front_right Where spawnbot_left Where spawnbot_right TotalCount 8 MaxActive 8 SpawnCount 8 WaitBeforeStarting 16 TotalCurrency 125 Squad { ShouldPreserveSquad 1 TFBot { Template T_TFBot_Giant_Heavyweapons_Shotgun_Rapid } TFBot { Template T_TFBot_Medic_Bullet_Resist ClassIcon medic_vac_duo_fb } TFBot { Template T_TFBot_Medic_Fire_Resist } TFBot { Template T_TFBot_Medic } TFBot { Template T_TFBot_Medic } TFBot { Template T_TFBot_Medic } TFBot { Template T_TFBot_Medic } TFBot { Template T_TFBot_Medic } } } WaveSpawn { Name "wave08PyroBoss" WaitForAllDead "wave08HeavyBoss" Where spawnbot_front_left Where spawnbot_front_right Where spawnbot_left Where spawnbot_right TotalCount 2 MaxActive 2 SpawnCount 2 WaitBeforeStarting 10 TotalCurrency 75 Squad { ShouldPreserveSquad 1 TFBot { Template T_TFGatebot_Pyro_Phlog_MiniBoss } TFBot { Template T_TFBot_Giant_Shield_Medic } } } WaveSpawn { Name "wave08HeavyS" WaitForAllDead "wave08Heavy" Where spawnbot_front_left Where spawnbot_front_right Where spawnbot_left Where spawnbot_right TotalCount 8 MaxActive 8 SpawnCount 4 WaitBetweenSpawns 4 WaitBeforeStarting 45 Support 1 TFBot { Template T_TFBot_Heavyweapons_Heavyweight_Champ Attributes AlwaysCrit } } } }