#base robot_standard.pop #base robot_giant.pop #base robot_custom_outpost.pop WaveSchedule { StartingCurrency 1000 RespawnWaveTime 7 CanBotsAttackWhileInSpawnRoom no Advanced 1 Mission // Sentry Busters { Objective DestroySentries InitialCooldown 30 Where spawnbot BeginAtWave 1 RunForThisManyWaves 4 CooldownTime 45 TFBot { Template T_TFBot_SentryBuster } } Wave { StartWaveOutput { Target wave_start_relay Action Trigger } DoneOutput { Target wave_finished_relay Action Trigger } WaitWhenDone 65 Checkpoint Yes WaveSpawn /// 36 soldiers - shacks, prefer to flank right { Name "w1_soldiers_flanks" Where spawnbot_right Where spawnbot_left RandomSpawn 1 WaitBetweenSpawns 5 TotalCurrency 50 TotalCount 36 MaxActive 12 SpawnCount 4 RandomChoice { TFBot { Class Soldier Skill Normal Tag nav_prefer_flank_right } TFBot { Class Soldier Skill Normal Tag nav_prefer_flank_left } TFBot { Class Soldier Skill Normal } } } WaveSpawn // giant rapid fire soldier - main, spawn 25 seconds after soldiers { Name "w1_soldier_spammer_main" Where spawnbot WaitBeforeStarting 25 WaitBetweenSpawns 20 TotalCurrency 100 TotalCount 2 MaxActive 2 SpawnCount 1 TFBot { Template T_TFBot_Giant_Soldier_Spammer } } WaveSpawn /// fan scouts after soldiers die - main, spawn after all soldiers die { Name "w1_scout_main" Where spawnbot WaitForAllDead "w1_soldier_spammer_main" WaitBetweenSpawns 5 TotalCurrency 50 TotalCount 32 MaxActive 16 SpawnCount 8 TFBot { Template T_TFBot_Scout_FAN } } WaveSpawn /// giant deflector heavy + 3 uber medics - main { Name "w1_deflector_medics_main" Where spawnbot WaitForAllDead "w1_scout_main" WaitBetweenSpawns 20 TotalCurrency 125 TotalCount 8 MaxActive 4 SpawnCount 4 Squad { TFBot { Template T_TFBot_Giant_Heavyweapons_Deflector } TFBot { Template T_TFBot_Medic_SlowRecharge } TFBot { Template T_TFBot_Medic_SlowRecharge } TFBot { Template T_TFBot_Medic_SlowRecharge } } } WaveSpawn /// giant crit soldiers - flank { Name "w1_charged_soldier_flank" Where spawnbot_invasion WaitForAllSpawned "w1_deflector_medics_main" TotalCurrency 50 TotalCount 2 MaxActive 2 SpawnCount 2 TFBot { Template T_TFBot_Giant_Soldier Attributes AlwaysCrit } } WaveSpawn /// demos and demoknights push - both spawns { Name "w1_demo_family_both" Where spawnbot_invasion Where spawnbot RandomSpawn 1 WaitForAllDead "w1_deflector_medics_main" WaitBetweenSpawns 10 TotalCurrency 75 TotalCount 28 MaxActive 14 SpawnCount 7 RandomChoice { TFBot { Template T_TFBot_Demoman_Knight } TFBot { Class Demoman Skill Normal } } } } /// wave 1 works, but it hasn't been playtested for 6 players yet, and probably won't be for a bit /// Wave { StartWaveOutput { Target wave_start_relay Action Trigger } DoneOutput { Target wave_finished_relay Action Trigger } WaitWhenDone 65 Checkpoint Yes WaveSpawn /// conch huntsman combo - spawns exclusively from right { Name "w2_conch_huntsman_shackright" Where spawnbot_right WaitBetweenSpawns 3 TotalCurrency 50 TotalCount 48 MaxActive 12 SpawnCount 6 Squad { TFBot { Template T_TFBot_Soldier_Extended_Concheror Tag nav_prefer_flank_right } TFBot { Template T_TFBot_Sniper_Huntsman Tag nav_prefer_flank_right } } } WaveSpawn /// 3 giant demos - spawn exclusively from left { Name "w2_demo_shackleft" Where spawnbot_left WaitBeforeStarting 12 WaitBetweenSpawns 5 TotalCurrency 100 TotalCount 3 MaxActive 3 SpawnCount 1 TFBot { Template T_TFBot_Giant_Demoman Tag nav_prefer_flank_left } } WaveSpawn /// 50 heavies after conchman combo - spawn after cock combo dies, main { Name "w2_heavies_swarm_main" Where spawnbot WaitForAllDead "w2_conch_huntsman_shackright" WaitBeforeStarting 15 WaitBetweenSpawns 3 TotalCurrency 50 TotalCount 50 MaxActive 15 SpawnCount 5 TFBot { Class Heavyweapons Skill Hard } } WaveSpawn /// crit solly swarm - spawn after heavies die, all spawns { Name "w2_crit_sollies_allspawn" Where spawnbot_left Where spawnbot_right Where spawnbot RandomSpawn 1 WaitBeforeStarting 20 WaitForAllDead "w2_heavies_swarm_main" WaitBetweenSpawns 1 TotalCurrency 50 TotalCount 60 MaxActive 15 SpawnCount 5 RandomChoice { TFBot { Class Soldier Skill Normal Attributes AlwaysCrit } TFBot { Class Soldier Skill Normal Attributes AlwaysCrit Tag nav_prefer_flank_right } TFBot { Class Soldier Skill Normal Attributes AlwaysCrit Tag nav_prefer_flank_left } } } WaveSpawn /// 3 giant heavies - main { Name "w2_giant_2heavy_main" Where spawnbot WaitForAllDead "w2_crit_sollies_allspawn" WaitBeforeStarting 10 WaitBetweenSpawns 7 TotalCurrency 150 TotalCount 3 MaxActive 3 SpawnCount 1 TFBot { Template T_TFBot_Giant_Heavyweapons } } WaveSpawn /// scout supports - invasion { Name "w2_scout_critman_invasion" Where spawnbot_invasion WaitForAllSpawned "w2_giant_2heavy_main" WaitBetweenSpawns 6 TotalCount 42 MaxActive 14 SpawnCount 6 TFBot { Template T_TFBot_Scout_Sandman Skill Expert Attributes AlwaysCrit } } } /// wave 2 works, but it hasn't been playtested for 6 players yet, and probably won't be for a bit /// Wave { StartWaveOutput { Target wave_start_relay Action Trigger } DoneOutput { Target wave_finished_relay Action Trigger } WaitWhenDone 65 Checkpoint Yes WaveSpawn /// 2 rapid fire soldiers with 2 uber medics each, wait 10 seconds between spawns - main { Name "w3_rapid_medic_combo_main" Where spawnbot WaitBetweenSpawns 10 TotalCurrency 175 TotalCount 4 MaxActive 4 SpawnCount 2 Squad { TFBot { Template T_TFBot_Giant_Soldier_Spammer } TFBot { Template T_TFBot_Medic_QuickUber } } } WaveSpawn /// 2 spies spawn for each combo, wait 10 seconds between spawns - spy spawnbot { Name "w3_spies_combo_spyspawn" Where spawnbot_mission_spy WaitBetweenSpawns 10 TotalCurrency 25 TotalCount 4 MaxActive 2 SpawnCount 2 Support Limited TFBot { Template T_TFBot_Spy } } WaveSpawn /// 32 crit box soldiers - main { Name "w3_crack_box_main" Where spawnbot WaitForAllDead "w3_rapid_medic_combo_main" WaitBetweenSpawns 14 TotalCurrency 50 TotalCount 32 MaxActive 16 SpawnCount 8 TFBot { Template T_TFBot_Soldier_RocketShotgun Attributes AlwaysCrit } } WaveSpawn /// burst fire demo + expert giant pyro combo - main { Name "w3_demo_pyro_main" Where spawnbot WaitForAllDead "w3_crack_box_main" WaitBeforeStarting 10 WaitBetweenSpawns 25 TotalCurrency 50 TotalCount 4 MaxActive 4 SpawnCount 1 RandomChoice { TFBot { Template T_TFBot_Giant_Demo_Burst ClassIcon demo_burst_giant } TFBot { Template T_TFBot_Giant_Pyro Skill Expert } } } WaveSpawn /// demoknight support - both shacks { Name "w3_demoknight_bothshack" Where spawnbot_left Where spawnbot_right RandomSpawn 1 WaitForAllSpawned "w3_demo_pyro_main" TotalCurrency 50 TotalCount 75 MaxActive 15 SpawnCount 5 Support Limited TFBot { Template T_TFBot_Demoman_Knight } } WaveSpawn /// buff banner push - invasion { Name "w3_buff_push_invasion" Where spawnbot_left Where spawnbot_right RandomSpawn 1 WaitForAllDead "w3_demoknight_bothshack" TotalCurrency 150 TotalCount 40 MaxActive 20 SpawnCount 1 TFBot { Template T_TFBot_Soldier_Extended_Buff_Banner } } WaveSpawn /// 6 super scouts - all spawns { Name "w3_six_scout_every" WaitForAllDead "w3_buff_push_invasion" WaitBetweenSpawns 7 TotalCurrency 50 TotalCount 6 MaxActive 6 SpawnCount 1 TFBot { Template T_TFBot_Giant_Scout_Fast } } /// WaveSpawn /// 72 burst demos, 12 per super scout - all spawns /// { /// Name "w3_burstdemo_main" /// Where spawnbot /// Where spawnbot_left /// Where spawnbot_right /// RandomSpawn 1 /// WaitForAllDead "w3_buff_push_invasion" /// TotalCurrency 5 /// TotalCount 72 /// MaxActive 12 /// SpawnCount 12 /// TFBot /// { /// Template T_TFBot_Demo_Burst /// } /// /// } WaveSpawn /// type 2 burst fire soldier + giant medic - main { Name "w3_burst_soldier_combo_main" Where spawnbot WaitForAllDead "w3_six_scout_every" WaitBeforeStarting 20 TotalCurrency 50 TotalCount 2 MaxActive 2 SpawnCount 2 Squad { TFBot { Template T_TFBot_Soldier_BurstFire } TFBot { Template T_TFBot_Giant_Medic } } } } /// wave 3 works, but it hasn't been playtested for 6 people yet. /// /// put this on potato.tf for testing when all 6 waves have been written /// Wave { StartWaveOutput { Target wave_start_relay Action Trigger } DoneOutput { Target wave_finished_relay Action Trigger } WaitWhenDone 65 Checkpoint Yes WaveSpawn /// blast soldiers - main { Name "w4_giant_blast_main" Where spawnbot WaitBetweenSpawns 15 TotalCurrency 100 TotalCount 5 MaxActive 5 SpawnCount 1 TFBot { Template T_TFBot_Giant_Soldier_RocketPush } } WaveSpawn /// crit persian persuader rush - invasion { Name "w4_persian_rush_crit" Where spawnbot_invasion WaitBetweenSpawns 2 TotalCurrency 50 TotalCount 80 MaxActive 16 SpawnCount 2 TFBot { Template T_TFBot_Demoman_Knight_Persian Attributes AlwaysCrit } } WaveSpawn /// bowman stream from all flanks to distract sentry for the tank - both shacks { Name "w4_bowman_distract_shacks" Where spawnbot_left Where spawnbot_right RandomSpawn 1 WaitForAllDead "w4_persian_rush_crit" WaitBetweenSpawns 2 TotalCurrency 90 TotalCount 80 MaxActive 16 SpawnCount 8 RandomChoice { TFBot { Template T_TFBot_Sniper_Huntsman Tag nav_prefer_flank_left } TFBot { Template T_TFBot_Sniper_Huntsman Tag nav_prefer_flank_right } } } WaveSpawn /// 5 tanks with 10000 hp { Name "w4_tank" WaitForAllDead "w4_persian_rush_crit" TotalCount 5 MaxActive 1 SpawnCount 1 WaitBeforeStarting 30 WaitBetweenSpawns 2 TotalCurrency 250 FirstSpawnOutput { Target boss_spawn_relay Action Trigger } Tank { Health 10000 Speed 75 Name "tankboss" StartingPathTrackNode "boss_path_b1" OnKilledOutput { Target boss_dead_relay Action Trigger } OnBombDroppedOutput { Target boss_deploy_relay Action Trigger } } } WaveSpawn /// super scouts - main, 15 seconds after soldiers { Name "w4_fan_super_main" Where spawnbot WaitBeforeStarting 10 WaitForAllDead "w4_giant_blast_main" TotalCurrency 25 TotalCount 2 MaxActive 2 SpawnCount 2 TFBot { Template T_TFBot_Giant_Scout_FAN ClassIcon scout_fan_giant Skill Expert Attributes AlwaysCrit } } WaveSpawn /// major crits boss with the crit scouts = main { Name "w4_majorcrit_main" WaitForAllSpawned "w4_fan_super_main" Where spawnbot WaitBeforeStarting 3 TotalCurrency 200 TotalCount 1 MaxActive 1 SpawnCount 1 TFBot { Template T_TFBot_Chief_Soldier_SlowCrit } } WaveSpawn /// support spies with extremely long cooldown - spy spawn { Name "w4_majorcrit_spysup" WaitForAllDead "w4_fan_super_main" Where spawnbot_mission_spy WaitBetweenSpawns 35 WaitBeforeStarting 15 TotalCount 30 MaxActive 8 SpawnCount 8 Support 1 TFBot { Template T_TFBot_Spy } } } /// wave 4 works /// Wave { StartWaveOutput { Target wave_start_relay Action Trigger } DoneOutput { Target wave_finished_relay Action Trigger } WaitWhenDone 65 Checkpoint Yes WaveSpawn /// tank with 25k hp { Name "w5_tank" TotalCount 1 MaxActive 1 SpawnCount 1 TotalCurrency 150 FirstSpawnOutput { Target boss_spawn_relay Action Trigger } Tank { Health 25000 Speed 75 Name "tankboss" StartingPathTrackNode "boss_path_b1" OnKilledOutput { Target boss_dead_relay Action Trigger } OnBombDroppedOutput { Target boss_deploy_relay Action Trigger } } } WaveSpawn /// giant crit heavies during tank { Name "w5_tank_support_giantheavy" Where spawnbot Where spawnbot_left Where spawnbot_right RandomSpawn 1 TotalCount 3 MaxActive 3 SpawnCount 1 WaitBeforeStarting 6 WaitBetweenSpawns 30 TFBot { Template T_TFBot_Giant_Heavyweapons Attributes AlwaysCrit } } WaveSpawn /// charged burst box soldier + qf med combo - main { Name "w5_charged_burst_combo_main" Where spawnbot WaitBeforeStarting 15 WaitBetweenSpawns 15 WaitForAllDead "w5_tank" TotalCurrency 150 TotalCount 10 MaxActive 5 SpawnCount 5 Squad { TFBot { Template T_TFBot_Giant_Charged_Burst_Box } TFBot { Template T_TFBot_Medic_BigHeal } TFBot { Template T_TFBot_Medic_BigHeal } TFBot { Template T_TFBot_Medic_BigHeal } TFBot { Template T_TFBot_Medic_BigHeal } } } WaveSpawn /// crit soldiers after burst box attack - invasion { Name "w5_soldier_crit_invasion" Where spawnbot_invasion WaitForAllDead "w5_charged_burst_combo_main" WaitBetweenSpawns 5 TotalCurrency 108 TotalCount 24 MaxActive 12 SpawnCount 4 TFBot { Class Soldier Skill Expert Attributes AlwaysCrit } } WaveSpawn /// giant fos heavy with five giant blast soldiers - main { Name "w5_fosheavy_blastsoldier_main" Where spawnbot WaitForAllDead "w5_charged_burst_combo_main" WaitBeforeStarting 30 WaitBetweenSpawns 25 TotalCurrency 50 TotalCount 10 MaxActive 5 SpawnCount 5 Squad { ShouldPreserveSquad 1 TFBot { Template T_TFBot_Giant_Soldier_RocketPush } TFBot { Template T_TFBot_Giant_Soldier_RocketPush } TFBot { Template T_TFBot_Heavyweapons_Fist Attributes MiniBoss Health 5000 CharacterAttributes { "move speed bonus" 0.5 "damage force reduction" 0.3 "airblast vulnerability multiplier" 0.3 "override footstep sound set" 2 } } TFBot { Template T_TFBot_Giant_Soldier_RocketPush } TFBot { Template T_TFBot_Giant_Soldier_RocketPush } } } WaveSpawn /// giant w+m1 pyro with 3 axtinguisher huntsmen - main { Name "w5_wm1_huntsman_main" Where spawnbot WaitForAllSpawned "w5_fosheavy_blastsoldier_main" WaitBeforeStarting 4 TotalCurrency 50 TotalCount 6 MaxActive 3 SpawnCount 3 Squad { TFBot { Template T_TFBot_Giant_Pyro Attributes AlwaysFireWeapon } TFBot { Template T_TFBot_Sniper_Huntsman } } } } /// boss Wave { StartWaveOutput { Target wave_start_relay Action Trigger } DoneOutput { Target wave_finished_relay Action Trigger } WaitWhenDone 65 Checkpoint Yes WaveSpawn /// chief steelfist - main { Name "w6_chiefsteel_main" Where spawnbot TotalCurrency 400 TotalCount 1 MaxActive 1 SpawnCount 1 TFBot { Template T_TFBot_Chief_Gauntlet } } WaveSpawn /// chief blasts - both shacks { Name "w6_chiefblast_both" Where spawnbot_left Where spawnbot_right RandomSpawn 1 WaitBeforeStarting 15 WaitBetweenSpawns 30 TotalCurrency 400 TotalCount 2 MaxActive 2 SpawnCount 1 TFBot { Template T_TFBot_Chief_Soldier_RocketPush } } } }