#base robot_standard.pop #base robot_giant.pop #base robot_skangus.pop WaveSchedule { StartingCurrency 400 CanBotsAttackWhileInSpawnRoom No RespawnWaveTime 2 Mission { Where spawnbot Objective DestroySentries CooldownTime 30 TFBot { Template T_TFBot_SentryBuster_NoDodge } } Mission { Where spawnbot_topflank BeginAtWave 6 RunForThisManyWaves 1 Objective Sniper InitialCooldown 20 CooldownTime 30 DesiredCount 2 TFBot { Class Sniper Skill Normal Tag snipernottaketopfalldamage } } Mission { Where spawnbot_topflank BeginAtWave 6 RunForThisManyWaves 1 Objective Spy InitialCooldown 15 CooldownTime 35 DesiredCount 2 TFBot { Class Spy Skill Expert } } Wave // Wave 1 { StartWaveOutput { Target gamerules Action RunScriptCode Param " EntFire(`wave_start_relay`, `Trigger`) " } DoneOutput { Target wave_finished_relay Action Trigger } InitWaveOutput { Target gamerules Action RunScriptCode Param " EntFire(`bombpath_choose_random_relay`, `Trigger`) " } WaveSpawn { Where spawnbot TotalCount 24 MaxActive 12 SpawnCount 3 WaitBeforeStarting 0 WaitBetweenSpawns 5 TotalCurrency 200 RandomChoice { TFBot { Class Scout Skill Easy Tag forcefollowbombpath Tag noflank } TFBot { Class Scout Skill Normal WeaponRestrictions MeleeOnly Tag forcefollowbombpath Tag noflank } } } WaveSpawn { Where spawnbot TotalCount 4 MaxActive 4 SpawnCount 1 WaitBeforeStarting 9 WaitBetweenSpawns 9 TotalCurrency 400 TFBot { Template T_TFBot_Soldier_Bison_Rapidfire Tag forcefollowbombpath Tag noflank } } } Wave // Wave 2 { StartWaveOutput { Target gamerules Action RunScriptCode Param " EntFire(`wave_start_relay`, `Trigger`) " } DoneOutput { Target wave_finished_relay Action Trigger } InitWaveOutput { Target gamerules Action RunScriptCode Param " EntFire(`bombpath_choose_random_relay`, `Trigger`) " } WaveSpawn { Where spawnbot TotalCount 8 MaxActive 8 SpawnCount 1 WaitBeforeStarting 0 WaitBetweenSpawns 7.5 TotalCurrency 400 TFBot { Template T_TFBot_Heavyweapons_Fist Tag forcefollowbombpath Tag noflank } } WaveSpawn { Where spawnbot_right_back TotalCount 4 MaxActive 4 SpawnCount 4 WaitBeforeStarting 20 WaitBetweenSpawns 5 TotalCurrency 100 TFBot { Template T_TFBot_Soldier_Extended_Concheror Skill Easy Tag fm_soldier Tag nav_prefer_flank_auto_long BehaviorModifiers Push } } WaveSpawn { Where spawnbot_left TotalCount 4 MaxActive 4 SpawnCount 4 WaitBeforeStarting 40 WaitBetweenSpawns 5 TotalCurrency 100 TFBot { Template T_TFBot_Soldier_Extended_Concheror Skill Easy Tag fm_soldier Tag nav_prefer_flank_auto_short BehaviorModifiers Push } } } Wave // Wave 3 { StartWaveOutput { Target gamerules Action RunScriptCode Param " EntFire(`wave_start_relay`, `Trigger`) " } DoneOutput { Target wave_finished_relay Action Trigger } InitWaveOutput { Target gamerules Action RunScriptCode Param " EntFire(`bombpath_choose_random_relay`, `Trigger`) " } WaveSpawn { Name 3a Where spawnbot TotalCount 12 MaxActive 12 SpawnCount 6 WaitBeforeStarting 0 WaitBetweenSpawns 6 TotalCurrency 100 RandomChoice { TFBot { Class Demoman Skill Easy Tag forcefollowbombpath Tag noflank } TFBot { Class Demoman Skill Easy Tag forcefollowbombpath Tag noflank } TFBot { Class Demoman Skill Normal Tag forcefollowbombpath Tag noflank } } } WaveSpawn { Where spawnbot TotalCount 6 MaxActive 6 SpawnCount 6 WaitBeforeStarting 12 WaitBetweenSpawns 6 TotalCurrency 50 TFBot { Class Demoman Skill Easy Tag forcefollowbombpath Tag noflank } } WaveSpawn { Name 3b Where spawnbot TotalCount 27 MaxActive 18 SpawnCount 9 WaitBeforeStarting 0 WaitForAllDead 3a WaitBetweenSpawns 6 TotalCurrency 250 TFBot { Class Demoman Skill Easy Tag forcefollowbombpath Tag noflank } } WaveSpawn { Name 3c Where spawnbot_right TotalCount 4 MaxActive 4 SpawnCount 4 WaitBeforeStarting 0 WaitForAllDead 3a WaitBetweenSpawns 8 TotalCurrency 100 TFBot { Class Heavy Skill Easy Tag forcefollowbombpath Tag noflank } } WaveSpawn { Where spawnbot_topflank TotalCount 1 MaxActive 1 SpawnCount 1 WaitBeforeStarting 0 WaitBetweenSpawns 5 WaitForAllDead 3c TotalCurrency 400 TFBot { Template T_TFBot_Giant_Pyro Tag doesnottaketopfalldamage Tag forcefollowbombpath Tag noflank } } } Wave // Wave 4 { StartWaveOutput { Target gamerules Action RunScriptCode Param " EntFire(`wave_start_relay_aggressiveengis`, `Trigger`) " } DoneOutput { Target wave_finished_relay Action Trigger } InitWaveOutput { Target gamerules Action RunScriptCode Param " EntFire(`bombpath_choose_random_relay`, `Trigger`) " } WaveSpawn { Name 4a Where spawnbot TotalCount 1 MaxActive 1 SpawnCount 1 WaitBeforeStarting 0 WaitBetweenSpawns 6 TotalCurrency 900 Tank { Health 18000 Speed 75 Name "tankboss" StartingPathTrackNode "boss_path_middle_1" OnBombDroppedOutput { Target boss_deploy_relay Action Trigger } OnKilledOutput { Target boss_dead_middle_relay Action Trigger } } } WaveSpawn { Where spawnbot_topflank TotalCount 1 MaxActive 1 SpawnCount 1 WaitBeforeStarting 0 WaitBetweenSpawns 5 WaitForAllDead 4a TotalCurrency 900 TFBot { Template T_TFBot_Giant_Demoman Skill Normal Tag doesnottaketopfalldamage Tag forcefollowbombpath Tag noflank } } WaveSpawn { Where spawnbot Where spawnbot_left Where spawnbot_right Where spawnbot_topflank TotalCount 10 MaxActive 7 SpawnCount 1 WaitBeforeStarting 2 WaitBetweenSpawns 3 Support Limited TotalCurrency 0 TFBot { Template T_TFBot_Engineer_Sentry_Tele_Battle TeleportWhere spawnbot_topflank Tag doesnottaketopfalldamage Attributes IgnoreFlag } } } Wave // Wave 5 { StartWaveOutput { Target gamerules Action RunScriptCode Param " EntFire(`wave_start_relay`, `Trigger`) " } DoneOutput { Target wave_finished_relay Action Trigger } InitWaveOutput { Target gamerules Action RunScriptCode Param //Placeholder spawns are used to have greater control over when bots spawn " EntFire(`bombpath_choose_random_relay`, `Trigger`) EntFire(`spawnbot_placeholder1`, `Disable`) EntFire(`spawnbot_placeholder2`, `Disable`) " } WaveSpawn { Name 5a Where spawnbot_right TotalCount 15 MaxActive 10 SpawnCount 5 WaitBeforeStarting 12 WaitBetweenSpawns 15 TotalCurrency 300 DoneOutput { Target gamerules Action RunScriptCode Param //Placeholder spawns are used to have greater control over when bots spawn " EntFire(`spawnbot_placeholder1`, `Enable`) " } TFBot { Template T_TFBot_Soldier_Bison_Rapidfire Tag forcefollowbombpath Tag noflank } } WaveSpawn { Name 5a Where spawnbot TotalCount 2 MaxActive 1 SpawnCount 1 WaitBeforeStarting 0 WaitBetweenSpawns 5 TotalCurrency 400 DoneOutput { Target gamerules Action RunScriptCode Param //Placeholder spawns are used to have greater control over when bots spawn " EntFire(`spawnbot_placeholder1`, `Enable`) " } TFBot { Template T_TFBot_Giant_Heavyweapons Tag forcefollowbombpath Tag noflank } } WaveSpawn { Name 5b Where spawnbot_placeholder1 TotalCount 1 MaxActive 1 SpawnCount 1 WaitBeforeStarting 3 WaitBetweenSpawns 1 Support Limited TotalCurrency 2 TFBot { Class Scout Skill Easy } } WaveSpawn { Where spawnbot TotalCount 48 MaxActive 12 SpawnCount 2 WaitBeforeStarting 0 WaitBetweenSpawns 1 WaitForAllSpawned 5b Support 1 TotalCurrency 98 TFBot { Class Scout Skill Easy } } } Wave // Wave 6 { StartWaveOutput { Target gamerules Action RunScriptCode Param " EntFire(`wave_start_relay`, `Trigger`) " } DoneOutput { Target wave_finished_relay Action Trigger } InitWaveOutput { Target gamerules Action RunScriptCode Param " EntFire(`bombpath_choose_right_relay`, `Trigger`) " } WaveSpawn { Where spawnbot TotalCount 2 MaxActive 2 SpawnCount 2 WaitBeforeStarting 0 WaitBetweenSpawns 15 TotalCurrency 800 Squad { TFBot { Template T_TFBot_Giant_Heavyweapons_BrassBeast_Hatted Tag forcefollowbombpath Tag noflank } TFBot { Template T_TFBot_Giant_Medic_Regen Tag forcefollowbombpath Tag noflank } } } } Wave // Wave 5 { StartWaveOutput { Target gamerules Action RunScriptCode Param " EntFire(`wave_start_relay_aggressiveengis`, `Trigger`) " } DoneOutput { Target wave_finished_relay Action Trigger } InitWaveOutput { Target gamerules Action RunScriptCode Param //Placeholder spawns are used to have greater control over when bots spawn " EntFire(`bombpath_choose_random_relay`, `Trigger`) EntFire(`spawnbot_placeholder1`, `Disable`) EntFire(`spawnbot_placeholder2`, `Disable`) " } WaveSpawn { Where spawnbot TotalCount 2 MaxActive 2 SpawnCount 1 WaitBeforeStarting 0 WaitBetweenSpawns 14 TotalCurrency 200 TFBot { Template T_TFBot_Giant_Heavyweapons_BrassBeast_Hatted Tag forcefollowbombpath Tag noflank } } WaveSpawn { Name 7a Where spawnbot Where spawnbot_left Where spawnbot_right TotalCount 30 MaxActive 15 SpawnCount 15 WaitBeforeStarting 10 WaitBetweenSpawns 5 // RandomSpawn 1 TotalCurrency 200 DoneOutput { Target gamerules Action RunScriptCode Param " EntFire(`spawnbot_placeholder1`, `Enable`, null, 35) EntFire(`spawnbot_placeholder2`, `Enable`, null, 25) " } TFBot { Class Demoman Skill Expert Tag forcefollowbombpath Tag noflank } } WaveSpawn { Where spawnbot TotalCount 4 MaxActive 4 SpawnCount 4 WaitBeforeStarting 0 WaitBetweenSpawns 1 WaitForAllDead 7a TotalCurrency 400 TFBot { Template T_TFBot_Giant_Demoman Tag forcefollowbombpath Tag noflank } } WaveSpawn { Where spawnbot TotalCount 1 MaxActive 1 SpawnCount 1 WaitBeforeStarting 15 WaitBetweenSpawns 6 WaitForAllDead 7a TotalCurrency 0 DoneOutput { Target gamerules Action RunScriptCode Param " EntFire(`spawnbot_placeholder1`, `Enable`, null, 0) EntFire(`spawnbot_placeholder2`, `Enable`, null, 0) " } Tank { Health 25000 Speed 75 Name "tankboss" StartingPathTrackNode "boss_path_left_1" Skin 1 OnBombDroppedOutput { Target boss_deploy_relay Action Trigger } OnKilledOutput { Target boss_dead_left_relay Action Trigger } } } WaveSpawn { Name 7b_buffer Where spawnbot_placeholder1 TotalCount 1 MaxActive 1 SpawnCount 1 WaitBeforeStarting 5 Support Limited TotalCurrency 0 RandomChoice { RandomChoice { TFBot { Class Scout Tag killme } } } } WaveSpawn { Name 7c_buffer Where spawnbot_placeholder2 TotalCount 1 MaxActive 1 SpawnCount 1 WaitBeforeStarting 5 Support Limited TotalCurrency 0 RandomChoice { RandomChoice { TFBot { Class Scout Tag killme } } } } WaveSpawn { Where spawnbot_right TotalCount 8 MaxActive 8 SpawnCount 8 WaitForAllDead 7b_buffer WaitBetweenSpawns 5 TotalCurrency 100 TFBot { Template T_TFBot_Soldier_Extended_Concheror Skill Expert Tag fm_soldier Tag nav_prefer_flank_auto_long BehaviorModifiers Push } } WaveSpawn { Where spawnbot_left TotalCount 8 MaxActive 8 SpawnCount 8 WaitForAllDead 7c_buffer WaitBetweenSpawns 5 TotalCurrency 100 TFBot { Template T_TFBot_Soldier_Extended_Concheror Skill Expert Tag fm_soldier Tag nav_prefer_flank_auto_short BehaviorModifiers Push } } WaveSpawn { Where spawnbot_topflank TotalCount 2 MaxActive 2 SpawnCount 1 WaitBeforeStarting 10 WaitBetweenSpawns 12 WaitForAllDead 7a Support Limited TotalCurrency 0 TFBot { Template T_TFBot_Engineer_Sentry_Tele_Battle TeleportWhere spawnbot_topflank Tag doesnottaketopfalldamage Attributes IgnoreFlag } } } }