#base robot_standard.pop #base robot_giant.pop #base robot_stardust.pop #base reverse_timer.pop #base robot_sequoia_reverse.pop #base robot_damno.pop //Made by StardustSpy and DaMno //Logic, Balancing and wave 1,2 by StardustSpy //Upgrades and rest of the waves by DaMno //Huge thanks to MIKObscura, Yuugi and Hell-met for help with code WaveSchedule { StartingCurrency 1200 CanBotsAttackWhileInSpawnRoom yes RespawnWaveTime 3 NoRomevisionCosmetics 1 // FixedRespawnWaveTime 1 // AddSentryBusterWhenDamageDealtExceeds 3000 // AddSentryBusterWhenKillCountExceeds 15 // Advanced 1 // EventPopfile Halloween // Essential stuff ReverseWinConditions 1 BluHumanTeleportOnSpawn 1 BluHumanBotTeleporter 0 AllowJoinTeamBlueMax 6 AllowJoinTeamBlue 1 HumansMustJoinTeam Blue SetCreditTeam 3 SniperAllowHeadshots 1 FixedRespawnWaveTimeBlue 1 RespawnWaveTimeBlue 1 SendBotsToSpectatorImmediately 1 //keeps the populator less clogged, bot projectiles vanish on death + causes weird killcams NoMvMDeathTune 1 NoRomevisionCosmetics 1 // fuck romevision cosmetics, many of em look ugly WaveStartCountdown 5 RobotLimit 26 AllowMultipleSappers 1 MaxSpectators 10 MedigunShieldDamage 1 NoBluHumanFootsteps 1 RedPlayersAreRobots 1 //MedievalMode 1 BotsRandomCrit 1 // allows BLU team to random crit. BluHumanInfiniteAmmo 0 RemoveBluVelocityLimit 1 BluPlayersAreRobots 0 SniperHideLasers 1 FixHuntsmanDamageBonus 1 FlagCarrierMovementPenalty 0.9 // removes flag carrier penalty BluHumanFlagCapture 0 // people having to wait for bots to cap generally isnt very fun. BluHumanFlagPickup 1 // see above //Precache Models/Sounds 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/tankred_track_l.mdl" PrecacheModel "models/bots/boss_bot/tankred_track_r.mdl" PrecacheModel "models/bots/boss_bot/bombblue_mechanism.mdl" PrecacheModel "models\props_mvm\mvm_upgrade_blu.mdl" PrecacheModel "models\bots\boss_bot\boss_tankred.mdl" PrecacheModel "models\props_mvm\robot_spawnpoint.mdl" DisallowUpgrade "critboost" DisallowUpgrade "ubercharge" DisallowUpgrade "canteen specialist" // TL Reworked Upgrades 1.0 DisallowUpgrade //Advanced syntax { Upgrade "damage bonus" // Damage Bonus TL MaxLevel 2 // Maximum allowed level ItemName "The Team Leader" // Apply upgrade restrictions only to those items if specified } DisallowUpgrade { Upgrade "faster reload rate" // Reload Speed TL MaxLevel 1 ItemName "The Team Leader" } DisallowUpgrade { Upgrade "rocket specialist" // Rocket Specialist TL MaxLevel -1 ItemName "The Team Leader" } DisallowUpgrade { Upgrade "heal on kill" // HoK TL MaxLevel -1 ItemName "The Team Leader" } ClassLimit { Scout 2 Soldier 2 Pyro 2 Demoman 2 HeavyWeapons 2 Engineer 1 Medic 1 Sniper 1 Spy 1 } PlayerAttributes { Engineer { "hidden maxhealth non buffed" 150 } } //Tank paths are a set of coordinates that a tank must reach before getting to the hatch //The first node will be where the tank will spawn, make sure players cant stand where a tank spawns before said tank has spawned //The last node will always be the node where the tank starts to deploy //Due to Sequoia's weird tank capping gate layout this was the best path i could think of, which might be a bit dodgy but should work ExtraTankPath { Name "tank_path_last" Node "-356.1 -515.8 -303.0" Node "-332.8 -1076.0 -303.0 " Node "-1596.4 -1070.7 -33.1" Node "-1596.4 -845 5.0" Node "-1930 -845 -50.0" Node "-1930 -2240 -200" Node "-4030 -2240 -39.0" Node "-4030 -1070 -111.0" Node "-5000 -1073 -40.2" Node "-5770 -2110 -60.5" Node "-5770 -2600 -30" } //TO DO: ///////////////////////////////////////CUSTOM UPGRADES ////////////////////////////////////////////////////// ExtendedUpgrades { AmmoRegeneration { Name "Ammo Regen" Attribute "ammo regen" Cap 0.15 Increment 0.15 Cost 250 Description "Player regenerates 15% of total ammunition per point" Playerupgrade 1 } MetalRegeneration { Name "Metal Regen" Attribute "metal regen" Cap 150 Increment 150 Cost 200 Description "Player regenerates 150 metal units per point" Allowplayerclass Engineer Playerupgrade 1 } ConstructionRateincreased { Name "Construction Rate Increased" Attribute "Construction rate increased" Cap 2 Increment 1 Cost 200 Description "Construction rate increased by 100%" Allowplayerclass Engineer AllowedWeapons { Slot "Melee" } DisallowedWeapons { Slot "Primary" Slot "Secondary" } } } ///////////////////////////////////////BALANCING //////////////////////////////////////////////// PointTemplates { stripmelee // strips melee slot out of custom weapon { OnSpawnOutput { Target !activator Action $WeaponStripSlot Param 2 } } } PlayerItemEquipSpawnTemplate { Name "stripmelee" ItemName "The Team Leader" } ItemAttributes { ItemName "The Battalion's Backup" "hidden maxhealth non buffed" -20 } ItemAttributes { ClassName "tf_weapon_rocketlauncher_fireball" "airblast_destroy_projectile" 1 } ItemAttributes { ClassName "tf_weapon_flamethrower" "airblast_destroy_projectile" 1 } CustomWeapon { "The Team Leader" { OriginalItemName "Upgradeable TF_WEAPON_ROCKETLAUNCHER" "model scale" 1.3 "increase buff duration" 101 "dmg penalty vs buildings" 0.5 "move speed bonus" 0.8 "Projectile speed increased" 0.75 "increased jump height" 0.75 //"cannot be upgraded" 1 //"damage bonus" 1.5 //"faster reload rate" 0.75 //"clip size bonus" 1.5 //"fire rate bonus" 0.7 //"hidden primary max ammo bonus" 2.5 "hidden maxhealth non buffed" 450 "no resupply" 1 "mod rage on hit penalty" 1.75 "switch from wep deploy time decreased" 2 "mult dmg vs tanks" 2.25 //"cannot pick up intelligence" 1 "health from packs increased" 2.5 "paintkit_proto_def_index" 210 "healing received bonus" 0.2 "mod weapon blocks healing" 1 } } ExtraLoadoutItems { Soldier // Player Class { Primary "The Team Leader" } } PlayerAttributes { Scout { "cannot pick up intelligence" 1 } Soldier { "cannot pick up intelligence" 1 } Pyro { "cannot pick up intelligence" 1 } Demoman { "cannot pick up intelligence" 1 } HeavyWeapons { "cannot pick up intelligence" 1 } Engineer { "cannot pick up intelligence" 1 } Medic { "cannot pick up intelligence" 1 } Spy { "cannot pick up intelligence" 1 } Sniper { "cannot pick up intelligence" 1 } } //spec_goto -312.8 -140.5 -22.7 60.2 4.0 ///////////////////////////////////////POINT TEMPLATES ////////////////////////////////////////////////////// PointTemplates { ammo_pack_one { NoFixup 1 item_ammopack_full { "targetname" "ammo_pack1" "angles" "0 0 0" "origin" "-6365 -2375 10" } item_ammopack_small { "targetname" "ammo_pack2" "angles" "0 0 0" "origin" "-5945 -1365 -25" } item_ammopack_small { "targetname" "hp_pack2" "angles" "0 0 0" "origin" "-5920 -1550 -40" } item_healthkit_full { "targetname" "hp_pack1" "angles" "0 0 0" "origin" "-6400 -2340 10" } } Tank_Win_Red { NoFixup 1 logic_relay //trigger this to lose { "origin" "0 0 0" "targetname" "redwin_relay" "OnTrigger" "bots_win_red,RoundWin,,0,-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" } } stage_one_barrier // first area barrier { NoFixup 1 func_forcefield { "targetname" "barrier_stage_one" "origin" "-4680 -930 -70" "TeamNum" "2" // blu "renderamt" "255" "rendercolor" "255 255 255" "renderfx" "0" "rendermode" "0" "disablereceiveshadows" "0" "mins" "-1 -800 -1500" "maxs" "1 800 1500" } func_nobuild { "targetname" "barrier_stage_one_no_build" "origin" "-4650 -930 -70" "TeamNum" "3" // blu "renderamt" "255" "rendercolor" "255 255 255" "renderfx" "0" "rendermode" "0" "disablereceiveshadows" "0" "mins" "-60 -800 -1500" "maxs" "60 800 1500" } prop_dynamic { "angles" "0 90 0" "disablereceiveshadows" "1" "disableshadows" "1" "model" "models/props_mvm/reversemvm_redwall_256x288.mdl" "modelscale" "2" "targetname" "barrier_stage_one_redwall" "origin" "-4670 -1050 -155" } training_annotation { "display_text" "You can now cap the gate!" "lifetime" "3" "origin" "-4500 -1090 0" "targetname" "annotation_stage_one" } logic_relay { "targetname" "stage_one_barrier_disable" "OnTrigger" "barrier_stage_one,Disable,,0.01,-1" "OnTrigger" "barrier_stage_one_no_build,Disable,,0.01,-1" "OnTrigger" "barrier_stage_one_redwall,Disable,,0,-1" "OnTrigger" "annotation_stage_one,Show,,0.01,-1" } } stage_two_barrier // stage two barrier { func_forcefield { "disablereceiveshadows" "0" "origin" "-2678 -1752.41 112" "renderamt" "255" "rendercolor" "255 255 255" "renderfx" "0" "rendermode" "0" "StartDisabled" "0" "targetname" "cover_doorway" "TeamNum" "2" "mins" "-35 -1000 -1000" "maxs" "35 1000 1000" } func_forcefield { "disablereceiveshadows" "0" "origin" "-3090 -4000 -100" "renderamt" "255" "rendercolor" "255 255 255" "renderfx" "0" "rendermode" "0" "StartDisabled" "0" "targetname" "cover_doorway2" "TeamNum" "2" "mins" "-5 -1000 -1200" "maxs" "35 1000 1200" } func_nobuild { "disablereceiveshadows" "0" "origin" "-2650 -1752.41 112" "renderamt" "255" "rendercolor" "255 255 255" "renderfx" "0" "rendermode" "0" "StartDisabled" "0" "targetname" "cover_doorway_no_build" "TeamNum" "3" "mins" "-75 -1000 -1000" "maxs" "75 1000 1000" } func_nobuild { "disablereceiveshadows" "0" "origin" "-3070 -4000 -100" "renderamt" "255" "rendercolor" "255 255 255" "renderfx" "0" "rendermode" "0" "StartDisabled" "0" "targetname" "cover_doorway2_no_build" "TeamNum" "3" "mins" "-45 -1000 -1200" "maxs" "75 1000 1200" } prop_dynamic { "angles" "0 90 0" "disablereceiveshadows" "1" "disableshadows" "1" "model" "models/props_mvm/reversemvm_redwall_256x288.mdl" "targetname" "midbarrier2" "modelscale" "3.2" "origin" "-3090 -3720 -100" } prop_dynamic { "angles" "0 270 0" "disablereceiveshadows" "1" "disableshadows" "1" "model" "models/props_mvm/reversemvm_redwall_256x288.mdl" "targetname" "midbarrier2" "modelscale" "3.2" "origin" "-3060 -3720 -100" } prop_dynamic { "angles" "0 90 0" "disablereceiveshadows" "1" "disableshadows" "1" "model" "models/props_mvm/reversemvm_redwall_256x288.mdl" "targetname" "midbarrier1" "modelscale" "1.5" "origin" "-2708 -1759 1" } prop_dynamic { "angles" "0 270 0" "disablereceiveshadows" "1" "disableshadows" "1" "model" "models/props_mvm/reversemvm_redwall_256x288.mdl" "targetname" "midbarrier1" "modelscale" "1.5" "origin" "-2637 -1759 1" } logic_auto { "OnMapSpawn" "pop_interface,Kill,,0,-1" "OnMapSpawn" "func_respawnroom*,Kill,,0,-1" "OnMapSpawn" "wave_start*,AddOutput,OnTrigger func_flagdetectionzone:Disable:0:-1,0,-1" //disables the hatch alarm on wave start "OnMapSpawn" "gate1_relay,RemoveOutput, pop_interface:PauseBotSpawning:0:-1,0,-1" "OnMapSpawn" "gate1_relay,AddOutput,OnTrigger cover_doorway2:Disable:0:-1" "OnMapSpawn" "gate1_relay,AddOutput,OnTrigger cover_doorway:Disable:0:-1" "OnMapSpawn" "gate1_relay,AddOutput,OnTrigger cover_doorway2_no_build:Disable:0:-1" "OnMapSpawn" "gate1_relay,AddOutput,OnTrigger cover_doorway_no_build:Disable:0:-1" "OnMapSpawn" "gate1_relay,AddOutput,OnTrigger midbarrier1:Disable:0:-1" "OnMapSpawn" "gate1_relay,AddOutput,OnTrigger midbarrier2:Disable:0:-1" //"OnMapSpawn" "gate1_relay,AddOutput,OnTrigger midbarrierhatch:Disable:0:-1" } } stage_three_barrier // stage three barrier { NoFixup 1 prop_dynamic { "angles" "0 90 0" "disablereceiveshadows" "1" "disableshadows" "1" "model" "models/props_mvm/reversemvm_redwall_256x288.mdl" "targetname" "stage_three_barrier_redwall" "modelscale" "3.2" "origin" "-1420 -820 -90" } prop_dynamic { "angles" "0 90 0" "disablereceiveshadows" "1" "disableshadows" "1" "model" "models/props_mvm/reversemvm_redwall_256x288.mdl" "targetname" "stage_three_barrier_redwall" "modelscale" "1.8" "origin" "-1111.7 -2000 -50" } func_forcefield { "targetname" "stage_three_barrier_forcefield" "origin" "-1420 -400 -90" "TeamNum" "2" "renderfx" "0" "rendermode" "0" "disablereceiveshadows" "0" "mins" "-1 -1000 -1500" "maxs" "1 1000 1500" } func_forcefield { "targetname" "stage_three_barrier_forcefield" "origin" "-1111.7 -1960 -50" "TeamNum" "2" "renderfx" "0" "rendermode" "0" "disablereceiveshadows" "0" "mins" "-1 -250 -500" "maxs" "1 250 500" } func_nobuild { "targetname" "stage_three_barrier_no_build" "origin" "-1400 -400 -90" "TeamNum" "3" "renderfx" "0" "rendermode" "0" "disablereceiveshadows" "0" "mins" "-60 -1000 -1500" "maxs" "60 1000 1500" } func_nobuild { "targetname" "stage_three_barrier_no_build2" "origin" "-1100 -1960 -50" "TeamNum" "3" "renderfx" "0" "rendermode" "0" "disablereceiveshadows" "0" "mins" "-50 -250 -500" "maxs" "50 250 500" } training_annotation { "display_text" "The hatch area is now opened!" "lifetime" "3" "origin" "-950 -1070 -50" "targetname" "annotation_stage_three" } logic_relay { "targetname" "stage_three_barrier_disable" "OnTrigger" "stage_three_barrier_forcefield,Disable,,0.01,-1" "OnTrigger" "stage_three_barrier_no_build,Disable,,0.01,-1" "OnTrigger" "stage_three_barrier_no_build2,Disable,,0.01,-1" "OnTrigger" "stage_three_barrier_redwall,Disable,,0,-1" "OnTrigger" "annotation_stage_three,Show,,0.01,-1" } } stage_four_barrier { NoFixup 1 func_forcefield { "targetname" "barrier_hatch" "origin" "-338 -145 -351" "TeamNum" "2" // blu "renderamt" "255" "rendercolor" "255 255 255" "renderfx" "0" "rendermode" "0" "disablereceiveshadows" "0" "mins" "-165 -227 -1500" "maxs" "165 227 1500" } func_nobuild { "targetname" "hatch_no_build" "origin" "-338 -145 -351" "TeamNum" "3" // blu "renderamt" "255" "rendercolor" "255 255 255" "renderfx" "0" "rendermode" "0" "disablereceiveshadows" "0" "mins" "-180 -230 -1500" "maxs" "180 230 1500" } prop_dynamic { "angles" "0 0 0" "model" "models\props_mvm\hatch_shield.mdl" "modelscale" "1.2" "skin" "0" "rendermode" "1" "solid" "6" // "rendercolor" "255 0 0" "spawnflags" "0" "targetname" "skull" "origin" "-338 -145 -100" } training_annotation { "display_text" "The Bomb can now be deployed!" "lifetime" "5" "origin" "-312.8 -140.5 -22.7" "targetname" "annotation_deploy" } logic_relay { "targetname" "hatch_reveal_relay" "OnTrigger" "barrier_hatch,Disable,,0.01,-1" "OnTrigger" "skull,Disable,,0,-1" "OnTrigger" "annotation_deploy,Show,,0.01,-1" } } blu_spawn_fences { NoFixup 1 prop_dynamic { "angles" "0 270 0" "model" "models/props_mining/fence001_reference.mdl" "modelscale" "2.4" "skin" "0" "solid" "2" "spawnflags" "0" "targetname" "midbarrierhatch" "origin" "-334.5 -320 -390" } prop_dynamic { "angles" "0 180 0" "model" "models/props_mining/fence001_reference.mdl" "skin" "0" "solid" "2" "spawnflags" "0" "targetname" "midbarrierhatch" "modelscale" "2.7" "origin" "-480 -130 -300" } prop_dynamic { "angles" "0 180 0" "model" "models/props_mining/fence001_reference.mdl" "skin" "0" "solid" "2" "spawnflags" "0" "modelscale" "2.7" "targetname" "midbarrierhatch" "origin" "-190 -130 -300" } prop_dynamic { "angles" "-10 0 0" "disablereceiveshadows" "1" "disableshadows" "1" "model" "models/props_doomsday/dd_woodfence_short_128.mdl" "targetname" "spawnbarrier1" "modelscale" "1.5" "origin" "-7220 -1975 65" } prop_dynamic { "angles" "-5 0 0" "disablereceiveshadows" "1" "disableshadows" "1" "model" "models/props_doomsday/dd_woodfence_short_128.mdl" "targetname" "spawnbarrier2" "modelscale" "3" "origin" "-6915 -1575 250" } prop_dynamic { "angles" "-5 0 5" "disablereceiveshadows" "1" "disableshadows" "1" "model" "models/props_doomsday/dd_woodfence_short_128.mdl" "targetname" "spawnbarrier2" "modelscale" "1" "origin" "-6865 -2105 45" } prop_dynamic { "angles" "-5 0 5" "disablereceiveshadows" "1" "disableshadows" "1" "model" "models/props_doomsday/dd_woodfence_short_128.mdl" "targetname" "spawnbarrier2" "modelscale" "1" "origin" "-6876 -2117 178" } prop_dynamic { "angles" "-5 37 0" "disablereceiveshadows" "1" "disableshadows" "1" "model" "models/props_doomsday/dd_woodfence_short_128.mdl" "targetname" "spawnbarrier2" "modelscale" "4.3" "origin" "-7100 -2210 400" } prop_dynamic { "angles" "180 90 289" "model" "models/props_doomsday/dd_woodfence_short_128.mdl" "modelscale" "3.5" "disablereceiveshadows" "1" "disableshadows" "1" "skin" "0" "solid" "2" "spawnflags" "0" "origin" "-7200 -1950 -170" } func_forcefield { "targetname" "upgrade_station_barrier" "origin" "-7330 -1800 65" "TeamNum" "2" "renderamt" "255" "rendercolor" "255 255 255" "renderfx" "0" "rendermode" "0" "disablereceiveshadows" "0" "mins" "-176 -185 -1500" "maxs" "176 185 1500" } func_forcefield { "targetname" "upgrade_station_barrier" "origin" "-6170 -2905 120" "TeamNum" "2" "renderamt" "255" "rendercolor" "255 255 255" "renderfx" "0" "rendermode" "0" "disablereceiveshadows" "0" "mins" "-30 -120 -1500" "maxs" "30 120 1500" } func_forcefield { "targetname" "tank_spawn_barrier" "origin" "-5640 -2553 -50" "TeamNum" "2" "renderamt" "255" "rendercolor" "255 255 255" "renderfx" "0" "rendermode" "0" "disablereceiveshadows" "0" "mins" "-300 -1 -1500" "maxs" "300 1 1500" } } hatch_barrier_permanent { func_forcefield { "origin" "-334.5 -360 -234" "renderamt" "255" "rendercolor" "255 255 255" "renderfx" "0" "rendermode" "0" "StartDisabled" "0" "targetname" "hatch_barrier_permanent" "TeamNum" "2" "mins" "-147 -2 -137" "maxs" "147 2 137" } func_forcefield { "renderamt" "255" "rendercolor" "255 255 255" "renderfx" "0" "rendermode" "0" "StartDisabled" "0" "targetname" "hatch_barrier_permanent2" "TeamNum" "2" "origin" "-346.5 -150 -234" "mins" "-152 -136 -137" "maxs" "152 136 137" } } Blu_Spawn_Barrier { func_forcefield { "origin" "-6761 -1864 569" "targetname" "blu_spawn_barrier_1" "TeamNum" "2" "mins" "-32 -865 -581" "maxs" "32 865 581" } func_forcefield { "disablereceiveshadows" "0" "origin" "-6252 -2571 302" "StartDisabled" "0" "targetname" "blu_spawn_barrier_2" "TeamNum" "2" "mins" "-265 -70 -238" "maxs" "265 70 238" } prop_dynamic { "angles" "0 0 0" "model" "models/props_c17/fence01a.mdl" "modelscale" "4" "disablereceiveshadows" "1" "disableshadows" "1" "targetname" "blu_spawn_barrier_2" "skin" "0" "solid" "2" "spawnflags" "0" "origin" "-6790 -1835 30" } prop_dynamic { "angles" "0 90 0" "model" "models/props_c17/fence02b.mdl" "modelscale" "2.5" "disablereceiveshadows" "1" "disableshadows" "1" "targetname" "blu_spawn_barrier_2" "skin" "0" "solid" "2" "spawnflags" "0" "origin" "-6300 -2650 160" } //func_nobuild //{ //"origin" "-6761 -1864 569" //"targetname" "blu_spawn_nobuild_1" //"TeamNum" "2" //"mins" "-32 -865 -581" //"maxs" "32 865 581" //} func_forcefield { "origin" "-6669 -1332.5 545.33" "StartDisabled" "0" "targetname" "blu_force" "TeamNum" "2" "mins" "-20 -230 -589" "maxs" "20 230 589" } func_forcefield { "origin" "-6650.74 -2320.75 586.66" "StartDisabled" "0" "targetname" "blu_force" "TeamNum" "2" "mins" "-20 -230 -589" "maxs" "20 230 589" } // func_nobuild // { // "disablereceiveshadows" "0" // "origin" "-6252 -2571 342" // "StartDisabled" "0" // "targetname" "blu_spawn_nobuild_2" // "TeamNum" "2" // blu // "mins" "-265 -70 -195" // "maxs" "265 70 195" // } //logic_relay //{ // "targetname" "blu_forcefield_relay" // Using I/O (FirstSpawnOutput, DoneOutput, ETC) we can trigger this to release blu players from their spawn. We need this so blu players dont just run to the end, or for BLU engineers to setup in strong places. // "OnTrigger" "blu_spawn_barrier_1,Disable,,0,-1" // "OnTrigger" "blu_spawn_barrier_2,Disable,,0,-1" // "OnTrigger" "blu_spawn_nobuild_1,Disable,,0,-1" // "OnTrigger" "blu_spawn_nobuild_2,Disable,,0,-1" //} trigger_add_tf_player_condition { "targetname" "booster1" "condition" "32" "duration" "-1" "filtername" "filter_blueteam" "startdisabled" "0" "mins" "-1068 -1188 -444" "maxs" "1068 1188 444" "origin" "-7724 -1568 -156" "spawnflags" "1" } logic_auto { "target" "blu_spawn_barrier_1" "OnMapSpawn" "pop_interface,Kill,,0,-1" "OnMapSpawn" "gate1_relay,RemoveOutput,pop_interface:PauseBotSpawning:0:-1,0,-1" "OnMapSpawn" "wave_start_relay,AddOutput,OnTrigger blu_spawn_barrier_1:Disable:0:-1" "OnMapSpawn" "wave_finished_relay,AddOutput,OnTrigger blu_spawn_barrier_1:Enable:0:-1" "OnMapSpawn" "filter_blue_bombhat,Kill,,0,-1" //lets players cap "OnMapSpawn" "bot_stun_reprogram,Kill,,0,-1" // blu players arent stunned when capping gate "OnMapSpawn" "bot_buff_condition,Kill,,0,-1" "OnMapSpawn" "unpausebotspawning,Kill,0,-1" } logic_auto { "target" "blu_spawn_barrier_2" "OnMapSpawn" "wave_start_relay,AddOutput,OnTrigger blu_spawn_barrier_2:Disable:0:-1" "OnMapSpawn" "wave_finished_relay,AddOutput,OnTrigger blu_spawn_barrier_2:Enable:0:-1" } logic_auto { "target" "blu_spawn_nobuild_1" "OnMapSpawn" "wave_start_relay,AddOutput,OnTrigger blu_spawn_nobuild_1:Disable:0:-1" "OnMapSpawn" "wave_finished_relay,AddOutput,OnTrigger blu_spawn_nobuild_1:Enable:0:-1" } logic_auto { "target" "blu_spawn_nobuild_2" "OnMapSpawn" "wave_start_relay,AddOutput,OnTrigger blu_spawn_nobuild_2:Disable:0:-1" "OnMapSpawn" "wave_finished_relay,AddOutput,OnTrigger blu_spawn_nobuild_2:Enable:0:-1" } } UpgradeStations { prop_dynamic { "angles" "0 179 0" "model" "models\props_mvm\mvm_upgrade_blu.mdl" "modelscale" "1.0" "skin" "0" "solid" "2" "spawnflags" "0" "targetname" "blu_upgrade_altspawn" "origin" "-6152 -2887 98" } prop_dynamic { "angles" "-10 0 2" "model" "models\props_mvm\mvm_upgrade_blu.mdl" "modelscale" "1.0" "solid" "2" "spawnflags" "0" "targetname" "blu_upgrade_mainspawn" "origin" "-7250 -1812 -120" } func_upgradestation { "StartDisabled" "0" "targetname" "blu_upgrade_altspawn_func" "origin" "-6152 -2887 98" "mins" "-89 -139 -92" "maxs" "89 139 92" "parentname" "blu_upgrade_altspawn" } func_upgradestation { "StartDisabled" "0" "targetname" "blu_upgrade_mainspawn_func" "origin" "-7260 -1812 -110" "mins" "-120 -155 -92" "maxs" "120 155 100" "parentname" "blu_upgrade_mainspawn" } } equip_heavys_rage { // Needs to be parented to a func_brush so shield follows Heavy's first person view, instead of Heavy's model angles OnSpawnOutput { Target "medishield_brush" Action "SetParent" Param "!activator" Delay 1 } func_brush { "targetname" "medishield_brush" "mins" "-5 -5 -5" "maxs" "5 5 5" "Solidity" "1" } entity_medigun_shield { "targetname" "medishield" "parentname" "medishield_brush" "teamnum" "3" "spawnflags" "1" //DEBUG CHANGE BACK TO 1 IF NEEDED "modelscale" "0" "origin" "72 0 40" "skin" "1" } // Detection $filter_sendprop { "targetname" "rafmod_filter_heavys_rage_is_draining" "$name" "m_bRageDraining" "$value" "1" "$compare" "equal" } trigger_multiple { "targetname" "rafmod_trigger_heavys_rage_ready" "filtername" "rafmod_filter_heavys_rage_is_draining" "mins" "-5 -5 -5" "maxs" "5 5 5" "spawnflags" "1" "wait" "0.1" // Enables detection if rage stops being active, and disables self "OnTrigger" "rafmod_trigger_heavys_rage_finished,Enable,,0,-1" "OnTrigger" "!self,Disable,,0,-1" // Modifies attributes of player after rage is active "OnTrigger" "!activator,$AddPlayerAttribute,damage penalty|2,0,-1" "OnTrigger" "!activator,$AddPlayerAttribute,slow enemy on hit|1,0,-1" "OnTrigger" "!activator,$AddPlayerAttribute,add cond on hit|21,0,-1" "OnTrigger" "!activator,$AddPlayerAttribute,add cond on hit duration|0.1,0,-1" // Changes medishield properties "OnTrigger" "medishield,SetModelScale,0.5 0.5,0,-1" "OnTrigger" "medishield,$SetKey$spawnflags,0,0,-1" } $filter_sendprop { "targetname" "rafmod_filter_heavys_rage_is_not_draining" "$name" "m_bRageDraining" "$value" "0" "$compare" "equal" } trigger_multiple { "targetname" "rafmod_trigger_heavys_rage_finished" "filtername" "rafmod_filter_heavys_rage_is_not_draining" "mins" "-5 -5 -5" "maxs" "5 5 5" "spawnflags" "1" "wait" "0.1" // Enables detection if rage becomes active again, and disables self "OnTrigger" "rafmod_trigger_heavys_rage_ready,Enable,,0,-1" "OnTrigger" "!self,Disable,,0,-1" // Modifies attributes of player after rage has finished "OnTrigger" "!activator,$AddPlayerAttribute,damage penalty|1,0,-1" "OnTrigger" "!activator,$RemovePlayerAttribute,slow enemy on hit,0,-1" "OnTrigger" "!activator,$RemovePlayerAttribute,add cond on hit,0,-1" "OnTrigger" "!activator,$RemovePlayerAttribute,add cond on hit duration,0,-1" // Changes medishield properties after rage has finished "OnTrigger" "medishield,SetModelScale,0 0.5,0,-1" "OnTrigger" "medishield,$SetKey$spawnflags,1,0,-1" } } lockers { //MAIN SPAWN NoFixup 1 func_regenerate { "associatedmodel" "locker_model" "StartDisabled" "0" "targetname" "regenerate" "TeamNum" "3" "mins" "-65 -48 -58" "maxs" "65 48 58" "origin" "-7397.2 -2012.0 -150.8" "OnStartTouch" "regenerate,Disable,,0,-1" "OnEndTouchAll" "regenerate,Enable,,0,-1" "spawnflags" "1" } prop_dynamic { "angles" "0 -90 10" "model" "models/props_gameplay/resupply_locker.mdl" "skin" "0" "solid" "6" "spawnflags" "0" "targetname" "locker_model" "origin" "-7397.2 -1972.0 -150.8" } //ALT SPAWN func_regenerate { "associatedmodel" "locker21" "StartDisabled" "0" "targetname" "regenerate2" "TeamNum" "3" "OnStartTouch" "regenerate,Disable,,0,-1" "OnEndTouchAll" "regenerate,Enable,,0,-1" "mins" "-69 -61 -64" "maxs" "69 61 64" "origin" "-6393.4 -3078.6 78.4" "spawnflags" "1" } prop_dynamic { "angles" "0 0 0" "model" "models/props_gameplay/resupply_locker.mdl" "skin" "0" "solid" "6" "spawnflags" "0" "targetname" "locker21" "origin" "-6393.4 -3078.6 78.4" } } // If you want level sentries, copy the above point temp (all of it!), then change the "defaultupgrade" [0] value to "1" for lvl 2 sentries and "2" for level 3 sentries. // For minis, instead of changing defaultupgrade, add "spawnflags" "64" textualtimer { OnSpawnOutput { Param 8 // change the value for minutes, set to 20 cuz the point temp counts down by 2 for some reason Target minutehand Action SetValue } OnSpawnOutput { Param 0 // change the value for seconds Target secondhand Action SetValue } logic_relay { "targetname" "loserelay" "startdisabled" "1" "ontrigger" "bots_win_red,RoundWin,,2,-1" "ontrigger" "realtimer,cancelpending,,2,-1" "onspawn" "wave_start*,addoutput,ontrigger realtimer:trigger::0:-1,0,-1" "onspawn" "wave_finish*,addoutput,ontrigger realtimer:cancelpending::0:-1,0,-1" "onspawn" "wave_finish*,addoutput,ontrigger loserelay:cancelpending::0:-1,0,-1" } NoFixup 1 math_counter { "targetname" "minutehand" "max" "9999" "outvalue" "timerformat,$setkey$case01,,0,-1" "onhitmin" "loserelay,enable,,1,-1" } math_counter { "targetname" "secondhand" "max" "60" "outvalue" "timerformat,$setkey$case02,,0,-1" "outvalue" "zerocompare,setvaluecompare,,0,-1" "onhitmin" "loserelay,trigger,,0,-1" "onhitmin" "!self,setvalue,60,1,-1" "onhitmin" "minutehand,subtract,1,1,-1" } logic_compare { "targetname" "zerocompare" "comparevalue" "9" "onequalto" "timerformat,$setkey$case16,%:0%,0,-1" "ongreaterthan" "timerformat,$setkey$case16,%:%,0,-1" } logic_case { "targetname" "timerformat" "case16" "%:%" "ondefault" "timertext,$setkey$message,,0,-1" "ondefault" "timertext,display,0,0,-1" } game_text { "targetname" "timertext" "color" "65 155 255" "holdtime" "1" "spawnflags" "1" "x" "0.7" "y" "0.9" } logic_relay { "targetname" "realtimer" "spawnflags" "2" "ontrigger" "timerformat,$format,,0.01,-1" "ontrigger" "secondhand,subtract,1,0,-1" "ontrigger" "!self,trigger,,1,-1" } game_round_win { "teamnum" "2" "targetname" "bots_win_red" "force_map_reset" "1" } } template_equip_banner_rage_regen //made by Yakibomb { OnSpawnOutput { Target "rage_regenerator_math" Action "GetValue" Delay 0 } logic_branch { "targetname" "rage_regenerator_IsRageDraining" "OnTrue" "rage_regenerator_math,Add,0,0,-1" "OnFalse" "rage_regenerator_math,Add,5,0,-1" } math_counter { "targetname" "rage_regenerator_math" "min" "0" "max" "100" //"OutValue" "!activator,$DisplayTextChat,,0,-1" "OutValue" "!activator,$SetProp$m_flRageMeter,,0,-1" "OutValue" "rage_regenerator_math,GetValue,,1,-1" "OnGetValue" "!activator,$GetProp$m_flRageMeter,!caller|SetValueNoFire|,0,-1" "OnGetValue" "!activator,$GetProp$m_bRageDraining,rage_regenerator_IsRageDraining|SetValueTest|,0,-1" } RemoveIfKilled "rage_regenerator_math" RemoveIfKilled "rage_regenerator_IsRageDraining" } } SpawnTemplate Blu_Spawn_Barrier SpawnTemplate UpgradeStations SpawnTemplate lockers SpawnTemplate textualtimer SpawnTemplate stage_one_barrier SpawnTemplate stage_two_barrier SpawnTemplate stage_three_barrier SpawnTemplate stage_four_barrier SpawnTemplate spawns_red SpawnTemplate hatch_barrier_permanent SpawnTemplate ammo_pack_one SpawnTemplate Tank_Win_Red SpawnTemplate blu_spawn_fences SpawnTemplate stripmelee ///////////////////////////////////////////MISC /////////////////////////////////////////////// ExtraSpawnPoint { Name "spawnbot_neartankgate_front" TeamNum 2 //2 for red 3 for blu X "-5216" Y "-2080" Z "88" } //spawnbot_treetop_front ExtraSpawnPoint { Name "spawnbot_treetop_front" TeamNum 2 X "-4030" Y "-1115" Z "-170" } ExtraSpawnPoint { Name "spawnbot_under_plank" TeamNum 2 X "-5300" Y "-1400" Z "-35" } ExtraSpawnPoint { Name "spawnbot_behindrock_next2spawn_front" Teamnum 2 X "-5149.5" Y "-655.0" Z "29.4" } ExtraSpawnPoint { Name "spawnbot_riverstairs" TeamNum 2 X "-3616" Y "-1984" Z "-40" } ExtraSpawnPoint { Name "spawnbot_window_cp_mid" TeamNum 2 X "-3100" Y "-1200" Z "10" } ExtraSpawnPoint { Name "spawnbot_controlpoint_mid" TeamNum 2 X "-3488" Y "-2688" Z "7.47305" } ExtraSpawnPoint { Name "spawnbot_treecover_flankside" TeamNum 2 X "-2630" Y "-3550" Z "-20" } ExtraSpawnPoint { Name "spawnbot_staircase_flankside" TeamNum 2 X "-1724.8" Y "-3010.8" Z "219.0" } ExtraSpawnPoint { Name "spawnbot_bigbuilding_redside" TeamNum 2 X "-600" Y "-2072.5" Z "70" } ExtraSpawnPoint { Name "spawnbot_hatchlower" TeamNum 2 X "-1280" Y "-768" Z "-217.926" } ExtraSpawnPoint { Name "spawnbot_hatch_further" Teamnum 2 X "132.6" y "231.6" Z "-133.0" } ExtraSpawnPoint { Name "spawnbot_hatchupper" TeamNum 2 X "-448" Y "-1344" Z "-136" } ExtraSpawnPoint { Name "spawnbot_behindbarrels_redspawn" Teamnum 2 X "-2615.6" Y "-1279.3" Z "-54.3" } ExtraSpawnPoint { Name "spawnbot_redspawnbot" TeamNum 2 X "-320" Y "896" Z "-64" } ExtraSpawnPoint { Name "spawnbot_redspawn" TeamNum 2 X "-1040" Y "890" Z "-160" } ExtraSpawnPoint { Name "spawnbot_redspawn" TeamNum 2 X "0" Y "550" Z "-55" } ExtraSpawnPoint { Name "spawnbot_redspawn" TeamNum 2 X "200" Y "-660" Z "-210" } PointTemplates { spawns_red { prop_dynamic { "angles" "0 0 0" "fademindist" "-1" "fadescale" "1" "MaxAnimTime" "10" "MinAnimTime" "5" "model" "models/props_mvm/robot_spawnpoint.mdl" "modelscale" "1.0" "renderamt" "255" "rendercolor" "255 255 255" "skin" "0" "solid" "6" "origin" "-3616 -1984 -48" } prop_dynamic { "angles" "0 0 0" "fademindist" "-1" "fadescale" "1" "MaxAnimTime" "10" "MinAnimTime" "5" "model" "models/props_mvm/robot_spawnpoint.mdl" "modelscale" "1.0" "renderamt" "255" "rendercolor" "255 255 255" "skin" "0" "solid" "6" "origin" "-5216 -2080 80" } prop_dynamic { "angles" "0 0 0" "fademindist" "-1" "fadescale" "1" "MaxAnimTime" "10" "MinAnimTime" "5" "model" "models/props_mvm/robot_spawnpoint.mdl" "modelscale" "1.0" "renderamt" "255" "rendercolor" "255 255 255" "skin" "0" "solid" "6" "origin" "-4030 -1115 -170" } prop_dynamic { "angles" "0 0 0" "fademindist" "-1" "fadescale" "1" "MaxAnimTime" "10" "MinAnimTime" "5" "model" "models/props_mvm/robot_spawnpoint.mdl" "modelscale" "1.0" "renderamt" "255" "rendercolor" "255 255 255" "skin" "0" "solid" "6" "origin" "-5300 -1400 -95" } prop_dynamic { "angles" "0 0 0" "fademindist" "-1" "fadescale" "1" "MaxAnimTime" "10" "MinAnimTime" "5" "model" "models/props_mvm/robot_spawnpoint.mdl" "modelscale" "1.0" "renderamt" "255" "rendercolor" "255 255 255" "skin" "0" "solid" "6" "origin" "-5149.5 -655 -36" } prop_dynamic { "angles" "0 0 0" "fademindist" "-1" "fadescale" "1" "MaxAnimTime" "10" "MinAnimTime" "5" "model" "models/props_mvm/robot_spawnpoint.mdl" "modelscale" "1.0" "renderamt" "255" "rendercolor" "255 255 255" "skin" "0" "solid" "6" "origin" "-3100 -1200 0" } prop_dynamic { "angles" "0 0 0" "fademindist" "-1" "fadescale" "1" "MaxAnimTime" "10" "MinAnimTime" "5" "model" "models/props_mvm/robot_spawnpoint.mdl" "modelscale" "1.0" "renderamt" "255" "rendercolor" "255 255 255" "skin" "0" "solid" "6" "origin" "-3488 -2688 -1.5" } prop_dynamic { "angles" "0 0 0" "fademindist" "-1" "fadescale" "1" "MaxAnimTime" "10" "MinAnimTime" "5" "model" "models/props_mvm/robot_spawnpoint.mdl" "modelscale" "1.0" "renderamt" "255" "rendercolor" "255 255 255" "skin" "0" "solid" "6" "origin" "-600 -2072.5 -145" } prop_dynamic { "angles" "0 0 0" "fademindist" "-1" "fadescale" "1" "MaxAnimTime" "10" "MinAnimTime" "5" "model" "models/props_mvm/robot_spawnpoint.mdl" "modelscale" "1.0" "renderamt" "255" "rendercolor" "255 255 255" "skin" "0" "solid" "6" "origin" "-1280 -768 -227" } prop_dynamic { "angles" "0 0 0" "fademindist" "-1" "fadescale" "1" "MaxAnimTime" "10" "MinAnimTime" "5" "model" "models/props_mvm/robot_spawnpoint.mdl" "modelscale" "1.0" "renderamt" "255" "rendercolor" "255 255 255" "skin" "0" "solid" "6" "origin" "132.5 231.5 -210" } prop_dynamic { "angles" "0 0 0" "fademindist" "-1" "fadescale" "1" "MaxAnimTime" "10" "MinAnimTime" "5" "model" "models/props_mvm/robot_spawnpoint.mdl" "modelscale" "1.0" "renderamt" "255" "rendercolor" "255 255 255" "skin" "0" "solid" "6" "origin" "-448 -1344 -145" } prop_dynamic { "angles" "0 0 0" "fademindist" "-1" "fadescale" "1" "MaxAnimTime" "10" "MinAnimTime" "5" "model" "models/props_mvm/robot_spawnpoint.mdl" "modelscale" "1.0" "renderamt" "255" "rendercolor" "255 255 255" "skin" "0" "solid" "6" "origin" "-2615.5 -1279 -65" } prop_dynamic { "angles" "0 0 0" "fademindist" "-1" "fadescale" "1" "MaxAnimTime" "10" "MinAnimTime" "5" "model" "models/props_mvm/robot_spawnpoint.mdl" "modelscale" "1.0" "renderamt" "255" "rendercolor" "255 255 255" "skin" "0" "solid" "6" "origin" "-320 896 -64" } prop_dynamic { "angles" "0 0 0" "fademindist" "-1" "fadescale" "1" "MaxAnimTime" "10" "MinAnimTime" "5" "model" "models/props_mvm/robot_spawnpoint.mdl" "modelscale" "1.0" "renderamt" "255" "rendercolor" "255 255 255" "skin" "0" "solid" "6" "origin" "-1040 890 -190" } prop_dynamic { "angles" "0 0 0" "fademindist" "-1" "fadescale" "1" "MaxAnimTime" "10" "MinAnimTime" "5" "model" "models/props_mvm/robot_spawnpoint.mdl" "modelscale" "1.0" "renderamt" "255" "rendercolor" "255 255 255" "skin" "0" "solid" "6" "origin" "0 550 -90" } prop_dynamic { "angles" "0 0 0" "fademindist" "-1" "fadescale" "1" "MaxAnimTime" "10" "MinAnimTime" "5" "model" "models/props_mvm/robot_spawnpoint.mdl" "modelscale" "1.0" "renderamt" "255" "rendercolor" "255 255 255" "skin" "0" "solid" "6" "origin" "200 -660 -243" } } } Mission { Objective DestroySentries Where spawnbot_redspawnbot BeginAtWave 1 RunForThisManyWaves 5 InitialCooldown 40 CooldownTime 35 DesiredCount 1 TFBot { Template T_TFBot_SentryBuster CharacterAttributes { "crit mod disabled" 0 // We cant globally disable crits on RED unless Raf makes a KV, so we will need to give all bots this. Even if the bot uses a weapon without random crits, give it this anyway. "force distribute currency on death" 1 // this will allow players to collect money on kill from bots, } AddCond { Name "TF_COND_REPROGRAMMED" // This makes the bot RED } AddCond { Name "TF_COND_INVULNERABLE" // This, although not an absolute neccesity, prevents hard spawncamping. Duration 1 } } } Mission // Spy { Objective Spy Where spawnbot_treetop_front BeginAtWave 2 RunForThisManyWaves 2 InitialCooldown 60 CooldownTime 60 DesiredCount 4 TFBot { Template T_TFBot_Spy ClassIcon spy_sniper CharacterAttributes { "crit mod disabled" 0 // We cant globally disable crits on RED unless Raf makes a KV, so we will need to give all bots this. Even if the bot uses a weapon without random crits, give it this anyway. "force distribute currency on death" 1 // this will allow players to collect money on kill from bots, } AddCond { Name "TF_COND_REPROGRAMMED" // This makes the bot RED } AddCond { Name "TF_COND_INVULNERABLE" // This, although not an absolute neccesity, prevents hard spawncamping. Duration 0 } } } Mission // Sniper { Objective Sniper Where spawnbot_redspawnbot BeginAtWave 2 RunForThisManyWaves 2 InitialCooldown 35 CooldownTime 25 DesiredCount 2 TFBot { Template T_TFBot_Sniper ClassIcon spy_sniper CharacterAttributes { "crit mod disabled" 0 // We cant globally disable crits on RED unless Raf makes a KV, so we will need to give all bots this. Even if the bot uses a weapon without random crits, give it this anyway. "force distribute currency on death" 1 // this will allow players to collect money on kill from bots, } AddCond { Name "TF_COND_REPROGRAMMED" // This makes the bot RED } AddCond { Name "TF_COND_INVULNERABLE" // This, although not an absolute neccesity, prevents hard spawncamping. Duration 0 } } } Wave // Wave 1 { StartWaveOutput { Target wave_start_relay Action Trigger } DoneOutput { Target wave_finished_relay Action Trigger } InitWaveOutput { Target holograms_3way_relay Action Trigger } Explanation { Line "{yellow}You must complete 3 stages infested with bots before you can reach the hatch." Line "{green}There are custom upgrades you can use." Line "{blue}Only friendly ai can deploy the bomb." Line "{blue}In order to advance you must cap the gate." Line "{blue}You can deploy once all the giants are dead." Line "{red}Exceeding 8 minute timer will results in a wave lost!" } WaveSpawn { Name "support_blu" Where spawnbot TotalCount 999 MaxActive 4 SpawnCount 4 WaitBeforeStarting 0 WaitBetweenSpawns 18 TotalCurrency 0 Support 1 RandomChoice { TFBot { Class Soldier Skill Normal AlwaysGlow 1 WeaponRestrictions SecondaryOnly ClassIcon blu2_lite } TFBot { Class Scout WeaponRestrictions MeleeOnly Skill Normal AlwaysGlow 1 ClassIcon blu2_lite } TFBot { Class Heavyweapons Skill Normal AlwaysGlow 1 WeaponRestrictions SecondaryOnly ClassIcon blu2_lite } } } WaveSpawn { Name "shotgun_icon_blu" TotalCount 1 MaxActive 1 SpawnCount 1 Where spawnbot WaitBeforeStarting 9999 WaitBetweenSpawns 18 TotalCurrency 0 Support 1 RandomChoice { TFBot { Template T_TFGateBot_Scout_Reverse ClassIcon heavy_shotgun } } } WaveSpawn { Name "bat_icon_blu" TotalCount 1 MaxActive 1 SpawnCount 1 Where spawnbot WaitBeforeStarting 9999 WaitBetweenSpawns 18 TotalCurrency 0 Support 1 RandomChoice { TFBot { Template T_TFGateBot_Scout_Reverse ClassIcon scout_bat_nys WeaponRestrictions MeleeOnly } } } WaveSpawn { Name "bat_icon_blu" TotalCount 1 MaxActive 1 SpawnCount 1 Where spawnbot WaitBeforeStarting 9999 WaitBetweenSpawns 18 TotalCurrency 0 Support 1 RandomChoice { TFBot { Class Engineer } } } WaveSpawn { Name "red_icon" TotalCount 1 MaxActive 1 SpawnCount 1 Where spawnbot WaitBeforeStarting 9999 WaitBetweenSpawns 18 TotalCurrency 0 Support 1 RandomChoice { TFBot { Template T_TFGateBot_Scout_Reverse ClassIcon red2_lite } } } //Below is the bare minimum for a basic wavespawn and bot in reverse. ALL BOTS NEED THIS! WaveSpawn { Name "a1" Where spawnbot_behindrock_next2spawn_front //Name spawnbot places based on the area around the spawn: open area, spawns on say the left side, and on highground? It should be named something like "spawnbot_highground_open_left." TotalCount 20 MaxActive 10 SpawnCount 5 WaitBeforeStarting 15 WaitBetweenSpawns 5.5 TotalCurrency 50 Squad { TFBot { Template T_TFBot_Explosive_Demoman // self explanatory. Attributes DisableDodge // Red AI is a lot harder to fight then BLU ai cuz Valve nerfed BLU ai. Although in Medieval, idk if this is neccasery Action Mobber // This will cause the bot to kill the players (aka "defending") Skill Normal CharacterAttributes { "crit mod disabled" 0 // We cant globally disable crits on RED unless Raf makes a KV, so we will need to give all bots this. Even if the bot uses a weapon without random crits, give it this anyway. "force distribute currency on death" 1 // this will allow players to collect money on kill from bots, } AddCond { Name "TF_COND_REPROGRAMMED" // This makes the bot RED } AddCond { Name "TF_COND_INVULNERABLE" // This, although not an absolute neccesity, prevents hard spawncamping. Duration 1 } } } } WaveSpawn { Name "a1.1" Where spawnbot_neartankgate_front TotalCount 4 MaxActive 2 SpawnCount 1 WaitBeforeStarting 1 WaitBetweenSpawns 15 TotalCurrency 100 Squad { TFBot { Class Sniper Name "Giant Bowman Rapid Fire" Item "The Huntsman" ClassIcon sniper_bow Skill Normal Scale 1.75 Health 2500 AimAt Body Attributes MiniBoss ItemAttributes { ItemName "The Huntsman" "fire rate bonus" 0.6 } CharacterAttributes { "voice pitch scale" 0 "head scale" 0.7 "move speed bonus" 0.5 "damage force reduction" 0 "airblast vulnerability multiplier" 0.3 "override footstep sound set" 3 "crit mod disabled" 0 "force distribute currency on death" 1 "damage force reduction" 0 } AddCond { Name "TF_COND_REPROGRAMMED" } AddCond { Name "TF_COND_INVULNERABLE" Duration 1 } Action Mobber } TFBot { Template T_TFBot_Medic_QuickUber Attributes DisableDodge Skill Normal Action Mobber CharacterAttributes { "crit mod disabled" 0 "force distribute currency on death" 1 } AddCond { Name "TF_COND_REPROGRAMMED" } AddCond { Name "TF_COND_INVULNERABLE" Duration 1 } } } } WaveSpawn { Name "a1.2" Where spawnbot_behindrock_next2spawn_front TotalCount 4 MaxActive 2 SpawnCount 1 WaitBeforeStarting 2 WaitBetweenSpawns 15 TotalCurrency 150 Squad { TFBot { Class Sniper Name "Giant Bowman Rapid Fire" Item "The Huntsman" ClassIcon sniper_bow Skill Normal Scale 1.75 Health 2500 AimAt Body Attributes MiniBoss ItemAttributes { ItemName "The Huntsman" "fire rate bonus" 0.6 } CharacterAttributes { "voice pitch scale" 0 "head scale" 0.7 "move speed bonus" 0.5 "damage force reduction" 0 "airblast vulnerability multiplier" 0.3 "override footstep sound set" 3 "crit mod disabled" 0 "force distribute currency on death" 1 "damage force reduction" 0 } AddCond { Name "TF_COND_REPROGRAMMED" } AddCond { Name "TF_COND_INVULNERABLE" Duration 1 } Action Mobber } TFBot { Template T_TFBot_Medic_QuickUber Attributes DisableDodge Skill Normal Action Mobber CharacterAttributes { "crit mod disabled" 0 "force distribute currency on death" 1 } AddCond { Name "TF_COND_REPROGRAMMED" } AddCond { Name "TF_COND_INVULNERABLE" Duration 1 } } } } WaveSpawn { Name "a2" WaitForAllSpawned "a1" Where spawnbot_neartankgate_front TotalCount 12 MaxActive 10 SpawnCount 5 WaitBeforeStarting 4 WaitBetweenSpawns 9 TotalCurrency 100 TFBot { Template T_TFBot_Explosive_Demoman Attributes DisableDodge Skill Normal Action Mobber CharacterAttributes { "crit mod disabled" 0 "force distribute currency on death" 1 } AddCond { Name "TF_COND_REPROGRAMMED" } AddCond { Name "TF_COND_INVULNERABLE" Duration 1 } } } WaveSpawn { Name "a2.1" WaitForAllSpawned "a1" Where spawnbot_treetop_front TotalCount 4 MaxActive 4 SpawnCount 1 WaitBeforeStarting 8 WaitBetweenSpawns 0 TotalCurrency 200 Squad { TFBot { Template T_TFBot_Giant_Soldier_Spammer Attributes DisableDodge Skill Expert CharacterAttributes { "voice pitch scale" 0 "crit mod disabled" 0 "force distribute currency on death" 1 "damage force reduction" 0 // give all giants this } AddCond { Name "TF_COND_REPROGRAMMED" } AddCond { Name "TF_COND_INVULNERABLE" Duration 1 } Action Mobber } TFBot { Template T_TFBot_Medic_QuickUber Attributes DisableDodge Skill Normal Action Mobber CharacterAttributes { "crit mod disabled" 0 "force distribute currency on death" 1 } AddCond { Name "TF_COND_REPROGRAMMED" } AddCond { Name "TF_COND_INVULNERABLE" Duration 1 } } TFBot { Template T_TFBot_Medic_QuickUber Attributes DisableDodge Skill Normal Action Mobber CharacterAttributes { "crit mod disabled" 0 "force distribute currency on death" 1 } AddCond { Name "TF_COND_REPROGRAMMED" } AddCond { Name "TF_COND_INVULNERABLE" Duration 1 } } TFBot { Template T_TFBot_Medic_QuickUber Attributes DisableDodge Skill Normal Action Mobber CharacterAttributes { "crit mod disabled" 0 "force distribute currency on death" 1 } AddCond { Name "TF_COND_REPROGRAMMED" } AddCond { Name "TF_COND_INVULNERABLE" Duration 1 } } } } WaveSpawn // Dummy { WaitForAllDead "a1" Name "done1" } WaveSpawn // Dummy { WaitForAllDead "a1.1" Name "done1" } WaveSpawn // Dummy { WaitForAllDead "a1.2" Name "done1" } WaveSpawn // Dummy { WaitForAllDead "a2" Name "done1" } WaveSpawn // Dummy { WaitForAllDead "a2.1" Name "done1" } WaveSpawn { WaitForAllDead "done1" Name "relay1" FirstSpawnOutput { Target stage_one_barrier_disable Action Trigger } } WaveSpawn { Name "b1" WaitForAllDead "done1" Where spawnbot_window_cp_mid TotalCount 16 MaxActive 8 SpawnCount 2 WaitBeforeStarting 2 WaitBetweenSpawns 1.5 TotalCurrency 100 TFBot { Template T_TFBot_Scout_Cola Attributes DisableDodge Skill Easy CharacterAttributes { "crit mod disabled" 0 "force distribute currency on death" 1 } AddCond { Name "TF_COND_REPROGRAMMED" } AddCond { Name "TF_COND_INVULNERABLE" Duration 1 } Action Mobber } } WaveSpawn { Name "b1.1" WaitForAllSpawned "done1" Where spawnbot_controlpoint_mid TotalCount 2 MaxActive 2 SpawnCount 2 WaitBeforeStarting 16 WaitBetweenSpawns 8 TotalCurrency 200 Squad { TFBot { Template T_TFBot_Giant_Heavyweapons_Heater_Fix Attributes DisableDodge Skill Expert AimTrackingInterval 0.30 Action Mobber CharacterAttributes { "voice pitch scale" 0 "crit mod disabled" 0 "force distribute currency on death" 1 "damage force reduction" 0 } AddCond { Name "TF_COND_REPROGRAMMED" } AddCond { Name "TF_COND_INVULNERABLE" Duration 1 } } TFBot { Template T_TFBot_quicky_Shield_uber Tag bot_squad_member Attributes DisableDodge CharacterAttributes { "crit mod disabled" 0 "force distribute currency on death" 1 "damage force reduction" 0 } AddCond { Name "TF_COND_REPROGRAMMED" } AddCond { Name "TF_COND_INVULNERABLE" Duration 1 } } } } WaveSpawn { Name "a2.a" WaitForAllSpawned "done1" Where spawnbot_riverstairs TotalCount 8 MaxActive 8 SpawnCount 2 WaitBeforeStarting 5 WaitBetweenSpawns 5 TotalCurrency 100 TFBot { Template T_TFBot_Explosive_Demoman Attributes DisableDodge Skill Normal Action Mobber CharacterAttributes { "crit mod disabled" 0 "force distribute currency on death" 1 } AddCond { Name "TF_COND_REPROGRAMMED" } AddCond { Name "TF_COND_INVULNERABLE" Duration 1 } } } WaveSpawn { Name "b2.1" WaitForAllSpawned "done1" Where spawnbot_behindbarrels_redspawn TotalCount 18 MaxActive 8 SpawnCount 2 WaitBeforeStarting 15 WaitBetweenSpawns 6 TotalCurrency 100 TFBot { Template T_TFBot_Dragon_Fury Attributes DisableDodge Skill Easy CharacterAttributes { "crit mod disabled" 0 "force distribute currency on death" 1 } AddCond { Name "TF_COND_REPROGRAMMED" } AddCond { Name "TF_COND_INVULNERABLE" Duration 1 } Action Mobber } } WaveSpawn { Name "c1.2" WaitForAllSpawned "b2.1" Where spawnbot_bigbuilding_redside TotalCount 26 MaxActive 10 SpawnCount 5 WaitBeforeStarting 0 WaitBetweenSpawns 10 TotalCurrency 50 TFBot { Template T_TFBot_Scout_Cola Attributes DisableDodge Skill Easy CharacterAttributes { "crit mod disabled" 0 "force distribute currency on death" 1 } AddCond { Name "TF_COND_REPROGRAMMED" } AddCond { Name "TF_COND_INVULNERABLE" Duration 1 } Action Mobber } } WaveSpawn { Name "b2.15" WaitForAllSpawned "b2.1" Where spawnbot_bigbuilding_redside TotalCount 20 MaxActive 10 SpawnCount 4 WaitBeforeStarting 2 WaitBetweenSpawns 7 TotalCurrency 50 TFBot { Class Pyro Attributes DisableDodge Skill Expert CharacterAttributes { "crit mod disabled" 0 "force distribute currency on death" 1 } ItemAttributes { ItemName "tf_weapon_flamethrower" "airblast_destroy_projectile" 1 } AddCond { Name "TF_COND_REPROGRAMMED" } AddCond { Name "TF_COND_INVULNERABLE" Duration 1 } Action Mobber } } WaveSpawn // Dummy { WaitForAllDead "c1.2" Name "done2" } WaveSpawn // Dummy { WaitForAllDead "b2.1" Name "done2" } WaveSpawn // Dummy { WaitForAllDead "b2.15" Name "done2" } WaveSpawn // Dummy { WaitForAllDead "c1" Name "done2" } WaveSpawn { WaitForAllDead "done2" Name "relay2" FirstSpawnOutput { Target stage_three_barrier_disable Action Trigger } } WaveSpawn { Name "BLU_Engie" WaitForAllDead "done2" where spawnbot TotalCount 2 MaxActive 1 SpawnCount 1 Support 1 WaitBeforeStarting 4 WaitBetweenSpawns 10 TFBot { Template T_TFBot_Engineer_Sentry_Teleporter } } WaveSpawn { Name "c1" WaitForAllSpawned "b2.1" Where spawnbot_hatchlower TotalCount 8 MaxActive 4 SpawnCount 1 WaitBeforeStarting 0 WaitBetweenSpawns 15 TotalCurrency 100 Squad { TFBot { Template T_TFBot_Giant_Soldier_Spammer Attributes DisableDodge Skill Expert CharacterAttributes { "crit mod disabled" 0 "voice pitch scale" 0 "force distribute currency on death" 1 "damage force reduction" 0 // give all giants this } AddCond { Name "TF_COND_REPROGRAMMED" } AddCond { Name "TF_COND_INVULNERABLE" Duration 1 } Action Mobber } TFBot { Template T_TFBot_Medic_QuickUber Attributes DisableDodge Skill Normal Action Mobber CharacterAttributes { "crit mod disabled" 0 "force distribute currency on death" 1 } AddCond { Name "TF_COND_REPROGRAMMED" } AddCond { Name "TF_COND_INVULNERABLE" Duration 1 } } TFBot { Template T_TFBot_Medic_QuickUber Attributes DisableDodge Skill Normal Action Mobber CharacterAttributes { "crit mod disabled" 0 "force distribute currency on death" 1 } AddCond { Name "TF_COND_REPROGRAMMED" } AddCond { Name "TF_COND_INVULNERABLE" Duration 1 } } TFBot { Template T_TFBot_Medic_QuickUber Attributes DisableDodge Skill Normal Action Mobber CharacterAttributes { "crit mod disabled" 0 "force distribute currency on death" 1 } AddCond { Name "TF_COND_REPROGRAMMED" } AddCond { Name "TF_COND_INVULNERABLE" Duration 1 } } } } WaveSpawn { Name "c1.1" WaitForAllDead "done2" Where spawnbot_hatchupper TotalCount 8 MaxActive 8 SpawnCount 1 WaitBeforeStarting 0 WaitBetweenSpawns 28 TotalCurrency 50 Squad { TFBot { Template T_TFBot_Giant_Soldier_Spammer Attributes DisableDodge Skill Expert CharacterAttributes { "crit mod disabled" 0 "voice pitch scale" 0 "force distribute currency on death" 1 "damage force reduction" 0 // give all giants this } AddCond { Name "TF_COND_REPROGRAMMED" } AddCond { Name "TF_COND_INVULNERABLE" Duration 1 } Action Mobber } TFBot { Template T_TFBot_Medic_QuickUber Attributes DisableDodge Skill Normal Action Mobber CharacterAttributes { "crit mod disabled" 0 "force distribute currency on death" 1 } AddCond { Name "TF_COND_REPROGRAMMED" } AddCond { Name "TF_COND_INVULNERABLE" Duration 1 } } TFBot { Template T_TFBot_Medic_QuickUber Attributes DisableDodge Skill Normal Action Mobber CharacterAttributes { "crit mod disabled" 0 "force distribute currency on death" 1 } AddCond { Name "TF_COND_REPROGRAMMED" } AddCond { Name "TF_COND_INVULNERABLE" Duration 1 } } TFBot { Template T_TFBot_Medic_QuickUber Attributes DisableDodge Skill Normal Action Mobber CharacterAttributes { "crit mod disabled" 0 "force distribute currency on death" 1 } AddCond { Name "TF_COND_REPROGRAMMED" } AddCond { Name "TF_COND_INVULNERABLE" Duration 1 } } } } WaveSpawn { Name "c1.3" WaitForAllDead "done2" Where spawnbot_hatchlower TotalCount 24 MaxActive 12 SpawnCount 4 WaitBeforeStarting 2 WaitBetweenSpawns 6 TotalCurrency 50 RandomChoice { TFBot { Template T_TFBot_Scout_Cola Attributes DisableDodge Skill Easy CharacterAttributes { "crit mod disabled" 0 "force distribute currency on death" 1 } AddCond { Name "TF_COND_REPROGRAMMED" } AddCond { Name "TF_COND_INVULNERABLE" Duration 1 } Action Mobber } TFBot { Template T_TFBot_Scout_Cola Attributes DisableDodge Skill Normal CharacterAttributes { "crit mod disabled" 0 "force distribute currency on death" 1 } AddCond { Name "TF_COND_REPROGRAMMED" } AddCond { Name "TF_COND_INVULNERABLE" Duration 1 } Action Mobber } } } WaveSpawn { Name "c1.4" WaitForAllSpawned "c1.1" Where spawnbot_hatch_further TotalCount 32 MaxActive 12 SpawnCount 4 WaitBeforeStarting 10 WaitBetweenSpawns 8 TotalCurrency 100 TFBot { Template T_TFBot_Pyro_Flaregun ClassIcon pyro_flare_red Attributes DisableDodge Attributes AlwaysCrit Skill Hard CharacterAttributes { "crit mod disabled" 0 "force distribute currency on death" 1 } AddCond { Name "TF_COND_REPROGRAMMED" } AddCond { Name "TF_COND_INVULNERABLE" Duration 1 } Action Mobber } } WaveSpawn // Dummy { WaitForAllDead "c1.1" Name "done" } WaveSpawn // Dummy { WaitForAllDead "c1" Name "done" } WaveSpawn // Will open the hatch when both Blast Soldier wavespawns are gone { WaitForAllDead "done" Name "relay" FirstSpawnOutput { Target hatch_reveal_relay Action Trigger } } WaveSpawn { Name "lastbots" WaitForAllSpawned "c1.1" Where spawnbot_redspawn TotalCount 9999 MaxActive 5 SpawnCount 5 WaitBeforeStarting 2 WaitBetweenSpawns 1 TotalCurrency 0 RandomSpawn 1 RandomChoice { //TFBot //{ // Template T_TFBot_Giant_Scout_Baseball // Attributes DisableDodge // Skill Expert // ClassIcon spammer // CharacterAttributes // { // "voice pitch scale" 0 // "crit mod disabled" 0 // "damage force reduction" 0 // "force distribute currency on death" 1 // } // AddCond // { // Name "TF_COND_REPROGRAMMED" // } // AddCond // { // Name "TF_COND_INVULNERABLE" // Duration 1 // } // Action Mobber //} TFBot { Template T_TFBot_Scout_Sandman_FastCharge Attributes DisableDodge Name "Fast Charge Sandman Scout" Skill Expert ClassIcon spammer CharacterAttributes { "crit mod disabled" 0 "force distribute currency on death" 1 } AddCond { Name "TF_COND_REPROGRAMMED" } AddCond { Name "TF_COND_INVULNERABLE" Duration 1 } Action Mobber } TFBot { Template T_TFBot_Scout_Sandman_Mark Name "Marking Sandman Scout" Attributes DisableDodge Skill Expert ClassIcon spammer CharacterAttributes { "crit mod disabled" 0 "force distribute currency on death" 1 } AddCond { Name "TF_COND_REPROGRAMMED" } AddCond { Name "TF_COND_INVULNERABLE" Duration 1 } Action Mobber } TFBot { Template T_TFBot_Scout_Jumping_Sandman Attributes DisableDodge Name "Jumping Sandman Scout" Attributes AlwaysCrit Skill Expert ClassIcon spammer CharacterAttributes { "crit mod disabled" 0 "force distribute currency on death" 1 } AddCond { Name "TF_COND_REPROGRAMMED" } AddCond { Name "TF_COND_INVULNERABLE" Duration 1 } Action Mobber } } } } Wave // Wave 2 { StartWaveOutput { Target wave_start_relay Action Trigger } DoneOutput { Target wave_finished_relay Action Trigger } InitWaveOutput { Target holograms_3way_relay Action Trigger } WaveSpawn { Name "support_blu" Where spawnbot TotalCount 999 MaxActive 4 SpawnCount 4 WaitBeforeStarting 0 WaitBetweenSpawns 18 TotalCurrency 0 Support 1 RandomChoice { TFBot { Class Soldier AlwaysGlow 1 Skill Normal ClassIcon blu2_lite } TFBot { Class Heavyweapons Skill Normal AlwaysGlow 1 WeaponRestrictions SecondaryOnly ClassIcon blu2_lite } TFBot { Class Soldier Skill Normal AlwaysGlow 1 ClassIcon blu2_lite } } } WaveSpawn { Name "support_blu1" Where spawnbot TotalCount 999 MaxActive 2 SpawnCount 2 WaitBeforeStarting 9999 WaitBetweenSpawns 18 TotalCurrency 0 Support 1 RandomChoice { TFBot { Class Soldier Skill Normal } TFBot { Class Heavyweapons Skill Normal WeaponRestrictions SecondaryOnly ClassIcon heavy_shotgun } } } WaveSpawn { Name "support_blu2" Where spawnbot TotalCount 999 MaxActive 2 SpawnCount 2 WaitBeforeStarting 9999 WaitBetweenSpawns 18 TotalCurrency 0 Support 1 TFBot { Class Engineer Skill Normal } } WaveSpawn { Name "support_blu2" Where spawnbot TotalCount 999 MaxActive 1 SpawnCount 4 WaitBeforeStarting 9999 WaitBetweenSpawns 18 TotalCurrency 0 Support 1 RandomChoice { TFBot { Class Scout Skill Easy ClassIcon red2_lite } } } WaveSpawn { Name "a1" Where spawnbot_neartankgate_front TotalCount 4 MaxActive 4 SpawnCount 4 WaitBeforeStarting 1 WaitBetweenSpawns 12 TotalCurrency 50 Squad { TFBot { Template T_TFBot_Giant_Demo_Burst ClassIcon demo_burst_red Attributes DisableDodge Skill Expert CharacterAttributes { "voice pitch scale" 0 "crit mod disabled" 0 "force distribute currency on death" 1 "damage force reduction" 0 // give all giants this } AddCond { Name "TF_COND_REPROGRAMMED" } AddCond { Name "TF_COND_INVULNERABLE" Duration 1 } Action Mobber } TFBot { Template T_TFBot_Soldier_Extended_Buff_Banner Attributes DisableDodge Skill Easy CharacterAttributes { "crit mod disabled" 0 "force distribute currency on death" 1 } AddCond { Name "TF_COND_REPROGRAMMED" } AddCond { Name "TF_COND_INVULNERABLE" Duration 2 } Action Mobber } TFBot { Template T_TFBot_Soldier_Extended_Buff_Banner Attributes DisableDodge Skill Easy CharacterAttributes { "crit mod disabled" 0 "force distribute currency on death" 1 } AddCond { Name "TF_COND_REPROGRAMMED" } AddCond { Name "TF_COND_INVULNERABLE" Duration 2 } Action Mobber } TFBot { Template T_TFBot_Soldier_Extended_Buff_Banner Attributes DisableDodge Skill Easy CharacterAttributes { "crit mod disabled" 0 "force distribute currency on death" 1 } AddCond { Name "TF_COND_REPROGRAMMED" } AddCond { Name "TF_COND_INVULNERABLE" Duration 2 } Action Mobber } } } WaveSpawn { Name "a1.15" Where spawnbot_treetop_front TotalCount 8 MaxActive 4 SpawnCount 4 WaitBeforeStarting 1 WaitBetweenSpawns 8 WaitForAllDead "a1" TotalCurrency 50 Squad { TFBot { Template T_TFBot_Giant_Demo_Burst ClassIcon demo_burst_red Attributes DisableDodge Skill Expert CharacterAttributes { "voice pitch scale" 0 "crit mod disabled" 0 "force distribute currency on death" 1 "damage force reduction" 0 // give all giants this } AddCond { Name "TF_COND_REPROGRAMMED" } AddCond { Name "TF_COND_INVULNERABLE" Duration 1 } Action FetchFlag } TFBot { Template T_TFBot_Soldier_Extended_Buff_Banner Attributes DisableDodge Skill Easy CharacterAttributes { "crit mod disabled" 0 "force distribute currency on death" 1 } AddCond { Name "TF_COND_REPROGRAMMED" } AddCond { Name "TF_COND_INVULNERABLE" Duration 2 } Action FetchFlag } TFBot { Template T_TFBot_Soldier_Extended_Buff_Banner Attributes DisableDodge Skill Easy CharacterAttributes { "crit mod disabled" 0 "force distribute currency on death" 1 } AddCond { Name "TF_COND_REPROGRAMMED" } AddCond { Name "TF_COND_INVULNERABLE" Duration 2 } Action FetchFlag } TFBot { Template T_TFBot_Soldier_Extended_Buff_Banner Attributes DisableDodge Skill Easy CharacterAttributes { "crit mod disabled" 0 "force distribute currency on death" 1 } AddCond { Name "TF_COND_REPROGRAMMED" } AddCond { Name "TF_COND_INVULNERABLE" Duration 2 } Action FetchFlag } } } WaveSpawn { Name "a1.1" Where spawnbot_treetop_front TotalCount 24 MaxActive 8 SpawnCount 1 WaitBeforeStarting 2 WaitBetweenSpawns 1.5 TotalCurrency 100 TFBot { Class Demoman ClassIcon demoknight Name "Persian Demoknight" Skill Hard ClassIcon demo_persian Item "Sultan's Ceremonial" Item "Ali Baba's Wee Booties" Item "The Persian Persuader" Item "The Splendid Screen" ItemAttributes { ItemName "The Splendid Screen" "Attack not cancel charge" 1 } WeaponRestrictions MeleeOnly CharacterAttributes { "critboost on kill" 3 "crit mod disabled" 0 "force distribute currency on death" 1 } AddCond { Name "TF_COND_REPROGRAMMED" } AddCond { Name "TF_COND_INVULNERABLE" Duration 1 } Action Mobber } } WaveSpawn // Dummy { WaitForAllDead "a1" Name "done1" } WaveSpawn // Dummy { WaitForAllDead "a1.1" Name "done1" } WaveSpawn // Dummy { WaitForAllSpawned "a1.15" Name "done1" } WaveSpawn { WaitForAllDead "done1" Name "relay1" FirstSpawnOutput { Target stage_one_barrier_disable Action Trigger } } WaveSpawn { Name "a2" WaitForAllDead "done1" Where spawnbot_riverstairs TotalCount 2 MaxActive 2 SpawnCount 1 WaitBeforeStarting 6 WaitBetweenSpawns 10 TotalCurrency 100 TFBot { Template T_TFBot_Giant_Scout_Fix Attributes DisableDodge Skill Normal CharacterAttributes { "voice pitch scale" 0 "crit mod disabled" 0 "force distribute currency on death" 1 "damage force reduction" 0 // give all giants this } AddCond { Name "TF_COND_REPROGRAMMED" } AddCond { Name "TF_COND_INVULNERABLE" Duration 1 } Action Mobber } } WaveSpawn { Name "a2.2" WaitForAllDead "done1" Where spawnbot_window_cp_mid TotalCount 2 MaxActive 2 SpawnCount 1 WaitBeforeStarting 7 WaitBetweenSpawns 7 TotalCurrency 100 TFBot { Template T_TFBot_Giant_Scout_Fix Attributes DisableDodge Skill Normal CharacterAttributes { "crit mod disabled" 0 "voice pitch scale" 0 "force distribute currency on death" 1 "damage force reduction" 0 // give all giants this } AddCond { Name "TF_COND_REPROGRAMMED" } AddCond { Name "TF_COND_INVULNERABLE" Duration 1 } Action Mobber } } WaveSpawn { Name "a2.1" WaitForAllDead "done1" Where spawnbot_controlpoint_mid TotalCount 24 MaxActive 10 SpawnCount 4 WaitBeforeStarting 7 WaitBetweenSpawns 5 TotalCurrency 100 TFBot { Class Soldier Attributes AlwaysCrit Attributes DisableDodge Skill Normal Item "The Original" ClassIcon soldier_crit ItemAttributes { ItemName "The Original" "faster reload rate" 0.2 "fire rate bonus" 2 "Projectile speed increased" 0.5 } CharacterAttributes { "crit mod disabled" 0 "force distribute currency on death" 1 } AddCond { Name "TF_COND_REPROGRAMMED" } AddCond { Name "TF_COND_INVULNERABLE" Duration 1 } Action Mobber } } WaveSpawn { Name "b1" WaitForAllSpawned "a2.2" Where spawnbot_controlpoint_mid TotalCount 40 MaxActive 15 SpawnCount 3 WaitBeforeStarting 0 WaitBetweenSpawns 5 TotalCurrency 100 RandomChoice { TFBot { Class Soldier Attributes DisableDodge Skill Normal CharacterAttributes { "crit mod disabled" 0 "force distribute currency on death" 1 } AddCond { Name "TF_COND_REPROGRAMMED" } AddCond { Name "TF_COND_INVULNERABLE" Duration 1 } Action Mobber } } } WaveSpawn { Name "a3.1" WaitForAllDead "a2.1" where spawnbot_bigbuilding_redside TotalCount 15 SpawnCount 1 MaxActive 10 WaitBetweenSpawns 27 WaitBeforeStarting 2 TotalCurrency 100 Squad { TFBot { Template T_TFBot_Giant_Heavyweapons_Shotgun Attributes DisableDodge Skill Hard ClassIcon heavy_shotgun_red CharacterAttributes { "voice pitch scale" 0 "crit mod disabled" 0 "damage force reduction" 0 "force distribute currency on death" 1 } AddCond { Name "TF_COND_REPROGRAMMED" } AddCond { Name "TF_COND_INVULNERABLE" Duration 1 } Action Mobber } TFBot { Template T_TFBot_Medic_QuickUber Attributes DisableDodge CharacterAttributes { "crit mod disabled" 0 "force distribute currency on death" 1 } AddCond { Name "TF_COND_REPROGRAMMED" } AddCond { Name "TF_COND_INVULNERABLE" Duration 1 } } TFBot { Template T_TFBot_Medic_QuickUber Attributes DisableDodge CharacterAttributes { "crit mod disabled" 0 "force distribute currency on death" 1 } AddCond { Name "TF_COND_REPROGRAMMED" } AddCond { Name "TF_COND_INVULNERABLE" Duration 1 } } TFBot { Template T_TFBot_Medic_QuickUber Attributes DisableDodge CharacterAttributes { "crit mod disabled" 0 "force distribute currency on death" 1 } AddCond { Name "TF_COND_REPROGRAMMED" } AddCond { Name "TF_COND_INVULNERABLE" Duration 1 } } TFBot { Template T_TFBot_Medic_QuickUber Attributes DisableDodge CharacterAttributes { "crit mod disabled" 0 "force distribute currency on death" 1 } AddCond { Name "TF_COND_REPROGRAMMED" } AddCond { Name "TF_COND_INVULNERABLE" Duration 1 } } } } WaveSpawn { Name "a2.3" WaitForAllDead "a2.1" where spawnbot_behindbarrels_redspawn TotalCount 38 SpawnCount 6 MaxActive 12 WaitBetweenSpawns 7 WaitBeforeStarting 7 TotalCurrency 100 TFBot { Class Pyro Attributes AlwaysCrit Skill Easy Attributes DisableDodge CharacterAttributes { "crit mod disabled" 0 "force distribute currency on death" 1 } AddCond { Name "TF_COND_REPROGRAMMED" } AddCond { Name "TF_COND_INVULNERABLE" Duration 1 } Action Mobber } } WaveSpawn // Dummy { WaitForAllDead "a2.3" Name "done2" } WaveSpawn // Dummy { WaitForAllDead "a3.1" Name "done2" } WaveSpawn { WaitForAllDead "done2" Name "relay2" FirstSpawnOutput { Target stage_three_barrier_disable Action Trigger } } WaveSpawn { Name "BLU_Engie" WaitForAllDead "done2" where spawnbot TotalCount 2 MaxActive 1 SpawnCount 1 Support 1 WaitBeforeStarting 4 WaitBetweenSpawns 10 TFBot { Template T_TFBot_Engineer_Sentry_Teleporter } } WaveSpawn { Name "a2.4" WaitForAllDead "done2" where spawnbot_hatchupper TotalCount 2 SpawnCount 1 MaxActive 1 WaitBetweenSpawns 22 WaitBeforeStarting 5 TotalCurrency 50 TFBot { Class Soldier ClassIcon soldier_blackbox_giant Name "Giant Black Box Soldier" Health 4200 AlwaysGlow 1 Item "The Black Box" Skill Expert Attributes MiniBoss Attributes AlwaysCrit WeaponRestrictions PrimaryOnly Attributes HoldFireUntilFullReload ItemAttributes { ItemName "The Black Box" "damage bonus" 0.45 "fire rate bonus" 0.001 "clip size upgrade atomic" 0 "faster reload rate" 1.6 "blast radius increased" 1.25 //"Projectile speed increased" 0.4 "projectile spread angle penalty" 4 "heal on hit for rapidfire" 1000 } CharacterAttributes { "move speed bonus" 0.5 "airblast vulnerability multiplier" 0.4 "override footstep sound set" 3 "Projectile speed increased" 0.9 "voice pitch scale" 0 "crit mod disabled" 0 "damage force reduction" 0 "force distribute currency on death" 1 } AddCond { Name "TF_COND_REPROGRAMMED" } AddCond { Name "TF_COND_INVULNERABLE" Duration 1 } Action FetchFlag } } WaveSpawn { Name "a2.5" WaitForAllDead "done2" where spawnbot_hatch_further where spawnbot_hatchupper TotalCount 35 SpawnCount 1 MaxActive 18 WaitBetweenSpawns 0.5 WaitBeforeStarting 8 TotalCurrency 25 RandomSpawn 1 TFBot { Template T_TFBot_Heavyweapons_Gnome Health 150 CharacterAttributes { "crit mod disabled" 0 "force distribute currency on death" 1 } AddCond { Name "TF_COND_REPROGRAMMED" } AddCond { Name "TF_COND_INVULNERABLE" Duration 2 } Action Mobber } } WaveSpawn { Name "a2.5" WaitForAllDead "done2" where spawnbot_hatch_further where spawnbot_hatchupper TotalCount 35 SpawnCount 6 MaxActive 18 WaitBetweenSpawns 6 WaitBeforeStarting 8 TotalCurrency 25 RandomSpawn 1 TFBot { Template T_TFBot_Heavyweapons_Heavyweight_Champ ClassIcon heavy_champ_red Attributes DisableDodge CharacterAttributes { "crit mod disabled" 0 "force distribute currency on death" 1 } AddCond { Name "TF_COND_REPROGRAMMED" } AddCond { Name "TF_COND_INVULNERABLE" Duration 2 } Action Mobber } } WaveSpawn // Dummy { WaitForAllDead "a2.4" Name "done" } WaveSpawn { WaitForAllDead "done" Name "relay" FirstSpawnOutput { Target hatch_reveal_relay Action Trigger } } WaveSpawn { Name "lastbots" WaitForAllDead "a2.5" Where spawnbot_redspawn TotalCount 9999 MaxActive 4 SpawnCount 4 WaitBeforeStarting 1 WaitBetweenSpawns 1 TotalCurrency 0 RandomSpawn 1 RandomChoice { TFBot { Template T_TFBot_Giant_Pyro_Flare_Spammer ClassIcon spammer CharacterAttributes { "voice pitch scale" 0 "crit mod disabled" 0 "damage force reduction" 0 "force distribute currency on death" 1 } AddCond { Name "TF_COND_REPROGRAMMED" } AddCond { Name "TF_COND_INVULNERABLE" Duration 1 } Action Mobber } TFBot { Template T_TFBot_Scout_Sandman_FastCharge Attributes DisableDodge Skill Expert ClassIcon spammer CharacterAttributes { "crit mod disabled" 0 "force distribute currency on death" 1 } AddCond { Name "TF_COND_REPROGRAMMED" } AddCond { Name "TF_COND_INVULNERABLE" Duration 1 } Action Mobber } TFBot { Class Heavyweapons WeaponRestrictions SecondaryOnly Name "Heavy Shotgun" ClassIcon spammer CharacterAttributes { "crit mod disabled" 0 "force distribute currency on death" 1 } AddCond { Name "TF_COND_REPROGRAMMED" } AddCond { Name "TF_COND_INVULNERABLE" Duration 1 } Action Mobber } TFBot { Class Scout Skill Easy ClassIcon spammer CharacterAttributes { "crit mod disabled" 0 "force distribute currency on death" 1 } AddCond { Name "TF_COND_REPROGRAMMED" } AddCond { Name "TF_COND_INVULNERABLE" Duration 1 } Action Mobber } } } } Wave // Wave 3 { StartWaveOutput { Target wave_start_relay Action Trigger } DoneOutput { Target wave_finished_relay Action Trigger } InitWaveOutput { Target holograms_3way_relay Action Trigger } WaveSpawn { Name "support_blu" Where spawnbot TotalCount 999 MaxActive 3 SpawnCount 3 WaitBeforeStarting 0 WaitBetweenSpawns 18 TotalCurrency 0 Support 1 RandomChoice { TFBot { Template T_TFBot_Direct_Hit ClassIcon blu2_lite AlwaysGlow 1 } TFBot { Class Scout Skill Easy ClassIcon blu2_lite AlwaysGlow 1 } TFBot { Class Heavyweapons Skill Normal ClassIcon blu2_lite AlwaysGlow 1 } } } WaveSpawn { Name "support_blu1" Where spawnbot TotalCount 999 MaxActive 4 SpawnCount 4 WaitBeforeStarting 9999 WaitBetweenSpawns 18 TotalCurrency 0 Support 1 RandomChoice { TFBot { Template T_TFBot_Direct_Hit ClassIcon soldier_directhit_lite Action Mobber } TFBot { Class Scout Skill Easy Action Mobber } TFBot { Class Heavyweapons Skill Normal Action Mobber } } } WaveSpawn { Name "support_blu2" Where spawnbot TotalCount 999 MaxActive 4 SpawnCount 4 WaitBeforeStarting 9999 WaitBetweenSpawns 18 TotalCurrency 0 Support 1 RandomChoice { TFBot { Class Scout Skill Easy ClassIcon red2_lite } } } WaveSpawn { Name "a1.1" Where spawnbot_under_plank TotalCount 10 MaxActive 5 SpawnCount 1 WaitBetweenSpawns 10 WaitBeforeStarting 1 TotalCurrency 25 Squad { TFBot { Class Soldier Name "Giant Concheror Soldier" ClassIcon soldier_conch_spammer Skill Expert Health 3800 WeaponRestrictions PrimaryOnly Attributes HoldFireUntilFullReload Attributes MiniBoss Attributes SpawnWithFullCharge Item "The Concheror" Attributes DisableDodge CharacterAttributes { "move speed bonus" 0.5 "damage force reduction" 0.4 "airblast vulnerability multiplier" 0.4 "override footstep sound set" 3 "increase buff duration" 9.0 "voice pitch scale" 0 "damage force reduction" 0 "crit mod disabled" 0 "force distribute currency on death" 1 } ItemAttributes { ItemName "TF_WEAPON_ROCKETLAUNCHER" "faster reload rate" -0.8 "fire rate bonus" 0.5 } AddCond { Name "TF_COND_REPROGRAMMED" } AddCond { Name "TF_COND_INVULNERABLE" Duration 1 } Action Mobber } TFBot { Template T_TFBot_Medic_SlowRecharge CharacterAttributes { "crit mod disabled" 0 "force distribute currency on death" 1 } AddCond { Name "TF_COND_REPROGRAMMED" } AddCond { Name "TF_COND_INVULNERABLE" Duration 1 } Action Mobber } TFBot { Template T_TFBot_Medic_SlowRecharge CharacterAttributes { "crit mod disabled" 0 "force distribute currency on death" 1 } AddCond { Name "TF_COND_REPROGRAMMED" } AddCond { Name "TF_COND_INVULNERABLE" Duration 1 } Action Mobber } TFBot { Template T_TFBot_Medic_SlowRecharge CharacterAttributes { "crit mod disabled" 0 "force distribute currency on death" 1 } AddCond { Name "TF_COND_REPROGRAMMED" } AddCond { Name "TF_COND_INVULNERABLE" Duration 1 } Action Mobber } TFBot { Template T_TFBot_Medic_SlowRecharge CharacterAttributes { "crit mod disabled" 0 "force distribute currency on death" 1 } AddCond { Name "TF_COND_REPROGRAMMED" } AddCond { Name "TF_COND_INVULNERABLE" Duration 1 } Action Mobber } } } WaveSpawn { Name "a1.2" Where spawnbot_riverstairs Where spawnbot_treetop_front TotalCount 15 MaxActive 12 SpawnCount 2 WaitBeforeStarting 2 WaitBetweenSpawns 3.5 TotalCurrency 50 RandomSpawn 1 TFBot { Template T_TFBot_Bazooka_Soldier Attributes DisableDodge ClassIcon soldier_burstfire_buff Attributes SpawnWithFullCharge Item "The Buff Banner" CharacterAttributes { "increase buff duration" 9.0 "crit mod disabled" 0 "force distribute currency on death" 1 } AddCond { Name "TF_COND_REPROGRAMMED" } AddCond { Name "TF_COND_INVULNERABLE" Duration 2 } Action Mobber } } WaveSpawn { Name "a1.3" where spawnbot_behindrock_next2spawn_front TotalCount 8 MaxActive 8 SpawnCount 2 WaitBeforeStarting 2 WaitBetweenSpawns 8 TotalCurrency 100 TFBot { Class Soldier Skill Normal ClassIcon soldier_burstfire_buff WeaponRestrictions PrimaryOnly Attributes DisableDodge Attributes SpawnWithFullCharge Item "The Buff Banner" CharacterAttributes { "increase buff duration" 9.0 "crit mod disabled" 0 "force distribute currency on death" 1 } AddCond { Name "TF_COND_REPROGRAMMED" } AddCond { Name "TF_COND_INVULNERABLE" Duration 1 } Action Mobber } } WaveSpawn // Dummy { WaitForAllDead "a1.1" Name "done1" } WaveSpawn // Dummy { WaitForAllDead "a1.2" Name "done1" } WaveSpawn // Dummy { WaitForAllDead "a1.3" Name "done1" } WaveSpawn { WaitForAllDead "done1" Name "relay1" FirstSpawnOutput { Target stage_one_barrier_disable Action Trigger } } WaveSpawn { Name "a2.1" Where spawnbot_riverstairs WaitForAllDead "done1" TotalCount 6 MaxActive 4 SpawnCount 1 WaitBeforeStarting 4 WaitBetweenSpawns 14 TotalCurrency 100 Squad { TFBot { Template T_TFBot_Giant_Pyro Skill Expert Attributes AlwaysFireWeapon Attributes DisableDodge CharacterAttributes { "voice pitch scale" 0 "crit mod disabled" 0 "damage force reduction" 0 "force distribute currency on death" 1 } AddCond { Name "TF_COND_REPROGRAMMED" } AddCond { Name "TF_COND_INVULNERABLE" Duration 1 } Action Mobber } TFBot { Template T_TFBot_Giant_Medic_Regen CharacterAttributes { "voice pitch scale" 0 "crit mod disabled" 0 "damage force reduction" 0 "force distribute currency on death" 1 } AddCond { Name "TF_COND_REPROGRAMMED" } AddCond { Name "TF_COND_INVULNERABLE" Duration 1 } } } } WaveSpawn { Name "a2.2" Where spawnbot_window_cp_mid WaitForAllDead "done1" TotalCount 24 MaxActive 16 SpawnCount 4 WaitBeforeStarting 9 WaitBetweenSpawns 10 TotalCurrency 50 Squad { TFBot { Template T_TFBot_Demo_Burst ClassIcon demo_burst_red CharacterAttributes { "crit mod disabled" 0 "force distribute currency on death" 1 } AddCond { Name "TF_COND_REPROGRAMMED" } AddCond { Name "TF_COND_INVULNERABLE" Duration 1 } Action Mobber } TFBot { Template T_TFBot_Medic_SlowRecharge CharacterAttributes { "crit mod disabled" 0 "force distribute currency on death" 1 } AddCond { Name "TF_COND_REPROGRAMMED" } AddCond { Name "TF_COND_INVULNERABLE" Duration 1 } Action Mobber } TFBot { Class Pyro Skill Hard Attributes DisableDodge CharacterAttributes { "crit mod disabled" 0 "force distribute currency on death" 1 } ItemAttributes { ItemName "tf_weapon_flamethrower" "airblast_destroy_projectile" 1 } AddCond { Name "TF_COND_REPROGRAMMED" } AddCond { Name "TF_COND_INVULNERABLE" Duration 1 } Action Mobber } TFBot { Class Pyro Skill Hard Attributes DisableDodge CharacterAttributes { "crit mod disabled" 0 "force distribute currency on death" 1 } ItemAttributes { ItemName "tf_weapon_flamethrower" "airblast_destroy_projectile" 1 } AddCond { Name "TF_COND_REPROGRAMMED" } AddCond { Name "TF_COND_INVULNERABLE" Duration 1 } Action Mobber } } } WaveSpawn { Name "b2.2" Where spawnbot_riverstairs WaitForAllDead "done1" TotalCount 22 MaxActive 12 SpawnCount 6 WaitBeforeStarting 15 WaitBetweenSpawns 8 TotalCurrency 50 TFBot { Class Pyro Skill Easy CharacterAttributes { "crit mod disabled" 0 "force distribute currency on death" 1 } AddCond { Name "TF_COND_REPROGRAMMED" } AddCond { Name "TF_COND_INVULNERABLE" Duration 1 } Action Mobber } } WaveSpawn { Name "a2.3" Where spawnbot_controlpoint_mid WaitForAllDead "done1" TotalCount 12 MaxActive 8 SpawnCount 4 WaitBeforeStarting 16 WaitBetweenSpawns 10 TotalCurrency 100 TFBot { Class Soldier Name "Extended Buff Banner Direct Hit" Skill Normal Item "The Direct Hit" ClassIcon soldier_burstfire_buff Attributes SpawnWithFullCharge Item "The Buff Banner" CharacterAttributes { "increase buff duration" 9.0 "crit mod disabled" 0 "force distribute currency on death" 1 } AddCond { Name "TF_COND_REPROGRAMMED" } AddCond { Name "TF_COND_INVULNERABLE" Duration 1 } Action Mobber } } WaveSpawn { Name "a3.1" Where spawnbot_behindbarrels_redspawn WaitForAllSpawned "a2.3" WaitBeforeStarting 4 WaitBetweenSpawns 6 TotalCount 18 MaxActive 8 SpawnCount 4 TotalCurrency 100 TFBot { Template T_TFBot_Sniper_Huntsman Attributes AlwaysCrit Skill Normal CharacterAttributes { "crit mod disabled" 0 "force distribute currency on death" 1 } AddCond { Name "TF_COND_REPROGRAMMED" } AddCond { Name "TF_COND_INVULNERABLE" Duration 1 } Action Mobber } } WaveSpawn { Name "a3.2" Where spawnbot_bigbuilding_redside WaitForAllDead "a2.3" WaitBeforeStarting 5 WaitBetweenSpawns 7 TotalCount 24 SpawnCount 6 MaxActive 12 TotalCurrency 100 TFBot { Class Heavyweapons Item "Tomislav" Name "Tomislav Heavy" Skill Normal ClassIcon heavy_accurate_lite CharacterAttributes { "crit mod disabled" 0 "force distribute currency on death" 1 } AddCond { Name "TF_COND_REPROGRAMMED" } AddCond { Name "TF_COND_INVULNERABLE" Duration 1 } Action Mobber } } WaveSpawn // Dummy { WaitForAllDead "a3.1" Name "done2" } WaveSpawn // Dummy { WaitForAllDead "a3.2" Name "done2" } WaveSpawn { WaitForAllDead "done2" Name "relay2" FirstSpawnOutput { Target stage_three_barrier_disable Action Trigger } } WaveSpawn { Name "BLU_Engie" WaitForAllDead "done2" where spawnbot TotalCount 2 MaxActive 1 SpawnCount 1 Support 1 WaitBeforeStarting 4 WaitBetweenSpawns 10 TFBot { Template T_TFBot_Engineer_Sentry_Teleporter } } WaveSpawn //Tank 2 { Name "a4.Tank" TotalCount 1 SpawnCount 1 MaxActive 1 WaitForAllDead "a3.2" WaitBeforeStarting 3 WaitBetweenSpawns 0 TotalCurrency 100 Tank { Name "tankboss" StartingPathTrackNode "tank_path_last_1" // thanks to Valve coding, you need to give a tank path the name in the extratankpath syntax, copy that name here then add "_1" at the end. Why is beyond me Health 40000 // change health value accordingly, though a map this big should have a high health tanks like how most Bigrock mission's do Speed 75 SolidToBrushes 1 ClassIcon tank_red Teamnum 2 // makes the tank's team red Model //Set custom model on tank. Will spit harmless errors on client console if the model does not have enough sequences { Default "models/bots/boss_bot/boss_tankred.mdl" Damage1 "models/bots/boss_bot/boss_tankred_damage1.mdl" Damage2 "models/bots/boss_bot/boss_tankred_damage2.mdl" Damage3 "models/bots/boss_bot/boss_tankred_damage3.mdl" Destruction "models/bots/boss_bot/boss_tankred_part1_destruction.mdl" LeftTrack "models/bots/boss_bot/tankred_track_l.mdl" RightTrack "models/bots/boss_bot/tankred_track_r.mdl" Bomb "models/bots/boss_bot/bombblue_mechanism.mdl" } OnKilledOutput { Target boss_dead_relay Action Trigger } OnBombDroppedOutput { Target redwin_relay Action Trigger } } } WaveSpawn { Name "a4.1" Where spawnbot_hatchupper WaitForAllDead "done2" WaitBeforeStarting 10 WaitBetweenSpawns 28 TotalCount 10 SpawnCount 1 MaxActive 5 TotalCurrency 100 Squad { TFBot { Class Soldier Name "Giant Burst Fire Soldier" ClassIcon soldier_spammer_burstfire_giant Item "The Shogun's Shoulder Guard" Health 3800 Skill Expert WeaponRestrictions PrimaryOnly Attributes MiniBoss Attributes HoldFireUntilFullReload ItemAttributes { ItemName "TF_WEAPON_ROCKETLAUNCHER" "move speed bonus" 0.5 "faster reload rate" -0.8 "fire rate bonus" 0.1 "clip size upgrade atomic" 5.0 "Projectile speed increased" 0.65 } CharacterAttributes { "airblast vulnerability multiplier" 0.4 "override footstep sound set" 3 "voice pitch scale" 0 "crit mod disabled" 0 "damage force reduction" 0 "force distribute currency on death" 1 } AddCond { Name "TF_COND_REPROGRAMMED" } AddCond { Name "TF_COND_INVULNERABLE" Duration 1 } Action FetchFlag } TFBot { Template T_TFBot_Giant_Medic_Regen CharacterAttributes { "voice pitch scale" 0 "crit mod disabled" 0 "damage force reduction" 0 "force distribute currency on death" 1 } AddCond { Name "TF_COND_REPROGRAMMED" } AddCond { Name "TF_COND_INVULNERABLE" Duration 1 } } TFBot { Class Pyro Skill Expert Attributes DisableDodge CharacterAttributes { "crit mod disabled" 0 "force distribute currency on death" 1 } ItemAttributes { ItemName "tf_weapon_flamethrower" "airblast_destroy_projectile" 1 } AddCond { Name "TF_COND_REPROGRAMMED" } AddCond { Name "TF_COND_INVULNERABLE" Duration 1 } Action Mobber } TFBot { Class Pyro Skill Expert Attributes DisableDodge CharacterAttributes { "crit mod disabled" 0 "force distribute currency on death" 1 } ItemAttributes { ItemName "tf_weapon_flamethrower" "airblast_destroy_projectile" 1 } AddCond { Name "TF_COND_REPROGRAMMED" } AddCond { Name "TF_COND_INVULNERABLE" Duration 1 } Action Mobber } TFBot { Class Pyro Skill Expert Attributes DisableDodge CharacterAttributes { "crit mod disabled" 0 "force distribute currency on death" 1 } ItemAttributes { ItemName "tf_weapon_flamethrower" "airblast_destroy_projectile" 1 } AddCond { Name "TF_COND_REPROGRAMMED" } AddCond { Name "TF_COND_INVULNERABLE" Duration 1 } Action Mobber } TFBot { Class Pyro Skill Expert Attributes DisableDodge CharacterAttributes { "crit mod disabled" 0 "force distribute currency on death" 1 } ItemAttributes { ItemName "tf_weapon_flamethrower" "airblast_destroy_projectile" 1 } AddCond { Name "TF_COND_REPROGRAMMED" } AddCond { Name "TF_COND_INVULNERABLE" Duration 1 } Action Mobber } TFBot { Class Pyro Skill Expert Attributes DisableDodge CharacterAttributes { "crit mod disabled" 0 "force distribute currency on death" 1 } ItemAttributes { ItemName "tf_weapon_flamethrower" "airblast_destroy_projectile" 1 } AddCond { Name "TF_COND_REPROGRAMMED" } AddCond { Name "TF_COND_INVULNERABLE" Duration 1 } Action Mobber } TFBot { Class Pyro Skill Expert Attributes DisableDodge CharacterAttributes { "crit mod disabled" 0 "force distribute currency on death" 1 } ItemAttributes { ItemName "tf_weapon_flamethrower" "airblast_destroy_projectile" 1 } AddCond { Name "TF_COND_REPROGRAMMED" } AddCond { Name "TF_COND_INVULNERABLE" Duration 1 } Action Mobber } TFBot { Class Pyro Skill Expert Attributes DisableDodge CharacterAttributes { "crit mod disabled" 0 "force distribute currency on death" 1 } ItemAttributes { ItemName "tf_weapon_flamethrower" "airblast_destroy_projectile" 1 } AddCond { Name "TF_COND_REPROGRAMMED" } AddCond { Name "TF_COND_INVULNERABLE" Duration 1 } Action Mobber } TFBot { Class Pyro Skill Expert Attributes DisableDodge CharacterAttributes { "crit mod disabled" 0 "force distribute currency on death" 1 } ItemAttributes { ItemName "tf_weapon_flamethrower" "airblast_destroy_projectile" 1 } AddCond { Name "TF_COND_REPROGRAMMED" } AddCond { Name "TF_COND_INVULNERABLE" Duration 1 } Action Mobber } TFBot { Class Pyro Skill Expert Attributes DisableDodge CharacterAttributes { "crit mod disabled" 0 "force distribute currency on death" 1 } ItemAttributes { ItemName "tf_weapon_flamethrower" "airblast_destroy_projectile" 1 } AddCond { Name "TF_COND_REPROGRAMMED" } AddCond { Name "TF_COND_INVULNERABLE" Duration 1 } Action Mobber } } } WaveSpawn { Name "a4.2" Where spawnbot_hatchlower WaitForAllDead "done2" WaitBeforeStarting 8 WaitBetweenSpawns 6 TotalCount 38 MaxActive 12 SpawnCount 8 TotalCurrency 125 TFBot { Template T_TFBot_Sniper_Huntsman Skill Hard CharacterAttributes { "crit mod disabled" 0 "force distribute currency on death" 1 } AddCond { Name "TF_COND_REPROGRAMMED" } AddCond { Name "TF_COND_INVULNERABLE" Duration 1 } Action Mobber } } WaveSpawn // Dummy { WaitForAllDead "a4.1" Name "done" } WaveSpawn // Dummy { WaitForAllDead "a4.tank" Name "done" } WaveSpawn { WaitForAllDead "done" Name "relay" FirstSpawnOutput { Target hatch_reveal_relay Action Trigger } } WaveSpawn { Name "lastbots" WaitForAllDead "a4.1" Where spawnbot_redspawn TotalCount 9999 MaxActive 5 SpawnCount 5 WaitBeforeStarting 0 WaitBetweenSpawns 1 TotalCurrency 0 RandomSpawn 1 RandomChoice { TFBot { Template T_TFBot_Giant_Soldier_Crit ClassIcon spammer Attributes DisableDodge CharacterAttributes { "voice pitch scale" 0 "crit mod disabled" 0 "damage force reduction" 0 "force distribute currency on death" 1 } AddCond { Name "TF_COND_REPROGRAMMED" } AddCond { Name "TF_COND_INVULNERABLE" Duration 1 } Action Mobber } TFBot { Template T_TFBot_Heavyweapons_Heavyweight_Champ ClassIcon spammer Attributes DisableDodge CharacterAttributes { "crit mod disabled" 0 "force distribute currency on death" 1 } AddCond { Name "TF_COND_REPROGRAMMED" } AddCond { Name "TF_COND_INVULNERABLE" Duration 1 } Action Mobber } TFBot { Class Heavyweapons Skill Easy Attributes DisableDodge ClassIcon spammer CharacterAttributes { "crit mod disabled" 0 "force distribute currency on death" 1 } AddCond { Name "TF_COND_REPROGRAMMED" } AddCond { Name "TF_COND_INVULNERABLE" Duration 1 } Action Mobber } TFBot { Class Demoman Skill Normal ClassIcon spammer Attributes DisableDodge CharacterAttributes { "crit mod disabled" 0 "force distribute currency on death" 1 } AddCond { Name "TF_COND_REPROGRAMMED" } AddCond { Name "TF_COND_INVULNERABLE" Duration 1 } Action Mobber } } } } Wave // Wave 4 { StartWaveOutput { Target wave_start_relay Action Trigger } DoneOutput { Target wave_finished_relay Action Trigger } InitWaveOutput { Target holograms_3way_relay Action Trigger } WaveSpawn { Name "support_blu" Where spawnbot TotalCount 999 MaxActive 3 SpawnCount 3 WaitBeforeStarting 0 WaitBetweenSpawns 18 TotalCurrency 0 Support 1 RandomChoice { TFBot { Template T_TFBot_Soldier_Extended_Battalion ClassIcon blu2_lite AlwaysGlow 1 } TFBot { Template T_TFBot_Soldier_Extended_Concheror ClassIcon blu2_lite AlwaysGlow 1 } TFBot { Template T_TFBot_Soldier_Extended_Buff_Banner ClassIcon blu2_lite AlwaysGlow 1 } } } WaveSpawn { Name "support_blu1" Where spawnbot TotalCount 999 MaxActive 4 SpawnCount 4 WaitBeforeStarting 9999 WaitBetweenSpawns 18 TotalCurrency 0 Support 1 RandomChoice { TFBot { Template T_TFBot_Soldier_Extended_Battalion ClassIcon soldier_banner_trio } } } WaveSpawn { Name "support_blu2" Where spawnbot TotalCount 999 MaxActive 4 SpawnCount 4 WaitBeforeStarting 9999 WaitBetweenSpawns 18 TotalCurrency 0 Support 1 RandomChoice { TFBot { Template T_TFBot_Soldier_Extended_Battalion ClassIcon red2_lite } } } WaveSpawn { Name "a1.1" Where spawnbot_behindrock_next2spawn_front TotalCount 4 MaxActive 2 SpawnCount 1 WaitBetweenSpawns 14 WaitBeforeStarting 1 TotalCurrency 50 Squad { TFBot { Template T_TFBot_Giant_Heavyweapons_Deflector Attributes DisableDodge CharacterAttributes { "voice pitch scale" 0 "crit mod disabled" 0 "damage force reduction" 0 "force distribute currency on death" 1 } AddCond { Name "TF_COND_REPROGRAMMED" } AddCond { Name "TF_COND_INVULNERABLE" Duration 1 } Action Mobber } TFBot { Template T_TFBot_Giant_Uber_Medic Attributes DisableDodge CharacterAttributes { "voice pitch scale" 0 "crit mod disabled" 0 "damage force reduction" 0 "force distribute currency on death" 1 } AddCond { Name "TF_COND_REPROGRAMMED" } AddCond { Name "TF_COND_INVULNERABLE" Duration 1 } Action Mobber } } } WaveSpawn { Name "a1.2" Where spawnbot_neartankgate_front TotalCount 36 MaxActive 12 SpawnCount 6 WaitBetweenSpawns 5 WaitBeforeStarting 7 TotalCurrency 100 TFBot { Class Scout Attributes DisableDodge Skill Easy CharacterAttributes { "crit mod disabled" 0 "force distribute currency on death" 1 } AddCond { Name "TF_COND_REPROGRAMMED" } AddCond { Name "TF_COND_INVULNERABLE" Duration 1 } Action Mobber } } WaveSpawn { Name "a1.3" where spawnbot_treetop_front TotalCount 9 MaxActive 9 SpawnCount 3 WaitBetweenSpawns 12 WaitBeforeStarting 2 TotalCurrency 100 TFBot { Template T_TFBot_Heavy_IronFist_Airblast Attributes DisableDodge Skill Hard CharacterAttributes { "crit mod disabled" 0 "force distribute currency on death" 1 } AddCond { Name "TF_COND_REPROGRAMMED" } AddCond { Name "TF_COND_INVULNERABLE" Duration 1 } Action Mobber } } WaveSpawn // Dummy { WaitForAllDead "a1.1" Name "done1" } WaveSpawn // Dummy { WaitForAllDead "a1.2" Name "done1" } WaveSpawn // Dummy { WaitForAllDead "a1.3" Name "done1" } WaveSpawn { WaitForAllDead "done1" Name "relay1" FirstSpawnOutput { Target stage_one_barrier_disable Action Trigger } } WaveSpawn { Name "a2.1" Where spawnbot_controlpoint_mid TotalCount 5 MaxActive 3 SpawnCount 1 WaitForAllDead "done1" WaitBeforeStarting 4 WaitBetweenSpawns 10 TotalCurrency 200 TFBot { Template T_TFBot_Giant_Soldier_Spammer_Reload Attributes DisableDodge CharacterAttributes { "voice pitch scale" 0 "crit mod disabled" 0 "damage force reduction" 0 "force distribute currency on death" 1 } AddCond { Name "TF_COND_REPROGRAMMED" } AddCond { Name "TF_COND_INVULNERABLE" Duration 1 } Action Mobber } } WaveSpawn { Name "a2.2" Where spawnbot_window_cp_mid TotalCount 24 MaxActive 8 SpawnCount 4 WaitBeforeStarting 1 WaitBetweenSpawns 6 TotalCurrency 50 WaitForAllDead "done1" TFBot { Class Heavyweapons Skill Normal Attributes DisableDodge CharacterAttributes { "crit mod disabled" 0 "force distribute currency on death" 1 } AddCond { Name "TF_COND_REPROGRAMMED" } AddCond { Name "TF_COND_INVULNERABLE" Duration 1 } Action Mobber } } WaveSpawn { Name "a2.3" Where spawnbot_behindbarrels_redspawn TotalCount 12 MaxActive 8 SpawnCount 2 WaitBeforeStarting 6 WaitBetweenSpawns 9 TotalCurrency 50 WaitForAllDead "done1" TFBot { Template T_TFBot_Heavyweapons_Fist Skill Hard Attributes DisableDodge CharacterAttributes { "crit mod disabled" 0 "force distribute currency on death" 1 } AddCond { Name "TF_COND_REPROGRAMMED" } AddCond { Name "TF_COND_INVULNERABLE" Duration 1 } Action Mobber } } WaveSpawn { Name "a3.1" Where spawnbot_bigbuilding_redside TotalCount 22 MaxActive 12 SpawnCount 6 WaitBeforeStarting 10 WaitBetweenSpawns 5 TotalCurrency 100 WaitForAllDead "a2.2" TFBot { Class Demoman Attributes AlwaysCrit Skill Normal Attributes DisableDodge CharacterAttributes { "crit mod disabled" 0 "force distribute currency on death" 1 } AddCond { Name "TF_COND_REPROGRAMMED" } AddCond { Name "TF_COND_INVULNERABLE" Duration 1 } Action FetchFlag } } WaveSpawn { Name "b3" Where spawnbot_behindbarrels_redspawn TotalCount 6 SpawnCount 2 MaxActive 6 WaitBeforeStarting 2 WaitBetweenSpawns 8 TotalCurrency 50 WaitForAllDead "a2.2" TFBot { Template T_TFBot_Heavy_IronFist_Airblast CharacterAttributes { "voice pitch scale" 0 "damage force reduction" 0 "crit mod disabled" 0 "force distribute currency on death" 1 } AddCond { Name "TF_COND_REPROGRAMMED" } AddCond { Name "TF_COND_INVULNERABLE" Duration 1 } Action Mobber } } WaveSpawn { Name "a3.2" Where spawnbot_bigbuilding_redside TotalCount 4 SpawnCount 1 MaxActive 2 WaitBetweenSpawns 24 WaitBeforeStarting 8 TotalCurrency 50 WaitForAllSpawned "a3.1" Squad { TFBot { Class Pyro Name "Dragon's Fury" ClassIcon pyro_dragon_fury WeaponRestrictions PrimaryOnly Attributes MiniBoss Health 3200 Attributes AlwaysCrit Attributes DisableDodge Item "The Dragon's Fury" MaxVisionRange 800 Skill Expert CharacterAttributes { "voice pitch scale" 0 "damage force reduction" 0 "crit mod disabled" 0 "move speed bonus" 0.5 "airblast vulnerability multiplier" 0.6 "override footstep sound set" 6 "force distribute currency on death" 1 } AddCond { Name "TF_COND_REPROGRAMMED" } AddCond { Name "TF_COND_INVULNERABLE" Duration 1 } Action Mobber } TFBot { Template T_TFBot_Giant_Uber_Medic Attributes DisableDodge CharacterAttributes { "voice pitch scale" 0 "damage force reduction" 0 "crit mod disabled" 0 "force distribute currency on death" 1 } AddCond { Name "TF_COND_REPROGRAMMED" } AddCond { Name "TF_COND_INVULNERABLE" Duration 1 } Action Mobber } } } WaveSpawn { Name "a3.25" Where spawnbot_bigbuilding_redside TotalCount 28 SpawnCount 2 MaxActive 8 WaitForAllSpawned "a3.1" TotalCurrency 25 WaitBeforeStarting 10 WaitBetweenSpawns 3 TFBot { Class Scout ClassIcon scout_bat_nys Attributes AlwaysCrit WeaponRestrictions MeleeOnly Attributes DisableDodge Skill Hard CharacterAttributes { "crit mod disabled" 0 "force distribute currency on death" 1 } AddCond { Name "TF_COND_REPROGRAMMED" } AddCond { Name "TF_COND_INVULNERABLE" Duration 1 } Action Mobber } } WaveSpawn { Name "a3.3" Where spawnbot_hatchupper TotalCount 38 SpawnCount 6 MaxActive 18 WaitBetweenSpawns 8 WaitBeforeStarting 6 TotalCurrency 50 WaitForAllSpawned "a3.1" TFBot { Class Heavyweapons Skill Normal Attributes DisableDodge CharacterAttributes { "crit mod disabled" 0 "force distribute currency on death" 1 } AddCond { Name "TF_COND_REPROGRAMMED" } AddCond { Name "TF_COND_INVULNERABLE" Duration 1 } Action Mobber } } WaveSpawn // Dummy { WaitForAllDead "a3.3" Name "done2" } WaveSpawn // Dummy { WaitForAllDead "a3.2" Name "done2" } WaveSpawn // Dummy { WaitForAllDead "a3.1" Name "done2" } WaveSpawn { WaitForAllDead "done2" Name "relay2" FirstSpawnOutput { Target stage_three_barrier_disable Action Trigger } } WaveSpawn { Name "BLU_Engie" WaitForAllDead "done2" where spawnbot TotalCount 2 MaxActive 1 SpawnCount 1 Support 1 WaitBeforeStarting 4 WaitBetweenSpawns 10 TFBot { Template T_TFBot_Engineer_Sentry_Teleporter } } WaveSpawn { Name "a4.1" Where spawnbot_hatchupper TotalCount 4 SpawnCount 1 MaxActive 2 WaitBetweenSpawns 18 WaitBeforeStarting 5 TotalCurrency 50 WaitForAllDead "done2" Squad { TFBot { Template T_TFBot_Giant_Soldier_SlowBarrage Attributes AlwaysCrit Attributes DisableDodge CharacterAttributes { "voice pitch scale" 0 "crit mod disabled" 0 "damage force reduction" 0 "force distribute currency on death" 1 } AddCond { Name "TF_COND_REPROGRAMMED" } AddCond { Name "TF_COND_INVULNERABLE" Duration 1 } Action Mobber } TFBot { Template T_TFBot_Giant_Uber_Medic Attributes DisableDodge CharacterAttributes { "voice pitch scale" 0 "crit mod disabled" 0 "damage force reduction" 0 "force distribute currency on death" 1 } AddCond { Name "TF_COND_REPROGRAMMED" } AddCond { Name "TF_COND_INVULNERABLE" Duration 1 } Action Mobber } } } WaveSpawn { Name "a4.2" Where spawnbot_hatchlower TotalCount 32 MaxActive 16 SpawnCount 8 TotalCurrency 25 WaitBetweenSpawns 12 WaitBeforeStarting 13 WaitForAllDead "done2" TFBot { Template T_TFBot_Bazooka_Soldier Attributes DisableDodge Attributes holdfireuntilfullreload CharacterAttributes { "can overload" 0 "crit mod disabled" 0 "force distribute currency on death" 1 } AddCond { Name "TF_COND_REPROGRAMMED" } AddCond { Name "TF_COND_INVULNERABLE" Duration 1 } Action FetchFlag } } WaveSpawn // Dummy { WaitForAllDead "a4.1" Name "done" } WaveSpawn // Will open the hatch when both Blast Soldier wavespawns are gone { WaitForAllDead "done" Name "relay" FirstSpawnOutput { Target hatch_reveal_relay Action Trigger } } WaveSpawn { Name "lastbots" WaitForAllDead "a4.2" Where spawnbot_redspawn TotalCount 9999 MaxActive 5 SpawnCount 5 WaitBeforeStarting 0 WaitBetweenSpawns 1 TotalCurrency 0 RandomSpawn 1 RandomChoice { TFBot { Template T_TFBot_Giant_DemoMan_PrinceTavish ClassIcon spammer CharacterAttributes { "voice pitch scale" 0 "crit mod disabled" 0 "damage force reduction" 0 "force distribute currency on death" 1 } AddCond { Name "TF_COND_REPROGRAMMED" } AddCond { Name "TF_COND_INVULNERABLE" Duration 1 } Action Mobber } TFBot { Template T_TFBot_Soldier_Extended_Concheror ClassIcon spammer CharacterAttributes { "crit mod disabled" 0 "force distribute currency on death" 1 } AddCond { Name "TF_COND_REPROGRAMMED" } AddCond { Name "TF_COND_INVULNERABLE" Duration 1 } Action Mobber } TFBot { Template T_TFBot_Scout_Sandman_Mark Attributes DisableDodge Skill Expert ClassIcon spammer CharacterAttributes { "crit mod disabled" 0 "force distribute currency on death" 1 } AddCond { Name "TF_COND_REPROGRAMMED" } AddCond { Name "TF_COND_INVULNERABLE" Duration 1 } Action Mobber } TFBot { Class Heavyweapons Skill Easy ClassIcon spammer Attributes DisableDodge CharacterAttributes { "crit mod disabled" 0 "force distribute currency on death" 1 } AddCond { Name "TF_COND_REPROGRAMMED" } AddCond { Name "TF_COND_INVULNERABLE" Duration 1 } Action Mobber } } } } Wave // Wave 5 { StartWaveOutput { Target wave_start_relay Action Trigger } DoneOutput { Target wave_finished_relay Action Trigger } InitWaveOutput { Target holograms_3way_relay Action Trigger } Explanation { Line "{blue}There is no bomb this wave." } WaveSpawn { Name "support_blu2" Where spawnbot TotalCount 999 MaxActive 1 SpawnCount 1 WaitBeforeStarting 9999 WaitBetweenSpawns 18 TotalCurrency 0 Support 1 RandomChoice { TFBot { Template T_TFBot_Bazooka_Soldier ClassIcon blu2_lite } } } WaveSpawn { Name "support_red1" Where spawnbot TotalCount 999 MaxActive 1 SpawnCount 1 WaitBeforeStarting 9999 WaitBetweenSpawns 18 TotalCurrency 0 Support 1 RandomChoice { TFBot { Class Engineer } } } WaveSpawn { Name "support_blu2" Where spawnbot TotalCount 999 MaxActive 1 SpawnCount 1 WaitBeforeStarting 9999 WaitBetweenSpawns 18 TotalCurrency 0 Support 1 RandomChoice { TFBot { Template T_TFBot_Bazooka_Soldier ClassIcon red2_lite } } } WaveSpawn { Name "a1.1" Where spawnbot_under_plank TotalCount 2 MaxActive 1 SpawnCount 1 WaitBeforeStarting 1 WaitBetweenSpawns 20 TotalCurrency 100 TFBot { //Template T_TFBot_Giant_Soldier_Spammer Template T_TFBot_Giant_Soldier_Extended_Battalion //Name "Giant Backup Soldier" //ClassIcon soldier_backup_spammer_giant Attributes SpawnWithFullCharge //Item "The Battalion's Backup" CharacterAttributes { "move speed bonus" 0.5 "airblast vulnerability multiplier" 0.4 "override footstep sound set" 3 //"increase buff duration" 9.0 "voice pitch scale" 0 "increase buff duration" 9.0 "damage force reduction" 0 "crit mod disabled" 0 "force distribute currency on death" 1 } AddCond { Name "TF_COND_REPROGRAMMED" } AddCond { Name "TF_COND_INVULNERABLE" Duration 1 } Action Mobber } } WaveSpawn { Name "a1.2" Where spawnbot_behindrock_next2spawn_front TotalCount 12 MaxActive 6 SpawnCount 3 WaitBeforeStarting 2 WaitBetweenSpawns 9 TotalCurrency 25 Squad { TFBot { Class Heavyweapons ClassIcon heavy_accurate_lite Skill Normal Name "Tomislav Heavy" Item "Tomislav" Attributes DisableDodge CharacterAttributes { "crit mod disabled" 0 "force distribute currency on death" 1 } AddCond { Name "TF_COND_REPROGRAMMED" } AddCond { Name "TF_COND_INVULNERABLE" Duration 1 } Action Mobber } TFBot { Template T_TFBot_Medic_BigHeal Attributes DisableDodge ClassIcon uber_quickfix_medic_nys CharacterAttributes { "crit mod disabled" 0 "force distribute currency on death" 1 } AddCond { Name "TF_COND_REPROGRAMMED" } AddCond { Name "TF_COND_INVULNERABLE" Duration 1 } Action Mobber } } } WaveSpawn { Name "a1.25" Where spawnbot_behindrock_next2spawn_front TotalCount 12 MaxActive 6 SpawnCount 3 WaitBeforeStarting 2 WaitBetweenSpawns 9 TotalCurrency 25 Squad { TFBot { Class Heavyweapons ClassIcon heavy_accurate_lite Skill Normal Name "Tomislav Heavy" Item "Tomislav" Attributes DisableDodge CharacterAttributes { "crit mod disabled" 0 "force distribute currency on death" 1 } AddCond { Name "TF_COND_REPROGRAMMED" } AddCond { Name "TF_COND_INVULNERABLE" Duration 1 } Action Mobber } TFBot { Template T_TFBot_Medic_SlowRecharge Attributes DisableDodge ClassIcon uber_quickfix_medic_nys CharacterAttributes { "crit mod disabled" 0 "force distribute currency on death" 1 } AddCond { Name "TF_COND_REPROGRAMMED" } AddCond { Name "TF_COND_INVULNERABLE" Duration 1 } Action Mobber } } } WaveSpawn { Name "a1.3" Where spawnbot_treetop_front TotalCount 2 SpawnCount 1 MaxActive 2 WaitBeforeStarting 4 WaitBetweenSpawns 31 TotalCurrency 50 Squad { TFBot { Template T_TFBot_Giant_Soldier_SlowBarrage Attributes DisableDodge Attributes AlwaysCrit CharacterAttributes { "crit mod disabled" 0 "voice pitch scale" 0 "damage force reduction" 0 "crit mod disabled" 0 "airblast vulnerability multiplier" 0 "force distribute currency on death" 1 } AddCond { Name "TF_COND_REPROGRAMMED" } AddCond { Name "TF_COND_INVULNERABLE" Duration 1 } Action Mobber } } } WaveSpawn // Dummy { WaitForAllDead "a1.1" Name "done1" } WaveSpawn // Dummy { WaitForAllSpawned "a1.2" Name "done1" } WaveSpawn // Dummy { WaitForAllSpawned "a1.25" Name "done1" } WaveSpawn // Dummy { WaitForAllSpawned "a1.3" Name "done1" } WaveSpawn { WaitForAllDead "done1" Name "relay1" FirstSpawnOutput { Target stage_one_barrier_disable Action Trigger } } WaveSpawn { Name "a2.1" SpawnCount 6 MaxActive 12 WaitForAllDead "done1" TotalCount 24 WaitBeforeStarting 3 WaitBetweenSpawns 7 where spawnbot_controlpoint_mid TotalCurrency 25 TFBot { Template T_TFBot_Sniper_Huntsman Skill Normal Attributes AlwaysCrit Attributes DisableDodge CharacterAttributes { "crit mod disabled" 0 "force distribute currency on death" 1 } AddCond { Name "TF_COND_REPROGRAMMED" } AddCond { Name "TF_COND_INVULNERABLE" Duration 1 } Action Mobber } } WaveSpawn { Name "a2.2" SpawnCount 1 MaxActive 2 TotalCount 2 WaitForAllDead "done1" WaitBeforeStarting 5 WaitBetweenSpawns 26 TotalCurrency 100 Where spawnbot_controlpoint_mid Squad { TFBot { Template T_TFBot_Giant_Soldier_SlowBarrage Attributes DisableDodge Attributes AlwaysCrit Skill Expert CharacterAttributes { "voice pitch scale" 0 "damage force reduction" 0 "crit mod disabled" 0 "airblast vulnerability multiplier" 0 "force distribute currency on death" 1 } AddCond { Name "TF_COND_REPROGRAMMED" } AddCond { Name "TF_COND_INVULNERABLE" Duration 1 } Action Mobber } TFBot { Template T_TFBot_Giant_Medic Attributes DisableDodge Skill Expert CharacterAttributes { "voice pitch scale" 0 "damage force reduction" 0 "crit mod disabled" 0 "airblast vulnerability multiplier" 0 "force distribute currency on death" 1 } AddCond { Name "TF_COND_REPROGRAMMED" } AddCond { Name "TF_COND_INVULNERABLE" Duration 1 } Action Mobber } } } WaveSpawn { Name "a2.3" SpawnCount 4 TotalCount 24 MaxActive 12 TotalCurrency 100 WaitForAllDead "done1" WaitBeforeStarting 4 WaitBetweenSpawns 9 where spawnbot_behindbarrels_redspawn TFBot { Template T_TFBot_Dragon_Fury Attributes AlwaysCrit Attributes DisableDodge CharacterAttributes { "crit mod disabled" 0 "force distribute currency on death" 1 } AddCond { Name "TF_COND_REPROGRAMMED" } AddCond { Name "TF_COND_INVULNERABLE" Duration 1 } Action Mobber } } WaveSpawn { Name "a3.1" SpawnCount 8 TotalCount 28 MaxActive 12 TotalCurrency 100 WaitForAllDead "a2.2" WaitBeforeStarting 9 WaitBetweenSpawns 6 where spawnbot_bigbuilding_redside TFBot { Class Scout Skill Easy attributes AlwaysCrit Attributes DisableDodge CharacterAttributes { "crit mod disabled" 0 "force distribute currency on death" 1 } AddCond { Name "TF_COND_REPROGRAMMED" } AddCond { Name "TF_COND_INVULNERABLE" Duration 1 } Action Mobber } } WaveSpawn { Name "a3.2" SpawnCount 1 TotalCount 2 MaxActive 2 where spawnbot_bigbuilding_redside TotalCurrency 100 WaitForAllDead "a2.2" WaitBeforeStarting 7 Squad { TFBot { Template T_TFBot_Giant_Heavyweapons_Deflector Attributes DisableDodge CharacterAttributes { "crit mod disabled" 0 "voice pitch scale" 0 "damage force reduction" 0 "crit mod disabled" 0 "airblast vulnerability multiplier" 0 "force distribute currency on death" 1 } AddCond { Name "TF_COND_REPROGRAMMED" } AddCond { Name "TF_COND_INVULNERABLE" Duration 1 } Action Mobber } TFBot { Template T_TFBot_Giant_Medic Attributes DisableDodge CharacterAttributes { "crit mod disabled" 0 "voice pitch scale" 0 "damage force reduction" 0 "crit mod disabled" 0 "airblast vulnerability multiplier" 0 "force distribute currency on death" 1 } AddCond { Name "TF_COND_REPROGRAMMED" } AddCond { Name "TF_COND_INVULNERABLE" Duration 1 } Action Mobber } } } WaveSpawn { Name "a3.tank" TotalCount 1 SpawnCount 1 MaxActive 1 WaitForAllDead "a3.2" WaitBeforeStarting 3 WaitBetweenSpawns 0 TotalCurrency 200 Tank { Name "tankboss" StartingPathTrackNode "tank_path_last_1" // thanks to Valve coding, you need to give a tank path the name in the extratankpath syntax, copy that name here then add "_1" at the end. Why is beyond me Health 60000 // change health value accordingly, though a map this big should have a high health tanks like how most Bigrock mission's do Speed 75 SolidToBrushes 1 ClassIcon tank_red Teamnum 2 // makes the tank's team red Model //Set custom model on tank. Will spit harmless errors on client console if the model does not have enough sequences { Default "models/bots/boss_bot/boss_tankred.mdl" Damage1 "models/bots/boss_bot/boss_tankred_damage1.mdl" Damage2 "models/bots/boss_bot/boss_tankred_damage2.mdl" Damage3 "models/bots/boss_bot/boss_tankred_damage3.mdl" Destruction "models/bots/boss_bot/boss_tankred_part1_destruction.mdl" LeftTrack "models/bots/boss_bot/tankred_track_l.mdl" RightTrack "models/bots/boss_bot/tankred_track_r.mdl" Bomb "models/bots/boss_bot/bombblue_mechanism.mdl" } OnKilledOutput { Target boss_dead_relay Action Trigger } OnBombDroppedOutput { Target redwin_relay Action Trigger } } } WaveSpawn { Name "a3.tanksupport" TotalCount 40 SpawnCount 1 MaxActive 12 where spawnbot_hatchupper WaitForAllDead "a3.2" WaitBeforeStarting 6 WaitBetweenSpawns 2 TotalCurrency 100 TFBot { Class Soldier Item "The Direct Hit" Name "Rapid Direct Hit" Attributes AlwaysCrit ClassIcon soldier_directhit_infinite Attributes SpawnWithFullCharge Attributes DisableDodge CharacterAttributes { "crit mod disabled" 0 "force distribute currency on death" 1 } ItemAttributes { ItemName "TF_WEAPON_ROCKETLAUNCHER" "faster reload rate" -0.8 "fire rate bonus" 0.6 } AddCond { Name "TF_COND_REPROGRAMMED" } AddCond { Name "TF_COND_INVULNERABLE" Duration 2 } Action Mobber } } WaveSpawn { Name "a3.tanksupport2" TotalCount 36 SpawnCount 2 MaxActive 16 where spawnbot_hatchlower WaitForAllDead "a3.2" WaitBeforeStarting 6.5 WaitBetweenSpawns 4.5 TotalCurrency 100 TFBot { Template T_TFBot_Dragon_Fury Attributes AlwaysCrit Attributes DisableDodge CharacterAttributes { "crit mod disabled" 0 "force distribute currency on death" 1 } AddCond { Name "TF_COND_REPROGRAMMED" } AddCond { Name "TF_COND_INVULNERABLE" Duration 1 } Action Mobber } } WaveSpawn { Name "a3.tanksupportGiant" TotalCount 4 MaxActive 2 SpawnCount 1 Where spawnbot_hatchupper WaitForAllSpawned "a3.tank" WaitBeforeStarting 4 WaitBetweenSpawns 18 TFBot { Template T_TFBot_Giant_Soldier_Spammer Attributes AlwaysCrit Attributes DisableDodge CharacterAttributes { "crit mod disabled" 0 "voice pitch scale" 0 "damage force reduction" 0 "crit mod disabled" 0 "airblast vulnerability multiplier" 0 "force distribute currency on death" 1 } AddCond { Name "TF_COND_REPROGRAMMED" } AddCond { Name "TF_COND_INVULNERABLE" Duration 1 } Action Mobber } } WaveSpawn // Dummy { WaitForAllDead "a3.tank" Name "done2" } WaveSpawn // Dummy { WaitForAllDead "a3.tanksupportGiant" Name "done2" } WaveSpawn // Dummy { WaitForAllSpawned "a3.2" Name "done2" } WaveSpawn // Dummy { WaitForAllSpawned "a3.1" Name "done2" } WaveSpawn { WaitForAllDead "done2" Name "relay2" FirstSpawnOutput { Target stage_three_barrier_disable Action Trigger } } WaveSpawn { Name "BLU_Engie" WaitForAllDead "done2" where spawnbot TotalCount 2 MaxActive 1 SpawnCount 1 Support 1 WaitBeforeStarting 4 WaitBetweenSpawns 10 TFBot { Template T_TFBot_Engineer_Sentry_Teleporter } } WaveSpawn { Name "a4.1" TotalCount 1 SpawnCount 1 MaxActive 1 where spawnbot_hatchupper TotalCurrency 150 WaitBeforeStarting 4 WaitForAllDead "done2" FirstSpawnWarningSound "vo\mvm\mght\soldier_mvm_m_laughlong01.mp3" TFBot { ClassIcon chief_captain_soldier_red_nys Health 38000 Attributes DisableDodge Class Soldier Attributes MiniBoss WeaponRestrictions PrimaryOnly Name "Giant Chief RED Captain" Attributes holdfireuntilfullreload Item "The Team Captain" Item "Kringle Collection" Skill Expert Attributes UseBossHealthBar ItemAttributes { ItemName "tf_weapon_rocketlauncher" "Projectile speed increased" 0.4 "dmg bonus vs buildings" 3 "damage bonus" 1.75 "Reload time decreased" 0.05 "clip size upgrade atomic" 70 "fire rate bonus" 0.03 "projectile spread angle penalty" 10 } CharacterAttributes { "move speed bonus" 0.5 "rage giving scale" 0.2 "override footstep sound set" 3 "crit mod disabled" 0 "voice pitch scale" 0 "damage force reduction" 0 "crit mod disabled" 0 "airblast vulnerability multiplier" 0 "force distribute currency on death" 1 } AddCond { Name "TF_COND_REPROGRAMMED" } AddCond { Name "TF_COND_INVULNERABLE" Duration 1 } Action Mobber } } WaveSpawn // Dummy { WaitForAllDead "a4.1" Name "done" } WaveSpawn // Will open the hatch when both Blast Soldier wavespawns are gone { WaitForAllDead "done" Name "relay" FirstSpawnOutput { Target hatch_reveal_relay Action Trigger } } WaveSpawn { Name "lastbots" WaitForAllDead "a3.tanksupport" Where spawnbot_redspawn TotalCount 9999 MaxActive 15 SpawnCount 6 WaitBeforeStarting 6 WaitBetweenSpawns 8 TotalCurrency 0 RandomSpawn 1 Support 1 RandomChoice { TFBot { Template T_TFBot_Pyro_Flaregun ClassIcon spammer CharacterAttributes { "crit mod disabled" 0 "force distribute currency on death" 1 } AddCond { Name "TF_COND_REPROGRAMMED" } AddCond { Name "TF_COND_INVULNERABLE" Duration 1 } Action Mobber } TFBot { Template T_TFBot_Soldier_Extended_Buff_Banner ClassIcon spammer CharacterAttributes { "crit mod disabled" 0 "force distribute currency on death" 1 } AddCond { Name "TF_COND_REPROGRAMMED" } AddCond { Name "TF_COND_INVULNERABLE" Duration 1 } Action Mobber } TFBot { Template T_TFBot_Soldier_Extended_Concheror Attributes DisableDodge Skill Expert ClassIcon spammer CharacterAttributes { "crit mod disabled" 0 "force distribute currency on death" 1 } AddCond { Name "TF_COND_REPROGRAMMED" } AddCond { Name "TF_COND_INVULNERABLE" Duration 1 } Action Mobber } TFBot { Template T_TFBot_Sniper_Huntsman Attributes DisableDodge ClassIcon spammer CharacterAttributes { "crit mod disabled" 0 "force distribute currency on death" 1 } AddCond { Name "TF_COND_REPROGRAMMED" } AddCond { Name "TF_COND_INVULNERABLE" Duration 1 } Action Mobber } TFBot { Template T_TFBot_Demo_Burst Attributes DisableDodge ClassIcon spammer CharacterAttributes { "crit mod disabled" 0 "force distribute currency on death" 1 } AddCond { Name "TF_COND_REPROGRAMMED" } AddCond { Name "TF_COND_INVULNERABLE" Duration 1 } Action Mobber } } } WaveSpawn { Name "lastbots_engies" WaitForAllSpawned "a4.1" TotalCount 6 Where spawnbot_redspawn Where spawnbot_staircase_flankside Where spawnbot_treecover_flankside Where spawnbot_bigbuilding_redside MaxActive 6 SpawnCount 1 WaitBeforeStarting 0 WaitBetweenSpawns 0.01 TotalCurrency 0 Support Limited RandomSpawn 1 TFBot { Template T_TFBot_Engineer_Sentry_Battle CharacterAttributes { "crit mod disabled" 0 "force distribute currency on death" 1 } AddCond { Name "TF_COND_REPROGRAMMED" } AddCond { Name "TF_COND_INVULNERABLE" Duration 1 } } } } }