#base robot_standard.pop #base robot_giant.pop #base robot_standard_red.pop #base robot_giant_red.pop WaveSchedule { StartingCurrency 400 CanBotsAttackWhileInSpawnRoom no RespawnWaveTimeBlue 10 FixedRespawnWaveTimeBlue 1 ReverseWinConditions 1 AllowJoinTeamBlueMax 6 AllowJoinTeamBlue 1 HumansMustJoinTeam Blue SetCreditTeam 3 SniperAllowHeadshots 1 //sniper and amby un-exist without this ImprovedAirblast 1 SendBotsToSpectatorImmediately 1 //keeps the populator less clogged, bot projectiles vanish on death + causes weird killcams RobotLimit 27 //going higher will eat player slots FlagCarrierMovementPenalty 1 // (default: 0.5) BotTeleportUberDuration 1 BluHumanTeleportOnSpawn 1 BluHumanBotTeleporter 1 PrecacheModel "models\props_mvm\mvm_upgrade_blu_center.mdl" PrecacheModel "models\props_mvm\mvm_upgrade_blu_tools.mdl" ItemAttributes // too powerful with infinite ammo { Itemname "The Short Circuit" "fire rate penalty" 2 "cannot be upgraded" 1 } PlayerAttributes // Player attributes appied for the whole mission { "cancel falling damage" 1 Spy { "cannot pick up intelligence" 1 } } ForceItem // naked merks bad, pyro and spy are bad with demopants though { Demoman { Item EOTL_demopants } } PointTemplates { corelogic // all the things we want to automatically run when the popfile reloads. Use this the most to avoid spaghetti { NoFixup 1 logic_auto { origin "0 0 0" targetname mainrelay OnMapSpawn filter_blue_bombhat,Kill,,0,-1 // gatebot maps will need their capture filter deleted for players to cap OnMapSpawn gate1_alarm*,Kill,,0,-1 // gets spammed by both red and blu team OnMapSpawn bot_stun_*,Kill,,0,-1 // some gates may stun players OnMapSpawn item_ammopack*,Kill,,0,-1 // might want to comment this out if players have limited ammo OnMapSpawn Barricade*,Kill,,0,-1 // rottenburg specific, deletes front tank barricade OnMapSpawn move_rope,Kill,,0,-1 OnMapSpawn keyframe_rope,Kill,,0,-1 OnMapSpawn "wave_start_relay*,AddOutput,OnTrigger spawnbarrier*:Disable:0:-1" // OnMapSpawn "wave_start_relay*,AddOutput,OnTrigger ironman_mode_inte*:Enable:0:-1" OnMapSpawn "wave_finished_relay,AddOutput,OnTrigger spawnbarrier*:Enable:0:-1" OnMapSpawn "wave_start*,AddOutput,OnTrigger func_capturezone:Disable:0:-1,0,-1" OnMapSpawn "tankpath1_1,AddOutput,OnPass red_tank_relay:Trigger:0:-1" } NoFixup 1 logic_relay // trigger this to kill all players and buildings { targetname kill_relay OnTrigger obj_dispenser,RemoveHealth,5000,0,-1 OnTrigger obj_sentrygun,RemoveHealth,5000,0,-1 OnTrigger obj_teleporter,RemoveHealth,5000,0,-1 OnTrigger player,SetHealth,-10000,0,-1 } NoFixup 1 logic_relay // trigger this to enable hatch { targetname hatchguard_death_relay OnTrigger func_capturezone,Enable,,0,-1 OnTrigger bomb_antigrief_on,Trigger,,0,-1 } NoFixup 1 logic_relay // trigger this to lose { origin "0 0 0" targetname redwin_relay OnTrigger bots_win_red,RoundWin,,0,-1 OnTrigger pit_explosion_wav,PlaySound,,0,-1 // map dependent OnTrigger failuresound,PlaySound,,0,-1 // map dependent } NoFixup 1 game_round_win // do not interact with this { origin "0 0 0" TeamNum 2 targetname bots_win_red switch_teams 0 force_map_reset 1 classname game_round_win } func_nav_prerequisite // tells bots with a tag to defend this area, like telling gatebots to stay at the gate { targetname towernav mins "-1000 -1000 -1000" maxs "1000 1000 1000" Entity towerspawn filtername filter_tower origin "1542.488770 739.029175 -143.968689" spawnflags 1 start_disabled 0 StartDisabled 0 Task 2 Value -1 } filter_tf_bot_has_tag // our tag { Negated 0 require_all_tags 1 tags bot_tower targetname filter_tower } func_nav_prerequisite // repeated for hatch { targetname hatchnav mins "-100 -100 -100" maxs "100 100 100" Entity hatchspawn filtername filter_hatch origin "1542.488770 739.029175 -143.968689" spawnflags 1 start_disabled 0 StartDisabled 0 Task 2 Value -1 } filter_tf_bot_has_tag { Negated 0 require_all_tags 1 tags bot_hatch targetname filter_hatch } NoFixup 1 logic_relay { targetname red_tank_relay OnTrigger tankbossred,Setteam,2,0.25,-1 OnTrigger tankbossred,AddCaptureDestroyPostfix,destroy_mvm_cactus_valley3,0.5,-1 // cool explodey effect, doesn't work :( } NoFixup 1 trigger_multiple { targetname thirdperson StartDisabled 1 spawnflags 3 origin "1542.488770 739.029175 -143.968689" maxs "50 50 50" mins "-50 -50 -50" filtername filter_blue OnStartTouch !activator,setforcedtauntcam,1,0.1,-1 OnStartTouch !activator,SetHUDVisibility,0,0.1,-1 OnStartTouch !activator,DisableDamageForces,,0,-1 // doesn't work? OnEndTouch !activator,setforcedtauntcam,0,0,-1 OnEndTouch !activator,SetHUDVisibility,1,0,-1 OnEndTouch !activator,EnableDamageForces,,0,-1 } NoFixup 1 ambient_generic { targetname failuresound health 10 message vo\announcer_failure.mp3 pitch 100 pitchstart 100 radius 20000 spawnflags 49 origin "0 0 0" } } annotations { NoFixup 1 training_annotation { targetname hint display_text "Upgrade Station is here!" lifetime 15 origin "2915 -3170 -159" } training_annotation { targetname tankhint display_text "A tank has teleported in!" lifetime 10 origin "0 1664 -454" } training_annotation { targetname tankhint_fastspawn display_text "A tank has teleported in!" lifetime 10 origin "1514.066284 305.011200 -354.974762" } } barriers //spawn blocker { NoFixup 1 func_forcefield { "disablereceiveshadows" "0" "origin" "0 0 0" "renderamt" "255" "rendercolor" "255 255 255" "renderfx" "0" "rendermode" "10" "TeamNum" "2" "targetname" "spawnbarrierA1" "parentname" "spawnbarrierA" "mins" "-300 -100 -300" "maxs" "300 100 1100" "StartDisabled" "0" } NoFixup 1 prop_dynamic //prop for show { "targetname" "spawnbarrierA" "angles" "0 0 0" "DisableBoneFollowers" "1" "disablereceiveshadows" "1" "model" "models/props_vehicles/train_flatcar_container.mdl" "disableshadows" "1" "ExplodeDamage" "0" "ExplodeRadius" "0" "fademaxdist" "0" "fademindist" "-1" "fadescale" "1" "MaxAnimTime" "10" "maxdxlevel" "0" "MinAnimTime" "5" "mindxlevel" "0" "modelscale" "1.5" "PerformanceMode" "0" "pressuredelay" "0" "RandomAnimation" "0" "renderamt" "0" "renderfx" "16" //hologram effect, see renderfx section on the developer wiki for more "rendermode" "0" "SetBodyGroup" "0" "skin" "0" //set to 1 for red traincar, many props separate different variants this way "CollisionGroup" "0" "solid" "0" "spawnflags" "0" "StartDisabled" "0" "origin" "0 0 0" } } barriers2 //tunnel blocker { NoFixup 1 func_forcefield //what actually blocks players { "disablereceiveshadows" "0" "origin" "0 0 0" "renderamt" "255" "rendercolor" "255 255 255" "renderfx" "0" "rendermode" "10" "TeamNum" "2" "targetname" "barrierB1" "parentname" "barrierB" "mins" "-200 -200 -200" "maxs" "600 400 200" "StartDisabled" "0" } NoFixup 1 prop_dynamic //prop for show { "targetname" "barrierB" "angles" "0 0 0" "DisableBoneFollowers" "1" "disablereceiveshadows" "1" "model" "models/props_vehicles/train_flatcar_container.mdl" "disableshadows" "1" "ExplodeDamage" "0" "ExplodeRadius" "0" "fademaxdist" "0" "fademindist" "-1" "fadescale" "1" "MaxAnimTime" "10" "maxdxlevel" "0" "MinAnimTime" "5" "mindxlevel" "0" "modelscale" "1.5" "PerformanceMode" "0" "pressuredelay" "0" "RandomAnimation" "0" "renderamt" "0" "renderfx" "16" //hologram "rendermode" "0" "SetBodyGroup" "0" "skin" "0" "CollisionGroup" "0" "solid" "0" "spawnflags" "0" "StartDisabled" "0" "origin" "0 0 0" } NoFixup 1 logic_relay { "targetname" "barrierB_relay" "OnTrigger" "barrierB*,Disable,0,-1" "OnTrigger" "bombbot_rest_ONE,Disable,0,-1" "OnTrigger" "bombbot_rest_TWO,Enable,0,-1" } } antigriefbomb { NoFixup 1 logic_relay { targetname bomb_antigrief_on ontrigger bombpickup_relay,enable,,0,-1 ontrigger bombpickup_relay,trigger,,0.01,-1 } logic_relay { targetname bomb_antigrief_off ontrigger bombpickup_relay,disable,,0,-1 ontrigger bombpickup_relay,cancelpending,,0,-1 ontrigger bombpickup,disable,,0,-1 ontrigger "intel,color,255 255 255,0,-1" } logic_relay { onspawn "intel,addoutput,onpickup1 !activator:addoutput:targetname hasbomb:0:-1,0,-1" onspawn "intel,addoutput,onpickup bombpickup_relay:trigger::0.01:-1,0,-1" onspawn "intel,addoutput,onpickup bombpickup_relay:cancelpending::0:-1,0,-1" onspawn "intel,addoutput,ondrop1 !activator:addoutput:targetname :0:-1,0,-1" onspawn "intel,addoutput,ondrop bombpickup:disable::0:-1,0,-1" onspawn "intel,addoutput,ondrop !self:color:255 255 255:0:-1,0,-1" onspawn bombpickup,setparentattachment,siren,0,-1 onspawn "hasbomb,addoutput,targetname ,0,-1" } logic_relay { targetname bombpickup_relay startdisabled 1 ontrigger bombpickup,disable,,0,-1 ontrigger "intel,color,75 75 75,0,-1" ontrigger bombpickup,enable,,5,-1 ontrigger "intel,color,255 255 255,5,-1" } trigger_multiple { targetname bombpickup parentname intel mins "-8 -8 -8" maxs "8 8 8" spawnflags 1 startdisabled 1 filtername filter_nobomb_notbot onstarttouch intel,forcedrop,,0,-1 } filter_activator_name { targetname filter_nobomb filtername hasbomb negated 1 } $filter_sendprop { targetname filter_notbot $name m_bIsABot $value 0 } filter_multi { targetname filter_nobomb_notbot filter01 filter_nobomb filter02 filter_notbot } } station //all-in-one upgrade station template { func_upgradestation { "mins" "-105 -100 0" "maxs" "105 100 242" "solid" "0" } NoFixup 1 prop_dynamic { "targetname" "upgradestation" "angles" "0 0 0" "DisableBoneFollowers" "0" "disablereceiveshadows" "0" "disableshadows" "1" "ExplodeDamage" "0" "ExplodeRadius" "0" "fademaxdist" "0" "fademindist" "-1" "fadescale" "1" "MaxAnimTime" "10" "maxdxlevel" "0" "MinAnimTime" "5" "mindxlevel" "0" "model" "models\props_mvm\mvm_upgrade_blu_center.mdl" "modelscale" "1" "PerformanceMode" "0" "pressuredelay" "0" "RandomAnimation" "0" "renderamt" "255" "renderfx" "0" "rendermode" "0" "SetBodyGroup" "0" "skin" "0" "solid" "0" "spawnflags" "0" "origin" "0 0 0" } NoFixup 1 prop_dynamic { "targetname" "upgradestation1" "angles" "0 0 0" "DisableBoneFollowers" "0" "disablereceiveshadows" "0" "disableshadows" "1" "ExplodeDamage" "0" "ExplodeRadius" "0" "fademaxdist" "0" "fademindist" "-1" "fadescale" "1" "MaxAnimTime" "10" "maxdxlevel" "0" "MinAnimTime" "5" "mindxlevel" "0" "model" "models\props_mvm\mvm_upgrade_blu_tools.mdl" "modelscale" "1" "PerformanceMode" "0" "pressuredelay" "0" "RandomAnimation" "0" "renderamt" "255" "renderfx" "0" "rendermode" "0" "SetBodyGroup" "0" "skin" "0" "solid" "0" "spawnflags" "0" "origin" "0 0 0" } func_upgradestation { "mins" "-100 -100 0" "maxs" "90 60 100" "parentname" "upgradestation" } // NoFixup 1 // prop_dynamic // { // "targetname" "idiot" // "parentname" "upgradestation" // "angles" "0 0 0" // "DisableBoneFollowers" "1" // "disablereceiveshadows" "0" // "disableshadows" "1" // "ExplodeDamage" "0" // "ExplodeRadius" "0" // "fademaxdist" "0" // "fademindist" "-1" // "fadescale" "1" // "MaxAnimTime" "10" // "maxdxlevel" "0" // "MinAnimTime" "5" // "mindxlevel" "0" // "model" "models/bots/bot_worker/bot_worker_a.mdl" // "modelscale" "1" // "PerformanceMode" "0" // "pressuredelay" "0" // "RandomAnimation" "0" // "DefaultAnim" "idle" // "renderamt" "255" // "renderfx" "0" // "rendermode" "0" // "SetBodyGroup" "2" // "skin" "1" // "solid" "0" // "spawnflags" "0" // "origin" "-65 50 0" // } NoFixup 1 prop_dynamic { "targetname" "shopcollision" "angles" "0 -90 0" "DisableBoneFollowers" "1" "disablereceiveshadows" "1" "model" "models/props_vehicles/train_flatcar_container.mdl" "disableshadows" "1" "ExplodeDamage" "0" "ExplodeRadius" "0" "fademaxdist" "0" "fademindist" "-1" "fadescale" "1" "MaxAnimTime" "10" "maxdxlevel" "0" "MinAnimTime" "5" "mindxlevel" "0" "modelscale" "1" "PerformanceMode" "0" "pressuredelay" "0" "RandomAnimation" "0" "renderamt" "0" "renderfx" "0" "rendermode" "10" "SetBodyGroup" "0" "skin" "0" "CollisionGroup" "5" "solid" "6" "spawnflags" "0" "StartDisabled" "0" "origin" "0 0 0" } } blocker //giant building for blocking stuff { NoFixup 1 prop_dynamic { "id" "3" "targetname" "barrierinvis" "classname" "prop_dynamic" "angles" "0 0 0" "DisableBoneFollowers" "0" "disablereceiveshadows" "0" "disableshadows" "1" "ExplodeDamage" "0" "ExplodeRadius" "0" "fademaxdist" "0" "fademindist" "-1" "fadescale" "1" "MaxAnimTime" "10" "maxdxlevel" "0" "MinAnimTime" "5" "mindxlevel" "0" "model" "models\props_buildings\building_002a.mdl" "modelscale" "1" "PerformanceMode" "0" "pressuredelay" "0" "RandomAnimation" "0" "renderamt" "255" "renderfx" "0" "rendermode" "0" // "rendermode" "10" un-comment this and comment rendermode 0 to make it invisible "SetBodyGroup" "0" "skin" "0" "solid" "6" "spawnflags" "0" "origin" "0 0 0" } } bombbottemplate { NoFixup 1 func_nav_prerequisite { "targetname" "bombbot_rest_ONE" "mins" "-100 -100 -100" "maxs" "100 100 100" "filtername" "filter_bombbot" "origin" "699.7 -1697.6 -443.0" "spawnflags" "1" "start_disabled" "0" "StartDisabled" "0" "Task" "2" "Value" "-1" } NoFixup 1 func_nav_prerequisite { "targetname" "bombbot_rest_TWO" "mins" "-100 -100 -100" "maxs" "100 100 100" "filtername" "filter_bombbot" "origin" "1516.6 380.9 -347.3" "spawnflags" "1" "StartDisabled" "1" "Task" "2" "Value" "-1" } NoFixup 1 func_nav_prerequisite { "targetname" "bombbot_rest_THREE" "mins" "-100 -100 -1000" "maxs" "100 100 1000" "filtername" "filter_bombbot" "origin" "1058.0 1674.3 -172.8" "spawnflags" "1" "StartDisabled" "1" "Task" "2" "Value" "-1" } NoFixup 1 func_nav_prerequisite { "targetname" "bombbot_rest_FOUR" "mins" "-100 -100 -100" "maxs" "100 100 100" "filtername" "filter_bombbot" "origin" "-585.6 1145.1 -190.8" "spawnflags" "1" "StartDisabled" "1" "Task" "2" "Value" "-1" } NoFixup 1 func_nav_prerequisite { "targetname" "bombbot_rest_FOUR" "mins" "-100 -100 -100" "maxs" "100 100 100" "filtername" "filter_bombbot" "origin" "-585.6 1145.1 -190.8" "spawnflags" "1" "StartDisabled" "1" "Task" "2" "Value" "-1" } Nofixup 1 filter_tf_bot_has_tag { "Negated" "0" "require_all_tags" "1" "tags" "bot_bombcarrier" "targetname" "filter_bombbot" } } } SpawnTemplate annotations SpawnTemplate corelogic SpawnTemplate antigriefbomb SpawnTemplate //specify origin/angles here for templates we use multiple times { Name "station" "origin" "2924.840088 -3275.968750 -161.96868" "angles" "0 90 0" } SpawnTemplate { Name "station" "origin" "1325.108643 -3090.374756 -50.714088" "angles" "0 -190 0" } SpawnTemplate { Name "barriers" //use these if your map has no spawn door "origin" "2724.365479 -2303.941650 -143.139458" "angles" "0 90 0" } SpawnTemplate { Name "barriers" "origin" "381.125824 -2462.805176 -125.37920" "angles" "0 0 0" } SpawnTemplate //comented out due to a collision bug on potato servers, otherwise works { Name "barriers2" "origin" "1526.642578 -19.171825 -425.004791" "angles" "0 0 0" } SpawnTemplate { Name "barriers2" "origin" "1726.642578 -19.171825 -425.004791" "angles" "0 0 0" } ExtraSpawnPoint { Name "tunnelspawn" TeamNum 2 //2 for red 3 for blu X "1530" Y "199" Z "-340" } ExtraSpawnPoint { Name "towerspawn" TeamNum 2 X "1534.326782" Y "770.423157" Z "-143.968689" } ExtraSpawnPoint //bots will randomly select between identically named spawns, use RandomSpawn 1 to split spawns evenly { Name "towerspawn" TeamNum 2 X "1535.212036" Y "1306.657837" Z "-143.968689" } ExtraSpawnPoint { Name "hatchspawn" TeamNum 2 X "-1377.705200" Y "1534.423157" Z "-90.968689" } ExtraSpawnPoint { Name "RedSpawn_giant" //giants can't fit out of bot spawn TeamNum 2 X "-1231" Y "2213.423157" Z "-60.968689" } ExtraTankPath // Adds tank path to follow { Name redtankpath1 // name of the starting path node prefix. First tank node would be tankpath1_1 Node "0 1664 -454" Node "1800 1648 -418.3" Node "2043 1571 -420.9" Node "2231 1255 -420.4" Node "2184 608 -418" Node "2112 552 -418" Node "1514.066284 305.011200 -354.974762" Node "1521.085693 -1548.762329 -535.97607" Node "2456.468750 -1615.824707 -589.37457" } Templates { T_TFBot_Pyro_Axe { Class Pyro ClassIcon pyro_fireaxe_sif Name "Fire Axe Pyro" Skill Hard WeaponRestrictions MeleeOnly } } Wave // WAVE 1 { InitWaveOutput { Target hint Action Show } StartWaveOutput { Target wave_start_relay_classic Action Trigger } DoneOutput { Target wave_finished_relay Action Trigger } Explanation { Line "{yellow}Carry the bomb to hatch" Line "{yellow}Tank with 1M HP will spawned after 3 minutes 30 seconds" } SentryGun { Position { X "-1244" Y "1646" //changed Z "-169" Pitch "0.00" Yaw "115" Roll "0.00" } TeamNum 2 Health 100 Ismini 1 Skin 2 Bodygroup 1 } SentryGun { Position { X "-1257" Y "1429" //changed Z "-169" Pitch "0.00" Yaw "115" Roll "0.00" } TeamNum 2 Health 100 Ismini 1 Skin 2 Bodygroup 1 } SentryGun { Position { X "-1500" Y "1438" Z "-169" Pitch "0.00" Yaw "115" Roll "0.00" } TeamNum 2 Health 100 Ismini 1 Skin 2 Bodygroup 1 } SentryGun { Position { X "-1505" Y "1641" Z "-169" Pitch "0.00" Yaw "115" Roll "0.00" } TeamNum 2 Health 100 Ismini 1 Skin 2 Bodygroup 1 } WaveSpawn { Name "1a" Where tunnelspawn TotalCount 30 MaxActive 10 SpawnCount 5 WaitBeforeStarting 0 WaitBetweenSpawns 8 TotalCurrency 120 TFBot { Template T_TFBot_Red_Scout Skill Easy CharacterAttributes { "force distribute currency on death" 1 "crit mod disabled" 0 } } } WaveSpawn { Name "1a-blu-support" Where spawnbot TotalCount 1 MaxActive 1 SpawnCount 1 WaitBeforeStarting 0 WaitBetweenSpawns 2 TotalCurrency 0 Support 1 TFBot { Template T_TFBot_Pyro_Axe } } WaveSpawn { Name "1a-blu-support" Where spawnbot TotalCount 3 MaxActive 3 SpawnCount 3 WaitBeforeStarting 0 WaitBetweenSpawns 2 TotalCurrency 0 Support 1 TFBot { Template T_TFBot_Scout_Melee ClassIcon scout_bat_nys } } WaveSpawn { Name "1a" Where tunnelspawn TotalCount 24 MaxActive 10 SpawnCount 4 WaitBeforeStarting 0 WaitBetweenSpawns 8 TotalCurrency 50 TFBot { Template T_TFBot_Red_Scout_Sandman Skill Easy CharacterAttributes { "force distribute currency on death" 1 "crit mod disabled" 0 } } } WaveSpawn { Name "1a-Barrier" WaitForAllSpawned "1a" FirstSpawnMessage "{red}Kill the giant scout to unlock the barrier" Where towerspawn TotalCount 1 MaxActive 1 SpawnCount 1 WaitBeforeStarting 0 WaitBetweenSpawns 10 TotalCurrency 30 DoneOutput { Target barrierB_relay Action Trigger } TFBot { Template T_TFBot_Red_Giant_Scout CharacterAttributes { "force distribute currency on death" 1 "crit mod disabled" 0 } } DoneMessage "{blue}Barrier Unlocked!" } WaveSpawn { Name "1b" WaitForAllDead "1a-Barrier" Where red_player_teamspawn TotalCount 20 MaxActive 10 SpawnCount 10 WaitBeforeStarting 0 WaitBetweenSpawns 10 TotalCurrency 160 TFBot { Template T_TFBot_Red_Soldier Skill Easy CharacterAttributes { "force distribute currency on death" 1 "crit mod disabled" 0 } } } WaveSpawn { Name "1b" WaitForAllSpawned "1a-Barrier" Where red_player_teamspawn TotalCount 14 MaxActive 7 SpawnCount 7 WaitBeforeStarting 0 WaitBetweenSpawns 10 TotalCurrency 40 TFBot { Template T_TFBot_Red_Scout Skill Easy CharacterAttributes { "force distribute currency on death" 1 "crit mod disabled" 0 } } } WaveSpawn { Name "1b-last-giant-unlock-the-hatch" WaitForAllSpawned "1b" FirstSpawnMessage "{red}Kill the giant scout to unlock the hatch" Where hatchspawn TotalCount 1 MaxActive 1 SpawnCount 1 WaitBeforeStarting 0 WaitBetweenSpawns 0 TotalCurrency 0 TFBot { Template T_TFBot_Red_Giant_Scout Attributes DisableDodge Tag bot_hatch BehaviorModifiers Push Attributes IgnoreFlag CharacterAttributes { "force distribute currency on death" 1 "crit mod disabled" 0 } } FirstSpawnOutPut { Target bomb_antigrief_off Action Trigger } DoneOutput { Target hatchguard_death_relay Action Trigger } DoneMessage "{blue}Hatch Unlocked!" } WaveSpawn // Conceal Robot { Name "1b-last-support" WaitForAllDead "1b" Where hatchspawn TotalCount 999999 MaxActive 6 SpawnCount 3 WaitBeforeStarting 0 WaitBetweenSpawns 15 TotalCurrency 0 RandomChoice { Squad { TFBot { Template T_TFBot_Red_Scout_Melee ClassIcon red2_lite CharacterAttributes { "force distribute currency on death" 1 "crit mod disabled" 0 } } } } } WaveSpawn { Name "1b-last-support" WaitForAllDead "1b" Where hatchspawn TotalCount 1 MaxActive 1 SpawnCount 1 WaitBeforeStarting 0 WaitBetweenSpawns 0 TotalCurrency 0 Support Limited TFBot { Template T_TFBot_Red_Scout_Melee ClassIcon red2_lite CharacterAttributes { "force distribute currency on death" 1 "crit mod disabled" 0 } } } WaveSpawn { Name redtank-timers TotalCount 1 Support Limited MaxActive 1 WaitBeforeStarting 210 // 3 minutes 30 Seconds FirstSpawnWarningSound mvm\mvm_tele_deliver.wav Tank { Health 1000000 Name tankbossred ClassIcon tank_red_lite Model models/bots/boss_bot/boss_tankred.mdl StartingPathTrackNode redtankpath1_1 TeamNum 2 OnKilledOutput { Target boss_dead_relay Action Trigger } OnBombDroppedOutput { Target redwin_relay Action Trigger } } FirstSpawnOutPut { Target tankhint Action Show } } } Wave // WAVE 2 { InitWaveOutput { Target hint Action Show } StartWaveOutput { Target wave_start_relay_classic Action Trigger } DoneOutput { Target wave_finished_relay Action Trigger } Explanation { Line "{yellow}Carry the bomb to hatch" Line "{yellow}Tank with 1M HP will spawned after 5 minutes" } SentryGun { Position { X "-1341" Y "1124" Z "-169" //-35 Pitch "0.00" Yaw "115" Roll "0.00" } TeamNum 2 Health 216 //no level Level 3 } SentryGun { Position { X "-1307" Y "1867" Z "-169" Pitch "0.00" Yaw "115" Roll "0.00" } TeamNum 2 Health 216 //no level Level 3 } SentryGun { Position { X "-1244" Y "1646" //changed Z "-169" Pitch "0.00" Yaw "115" Roll "0.00" } TeamNum 2 Health 100 Ismini 1 Skin 2 Bodygroup 1 } SentryGun { Position { X "-1257" Y "1429" //changed Z "-169" Pitch "0.00" Yaw "115" Roll "0.00" } TeamNum 2 Health 100 Ismini 1 Skin 2 Bodygroup 1 } SentryGun { Position { X "-1500" Y "1438" Z "-169" Pitch "0.00" Yaw "115" Roll "0.00" } TeamNum 2 Health 100 Ismini 1 Skin 2 Bodygroup 1 } SentryGun { Position { X "-1505" Y "1641" Z "-169" Pitch "0.00" Yaw "115" Roll "0.00" } TeamNum 2 Health 100 Ismini 1 Skin 2 Bodygroup 1 } WaveSpawn { Name "1a" Where tunnelspawn TotalCount 5 MaxActive 5 SpawnCount 5 WaitBeforeStarting 0 WaitBetweenSpawns 8 TotalCurrency 120 TFBot { Template T_TFBot_Red_Demoman Skill Easy CharacterAttributes { "force distribute currency on death" 1 "crit mod disabled" 0 } } } } }