//Mission: Sporulation (Exp) //Mission Maker: Quantum Apple //Map: Skangus //Map Maker: Bazooks //V8.4 //Thank you Timey for helping write a lot of the vscript logic //Uses sporulation.nut V3.2 to add decoration and upgrade station music // // Starting Currency: 1500 // // +----------+----------+----------+ // | Wave | Currency | A+ | // +----------+----------+----------+ // | Wave 1 | 1200 | 1300 | // | Wave 2 | 1100 | 1200 | // | Wave 3 | 1200 | 1300 | // | Wave 4 | 1200 | 1300 | // | Wave 5 | 1200 | 1300 | // | Wave 6 | 1600 | 1700 | // +----------+----------+----------+ // | Total | 7500 | 8100 | // +----------+----------+----------+ // #base robot_standard.pop #base robot_giant.pop WaveSchedule { StartingCurrency 1500 CanBotsAttackWhileInSpawnRoom No RespawnWaveTime 3 FixedRespawnWaveTime Yes Advanced 1 Templates { T_TFBot_Giant_Soldier_Bison_Burst_Spammer { Class Soldier Name "Giant Burst Spammer Bison" ClassIcon soldier_bison_giant Health 3800 Skill Expert Item "Lord Cockswain's Pith Helmet" WeaponRestrictions PrimaryOnly Attributes HoldFireUntilFullReload Attributes MiniBoss Item "Upgradeable TF_WEAPON_ROCKETLAUNCHER" ItemAttributes { ItemName "Upgradeable TF_WEAPON_ROCKETLAUNCHER" "override projectile type" 13 "energy weapon penetration" 1 "set item tint RGB" 255 "attach particle effect" 3045 "clip size upgrade atomic" 4 "faster reload rate" 0.122 "fire rate bonus" -1 "projectile spread angle penalty" 1 } CharacterAttributes { "move speed bonus" 0.5 "damage force reduction" 0.4 "airblast vulnerability multiplier" 0.4 "override footstep sound set" 3 "Projectile speed increased" 0.65 } } T_TFBot_Giant_Soldier_Blast { Name "Giant Blast Soldier" Class Soldier ClassIcon soldier_libertylauncher_giant Health 3800 Attributes MiniBoss Attributes HoldFireUntilFullReload Skill Expert WeaponRestrictions PrimaryOnly Item "The Liberty Launcher" Item "The Whirly Warrior" ItemAttributes { ItemName "The Liberty Launcher" "damage blast push" 10 "fire rate bonus" -1 "faster reload rate" 0.3 "clip size upgrade atomic" 6 "Blast radius increased" 1.2 "projectile spread angle penalty" 3 "Projectile speed increased" 0.9 } CharacterAttributes { "move speed bonus" 0.5 "damage force reduction" 0.2 "airblast vulnerability multiplier" 0.2 "override footstep sound set" 3 // 5=Scout,3=Soldier,6=Pyro,4=Demoman,2=Heavy,7=Buster } } T_TFBot_Giant_Soldier_Spammer_Direct_Hit { Class Soldier Name "Giant Rapid Direct Hit Soldier" ClassIcon soldier_spammer_directhit_yoovy Item "The Direct Hit" Item "Breach and Bomb" Health 3800 Skill Expert WeaponRestrictions PrimaryOnly Attributes MiniBoss ItemAttributes { ItemName "The Direct Hit" "faster reload rate" -0.8 "fire rate bonus" 0.5 } CharacterAttributes { "move speed bonus" 0.5 "damage force reduction" 0.4 "airblast vulnerability multiplier" 0.4 "override footstep sound set" 3 } } T_TFBot_Giant_Soldier_Spammer_Extended_Concheror { Class Soldier Name "Giant Rapid Concheror Soldier" ClassIcon soldier_conch_spammer_giant Health 3800 Skill Expert Item "The Lucky Shot" WeaponRestrictions PrimaryOnly Attributes MiniBoss Attributes SpawnWithFullCharge Item "The Concheror" Item "Upgradeable TF_WEAPON_ROCKETLAUNCHER" ItemAttributes { ItemName "Upgradeable TF_WEAPON_ROCKETLAUNCHER" "faster reload rate" -0.8 "fire rate bonus" 0.5 } CharacterAttributes { "move speed bonus" 0.5 "damage force reduction" 0.4 "airblast vulnerability multiplier" 0.4 "override footstep sound set" 3 "Projectile speed increased" 0.65 "increase buff duration" 9.0 "deploy time increased" 0.5 } } T_TFBot_Giant_Soldier_Spammer_Reload_Battalion { Class Soldier Name "Giant Burst Battalion Soldier" ClassIcon soldier_burstfire_backup_giant Item "The Shogun's Shoulder Guard" Item "The Battalion's Backup" Item "Upgradeable TF_WEAPON_ROCKETLAUNCHER" Health 3800 Skill Expert WeaponRestrictions PrimaryOnly Attributes MiniBoss Attributes HoldFireUntilFullReload Attributes SpawnWithFullCharge ItemAttributes { ItemName "Upgradeable TF_WEAPON_ROCKETLAUNCHER" "faster reload rate" 0.6 "fire rate bonus" 0.1 "clip size upgrade atomic" 5.0 "Projectile speed increased" 0.65 } CharacterAttributes { "move speed bonus" 0.5 "damage force reduction" 0.4 "airblast vulnerability multiplier" 0.4 "override footstep sound set" 3 "increase buff duration" 2.5 "deploy time increased" 0.5 } } T_TFBot_Giant_Pyro_Big_Flame { Name "Giant Big Flame Pyro" Class Pyro ClassIcon pyro_ricochet_nys Health 3000 Attributes MiniBoss Attributes AlwaysFireWeapon Skill Normal WeaponRestrictions PrimaryOnly Item "Pyromancer's Mask" Item "The Nostromo Napalmer" ItemAttributes { ItemName "The Nostromo Napalmer" "flame_drag" 4 //"damage bonus" 1.2 } CharacterAttributes { "move speed bonus" 0.5 "damage force reduction" 0.2 "airblast vulnerability multiplier" 0.2 "override footstep sound set" 6 // 5=Scout,3=Soldier,6=Pyro,4=Demoman,2=Heavy,7=Buster } } T_TFBot_Giant_Heavyweapons_BrassBeast_Fix { Class Heavy Name "Giant Brass Beast Heavy" ClassIcon heavy_brass_nys_giant Item "The Brass Beast" Skill Expert Health 5000 WeaponRestrictions PrimaryOnly Attributes MiniBoss ItemAttributes { ItemName "The Brass Beast" "damage bonus" 1.7 } CharacterAttributes { "move speed bonus" 0.5 "damage force reduction" 0.3 "airblast vulnerability multiplier" 0.3 "override footstep sound set" 2 } } T_TFBot_Giant_Heavyweapons_Shotgun_Burst { Class Heavyweapons Name "Giant Burst Shotgun Heavy" ClassIcon heavy_shotgun_burst_lite //giant version of icon seems to have issues with people missing it on potato servers? Skill Expert Health 5000 WeaponRestrictions SecondaryOnly MaxVisionRange 1200 Attributes MiniBoss Item "The Eliminators Safeguard" //Item "Upgradeable TF_WEAPON_SHOTGUN_HWG" ItemAttributes { ItemName "TF_WEAPON_SHOTGUN_HWG" "fire rate bonus" 0.2 "bullets per shot bonus" 4 "damage penalty" 0.5 "faster reload rate" 0.6 "auto fires when full" 1 "auto fires full clip" 1 } CharacterAttributes { "move speed bonus" 0.7 "damage force reduction" 0.3 "airblast vulnerability multiplier" 0.3 "attack projectiles" 1 // force ability to shoot down projectiles "override footstep sound set" 2 } } T_TFBot_Giant_Medic_Kritz { Class Medic Name "Giant Kritz Medic" ClassIcon medic_kritz_giant Skill Expert Health 4500 Attributes SpawnWithFullCharge Item "The Kritzkrieg" WeaponRestrictions SecondaryOnly Attributes MiniBoss Item "Flatliner" ItemAttributes { ItemName "The Kritzkrieg" "uber duration bonus" -10 } CharacterAttributes { "move speed bonus" 0.6 "damage force reduction" 0.6 "airblast vulnerability multiplier" 0.6 "bot medic uber health threshold" 5000 "heal rate bonus" 200 } } T_TFBot_Scout_Pistol { Class Scout Name "Pistol Scout" ClassIcon scout_pistol_nys Skill Normal WeaponRestrictions SecondaryOnly Item "Flipped Trilby" } T_TFBot_Soldier_Direct_Hit { Class Soldier Name "Direct Hit Soldier" ClassIcon soldier_directhit_lite Skill Normal Item "The Direct Hit" Item "Breach and Bomb" } T_TFBot_Pyro_Airblast { Class Pyro ClassIcon pyro_reflect_daan Skill Hard WeaponRestrictions PrimaryOnly Item "The Degreaser" Item "Traffic Cone" } T_TFBot_Pyro_Dragon_Fury { Class Pyro Name "Dragon's Fury Pyro" ClassIcon pyro_dragon_fury_swordstone Skill Normal MaxVisionRange 800 WeaponRestrictions PrimaryOnly Item "The Dragon's Fury" Item "Firewall Helmet" } T_TFBot_Pyro_Phlogistinator { Class Pyro Name "Phlogistinator Pyro" ClassIcon pyro_phlog Skill Hard WeaponRestrictions PrimaryOnly Item "The Phlogistinator" Item "The Bolted Birdcage" Attributes SpawnWithFullCharge ItemAttributes { ItemName "The Phlogistinator" "airblast disabled" 0 } } T_TFBot_Heavyweapons_Deflector { Class Heavyweapons Name "Deflector Heavy" ClassIcon heavy_deflector Skill Hard Item "The U-clank-a" Item "Deflector" WeaponRestrictions PrimaryOnly MaxVisionRange 1200 ItemAttributes { ItemName "Deflector" "attack projectiles" 1 } } T_TFBot_Heavyweapons_Mitten { Class Heavyweapons Name "Moldy Punchie" Skill Hard ClassIcon heavy_mittens //Scale 0.65 WeaponRestrictions MeleeOnly Health 125 Attributes AlwaysCrit Item "The All-Father" //man, why doesn't this work with "set item tint RGB" Item "The Toadstool Topper" Item "The Holiday Punch" ItemAttributes { ItemName "The Holiday Punch" "damage bonus" 0.2 } CharacterAttributes { "move speed bonus" 1.3 } } T_TFBot_Heavyweapons_Shotgun_No_Stat { Class Heavyweapons ClassIcon heavy_shotgun Name "Heavy Shotgun" Item "The Purity Fist" Skill Normal WeaponRestrictions SecondaryOnly } T_TFBot_Medic_BigHeal_Improved { Class Medic Name "Big Heal Medic" Item "The Surgeon's Stahlhelm" Skill Hard Item "The Quick-Fix" ItemAttributes { ItemName "The Quick-Fix" "ubercharge rate bonus" 0.1 } CharacterAttributes { "heal rate bonus" 10 } } T_TFBot_Medic_BigHeal_Pop { Class Medic Name "Big Heal Medic" ClassIcon medic_pop //Item "The Surgeon's Stahlhelm" Skill Hard Item "The Quick-Fix" Attributes SpawnWithFullCharge ItemAttributes { ItemName "The Quick-Fix" } CharacterAttributes { "heal rate bonus" 10 } } T_TFBot_Sniper_Huntsman_Spammer_Improved { Class Sniper Name "Rapid Fire Bowman" Item "The Huntsman" ClassIcon sniper_bow_multi Skill Hard Health 1200 Scale 1.5 ItemAttributes { ItemName "The Huntsman" "fire rate bonus" 0.6 } CharacterAttributes { "head scale" 0.7 "move speed bonus" 0.85 "damage force reduction" 0.75 "airblast vulnerability multiplier" 0.75 } } } Mission // For Wave 1-6 { Where spawnbot Objective DestroySentries // Engineer,Sniper,Spy,DestroySentries CooldownTime 30 TFBot { Template T_TFBot_SentryBuster WeaponRestrictions PrimaryOnly Name "Haha Brrrrffft" Item "The Toadstool Topper" Item "The Boom Boxers" Attributes DisableDodge CharacterAttributes { "head scale" 2 "torso scale" 0.6 } } } Mission // For Wave 2 { Where spawnbot_mission_sniper Objective Sniper // Engineer,Sniper,Spy,DestroySentries BeginAtWave 2 RunForThisManyWaves 1 DesiredCount 2 InitialCooldown 20 CooldownTime 35 TFBot { Template T_TFBot_Sniper Name "Fun-gi" Item "The Toadstool Topper" Tag snipernottaketopfalldamage } } Mission // For Wave 2-4 { Where spawnbot_mission_spy Objective Spy // Engineer,Sniper,Spy,DestroySentries BeginAtWave 2 RunForThisManyWaves 3 DesiredCount 2 InitialCooldown 30 CooldownTime 35 TFBot { Template T_TFBot_Spy Name "Amoonguss" Item "The Toadstool Topper" Item "Your Eternal Reward" } } Mission // For Wave 4 { Where spawnbot_mission_sniper Objective Sniper // Engineer,Sniper,Spy,DestroySentries BeginAtWave 4 RunForThisManyWaves 1 DesiredCount 3 InitialCooldown 20 CooldownTime 35 TFBot { Template T_TFBot_Sniper Name "Fun-gi" Item "The Toadstool Topper" Tag snipernottaketopfalldamage } } Mission // For Wave 6 { Where spawnbot_mission_sniper Objective Sniper // Engineer,Sniper,Spy,DestroySentries BeginAtWave 6 RunForThisManyWaves 1 DesiredCount 2 InitialCooldown 20 CooldownTime 35 TFBot { Template T_TFBot_Sniper Name "Fun-gi" Item "The Toadstool Topper" Tag snipernottaketopfalldamage } } Mission // For Wave 6 { Where spawnbot_mission_spy Objective Spy // Engineer,Sniper,Spy,DestroySentries BeginAtWave 6 RunForThisManyWaves 1 DesiredCount 2 InitialCooldown 30 CooldownTime 35 TFBot { Template T_TFBot_Spy Name "Amoonguss" Item "The Toadstool Topper" Item "Your Eternal Reward" } } Wave // Wave 1 { StartWaveOutput { Target gamerules Action RunScriptCode Param " EntFire(`wave_start_relay`, `Trigger`) EntFire(`radiostation1`, `volume`, `0`) EntFire(`radiostation2`, `volume`, `0`) EntFire(`radiostation3`, `volume`, `0`) EntFire(`disposable_spawnbot_left_relay_disable`, `Trigger`) EntFire(`disposable_spawnbot_right_relay_disable`, `Trigger`) " } DoneOutput { Target wave_finished_relay Action Trigger } InitWaveOutput { Target gamerules Action RunScriptCode Param " EntFire(`bombpath_choose_right_relay`, `Trigger`) IncludeScript(`sporulation`) " } WaveSpawn //3 gburst soldier ($100) { Name "1a" //WaitForAllDead "" Where spawnbot TotalCount 3 MaxActive 2 SpawnCount 1 WaitBeforeStarting 0 WaitBetweenSpawns 15 TotalCurrency 100 TFBot { Template T_TFBot_Giant_Soldier_Spammer_Reload Attributes AlwaysCrit Tag forcefollowbombpath Tag noflank } } WaveSpawn //25 knights ($100) { //Name "" //WaitForAllDead "" Where spawnbot TotalCount 25 MaxActive 10 SpawnCount 5 WaitBeforeStarting 1 WaitBetweenSpawns 5 TotalCurrency 100 TFBot { Template T_TFBot_Demoman_Knight } } WaveSpawn //26 scouts ($100) { //Name "" //WaitForAllDead "" Where spawnbot_right Where spawnbot_left TotalCount 26 MaxActive 4 SpawnCount 2 WaitBeforeStarting 1 WaitBetweenSpawns 5 TotalCurrency 100 TFBot { Class Scout Skill Hard } } WaveSpawn // left 10k tank ($400) { //Name "" //WaitForAllDead "" TotalCount 1 MaxActive 1 SpawnCount 1 WaitBeforeStarting 8 WaitBetweenSpawns 0 TotalCurrency 200 Tank { Name "tankboss" StartingPathTrackNode "boss_path_left_1" Health 10000 Speed 75 Skin 0 OnKilledOutput { Target boss_dead_left_relay Action Trigger } OnBombDroppedOutput { Target boss_deploy_relay Action Trigger } } } WaveSpawn // middle 9k tank ($200) { //Name "" //WaitForAllDead "" TotalCount 1 MaxActive 1 SpawnCount 1 WaitBeforeStarting 40 WaitBetweenSpawns 0 TotalCurrency 200 Tank { Name "tankboss" StartingPathTrackNode "boss_path_middle_1" Health 9000 Speed 75 Skin 0 OnKilledOutput { Target boss_dead_middle_relay Action Trigger } OnBombDroppedOutput { Target boss_deploy_relay Action Trigger } } } WaveSpawn // Dummy, Waits for all gbursts to die, activates gshotguns { WaitForAllDead "1a" WaitBeforeStarting 0 FirstSpawnOutput { Target disposable_spawnbot_right_relay_enable Action Trigger } } WaveSpawn // Dummy, Waits for all gbursts to die, activates super scouts { WaitForAllDead "1a" WaitBeforeStarting 0 FirstSpawnOutput { Target disposable_spawnbot_left_relay_enable Action Trigger } } WaveSpawn // Dummy, Waits for 100 seconds, activates gshotguns { //WaitForAllDead "1a" WaitBeforeStarting 100 Support 1 //Used to prevent wave needing this wavespawn to be activated for completion FirstSpawnOutput { Target disposable_spawnbot_right_relay_enable Action Trigger } } WaveSpawn // Dummy, Waits for 100 seconds, activates super scouts { //WaitForAllDead "1a" WaitBeforeStarting 100 Support 1 //Used to prevent wave needing this wavespawn to be activated for completion FirstSpawnOutput { Target disposable_spawnbot_left_relay_enable Action Trigger } } ////////////////////////////////////////////////////////////// // 2 possible conditions for spawning supers and gshotguns // // // // 1. All gbursts die // // OR // // 2. 100 seconds pass // // // // This is to prevent stalling the 2nd subwave // ////////////////////////////////////////////////////////////// WaveSpawn //2 gshotgun + 4 umeds($100) { Name "1b" //WaitForAllDead "1a" Where spawnbot_left_disposable TotalCount 6 MaxActive 6 SpawnCount 3 WaitBeforeStarting 0 WaitBetweenSpawns 12.5 TotalCurrency 100 Squad { TFBot { Template T_TFBot_Giant_Heavyweapons_Shotgun Tag gentlynudgeleft Tag forcefollowbombpath Tag noflank } TFBot { Template T_TFBot_Medic_QuickUber } TFBot { Template T_TFBot_Medic_QuickUber } } } WaveSpawn //3 superscouts { //Name "" //WaitForAllDead "1a" Where spawnbot_right_disposable TotalCount 3 MaxActive 2 SpawnCount 1 WaitBeforeStarting 0 WaitBetweenSpawns 15 TotalCurrency 100 TFBot { Template T_TFBot_Giant_Scout_Fast Tag forcefollowbombpath Tag noflank } } WaveSpawn //1 gheavy + 12 umeds ($300) { Name "1c" WaitForAllSpawned "1b" Where spawnbot TotalCount 13 MaxActive 13 SpawnCount 13 WaitBeforeStarting 6 WaitBetweenSpawns 0 TotalCurrency 300 Squad { TFBot { Template T_TFBot_Giant_Heavyweapons Tag forcefollowbombpath Tag noflank } TFBot { Template T_TFBot_Medic_QuickUber } TFBot { Template T_TFBot_Medic_QuickUber } TFBot { Template T_TFBot_Medic_QuickUber } TFBot { Template T_TFBot_Medic_QuickUber } TFBot { Template T_TFBot_Medic_QuickUber } TFBot { Template T_TFBot_Medic_QuickUber } TFBot { Template T_TFBot_Medic_QuickUber } TFBot { Template T_TFBot_Medic_QuickUber } TFBot { Template T_TFBot_Medic_QuickUber } TFBot { Template T_TFBot_Medic_QuickUber } TFBot { Template T_TFBot_Medic_QuickUber } TFBot { Template T_TFBot_Medic_QuickUber } } } } Wave // Wave 2 { StartWaveOutput { Target gamerules Action RunScriptCode Param " EntFire(`wave_start_relay`, `Trigger`) EntFire(`radiostation1`, `volume`, `0`) EntFire(`radiostation2`, `volume`, `0`) EntFire(`radiostation3`, `volume`, `0`) " } DoneOutput { Target wave_finished_relay Action Trigger } InitWaveOutput { Target gamerules Action RunScriptCode Param " EntFire(`bombpath_choose_left_or_right_relay`, `Trigger`) IncludeScript(`sporulation`) EntFire(`radiostation1`, `volume`, `10`) EntFire(`radiostation2`, `volume`, `10`) EntFire(`radiostation3`, `volume`, `10`) " } WaveSpawn //3 gburst demo ($200) { Name "2a" //WaitForAllDead "" Where spawnbot_right Where spawnbot_left TotalCount 6 MaxActive 6 SpawnCount 2 WaitBeforeStarting 0 WaitBetweenSpawns 13 TotalCurrency 200 Squad { TFBot { Template T_TFBot_Giant_Demo_Burst Attributes AlwaysCrit Tag forcefollowbombpath //Tag noflank } TFBot { Template T_TFBot_Medic_QuickUber } } } WaveSpawn //18 phlog pyros ($100) { //Name "" //WaitForAllDead "" Where spawnbot_topflank TotalCount 18 MaxActive 6 SpawnCount 2 WaitBeforeStarting 1 WaitBetweenSpawns 4 TotalCurrency 100 TFBot { Template T_TFBot_Pyro_Phlogistinator Tag forcefollowbombpath Tag doesnottaketopfalldamage Tag gentlynudgetop } } WaveSpawn //20 shotgun heavies ($100) { //Name "2a" //WaitForAllDead "" Where spawnbot TotalCount 20 MaxActive 8 SpawnCount 2 WaitBeforeStarting 5 WaitBetweenSpawns 2 TotalCurrency 100 TFBot { Template T_TFBot_Heavyweapons_Shotgun_No_Stat Skill Hard Tag forcefollowbombpath //Tag noflank } } WaveSpawn //3 gpyro big flame + 3 gkritz ($400) { Name "2b" WaitForAllDead "2a" Where spawnbot_left TotalCount 6 MaxActive 6 SpawnCount 2 WaitBeforeStarting 0 WaitBetweenSpawns 17.5 TotalCurrency 400 Squad { TFBot { Template T_TFBot_Giant_Pyro_Big_Flame Tag gentlynudgeleft Tag forcefollowbombpath //Tag noflank } TFBot { Template T_TFBot_Giant_Medic_Kritz Tag gentlynudgeleft } } } WaveSpawn //20 pistol scouts ($100) { //Name "2b" WaitForAllDead "2a" Where spawnbot_right Where spawnbot Where spawnbot_topflank RandomSpawn 1 TotalCount 20 MaxActive 6 SpawnCount 2 WaitBeforeStarting 0 WaitBetweenSpawns 1 TotalCurrency 100 TFBot { Template T_TFBot_Scout_Pistol Tag doesnottaketopfalldamage Tag forcefollowbombpath } } WaveSpawn //20 holiday punchies ($100) { //Name "2b" WaitForAllDead "2a" Where spawnbot_right Where spawnbot Where spawnbot_topflank RandomSpawn 1 TotalCount 20 MaxActive 6 SpawnCount 1 WaitBeforeStarting 0 WaitBetweenSpawns 0.5 TotalCurrency 100 TFBot { Template T_TFBot_Heavyweapons_Mitten Tag doesnottaketopfalldamage Tag forcefollowbombpath } } WaveSpawn //14 crit soldiers ($100) { Name "2c" WaitForAllSpawned "2b" Where spawnbot Where spawnbot_left Where spawnbot_right RandomSpawn 1 TotalCount 14 MaxActive 14 SpawnCount 1 WaitBeforeStarting 20.5 WaitBetweenSpawns 0.2 TotalCurrency 100 TFBot { Class Soldier Skill Normal Attributes AlwaysCrit Tag forcefollowbombpath //Tag noflank } } } Wave // Wave 3 { StartWaveOutput { Target gamerules Action RunScriptCode Param " EntFire(`wave_start_relay_aggressiveengis`, `Trigger`) EntFire(`radiostation1`, `volume`, `0`) EntFire(`radiostation2`, `volume`, `0`) EntFire(`radiostation3`, `volume`, `0`) " } DoneOutput { Target wave_finished_relay Action Trigger } InitWaveOutput { Target gamerules Action RunScriptCode Param " EntFire(`bombpath_choose_middle_or_right_relay`, `Trigger`) IncludeScript(`sporulation`) EntFire(`radiostation1`, `volume`, `10`) EntFire(`radiostation2`, `volume`, `10`) EntFire(`radiostation3`, `volume`, `10`) " } WaveSpawn // Tank 20k HP right($200) { //Name "" //WaitForAllDead "" TotalCount 1 MaxActive 1 SpawnCount 1 WaitBeforeStarting 0 WaitBetweenSpawns 0 TotalCurrency 200 Tank { Name "tankboss" StartingPathTrackNode "boss_path_right_1" Health 20000 Speed 75 Skin 0 OnKilledOutput { Target boss_dead_right_relay Action Trigger } OnBombDroppedOutput { Target boss_deploy_relay Action Trigger } } } WaveSpawn // Tank 20k HP left ($200) { //Name "" //WaitForAllDead "" TotalCount 1 MaxActive 1 SpawnCount 1 WaitBeforeStarting 15 WaitBetweenSpawns 0 TotalCurrency 200 Tank { Name "tankboss" StartingPathTrackNode "boss_path_left_1" Health 20000 Speed 75 Skin 0 OnKilledOutput { Target boss_dead_left_relay Action Trigger } OnBombDroppedOutput { Target boss_deploy_relay Action Trigger } } } WaveSpawn //30 deflectors ($200) { Name "3a" //WaitForAllDead "" Where spawnbot_left Where spawnbot_right TotalCount 30 MaxActive 5 SpawnCount 2 WaitBeforeStarting 0 WaitBetweenSpawns 3 TotalCurrency 100 Support 1 RandomChoice { TFBot { Template T_TFBot_Heavyweapons_Deflector } TFBot { Template T_TFBot_Heavyweapons_Deflector Skill Normal } } } WaveSpawn //40 demos ($100) { Name "3a" //WaitForAllDead "" Where spawnbot TotalCount 40 MaxActive 4 SpawnCount 1 WaitBeforeStarting 0 WaitBetweenSpawns 1 TotalCurrency 100 Support 1 TFBot { Class Demoman Skill Hard } } WaveSpawn //40 airblast pyros ($100) { Name "3a" //WaitForAllDead "" Where spawnbot_right Where spawnbot_left TotalCount 40 MaxActive 4 SpawnCount 1 WaitBeforeStarting 0 WaitBetweenSpawns 1 TotalCurrency 100 Support 1 TFBot { Template T_TFBot_Pyro_Airblast } } WaveSpawn //engie { Name "3a" //WaitForAllDead "" Where spawnbot_right Where spawnbot_left Where spawnbot_topflank TotalCount 15 MaxActive 3 SpawnCount 1 WaitBeforeStarting 2 WaitBetweenSpawns 7 TotalCurrency 0 Support 1 TFBot { Template T_TFBot_Engineer_Sentry_Battle Item "The Jag" Tag doesnottaketopfalldamage Attributes IgnoreFlag } } WaveSpawn //6 bowmen spammer ($100) { //Name "3a" //WaitForAllDead "" Where spawnbot_topflank TotalCount 6 MaxActive 4 SpawnCount 2 WaitBeforeStarting 30 WaitBetweenSpawns 9 TotalCurrency 100 Support Limited RandomChoice { TFBot { Template T_TFBot_Sniper_Huntsman_Spammer_Improved //Attributes AlwaysCrit Tag doesnottaketopfalldamage Tag gentlynudgetop Tag nav_prefer_flank_left Tag flankpusher BehaviorModifiers Push } TFBot { Template T_TFBot_Sniper_Huntsman_Spammer_Improved //Attributes AlwaysCrit Tag doesnottaketopfalldamage Tag gentlynudgetop Tag nav_prefer_flank_middle Tag flankpusher BehaviorModifiers Push } TFBot { Template T_TFBot_Sniper_Huntsman_Spammer_Improved //Attributes AlwaysCrit Tag doesnottaketopfalldamage Tag gentlynudgetop Tag nav_prefer_flank_right Tag flankpusher BehaviorModifiers Push } } } WaveSpawn // Tank 20k HP middle ($300) { //Name "" //WaitForAllDead "" TotalCount 1 MaxActive 1 SpawnCount 1 WaitBeforeStarting 50 WaitBetweenSpawns 0 TotalCurrency 400 Tank { Name "tankboss" StartingPathTrackNode "boss_path_middle_1" Health 20000 Speed 75 Skin 0 OnKilledOutput { Target boss_dead_middle_relay Action Trigger } OnBombDroppedOutput { Target boss_deploy_relay Action Trigger } } } } Wave // Wave 4 { StartWaveOutput { Target gamerules Action RunScriptCode Param " EntFire(`wave_start_relay`, `Trigger`) EntFire(`radiostation1`, `volume`, `0`) EntFire(`radiostation2`, `volume`, `0`) EntFire(`radiostation3`, `volume`, `0`) " } DoneOutput { Target wave_finished_relay Action Trigger } InitWaveOutput { Target gamerules Action RunScriptCode Param " EntFire(`bombpath_choose_random_relay`, `Trigger`) IncludeScript(`sporulation`) EntFire(`radiostation1`, `volume`, `10`) EntFire(`radiostation2`, `volume`, `10`) EntFire(`radiostation3`, `volume`, `10`) " } WaveSpawn //3 batts gbursts + 3 conch grapids ($300) { Name "4a" //WaitForAllDead "" Where spawnbot TotalCount 6 MaxActive 4 SpawnCount 2 WaitBeforeStarting 0 WaitBetweenSpawns 15 TotalCurrency 300 Squad { TFBot { Template T_TFBot_Giant_Soldier_Spammer_Reload_Battalion } TFBot { Template T_TFBot_Giant_Soldier_Spammer_Extended_Concheror } } } WaveSpawn //12 df pyr + 12 bigheal ($120) { //Name "4a" //WaitForAllDead "" Where spawnbot TotalCount 24 MaxActive 10 SpawnCount 2 WaitBeforeStarting 1 WaitBetweenSpawns 1.5 TotalCurrency 120 Squad { TFBot { Template T_TFBot_Pyro_Dragon_Fury } TFBot { Template T_TFBot_Medic_BigHeal_Improved } } } WaveSpawn //8 df pyr + 8 umeds ($80) { //Name "4a" //WaitForAllDead "" Where spawnbot TotalCount 16 MaxActive 4 SpawnCount 2 WaitBeforeStarting 1 WaitBetweenSpawns 1.5 TotalCurrency 80 Squad { TFBot { Template T_TFBot_Pyro_Dragon_Fury } TFBot { Template T_TFBot_Medic_QuickUber } } } WaveSpawn //36 scouts ($200) { //Name "4b" WaitForAllDead "4a" Where spawnbot Where spawnbot_right Where spawnbot_left RandomSpawn 1 TotalCount 36 MaxActive 12 SpawnCount 3 WaitBeforeStarting 0 WaitBetweenSpawns 3 TotalCurrency 200 TFBot { Class Scout Skill Hard } } WaveSpawn //2 colonels + 2 gmeds ($200) { Name "4b" WaitForAllDead "4a" Where spawnbot_topflank TotalCount 4 MaxActive 4 SpawnCount 2 WaitBeforeStarting 5 WaitBetweenSpawns 15 TotalCurrency 200 Squad { TFBot { Template T_TFBot_Giant_Soldier_SlowBarrage Attributes AlwaysCrit Tag doesnottaketopfalldamage Tag gentlynudgetop Tag forcefollowbombpath Tag noflank } TFBot { Template T_TFBot_Giant_Medic_Regen Tag doesnottaketopfalldamage Tag gentlynudgetop } } } WaveSpawn //1 gbrass + 1 gmed regen ($150) { Name "4c-1" WaitForAllSpawned "4b" Where spawnbot TotalCount 2 MaxActive 2 SpawnCount 2 WaitBeforeStarting 16.5 WaitBetweenSpawns 16 TotalCurrency 150 Squad { TFBot { Template T_TFBot_Giant_Heavyweapons_BrassBeast_Fix Attributes AlwaysCrit Tag forcefollowbombpath Tag noflank } TFBot { Template T_TFBot_Giant_Medic_Regen } } } WaveSpawn //1 gbrass + 1 gmed ($150) { Name "4c-2" WaitForAllSpawned "4c-1" Where spawnbot TotalCount 2 MaxActive 2 SpawnCount 2 WaitBeforeStarting 16.5 WaitBetweenSpawns 16 TotalCurrency 150 Squad { TFBot { Template T_TFBot_Giant_Heavyweapons_BrassBeast_Fix Attributes AlwaysCrit Tag forcefollowbombpath Tag noflank } TFBot { Template T_TFBot_Giant_Medic ClassIcon medic_pop_giant } } } } Wave // Wave 5 { StartWaveOutput { Target gamerules Action RunScriptCode Param " EntFire(`wave_start_relay_aggressiveengis`, `Trigger`) EntFire(`radiostation1`, `volume`, `0`) EntFire(`radiostation2`, `volume`, `0`) EntFire(`radiostation3`, `volume`, `0`) " } DoneOutput { Target wave_finished_relay Action Trigger } InitWaveOutput { Target gamerules Action RunScriptCode Param " EntFire(`bombpath_choose_middle_relay`, `Trigger`) IncludeScript(`sporulation`) EntFire(`radiostation1`, `volume`, `10`) EntFire(`radiostation2`, `volume`, `10`) EntFire(`radiostation3`, `volume`, `10`) " } WaveSpawn //4 gbonk ($200) { Name "5a" //WaitForAllDead "5a" Where spawnbot TotalCount 4 MaxActive 2 SpawnCount 1 WaitBeforeStarting 0 WaitBetweenSpawns 12 TotalCurrency 200 TFBot { Template T_TFBot_Giant_Scout_Bonk Name "Giant Bonk Scout" Attributes AlwaysCrit } } WaveSpawn //3 gblast soldiers ($200) { Name "5a" //WaitForAllDead "" Where spawnbot_right TotalCount 3 MaxActive 2 SpawnCount 1 WaitBeforeStarting 1 WaitBetweenSpawns 10 TotalCurrency 200 TFBot { Template T_TFBot_Giant_Soldier_Blast //Attributes AlwaysCrit } } WaveSpawn //35 shortstops ($200) { Name "5a" //WaitForAllDead "" Where spawnbot_right Where spawnbot_left TotalCount 35 MaxActive 12 SpawnCount 7 WaitBeforeStarting 4 WaitBetweenSpawns 5 TotalCurrency 200 RandomChoice { TFBot { Template T_TFBot_Scout_Shortstop Attributes AlwaysCrit Skill Easy CharacterAttributes { "damage force reduction" 0.75 "airblast vulnerability multiplier" 0.75 } } TFBot { Template T_TFBot_Scout_Shortstop Attributes AlwaysCrit Skill Normal CharacterAttributes { "damage force reduction" 0.75 "airblast vulnerability multiplier" 0.75 } } } } WaveSpawn //engie + bigheal popper med { //Name "" //WaitForAllDead "" Where spawnbot_right Where spawnbot_topflank TotalCount 20 MaxActive 6 SpawnCount 2 WaitBeforeStarting 7 WaitBetweenSpawns 12 TotalCurrency 0 Support Limited Squad { TFBot { Template T_TFBot_Engineer_Sentry_Tele_Battle ClassIcon engineer_telein Item "The Jag" Attributes IgnoreFlag Tag doesnottaketopfalldamage TeleportWhere spawnbot TeleportWhere spawnbot_left TeleportWhere spawnbot_right TeleportWhere spawnbot_topflank } TFBot { Template T_TFBot_Medic_BigHeal_Pop Tag doesnottaketopfalldamage } } } WaveSpawn //15 shortstops ($100) { Name "5b" WaitForAllDead "5a" Where spawnbot_right Where spawnbot_left TotalCount 15 MaxActive 4 SpawnCount 1 WaitBeforeStarting 0 WaitBetweenSpawns 2 TotalCurrency 100 TFBot { Template T_TFBot_Scout_Shortstop Attributes AlwaysCrit Skill Easy CharacterAttributes { "damage force reduction" 0.75 "airblast vulnerability multiplier" 0.75 } } } WaveSpawn //15 conches ($100) { Name "5b" WaitForAllDead "5a" Where spawnbot Where spawnbot_topflank TotalCount 15 MaxActive 6 SpawnCount 1 WaitBeforeStarting 0 WaitBetweenSpawns 0.6 TotalCurrency 100 TFBot { Template T_TFBot_Soldier_Extended_Concheror Attributes AlwaysCrit Tag doesnottaketopfalldamage } } WaveSpawn //7 soldiers + 7 umeds ($100) { //Name "" WaitForAllDead "5a" Where spawnbot TotalCount 14 MaxActive 6 SpawnCount 2 WaitBeforeStarting 0 WaitBetweenSpawns 3 TotalCurrency 100 Squad { TFBot { Class Soldier Skill Hard } TFBot { Template T_TFBot_Medic_QuickUber } } } WaveSpawn //3 gdeflector + 12 umed ($300) { Name "5c" WaitForAllDead "5b" Where spawnbot_left Where spawnbot_right TotalCount 15 MaxActive 15 SpawnCount 5 WaitBeforeStarting 0 WaitBetweenSpawns 10 TotalCurrency 300 Squad { TFBot { Template T_TFBot_Giant_Heavyweapons_Deflector } TFBot { Template T_TFBot_Medic_SlowRecharge Skill Expert Item "Field Practice" } TFBot { Template T_TFBot_Medic_SlowRecharge Skill Expert Item "Field Practice" } TFBot { Template T_TFBot_Medic_SlowRecharge Skill Expert Item "Field Practice" } TFBot { Template T_TFBot_Medic_SlowRecharge Skill Expert Item "Field Practice" } } } } Wave // Wave 6 { StartWaveOutput { Target gamerules Action RunScriptCode Param " EntFire(`wave_start_relay`, `Trigger`) EntFire(`radiostation1`, `volume`, `0`) EntFire(`radiostation2`, `volume`, `0`) EntFire(`radiostation3`, `volume`, `0`) EntFire(`disposable_spawnbot_left_relay_disable`, `Trigger`) EntFire(`disposable_spawnbot_right_relay_disable`, `Trigger`) EntFire(`disposable_spawnbot_relay_disable`, `Trigger`) " } DoneOutput { Target wave_finished_relay Action Trigger } InitWaveOutput { Target gamerules Action RunScriptCode Param " EntFire(`bombpath_choose_splitpaths_all_relay`, `Trigger`) IncludeScript(`sporulation`) EntFire(`radiostation1`, `volume`, `10`) EntFire(`radiostation2`, `volume`, `10`) EntFire(`radiostation3`, `volume`, `10`) " } WaveSpawn // Tank 17k HP ($100) { //Name "" //WaitForAllDead "" TotalCount 1 MaxActive 1 SpawnCount 1 WaitBeforeStarting 0 WaitBetweenSpawns 0 TotalCurrency 100 Tank { Name "tankboss1" StartingPathTrackNode "boss_path_right_1" Health 17000 Speed 75 Skin 0 OnKilledOutput { Target boss_dead_right_relay Action Trigger } OnBombDroppedOutput { Target boss_deploy_relay Action Trigger } } } WaveSpawn { WaitBeforeStarting 0.1 FirstSpawnOutput { Target "tankboss1" Action "setmodelscale" Param "0.5" } } WaveSpawn // Tank 16k HP ($100) { //Name "" //WaitForAllSpawned "6a" TotalCount 1 MaxActive 1 SpawnCount 1 WaitBeforeStarting 10 WaitBetweenSpawns 0 TotalCurrency 100 Tank { Name "tankboss2" StartingPathTrackNode "boss_path_left_1" Health 16000 Speed 75 Skin 0 OnKilledOutput { Target boss_dead_left_relay Action Trigger } OnBombDroppedOutput { Target boss_deploy_relay Action Trigger } } } WaveSpawn { WaitBeforeStarting 10.1 FirstSpawnOutput { Target "tankboss2" Action "setmodelscale" Param "0.5" } } WaveSpawn // Tank 15k HP ($100) { //Name "" //WaitForAllSpawned "6a" TotalCount 1 MaxActive 1 SpawnCount 1 WaitBeforeStarting 30 WaitBetweenSpawns 0 TotalCurrency 100 Tank { Name "tankboss3" StartingPathTrackNode "boss_path_middle_1" Health 15000 Speed 75 Skin 0 OnKilledOutput { Target boss_dead_middle_relay Action Trigger } OnBombDroppedOutput { Target boss_deploy_relay Action Trigger } } } WaveSpawn { WaitBeforeStarting 30.1 FirstSpawnOutput { Target "tankboss3" Action "setmodelscale" Param "0.5" } } WaveSpawn //5 super scouts right ($100) { //Name "" //WaitForAllDead "" Where spawnbot_right TotalCount 5 MaxActive 2 SpawnCount 1 WaitBeforeStarting 0 WaitBetweenSpawns 10 TotalCurrency 100 TFBot { Template T_TFBot_Giant_Scout_Fast Tag forcefollowbombpath //Tag noflank } } WaveSpawn //5 superscouts left ($100) { //Name "" //WaitForAllDead "" Where spawnbot_left TotalCount 5 MaxActive 2 SpawnCount 1 WaitBeforeStarting 0 WaitBetweenSpawns 10 TotalCurrency 100 TFBot { Template T_TFBot_Giant_Scout_Fast Tag gentlynudgeleft Tag forcefollowbombpath //Tag noflank } } WaveSpawn //5 superscouts middle ($100) { //Name "" //WaitForAllDead "" Where spawnbot TotalCount 5 MaxActive 2 SpawnCount 1 WaitBeforeStarting 0 WaitBetweenSpawns 10 TotalCurrency 100 TFBot { Template T_TFBot_Giant_Scout_Fast Tag gentlynudgeleft Tag forcefollowbombpath //Tag noflank } } WaveSpawn //20 direct hits ($100) { Name "6a" //WaitForAllDead "" Where spawnbot TotalCount 20 MaxActive 10 SpawnCount 5 WaitBeforeStarting 1 WaitBetweenSpawns 5 TotalCurrency 100 TFBot { Template T_TFBot_Soldier_Direct_Hit Attributes AlwaysCrit } } WaveSpawn // Music { WaitForAllDead "6a" WaitBeforeStarting 0 FirstSpawnWarningSound "#music/HL1_song10.mp3" //Thank you CreatorForce for letting me copy FirstSpawnOutput { Target gamerules Action RunScriptCode Param "ClientPrint(null,3,`\x08FFFF00FF[Music] Now Playing: Half-Life - Diabolical Adrenaline Guitar/Half Life 2 - Lambda Core`)" } } WaveSpawn //7 gshotgun bursts ($100) { Name "6b-a" WaitForAllDead "6a" Where spawnbot TotalCount 7 MaxActive 3 SpawnCount 1 WaitBeforeStarting 0 WaitBetweenSpawns 13.5 TotalCurrency 100 TFBot { Template T_TFBot_Giant_Heavyweapons_Shotgun_Burst Tag nav_prefer_flank_middle } } WaveSpawn //4 gbison burst left($100) { Name "6b-b" WaitForAllDead "6a" Where spawnbot_topflank TotalCount 4 MaxActive 3 SpawnCount 1 WaitBeforeStarting 2 WaitBetweenSpawns 13.5 TotalCurrency 100 TFBot { Template T_TFBot_Giant_Soldier_Bison_Burst_Spammer Attributes AlwaysCrit Tag gentlynudgetop Tag doesnottaketopfalldamage Tag nav_prefer_flank_left } } WaveSpawn //4 bigrock burst right($100) { Name "6b-b" WaitForAllDead "6a" Where spawnbot_right TotalCount 4 MaxActive 3 SpawnCount 1 WaitBeforeStarting 4 WaitBetweenSpawns 13.5 TotalCurrency 100 TFBot { Template T_TFBot_Soldier_BurstFire ClassIcon soldier_burstfire_hyper_lite Tag nav_prefer_flank_right } } WaveSpawn //30 heavies ($200) { //Name "" WaitForAllDead "6a" Where spawnbot_right Where spawnbot_left TotalCount 30 MaxActive 7 SpawnCount 1 WaitBeforeStarting 0 WaitBetweenSpawns 1 TotalCurrency 200 Support 1 RandomChoice { TFBot { Class Heavy Skill Normal Tag nav_prefer_flank_middle } TFBot { Class Heavy Skill Normal Tag nav_prefer_flank_middle } TFBot { Class Heavy Skill Normal Tag nav_prefer_flank_middle } TFBot { Class Heavy Skill Normal Tag nav_prefer_flank_right } TFBot { Class Heavy Skill Normal Tag nav_prefer_flank_left } } } WaveSpawn // Music { WaitForAllDead "6a" WaitBeforeStarting 103 FirstSpawnWarningSound "#music/HL1_song10.mp3" } WaveSpawn // Tank 30k HP ($100) { //Name "" WaitForAllDead "6a" TotalCount 1 MaxActive 1 SpawnCount 1 WaitBeforeStarting 114 WaitBetweenSpawns 0 TotalCurrency 100 Tank { Name "tankboss" StartingPathTrackNode "boss_path_middle_1" Health 30000 Speed 75 Skin 1 OnKilledOutput { Target boss_dead_middle_relay Action Trigger } OnBombDroppedOutput { Target boss_deploy_relay Action Trigger } } } WaveSpawn // Dummy, Waits for all gshotguns to spawn, 22 seconds later, activates right gmed combo { WaitForAllSpawned "6b-a" WaitBeforeStarting 22 FirstSpawnOutput { Target disposable_spawnbot_right_relay_enable Action Trigger } } WaveSpawn // Dummy, Waits for all gshotguns to spawn, 22 seconds later, activates left gmed combo { WaitForAllSpawned "6b-a" WaitBeforeStarting 22 FirstSpawnOutput { Target disposable_spawnbot_left_relay_enable Action Trigger } } WaveSpawn // Dummy, Waits for all gshotguns to spawn, 24 seconds later, activates middle gmed combo { WaitForAllSpawned "6b-a" WaitBeforeStarting 24 FirstSpawnOutput { Target disposable_spawnbot_relay_enable Action Trigger } } WaveSpawn // Dummy, Waits for all gbisons and bigrock bursts to die, 4 seconds later, activates right gmed combo { WaitForAllDead "6b-b" WaitBeforeStarting 4 FirstSpawnOutput { Target disposable_spawnbot_right_relay_enable Action Trigger } } WaveSpawn // Dummy, Waits for all gbisons and bigrock bursts, 4 seconds later, activates left gmed combo { WaitForAllDead "6b-b" WaitBeforeStarting 4 FirstSpawnOutput { Target disposable_spawnbot_left_relay_enable Action Trigger } } WaveSpawn // Dummy, Waits for all gbisons and bigrock bursts, 6 seconds later, activates middle gmed combo { WaitForAllDead "6b-b" WaitBeforeStarting 6 FirstSpawnOutput { Target disposable_spawnbot_relay_enable Action Trigger } } /////////////////////////////////////////////////////////////////////////////////////////////////////////////// // 2 possible conditions for spawning final gmed combos // // // // 1. All gshotguns spawn // // OR // // 2. All gbisons and bigrocks die // // // // This is to improve pacing when holding front while not making hatch holds not steam roll with the gmeds // /////////////////////////////////////////////////////////////////////////////////////////////////////////////// WaveSpawn //gdirect hit spammer + gkritz med right ($100) { Name "6c" WaitForAllDead "6a" Where spawnbot_left_disposable TotalCount 2 MaxActive 2 SpawnCount 2 WaitBeforeStarting 0 WaitBetweenSpawns 0 TotalCurrency 100 Squad { TFBot { Template T_TFBot_Giant_Soldier_Spammer_Direct_Hit Attributes AlwaysCrit Tag nav_prefer_flank_right Tag gentlynudgeleft } TFBot { Template T_TFBot_Giant_Medic_Regen Tag gentlynudgeleft } } } WaveSpawn //gdirect hit spammer + gkritz med left ($100) { Name "6c" WaitForAllDead "6a" Where spawnbot_right_disposable TotalCount 2 MaxActive 2 SpawnCount 2 WaitBeforeStarting 0 WaitBetweenSpawns 0 TotalCurrency 100 Squad { TFBot { Template T_TFBot_Giant_Soldier_Spammer_Direct_Hit Attributes AlwaysCrit Tag nav_prefer_flank_left } TFBot { Template T_TFBot_Giant_Medic_Regen } } } WaveSpawn //gdirect hit spammer + gkritz med middle ($100) { Name "6c" WaitForAllDead "6a" Where spawnbot_disposable TotalCount 2 MaxActive 2 SpawnCount 2 WaitBeforeStarting 0 WaitBetweenSpawns 0 TotalCurrency 100 Squad { TFBot { Template T_TFBot_Giant_Soldier_Spammer_Direct_Hit Attributes AlwaysCrit Tag nav_prefer_flank_middle } TFBot { Template T_TFBot_Giant_Medic_Regen } } } } }