//Cliffside Reverse by A+drew #base robot_giant.pop #base robot_standard.pop #base robot_standard_red.pop #base robot_giant_red.pop #base robot_andrew.pop WaveSchedule { StartingCurrency 1000 CanBotsAttackWhileInSpawnRoom YES RespawnWaveTimeBlue 1 FixedRespawnWaveTimeBlue 1 AddSentryBusterWhenDamageDealtExceeds 0 RobotLimit 26 ForceHoliday 2 NoHolidayPickups 1 MaxTotalPlayers 6 DisplayRobotDeathNotice 0 NoReanimators 1 NoMvMDeathTune 1 SniperAllowHeadshots 1 SentryBusterFriendlyFire 0 StandableHeads 1 //For reverse only ReverseWinConditions 1 BluHumanFlagCapture 0 BluHumanFlagPickup 1 BluHumanInfiniteAmmo 1 FlagCarrierMovementPenalty 0.5 AllowJoinTeamBlueMax 6 AllowJoinTeamBlue 1 HumansMustJoinTeam blue BluPlayersAreRobots 1 PrecacheModel "models/weapons/c_models/new_zealium/c_cratesmasher.mdl" PrecacheModel "models/bots/sniper_boss/bot_sniper_boss.mdl" PrecacheModel "models/bots/demo/red_sentry_buster.mdl" PrecacheModel "models/props_mvm/mvm_upgrade_blu.mdl" PrecacheModel "models/props_mvm/robot_spawnpoint.mdl" PrecacheModel "models/props_mvm/no_entry.mdl" PrecacheModel "models/bots/boss_bot/boss_tankred.mdl" PrecacheModel "models/bots/boss_bot/boss_tankred_damage1.mdl" PrecacheModel "models/bots/boss_bot/boss_tankred_damage2.mdl" PrecacheModel "models/bots/boss_bot/boss_tankred_damage3.mdl" PrecacheModel "models/bots/boss_bot/boss_tankred_part1_destruction.mdl" PrecacheModel "models\bots\boss_bot\boss_blimpred.mdl" //This is the older blimp model using it because why not. PrecacheModel "models\bots\boss_bot\boss_blimpred_damage1.mdl" PrecacheModel "models\bots\boss_bot\boss_blimpred_damage2.mdl" PrecacheModel "models\bots\boss_bot\boss_blimpred_damage3.mdl" PrecacheModel "models/bots/boss_bot/boss_blimp.mdl" PrecacheModel "models/bots/boss_bot/boss_blimp_damage1.mdl" PrecacheModel "models/bots/boss_bot/boss_blimp_damage2.mdl" PrecacheModel "models/bots/boss_bot/boss_blimp_damage3.mdl" PrecacheModel "models/bots/boss_bot/boss_blimp_damage_explode.mdl" PrecacheModel "models/bots/boss_bot/boss_blimp_explode.mdl" OverrideSounds { "MVM.GiantCommonExplodes" "ambient/explosions/explode_3.wav" "MVM.BombWarning" "combine_bank_alarm.mp3" } DisableSound "Announcer.MVM_Spy_Alert" DisableSound "Announcer.mvm_spybot_death" DisableSound "Announcer.mvm_spybot_death_all" DisableSound "Announcer.MVM_First_Wave_Start" DisableSound "Announcer.MVM_Wave_Start" DisableSound "Announcer.MVM_Wave_End" DisableSound "Announcer.MVM_Wave_Lose" DisableSound "Announcer.MVM_Final_Wave_Start" DisableSound "Announcer.MVM_Final_Wave_End" DisableSound "Announcer.MVM_Robots_Planted" DisableSound "Announcer.MVM_All_Dead" DisableSound "Announcer.MVM_Bomb_Alert_Entered" DisableSound "Announcer.MVM_Bomb_Alert_Near_Hatch" DisableSound "Announcer.MVM_Bomb_Alert_Deploying" DisableSound "Announcer.MVM_Sentry_Buster_Alert" DisableSound "Announcer.MVM_Sentry_Buster_Alert_Another" DisableSound "Announcer.MVM_General_Wave_Start" DisableSound "Announcer.MVM_Game_Over_Loss" DisableSound "Announcer.MVM_Tank_Planted" DisableSound "Announcer.MVM_Tank_Alert_Spawn" DisableSound "Announcer.MVM_Tank_Alert_Another" DisableSound "Announcer.MVM_Tank_Alert_Multiple" DisableSound "Announcer.MVM_Tank_Alert_Halfway" DisableSound "Announcer.MVM_Tank_Alert_Halfway_Multiple" DisableSound "Announcer.MVM_Tank_Alert_Near_Hatch" DisableSound "Announcer.MVM_Tank_Alert_Deploying" ExtraTankPath { Name "tankpath_red_short" Node "2198 5033 794" Node "2101 5469 786" Node "1034 5463 641" Node "1009 6726 655" Node "1498 6846 628" Node "1960 7561 541" } ExtraTankPath { Name "tankpath_red_long" Node "1343 1521 657" Node "612 1527 641" Node "642 2564 640" Node "141 3433 729" Node "181 4326 706" Node "447 4581 697" Node "1181 4557 640" Node "1183 5450 641" Node "896 5900 642" Node "1033 7533 541" Node "1960 7534 541" } ExtraTankPath { Name "blimp_red_left" Node "463 -563 1600" Node "601 1590 1600" Node "1120 1658 1600" Node "1032 2484 1600" Node "1622 3872 1600" Node "2131 3905 1600" Node "2148 5446 1600" Node "1150 5526 1600" Node "1243 9263 1600" } ExtraTankPath { Name "blimp_red_right" Node "-104 -563 1600" Node "2 1869 1600" Node "137 4514 1600" Node "1240 4568 1600" Node "1218 7552 1600" Node "1243 9263 1600" } PointTemplates { corelogic //all the things we want to automatically run when the popfile loads. Use this the most to avoid spaghetti { NoFixup 1 logic_auto { "origin" "0 0 0" "targetname" "mainrelay" //delete as much unnecessary/unwanted stuff as you can from your map of choice. //you probably won't risk crashes on simpler mvm maps, but the further away from the edict limit you can be the better "OnMapSpawn" "item_ammopack*,Kill,,0,-1" //might want to comment this out if players have limited ammo "OnMapSpawn" "botspawn1,Kill,,0,-1" //these will allow players on the blue team to shoot from spawn "OnMapSpawn" "botspawn2,Kill,,0,-1" "OnMapSpawn" "Barricade*,Kill,,0,-1" //rottenburg specific, deletes front tank barricade //if there is no targetname for wasteful ents, you can also delete them by classname //deleting these decoration ropes frees up nearly 100 edicts on mvm_yiresa "OnMapSpawn" "move_rope,Kill,,0,-1" "OnMapSpawn" "keyframe_rope,Kill,,0,-1" //"OnMapSpawn" "filter_redteam,Kill,,0,-1" //red team filters might cause problems, deleting them might cause more problems //"OnMapSpawn" "trigger_push,Disable,,0,-1" //some maps use trigger_pushes intended to un-stick bots //Gatebot related: //"OnMapSpawn" "bot_stun_*,Kill,,0,-1" //some gates may stun players //"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 //AddOutput can be used to connect our own home-brewed point templates to existing map logic like so: "OnMapSpawn" "wave_start_relay*,AddOutput,OnTrigger spawnbarrier*:Disable:0:-1" "OnMapSpawn" "wave_finished_relay,AddOutput,OnTrigger spawnbarrier*:Enable:0:-1" "OnMapSpawn" "wave_finished_relay,AddOutput,OnTrigger area1barriers:Enable:0:-1" "OnMapSpawn" "wave_finished_relay,AddOutput,OnTrigger area2barriers:Enable:0:-1" //What we're doing: //"wave_start_relay*,AddOutput, //wave_start_relay_classic/endurance is the targetname for a logic_relay that is triggered on wave start, logic_relays (along with most other ents) accept AddOutput as an input. // * will trigger our relay alongside any others with wave_start_relay in the name, this only works for suffixes (*_start_relay* will not work) //OnTrigger spawnbarrier*:Disable:0:-1" //When wave_start_relay_classic/endurance triggers, it will trigger Disable on 'spawnbarrierA' and 'spawnbarrierA1' with a 0 second delay, -1 means this relay can be triggered an infinite amount of times. //We can also use AddOutput to change an ent rather than just latch onto it: "OnMapSpawn" "hint,AddOutput,display_text test,10,-1" //change annotation text to test 10s after map spawn "OnMapSpawn" "wave_start_relay_classic,AddOutput,OnTrigger hint:Show:0:-1" "OnMapSpawn" "tankpath1_1,AddOutput,OnPass red_tank_relay:Trigger:0:-1" } NoFixup 1 logic_relay //disables the first set of barriers { "targetname" "area1barriersdisable" "OnTrigger" "area1barriers,Disable,,0,-1" } NoFixup 1 logic_relay //disables the second set of barriers { "targetname" "area2barriersdisable" "OnTrigger" "area2barriers,Disable,,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 lose { "origin" "0 0 0" "targetname" "redwin_relay" "OnTrigger" "bots_win_red,RoundWin,,0,-1" "OnTrigger" "pit_explosion_wav,PlaySound,,0,-1" //map dependent } NoFixup 1 logic_relay { "targetname" "red_tank_relay" "OnTrigger" "tank_boss,Setteam,2,0.25,-1" "OnTrigger" "tank_boss,AddCaptureDestroyPostfix,destroy_mvm_cactus_valley3,0,-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" //!activator is any entity currently inside of trigger_multiple "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" } 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 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" } //manual respawnrooms func_respawnroom //right { "origin" "192 8064 800" "mins" "-128 -320 -128" "maxs" "128 320 128" "TeamNum" "3" } func_respawnroom //middle { "origin" "1248 8944 1872" "mins" "-480 -208 -1200" "maxs" "480 208 1200" "TeamNum" "3" } func_respawnroom //left { "origin" "2456 7552 608" "mins" "-168 -128 -128" "maxs" "168 128 128" "TeamNum" "3" } } barriers //modified to work specifically for cliffside { NoFixup 1 func_forcefield //flank_left { "targetname" "spawnbarrierA1" "mins" "-32 -128 -128" "maxs" "32 128 128" "origin" "1992 7552 608" "TeamNum" "2" "disablereceiveshadows" "0" "renderamt" "255" "rendercolor" "255 255 255" "renderfx" "0" "rendermode" "10" "StartDisabled" "0" } NoFixup 1 func_forcefield //middle { "targetname" "spawnbarrierA1" "mins" "-480 -64 -1192" "maxs" "480 64 1192" "origin" "1248 7744 1880" "TeamNum" "2" "disablereceiveshadows" "0" "renderamt" "255" "rendercolor" "255 255 255" "renderfx" "0" "rendermode" "10" "StartDisabled" "0" } NoFixup 1 func_forcefield //flank_right { "targetname" "spawnbarrierA1" "mins" "-40 -136 -128" "maxs" "40 136 128" "origin" "472 7520 800" "TeamNum" "2" "disablereceiveshadows" "0" "renderamt" "255" "rendercolor" "255 255 255" "renderfx" "0" "rendermode" "10" "StartDisabled" "0" } NoFixup 1 prop_dynamic //flank_left { "targetname" "spawnbarrierA" "origin" "2024 7552 608" "angles" "0 0 0" "modelscale" "1" "fademindist" "128" "fademaxdist" "512" "disablereceiveshadows" "1" "model" "models/props_mvm/no_entry.mdl" "disableshadows" "1" "solid" "0" "StartDisabled" "0" } NoFixup 1 prop_dynamic //middle { "targetname" "spawnbarrierA" "origin" "1472 7808 864" "angles" "0 90 0" "modelscale" "1.5" "fademindist" "256" "fademaxdist" "1024" "disablereceiveshadows" "1" "model" "models/props_mvm/no_entry.mdl" "disableshadows" "1" "solid" "0" "StartDisabled" "0" } NoFixup 1 prop_dynamic //middle2 { "targetname" "spawnbarrierA" "origin" "1024 7808 864" "angles" "0 90 0" "modelscale" "1.5" "fademindist" "256" "fademaxdist" "1024" "disablereceiveshadows" "1" "model" "models/props_mvm/no_entry.mdl" "disableshadows" "1" "solid" "0" "StartDisabled" "0" } NoFixup 1 prop_dynamic //flank_right { "targetname" "spawnbarrierA" "origin" "432 7520 800" "angles" "0 180 0" "modelscale" "1" "fademindist" "128" "fademaxdist" "512" "disablereceiveshadows" "1" "model" "models/props_mvm/no_entry.mdl" "disableshadows" "1" "solid" "0" "StartDisabled" "0" } } areabarriers { // 1/3 // //right side NoFixup 1 func_forcefield { "targetname" "area1barriers" "mins" "-96 -48 -112" "maxs" "96 48 112" "origin" "128 5648 848" "TeamNum" "2" "disablereceiveshadows" "0" "renderamt" "255" "rendercolor" "255 255 255" "renderfx" "0" "rendermode" "10" "StartDisabled" "0" } NoFixup 1 func_nobuild { "targetname" "area1barriers" "mins" "-96 -48 -112" "maxs" "96 48 112" "origin" "128 5648 848" "TeamNum" "3" } NoFixup 1 prop_dynamic { "targetname" "area1barriers" "origin" "132 5696 848" "angles" "0 90 0" "modelscale" "0.85" "fademindist" "128" "fademaxdist" "1024" "disablereceiveshadows" "1" "model" "models/props_mvm/no_entry.mdl" "disableshadows" "1" "solid" "0" "StartDisabled" "0" } NoFixup 1 func_forcefield //cliff { "targetname" "area1barriers" "mins" "-928 -8 -1792" "maxs" "928 8 1792" "origin" "-1376 5688 1280" "TeamNum" "2" "disablereceiveshadows" "0" "renderamt" "255" "rendercolor" "255 255 255" "renderfx" "0" "rendermode" "10" "StartDisabled" "0" } //middle NoFixup 1 func_forcefield { "targetname" "area1barriers" "mins" "-192 -96 -112" "maxs" "192 96 112" "origin" "1168 5152 688" "TeamNum" "2" "disablereceiveshadows" "0" "renderamt" "255" "rendercolor" "255 255 255" "renderfx" "0" "rendermode" "10" "StartDisabled" "0" } NoFixup 1 func_nobuild { "targetname" "area1barriers" "mins" "-192 -96 -112" "maxs" "192 96 112" "origin" "1168 5152 688" "TeamNum" "3" } NoFixup 1 prop_dynamic { "targetname" "area1barriers" "origin" "1168 5248 688" "angles" "0 90 0" "modelscale" "1" "fademindist" "128" "fademaxdist" "1024" "disablereceiveshadows" "1" "model" "models/props_mvm/no_entry.mdl" "disableshadows" "1" "solid" "0" "StartDisabled" "0" } //left side NoFixup 1 func_forcefield { "targetname" "area1barriers" "mins" "-176 -72 -1184" "maxs" "176 72 1184" "origin" "2160 4808 1888" "TeamNum" "2" "disablereceiveshadows" "0" "renderamt" "255" "rendercolor" "255 255 255" "renderfx" "0" "rendermode" "10" "StartDisabled" "0" } NoFixup 1 func_nobuild { "targetname" "area1barriers" "mins" "-176 -72 -1184" "maxs" "176 72 1184" "origin" "2160 4808 1888" "TeamNum" "3" } NoFixup 1 prop_dynamic { "targetname" "area1barriers" "origin" "2144 4880 832" "angles" "0 90 0" "modelscale" "1" "fademindist" "128" "fademaxdist" "1024" "disablereceiveshadows" "1" "model" "models/props_mvm/no_entry.mdl" "disableshadows" "1" "solid" "0" "StartDisabled" "0" } // 2/3 // NoFixup 1 func_forcefield { "targetname" "area2barriers" "mins" "-2112 -128 -1784" "maxs" "2112 128 1784" "origin" "-192 2432 1288" "TeamNum" "2" "disablereceiveshadows" "0" "renderamt" "255" "rendercolor" "255 255 255" "renderfx" "0" "rendermode" "10" "StartDisabled" "0" } NoFixup 1 func_nobuild { "targetname" "area2barriers" "mins" "-2112 -128 -1784" "maxs" "2112 128 1784" "origin" "-192 2432 1288" "TeamNum" "3" } NoFixup 1 prop_dynamic //right { "targetname" "area2barriers" "origin" "-352 2560 928" "angles" "0 90 0" "modelscale" "0.85" "fademindist" "128" "fademaxdist" "1024" "disablereceiveshadows" "1" "model" "models/props_mvm/no_entry.mdl" "disableshadows" "1" "solid" "0" "StartDisabled" "0" } NoFixup 1 prop_dynamic //middle { "targetname" "area2barriers" "origin" "192 2560 944" "angles" "0 90 0" "modelscale" "1" "fademindist" "128" "fademaxdist" "1024" "disablereceiveshadows" "1" "model" "models/props_mvm/no_entry.mdl" "disableshadows" "1" "solid" "0" "StartDisabled" "0" } NoFixup 1 prop_dynamic //middle2 { "targetname" "area2barriers" "origin" "640 2560 720" "angles" "0 90 0" "modelscale" "1.25" "fademindist" "128" "fademaxdist" "1024" "disablereceiveshadows" "1" "model" "models/props_mvm/no_entry.mdl" "disableshadows" "1" "solid" "0" "StartDisabled" "0" } NoFixup 1 prop_dynamic //left { "targetname" "area2barriers" "origin" "1088 2560 912" "angles" "0 90 0" "modelscale" "1.25" "fademindist" "128" "fademaxdist" "1024" "disablereceiveshadows" "1" "model" "models/props_mvm/no_entry.mdl" "disableshadows" "1" "solid" "0" "StartDisabled" "0" } } station { 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.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" "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" } } hatchblocker //hatch prop { NoFixup 1 prop_dynamic { "targetname" "hatchcover" "angles" "0 0 0" "DisableBoneFollowers" "1" "disablereceiveshadows" "1" "model" "models/props_hydro/water_machinery2.mdl" "disableshadows" "1" "ExplodeDamage" "0" "ExplodeRadius" "0" "fademaxdist" "0" "fademindist" "-1" "fadescale" "1" "MaxAnimTime" "10" "maxdxlevel" "0" "MinAnimTime" "5" "mindxlevel" "0" "modelscale" "1.2" "PerformanceMode" "0" "pressuredelay" "0" "RandomAnimation" "0" "renderamt" "100" "rendercolor" "100 100 255" "renderfx" "15" "rendermode" "0" "SetBodyGroup" "0" "CollisionGroup" "1" "skin" "0" "solid" "0" "spawnflags" "0" "StartDisabled" "0" "origin" "39 692 469" } } hatchblocker //hatch collision { NoFixup 1 func_forcefield { "disablereceiveshadows" "0" "origin" "39 692 629" "renderamt" "255" "rendercolor" "255 255 255" "renderfx" "0" "rendermode" "10" "TeamNum" "2" "targetname" "hatchcovercollision" "parentname" "hatchcover" "mins" "-120 -120 -120" "maxs" "120 120 120" "StartDisabled" "0" } } hatchunblocker { NoFixup 1 logic_relay { "targetname" "unblockhatch" "OnTrigger" "hatchcover,Kill,,0,-1" "OnTrigger" "hatchopen,Show,,0,-1" "OnTrigger" "thirdperson,Enable,,0,-1" } } annotation { NoFixup 1 training_annotation { "targetname" "hatchopen" "parentname" "hatch_prop" "display_text" "The bomb can now be deployed!" "lifetime" "10" "origin" "40 696 616" } } spawnpoints { // models NoFixup 1 prop_dynamic { "targetname" "spawnpoint_red1a" "model" "models/props_mvm/robot_spawnpoint.mdl" "disableshadows" "1" "defaultanim" "idle" "origin" "64 6048 736" "angles" "0 0 0" "skin" "3" } NoFixup 1 prop_dynamic { "targetname" "spawnpoint_red1b" "model" "models/props_mvm/robot_spawnpoint.mdl" "disableshadows" "1" "defaultanim" "idle" "origin" "1688 6304 736" "angles" "0 180 0" "skin" "3" } NoFixup 1 prop_dynamic { "targetname" "spawnpoint_red1c" "model" "models/props_mvm/robot_spawnpoint.mdl" "disableshadows" "1" "defaultanim" "idle" "origin" "1969 5452 696" "angles" "0 180 0" "skin" "3" } NoFixup 1 prop_dynamic { "targetname" "spawnpoint_red2a" "model" "models/props_mvm/robot_spawnpoint.mdl" "disableshadows" "1" "defaultanim" "idle" "origin" "960 3904 896" "angles" "0 90 0" "skin" "3" } NoFixup 1 prop_dynamic { "targetname" "spawnpoint_red2b" "model" "models/props_mvm/robot_spawnpoint.mdl" "disableshadows" "1" "defaultanim" "idle" "origin" "-280 3456 896" "angles" "0 0 0" "skin" "3" } NoFixup 1 prop_dynamic { "targetname" "spawnpoint_red2c" "model" "models/props_mvm/robot_spawnpoint.mdl" "disableshadows" "1" "defaultanim" "idle" "origin" "1696 2816 769" "angles" "0 180 0" "skin" "3" } NoFixup 1 prop_dynamic { "targetname" "spawnpoint_red3a" "model" "models/props_mvm/robot_spawnpoint.mdl" "disableshadows" "1" "defaultanim" "idle" "origin" "616 800 640" "angles" "0 180 0" "skin" "3" } NoFixup 1 prop_dynamic { "targetname" "spawnpoint_red3b" "model" "models/props_mvm/robot_spawnpoint.mdl" "disableshadows" "1" "defaultanim" "idle" "origin" "64 256 704" "angles" "0 90 0" "skin" "3" } NoFixup 1 prop_dynamic { "targetname" "spawnpoint_secret" "model" "models/props_mvm/robot_spawnpoint.mdl" "disableshadows" "1" "defaultanim" "idle" "origin" "-224 2240 656" "angles" "90 180 0" "skin" "2" } // off logic NoFixup 1 logic_relay { "targetname" "red1a_off_logic" "OnTrigger" "spawnpoint_red1a,skin,3,0,-1" } NoFixup 1 logic_relay { "targetname" "red1b_off_logic" "OnTrigger" "spawnpoint_red1b,skin,3,0,-1" } NoFixup 1 logic_relay { "targetname" "red1c_off_logic" "OnTrigger" "spawnpoint_red1b,skin,0,0,-1" } NoFixup 1 logic_relay { "targetname" "red2a_off_logic" "OnTrigger" "spawnpoint_red2a,skin,3,0,-1" } NoFixup 1 logic_relay { "targetname" "red2b_off_logic" "OnTrigger" "spawnpoint_red1b,skin,3,0,-1" } NoFixup 1 logic_relay { "targetname" "red2c_off_logic" "OnTrigger" "spawnpoint_red1b,skin,0,0,-1" } NoFixup 1 logic_relay { "targetname" "red3a_off_logic" "OnTrigger" "spawnpoint_red3a,skin,3,0,-1" } NoFixup 1 logic_relay { "targetname" "red3b_off_logic" "OnTrigger" "spawnpoint_red3b,skin,3,0,-1" } // on logic NoFixup 1 logic_relay { "targetname" "red1a_on_logic" "OnTrigger" "spawnpoint_red1a,skin,0,0,-1" } NoFixup 1 logic_relay { "targetname" "red1b_on_logic" "OnTrigger" "spawnpoint_red1b,skin,0,0,-1" } NoFixup 1 logic_relay { "targetname" "red1c_on_logic" "OnTrigger" "spawnpoint_red1b,skin,0,0,-1" } NoFixup 1 logic_relay { "targetname" "red2a_on_logic" "OnTrigger" "spawnpoint_red2a,skin,0,0,-1" } NoFixup 1 logic_relay { "targetname" "red2b_on_logic" "OnTrigger" "spawnpoint_red1b,skin,0,0,-1" } NoFixup 1 logic_relay { "targetname" "red2c_on_logic" "OnTrigger" "spawnpoint_red1b,skin,0,0,-1" } NoFixup 1 logic_relay { "targetname" "red3a_on_logic" "OnTrigger" "spawnpoint_red3a,skin,0,0,-1" } NoFixup 1 logic_relay { "targetname" "red3b_on_logic" "OnTrigger" "spawnpoint_red3b,skin,0,0,-1" } } EngineerSentry { KeepAlive 1 OnParentKilledOutput { Target "sentry_random_level" Action PickRandom Delay 0.00 } OnParentKilledOutput { Target "engineer_sentry_prop" Action Kill Delay 0.01 } OnParentKilledOutput { Target "sentry_random_level" Action Kill Delay 0.01 } logic_case { "targetname" "sentry_random_level" "OnCase01" "sentry_lvl1_maker,ForceSpawnAtEntityOrigin,engineer_sentry_prop,0,-1" "OnCase02" "sentry_lvl1_maker,ForceSpawnAtEntityOrigin,engineer_sentry_prop,0,-1" "OnCase03" "sentry_lvl1_maker,ForceSpawnAtEntityOrigin,engineer_sentry_prop,0,-1" "OnCase04" "sentry_lvl1_maker,ForceSpawnAtEntityOrigin,engineer_sentry_prop,0,-1" "OnCase05" "sentry_lvl1_maker,ForceSpawnAtEntityOrigin,engineer_sentry_prop,0,-1" "OnCase06" "sentry_lvl1_maker,ForceSpawnAtEntityOrigin,engineer_sentry_prop,0,-1" "OnCase07" "sentry_lvl1_maker,ForceSpawnAtEntityOrigin,engineer_sentry_prop,0,-1" "OnCase08" "sentry_lvl1_maker,ForceSpawnAtEntityOrigin,engineer_sentry_prop,0,-1" "OnCase09" "sentry_lvl2_maker,ForceSpawnAtEntityOrigin,engineer_sentry_prop,0,-1" "OnCase10" "sentry_lvl2_maker,ForceSpawnAtEntityOrigin,engineer_sentry_prop,0,-1" "OnCase11" "sentry_lvl3_maker,ForceSpawnAtEntityOrigin,engineer_sentry_prop,0,-1" } prop_dynamic { "targetname" "engineer_sentry_prop" "model" "models/buildables/sentry1.mdl" "skin" "0" "spawnflags" "0" "solid" "0" "DisableBoneFollowers" "1" "disablereceiveshadows" "1" "disableshadows" "1" "origin" "0 0 0" "angles" "0 0 0" } } sentry_lvl1_template { KeepAlive 1 OnSpawnOutput { Target "engineer_sentry" Action AddOutput Param "angles 0 0 0" Delay 0.00 } // Set builder of sentry to !activator (parent of template) (nothing) // This prevents bots from getting stuck / blocked by sentries OnSpawnOutput { Target "engineer_sentry" Action SetBuilder // The name's builder, Bob the Builder. Delay 0.00 } OnSpawnOutput { Target "engineer_sentry" Action RemoveHealth Param 696969 Delay 10 } obj_sentrygun { "targetname" "engineer_sentry" "defaultupgrade" "0" "spawnflags" "0" "TeamNum" "2" "skin" "1" "SolidToPlayer" "0" "disablereceiveshadows" "1" "disableshadows" "1" "origin" "0 0 0" "angles" "0 0 0" } } sentry_lvl2_template { KeepAlive 1 OnSpawnOutput { Target "engineer_sentry" Action AddOutput Param "angles 0 0 0" Delay 0.00 } // Set builder of sentry to !activator (parent of template) (nothing) // This prevents bots from getting stuck / blocked by sentries OnSpawnOutput { Target "engineer_sentry" Action SetBuilder // The name's builder, Bob the Builder. Delay 0.00 } OnSpawnOutput { Target "engineer_sentry" Action RemoveHealth Param 696969 Delay 10 } obj_sentrygun { "targetname" "engineer_sentry" "defaultupgrade" "1" "spawnflags" "0" "TeamNum" "2" "skin" "1" "SolidToPlayer" "0" "disablereceiveshadows" "1" "disableshadows" "1" "origin" "0 0 0" "angles" "0 0 0" } } sentry_lvl3_template { KeepAlive 1 OnSpawnOutput { Target "engineer_sentry" Action AddOutput Param "angles 0 0 0" Delay 0.00 } // Set builder of sentry to !activator (parent of template) (nothing) // This prevents bots from getting stuck / blocked by sentries OnSpawnOutput { Target "engineer_sentry" Action SetBuilder // The name's builder, Bob the Builder. Delay 0.00 } OnSpawnOutput { Target "engineer_sentry" Action RemoveHealth Param 696969 Delay 10 } obj_sentrygun { "targetname" "engineer_sentry" "defaultupgrade" "2" "spawnflags" "0" "TeamNum" "2" "skin" "1" "SolidToPlayer" "0" "disablereceiveshadows" "1" "disableshadows" "1" "origin" "0 0 0" "angles" "0 0 0" } } blimplogic { NoFixup 1 logic_relay { "targetname" "red_blimp_relay" "OnTrigger" "blimpbossred,Setteam,2,0.25,-1" } NoFixup 1 logic_relay { "targetname" "blimpcolor_relay" "OnTrigger" "blimpbossred,color,200 125 255,0.25,-1" } } } SpawnTemplate "corelogic" SpawnTemplate "annotation" SpawnTemplate "hatchunblocker" SpawnTemplate "spawnpoints" SpawnTemplate "barriers" SpawnTemplate "areabarriers" SpawnTemplate "blimplogic" SpawnTemplate { Name "station" "origin" "222 7385 674" "angles" "0 90 0" } SpawnTemplate { Name "station" "origin" "2206 7448 480" "angles" "0 90 0" } SpawnTemplate { Name "station" "origin" "1702 8658 748" "angles" "0 180 13" } ExtraSpawnPoint { Name "spawnbot_red1a" TeamNum 2 X "64" Y "6048" Z "768" } ExtraSpawnPoint { Name "spawnbot_red1b" TeamNum 2 X "1688" Y "6304" Z "768" } ExtraSpawnPoint { Name "spawnbot_red1c" TeamNum 2 X "1969" Y "5452" Z "728" } ExtraSpawnPoint { Name "spawnbot_red2a" TeamNum 2 X "960" Y "3904" Z "928" } ExtraSpawnPoint { Name "spawnbot_red2b" TeamNum 2 X "-280" Y "3456" Z "928" } ExtraSpawnPoint { Name "spawnbot_red2c" TeamNum 2 X "1696" Y "2816" Z "800" } ExtraSpawnPoint { Name "spawnbot_red3a" TeamNum 2 X "616" Y "800" Z "672" } ExtraSpawnPoint { Name "spawnbot_red3b" TeamNum 2 X "64" Y "256" Z "736" } Wave { WaitWhenDone 65 Checkpoint Yes StartWaveOutput { Target wave_start_relay Action Trigger } DoneOutput { Target wave_finished_relay Action trigger } SpawnTemplate "hatchblocker" Explanation { Line "{grey}-----------------------------" Line "{grey} Ah welcome mercenaries it is I Grey Mann you are probably wondering why you all are robots hmm?" Line "{grey} Well I captured you 6 and turned you all into robots" Line "{grey} So now you belong to me" Line "{grey} Anyways there are a few rules you need to know read carefully." Line "{grey}-----------------------------" Line "{orange} ////////Rule 1////////" Line "{blue}-----------------------------" Line "{blue}➤ YOU ARE NOW A ROBOT!" Line "{blue}➤ You have infinite ammo so you don't need to buy ammo capacity" Line "{blue}➤ Players can NOT deploy the bomb - Drop it for the robots at the hatch" Line "{blue}➤ Money is auto collected so you don't need to worry about missing any money" Line "{blue}-----------------------------" Line "{orange} ////////Rule 2////////" Line "{blue}-----------------------------" Line "{blue}➤ There are barriers that are blocking your path, destroy the robots that are in the first area" Line "{blue}➤ to move on to the next area, until you reach to the bomb hatch" Line "{blue}-----------------------------" } WaveSpawn { Name w1a TotalCurrency 100 TotalCount 4 MaxActive 2 SpawnCount 2 Where spawnbot_red1a WaitBeforeStarting 10 WaitBetweenSpawns 5 FirstSpawnOutput { Target red1a_on_logic Action Trigger } DoneOutput { Target red1a_off_logic Action Trigger } Squad { TFBot { ClassIcon heavy_steelfist WeaponRestrictions MeleeOnly Class Heavyweapons Name "Giant Steel Gauntlet Heavy" Skill Expert Health 5000 Attributes "MiniBoss" Item "fists of steel" ItemAttributes { ItemName "fists of steel" "damage bonus" 1.5 } CharacterAttributes { "force distribute currency on death" 1 "move speed bonus" 0.5 "damage force reduction" 0.3 "airblast vulnerability multiplier" 0.3 "override footstep sound set" 2 } Attributes IgnoreFlag Action Mobber AddCond { Index 43 } AddCond { Index 5 Duration 2 } } TFBot { ClassIcon scout_pocketpistol_lite Name "Giant Pocket Pistol Scout" WeaponRestrictions SecondaryOnly Template T_TFBot_Giant_Scout Item "pretty boy's pocket pistol" Item "ye olde baker boy" CharacterAttributes { "force distribute currency on death" 1 } Attributes IgnoreFlag Action Mobber AddCond { Index 43 } AddCond { Index 5 Duration 2 } } } } WaveSpawn { Name w1a TotalCurrency 80 TotalCount 42 MaxActive 8 SpawnCount 4 Where spawnbot_red1b Where spawnbot_red1c WaitBeforeStarting 4 WaitBetweenSpawns 3 FirstSpawnOutput { Target red1b_on_logic Action Trigger } LastSpawnOutput { Target red1c_on_logic Action Trigger } TFBot { ClassIcon pyro_detonator_red Name "Detonator Pyro" Skill Hard Template T_TFBot_Pyro_Flaregun Item "the detonator" CharacterAttributes { "force distribute currency on death" 1 } Attributes IgnoreFlag Action Mobber AddCond { Index 43 } AddCond { Index 5 Duration 2 } } } WaveSpawn { Name w1a_duo WaitForAllDead w1a FirstSpawnOutput { Target red1b_off_logic Action Trigger } LastSpawnOutput { Target red1c_off_logic Action Trigger } } WaveSpawn { Name w1a_barrier_disabled1 WaitForAllDead w1a FirstSpawnOutput { Target area1barriersdisable Action Trigger } } WaveSpawn { Name w1a_duo WaitForAllDead w1a } WaveSpawn { Name w1b WaitForAllDead w1a TotalCurrency 125 TotalCount 3 MaxActive 1 SpawnCount 1 Where spawnbot_red2a WaitBeforeStarting 3 WaitBetweenSpawns 3 FirstSpawnOutput { Target red2a_on_logic Action Trigger } TFBot { ClassIcon sniper_carbine Health 3300 Name "Giant Carbine Sniper" Class Sniper Skill Expert WeaponRestrictions SecondaryOnly Attributes "MiniBoss" Item "the cleaner's carbine" UseCustomModel "models/bots/sniper_boss/bot_sniper_boss.mdl" CharacterAttributes { "cancel falling damage" 1 "force distribute currency on death" 1 "damage force reduction" 0.4 "airblast vulnerability multiplier" 0.4 "override footstep sound set" 7 "move speed bonus" 0.4 } Attributes IgnoreFlag Action Mobber AddCond { Index 43 } AddCond { Index 5 Duration 2 } } } WaveSpawn { Name w1b WaitForAllDead w1a TotalCurrency 52 TotalCount 28 MaxActive 7 SpawnCount 1 Where spawnbot_red2a WaitBeforeStarting 3 WaitBetweenSpawns 1 TFBot { ClassIcon demo_sticky_red_daan WeaponRestrictions SecondaryOnly Health 175 Skill Hard Name "Sticky Bomber Demo" Class Demoman Item "tf_weapon_grenadelauncher" Item "tf_weapon_pipebomblauncher" Item "demoman hallmark" ItemAttributes { ItemName "TF_WEAPON_GRENADELAUNCHER" "is_passive_weapon" 1 "override projectile type" 15 } ItemAttributes { ItemName "TF_WEAPON_PIPEBOMBLAUNCHER" "damage bonus" 1.2 } CharacterAttributes { "cancel falling damage" 1 "force distribute currency on death" 1 } Attributes IgnoreFlag Action Mobber AddCond { Index 43 } AddCond { Index 5 Duration 2 } } } WaveSpawn { Name w1b WaitForAllDead w1a TotalCurrency 40 TotalCount 20 MaxActive 5 SpawnCount 5 Where spawnbot_red2b WaitBeforeStarting 5 WaitBetweenSpawns 0 FirstSpawnOutput { Target red2b_on_logic Action Trigger } DoneOutput { Target red2b_off_logic Action Trigger } TFBot { Name "Jumping Sandman Scout" Skill Expert Template T_TFBot_Scout_Jumping_Sandman CharacterAttributes { "force distribute currency on death" 1 } Attributes IgnoreFlag Action Mobber AddCond { Index 43 } AddCond { Index 5 Duration 2 } } } WaveSpawn { Name w1b_barrier_disabled2 WaitForAllDead w1b FirstSpawnOutput { Target area2barriersdisable Action Trigger } } WaveSpawn { Name w1c WaitForAllDead w1b TotalCurrency 200 TotalCount 6 MaxActive 3 SpawnCount 3 Where spawnbot_red3a WaitBeforeStarting 5 WaitBetweenSpawns 5 FirstSpawnOutput { Target red3a_on_logic Action Trigger } Squad { TFBot { ClassIcon heavy_shotgun_red Template T_TFBot_Giant_Heavyweapons_Shotgun CharacterAttributes { "force distribute currency on death" 1 } Attributes IgnoreFlag Action Mobber AddCond { Index 43 } AddCond { Index 5 Duration 2 } } TFBot { Template T_TFBot_Medic Tag bot_squad_member CharacterAttributes { "force distribute currency on death" 1 } Attributes IgnoreFlag Action Mobber AddCond { Index 43 } AddCond { Index 5 Duration 2 } } TFBot { Template T_TFBot_Medic Tag bot_squad_member CharacterAttributes { "force distribute currency on death" 1 } Attributes IgnoreFlag Action Mobber AddCond { Index 43 } AddCond { Index 5 Duration 2 } } } } WaveSpawn { Name w1c WaitForAllDead w1b TotalCurrency 60 TotalCount 30 MaxActive 6 SpawnCount 2 Where spawnbot_red3b WaitBeforeStarting 0 WaitBetweenSpawns 2 FirstSpawnOutput { Target red3b_on_logic Action Trigger } TFBot { ClassIcon engineer_frontier_justice_nys Health 125 Name "Frontier Justice Engineer" Class Engineer Skill Hard WeaponRestrictions PrimaryOnly Action FetchFlag BehaviorModifiers Push Attributes "HoldFireUntilFullReload" Item "the frontier justice" Item "texas ten gallon" Item "duel medal gold" ItemAttributes { ItemName "The Frontier Justice" "critboost on kill" 3 "faster reload rate" -0.7 "fire rate penalty" 1.5 "item style override" 1 "loot rarity" 1 "is australium item" 1 "turn to gold" 1 } CharacterAttributes { "force distribute currency on death" 1 } Attributes IgnoreFlag Action Mobber AddCond { Index 43 } AddCond { Index 5 Duration 2 } } } WaveSpawn { Name w1c_barrier_disabled WaitForAllDead w1c FirstSpawnWarningSound "alarm2cut.mp3" FirstSpawnOutput { Target unblockhatch Action Trigger } } WaveSpawn { Name Support WaitForAllDead w1c TotalCurrency 0 TotalCount 9999 MaxActive 10 SpawnCount 2 Where spawnbot_red3a Where spawnbot_red3b WaitBeforeStarting 5 WaitBetweenSpawns 2 RandomChoice { TFBot { ClassIcon spammer Health 125 Name "Pomson Engineer" Class Engineer Skill Hard WeaponRestrictions PrimaryOnly Attributes "AlwaysCrit" Action FetchFlag BehaviorModifiers Push Item "the pomson 6000" Item "the virtual reality headset" Attributes IgnoreFlag Action Mobber AddCond { Index 43 } AddCond { Index 5 Duration 2 } } TFBot { ClassIcon spammer Health 200 Name "Cow Mangler Soldier" Class Soldier Skill Hard WeaponRestrictions PrimaryOnly Item "the cow mangler 5000" Item "lord cockswain's pith helmet" Attributes IgnoreFlag Action Mobber AddCond { Index 43 } AddCond { Index 5 Duration 2 } } TFBot { ClassIcon spammer Health 125 Name "Capper Scout" Class Scout Skill Expert WeaponRestrictions SecondaryOnly Item "The C.A.P.P.E.R" Item "the virtual viewfinder" Attributes IgnoreFlag Action Mobber AddCond { Index 43 } AddCond { Index 5 Duration 2 } } TFBot { ClassIcon spammer Health 175 Name "Mann Melter Pyro" Class Pyro Skill Expert WeaponRestrictions SecondaryOnly Attributes "AlwaysCrit" Item "the manmelter" Item "the triclops" Attributes IgnoreFlag Action Mobber AddCond { Index 43 } AddCond { Index 5 Duration 2 } } } } WaveSpawn { Name "Bomb Carrier" TotalCurrency 0 TotalCount 999 MaxActive 1 SpawnCount 1 Where spawnbot WaitBeforeStarting 10 WaitBetweenSpawns 10 Support 1 RandomSpawn 1 TFBot { ClassIcon blu2_lite Health 800 Name "Skull Cutter Demoknight" Scale 1.4 Class Demoman Skill Easy AlwaysGlow 1 WeaponRestrictions MeleeOnly Item "ali baba's wee booties" Item "the splendid screen" Item "the scotsman's skullcutter" Item "the glasgow great helm" Item "the dark age defender" VoiceCommand { Delay 1 Cooldown 6 Repeats 99999 IfHealthBelow 200 Type "MEDIC!" } } } WaveSpawn { Name blusupport TotalCurrency 0 TotalCount 999 MaxActive 3 SpawnCount 3 Where spawnbot_flank_right WaitBeforeStarting 10 WaitBetweenSpawns 15 Support 1 RandomSpawn 1 TFBot { ClassIcon blu2_lite Health 200 Name Soldier Class Soldier Skill Normal BehaviorModifiers Push Attributes IgnoreFlag } } WaveSpawn { Name "redsentrybuster" Where spawnbot_red2a TotalCount 6969 MaxActive 1 SpawnCount 1 WaitBeforeStarting 45 WaitBetweenSpawns 45 Support 1 TFBot { ClassIcon sentry_buster_red Class Demoman Name "Sentry Buster" Skill Expert Health 2500 Item "The Ullapool Caber" WeaponRestrictions MeleeOnly Attributes DisableDodge Attributes IgnoreEnemies Attributes MiniBoss CharacterAttributes { "cancel falling damage" 1 "damage force reduction" 0 "voice pitch scale" 0.75 "crit mod disabled" 0 "ammo regen" 1 "health from packs increased" 0.15 "move speed bonus" 2 "damage force reduction" 0.5 "airblast vulnerability multiplier" 0.5 "override footstep sound set" 7 "cannot be backstabbed" 1 } UseCustomModel models/bots/demo/red_sentry_buster.mdl Action SuicideBomber UseBusterModel 1 CustomWeaponModel { Slot 0 Model "models/empty.mdl" } AddCond { Name TF_COND_REPROGRAMMED } } } } Wave { WaitWhenDone 65 Checkpoint Yes StartWaveOutput { Target wave_start_relay Action Trigger } DoneOutput { Target wave_finished_relay Action Trigger } SpawnTemplate "hatchblocker" WaveSpawn { Name w2a TotalCurrency 126 TotalCount 3 MaxActive 1 SpawnCount 1 Where spawnbot_red1a WaitBeforeStarting 5 WaitBetweenSpawns 0 FirstSpawnOutput { Target red1a_on_logic Action Trigger } DoneOutput { Target red1a_off_logic Action Trigger } TFBot { ClassIcon spy_ambassador_lite Health 3300 Name "Giant Ambassador Spy" Class Spy Skill Expert WeaponRestrictions PrimaryOnly Action FetchFlag BehaviorModifiers Push Attributes "MiniBoss" Item "the ambassador" Item "fancy fedora" ItemAttributes { ItemName "the ambassador" "damage bonus" 1.5 } CharacterAttributes { "force distribute currency on death" 1 "cannot disguise" 1 "move speed bonus" 0.5 "damage force reduction" 0.3 "airblast vulnerability multiplier" 0.3 "override footstep sound set" 7 } Attributes IgnoreFlag Action Mobber AddCond { Index 43 } AddCond { Index 5 Duration 2 } } } WaveSpawn { Name w2a TotalCurrency 36 TotalCount 36 MaxActive 6 SpawnCount 3 Where spawnbot_red1b WaitBeforeStarting 3 WaitBetweenSpawns 2 FirstSpawnOutput { Target red1b_on_logic Action Trigger } DoneOutput { Target red1b_off_logic Action Trigger } TFBot { ClassIcon pyro_phlog Name "Phlogistinator Pyro" Skill Hard Template T_TFBot_Pyro Attributes "SpawnWithFullCharge" Item "the phlogistinator" Item "the person in the iron mask" Item "The Phlogistinator" ItemAttributes { ItemName "The Phlogistinator" "airblast disabled" 0 "increase buff duration" 6.2 "mod rage on hit bonus" 420 "mult airblast refire time" 0.01 } CharacterAttributes { "force distribute currency on death" 1 } Attributes IgnoreFlag Action Mobber AddCond { Index 43 } AddCond { Index 5 Duration 2 } } } WaveSpawn { Name w2a TotalCurrency 48 TotalCount 24 MaxActive 6 SpawnCount 2 Where spawnbot_red1c WaitBeforeStarting 5 WaitBetweenSpawns 2 FirstSpawnOutput { Target red1c_on_logic Action Trigger } DoneOutput { Target red1c_off_logic Action Trigger } TFBot { ClassIcon sniper_huntsman_bleed Name "Bleeding Bowman" Skill Expert Template T_TFBot_Sniper_Huntsman Item "horrific headsplitter" CharacterAttributes { "bleeding duration" 3 "force distribute currency on death" 1 } Attributes IgnoreFlag Action Mobber AddCond { Index 43 } AddCond { Index 5 Duration 2 } } } WaveSpawn { Name w2a_barrier_disabled1 WaitForAllDead w2a FirstSpawnOutput { Target area1barriersdisable Action Trigger } } WaveSpawn { Name w2b WaitForAllDead w2a TotalCurrency 100 TotalCount 5 MaxActive 1 SpawnCount 1 Where spawnbot_red2b WaitBeforeStarting 3 WaitBetweenSpawns 3 FirstSpawnOutput { Target red2b_on_logic Action Trigger } DoneOutput { Target red2b_off_logic Action Trigger } TFBot { Skill Hard Template T_TFBot_Giant_Scout_Fast Attributes "AlwaysCrit" CharacterAttributes { "cancel falling damage" 1 "force distribute currency on death" 1 } Attributes IgnoreFlag Action Mobber AddCond { Index 43 } AddCond { Index 5 Duration 2 } } } WaveSpawn { Name w2b WaitForAllDead w2a TotalCurrency 32 TotalCount 32 MaxActive 8 SpawnCount 2 Where spawnbot_red2a WaitBeforeStarting 4 WaitBetweenSpawns 2 FirstSpawnOutput { Target red2a_on_logic Action Trigger } DoneOutput { Target red2a_off_logic Action Trigger } TFBot { Health 200 Name Soldier Class Soldier Skill Normal CharacterAttributes { "cancel falling damage" 1 "force distribute currency on death" 1 } Attributes IgnoreFlag Action Mobber AddCond { Index 43 } AddCond { Index 5 Duration 2 } } } WaveSpawn { Name w2b WaitForAllDead w2a TotalCurrency 48 TotalCount 16 MaxActive 4 SpawnCount 2 Where spawnbot_red2c WaitBeforeStarting 8 WaitBetweenSpawns 3 FirstSpawnOutput { Target red2c_on_logic Action Trigger } DoneOutput { Target red2c_off_logic Action Trigger } TFBot { Class Scout Skill Normal Attributes "AlwaysCrit" CharacterAttributes { "force distribute currency on death" 1 } Attributes IgnoreFlag Action Mobber AddCond { Index 43 } AddCond { Index 5 Duration 2 } } } WaveSpawn { Name w2b_barrier_disabled1 WaitForAllDead w2b FirstSpawnOutput { Target area2barriersdisable Action Trigger } } WaveSpawn { Name w2c WaitForAllDead w2b TotalCurrency 200 TotalCount 4 MaxActive 2 SpawnCount 2 Where spawnbot_red3a WaitBeforeStarting 10 WaitBetweenSpawns 10 TFBot { Template T_TFBot_Giant_Soldier_Crit CharacterAttributes { "force distribute currency on death" 1 } Attributes IgnoreFlag Action Mobber AddCond { Index 43 } AddCond { Index 5 Duration 2 } } } WaveSpawn { Name w2c WaitForAllDead w2b TotalCurrency 50 TotalCount 28 MaxActive 7 SpawnCount 1 Where spawnbot_red3a WaitBeforeStarting 3 WaitBetweenSpawns 1 FirstSpawnOutput { Target red3a_on_logic Action Trigger } TFBot { ClassIcon pyro_homewrecker_lite Health 175 Name "Homewrecker Pyro" Class Pyro Skill Expert WeaponRestrictions MeleeOnly Item "the homewrecker" Item "respectless rubber glove" CharacterAttributes { "force distribute currency on death" 1 "dmg bonus vs buildings" 4.20 } Attributes IgnoreFlag Action Mobber AddCond { Index 43 } AddCond { Index 5 Duration 2 } } } WaveSpawn { Name w2c WaitForAllDead w2b TotalCurrency 60 TotalCount 30 MaxActive 6 SpawnCount 2 Where spawnbot_red3b WaitBeforeStarting 5 WaitBetweenSpawns 2 FirstSpawnOutput { Target red3b_on_logic Action Trigger } TFBot { Template T_TFBot_Scout_FAN CharacterAttributes { "force distribute currency on death" 1 } Attributes IgnoreFlag Action Mobber AddCond { Index 43 } AddCond { Index 5 Duration 2 } } } WaveSpawn { Name Support WaitForAllDead w2c TotalCurrency 0 TotalCount 9999 MaxActive 9 SpawnCount 3 Where spawnbot_red3a Where spawnbot_red3b WaitBeforeStarting 0 WaitBetweenSpawns 2 RandomChoice { TFBot { ClassIcon spammer Template T_TFBot_Heavyweapons_Shotgun Attributes IgnoreFlag Action Mobber AddCond { Index 43 } AddCond { Index 5 Duration 2 } } TFBot { ClassIcon spammer Health 175 Name "Loch-n-load Demoman" Class Demoman Skill Hard WeaponRestrictions PrimaryOnly Item "the loch-n-load" Item "glengarry bonnet" Attributes IgnoreFlag Action Mobber AddCond { Index 43 } AddCond { Index 5 Duration 2 } } TFBot { ClassIcon spammer WeaponRestrictions MeleeOnly Health 125 Name "Smg Sniper" Class Sniper Skill Hard Attributes IgnoreFlag Action Mobber AddCond { Index 43 } AddCond { Index 5 Duration 2 } } TFBot { ClassIcon spammer Health 175 Name Pyro Class Pyro Skill Hard Attributes IgnoreFlag Action Mobber AddCond { Index 43 } AddCond { Index 5 Duration 2 } } TFBot { ClassIcon spammer Template T_TFBot_Sniper_Huntsman_Spammer Attributes IgnoreFlag Action Mobber AddCond { Index 43 } AddCond { Index 5 Duration 2 } } } } WaveSpawn { Name w2c_barrier_disabled WaitForAllDead w2c FirstSpawnWarningSound "alarm2cut.mp3" FirstSpawnOutput { Target unblockhatch Action Trigger } } WaveSpawn { Name "bomb carrier" TotalCurrency 0 TotalCount 999 MaxActive 1 SpawnCount 1 Where spawnbot WaitBeforeStarting 10 WaitBetweenSpawns 10 Support 1 RandomSpawn 1 TFBot { ClassIcon blu2_lite Template T_TFBot_Heavy_IronFist_Airblast AlwaysGlow 1 Attributes "AlwaysCrit" VoiceCommand { Delay 1 Cooldown 6 Repeats 99999 IfHealthBelow 250 Type "MEDIC!" } } } WaveSpawn { Name "blu support" TotalCurrency 0 TotalCount 999 MaxActive 4 SpawnCount 2 Where spawnbot_flank_left Where spawnbot_flank_right WaitBeforeStarting 10 WaitBetweenSpawns 10 Support 1 RandomSpawn 1 RandomChoice { TFBot { ClassIcon blu2_lite Health 125 Name "Penetrating Bowman" Template T_TFBot_Sniper_Huntsman Skill Expert Item "festive huntsman" Item "the snaggletoothed stetson" BehaviorModifiers Push Attributes "IgnoreFlag" ItemAttributes { ItemName "festive huntsman" "projectile penetration" 1 } } TFBot { ClassIcon blu2_lite Health 125 Name "Marking Bowman" Template T_TFBot_Sniper_Huntsman Skill Expert Item "the huntsman" Item "holy hunter" BehaviorModifiers Push Attributes "IgnoreFlag" ItemAttributes { Itemname "holy hunter" "attach particle effect" 44 } ItemAttributes { ItemName "the huntsman" "mark for death" 5 } } TFBot { ClassIcon blu2_lite Name "Ignited Bowman" Template T_TFBot_Sniper_Huntsman Skill Expert Item "spine-chilling skull" BehaviorModifiers Push Attributes "IgnoreFlag" ItemAttributes { Itemname "the huntsman" "Set DamageType Ignite" 1 "attach particle effect" 13 } } TFBot { ClassIcon blu2_lite Name "Bleeding Bowman" Template T_TFBot_Sniper_Huntsman Skill Expert Item "voodoo juju" BehaviorModifiers Push Attributes "IgnoreFlag" ItemAttributes { Itemname "voodoo juju" "attach particle effect" 43 } CharacterAttributes { "bleeding duration" 5 } } TFBot { ClassIcon blu2_lite Name "Cannon Ball Bowman" Template T_TFBot_Sniper_Huntsman Item "the lone star" BehaviorModifiers Push Attributes "IgnoreFlag" CharacterAttributes { "override projectile type" 17 "hand scale" 0 } } } } } Wave { WaitWhenDone 65 Checkpoint Yes StartWaveOutput { Target wave_start_relay Action Trigger } DoneOutput { Target wave_finished_relay Action Trigger } SpawnTemplate "hatchblocker" WaveSpawn { Name w3a TotalCurrency 0 TotalCount 1 MaxActive 1 SpawnCount 1 WaitBeforeStarting 10 WaitBetweenSpawns 10 FirstSpawnOutput { Target red_tank_relay Action Trigger } Tank { Health 20000 Name "tankbossred" ClassIcon tank_red_lite Model "models/bots/boss_bot/boss_tankred.mdl" Speed 55 StartingPathTrackNode "tankpath_red_short_1" OnKilledOutput { Target boss_dead_relay Action Trigger } OnBombDroppedOutput { Target redwin_relay Action Trigger } } } WaveSpawn { Name w3a TotalCurrency 60 TotalCount 30 MaxActive 6 SpawnCount 2 Where spawnbot_red1a Where spawnbot_red1b WaitBeforeStarting 0 WaitBetweenSpawns 2 FirstSpawnOutput { Target red1a_on_logic Action Trigger } FirstSpawnOutput { Target red1b_on_logic Action Trigger } TFBot { Health 175 Name Demoman Class Demoman Skill Normal CharacterAttributes { "force distribute currency on death" 1 } Attributes IgnoreFlag Action Mobber AddCond { Index 43 } AddCond { Index 5 Duration 2 } } } WaveSpawn { Name w3a2 WaitForAllSpawned w3a TotalCurrency 200 TotalCount 2 MaxActive 2 SpawnCount 2 Where spawnbot_red1c WaitBeforeStarting 6 WaitBetweenSpawns 0 FirstSpawnOutput { Target red1c_on_logic Action Trigger } Squad { TFBot { Template T_TFBot_Giant_Soldier_Spammer_Reload CharacterAttributes { "force distribute currency on death" 1 } Attributes IgnoreFlag Action Mobber AddCond { Index 43 } AddCond { Index 5 Duration 2 } } TFBot { Template T_TFBot_Giant_Medic_Regen Tag bot_squad_member CharacterAttributes { "force distribute currency on death" 1 } Attributes IgnoreFlag Action Mobber AddCond { Index 43 } AddCond { Index 5 Duration 2 } } } } WaveSpawn { Name w3b WaitForAllDead w3a2 TotalCurrency 100 TotalCount 3 MaxActive 1 SpawnCount 1 Where spawnbot_red2b Where spawnbot_red2c WaitBeforeStarting 5 WaitBetweenSpawns 0 TFBot { Template T_TFBot_Giant_Heavyweapons CharacterAttributes { "force distribute currency on death" 1 } Attributes IgnoreFlag Action Mobber AddCond { Index 43 } AddCond { Index 5 Duration 2 } } } WaveSpawn { Name w3b WaitForAllDead w3a2 TotalCurrency 24 TotalCount 30 MaxActive 6 SpawnCount 2 Where spawnbot_red2a WaitBeforeStarting 5 WaitBetweenSpawns 2 FirstSpawnOutput { Target red2a_on_logic Action Trigger } TFBot { ClassIcon scout_cleaver Health 125 Name "Cleaver Scout" Class Scout Skill Hard WeaponRestrictions SecondaryOnly Item "the flying guillotine" Item "horrific headsplitter" CharacterAttributes { "force distribute currency on death" 1 "effect bar recharge rate increased" .01 "fire rate penalty" 2 } Attributes IgnoreFlag Action Mobber AddCond { Index 43 } AddCond { Index 5 Duration 2 } } } WaveSpawn { Name w3b WaitForAllDead w3a2 TotalCurrency 25 TotalCount 25 MaxActive 5 SpawnCount 5 Where spawnbot_red2b Where spawnbot_red2c WaitBeforeStarting 3 WaitBetweenSpawns 0 FirstSpawnOutput { Target red2b_on_logic Action Trigger } LastSpawnOutput { Target red2c_on_logic Action Trigger } TFBot { ClassIcon demoknight_charge Template T_TFBot_Demoman_Knight Item "the claidheamohmor" Item "lo-fi longwave" CharacterAttributes { "force distribute currency on death" 1 } Attributes IgnoreFlag Action Mobber AddCond { Index 43 } AddCond { Index 5 Duration 2 } } } WaveSpawn { Name w3c WaitForAllSpawned w3b TotalCurrency 0 TotalCount 1 MaxActive 1 SpawnCount 1 WaitBeforeStarting 0 WaitBetweenSpawns 0 FirstSpawnOutput { Target red_tank_relay Action Trigger } Tank { Health 40000 Name "tankbossred" ClassIcon tank_red_lite Model "models/bots/boss_bot/boss_tankred.mdl" Speed 75 StartingPathTrackNode "tankpath_red_long_1" OnKilledOutput { Target boss_dead_relay Action Trigger } OnBombDroppedOutput { Target redwin_relay Action Trigger } } } WaveSpawn { Name w3c WaitForAllDead w3b TotalCurrency 91 TotalCount 2 MaxActive 1 SpawnCount 1 Where spawnbot_red3a WaitBeforeStarting 5 WaitBetweenSpawns 5 TFBot { ClassIcon pyro_flare_rain_red_nys Name "Major Flare" Class Pyro Skill Expert Health 4200 Item "The Scorch Shot" WeaponRestrictions SecondaryOnly Attributes AlwaysCrit Attributes MiniBoss Item "The Flamboyant Flamenco" Item "trickster's turnout gear" ItemAttributes { ItemName "the scorch shot" "fire rate bonus" .1 "projectile spread angle penalty" 9 "damage penalty" 2 "Projectile speed increased" .15 } ItemAttributes { ItemName "The Flamboyant Flamenco" "attach particle effect" 78 } CharacterAttributes { "force distribute currency on death" 1 "move speed bonus" .5 "override footstep sound set" 6 "airblast vulnerability multiplier" .1 "damage force reduction" .2 "airblast vertical vulnerability multiplier" .5 "health regen" 50 } Attributes IgnoreFlag Action Mobber AddCond { Index 43 } AddCond { Index 5 Duration 2 } } } WaveSpawn { Name w3c WaitForAllDead w3b TotalCurrency 100 TotalCount 50 MaxActive 10 SpawnCount 5 Where spawnbot_red3a Where spawnbot_red3b WaitBeforeStarting 3 WaitBetweenSpawns 3 FirstSpawnOutput { Target red3a_on_logic Action Trigger } LastSpawnOutput { Target red3b_on_logic Action Trigger } TFBot { ClassIcon pan_golden_lite Health 300 Name "Golden Pan Heavy" Class HeavyWeapons Skill Expert WeaponRestrictions MeleeOnly Item "Gold Frying Pan" ItemAttributes { ItemName "Gold Frying Pan" "damage bonus" 4.20 "item style override" 0 "damage bonus" 2 } CharacterAttributes { "force distribute currency on death" 1 } Attributes IgnoreFlag Action Mobber AddCond { Index 43 } AddCond { Index 5 Duration 2 } } } WaveSpawn { Name Support WaitForAllDead w3c TotalCurrency 0 TotalCount 9999 MaxActive 6 SpawnCount 2 Where spawnbot_red3a Where spawnbot_red3b WaitBeforeStarting 3 WaitBetweenSpawns 2 RandomChoice { TFBot { ClassIcon spammer Skill Hard Template T_TFBot_Demoman_Samurai Attributes IgnoreFlag Action Mobber AddCond { Index 43 } AddCond { Index 5 Duration 2 } } TFBot { ClassIcon spammer Template T_TFBot_Heavyweapons_Fist Attributes IgnoreFlag Action Mobber AddCond { Index 43 } AddCond { Index 5 Duration 2 } } TFBot { ClassIcon spammer Template T_TFBot_Scout_Shortstop Attributes IgnoreFlag Action Mobber AddCond { Index 43 } AddCond { Index 5 Duration 2 } } TFBot { ClassIcon spammer Template T_TFBot_Sniper_Huntsman_Spammer Attributes IgnoreFlag Action Mobber AddCond { Index 43 } AddCond { Index 5 Duration 2 } } } } WaveSpawn { Name w3c_barrier_disabled WaitForAllDead w3c FirstSpawnWarningSound "alarm2cut.mp3" FirstSpawnOutput { Target unblockhatch Action Trigger } } WaveSpawn { Name "bomb carrier" TotalCurrency 0 TotalCount 999 MaxActive 1 SpawnCount 1 Where spawnbot WaitBeforeStarting 10 WaitBetweenSpawns 10 Support 1 RandomSpawn 1 TFBot { ClassIcon blu2_lite Skill Expert Template T_TFBot_Sniper_Huntsman_Spammer AlwaysGlow 1 VoiceCommand { Delay 1 Cooldown 6 Repeats 99999 IfHealthBelow 300 Type "MEDIC!" } } } WaveSpawn { Name "redsentrybuster" Where spawnbot_red2a TotalCount 6969 MaxActive 1 SpawnCount 1 WaitBeforeStarting 45 WaitBetweenSpawns 45 Support 1 TFBot { ClassIcon sentry_buster_red Class Demoman Name "Sentry Buster" Skill Expert Health 2500 Item "The Ullapool Caber" WeaponRestrictions MeleeOnly Attributes DisableDodge Attributes IgnoreEnemies Attributes MiniBoss CharacterAttributes { "cancel falling damage" 1 "damage force reduction" 0 "voice pitch scale" 0.75 "crit mod disabled" 0 "ammo regen" 1 "health from packs increased" 0.15 "move speed bonus" 2 "damage force reduction" 0.5 "airblast vulnerability multiplier" 0.5 "override footstep sound set" 7 "cannot be backstabbed" 1 } UseCustomModel models/bots/demo/red_sentry_buster.mdl Action SuicideBomber UseBusterModel 1 CustomWeaponModel { Slot 0 Model "models/empty.mdl" } AddCond { Name TF_COND_REPROGRAMMED } } } WaveSpawn { Name w3a_barrier_disabled1 WaitForAllDead w3a2 FirstSpawnOutput { Target area1barriersdisable Action Trigger } } WaveSpawn { Name w3b_barrier_disabled2 WaitForAllDead w3b FirstSpawnOutput { Target area2barriersdisable Action Trigger } } } Wave { WaitWhenDone 65 Checkpoint Yes StartWaveOutput { Target wave_start_relay Action Trigger } DoneOutput { Target wave_finished_relay Action Trigger } SpawnTemplate "hatchblocker" WaveSpawn { Name w4a TotalCurrency 200 TotalCount 4 MaxActive 2 SpawnCount 2 Where spawnbot_red1c WaitBeforeStarting 5 WaitBetweenSpawns 5 FirstSpawnOutput { Target red1c_on_logic Action Trigger } Squad { TFBot { ClassIcon demoknight_festive Name "Giant Frozen Knight" Template T_TFBot_Giant_DemoMan_PrinceTavish Item "festive eyelander" Item "a rather festive tree" Item "the merc's muffler" ItemAttributes { ItemName "festive eyelander" "freeze backstab victim" 1 } CharacterAttributes { "force distribute currency on death" 1 } Attributes IgnoreFlag Action Mobber AddCond { Index 43 } AddCond { Index 5 Duration 2 } } TFBot { ClassIcon demoknight_golden_lite Name "Giant Golden Knight" Template T_TFBot_Giant_DemoMan_PrinceTavish Item "treasure hat 2" Item "ttg glasses" Item "The Eyelander" ItemAttributes { ItemName "The Eyelander" "item style override" 1 "is australium item" 1 "turn to gold" 1 } CharacterAttributes { "force distribute currency on death" 1 } Attributes IgnoreFlag Action Mobber AddCond { Index 43 } AddCond { Index 5 Duration 2 } } } } WaveSpawn { Name w4a TotalCurrency 48 TotalCount 27 MaxActive 9 SpawnCount 3 Where spawnbot_red1b WaitBeforeStarting 2 WaitBetweenSpawns 4 FirstSpawnOutput { Target red1b_on_logic Action Trigger } Squad { TFBot { ClassIcon soldier_banner_trio Skill Easy Template T_TFBot_Soldier_Extended_Buff_Banner CharacterAttributes { "force distribute currency on death" 1 } Attributes IgnoreFlag Action Mobber AddCond { Index 43 } AddCond { Index 5 Duration 2 } } TFBot { ClassIcon soldier_banner_trio Skill Easy Template T_TFBot_Soldier_Extended_Concheror CharacterAttributes { "force distribute currency on death" 1 } Attributes IgnoreFlag Action Mobber AddCond { Index 43 } AddCond { Index 5 Duration 2 } } TFBot { ClassIcon soldier_banner_trio Skill Easy Template T_TFBot_Soldier_Extended_Battalion CharacterAttributes { "force distribute currency on death" 1 } Attributes IgnoreFlag Action Mobber AddCond { Index 43 } AddCond { Index 5 Duration 2 } } } } WaveSpawn { Name w2b_barrier_disabled1 WaitForAllDead w2b FirstSpawnOutput { Target red1b_off_logic Action Trigger } LastSpawnOutput { Target red1c_off_logic Action Trigger } } WaveSpawn { Name w4a TotalCurrency 52 TotalCount 16 MaxActive 4 SpawnCount 2 Where spawnbot_red1b WaitBeforeStarting 3 WaitBetweenSpawns 2 TFBot { ClassIcon heavy_shotgun_red Template T_TFBot_Heavyweapons_Shotgun CharacterAttributes { "force distribute currency on death" 1 } Attributes IgnoreFlag Action Mobber AddCond { Index 43 } AddCond { Index 5 Duration 2 } } } WaveSpawn { Name w4b WaitForAllDead w4a TotalCurrency 200 TotalCount 6 MaxActive 3 SpawnCount 3 Where spawnbot_red2b WaitBeforeStarting 5 WaitBetweenSpawns 5 FirstSpawnOutput { Target red2b_on_logic Action Trigger } DoneOutput { Target red2b_off_logic Action Trigger } Squad { TFBot { ClassIcon engineer_pomson Health 3300 Name "Giant Golden Laser Engineer" Class Engineer Skill Expert WeaponRestrictions PrimaryOnly Action FetchFlag BehaviorModifiers Push Attributes "AlwaysCrit" Attributes "MiniBoss" Item "the pomson 6000" Item "texas ten gallon" Item "the texas half-pants" ItemAttributes { ItemName "The Pomson 6000" "set item tint RGB" 15185211 "faster reload rate" 0.1 "turn to gold" 1 "fire rate bonus" 0.03 "ragdolls plasma effect" 1 "move speed penalty" 0.3 } CharacterAttributes { "cancel falling damage" 1 "voice pitch scale" 0 "override footstep sound set" 7 "airblast vulnerability multiplier" 0.0001 "force distribute currency on death" 1 } Attributes IgnoreFlag Action Mobber AddCond { Index 43 } AddCond { Index 5 Duration 2 } } TFBot { ClassIcon pyro_scorch Template T_TFBot_ScorchShot CharacterAttributes { "cancel falling damage" 1 "force distribute currency on death" 1 } Attributes IgnoreFlag Action Mobber AddCond { Index 43 } AddCond { Index 5 Duration 2 } } TFBot { ClassIcon pyro_scorch Template T_TFBot_ScorchShot CharacterAttributes { "cancel falling damage" 1 "force distribute currency on death" 1 } Attributes IgnoreFlag Action Mobber AddCond { Index 43 } AddCond { Index 5 Duration 2 } } } } WaveSpawn { Name w4b WaitForAllDead w4a TotalCurrency 100 TotalCount 35 MaxActive 7 SpawnCount 7 Where spawnbot_red2a WaitBeforeStarting 5 WaitBetweenSpawns 3 FirstSpawnOutput { Target red2a_on_logic Action Trigger } DoneOutput { Target red2a_off_logic Action Trigger } TFBot { Name "Bonk Scout" Skill Easy Template T_TFBot_Scout_Bonk Attributes "AlwaysCrit" CharacterAttributes { "cancel falling damage" 1 "force distribute currency on death" 1 } Attributes IgnoreFlag Action Mobber AddCond { Index 43 } AddCond { Index 5 Duration 2 } } } WaveSpawn { Name w4b2 WaitForAllDead w4a TotalCurrency 150 TotalCount 8 MaxActive 2 SpawnCount 2 Where spawnbot_red3a WaitBeforeStarting 15 WaitBetweenSpawns 10 FirstSpawnOutput { Target red3a_on_logic Action Trigger } TFBot { ClassIcon pyro_reflect_daan Health 750 Name "Airblast Pyro" Scale 1.35 Class Pyro Item "The Degreaser" Item "Traffic Cone" WeaponRestrictions PrimaryOnly ItemAttributes { ItemName "The Degreaser" "damage bonus" 0.05 "fire rate bonus" 1 "airblast pushback scale" 5 } CharacterAttributes { "force distribute currency on death" 1 } Attributes IgnoreFlag Action Mobber AddCond { Index 43 } AddCond { Index 5 Duration 2 } } } WaveSpawn { Name w4c TotalCurrency 0 TotalCount 1 MaxActive 1 SpawnCount 1 WaitBeforeStarting 3 WaitForAllSpawned w4b LastSpawnOutput { Target red_blimp_relay Action Trigger } Tank { Health 30000 Name "blimpbossred" Speed 90 DisableSmokestack 1 Classicon blimp2_red_lite Skin 6 MaxTurnRate 50 Model { Default "models/bots/boss_bot/boss_blimp.mdl" Damage1 "models/bots/boss_bot/boss_blimp_damage1.mdl" Damage2 "models/bots/boss_bot/boss_blimp_damage2.mdl" Damage3 "models/bots/boss_bot/boss_blimp_damage3.mdl" } ReplaceModelCollisions 1 Gravity 0 DisableTracks 1 DisableChildModels 1 EngineLoopSound "npc\combine_gunship\dropship_engine_distant_loop1.wav" PingSound "npc\combine_gunship\ping_search.wav" StartingPathTrackNode "blimp_red_left_1" OnKilledOutput { Target boss_dead_relay Action Trigger } OnBombDroppedOutput { Target redwin_relay Action Trigger } } } WaveSpawn { Name w4c TotalCurrency 0 TotalCount 1 MaxActive 1 SpawnCount 1 WaitBeforeStarting 8 WaitForAllSpawned w4b LastSpawnOutput { Target red_blimp_relay Action Trigger } Tank { Health 25000 Name "blimpbossred" Speed 85 Scale 1.5 Classicon blimp_red_lite Skin 6 MaxTurnRate 50 Model { Default "models\bots\boss_bot\boss_blimpred.mdl" Damage1 "models\bots\boss_bot\boss_blimpred_damage1.mdl" Damage2 "models\bots\boss_bot\boss_blimpred_damage2.mdl" Damage3 "models\bots\boss_bot\boss_blimpred_damage3.mdl" } Gravity 0 DisableTracks 1 EngineLoopSound "npc\combine_gunship\dropship_engine_distant_loop1.wav" PingSound "npc\combine_gunship\ping_search.wav" StartingPathTrackNode "blimp_red_right_1" OnKilledOutput { Target boss_dead_relay Action Trigger } OnBombDroppedOutput { Target redwin_relay Action Trigger } } } WaveSpawn { Name support1 WaitForAllDead w4b TotalCurrency 0 TotalCount 9999 MaxActive 1 SpawnCount 1 Where spawnbot_red3a WaitBeforeStarting 5 WaitBetweenSpawns 5 RandomChoice { TFBot { ClassIcon Spammer Name "Giant Bat Scout" WeaponRestrictions MeleeOnly Template T_TFBot_Giant_Scout Attributes "AlwaysCrit" Attributes IgnoreFlag Action Mobber AddCond { Index 43 } AddCond { Index 5 Duration 2 } } TFBot { ClassIcon Spammer Template T_TFBot_Giant_Soldier_Spammer Attributes IgnoreFlag Action Mobber AddCond { Index 43 } AddCond { Index 5 Duration 2 } } TFBot { ClassIcon Spammer Health 3300 Name "Giant Bowman" Scale 1.75 Class Sniper Skill Expert Attributes "MiniBoss" Item "the huntsman" UseCustomModel "models/bots/sniper_boss/bot_sniper_boss.mdl" ItemAttributes { ItemName "The Huntsman" "damage bonus" 0.5 } CharacterAttributes { "damage force reduction" 0.3 "airblast vulnerability multiplier" 0.3 "override footstep sound set" 7 "move speed bonus" 0.4 } Attributes IgnoreFlag Action Mobber AddCond { Index 43 } AddCond { Index 5 Duration 2 } } } } WaveSpawn { Name support2 WaitForAllDead w4b TotalCurrency 0 TotalCount 9999 MaxActive 10 SpawnCount 2 Where spawnbot_red3b WaitBeforeStarting 3 WaitBetweenSpawns 2 FirstSpawnOutput { Target red3b_on_logic Action Trigger } RandomChoice { TFBot { ClassIcon spammer Health 125 Name "Diamond Back Spy" Class Spy Skill Hard WeaponRestrictions PrimaryOnly Item "the diamondback" Item "fancy fedora" Action FetchFlag BehaviorModifiers Push CharacterAttributes { "cannot disguise" 1 } Attributes IgnoreFlag Action Mobber AddCond { Index 43 } AddCond { Index 5 Duration 2 } } TFBot { ClassIcon spammer Name "Homing Soldier" Class Soldier Skill Normal WeaponRestrictions PrimaryOnly Attributes HoldFireUntilFullReload Item "point and shoot" RocketCustomParticle eyeboss_projectile HomingRockets { IgnoreDisguisedSpies 1 IgnoreStealthedSpies 1 RocketSpeed 0.5 TurnPower 200 MaxAimError 100 } AddCond { Index 36 Delay 1 } Attributes IgnoreFlag Action Mobber AddCond { Index 43 } AddCond { Index 5 Duration 2 } } TFBot { ClassIcon spammer Health 175 Name "Back Burner Pyro" Class Pyro Skill Normal Item "the backburner" Item "pyro helm" Attributes IgnoreFlag Action Mobber AddCond { Index 43 } AddCond { Index 5 Duration 2 } } } } WaveSpawn { Name "Bomb Carrier" TotalCurrency 0 TotalCount 420 MaxActive 1 SpawnCount 1 Where spawnbot WaitBeforeStarting 10 WaitBetweenSpawns 10 Support 1 TFBot { ClassIcon blu2_lite Health 1200 Name "Armored Major Leage Scout" Scale 1.4 Class Scout Skill Expert WeaponRestrictions MeleeOnly Item "the sandman" Item "batter's helmet" AlwaysGlow 1 VoiceCommand { Delay 1 Cooldown 6 Repeats 99999 IfHealthBelow 400 Type "MEDIC!" } } } WaveSpawn { Name w4a_barrier_disabled1 WaitForAllDead w4a FirstSpawnOutput { Target area1barriersdisable Action Trigger } } WaveSpawn { Name w4b_barrier_disabled2 WaitForAllDead w4b FirstSpawnOutput { Target area2barriersdisable Action Trigger } } } WaveSpawn { Name w4c_barrier_disabled WaitForAllDead w4c FirstSpawnWarningSound "alarm2cut.mp3" FirstSpawnOutput { Target unblockhatch Action Trigger } } Wave { InitWaveOutput { Target boss_deploy_relay Action Trigger } } //bug workaround }