// infinite_wave_base.pop v2 — Dynamic infinite wave using $tf_bot_spawn // Bot stats are BASE values for 4 players. The infinite_wave.sp SourceMod // plugin scales HP, damage, spawn rate, and bot count dynamically based on // current RED player count, chat commands, and elapsed time. // // Requires: SigMod (sigsegv-mvm) for $tf_bot_spawn, PointTemplates, StartDisabled // // Usage: Create a per-map wrapper, e.g. mvm_isolation_rc3_infinite.pop: // #base "infinite_wave_base.pop" #base "robot_infinite_custom.pop" #base "vynitys_cache.pop" WaveSchedule { StartingCurrency 0 RespawnWaveTime 5 CanBotsAttackWhileInSpawnRoom no RobotLimit 24 SendBotsToSpectatorImmediately 1 [$SIGSEGV] // ================================================================= // POINT TEMPLATES // Bot_* = $tf_bot_spawn blueprints (what type of bot to spawn) // InfWaveSetup = env_entity_maker entities (one per bot type) // SM plugin fires ForceSpawn on these to create bots on demand. // ================================================================= PointTemplates [$SIGSEGV] { // ------------------------------------------------------------- // TIER 1 — BASIC // ------------------------------------------------------------- Bot_1_Scout { NoFixup 1 $tf_bot_spawn { "targetname" "inf_1_scout" "teamnum" "3" "=Class" "Scout" "=Skill" "Easy" "=Action" "FetchFlag" "$spawnlimit" "6" "$spawnlimitname" "inf_1_scout" } } Bot_1_Soldier { NoFixup 1 $tf_bot_spawn { "targetname" "inf_1_soldier" "teamnum" "3" "=Class" "Soldier" "=Skill" "Normal" "=Action" "FetchFlag" "=WeaponRestrictions" "PrimaryOnly" "$spawnlimit" "6" "$spawnlimitname" "inf_1_soldier" } } Bot_1_Pyro { NoFixup 1 $tf_bot_spawn { "targetname" "inf_1_pyro" "teamnum" "3" "=Class" "Pyro" "=Skill" "Normal" "=Action" "FetchFlag" "=WeaponRestrictions" "PrimaryOnly" "$spawnlimit" "4" "$spawnlimitname" "inf_1_pyro" } } // ------------------------------------------------------------- // TIER 2 — ARMORED // ------------------------------------------------------------- Bot_2_Demoman { NoFixup 1 $tf_bot_spawn { "targetname" "inf_2_demoman" "teamnum" "3" "=Class" "Demoman" "=Skill" "Normal" "=Action" "FetchFlag" "=WeaponRestrictions" "PrimaryOnly" "$spawnlimit" "4" "$spawnlimitname" "inf_2_demoman" } } Bot_2_Heavy { NoFixup 1 $tf_bot_spawn { "targetname" "inf_2_heavy" "teamnum" "3" "=Class" "Heavyweapons" "=Skill" "Normal" "=Action" "FetchFlag" "=WeaponRestrictions" "PrimaryOnly" "$spawnlimit" "3" "$spawnlimitname" "inf_2_heavy" } } Bot_2_Scout_Bonk { NoFixup 1 $tf_bot_spawn { "targetname" "inf_2_scout_bonk" "teamnum" "3" "=Class" "Scout" "=Skill" "Hard" "=Action" "FetchFlag" "=WeaponRestrictions" "MeleeOnly" "=Item" "Bonk! Atomic Punch" "$spawnlimit" "2" "$spawnlimitname" "inf_2_scout_bonk" } } Bot_2_Soldier_Buff { NoFixup 1 $tf_bot_spawn { "targetname" "inf_2_soldier_buff" "teamnum" "3" "=Class" "Soldier" "=Skill" "Normal" "=Action" "FetchFlag" "=Attributes" "SpawnWithFullCharge" "=Item" "The Buff Banner" "$spawnlimit" "2" "$spawnlimitname" "inf_2_soldier_buff" } } // ------------------------------------------------------------- // TIER 3 — SPECIALISTS // ------------------------------------------------------------- Bot_3_Medic { NoFixup 1 $tf_bot_spawn { "targetname" "inf_3_medic" "teamnum" "3" "=Class" "Medic" "=Skill" "Normal" "=Action" "Medic" "=Attributes" "SpawnWithFullCharge" "$spawnlimit" "2" "$spawnlimitname" "inf_3_medic" } } Bot_3_Medic_QF { NoFixup 1 $tf_bot_spawn { "targetname" "inf_3_medic_qf" "teamnum" "3" "=Class" "Medic" "=Skill" "Normal" "=Action" "Medic" "=Attributes" "SpawnWithFullCharge" "=Item" "The Quick-Fix" "$spawnlimit" "2" "$spawnlimitname" "inf_3_medic_qf" } } Bot_3_Sniper { NoFixup 1 $tf_bot_spawn { "targetname" "inf_3_sniper" "teamnum" "3" "=Class" "Sniper" "=Skill" "Hard" "=Action" "Sniper" "$spawnlimit" "2" "$spawnlimitname" "inf_3_sniper" } } Bot_3_Spy { NoFixup 1 $tf_bot_spawn { "targetname" "inf_3_spy" "teamnum" "3" "=Class" "Spy" "=Skill" "Expert" "=Action" "Spy" "$spawnlimit" "2" "$spawnlimitname" "inf_3_spy" } } Bot_3_Engineer { NoFixup 1 $tf_bot_spawn { "targetname" "inf_3_engineer" "teamnum" "3" "=Class" "Engineer" "=Skill" "Normal" "=Action" "Engineer" "$spawnlimit" "1" "$spawnlimitname" "inf_3_engineer" } } Bot_3_Pyro_Flare { NoFixup 1 $tf_bot_spawn { "targetname" "inf_3_pyro_flare" "teamnum" "3" "=Class" "Pyro" "=Skill" "Expert" "=Action" "FetchFlag" "=WeaponRestrictions" "SecondaryOnly" "=Item" "The Flare Gun" "$spawnlimit" "2" "$spawnlimitname" "inf_3_pyro_flare" } } Bot_3_Demoknight { NoFixup 1 $tf_bot_spawn { "targetname" "inf_3_demoknight" "teamnum" "3" "=Class" "Demoman" "=Skill" "Hard" "=Action" "FetchFlag" "=WeaponRestrictions" "MeleeOnly" "=Item" "The Chargin' Targe" "=Item" "The Eyelander" "$spawnlimit" "3" "$spawnlimitname" "inf_3_demoknight" } } Bot_3_Heavy_Deflector { NoFixup 1 $tf_bot_spawn { "targetname" "inf_3_heavy_deflector" "teamnum" "3" "=Class" "Heavyweapons" "=Skill" "Hard" "=Health" "900" "=Action" "FetchFlag" "=WeaponRestrictions" "PrimaryOnly" "=Item" "Deflector" "$spawnlimit" "2" "$spawnlimitname" "inf_3_heavy_deflector" } } // ------------------------------------------------------------- // TIER 4 — GIANTS // ------------------------------------------------------------- Bot_4_Giant_Scout { NoFixup 1 $tf_bot_spawn { "targetname" "inf_4_giant_scout" "teamnum" "3" "=Class" "Scout" "=Skill" "Expert" "=Health" "1600" "=Action" "FetchFlag" "=Attributes" "MiniBoss" "=WeaponRestrictions" "PrimaryOnly" "$spawnlimit" "1" "$spawnlimitname" "inf_4_giant_scout" } } Bot_4_Giant_Soldier { NoFixup 1 $tf_bot_spawn { "targetname" "inf_4_giant_soldier" "teamnum" "3" "=Class" "Soldier" "=Skill" "Expert" "=Health" "3800" "=Action" "FetchFlag" "=Attributes" "MiniBoss|HoldFireUntilFullReload" "=WeaponRestrictions" "PrimaryOnly" "$spawnlimit" "1" "$spawnlimitname" "inf_4_giant_soldier" } } Bot_4_Giant_Demo { NoFixup 1 $tf_bot_spawn { "targetname" "inf_4_giant_demo" "teamnum" "3" "=Class" "Demoman" "=Skill" "Expert" "=Health" "3300" "=Action" "FetchFlag" "=Attributes" "MiniBoss|HoldFireUntilFullReload" "=WeaponRestrictions" "PrimaryOnly" "$spawnlimit" "1" "$spawnlimitname" "inf_4_giant_demo" } } Bot_4_Giant_Heavy { NoFixup 1 $tf_bot_spawn { "targetname" "inf_4_giant_heavy" "teamnum" "3" "=Class" "Heavyweapons" "=Skill" "Expert" "=Health" "5000" "=Action" "FetchFlag" "=Attributes" "MiniBoss" "=WeaponRestrictions" "PrimaryOnly" "$spawnlimit" "1" "$spawnlimitname" "inf_4_giant_heavy" } } Bot_4_Giant_Medic { NoFixup 1 $tf_bot_spawn { "targetname" "inf_4_giant_medic" "teamnum" "3" "=Class" "Medic" "=Skill" "Expert" "=Health" "4500" "=Action" "Medic" "=Attributes" "MiniBoss|SpawnWithFullCharge" "=WeaponRestrictions" "SecondaryOnly" "=Item" "The Quick-Fix" "$spawnlimit" "1" "$spawnlimitname" "inf_4_giant_medic" } } Bot_4_Giant_Pyro { NoFixup 1 $tf_bot_spawn { "targetname" "inf_4_giant_pyro" "teamnum" "3" "=Class" "Pyro" "=Skill" "Expert" "=Health" "3000" "=Action" "FetchFlag" "=Attributes" "MiniBoss" "=WeaponRestrictions" "PrimaryOnly" "$spawnlimit" "1" "$spawnlimitname" "inf_4_giant_pyro" } } Bot_4_Giant_Soldier_Crit { NoFixup 1 $tf_bot_spawn { "targetname" "inf_4_giant_soldier_crit" "teamnum" "3" "=Class" "Soldier" "=Skill" "Expert" "=Health" "3800" "=Action" "FetchFlag" "=Attributes" "MiniBoss|AlwaysCrit" "=WeaponRestrictions" "PrimaryOnly" "$spawnlimit" "1" "$spawnlimitname" "inf_4_giant_soldier_crit" } } // ------------------------------------------------------------- // TIER 5 — BOSSES // ------------------------------------------------------------- Bot_5_Boss_Heavy { NoFixup 1 $tf_bot_spawn { "targetname" "inf_5_boss_heavy" "teamnum" "3" "=Class" "Heavyweapons" "=Skill" "Expert" "=Health" "9000" "=Scale" "1.9" "=Action" "FetchFlag" "=Attributes" "MiniBoss" "=WeaponRestrictions" "MeleeOnly" "=Item" "Fists of Steel" "$spawnlimit" "1" "$spawnlimitname" "inf_5_boss_heavy" } } Bot_5_Boss_Soldier { NoFixup 1 $tf_bot_spawn { "targetname" "inf_5_boss_soldier" "teamnum" "3" "=Class" "Soldier" "=Skill" "Expert" "=Health" "8000" "=Scale" "1.8" "=Action" "FetchFlag" "=Attributes" "MiniBoss|AlwaysCrit" "=WeaponRestrictions" "PrimaryOnly" "$spawnlimit" "1" "$spawnlimitname" "inf_5_boss_soldier" } } Bot_5_Boss_Demo { NoFixup 1 $tf_bot_spawn { "targetname" "inf_5_boss_demo" "teamnum" "3" "=Class" "Demoman" "=Skill" "Expert" "=Health" "7500" "=Scale" "1.8" "=Action" "FetchFlag" "=Attributes" "MiniBoss|AlwaysCrit" "=WeaponRestrictions" "PrimaryOnly" "$spawnlimit" "1" "$spawnlimitname" "inf_5_boss_demo" } } Bot_5_Boss_Scout { NoFixup 1 $tf_bot_spawn { "targetname" "inf_5_boss_scout" "teamnum" "3" "=Class" "Scout" "=Skill" "Expert" "=Health" "4000" "=Scale" "1.7" "=Action" "FetchFlag" "=Attributes" "MiniBoss" "=WeaponRestrictions" "MeleeOnly" "=Item" "The Holy Mackerel" "$spawnlimit" "1" "$spawnlimitname" "inf_5_boss_scout" } } // TIER 6 — MEGABOSSES Bot_6_Mega_Heavy { NoFixup 1 $tf_bot_spawn { "targetname" "inf_6_mega_heavy" "teamnum" "3" "=Class" "Heavyweapons" "=Skill" "Expert" "=Health" "30000" "=Scale" "1.9" "=Action" "FetchFlag" "=Attributes" "MiniBoss|AlwaysCrit|UseBossHealthBar" "=WeaponRestrictions" "PrimaryOnly" "=Item" "Natascha" "$spawnlimit" "1" "$spawnlimitname" "inf_6_mega_heavy" } } Bot_6_Mega_Soldier { NoFixup 1 $tf_bot_spawn { "targetname" "inf_6_mega_soldier" "teamnum" "3" "=Class" "Soldier" "=Skill" "Expert" "=Health" "25000" "=Scale" "1.9" "=Action" "FetchFlag" "=Attributes" "MiniBoss|AlwaysCrit|UseBossHealthBar|ProjectileShield|SpawnWithFullCharge" "=WeaponRestrictions" "PrimaryOnly" "$spawnlimit" "1" "$spawnlimitname" "inf_6_mega_soldier" } } // ------------------------------------------------------------- // WAVE RELAY — chains all map relays through a single entity // so we only need one StartWaveOutput in the Wave block. // Maps missing any of these targets silently ignore them. // ------------------------------------------------------------- InfWaveRelays { NoFixup 1 logic_relay { "targetname" "inf_start_all" "OnTrigger" "wave_start_relay,Trigger,,0,-1" "OnTrigger" "wave_start_relay_b,Trigger,,0,-1" "OnTrigger" "wave_setup_relay,Trigger,,0,-1" } } // ------------------------------------------------------------- // SETUP TEMPLATE — creates env_entity_maker for every bot type // SpawnTemplate in the Wave block instantiates these at wave start. // The SM plugin finds them by targetname and fires ForceSpawn. // ------------------------------------------------------------- InfWaveSetup { NoFixup 1 // Tier 1 env_entity_maker { "targetname" "Spawn_1_Scout" "EntityTemplate" "Bot_1_Scout" } env_entity_maker { "targetname" "Spawn_1_Soldier" "EntityTemplate" "Bot_1_Soldier" } env_entity_maker { "targetname" "Spawn_1_Pyro" "EntityTemplate" "Bot_1_Pyro" } // Tier 2 env_entity_maker { "targetname" "Spawn_2_Demoman" "EntityTemplate" "Bot_2_Demoman" } env_entity_maker { "targetname" "Spawn_2_Heavy" "EntityTemplate" "Bot_2_Heavy" } env_entity_maker { "targetname" "Spawn_2_Scout_Bonk" "EntityTemplate" "Bot_2_Scout_Bonk" } env_entity_maker { "targetname" "Spawn_2_Soldier_Buff" "EntityTemplate" "Bot_2_Soldier_Buff" } // Tier 3 env_entity_maker { "targetname" "Spawn_3_Medic" "EntityTemplate" "Bot_3_Medic" } env_entity_maker { "targetname" "Spawn_3_Medic_QF" "EntityTemplate" "Bot_3_Medic_QF" } env_entity_maker { "targetname" "Spawn_3_Sniper" "EntityTemplate" "Bot_3_Sniper" } env_entity_maker { "targetname" "Spawn_3_Spy" "EntityTemplate" "Bot_3_Spy" } env_entity_maker { "targetname" "Spawn_3_Engineer" "EntityTemplate" "Bot_3_Engineer" } env_entity_maker { "targetname" "Spawn_3_Pyro_Flare" "EntityTemplate" "Bot_3_Pyro_Flare" } env_entity_maker { "targetname" "Spawn_3_Demoknight" "EntityTemplate" "Bot_3_Demoknight" } env_entity_maker { "targetname" "Spawn_3_Heavy_Deflector" "EntityTemplate" "Bot_3_Heavy_Deflector" } // Tier 4 env_entity_maker { "targetname" "Spawn_4_Giant_Scout" "EntityTemplate" "Bot_4_Giant_Scout" } env_entity_maker { "targetname" "Spawn_4_Giant_Soldier" "EntityTemplate" "Bot_4_Giant_Soldier" } env_entity_maker { "targetname" "Spawn_4_Giant_Demo" "EntityTemplate" "Bot_4_Giant_Demo" } env_entity_maker { "targetname" "Spawn_4_Giant_Heavy" "EntityTemplate" "Bot_4_Giant_Heavy" } env_entity_maker { "targetname" "Spawn_4_Giant_Medic" "EntityTemplate" "Bot_4_Giant_Medic" } env_entity_maker { "targetname" "Spawn_4_Giant_Pyro" "EntityTemplate" "Bot_4_Giant_Pyro" } env_entity_maker { "targetname" "Spawn_4_Giant_Soldier_Crit" "EntityTemplate" "Bot_4_Giant_Soldier_Crit" } // Tier 5 env_entity_maker { "targetname" "Spawn_5_Boss_Heavy" "EntityTemplate" "Bot_5_Boss_Heavy" } env_entity_maker { "targetname" "Spawn_5_Boss_Soldier" "EntityTemplate" "Bot_5_Boss_Soldier" } env_entity_maker { "targetname" "Spawn_5_Boss_Demo" "EntityTemplate" "Bot_5_Boss_Demo" } env_entity_maker { "targetname" "Spawn_5_Boss_Scout" "EntityTemplate" "Bot_5_Boss_Scout" } // Tier 6 env_entity_maker { "targetname" "Spawn_6_Mega_Heavy" "EntityTemplate" "Bot_6_Mega_Heavy" } env_entity_maker { "targetname" "Spawn_6_Mega_Soldier" "EntityTemplate" "Bot_6_Mega_Soldier" } } } // ================================================================= // WAVE 1 — THE INFINITE WAVE // ================================================================= Wave { // Create all env_entity_maker + relay entities at wave start SpawnTemplate [$SIGSEGV] { Name "InfWaveSetup" } SpawnTemplate [$SIGSEGV] { Name "InfWaveRelays" } InitWaveOutput { Target bignet Action RunScriptCode Param "IncludeScript(`tankextensions_main`, getroottable()) IncludeScript(`tankextensions/speedtank`, getroottable()) IncludeScript(`tankextensions/vactank`, getroottable()) IncludeScript(`tankextensions/bannertank`, getroottable()) IncludeScript(`tankextensions/fireringtank`, getroottable()) IncludeScript(`tankextensions/combattank`, getroottable()) IncludeScript(`tankextensions/combattank_weapons/minigun`, getroottable()) IncludeScript(`tankextensions/combattank_weapons/rocketpod`, getroottable()) IncludeScript(`tankextensions/drilltank`, getroottable()) IncludeScript(`tankextensions/frontlinecart`, getroottable()) IncludeScript(`tankextensions/tankdozer`, getroottable()) IncludeScript(`tankextensions/hammertank`, getroottable()) IncludeScript(`tankextensions/ubertank`, getroottable()) IncludeScript(`tankextensions/scaletank`, getroottable()) IncludeScript(`tankextensions/targetank`, getroottable()) IncludeScript(`tankextensions/redtank`, getroottable()) IncludeScript(`tankextensions/paratank`, getroottable()) IncludeScript(`tankextensions/chewchewtank`, getroottable()) IncludeScript(`tankextensions/jumptank`, getroottable()) IncludeScript(`tankextensions/stickytank`, getroottable()) IncludeScript(`tankextensions/sentrytank`, getroottable())" } StartWaveOutput { Target inf_start_all Action Trigger } DoneOutput { Target wave_finished_relay Action Trigger } // Anchor WaveSpawn: keeps the wave alive indefinitely. // MaxActive 0 prevents it from spawning bots. // Dynamic bots from env_entity_maker handle everything. WaveSpawn { Name "anchor" Where spawnbot TotalCount 99999 MaxActive 0 SpawnCount 1 WaitBeforeStarting 0 WaitBetweenSpawns 99999 TotalCurrency 0 TFBot { Class Scout Skill Easy Action FetchFlag } } // ============================================================= // TANK WAVESPAWNS — Tiered, all StartDisabled // SM plugin resumes them in groups as tiers unlock. // Group 1: Basic (resumed ~180s) // Group 2: Advanced (resumed ~600s) // Group 3: Boss (resumed ~1200s) // Group 4: Mega (resumed ~1800s) // ============================================================= // --- GROUP 1: BASIC --- WaveSpawn { Name "inf_tank_basic" TotalCount 1 MaxActive 1 SpawnCount 1 WaitBeforeStarting 180 WaitBetweenSpawns 120 TotalCurrency 0 Support 1 StartDisabled 1 [$SIGSEGV] Tank { Health 15000 Speed 75 Name "yourteamsucks" StartingPathTrackNode "boss_path_1" OnKilledOutput { Target boss_dead_relay Action Trigger } OnBombDroppedOutput { Target boss_deploy_relay Action Trigger } } } WaveSpawn { Name "inf_tank_speed" TotalCount 1 MaxActive 1 SpawnCount 1 WaitBeforeStarting 180 WaitBetweenSpawns 150 TotalCurrency 0 Support 1 StartDisabled 1 [$SIGSEGV] Tank { Health 10000 Speed 100 Name "speedtank|150" StartingPathTrackNode "boss_path_1" OnKilledOutput { Target boss_dead_relay Action Trigger } OnBombDroppedOutput { Target boss_deploy_relay Action Trigger } } } // --- GROUP 2: ADVANCED --- WaveSpawn { Name "inf_tank_vac" TotalCount 1 MaxActive 1 SpawnCount 1 WaitBeforeStarting 600 WaitBetweenSpawns 180 TotalCurrency 0 Support 1 StartDisabled 1 [$SIGSEGV] Tank { Health 20000 Speed 60 Name "vactank_bullet_blast_fire" StartingPathTrackNode "boss_path_1" OnKilledOutput { Target boss_dead_relay Action Trigger } OnBombDroppedOutput { Target boss_deploy_relay Action Trigger } } } WaveSpawn { Name "inf_tank_banner" TotalCount 1 MaxActive 1 SpawnCount 1 WaitBeforeStarting 600 WaitBetweenSpawns 180 TotalCurrency 0 Support 1 StartDisabled 1 [$SIGSEGV] Tank { Health 15000 Speed 75 Name "bannertank_buff_conch" StartingPathTrackNode "boss_path_1" OnKilledOutput { Target boss_dead_relay Action Trigger } OnBombDroppedOutput { Target boss_deploy_relay Action Trigger } } } WaveSpawn { Name "inf_tank_firering" TotalCount 1 MaxActive 1 SpawnCount 1 WaitBeforeStarting 600 WaitBetweenSpawns 200 TotalCurrency 0 Support 1 StartDisabled 1 [$SIGSEGV] Tank { Health 16000 Speed 70 Name "fireringtank" StartingPathTrackNode "boss_path_1" OnKilledOutput { Target boss_dead_relay Action Trigger } OnBombDroppedOutput { Target boss_deploy_relay Action Trigger } } } // --- GROUP 3: BOSS --- WaveSpawn { Name "inf_tank_combat" TotalCount 1 MaxActive 1 SpawnCount 1 WaitBeforeStarting 1200 WaitBetweenSpawns 240 TotalCurrency 0 Support 1 StartDisabled 1 [$SIGSEGV] Tank { Health 25000 Speed 50 Name "combattank|minigun" StartingPathTrackNode "boss_path_1" OnKilledOutput { Target boss_dead_relay Action Trigger } OnBombDroppedOutput { Target boss_deploy_relay Action Trigger } } } WaveSpawn { Name "inf_tank_drill" TotalCount 1 MaxActive 1 SpawnCount 1 WaitBeforeStarting 1200 WaitBetweenSpawns 220 TotalCurrency 0 Support 1 StartDisabled 1 [$SIGSEGV] Tank { Health 22000 Speed 60 Name "drilltank" StartingPathTrackNode "boss_path_1" OnKilledOutput { Target boss_dead_relay Action Trigger } OnBombDroppedOutput { Target boss_deploy_relay Action Trigger } } } WaveSpawn { Name "inf_tank_cart" TotalCount 1 MaxActive 1 SpawnCount 1 WaitBeforeStarting 1200 WaitBetweenSpawns 200 TotalCurrency 0 Support 1 StartDisabled 1 [$SIGSEGV] Tank { Health 18000 Speed 65 Name "frontlinecart|rocket|jarate" StartingPathTrackNode "boss_path_1" OnKilledOutput { Target boss_dead_relay Action Trigger } OnBombDroppedOutput { Target boss_deploy_relay Action Trigger } } } // --- GROUP 4: MEGA --- WaveSpawn { Name "inf_tank_dozer" TotalCount 1 MaxActive 1 SpawnCount 1 WaitBeforeStarting 1800 WaitBetweenSpawns 300 TotalCurrency 0 Support 1 StartDisabled 1 [$SIGSEGV] Tank { Health 35000 Speed 40 Name "tankdozer" StartingPathTrackNode "boss_path_1" OnKilledOutput { Target boss_dead_relay Action Trigger } OnBombDroppedOutput { Target boss_deploy_relay Action Trigger } } } WaveSpawn { Name "inf_tank_combat_heavy" TotalCount 1 MaxActive 1 SpawnCount 1 WaitBeforeStarting 1800 WaitBetweenSpawns 300 TotalCurrency 0 Support 1 StartDisabled 1 [$SIGSEGV] Tank { Health 30000 Speed 45 Name "combattank|rocketpod|minigun" StartingPathTrackNode "boss_path_1" OnKilledOutput { Target boss_dead_relay Action Trigger } OnBombDroppedOutput { Target boss_deploy_relay Action Trigger } } } WaveSpawn { Name "inf_tank_hammer" TotalCount 1 MaxActive 1 SpawnCount 1 WaitBeforeStarting 1800 WaitBetweenSpawns 280 TotalCurrency 0 Support 1 StartDisabled 1 [$SIGSEGV] Tank { Health 30000 Speed 50 Name "hammertank" StartingPathTrackNode "boss_path_1" OnKilledOutput { Target boss_dead_relay Action Trigger } OnBombDroppedOutput { Target boss_deploy_relay Action Trigger } } } } }