// Creator: Crilly https://steamcommunity.com/profiles/76561198011848234/ // // Credits: // Royal -made the original build-a-bot script that is used as a base for giant build-a-bots // Hellmet -a lot of the internal logic is based on numerator and denominator // B855 -Code for making wrenching allies take metal was taken from his tank repair script // Washy -Concept behind checking when you've hit an ally with your melee to repair them //planned wrench-to-class mapping: //stock: soldier //gunslinger: scout //southern hospitality: pyro //jag: demo //eureka effect: heavy #base robot_standard.pop #base robot_giant.pop #base robotize_lines.pop //red robot voices by B855 // WAVE 1 - 0$ + B(100$) // ------------------- // TOTAL - 0$ + B(100$) WaveSchedule { StartingCurrency 2000 CanBotsAttackWhileInSpawnRoom no RespawnWaveTime 6 NoRomevisionCosmetics 1 BonusRatioHalf 2 //no bonus BonusRatioFull 2 ForceRedMoney 1 //collecting money as an engie is suffering AllowJoinTeamBlueMax 6 RespawnWaveTimeBlue 1 FixedRespawnWaveTimeBlue 1 FixWavespawnReserveSlotsOnDisabledSpawnbot 1 // Fix wavespawn reserving slots even when spawnbot is disabled AllowJoinTeamBlue 1 AllowMultipleSappers 0 AllowBombBuffsForPlayerCarriers 0 BotsUsePlayerTeleporters 0 // Should bots use player teleporter entrances (default: 1) BodyPartScaleSpeed 100 BluPlayersAreRobots 1 BluHumanFlagCapture 0 BotHumansHaveEyeGlow 0 BluHumanFlagPickup 0 BluHumanInfiniteCloak 0 BotTeleportUberDuration 0 BluHumanTeleportOnSpawn 0 BluHumanBotTeleporter 0 BotsUsePlayerTeleporters 0 BunnyHop 2 AllowBotExtraSlots 1 BonusRatioHalf 2 DisplayRobotDeathNotice 1 EngineerPushRange 1 HumansMustJoinTeam blue ImprovedAirblast 1 MaxSpectators 3 NoMissionInfo 0 NoCreditsVelocity 1 NoRomevisionCosmetics 1 NoThrillerTaunt 1 NoReanimators 1 NoMvMDeathTune 1 NoHolidayPickups 1 RemoveBluVelocityLimit 1 RobotLimit 45 NoRedBotsRandomCrit 1 ReverseWinConditions 1 BluHumanInfiniteAmmo 0 //so you have limited metal StuckTimeMultiplier 3.5 SetCreditTeam 3 SniperAllowHeadshots 1 SentryBusterFriendlyFire 0 SetCreditTeam 3 SniperAllowHeadshots 1 TextPrintTime 0 UpgradeStationKeepWeapons 1 WaveStartCountdown 3 DisallowUpgrade "engy sentry fire rate increased" DisallowUpgrade { Upgrade "projectile penetration" MaxLevel 0 ItemName "the rescue ranger" } DisableSound "Announcer.MVM_Game_Over_Loss" DisableSound "Announcer.MVM_Wave_Lose" DisableSound "music.mvm_lost_wave" DisableSound "Announcer.MVM_All_Dead" PrecacheSound "tokamak_wind_up.wav" //precaches for tokamak PrecacheSound "tokamak_wind_down.wav" PrecacheSound "madness_combat_remix_cheshyre_madness_clipped.mp3" PrecacheSound "transformers_devastation_soundtrack_decepticon_sergeant_extended.mp3" PrecacheSound "mobocracy/rescue.wav" PrecacheModel "models/workshop/weapons/c_models/c_tokamak/c_tomislav.mdl" PrecacheModel "models/props_mvm/robot_spawnpoint.mdl" PrecacheModel "models/props_mvm/reversemvm_redwall_256x288.mdl" PrecacheModel "models/props_mvm/reversemvm_redwall_640x418.mdl" PrecacheModel "models/bots/scout/bot_scout_gray.mdl" PrecacheModel "models/bots/soldier_boss/bot_soldier_gray_boss.mdl" PrecacheModel "models/bots/soldier/bot_soldier_gray.mdl" PrecacheModel "models/bots/demo/bot_demo_gray.mdl" PrecacheModel "models/weapons/w_models/w_grenade_grenadelauncher_gray.mdl" PrecacheGeneric "materials/hud/leaderboard_class_gry_lite_blush.vtf" PrecacheGeneric "materials/hud/leaderboard_class_gry_lite_blush.vmt" Templates { T_TFBot_Soldier_RocketPush_Reserve //A concept inspired by the Chief Pyro's Revenge, before I deleted his knockback { Class Soldier Skill Expert Item "The Liberty Launcher" Item "The Reserve Shooter" Item "The Market Gardener" Name "Blast Combo Soldier" ClassIcon soldier_blast_combo Attributes HoldFireUntilFullReload AimTrackingInterval 0.025 AimAt Feet AimLeadProjectileSpeed 1 ItemAttributes { ItemName "The Liberty Launcher" "damage blast push" 2.4 "damage bonus" .65 "fire rate bonus" 0.001 "clip size upgrade atomic" -3 "faster reload rate" 0.8 "Blast radius decreased" 0.8 } ItemAttributes { ItemName "The Reserve Shooter" "passive reload" 1 } CharacterAttributes { "deploy time increased" 0.01 } Item "Soldier's Stash" ItemModel { ItemName "Soldier's Stash" Model "models/player/items/soldier/soldier_jeepcap.mdl" } ItemAttributes { ItemName "Soldier's Stash" "attachment size" 2.3 "attach particle effect" 65 } SpawnTemplate { Name "ReserveCombo" } } T_TFBot_Soldier_Burst //taken from steel skyline by Sir Metaladon. { Class Soldier Skill Expert WeaponRestrictions PrimaryOnly Name "Burst Fire Soldier" ClassIcon soldier_burstfire_giant Attributes HoldFireUntilFullReload ItemAttributes { ItemName "TF_WEAPON_ROCKETLAUNCHER" "damage bonus" .45 "fire rate bonus" 0.001 "clip size upgrade atomic" -1 "faster reload rate" 1.5 "projectile spread angle penalty" 2 } } T_TFBot_Demo_Zweihander //Sidegrade to samurai, Draws sword at close range, launcher at not close range { Class Demoman Skill Expert Scale "1.3" Health 650 Item "Upgradeable TF_WEAPON_GRENADELAUNCHER" Item "The Tide Turner" Item "The Claidheamohmor" Item "Platinum Pickelhaube" Item "The Byte'd Beak" Name "Zweihander Hybrid Knight" ClassIcon demo_hybrid_3 //good enough WeaponSwitch { Type "Melee" MaxTargetRange 300 MinTargetRange 0 Delay 0.1 Repeats 0 Cooldown 0 IfSeeTarget 1 } WeaponSwitch { Type "Primary" MaxTargetRange 9999 MinTargetRange 300 Delay 0.1 Repeats 0 Cooldown 0 IfSeeTarget 1 } ItemAttributes { ItemName "The Claidheamohmor" "paintkit_proto_def_index" 414 "set_item_texture_wear" 0 "melee range multiplier" 1.2 "hand scale" 1.25 "damage bonus" 1.5 } ItemAttributes { ItemName "The Tide Turner" "Attack not cancel charge" 1 "charge impact damage increased" 2 //originally this was the splendid, I want it to hit that hard on the charge "damage blast push" 2 } ItemAttributes { ItemName "Upgradeable TF_WEAPON_GRENADELAUNCHER" "passive reload" 1 "faster reload rate" 0.01 "fire rate bonus" 0.8 "paintkit_proto_def_index" 414 "set_item_texture_wear" 0 } CharacterAttributes { "deploy time increased" 0.01 "charge time increased" 2 "charge recharge rate increased" 1.25 "head scale" 0.7 } } T_TFBot_Giant_Demo_Zweihander //Sidegrade to samurai, Draws sword at close range, launcher at not close range { Class Demoman Skill Expert Health 3300 Item "Upgradeable TF_WEAPON_GRENADELAUNCHER" Item "The Tide Turner" Item "The Claidheamohmor" Item "Platinum Pickelhaube" Item "The Byte'd Beak" Name "Giant Zweihander Hybrid Knight" ClassIcon demo_hybrid_3_giant //good enough Attributes HoldFireUntilFullReload Attributes MiniBoss Tag bot_giant WeaponSwitch { Type "Melee" MaxTargetRange 300 MinTargetRange 0 Delay 0.1 Repeats 0 Cooldown 0 IfSeeTarget 1 } WeaponSwitch { Type "Primary" MaxTargetRange 9999 MinTargetRange 300 Delay 0.1 Repeats 0 Cooldown 0 IfSeeTarget 1 } ItemAttributes { ItemName "The Claidheamohmor" "paintkit_proto_def_index" 414 "set_item_texture_wear" 0 "melee range multiplier" 1.2 "hand scale" 1.25 "damage bonus" 1.5 //nerfed because, while funny, one shotting spies and scouts is kinda problematic } ItemAttributes { ItemName "The Tide Turner" "Attack not cancel charge" 1 "lose demo charge on damage when charging" 1 "charge impact damage increased" 10 //if this thing hits you, it is also probably your fault "damage blast push" 5 "full charge turn control" 1 } ItemAttributes { ItemName "Upgradeable TF_WEAPON_GRENADELAUNCHER" "passive reload" 1 "faster reload rate" -0.4 "fire rate bonus" 0.75 "paintkit_proto_def_index" 414 "set_item_texture_wear" 0 } CharacterAttributes { "deploy time increased" 0.01 "charge time increased" 3 //nerfed due to them displacing themselves like morons "charge recharge rate increased" 1.25 "move speed bonus" 0.5 "damage force reduction" 0.5 "airblast vulnerability multiplier" 0.5 "override footstep sound set" 4 } } T_TFBot_Giant_Soldier_RocketPush_Reserve_Boss { Class Soldier Skill Expert Item "The Liberty Launcher" Item "The Reserve Shooter" Item "Jumper's Jeepcap" ClassIcon soldier_blast_combo_giant Attributes MiniBoss Attributes HoldFireUntilFullReload Attributes UseBossHealthBar AlwaysGlow 1 Name "Chief Blast Combo Soldier" Scale 1.9 AimAt Feet AimLeadProjectileSpeed 1 Health 20000 ItemAttributes { ItemName "The Liberty Launcher" "damage blast push" 3 "fire rate bonus" 0.25 "clip size upgrade atomic" 3 "faster reload rate" 0.8 "Blast radius decreased" 1.2 "projectile spread angle penalty" 4 } ItemAttributes { ItemName "The Reserve Shooter" "fire rate bonus" 0.9 "bullets per shot bonus" 10 "damage penalty" 0.6 "passive reload" 1 "faster reload rate" 0.01 "weapon spread bonus" 0.35 } CharacterAttributes { "move speed bonus" 0.4 "override footstep sound set" 3 "damage force reduction" 0.4 "airblast vulnerability multiplier" 0.4 "airblast vertical vulnerability multiplier" 0.1 "deploy time increased" 0.01 } InterruptAction //so he stays around the factory zone { Target "1176.13 109.41 82.46" Delay 0.1 Repeats 0 Cooldown 15 Duration 0.01 Distance 200 WaitUntilDone 1 } FireInput { Target !self Action $SetLocalOrigin Param "1326.03 735.52 183.54" Delay 0.01 Repeats 1 } SpawnTemplate { Name "ReserveCombo" } SpawnTemplate { Name "W1_Chief_Objective_Logic" } } T_TFBot_Giant_Soldier_RocketPush_Reserve { Class Soldier Skill Expert Item "The Liberty Launcher" Item "The Reserve Shooter" Item "Jumper's Jeepcap" ClassIcon soldier_blast_combo_giant Attributes MiniBoss Attributes HoldFireUntilFullReload Name "Giant Blast Combo Soldier" Health 3300 AimAt Feet AimLeadProjectileSpeed 1 ItemAttributes { ItemName "The Liberty Launcher" "damage blast push" 3 "damage bonus" 0.75 "fire rate bonus" 0.25 "clip size upgrade atomic" 5 "faster reload rate" 0.2 "Blast radius decreased" 1.2 "projectile spread angle penalty" 4 } ItemAttributes { ItemName "The Reserve Shooter" "fire rate bonus" 1.25 "bullets per shot bonus" 10 "damage penalty" 0.5 "passive reload" 1 "faster reload rate" 0.01 "weapon spread bonus" 0.65 } CharacterAttributes { "move speed bonus" 0.5 "override footstep sound set" 3 "damage force reduction" 0.4 "airblast vulnerability multiplier" 0.4 "airblast vertical vulnerability multiplier" 0.1 "deploy time increased" 0.01 } SpawnTemplate { Name "ReserveCombo" } } T_TFBot_Giant_Soldier_Airstrike { Class Soldier Name "Giant Airstrike Burst Soldier" Item "The B.A.S.E. Jumper" Item "The Air strike" ClassIcon soldier_airstrike_lite_burstfire_giant Health 3800 Skill Expert WeaponRestrictions PrimaryOnly Attributes MiniBoss Attributes HoldFireUntilFullReload Attributes AutoJump AutoJumpMin 8 AutoJumpMax 8 ItemAttributes { ItemName "The Air strike" "move speed bonus" 0.5 "faster reload rate" 0.8 "fire rate bonus" 0.1 "clip size upgrade atomic" 12.0 } CharacterAttributes { "damage force reduction" 0.4 "airblast vulnerability multiplier" 0.4 "override footstep sound set" 3 "increased jump height" 3 "boots falling stomp" 1 "cancel falling damage" 1 } SpawnTemplate { Name "ParachuteAutoDeployHigh" } } T_TFBot_Giant_Medic_Leaping { Class Medic Name "Giant Leaping Medic" ClassIcon medic_jumping_giant Skill Expert Health 4500 Item "The Quick-Fix" Item "The Surgeon's Stahlhelm" Item "The Hanger-On Hood" Item "The Flight of the Monarch" // WeaponRestrictions SecondaryOnly Attributes AutoJump AutoJumpMin 8 AutoJumpMax 8 Attributes MiniBoss ItemAttributes { ItemName "The Quick-Fix" "ubercharge rate bonus" 0.01 // pretty much disables ubercharge } ItemAttributes { ItemName "TF_WEAPON_SYRINGEGUN_MEDIC" "damage penalty" 0.1 } CharacterAttributes { "move speed bonus" 0.6 //to help with disconnect issues "damage force reduction" 0.6 "airblast vulnerability multiplier" 0.6 "heal rate bonus" 200 // only works on mediguns that have this attribute ie quickfix "health regen" 40 "increased air control" 20.0 //to help with disconnect issues "increased jump height" 3 "boots falling stomp" 1 "cancel falling damage" 1 "health from healers reduced" 0 } SpawnTemplate { Name "ParachuteAutoDeployHigh" } } T_TFBot_Soldier_Skilled { Class Soldier Skill Expert Name "Veteran Soldier" ClassIcon soldier_airstrike RocketJump 1 AimLeadProjectileSpeed 1 AimTrackingInterval 0.025 Item "Tyrantium Helmet" Item "Upgradeable TF_WEAPON_ROCKETLAUNCHER" ItemAttributes { ItemName "Tyrantium Helmet" "attach particle effect" 65 } ItemAttributes { ItemName "Upgradeable TF_WEAPON_ROCKETLAUNCHER" "paintkit_proto_def_index" 414 "set_item_texture_wear" 0 "passive reload" 1 } CharacterAttributes { "rocket jump damage reduction" 0 "cancel falling damage" 1 } } T_TFBot_Giant_Pyro_Fury { Class Pyro Health 3000 Skill Expert ClassIcon "pyro_dragon_fury_swordstone_giant" Tag bot_giant Name "Giant Dragon's Fury Pyro" Attributes MiniBoss Item "The Dragon's Fury" Item "The Flare Gun" WeaponRestrictions PrimaryOnly MaxVisionRange 1120 ItemAttributes { ItemName "The Dragon's Fury" "damage bonus" 1.20 } CharacterAttributes { "airblast disabled" 1 "damage force reduction" 0.6 "airblast vulnerability multiplier" 0.6 "override footstep sound set" 6 "move speed bonus" 0.5 } } T_TFBot_Giant_Pyro_Fury_Combo { Class Pyro Health 3000 Skill Expert ClassIcon "pyro_dragon_combo" Tag bot_giant Name "Giant Combo Fury Pyro" Attributes MiniBoss Item "The Dragon's Fury" Item "The Flare Gun" WeaponRestrictions PrimaryOnly MaxVisionRange 1120 WeaponSwitch { Type "Primary" MaxTargetRange 1120 MinTargetRange -1 Delay 0.1 Repeats 0 Cooldown 0 IfSeeTarget 1 } WeaponSwitch { Type "Secondary" MaxTargetRange 9999 MinTargetRange 1120 Delay 0.1 Repeats 0 Cooldown 0 IfSeeTarget 1 } ItemAttributes { ItemName "the flare gun" "fire rate bonus" 0.5 "faster reload rate" 0.5 "Projectile speed increased" 1.3 } ItemAttributes { ItemName "The Dragon's Fury" "damage bonus" 1.20 } CharacterAttributes { "airblast disabled" 1 "damage force reduction" 0.6 "airblast vulnerability multiplier" 0.6 "override footstep sound set" 6 "move speed bonus" 0.5 } } T_TFBot_Pyro_Phlog { Class Pyro Skill Hard Item "The Phlogistinator" ExtAttr AlwaysFireWeaponAlt Item "Respectless Robo-Glove" Name "Phlog Pyro" ClassIcon "pyro_phlog" } T_TFBot_Grey_Chief { Class Soldier Name "Monochrome" ClassIcon gry_lite Health 60000 Skill Expert Attributes MiniBoss Attributes UseBossHealthBar Tag bot_giant UseMeleeThreatPrioritization 1 CustomEyeGlowColor "255 255 255" UseCustomModel "models/bots/soldier_boss/bot_soldier_gray_boss.mdl" AddCond //additional insurance on top of the lua mechanism { Name TF_COND_PREVENT_DEATH //makes them survive fatal damage with 1 health } FireInput { Target "alert_text" Action "Display" Delay 0.5 Repeats 1 } FireInput { Target "upper_text" Action "Display" Delay 11 Repeats 1 } FireInput { Target "middle_text" Action "Display" Delay 11.2 Repeats 1 } FireInput { Target !self Action $SetLocalOrigin Param "-1853.44 -1898.36 449.11" Delay 0 Repeats 1 } FireInput { Target !self Action $PlaySound Param "mvm\mvm_tele_deliver.wav" Delay 0 Repeats 1 } FireInput { Target !self Action $PlaySound Param "siren2.wav" Delay 0 Repeats 1 } FireInput { Target w3_music Action Trigger Delay 0 Repeats 1 } FireInput { Target player Action $DisplayTextChat Param "{BBFFBB}Now Playing: {FF0000}Cheshyre Madness Remix, by {FF00FF}The Orichalcon{FF0000}" Delay 0.01 Repeats 1 IfHealthBelow 80001 } FireInput { Target player Action $DisplayTextChat Param "{EEEEEE}Monochrome{reset} : {FFEEEE}ACCESS DENIED" Delay 4 Repeats 1 IfHealthBelow 80001 } FireInput { Target player Action $DisplayTextChat Param "{EEEEEE}Monochrome{reset} : {FFAAAA}Personal intervention required." Delay 7 Repeats 1 IfHealthBelow 80001 } FireInput { Target player Action $DisplayTextChat Param "{EEEEEE}Monochrome{reset} : {FF9191}ENGAGE" Delay 11 Repeats 1 IfHealthBelow 80001 } FireInput { Target spawnbot_gry_monochrome_support1 Action Enable Delay 11 Repeats 1 } Attributes DisableDodge Action Mobber InterruptAction //so he stays around the hatch { Target "-425.71 -1293.21 6.15" Delay 0.1 Repeats 0 Cooldown 25 Duration 0.01 Distance 1000 WaitUntilDone 1 } Addcond { Name TF_COND_REPROGRAMMED_NEUTRAL Delay 10 } AddCond { Index 5 Delay 0.1 Duration 16 } AddCond { Name "TF_COND_MVM_BOT_STUN_RADIOWAVE" Delay 0.1 Duration 10 } SpawnTemplate "GreyGlowsMK2" ChangeAttributes //Periodically changes bot attributes, defined in EventChangeAttributes { Delay 0.1 //Time before the first bot attribute change (Default: 10) Repeats 1 //How many times should bot change attributes in total (Default: 0 - Infinite) IfHealthBelow 40000 //When set, the task activates only when the bot health is below specified value Name "A" // Name of the bot attributes listed in EventChangeAttributes } FireInput { Target player Action $DisplayTextChat Param "{EEEEEE}Monochrome{reset} : {CCCCCC}Insufficient" Delay 0.01 Repeats 1 IfHealthBelow 40000 } FireInput { Target spawnbot_gry_monochrome_support1 Action Disable Delay 0.01 Repeats 1 IfHealthBelow 40000 } FireInput { Target spawnbot_gry_monochrome_support2 Action Enable Delay 0.01 Repeats 1 IfHealthBelow 40000 } FireInput { Target player Action $DisplayTextChat Param "{EEEEEE}Monochrome{reset} : {FFEEEE}Engaging Laser Guidance Module" Delay 1 Repeats 1 IfHealthBelow 40000 } FireInput { Target player Action $DisplayTextChat Param "{EEEEEE}Monochrome{reset} : {FF8888}Integrity: 33%" Delay 0.01 Repeats 1 IfHealthBelow 20000 } FireInput { Target player Action $DisplayTextChat Param "{EEEEEE}Monochrome{reset} : {FF4444}Calling in all available support" Delay 2 Repeats 1 IfHealthBelow 20000 } FireInput { Target player Action $DisplayTextChat Param "{EEEEEE}Monochrome{reset} : {FF2222}Overclocking existing weapon systems" Delay 4 Repeats 1 IfHealthBelow 20000 } FireInput { Target spawnbot_gry_monochrome_support2 Action Disable Delay 0.01 Repeats 1 IfHealthBelow 20000 } FireInput { Target spawnbot_gry_monochrome_support3 Action Enable Delay 2 Repeats 1 IfHealthBelow 20000 } SpawnTemplate "MonochromeLogic" SpawnTemplate { Name "MonochromeSpawner" "origin" "0, 0, 20" } ChangeAttributes //Periodically changes bot attributes, defined in EventChangeAttributes { Delay 4 //waits for him to say that he is switching Repeats 1 //How many times should bot change attributes in total (Default: 0 - Infinite) IfHealthBelow 20000 //When set, the task activates only when the bot health is below specified value Name "B" // Name of the bot attributes listed in EventChangeAttributes } FireInput { Target spawnbot_gry_monochrome_support3 Action Disable Delay 0.01 Repeats 1 IfHealthBelow 3 } FireInput { Target player Action $DisplayTextChat Param "{AAAAFF}The Hatch{EEEE33} is now unlocked!" Delay 6 Repeats 1 IfHealthBelow 3 } FireInput { Target wave3_hatch_open Action trigger Delay 6 Repeats 1 IfHealthBelow 3 } FireInput { Target player Action $DisplayTextChat Param "{EEEEEE}Monochrome{reset} : {FF2222}CRITICAL DAMAGE" Delay 0.01 Repeats 1 IfHealthBelow 3 } FireInput { Target player Action $DisplayTextChat Param "{EEEEEE}Monochrome{reset} : {FF2222}WITHDRAW" Delay 0.5 Repeats 1 IfHealthBelow 3 } FireInput { Target player Action $DisplayTextChat Param "{EEEEEE}Monochrome{reset} : {FF2222}WITHDRAW" Delay 2.5 Repeats 1 IfHealthBelow 3 } FireInput { Target player Action $DisplayTextChat Param "{EEEEEE}Monochrome{reset} : {FF2222}WITHDRAW" Delay 4.5 Repeats 1 IfHealthBelow 3 } AddCond { Index 5 Delay 0.1 Duration 11 IfHealthBelow 3 } AddCond { Name "TF_COND_MVM_BOT_STUN_RADIOWAVE" Delay 0.1 Duration 10 IfHealthBelow 3 } EventChangeAttributes { Default { Item "Upgradeable TF_WEAPON_ROCKETLAUNCHER" Item "Upgradeable TF_WEAPON_SHOTGUN_PRIMARY" Attributes HoldFireUntilFullReload ItemAttributes { ItemName "Upgradeable TF_WEAPON_ROCKETLAUNCHER" "faster reload rate" -0.8 "fire rate bonus" 0.4 "collect currency on kill" 1 "paintkit_proto_def_index" 420 "set_item_texture_wear" 0 "add cond when active" 36 "crit vs burning players" 1 "crit vs non burning players" 1 "projectile trail particle" "eyeboss_projectile" "mult dmg vs giants" 1.5 } ItemAttributes { ItemName "Upgradeable TF_WEAPON_SHOTGUN_PRIMARY" "faster reload rate" 0.01 "damage bonus" 1.25 "weapon spread bonus" 0.4 "fire rate bonus" 1.1 "collect currency on kill" 1 "paintkit_proto_def_index" 420 "set_item_texture_wear" 0 "passive reload" 1 "mult dmg vs giants" 1.5 } CharacterAttributes { "move speed bonus" 0.5 "damage force reduction" 0.01 "airblast vulnerability multiplier" 0.01 "override footstep sound set" 3 "Projectile speed increased" 0.75 "crit mod disabled" 0 "not solid to players" 1 "sniper no headshots" 1 //dummy attrs to lock onto with lua. "cancel falling damage" 1 "duckstreaks active" 1 "dmg taken mult from special damage type 2" 2.5 } Item "Tyrantium Helmet" ItemAttributes { ItemName "Tyrantium Helmet" "set item tint rgb" 16777215 } } A { Item "Upgradeable TF_WEAPON_ROCKETLAUNCHER" Item "Upgradeable TF_WEAPON_SHOTGUN_PRIMARY" Attributes HoldFireUntilFullReload ItemAttributes { ItemName "Upgradeable TF_WEAPON_ROCKETLAUNCHER" "faster reload rate" -0.8 "fire rate bonus" 0.4 "collect currency on kill" 1 "paintkit_proto_def_index" 420 "set_item_texture_wear" 0 "add cond when active" 36 "crit vs burning players" 1 "crit vs non burning players" 1 "projectile trail particle" "eyeboss_projectile" "mod projectile heat follow crosshair" 1 "mod projectile heat seek power" 70 "mod projectile heat aim error" 360 "mod projectile heat aim time" 1 "mult dmg vs giants" 2 } ItemAttributes { ItemName "Upgradeable TF_WEAPON_SHOTGUN_PRIMARY" "faster reload rate" 0.01 "damage bonus" 1.25 "weapon spread bonus" 0.4 "fire rate bonus" 0.5 "collect currency on kill" 1 "add cond when active" 36 "crit vs burning players" 1 "crit vs non burning players" 1 "paintkit_proto_def_index" 420 "set_item_texture_wear" 0 "passive reload" 1 "mult dmg vs giants" 2 } CharacterAttributes { "move speed bonus" 0.5 "damage force reduction" 0.01 "airblast vulnerability multiplier" 0.01 "override footstep sound set" 3 "Projectile speed increased" 0.75 "crit mod disabled" 0 "not solid to players" 1 "sniper no headshots" 1 //dummy attrs to lock onto with lua. "duckstreaks active" 1 "cancel falling damage" 1 "dmg taken mult from special damage type 2" 2.5 } Item "Tyrantium Helmet" ItemAttributes { ItemName "Tyrantium Helmet" "set item tint rgb" 16777215 } } B { Item "Upgradeable TF_WEAPON_ROCKETLAUNCHER" Item "Upgradeable TF_WEAPON_SHOTGUN_PRIMARY" Attributes HoldFireUntilFullReload ItemAttributes { ItemName "Upgradeable TF_WEAPON_ROCKETLAUNCHER" "faster reload rate" -1 "fire rate bonus" 0.4 "collect currency on kill" 1 "paintkit_proto_def_index" 420 "set_item_texture_wear" 0 "add cond when active" 36 "crit vs burning players" 1 "crit vs non burning players" 1 "projectile trail particle" "eyeboss_projectile" "mod projectile heat follow crosshair" 1 "mod projectile heat seek power" 100 "mod projectile heat aim error" 360 "mod projectile heat aim time" 0.7 "mult dmg vs giants" 2 } ItemAttributes { ItemName "Upgradeable TF_WEAPON_SHOTGUN_PRIMARY" "faster reload rate" 0.01 "damage bonus" 1.25 "weapon spread bonus" 0.35 "fire rate bonus" 0.4 "collect currency on kill" 1 "add cond when active" 36 "crit vs burning players" 1 "crit vs non burning players" 1 "paintkit_proto_def_index" 420 "set_item_texture_wear" 0 "passive reload" 1 "mult dmg vs giants" 2 } CharacterAttributes { "move speed bonus" 0.5 "damage force reduction" 0.01 "airblast vulnerability multiplier" 0.01 "override footstep sound set" 3 "Projectile speed increased" 1 "crit mod disabled" 0 "not solid to players" 1 "sniper no headshots" 1 //dummy attrs to lock onto with lua. "duckstreaks active" 1 "cancel falling damage" 1 "dmg taken mult from special damage type 2" 2.5 } Item "Tyrantium Helmet" ItemAttributes { ItemName "Tyrantium Helmet" "set item tint rgb" 16777215 } } } } T_TFBot_Grey_Chief_Funny { Class Soldier Name "MonOwOchrome" ClassIcon gry_lite_blush Health 60000 Skill Expert Attributes MiniBoss Attributes UseBossHealthBar Tag bot_giant UseMeleeThreatPrioritization 1 CustomEyeGlowColor "255 255 255" UseCustomModel "models/bots/soldier_boss/bot_soldier_gray_boss.mdl" AddCond //additional insurance on top of the lua mechanism { Name TF_COND_PREVENT_DEATH //makes them survive fatal damage with 1 health } FireInput { Target "alert_text" Action "Display" Delay 0.5 Repeats 1 } FireInput { Target "upper_text_funny" Action "Display" Delay 11 Repeats 1 } FireInput { Target "middle_text_funny" Action "Display" Delay 11.2 Repeats 1 } FireInput { Target !self Action $SetLocalOrigin Param "-1853.44 -1898.36 449.11" Delay 0 Repeats 1 } FireInput { Target !self Action $PlaySound Param "mvm\mvm_tele_deliver.wav" Delay 0 Repeats 1 } FireInput { Target !self Action $PlaySound Param "siren2.wav" Delay 0 Repeats 1 } FireInput { Target w3_music Action Trigger Delay 0 Repeats 1 } FireInput { Target player Action $SetProp$m_iszClassIcon Param gry_lite_blush Delay 0 Cooldown 0 Repeats 1 IfHealthBelow 80001 } FireInput { Target player Action $DisplayTextChat Param "{BBFFBB}Now Playing: {FF0000}Cheshyre Madness Remix, by {FF00FF}The Orichalcon{FF0000}" Delay 0.01 Repeats 1 IfHealthBelow 80001 } FireInput { Target player Action $DisplayTextChat Param "{ffAAFF}MonOwOchrome{reset} : {FFEEEE}ACCESS DENIED >:(" Delay 4 Repeats 1 IfHealthBelow 80001 } FireInput { Target player Action $DisplayTextChat Param "{ffAAFF}MonOwOchrome{reset} : {FFAAAA}Pewsonaw intewvention requwiwed." Delay 7 Repeats 1 IfHealthBelow 80001 } FireInput { Target player Action $DisplayTextChat Param "{ff88b5}MonOwOchrome{reset} : {FF9191}ENGAGE" Delay 11 Repeats 1 IfHealthBelow 80001 } FireInput { Target spawnbot_gry_monochrome_support1 Action Enable Delay 11 Repeats 1 } Attributes DisableDodge Action Mobber InterruptAction //so he stays around the hatch { Target "-425.71 -1293.21 6.15" Delay 0.1 Repeats 0 Cooldown 25 Duration 0.01 Distance 1000 WaitUntilDone 1 } Addcond { Name TF_COND_REPROGRAMMED_NEUTRAL Delay 10 } AddCond { Index 5 Delay 0.1 Duration 16 } AddCond { Name "TF_COND_MVM_BOT_STUN_RADIOWAVE" Delay 0.1 Duration 10 } SpawnTemplate "GreyGlowsMK2" ChangeAttributes //Periodically changes bot attributes, defined in EventChangeAttributes { Delay 0.1 //Time before the first bot attribute change (Default: 10) Repeats 1 //How many times should bot change attributes in total (Default: 0 - Infinite) IfHealthBelow 40000 //When set, the task activates only when the bot health is below specified value Name "A" // Name of the bot attributes listed in EventChangeAttributes } FireInput { Target player Action $DisplayTextChat Param "{f1d6f0}MonOwOchrome{reset} : {cb82c7}Insuwfficient" Delay 0.01 Repeats 1 IfHealthBelow 40000 } FireInput { Target spawnbot_gry_monochrome_support1 Action Disable Delay 0.01 Repeats 1 IfHealthBelow 40000 } FireInput { Target spawnbot_gry_monochrome_support2 Action Enable Delay 0.01 Repeats 1 IfHealthBelow 40000 } FireInput { Target player Action $DisplayTextChat Param "{f1d6f0}MonOwOchrome{reset} : {ff88b5}Engaging lasew guwidance moduwwe" Delay 1 Repeats 1 IfHealthBelow 40000 } FireInput { Target player Action $DisplayTextChat Param "{f1d6f0}MonOwOchrome{reset} : {ff88b5}Integwity: 33%" Delay 0.01 Repeats 1 IfHealthBelow 20000 } FireInput { Target player Action $DisplayTextChat Param "{f1d6f0}MonOwOchrome{reset} : {ff44bf}Cawwing in aww avaiwabwe suwppowt" Delay 2 Repeats 1 IfHealthBelow 20000 } FireInput { Target player Action $DisplayTextChat Param "{f1d6f0}MonOwOchrome{reset} : {ff228d}Ovewcwocking existing weapon systems" Delay 4 Repeats 1 IfHealthBelow 23333 } FireInput { Target spawnbot_gry_monochrome_support2 Action Disable Delay 0.01 Repeats 1 IfHealthBelow 20000 } FireInput { Target spawnbot_gry_monochrome_support3 Action Enable Delay 2 Repeats 1 IfHealthBelow 20000 } SpawnTemplate "MonochromeLogic" SpawnTemplate { Name "MonochromeSpawner" "origin" "0, 0, 20" } ChangeAttributes //Periodically changes bot attributes, defined in EventChangeAttributes { Delay 4 //waits for him to say that he is switching Repeats 1 //How many times should bot change attributes in total (Default: 0 - Infinite) IfHealthBelow 20000 //When set, the task activates only when the bot health is below specified value Name "B" // Name of the bot attributes listed in EventChangeAttributes } FireInput { Target spawnbot_gry_monochrome_support3 Action Disable Delay 0.01 Repeats 1 IfHealthBelow 3 } FireInput { Target player Action $DisplayTextChat Param "{AAAAFF}The Hatch{EEEE33} is now unlocked!" Delay 6 Repeats 1 IfHealthBelow 3 } FireInput { Target wave3_hatch_open Action trigger Delay 6 Repeats 1 IfHealthBelow 3 } FireInput { Target player Action $DisplayTextChat Param "{f1d6f0}MonOwOchrome{reset} : {ff007f}OWIE" Delay 0.01 Repeats 1 IfHealthBelow 3 } FireInput { Target player Action $DisplayTextChat Param "{f1d6f0}MonOwOchrome{reset} : {ff007f}WIFFDWAH" Delay 0.5 Repeats 1 IfHealthBelow 3 } FireInput { Target player Action $DisplayTextChat Param "{f1d6f0}MonOwOchrome{reset} : {ff007f}WIFFDWAH" Delay 2.5 Repeats 1 IfHealthBelow 3 } FireInput { Target player Action $DisplayTextChat Param "{f1d6f0}MonOwOchrome{reset} : {ff007f}WIFFDWAH" Delay 4.5 Repeats 1 IfHealthBelow 3 } AddCond { Index 5 Delay 0.1 Duration 11 IfHealthBelow 3 } AddCond { Name "TF_COND_MVM_BOT_STUN_RADIOWAVE" Delay 0.1 Duration 10 IfHealthBelow 3 } EventChangeAttributes { Default { Item "Upgradeable TF_WEAPON_ROCKETLAUNCHER" Item "Upgradeable TF_WEAPON_SHOTGUN_PRIMARY" Attributes HoldFireUntilFullReload ItemAttributes { ItemName "Upgradeable TF_WEAPON_ROCKETLAUNCHER" "faster reload rate" -0.8 "fire rate bonus" 0.4 "collect currency on kill" 1 "paintkit_proto_def_index" 420 "set_item_texture_wear" 0 "add cond when active" 36 "crit vs burning players" 1 "crit vs non burning players" 1 "projectile trail particle" "eyeboss_projectile" "mult dmg vs giants" 1.5 } ItemAttributes { ItemName "Upgradeable TF_WEAPON_SHOTGUN_PRIMARY" "faster reload rate" 0.01 "damage bonus" 1.25 "weapon spread bonus" 0.4 "fire rate bonus" 1.1 "collect currency on kill" 1 "paintkit_proto_def_index" 420 "set_item_texture_wear" 0 "passive reload" 1 "mult dmg vs giants" 1.5 } CharacterAttributes { "move speed bonus" 0.5 "damage force reduction" 0.01 "airblast vulnerability multiplier" 0.01 "override footstep sound set" 3 "Projectile speed increased" 0.75 "crit mod disabled" 0 "not solid to players" 1 "sniper no headshots" 1 //dummy attrs to lock onto with lua. "cancel falling damage" 1 "duckstreaks active" 1 "dmg taken mult from special damage type 2" 2.5 } Item "Tyrantium Helmet" ItemAttributes { ItemName "Tyrantium Helmet" "set item tint rgb" 16777215 } } A { Item "Upgradeable TF_WEAPON_ROCKETLAUNCHER" Item "Upgradeable TF_WEAPON_SHOTGUN_PRIMARY" Attributes HoldFireUntilFullReload ItemAttributes { ItemName "Upgradeable TF_WEAPON_ROCKETLAUNCHER" "faster reload rate" -0.8 "fire rate bonus" 0.4 "collect currency on kill" 1 "paintkit_proto_def_index" 420 "set_item_texture_wear" 0 "add cond when active" 36 "crit vs burning players" 1 "crit vs non burning players" 1 "projectile trail particle" "eyeboss_projectile" "mod projectile heat follow crosshair" 1 "mod projectile heat seek power" 70 "mod projectile heat aim error" 360 "mod projectile heat aim time" 1 "mult dmg vs giants" 2 } ItemAttributes { ItemName "Upgradeable TF_WEAPON_SHOTGUN_PRIMARY" "faster reload rate" 0.01 "damage bonus" 1.25 "weapon spread bonus" 0.4 "fire rate bonus" 0.5 "collect currency on kill" 1 "add cond when active" 36 "crit vs burning players" 1 "crit vs non burning players" 1 "paintkit_proto_def_index" 420 "set_item_texture_wear" 0 "passive reload" 1 "mult dmg vs giants" 2 } CharacterAttributes { "move speed bonus" 0.5 "damage force reduction" 0.01 "airblast vulnerability multiplier" 0.01 "override footstep sound set" 3 "Projectile speed increased" 0.75 "crit mod disabled" 0 "not solid to players" 1 "sniper no headshots" 1 //dummy attrs to lock onto with lua. "duckstreaks active" 1 "cancel falling damage" 1 "dmg taken mult from special damage type 2" 2.5 } Item "Tyrantium Helmet" ItemAttributes { ItemName "Tyrantium Helmet" "set item tint rgb" 16777215 } } B { Item "Upgradeable TF_WEAPON_ROCKETLAUNCHER" Item "Upgradeable TF_WEAPON_SHOTGUN_PRIMARY" Attributes HoldFireUntilFullReload ItemAttributes { ItemName "Upgradeable TF_WEAPON_ROCKETLAUNCHER" "faster reload rate" -1 "fire rate bonus" 0.4 "collect currency on kill" 1 "paintkit_proto_def_index" 420 "set_item_texture_wear" 0 "add cond when active" 36 "crit vs burning players" 1 "crit vs non burning players" 1 "projectile trail particle" "eyeboss_projectile" "mod projectile heat follow crosshair" 1 "mod projectile heat seek power" 100 "mod projectile heat aim error" 360 "mod projectile heat aim time" 0.7 "mult dmg vs giants" 2 } ItemAttributes { ItemName "Upgradeable TF_WEAPON_SHOTGUN_PRIMARY" "faster reload rate" 0.01 "damage bonus" 1.25 "weapon spread bonus" 0.35 "fire rate bonus" 0.4 "collect currency on kill" 1 "add cond when active" 36 "crit vs burning players" 1 "crit vs non burning players" 1 "paintkit_proto_def_index" 420 "set_item_texture_wear" 0 "passive reload" 1 "mult dmg vs giants" 2 } CharacterAttributes { "move speed bonus" 0.5 "damage force reduction" 0.01 "airblast vulnerability multiplier" 0.01 "override footstep sound set" 3 "Projectile speed increased" 1 "crit mod disabled" 0 "not solid to players" 1 "sniper no headshots" 1 //dummy attrs to lock onto with lua. "duckstreaks active" 1 "cancel falling damage" 1 "dmg taken mult from special damage type 2" 2.5 } Item "Tyrantium Helmet" ItemAttributes { ItemName "Tyrantium Helmet" "set item tint rgb" 16777215 } } } } T_TFBot_Giant_Soldier_Spammer_Reload_Two_Stage { Class Soldier Name "Giant Rapid Accelerator Soldier" ClassIcon soldier_spammer Item "Stahlhelm" 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.5 } ItemAttributes { ItemName "Stahlhelm" "set item tint rgb" 5801378 } HomingRockets { RocketSpeed 0.7 // Multiplier of rocket speed. (Default: 1) TurnPower 0 //How fast should the rocket rotate to face the target (Default: 10) MaxAimError 360 //Max angle between rocket and the target (Default: 105) Acceleration 2000 //Acceleration in hu (Default: 0) AccelerationTime 0.5 //How long should the rocket accelerate (Default: 9999) AccelerationStartTime 0.4 //Time before rockets start accelerating (Default: 0) } CharacterAttributes { "damage force reduction" 0.4 "airblast vulnerability multiplier" 0.4 "override footstep sound set" 3 } } T_TFBot_Fuel_Injected_Pyro_Dragon { Class Pyro Health 150 MaxVisionRange 800 Name "Fuel Injected Fury Pyro" Skill Normal ClassIcon pyro_dragon_fury_fast Item "The Dragon's Fury" Item "Jupiter Jetpack" Item "Feathered Fiend" Item "The Rusty Reaper" ItemAttributes { ItemName "The Rusty Reaper" "set item tint rgb" 12073019 //change when spawning as red //to 12073019 specifically } WeaponRestrictions PrimaryOnly ItemAttributes { ItemName "The Dragon's Fury" "set_item_texture_wear" 0 "paintkit_proto_def_index" 214 } CharacterAttributes { "airblast disabled" 1 "move speed bonus" 1.25 } } } LuaScriptFile "scripts/build_ally_bot_giant.lua" LuaScriptFile"scripts/undyingbuilding.lua" LuaScriptFile "scripts/bot_reserve_combo.lua" LuaScriptFile "scripts/pomsonemphit.lua" LuaScriptFile "scripts/rescue_ranger_debuff_on_hit.lua" LuaScriptFile "scripts/parachute_auto_race_condition.lua" LuaScriptFile "scripts/bot_monochrome_logic.lua" //Uses code from royal's red sniper laser script, for Monochrome's face laser //specifically LuaScriptFile "scripts/red_sniper_laser.lua" //royal's red sniper laser script, for the red snipers //engies only ClassLimit { Scout 0 Soldier 0 Pyro 0 Demoman 0 Heavyweapons 0 Medic 0 Sniper 0 Spy 0 } PlayerAttributes { Engineer { "max health additive bonus" 125 "mvm sentry ammo" 9999 "never gib" 1 "metal regen" 25 } Scout { "max health additive bonus" -124 "damage penalty" 0.1 "health regen" -9001 //fucking die } Soldier { "max health additive bonus" -199 "damage penalty" 0.1 "health regen" -9001 //fucking die } Pyro { "max health additive bonus" -174 "damage penalty" 0.1 "health regen" -9001 //fucking die } Demoman { "max health additive bonus" -199 "damage penalty" 0.1 "health regen" -9001 //fucking die } Heavyweapons { "max health additive bonus" -299 "damage penalty" 0.1 "health regen" -9001 //fucking die } Medic { "max health additive bonus" -149 "damage penalty" 0.1 "heal rate penalty" 0 "ubercharge rate penalty" 0 "health regen" -9001 //fucking die } Sniper { "max health additive bonus" -124 "damage penalty" 0.1 "health regen" -9001 //fucking die } Spy { "max health additive bonus" -124 "damage penalty" 0.1 "health regen" -9001 //fucking die } } ItemAttributes { ItemName "the gunslinger" "fire input on attack" "popscript^$checkIfMeleeHitAlly^" "max health additive bonus" 250 "model scale" 1.25 "move speed bonus" 1.15 "voice pitch scale" 0.65 "head scale" 0.65 "damage bonus" 1.5 //You are big, so you punch harder "damage force reduction" 0.6 //you are big, so you are fatter and harder to move "airblast vulnerability multiplier" 0.6 "airblast vertical vulnerability multiplier" 0.2 "cloak consume rate decreased" 3 "special item description" "Scout giants aren't the heavy hitters soldiers, demos, heavies and pyros are, so some of that beefiness goes onto you instead!" "special item description 2" "[TIERS] 1: Giant Scout, 2: Giant Shortstop Scout, 3: Giant Shove-stop Scout, 4: Giant Giga Scout" "special item description 3" "Wrench allies to heal them, hold med shield key with any active weapon to park your giant" } ItemAttributes { ItemName "the eureka effect" "max health additive bonus" -50 "cloak consume rate decreased" 4 "head scale" 1.35 //small gremlin creature "model scale" 0.75 "voice pitch scale" 1.35 "fire input on attack" "popscript^$checkIfMeleeHitAlly^" "special item description" "Heavy giants are indomitable forces of destruction, you sacrifice 50 health in exchange for this awesome power!" "special item description 2" "[TIERS] 1: Giant Heavy, 2: Giant Deflector Heavy, 3: Giant Heater Heavy, 4: Giant EMP Heavy" "special item description 3" "Wrench allies to heal them, hold hold med shield key with any active weapon to park your giant" } ItemAttributes { ItemName "the jag" "fire input on attack" "popscript^$checkIfMeleeHitAlly^" "cloak consume rate decreased" 1 "special item description" "Demo giants pack significant firepower, but are a little less durable and a bit faster than their heavier soldier cousins" "special item description 2" "[TIERS] 1: Giant Rapid Fire Demo, 2: Giant Hybrid Knight, 3: Giant Rammer Knight, 4: Giant Burst Knight" "special item description 3" "Wrench allies to heal them, hold med shield key with any active weapon to park your giant" } ItemAttributes { ItemName "the southern hospitality" "fire input on attack" "popscript^$checkIfMeleeHitAlly^" "cloak consume rate decreased" 2 "max health additive bonus" 250 "move speed bonus" 1.15 "voice pitch scale" 0.65 "head scale" 0.65 "damage bonus" 1.5 //You are big, so you smack harder "damage force reduction" 0.6 //you are big, so you are fatter and harder to move "airblast vulnerability multiplier" 0.6 "airblast vertical vulnerability multiplier" 0.2 "model scale" 1.25 "special item description" "Pyro giants are strange, they are as durable as soldiers and as fast as demos, yet worse than both. You become exponentially stronger to compensate!" "special item description 2" "[TIERS] 1: Giant Pyro, 2: Giant Airblast Pyro, 3: Giant Fuel Injected Pyro (fast), 4: Fury (Dragon's Fury that hits like a gigaburst)" "special item description 3" "Wrench allies to heal them, hold med shield key with any active weapon to park your giant" } ItemAttributes { SimilarToItem "TF_WEAPON_WRENCH" "fire input on attack" "popscript^$checkIfMeleeHitAlly^" "special item description" "Soldiers are middle of the road giants, good firepower, good speed (for their size), and good durability." "special item description 2" "[TIERS] 1: Giant Soldier, 2: Giant Burst Soldier, 3: Giant Charged Soldier, 4: Giant Rapid Fire Soldier" "special item description 3" "Wrench allies to heal them, hold med shield key with any active weapon to park your giant" } ItemAttributes { SimilarToItem "Gold Frying Pan" "fire input on attack" "popscript^$checkIfMeleeHitAlly^" "special item description" "Soldiers are middle of the road giants, good firepower, good speed (for their size), and good durability." "special item description 2" "[TIERS] 1: Giant Soldier, 2: Giant Burst Soldier, 3: Giant Charged Soldier, 4: Giant Rapid Fire Soldier" "special item description 3" "Wrench allies to heal them, hold med shield key with any active weapon to park your giant" } ExtraLoadoutItems { HeavyWeapons //credit to Yuugi for allowing me to use this weapon { //defined here because it would be a pain in the ass to define it //in the lua script Primary "Tokamak" } } CustomWeapon { "Tokamak" //ripped directly from desolated death, with permission //Rework: Instead of shooting lasers, it now EMPs robots instead. Does not apply on afterburn //stunlocking commons after hitting them once is unacceptably broken. { OriginalItemName "tomislav" "custom item model" "models/workshop/weapons/c_models/c_tokamak/c_tomislav.mdl" "custom wind up sound" "=60|tokamak_wind_up.wav" "custom wind down sound" "=60|tokamak_wind_down.wav" "ragdolls plasma effect" 1 "custom damage type override" 66 //bullet+blast "mult crit dmg" 0.3 "minigun no spin sounds" 0 "attack projectiles" 2 "custom kill icon" "firedeath" "fire input on hit" "popscript^$pomsonEMPhit^" } } ItemAttributes // now heals players instead of buildings { ItemName "The Rescue Ranger" "override projectile type" 11 // Fires crusader's crossbow bolts instead of rescue ranger bolts } ItemAttributes { ItemName "TF_WEAPON_PDA_ENGINEER_BUILD" } ItemAttributes // self explanatory, health penalty { ClassName "tf_weapon_laser_pointer" "special item description" "Primary fire makes the giant shoot where you are aiming, secondary makes giant walk to aim point while attacking freely." } PointTemplates { nameChange { logic_relay { "targetname" "nameChange" "origin" "0 0 0" "OnTrigger" "tf_objective_resource,$SetClientProp$m_iszMvMPopfileName,ADV Short Circuit Execution,0,-1" } OnSpawnOutput { Target "nameChange" Action trigger } } LoseRelay { NoFixup 1 game_round_win // RED win entity { "TeamNum" "2" "targetname" "bots_win_red" "switch_teams" "0" "force_map_reset" "1" "classname" "game_round_win" } logic_relay // Trigger this for player loss { "targetname" "redwin_relay" "OnTrigger" "bots_win_red,RoundWin,,0,-1" } } OnSentryBuild { OnSpawnOutput { Target "popscript" Action "$SentrySpawned" Delay 0.01 } } ReserveCombo { OnSpawnOutput { Target "popscript" Action "$ReserveCombo" Delay 0.01 } } MonochromeLogic { OnSpawnOutput { Target "popscript" Action "$MonochromeLogic" Delay 0.01 } } ParachuteAutoDeployHigh { OnSpawnOutput { Target "popscript" Action "$CheckGround" Delay 0.01 } } LaserOnAim { OnSpawnOutput { Target "popscript" Action "$LaserOnAim" Delay 0.01 } } GreyGlowsMK2 //no netprop tomfoolery here { tf_glow { "GlowColor" "255 255 255 255" "target" "!parent" "targetname" "boss_grey_glow" } OnParentKilledOutput { Target "boss_grey_glow" Action "Kill" } } //AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAH GreyGlowsMK1 { OnSpawnOutput { target "!activator" action "$setclientprop$m_bGlowEnabled" param "1" Delay 0.01 } OnParentKilledOutput { target "!activator" action "$setclientprop$m_bGlowEnabled" param "0" Delay 0.01 } } W1_Timer //wave 1 timer, originally made by Braindawg { NoFixup 1 math_counter { "targetname" "timer_counter_1" "origin" "0 0 0" "startvalue" "255" "min" "0" "max" "255" "OutValue" "monster_resource,$SetProp$m_iBossHealthPercentageByte,,0,-1" "OnHitMin" "bots_win_red,RoundWin,,0,-1" "OnHitMin" "timer_relay*,CancelPending,,1,-1" } logic_relay { "targetname" "showtimer" "OnTrigger" "monster_resource,$SetProp$m_iBossHealthPercentageByte,255,0,-1" "OnTrigger" "monster_resource,$SetProp$m_iBossState,1,0,-1" //uncomment this for green merasmus bar } logic_relay { "targetname" "timer_relay" "OnTrigger" "timer_counter_1,Subtract,1,0,-1" // Formula for changing the timer: // t / 255 = r. t = desired seconds, r = refire interval. // 15 minutes (900 seconds) / 255 = 3.52941... "OnTrigger" "timer_relay2,Trigger,,1.45,-1" //timer changed to 6 minutes } logic_relay //relay loops are less resource intensive than logic_timers according to https://developer.valvesoftware.com/wiki/Logic_timer { "targetname" "timer_relay2" "OnTrigger" "timer_relay,Trigger,,0,-1" } game_round_win { "origin" "0 0 0" "TeamNum" "2" "targetname" "bots_win_red" "switch_teams" "0" "force_map_reset" "1" } } W2_Timer_1 //wave 2 timer, originally made by Braindawg { NoFixup 1 math_counter { "targetname" "timer_counter_1" "origin" "0 0 0" "startvalue" "255" "min" "0" "max" "255" "OutValue" "monster_resource,$SetProp$m_iBossHealthPercentageByte,,0,-1" "OnHitMin" "objective2_AlmostDone,Trigger,,0,-1" "OnHitMin" "timer_relay*,CancelPending,,1,-1" } logic_relay { "targetname" "showtimer" "OnTrigger" "monster_resource,$SetProp$m_iBossHealthPercentageByte,255,0,-1" "OnTrigger" "monster_resource,$SetProp$m_iBossState,1,0,-1" //uncomment this for green merasmus bar } logic_relay { "targetname" "timer_relay_1" "OnTrigger" "timer_counter_1,Subtract,1,0,-1" // Formula for changing the timer: // t / 255 = r. t = desired seconds, r = refire interval. // 15 minutes (900 seconds) / 255 = 3.52941... "OnTrigger" "timer_relay2_1,Trigger,,0.341176470588,-1" //timer changed to 1:45 } logic_relay //relay loops are less resource intensive than logic_timers according to https://developer.valvesoftware.com/wiki/Logic_timer { "targetname" "timer_relay2_1" "OnTrigger" "timer_relay_1,Trigger,,0,-1" } } W2_Timer_2 //wave 2 timer, originally made by Braindawg { NoFixup 1 math_counter { "targetname" "timer_counter_2" "origin" "0 0 0" "startvalue" "255" "min" "0" "max" "255" "OutValue" "monster_resource,$SetProp$m_iBossHealthPercentageByte,,0,-1" "OnHitMin" "objective2_Done,Trigger,,0,-1" "OnHitMin" "timer_relay*,CancelPending,,1,-1" } logic_relay { "targetname" "showtimer" "OnTrigger" "monster_resource,$SetProp$m_iBossHealthPercentageByte,255,0,-1" "OnTrigger" "monster_resource,$SetProp$m_iBossState,1,0,-1" //uncomment this for green merasmus bar } logic_relay { "targetname" "timer_relay_2" "OnTrigger" "timer_counter_2,Subtract,1,0,-1" // Formula for changing the timer: // t / 255 = r. t = desired seconds, r = refire interval. // 15 minutes (900 seconds) / 255 = 3.52941... "OnTrigger" "timer_relay2_2,Trigger,,0.341176470588,-1" //timer changed to 1:45 } logic_relay //relay loops are less resource intensive than logic_timers according to https://developer.valvesoftware.com/wiki/Logic_timer { "targetname" "timer_relay2_2" "OnTrigger" "timer_relay_2,Trigger,,0,-1" } } W2_Timer_3 //wave 2 timer, originally made by Braindawg { NoFixup 1 math_counter { "targetname" "timer_counter_3" "origin" "0 0 0" "startvalue" "255" "min" "0" "max" "255" "OutValue" "monster_resource,$SetProp$m_iBossHealthPercentageByte,,0,-1" "OnHitMin" "objective2_advance,Trigger,,0,-1" "OnHitMin" "timer_relay*,CancelPending,,1,-1" } logic_relay { "targetname" "showtimer" "OnTrigger" "monster_resource,$SetProp$m_iBossHealthPercentageByte,255,0,-1" "OnTrigger" "monster_resource,$SetProp$m_iBossState,1,0,-1" //uncomment this for green merasmus bar } logic_relay { "targetname" "timer_relay_3" "OnTrigger" "timer_counter_3,Subtract,1,0,-1" // Formula for changing the timer: // t / 255 = r. t = desired seconds, r = refire interval. // 15 minutes (900 seconds) / 255 = 3.52941... "OnTrigger" "timer_relay2_3,Trigger,,0.341176470588,-1" //timer changed to 1:45 } logic_relay //relay loops are less resource intensive than logic_timers according to https://developer.valvesoftware.com/wiki/Logic_timer { "targetname" "timer_relay2_3" "OnTrigger" "timer_relay_3,Trigger,,0,-1" } } W3_Timer //wave 3 timer, originally made by Braindawg { NoFixup 1 math_counter { "targetname" "timer_counter_1" "origin" "0 0 0" "startvalue" "255" "min" "0" "max" "255" "OutValue" "monster_resource,$SetProp$m_iBossHealthPercentageByte,,0,-1" "OnHitMin" "bots_win_red,RoundWin,,0,-1" "OnHitMin" "timer_relay*,CancelPending,,1,-1" } logic_relay { "targetname" "showtimer" "OnTrigger" "monster_resource,$SetProp$m_iBossHealthPercentageByte,255,0,-1" "OnTrigger" "monster_resource,$SetProp$m_iBossState,1,0,-1" //uncomment this for green merasmus bar } logic_relay { "targetname" "stop_timer" "OnTrigger" "timer_relay*,CancelPending,,1,-1" } logic_relay { "targetname" "timer_relay" "OnTrigger" "timer_counter_1,Subtract,1,0,-1" // Formula for changing the timer: // t / 255 = r. t = desired seconds, r = refire interval. // 15 minutes (900 seconds) / 255 = 3.52941... "OnTrigger" "timer_relay2,Trigger,,2.35,-1" //timer changed to 10 } logic_relay //relay loops are less resource intensive than logic_timers according to https://developer.valvesoftware.com/wiki/Logic_timer { "targetname" "timer_relay2" "OnTrigger" "timer_relay,Trigger,,0,-1" } game_round_win { "origin" "0 0 0" "TeamNum" "2" "targetname" "bots_win_red" "switch_teams" "0" "force_map_reset" "1" } } wave1_initialization_relay //fires all the relays to set up the map, and places spawnpoint covers { logic_relay { "targetname" "wave1_initialization_relay" "onspawn" "objective1_0_glow,Enable,,0,-1" "onspawn" "popscript,$ResetGigaDispCount,,0,-1" "onspawn" "A_route_wall_4_fix_relay,Trigger,,0,-1" "onspawn" "hatch_shortcut_A_fix_relay,Trigger,,0,-1" "onspawn" "relay_C,Trigger,,0,-1" "onspawn" "spawnbot_red*,Disable,,0,-1" "onspawn" "carrier_door_trigger,enable,,0,1" "onspawn" "carrier_door_clip,kill,,0,1" "onspawn" "setup_teleporter,kill,0,1" "onspawn" "bomb,Disable,,0,-1" "onspawn" "spawnbot_blu_bomb_carrier,Disable,,0,-1" "onspawn" "timer_relay,Trigger,,0,-1" "onspawn" "door_r_trigger_open,enable,,0,1" //whoops! trapped a whole bunch of people in spawn when I forgot this "onspawn" "door_l_trigger_open,enable,,0,1" "onspawn" "bombpath_holograms_clear_relay,Trigger,,0.01,-1" "onspawn" "bridge_flank_door_C_lock_relay,Trigger,,0,-1" "onspawn" "tf_point_nav_interface,recomputeblockers,,0,-1" } logic_relay { "targetname" "objective1Done" "OnTrigger" "bots_win,RoundWin,,0,-1" "OnTrigger" "DoneShields,Kill,,0,-1" "OnTrigger" "objective1_3Text,Kill,,0,-1" "OnTrigger" "objective1_4Text,Kill,,0,-1" "OnTrigger" "player,$PlaySoundToSelf,mobocracy/rescue.wav,0,-1" "OnTrigger" "tf_point_nav_interface,recomputeblockers,,0,-1" } logic_relay { "targetname" "DoneShieldsRemover" "OnTrigger" "DoneShields,Kill,,0,-1" } logic_relay { "targetname" "objective1HalfDone" "OnTrigger" "HalfwayShields,Disable,,0,-1" "OnTrigger" "objective1_2Text,Kill,,0,-1" "OnTrigger" "objective1_1Text,Show,,0,-1" "OnTrigger" "objective1_1_glow,Enable,,0,-1" "OnTrigger" "player,$PlaySoundToSelf,mobocracy/rescue.wav,0,-1" "OnTrigger" "tf_point_nav_interface,recomputeblockers,,0,-1" } logic_relay { "targetname" "objective1Start" "OnTrigger" "StartShields,Disable,,0,-1" "OnTrigger" "objective1_0Text,Kill,,0,-1" "OnTrigger" "spawner_wave1,enable,,0,1" "OnTrigger" "objective1_2Text,Show,,0,-1" "OnTrigger" "relay_C,Trigger,,0,-1" "OnTrigger" "bombpath_holograms_clear_relay,Trigger,,0.01,-1" "OnTrigger" "objective1_2_glow,Enable,,0,-1" "OnTrigger" "spawnbot_red_mirror1*,Enable,,0,-1" "OnTrigger" "player,$PlaySoundToSelf,mobocracy/rescue.wav,0,-1" "OnTrigger" "tf_point_nav_interface,recomputeblockers,,0,-1" } logic_relay { "targetname" "objective1StartHalf" "OnTrigger" "StartHalfShields,Disable,,0,-1" "OnTrigger" "objective1_4Text,Show,,0,-1" "OnTrigger" "objective1_4_glow,Enable,,0,-1" "OnTrigger" "relay_E,Trigger,,0,-1" "OnTrigger" "bombpath_holograms_clear_relay,Trigger,,0.01,-1" "OnTrigger" "spawnbot_red_mirror1*,Disable,,5,-1" "OnTrigger" "spawnbot_red_mirror2*,Enable,,10,-1" "OnTrigger" "player,$PlaySoundToSelf,mobocracy/rescue.wav,0,-1" "OnTrigger" "relay_tank_hologram_D,Trigger,,0,-1" "OnTrigger" "tf_point_nav_interface,recomputeblockers,,0,-1" } logic_relay { "targetname" "objective1Final" "OnTrigger" "FinalShields,Disable,,0,-1" "OnTrigger" "InverseFinalShields,Enable,,0,-1" "OnTrigger" "objective1_3_glow,Enable,,0,-1" "OnTrigger" "a_route_wall_3_avoid,Enable,,0,-1" "OnTrigger" "B_C_blocker,Enable,,0,-1" "OnTrigger" "relay_E,Trigger,,0,-1" "OnTrigger" "spawnbot_red_mirror2*,Disable,,0.5,-1" "OnTrigger" "spawnbot_red_mirror3*,Enable,,1,-1" "OnTrigger" "bombpath_holograms_clear_relay,Trigger,,0.01,-1" "OnTrigger" "player,$PlaySoundToSelf,mobocracy/rescue.wav,0,-1" "OnTrigger" "player,$PlaySoundToSelf,mobocracy/rescue.wav,1,-1" "OnTrigger" "a2_door_lock_relay,Trigger,,0,-1" "OnTrigger" "A2_locked_avoid,Enable,,0,-1" "OnTrigger" "A_B_C_blocker,Enable,,0,-1" "OnTrigger" "tf_point_nav_interface,recomputeblockers,,0,-1" } func_nav_avoid { "origin" "-586.82 946.95 198.10" "mins" "-728.5 -700.5 -200" "maxs" "728.5 700.5 300" "targetname" "InverseFinalShields" StartDisabled 1 } //contingency chief teleporter filter_tf_bot_has_tag { "targetname" "filter_w1_chief" "require_all_tags" "1" "tags" "bot_w1_chief" } trigger_teleport { targetname "InverseFinalShields" "origin" "-630.7 1149.46 4.77" "mins" "-50 -750.85 -500" "maxs" "1300 1000 290" target "ChiefContingency_Destination" "spawnflags" "1" "filtername" "filter_w1_chief" //map filter that happens to be laying around, how handy StartDisabled 1 } trigger_teleport { targetname "InverseFinalShields" "origin" "-2.27 8.38 4.77" "mins" "-250 -300.85 -500" "maxs" "250 300 290" target "ChiefContingency_Destination" "spawnflags" "1" "filtername" "filter_w1_chief" //map filter that happens to be laying around, how handy StartDisabled 1 } info_teleport_destination { targetname "ChiefContingency_Destination" origin "1326.03 735.52 183.54" angles "0 0 0" } prop_dynamic { "model" "models/props_mvm/robot_spawnpoint.mdl" "disableshadows" 1 "startdisabled" 1 "defaultanim" "idle" "angles" "0 90 0" "skin" 0 "targetname" spawner_wave1 "origin" "-4.96 53.24 6.26" } prop_dynamic { "model" "models/props_mvm/robot_spawnpoint.mdl" "disableshadows" 1 "startdisabled" 1 "defaultanim" "idle" "angles" "0 180 0" "skin" 0 "targetname" spawner_wave1 "origin" "2557.03 -1904.31 227.19" } func_forcefield { "origin" "-1365.06 1735.86 -190.31" "TeamNum" "2" "targetname" "StartShields" "mins" "-5500 -50 -600" "maxs" "5500 5 1100" "StartDisabled" "0" } func_nobuild { "origin" "-1365.06 1735.86 -190.31" "targetname" "StartShields" "mins" "-5500 -50 -600" "maxs" "5500 5 1100" "StartDisabled" "0" } prop_dynamic { modelscale 2.3 model "models/props_mvm/reversemvm_redwall_640x418.mdl" //measurements 640X300 176X120 176X152 256X288 "origin" "-1365.06 1735.86 -190.31" angles "0 0 0" targetname "StartShields" disableshadows 1 } prop_dynamic { modelscale 2.3 model "models/props_mvm/reversemvm_redwall_640x418.mdl" //measurements 640X300 176X120 176X152 256X288 "origin" "-2837 1735.86 -190.31" angles "0 0 0" targetname "StartShields" disableshadows 1 } func_forcefield { "origin" "-1637.90 406.57 -300.54" "TeamNum" "2" "targetname" "StartHalfShields" "mins" "-1100 -50 -600" "maxs" "1100 5 300" "StartDisabled" "0" } func_nobuild { "origin" "-1637.90 406.57 -300.54" "targetname" "StartHalfShields" "mins" "-1100 -50 -600" "maxs" "1100 5 300" "StartDisabled" "0" } prop_dynamic { modelscale 2.3 model "models/props_mvm/reversemvm_redwall_640x418.mdl" //measurements 640X300 176X120 176X152 256X288 "origin" "-1375 406.57 -300.54" angles "0 0 0" targetname "StartHalfShields" disableshadows 1 } prop_dynamic //so you can see it from both sides { modelscale 2.6 model "models/props_mvm/reversemvm_redwall_640x418.mdl" //measurements 640X300 176X120 176X152 256X288 "origin" "-493.56 -1293.35 1.42" angles "0 90 0" targetname "FinalShields" disableshadows 1 } prop_dynamic //so you can see it from both sides { modelscale 2.6 model "models/props_mvm/reversemvm_redwall_640x418.mdl" //measurements 640X300 176X120 176X152 256X288 "origin" "-493.56 -2957.25 1.42" angles "0 90 0" targetname "FinalShields" disableshadows 1 } func_forcefield { "origin" "-493.56 -1293.35 1.42" "TeamNum" "2" "targetname" "FinalShields" "mins" "-50 -1000 -1000" "maxs" "5 1000 1000" "StartDisabled" "0" } func_nobuild { "origin" "-493.56 -1293.35 1.42" "targetname" "FinalShields" "mins" "-50 -1000 -1000" "maxs" "5 1000 1000" "StartDisabled" "0" } prop_dynamic //so you can see it from both sides { modelscale 1.2 model "models/props_mvm/reversemvm_redwall_640x418.mdl" //measurements 640X300 176X120 176X152 256X288 "origin" "-0.54 -413.47 2.73" angles "0 0 0" targetname "NeverShields" disableshadows 1 } prop_dynamic //so you can see it from both sides { modelscale 1.2 model "models/props_mvm/reversemvm_redwall_640x418.mdl" //measurements 640X300 176X120 176X152 256X288 "origin" "-0.54 -413.47 2.73" angles "0 180 0" targetname "NeverShields" disableshadows 1 } func_forcefield { "origin" "-0.54 -413.47 2.73" "TeamNum" "2" "targetname" "NeverShields" "mins" "-300 -50 -300" "maxs" "300 5 300" "StartDisabled" "0" } func_nobuild { "origin" "-0.54 -413.47 2.73" "targetname" "NeverShields" "mins" "-300 -50 -300" "maxs" "300 5 300" "StartDisabled" "0" } prop_dynamic { modelscale 1.4 model "models/props_mvm/reversemvm_redwall_640x418.mdl" //measurements 640X300 176X120 176X152 256X288 "origin" "1278.95 -1860.52 57.82" angles "0 0 0" targetname "NeverShields" disableshadows 1 } func_forcefield { "origin" "1278.95 -1860.52 57.82" "TeamNum" "2" "targetname" "NeverShields" "mins" "-300 -50 -300" "maxs" "300 5 300" "StartDisabled" "0" } func_nobuild { "origin" "1278.95 -1860.52 57.82" "targetname" "NeverShields" "mins" "-300 -50 -300" "maxs" "300 5 300" "StartDisabled" "0" } prop_dynamic //so you can see it from both sides { modelscale 2 model "models/props_mvm/reversemvm_redwall_640x418.mdl" //measurements 640X300 176X120 176X152 256X288 "origin" "89.25 -1789.51 1.60" angles "0 0 0" targetname "NeverShields" disableshadows 1 } prop_dynamic //so you can see it from both sides { modelscale 2 model "models/props_mvm/reversemvm_redwall_640x418.mdl" //measurements 640X300 176X120 176X152 256X288 "origin" "89.25 -1789.51 1.60" angles "0 180 0" targetname "NeverShields" disableshadows 1 } func_forcefield { "origin" "257.25 -1789.51 1.60" "TeamNum" "2" "targetname" "NeverShields" "mins" "-1000 -50 -1000" "maxs" "1000 5 1000" "StartDisabled" "0" } func_nobuild { "origin" "257.25 -1789.51 1.60" "targetname" "NeverShields" "mins" "-1000 -50 -1000" "maxs" "1000 5 1000" "StartDisabled" "0" } prop_dynamic { modelscale 1.6 model "models/props_mvm/reversemvm_redwall_640x418.mdl" //measurements 640X300 176X120 176X152 256X288 "origin" "1691.03 -1276.55 4.89" angles "0 90 0" targetname "NeverShields" disableshadows 1 } func_forcefield { "origin" "1691.03 -1276.55 4.89" "TeamNum" "2" "targetname" "NeverShields" "mins" "-50 -800 -800" "maxs" "5 800 800" "StartDisabled" "0" } func_nobuild { "origin" "1691.03 -1276.55 4.89" "targetname" "NeverShields" "mins" "-50 -800 -800" "maxs" "5 800 800" "StartDisabled" "0" } prop_dynamic //so you can see it from both sides { modelscale 1.15 model "models/props_mvm/reversemvm_redwall_640x418.mdl" //measurements 640X300 176X120 176X152 256X288 "origin" "718.77 608.76 317.69" angles "0 270 0" targetname "DoneShields" disableshadows 1 } prop_dynamic { modelscale 1.15 model "models/props_mvm/reversemvm_redwall_640x418.mdl" //measurements 640X300 176X120 176X152 256X288 "origin" "718.77 608.76 317.69" angles "0 90 0" targetname "DoneShields" disableshadows 1 } prop_dynamic //so you can see it from both sides { modelscale 1.15 model "models/props_mvm/reversemvm_redwall_640x418.mdl" //measurements 640X300 176X120 176X152 256X288 "origin" "718.77 608.76 67.34" angles "0 270 0" targetname "DoneShields" disableshadows 1 } func_forcefield { "origin" "718.77 608.76 67.34" "TeamNum" "2" "targetname" "DoneShields" "mins" "-50 -375 -375" "maxs" "5 375 375" "StartDisabled" "0" } func_nobuild { "origin" "718.77 608.76 67.34" "targetname" "DoneShields" "mins" "-50 -375 -375" "maxs" "5 375 375" "StartDisabled" "0" } prop_dynamic //so you can see it from both sides { modelscale 1.2 model "models/props_mvm/reversemvm_redwall_640x418.mdl" //measurements 640X300 176X120 176X152 256X288 "origin" "-482.91 0.08 432.14" angles "0 270 0" targetname "DoneShields" disableshadows 1 } prop_dynamic //so you can see it from both sides { modelscale 1.2 model "models/props_mvm/reversemvm_redwall_640x418.mdl" //measurements 640X300 176X120 176X152 256X288 "origin" "-482.91 0.08 432.14" angles "0 90 0" targetname "DoneShields" disableshadows 1 } func_forcefield { "origin" "-482.91 0.08 432.14" "TeamNum" "2" "targetname" "DoneShields" "mins" "-50 -375 -105" "maxs" "5 375 375" "StartDisabled" "0" } func_forcefield { "origin" "-1662.06 105 -189.25" "TeamNum" "2" "targetname" "HalfwayShields" "mins" "-1100 -50 -600" "maxs" "1100 5 1100" "StartDisabled" "0" } func_nobuild { "origin" "-482.91 0.08 432.14" "targetname" "DoneShields" "mins" "-50 -375 -105" "maxs" "5 375 375" "StartDisabled" "0" } func_nobuild { "origin" "-1662.06 105 -189.25" "targetname" "HalfwayShields" "mins" "-1100 -50 -600" "maxs" "1100 5 1100" "StartDisabled" "0" } prop_dynamic { modelscale 2.3 model "models/props_mvm/reversemvm_redwall_640x418.mdl" //measurements 640X300 176X120 176X152 256X288 "origin" "-1362.06 105 179" angles "0 0 0" targetname "HalfwayShields" disableshadows 1 } prop_dynamic { modelscale 2.3 model "models/props_mvm/reversemvm_redwall_640x418.mdl" //measurements 640X300 176X120 176X152 256X288 "origin" "-2834 105 179" angles "0 0 0" targetname "HalfwayShields" disableshadows 1 } prop_dynamic { modelscale 2.3 model "models/props_mvm/reversemvm_redwall_640x418.mdl" //measurements 640X300 176X120 176X152 256X288 "origin" "-4305.94 105 179" angles "0 0 0" targetname "HalfwayShields" disableshadows 1 } prop_dynamic { "model" "models/props_mvm/robot_spawnpoint.mdl" "disableshadows" 1 "startdisabled" 1 "defaultanim" "idle" "angles" "0 180 0" "skin" 0 "targetname" spawner_wave1 "origin" "-440.00 4.66 336.93" } prop_dynamic { "model" "models/props_mvm/robot_spawnpoint.mdl" "disableshadows" 1 "startdisabled" 1 "defaultanim" "idle" "angles" "0 180 0" "skin" 0 "targetname" spawner_wave1 "origin" "144.76 -1297.68 4.72" } prop_dynamic { "model" "models/props_mvm/robot_spawnpoint.mdl" "disableshadows" 1 "startdisabled" 1 "defaultanim" "idle" "angles" "0 180 0" "skin" 0 "targetname" spawner_wave1 "origin" "1103.85 -2051.64 80.43" } prop_dynamic { "model" "models/props_mvm/robot_spawnpoint.mdl" "disableshadows" 1 "startdisabled" 1 "defaultanim" "idle" "angles" "0 180 0" "skin" 0 "targetname" spawner_wave1 "origin" "1276.68 -2489.83 7.39" } } wave2_initialization_relay //fires all the relays to set up the map, and places spawnpoint covers { logic_relay { "targetname" "wave2_initialization_relay" //map changes "onspawn" "hatch_shortcut_A_fix_relay,Trigger,,0,-1" "onspawn" "A_route_wall_4_fix_relay,Trigger,,0,-1" "onspawn" "A_route_wall_3_fix_relay,Trigger,,0,-1" "onspawn" "spawner_wave2,enable,,0,1" //spawn covers "onspawn" "carrier_door_trigger,enable,,0,1" "onspawn" "text2_init,Show,,0,-1" "onspawn" "spawnbot_red*,Enable,,0,-1" "onspawn" "carrier_door_clip,kill,,0,1" "onspawn" "setup_teleporter,kill,0,1" "onspawn" "bomb,Disable,,0,-1" //turn off bomb "onspawn" "door_r_trigger_open,enable,,0,1" //whoops! trapped a whole bunch of people in spawn when I forgot this "onspawn" "door_l_trigger_open,enable,,0,1" "onspawn" "relay_D,Trigger,,0,-1" "onspawn" "bombpath_holograms_clear_relay,Trigger,,0.01,-1" "onspawn" "spawnbot_red*,Disable,,0,-1" "onspawn" "spawnbot_red*,Disable,,2,-1" "onspawn" "spawnbot_red_spawnroom_disposable,Enable,,2,-1" "onspawn" "bridge_flank_door_C_lock_relay,Trigger,,0,-1" "onspawn" "tf_point_nav_interface,recomputeblockers,,0,-1" } logic_relay { "targetname" "objective2_start" "OnTrigger" "text2_01,Show,,0,-1" "OnTrigger" "w2_music,Trigger,,0,-1" "OnTrigger" "player,$DisplayTextChat,{BBFFBB}Now Playing: {BBBBFF}Transformers Devastation OST: Decepticon Sergeant,0,-1" "OnTrigger" "wave2_gametext,Display,,0,-1" "OnTrigger" "wave2_gametext_reminder,Display,,5,-1" "OnTrigger" "timer_relay_3,Trigger,,0,-1" //timer "OnTrigger" "spawnbot_red_mirror1*,Enable,,0,-1" "OnTrigger" "spawnbot_red_mirror2*,Disable,,0,-1" "OnTrigger" "spawnbot_red_mirror3*,Disable,,0,-1" "OnTrigger" "player,$PlaySoundToSelf,mobocracy/rescue.wav,0,-1" "OnTrigger" "tf_point_nav_interface,recomputeblockers,,0,-1" } logic_relay { "targetname" "objective2_start_mid" "OnTrigger" "text2,Show,,0,-1" "OnTrigger" "timer_relay_1,Trigger,,0,-1" //timer "OnTrigger" "relay_C,Trigger,,0,-1" "OnTrigger" "bombpath_holograms_clear_relay,Trigger,,0.01,-1" "OnTrigger" "player,$PlaySoundToSelf,mobocracy/rescue.wav,0,-1" "OnTrigger" "tf_point_nav_interface,recomputeblockers,,0,-1" } game_text { "origin" "1984 1984 0" "targetname" "wave2_gametext" "message" "INCOMING! Protect the VIP!" "x" "-1" "y" "0.25" "channel" "0" "spawnflags" "1" "color" "128 128 128" "fadein" "0.2" "fadeout" "1" "holdtime" "4.8" } game_text { "origin" "1984 1984 0" "targetname" "wave2_gametext_reminder" "message" "Remember to heal the VIP!" "x" "-1" "y" "0.25" "channel" "0" "spawnflags" "1" "color" "128 128 128" "fadein" "0.2" "fadeout" "1" "holdtime" "4.8" } game_text { "origin" "1984 1984 0" "targetname" "wave2_gametext_1" "message" "VIP is moving up top! Follow Him!" "x" "-1" "y" "0.25" "channel" "0" "spawnflags" "1" "color" "128 128 128" "fadein" "0.2" "fadeout" "1" "holdtime" "4.8" } game_text { "origin" "1984 1984 0" "targetname" "wave2_gametext_2" "message" "VIP is moving down! Follow Him!" "x" "-1" "y" "0.25" "channel" "0" "spawnflags" "1" "color" "128 128 128" "fadein" "0.2" "fadeout" "1" "holdtime" "4.8" } logic_relay { "targetname" "objective2_final_section" "OnTrigger" "text2_2,Show,,0,-1" "OnTrigger" "timer_relay_2,Trigger,,0,-1" //timer "OnTrigger" "relay_A,Trigger,,0,-1" "OnTrigger" "bombpath_holograms_clear_relay,Trigger,,0.01,-1" "OnTrigger" "player,$PlaySoundToSelf,mobocracy/rescue.wav,0,-1" "OnTrigger" "bridge_flank_door_C_unlock_relay,Trigger,,0,-1" "OnTrigger" "tf_point_nav_interface,recomputeblockers,,0,-1" } info_particle_system // Cinefx Payload explosion { "targetname" "explode_shortcut_effect" "angles" "0 0 0" "effect_name" "hightower_explosion" "flag_as_weather" "0" "start_active" "0" "origin" "485.53 643.15 185.28" } env_shake // Earthquake { "targetname" "explode_shortcut_quake" "spawnflags" "1" "radius" "99999" "frequency" "40" "duration" "3" "amplitude" "16" } ambient_generic // Kaboom noise { "targetname" "explode_shortcut_sound" "health" "10" "message" "Cart.Explode" "pitch" "100" "pitchstart" "100" "radius" "99999" "spawnflags" "49" "origin" "485.53 643.15 185.28" } prop_dynamic //so you can see it from both sides { modelscale 1.2 model "models/props_mvm/reversemvm_redwall_640x418.mdl" //measurements 640X300 176X120 176X152 256X288 "origin" "-482.91 0.08 432.14" angles "0 270 0" targetname "FinalShields" disableshadows 1 } prop_dynamic //so you can see it from both sides { modelscale 1.2 model "models/props_mvm/reversemvm_redwall_640x418.mdl" //measurements 640X300 176X120 176X152 256X288 "origin" "-482.91 0.08 432.14" angles "0 90 0" targetname "FinalShields" disableshadows 1 } func_forcefield { "origin" "-482.91 0.08 432.14" "TeamNum" "2" "targetname" "FinalShields" "mins" "-50 -375 -105" "maxs" "5 375 375" "StartDisabled" "0" } func_nobuild { "origin" "-0.54 -413.47 2.73" "targetname" "FinalShields" "mins" "-300 -50 -300" "maxs" "300 5 300" "StartDisabled" "0" } func_nobuild { "origin" "-482.91 0.08 432.14" "targetname" "FinalShields" "mins" "-50 -375 -105" "maxs" "5 375 375" "StartDisabled" "0" } prop_dynamic //so you can see it from both sides { modelscale 1.2 model "models/props_mvm/reversemvm_redwall_640x418.mdl" //measurements 640X300 176X120 176X152 256X288 "origin" "-0.54 -413.47 2.73" angles "0 0 0" targetname "FinalShields" disableshadows 1 } prop_dynamic //so you can see it from both sides { modelscale 1.53 model "models/props_mvm/reversemvm_redwall_640x418.mdl" //measurements 640X300 176X120 176X152 256X288 "origin" "1386.41 -747.57 54.54" angles "0 180 0" targetname "FinalShields" disableshadows 1 } prop_dynamic //so you can see it from both sides { modelscale 1.53 model "models/props_mvm/reversemvm_redwall_640x418.mdl" //measurements 640X300 176X120 176X152 256X288 "origin" "1386.41 -747.57 54.54" angles "0 0 0" targetname "FinalShields" disableshadows 1 } func_forcefield { "origin" "1386.41 -747.57 54.54" "TeamNum" "2" "targetname" "FinalShields" "mins" "-390 -50 -390" "maxs" "390 5 390" "StartDisabled" "0" } func_nobuild { "origin" "1386.41 -747.57 54.54" "targetname" "FinalShields" "mins" "-390 -50 -390" "maxs" "390 5 390" "StartDisabled" "0" } prop_dynamic //so you can see it from both sides { modelscale 1.2 model "models/props_mvm/reversemvm_redwall_640x418.mdl" //measurements 640X300 176X120 176X152 256X288 "origin" "-0.54 -413.47 2.73" angles "0 180 0" targetname "FinalShields" disableshadows 1 } func_forcefield { "origin" "-0.54 -413.47 2.73" "TeamNum" "2" "targetname" "FinalShields" "mins" "-300 -50 -300" "maxs" "300 50 300" "StartDisabled" "0" } func_nobuild { "origin" "-0.54 -413.47 2.73" "targetname" "FinalShields" "mins" "-300 -50 -300" "maxs" "300 5 300" "StartDisabled" "0" } prop_dynamic //so you can see it from both sides { modelscale 2.6 model "models/props_mvm/reversemvm_redwall_640x418.mdl" //measurements 640X300 176X120 176X152 256X288 "origin" "-493.56 -1293.35 1.42" angles "0 90 0" targetname "FinalShields" disableshadows 1 } prop_dynamic //so you can see it from both sides { modelscale 2.6 model "models/props_mvm/reversemvm_redwall_640x418.mdl" //measurements 640X300 176X120 176X152 256X288 "origin" "-493.56 -2957.25 1.42" angles "0 90 0" targetname "FinalShields" disableshadows 1 } func_forcefield { "origin" "-493.56 -1293.35 1.42" "TeamNum" "2" "targetname" "FinalShields" "mins" "-50 -1000 -1000" "maxs" "5 1000 1000" "StartDisabled" "0" } func_nobuild { "origin" "-493.56 -1293.35 1.42" "targetname" "FinalShields" "mins" "-50 -1000 -1000" "maxs" "5 1000 1000" "StartDisabled" "0" } logic_relay { "targetname" "objective2_advance" "OnTrigger" "vip_circle1,Enable,,0,-1" "OnTrigger" "VIP_Interrupt_Target,$SetLocalOrigin,-1322.86 259.01 196.11" "OnTrigger" "player,$DisplayTextChat,{CCCCFF}Good work {00FF00}the VIP is moving to the next location!" "OnTrigger" "text2_0,Show,,0,-1" "OnTrigger" "vip_circle0,Kill,,0,-1" "OnTrigger" "spawnbot_red_mirror1*,Disable,,0,-1" "OnTrigger" "spawnbot_red_mirror2*,Enable,,0,-1" "OnTrigger" "spawnbot_red_mirror3*,Disable,,0,-1" "OnTrigger" "player,$PlaySoundToSelf,mobocracy/rescue.wav,0,-1" "OnTrigger" "wave2_gametext_1,Display,,0,-1" "OnTrigger" "tf_point_nav_interface,recomputeblockers,,0,-1" } logic_relay { "targetname" "objective2_AlmostDone" "OnTrigger" "vip_circle2,Enable,,0,-1" "OnTrigger" "VIP_Interrupt_Target,$SetLocalOrigin,1252.12 784.5 84.84,0,-1" "OnTrigger" "player,$DisplayTextChat,{CCCCFF}Good work {00FF00}the VIP is moving to the next location!" "OnTrigger" "text2_1,Show,,0,-1" "OnTrigger" "vip_circle1,Kill,,0,-1" "OnTrigger" "A_route_wall_3_break_relay,Trigger,,0,-1" "OnTrigger" "explode_shortcut_quake,StartShake,,0,-1" "OnTrigger" "explode_shortcut_sound,PlaySound,,0,-1" "OnTrigger" "explode_shortcut_effect,Start,,0,-1" "OnTrigger" "explode_shortcut_effect,Stop,,3,-1" "OnTrigger" "spawnbot_red_mirror1*,Disable,,0,-1" "OnTrigger" "spawnbot_red_mirror2*,Disable,,0,-1" "OnTrigger" "spawnbot_red_mirror3*,Enable,,5,-1" "OnTrigger" "wave2_gametext_2,Display,,0,-1" "OnTrigger" "player,$PlaySoundToSelf,mobocracy/rescue.wav,0,-1" "OnTrigger" "tf_point_nav_interface,recomputeblockers,,0,-1" } logic_relay { "targetname" "objective2_Done" "OnTrigger" "vip_circle2,Kill,,0,-1" "OnTrigger" "timer_relay,Trigger,,0,-1" "OnTrigger" "bots_win,RoundWin,,0,-1" "OnTrigger" "player,$PlaySoundToSelf,mobocracy/rescue.wav,0,-1" "OnTrigger" "tf_point_nav_interface,recomputeblockers,,0,-1" } info_target { "targetname" "VIP_Interrupt_Target" "origin" "-1696.64 -959.34 7.14" } prop_dynamic { "model" "models/props_mvm/robot_spawnpoint.mdl" "disableshadows" 1 "startdisabled" 1 "defaultanim" "idle" "angles" "0 90 0" "skin" 0 "targetname" spawner_wave2 "origin" "-4.96 53.24 6.26" } training_annotation { "targetname" "text2_negative1" "display_text" "Defend this guy or you lose!" "lifetime" "10" "origin" "-1313.5 3808.77 246.03" } training_annotation { "targetname" "text2" "display_text" "The VIP has reached the Zone, Defend them!" "lifetime" "10" "origin" "-1322.86 259.01 196.11" } training_annotation { "targetname" "text2_0" "display_text" "The VIP is on the move!" "lifetime" "10" "origin" "-1696.64 -959.34 7.14" } training_annotation { "targetname" "text2_init" "display_text" "The VIP will walk here!" "lifetime" "10" "origin" "-1696.64 -959.34 7.14" } training_annotation { "targetname" "text2_01" "display_text" "The VIP has reached the Zone, Defend them!" "lifetime" "10" "origin" "-1696.64 -959.34 7.14" } training_annotation { "targetname" "text2_1" "display_text" "The VIP is on the move!" "lifetime" "10" "origin" "-1322.86 259.01 196.11" } training_annotation { "targetname" "text2_2" "display_text" "The VIP has reached the Zone, Defend them!" "lifetime" "10" "origin" "1252.12 784.5 84.84" } prop_dynamic { "model" "models/props_mvm/robot_spawnpoint.mdl" "disableshadows" 1 "startdisabled" 1 "defaultanim" "idle" "angles" "0 180 0" "skin" 0 "targetname" spawner_wave2 "origin" "-440.00 4.66 336.93" } prop_dynamic { "model" "models/props_mvm/robot_spawnpoint.mdl" "disableshadows" 1 "startdisabled" 1 "defaultanim" "idle" "angles" "0 180 0" "skin" 0 "targetname" spawner_wave2 "origin" "1734.68 -391.07 84.57" } prop_dynamic { "model" "models/props_mvm/robot_spawnpoint.mdl" "disableshadows" 1 "startdisabled" 1 "defaultanim" "idle" "angles" "0 180 0" "skin" 0 "targetname" spawner_wave2 "origin" "2557.03 -1904.31 227.19" } prop_dynamic { "model" "models/props_mvm/robot_spawnpoint.mdl" "disableshadows" 1 "startdisabled" 1 "defaultanim" "idle" "angles" "0 180 0" "skin" 0 "targetname" spawner_wave2 "origin" "56.20 -14.28 341.17" } prop_dynamic { "model" "models/props_mvm/robot_spawnpoint.mdl" "disableshadows" 1 "startdisabled" 1 "defaultanim" "idle" "angles" "0 180 0" "skin" 0 "targetname" spawner_wave2 "origin" "144.76 -1297.68 4.72" } prop_dynamic { "model" "models/props_mvm/robot_spawnpoint.mdl" "disableshadows" 1 "startdisabled" 1 "defaultanim" "idle" "angles" "0 180 0" "skin" 0 "targetname" spawner_wave2 "origin" "1103.85 -2051.64 80.43" } prop_dynamic { "model" "models/props_mvm/robot_spawnpoint.mdl" "disableshadows" 1 "startdisabled" 1 "defaultanim" "idle" "angles" "0 180 0" "skin" 0 "targetname" spawner_wave2 "origin" "1276.68 -2489.83 7.39" } prop_dynamic { "model" "models/props_gameplay/cap_circle_320.mdl" "disableshadows" 1 "startdisabled" 0 "modelscale" "2" "targetname" vip_circle0 "skin" 2 "origin" "-1696.64 -959.34 7.14" } prop_dynamic { "model" "models/props_gameplay/cap_circle_320.mdl" "disableshadows" 1 "startdisabled" 1 "modelscale" "2" "targetname" vip_circle1 "skin" 2 "origin" "-1322.86 259.01 196.11" } prop_dynamic //second hold point { "model" "models/props_gameplay/cap_circle_320.mdl" "disableshadows" 1 "startdisabled" 1 "modelscale" "2" "targetname" vip_circle2 "skin" 2 "origin" "1252.12 784.5 84.84" } prop_dynamic { "model" "models/props_mvm/robot_spawnpoint.mdl" "disableshadows" 1 "startdisabled" 1 "defaultanim" "idle" "angles" "0 180 0" "skin" 0 "targetname" spawner_wave2 "origin" "444.65 -2007.88 165.1" } prop_dynamic { "model" "models/props_mvm/robot_spawnpoint.mdl" "disableshadows" 1 "startdisabled" 1 "defaultanim" "idle" "angles" "0 180 0" "skin" 1 "targetname" spawner_wave2 "origin" "-1784.26 -2136.34 67.34" } trigger_once { "targetname" "vipDetect0" "mins" "-75 -5 -75" "maxs" "75 75 75" "filtername" "filter_vip" "spawnflags" "1" "onstarttouch" "objective2_start,trigger,,0.01,-1" "origin" "-1696.64 -959.34 7.14" } trigger_once { "targetname" "vipDetect" "mins" "-75 -5 -75" "maxs" "75 75 75" "filtername" "filter_vip" "spawnflags" "1" "onstarttouch" "objective2_start_mid,trigger,,0.01,-1" "origin" "-1322.86 259.01 196.11" } trigger_once { "targetname" "vipDetect1" "mins" "-150 -5 -150" "maxs" "150 150 150" "filtername" "filter_vip" "spawnflags" "1" "onstarttouch" "objective2_final_section,trigger,,0.01,-1" "origin" "1252.12 784.5 84.84" } filter_tf_bot_has_tag { "targetname" "filter_vip" "require_all_tags" "1" "tags" "bot_vip" } prop_dynamic //so you can see it from both sides { modelscale 1.2 model "models/props_mvm/reversemvm_redwall_640x418.mdl" //measurements 640X300 176X120 176X152 256X288 "origin" "-0.54 -413.47 2.73" angles "0 0 0" targetname "NeverShields" disableshadows 1 } prop_dynamic //so you can see it from both sides { modelscale 1.2 model "models/props_mvm/reversemvm_redwall_640x418.mdl" //measurements 640X300 176X120 176X152 256X288 "origin" "-0.54 -413.47 2.73" angles "0 180 0" targetname "NeverShields" disableshadows 1 } func_forcefield { "origin" "-0.54 -413.47 2.73" "TeamNum" "2" "targetname" "NeverShields" "mins" "-300 -50 -300" "maxs" "300 5 300" "StartDisabled" "0" } func_nobuild { "origin" "-0.54 -413.47 2.73" "targetname" "NeverShields" "mins" "-300 -50 -300" "maxs" "300 5 300" "StartDisabled" "0" } prop_dynamic { modelscale 1.4 model "models/props_mvm/reversemvm_redwall_640x418.mdl" //measurements 640X300 176X120 176X152 256X288 "origin" "1278.95 -1860.52 57.82" angles "0 0 0" targetname "NeverShields" disableshadows 1 } func_forcefield { "origin" "1278.95 -1860.52 57.82" "TeamNum" "2" "targetname" "NeverShields" "mins" "-300 -50 -300" "maxs" "300 5 300" "StartDisabled" "0" } func_nobuild { "origin" "1278.95 -1860.52 57.82" "targetname" "NeverShields" "mins" "-300 -50 -300" "maxs" "300 5 300" "StartDisabled" "0" } prop_dynamic //so you can see it from both sides { modelscale 2 model "models/props_mvm/reversemvm_redwall_640x418.mdl" //measurements 640X300 176X120 176X152 256X288 "origin" "89.25 -1789.51 1.60" angles "0 0 0" targetname "NeverShields" disableshadows 1 } prop_dynamic //so you can see it from both sides { modelscale 2 model "models/props_mvm/reversemvm_redwall_640x418.mdl" //measurements 640X300 176X120 176X152 256X288 "origin" "89.25 -1789.51 1.60" angles "0 180 0" targetname "NeverShields" disableshadows 1 } func_forcefield { "origin" "257.25 -1789.51 1.60" "TeamNum" "2" "targetname" "NeverShields" "mins" "-1000 -50 -1000" "maxs" "1000 5 1000" "StartDisabled" "0" } func_nobuild { "origin" "257.25 -1789.51 1.60" "targetname" "NeverShields" "mins" "-1000 -50 -1000" "maxs" "1000 5 1000" "StartDisabled" "0" } prop_dynamic { modelscale 1.6 model "models/props_mvm/reversemvm_redwall_640x418.mdl" //measurements 640X300 176X120 176X152 256X288 "origin" "1691.03 -1276.55 4.89" angles "0 90 0" targetname "NeverShields" disableshadows 1 } func_forcefield { "origin" "1691.03 -1276.55 4.89" "TeamNum" "2" "targetname" "NeverShields" "mins" "-50 -800 -800" "maxs" "5 800 800" "StartDisabled" "0" } func_nobuild { "origin" "1691.03 -1276.55 4.89" "targetname" "NeverShields" "mins" "-50 -800 -800" "maxs" "5 800 800" "StartDisabled" "0" } } wave3_initialization_relay //fires all the relays to set up the map, and places spawnpoint covers { logic_relay { "targetname" "wave3_initialization_relay" "onspawn" "spawner_wave3,enable,,0,1" "onspawn" "carrier_door_trigger,enable,,0,1" "onspawn" "A_route_wall_4_fix_relay,Trigger,,0,-1" "onspawn" "carrier_door_clip,kill,,0,1" "onspawn" "bomb,Disable,,0,-1" "onspawn" "setup_teleporter,kill,0,1" "onspawn" "spawnbot_blu_factory,Disable,,0,-1" "onspawn" "spawnbot_red_factory,Disable,,0,-1" "onspawn" "spawnbot_gry_monochrome,Disable,,0,-1" "onspawn" "spawnbot_gry_monochrome_support1,Disable,,0,-1" "onspawn" "spawnbot_gry_monochrome_support2,Disable,,0,-1" "onspawn" "spawnbot_gry_monochrome_support3,Disable,,0,-1" "onspawn" "spawnbot_blu_bomb_carrier,Disable,,0,-1" "onspawn" "timer_relay,Trigger,,0,-1" "onspawn" "relay_C,Trigger,,0,-1" "onspawn" "bombpath_holograms_clear_relay,Trigger,,0.01,-1" "onspawn" "door_r_trigger_open,enable,,0,1" //whoops! trapped a whole bunch of people in spawn when I forgot this "onspawn" "door_l_trigger_open,enable,,0,1" "onspawn" "text3_0,Show,,0,1" "onspawn" "spawnbot_red_mirror1*,Enable,,0,-1" "onspawn" "spawnbot_red_mirror2*,Disable,,0,-1" "onspawn" "spawnbot_red_mirror3*,Disable,,0,-1" "onspawn" "spawnbot_red_mirror4*,Disable,,0,-1" "onspawn" "tf_point_nav_interface,recomputeblockers,,0,-1" } info_target { "targetname" "Gatebot_Interrupt_Target" "origin" "-1287.58 259.24 192.5" } prop_dynamic { "model" "models/props_mvm/robot_spawnpoint.mdl" "disableshadows" 1 "startdisabled" 1 "defaultanim" "idle" "angles" "0 90 0" "skin" 0 "targetname" spawner_wave1 "origin" "-4.96 53.24 6.26" } info_particle_system // Cinefx Payload explosion { "targetname" "explode_shortcut_effect" "angles" "0 0 0" "effect_name" "hightower_explosion" "flag_as_weather" "0" "start_active" "0" "origin" "485.53 643.15 185.28" } env_shake // Earthquake { "targetname" "explode_shortcut_quake" "spawnflags" "1" "radius" "99999" "frequency" "40" "duration" "3" "amplitude" "16" } ambient_generic // Kaboom noise { "targetname" "explode_shortcut_sound" "health" "10" "message" "Cart.Explode" "pitch" "100" "pitchstart" "100" "radius" "99999" "spawnflags" "49" "origin" "485.53 643.15 185.28" } training_annotation { "targetname" "text3_0" "display_text" "Cap here to progress!" "lifetime" "10" "origin" "-1287.58 259.24 192.5" } training_annotation { "targetname" "text3_2" "display_text" "Next point is over here!" "lifetime" "10" "origin" "-1778.48 -1148.93 2.48" } training_annotation { "targetname" "text3_3" "display_text" "Next point is over here!" "lifetime" "10" "origin" "2557.03 -1904.31 225.19" } training_annotation { "targetname" "text3_final" "display_text" "Obliterate to open the hatch!" "lifetime" "20" "origin" "-1853.44 -1898.36 449.11" } prop_dynamic //so you can see it from both sides { modelscale 2.6 model "models/props_mvm/reversemvm_redwall_640x418.mdl" //measurements 640X300 176X120 176X152 256X288 "origin" "-1412.86 -133.82 191.27" angles "0 0 0" targetname "FirstShields" disableshadows 1 } func_forcefield { "origin" "-1412.86 -133.82 -191.27" "TeamNum" "2" "targetname" "FirstShields" "mins" "-1000 -50 -1000" "maxs" "1000 5 1000" "StartDisabled" "0" } func_nobuild { "origin" "-1412.86 -133.82 -191.27" "targetname" "FirstShields" "mins" "-1000 -50 -1000" "maxs" "1000 5 1000" "StartDisabled" "0" } prop_dynamic //so you can see it from both sides { modelscale 1.2 model "models/props_mvm/reversemvm_redwall_640x418.mdl" //measurements 640X300 176X120 176X152 256X288 "origin" "-0.54 -413.47 2.73" angles "0 0 0" targetname "FinalShields" disableshadows 1 } prop_dynamic //so you can see it from both sides { modelscale 2.6 model "models/props_mvm/reversemvm_redwall_640x418.mdl" //measurements 640X300 176X120 176X152 256X288 "origin" "-493.56 -1293.35 1.42" angles "0 90 0" targetname "FinalShields" disableshadows 1 } prop_dynamic //so you can see it from both sides { modelscale 2.6 model "models/props_mvm/reversemvm_redwall_640x418.mdl" //measurements 640X300 176X120 176X152 256X288 "origin" "-493.56 -2957.25 1.42" angles "0 90 0" targetname "FinalShields" disableshadows 1 } func_forcefield { "origin" "-493.56 -1293.35 1.42" "TeamNum" "2" "targetname" "FinalShields" "mins" "-50 -1000 -1000" "maxs" "5 1000 1000" "StartDisabled" "0" } func_nobuild { "origin" "-493.56 -1293.35 1.42" "targetname" "FinalShields" "mins" "-50 -1000 -1000" "maxs" "5 1000 1000" "StartDisabled" "0" } prop_dynamic //so you can see it from both sides { modelscale 1.2 model "models/props_mvm/reversemvm_redwall_640x418.mdl" //measurements 640X300 176X120 176X152 256X288 "origin" "-0.54 -413.47 2.73" angles "0 180 0" targetname "FinalShields" disableshadows 1 } func_forcefield { "origin" "-0.54 -413.47 2.73" "TeamNum" "2" "targetname" "FinalShields" "mins" "-300 -50 -300" "maxs" "300 50 300" "StartDisabled" "0" } func_nobuild { "origin" "-0.54 -413.47 2.73" "targetname" "FinalShields" "mins" "-300 -50 -300" "maxs" "300 5 300" "StartDisabled" "0" } prop_dynamic //so you can see it from both sides { modelscale 1.53 model "models/props_mvm/reversemvm_redwall_640x418.mdl" //measurements 640X300 176X120 176X152 256X288 "origin" "1386.41 -747.57 54.54" angles "0 180 0" targetname "FinalShields" disableshadows 1 } prop_dynamic //so you can see it from both sides { modelscale 1.53 model "models/props_mvm/reversemvm_redwall_640x418.mdl" //measurements 640X300 176X120 176X152 256X288 "origin" "1386.41 -747.57 54.54" angles "0 0 0" targetname "FinalShields" disableshadows 1 } func_forcefield { "origin" "1386.41 -747.57 54.54" "TeamNum" "2" "targetname" "FinalShields" "mins" "-390 -50 -390" "maxs" "390 5 390" "StartDisabled" "0" } func_nobuild { "origin" "1386.41 -747.57 54.54" "targetname" "FinalShields" "mins" "-390 -50 -390" "maxs" "390 5 390" "StartDisabled" "0" } prop_dynamic //so you can see it from both sides { modelscale 1.2 model "models/props_mvm/reversemvm_redwall_640x418.mdl" //measurements 640X300 176X120 176X152 256X288 "origin" "-0.54 -413.47 2.73" angles "0 180 0" targetname "FinalShields" disableshadows 1 } func_forcefield { "origin" "-0.54 -413.47 2.73" "TeamNum" "2" "targetname" "FinalShields" "mins" "-300 -50 -300" "maxs" "300 5 300" "StartDisabled" "0" } func_nobuild { "origin" "-0.54 -413.47 2.73" "targetname" "FinalShields" "mins" "-300 -50 -300" "maxs" "300 5 300" "StartDisabled" "0" } prop_dynamic { "model" "models\props_hydro\cap_point_arrow.mdl" "disableshadows" 1 "angles" "0 90 0" "skin" 1 "targetname" wave3_cap1_arrows "origin" "-271.67 398.85 94.60" } prop_dynamic { "model" "models\props_hydro\cap_point_arrow.mdl" "disableshadows" 1 "angles" "0 0 20" "skin" 1 "targetname" wave3_cap1_arrows "origin" "-376.80 510.75 107.47" } prop_dynamic { "model" "models/props_mvm/robot_spawnpoint.mdl" "disableshadows" 1 "startdisabled" 1 "defaultanim" "idle" "angles" "0 180 0" "skin" 0 "targetname" spawner_wave3 "origin" "-440.00 4.66 336.93" } prop_dynamic { "model" "models/props_mvm/robot_spawnpoint.mdl" "disableshadows" 1 "startdisabled" 1 "defaultanim" "idle" "angles" "0 180 0" "skin" 0 "targetname" spawner_wave3 "origin" "144.76 -1297.68 4.72" } prop_dynamic { "model" "models/props_mvm/robot_spawnpoint.mdl" "disableshadows" 1 "startdisabled" 1 "defaultanim" "idle" "angles" "0 180 0" "skin" 0 "targetname" spawner_wave3 "origin" "1103.85 -2051.64 80.43" } prop_dynamic { "model" "models/props_mvm/robot_spawnpoint.mdl" "disableshadows" 1 "startdisabled" 1 "defaultanim" "idle" "angles" "0 180 0" "skin" 0 "targetname" spawner_wave3 "origin" "1276.68 -2489.83 7.39" } prop_dynamic { "model" "models/props_mvm/robot_spawnpoint.mdl" "disableshadows" 1 "startdisabled" 1 "defaultanim" "idle" "angles" "0 180 0" "skin" 0 "targetname" spawner_wave3 "origin" "444.65 -2007.88 165.1" } prop_dynamic { "model" "models/props_mvm/robot_spawnpoint.mdl" "disableshadows" 1 "startdisabled" 0 "defaultanim" "idle" "angles" "0 180 0" "skin" 2 "targetname" spawnbot_gry_factory //so it dies with the spawnpoint "origin" "1570.67 63.53 82.57" } prop_dynamic { "model" "models/props_mvm/robot_spawnpoint.mdl" "disableshadows" 1 "startdisabled" 0 "defaultanim" "idle" "angles" "0 180 0" "skin" 2 "targetname" spawnbot_gry_factory //so it dies with the spawnpoint "origin" "1570.67 440.96 82.57" } prop_dynamic { "model" "models/props_mvm/robot_spawnpoint.mdl" "disableshadows" 1 "startdisabled" 0 "defaultanim" "idle" "angles" "0 180 0" "skin" 2 "targetname" spawnbot_gry_factory //so it dies with the spawnpoint "origin" "1981.06 440.96 82.57" } prop_dynamic { "model" "models/props_mvm/robot_spawnpoint.mdl" "disableshadows" 1 "startdisabled" 0 "defaultanim" "idle" "angles" "0 180 0" "skin" 2 "targetname" spawnbot_gry_factory //so it dies with the spawnpoint "origin" "1981.06 65.52 82.57" } prop_dynamic { "model" "models/props_mvm/robot_spawnpoint.mdl" "disableshadows" 1 "startdisabled" 0 "defaultanim" "idle" "angles" "0 180 0" "skin" 2 "targetname" spawnbot_gry_factory //so it dies with the spawnpoint "origin" "1758.23 548.96 82.57" } prop_dynamic { "model" "models/props_mvm/robot_spawnpoint.mdl" "disableshadows" 1 "startdisabled" 0 "defaultanim" "idle" "angles" "0 180 0" "skin" 2 "targetname" spawnbot_gry_factory //so it dies with the spawnpoint "origin" "1758.23 16 82.57" } prop_dynamic { "model" "models/props_mvm/robot_spawnpoint.mdl" "disableshadows" 1 "startdisabled" 1 "defaultanim" "idle" "angles" "0 180 0" "skin" 0 "targetname" spawnbot_red_factory //so it dies with the spawnpoint "origin" "1570.67 63.53 82.57" } prop_dynamic { "model" "models/props_mvm/robot_spawnpoint.mdl" "disableshadows" 1 "startdisabled" 1 "defaultanim" "idle" "angles" "0 180 0" "skin" 0 "targetname" spawnbot_red_factory //so it dies with the spawnpoint "origin" "1570.67 440.96 82.57" } prop_dynamic { "model" "models/props_mvm/robot_spawnpoint.mdl" "disableshadows" 1 "startdisabled" 1 "defaultanim" "idle" "angles" "0 180 0" "skin" 0 "targetname" spawnbot_red_factory //so it dies with the spawnpoint "origin" "1981.06 440.96 82.57" } prop_dynamic { "model" "models/props_mvm/robot_spawnpoint.mdl" "disableshadows" 1 "startdisabled" 1 "defaultanim" "idle" "angles" "0 180 0" "skin" 0 "targetname" spawnbot_red_factory //so it dies with the spawnpoint "origin" "1981.06 65.52 82.57" } prop_dynamic { "model" "models/props_mvm/robot_spawnpoint.mdl" "disableshadows" 1 "startdisabled" 1 "defaultanim" "idle" "angles" "0 180 0" "skin" 0 "targetname" spawnbot_red_factory //so it dies with the spawnpoint "origin" "1758.23 548.96 82.57" } prop_dynamic { "model" "models/props_mvm/robot_spawnpoint.mdl" "disableshadows" 1 "startdisabled" 1 "defaultanim" "idle" "angles" "0 180 0" "skin" 0 "targetname" spawnbot_red_factory //so it dies with the spawnpoint "origin" "1758.23 16 82.57" } prop_dynamic { "model" "models/props_mvm/robot_spawnpoint.mdl" "disableshadows" 1 "startdisabled" 1 "defaultanim" "idle" "angles" "0 180 0" "skin" 1 "targetname" spawnbot_blu_factory //so it dies with the spawnpoint "origin" "1570.67 63.53 82.57" } prop_dynamic { "model" "models/props_mvm/robot_spawnpoint.mdl" "disableshadows" 1 "startdisabled" 1 "defaultanim" "idle" "angles" "0 180 0" "skin" 1 "targetname" spawnbot_blu_factory //so it dies with the spawnpoint "origin" "1570.67 440.96 82.57" } prop_dynamic { "model" "models/props_mvm/robot_spawnpoint.mdl" "disableshadows" 1 "startdisabled" 1 "defaultanim" "idle" "angles" "0 180 0" "skin" 1 "targetname" spawnbot_blu_factory //so it dies with the spawnpoint "origin" "1981.06 440.96 82.57" } prop_dynamic { "model" "models/props_mvm/robot_spawnpoint.mdl" "disableshadows" 1 "startdisabled" 1 "defaultanim" "idle" "angles" "0 180 0" "skin" 1 "targetname" spawnbot_blu_factory //so it dies with the spawnpoint "origin" "1981.06 65.52 82.57" } prop_dynamic { "model" "models/props_mvm/robot_spawnpoint.mdl" "disableshadows" 1 "startdisabled" 1 "defaultanim" "idle" "angles" "0 180 0" "skin" 1 "targetname" spawnbot_blu_factory //so it dies with the spawnpoint "origin" "1758.23 548.96 82.57" } prop_dynamic { "model" "models/props_mvm/robot_spawnpoint.mdl" "disableshadows" 1 "startdisabled" 1 "defaultanim" "idle" "angles" "0 180 0" "skin" 1 "targetname" spawnbot_blu_factory //so it dies with the spawnpoint "origin" "1758.23 16 82.57" } game_text { "origin" "1984 1984 0" "targetname" "alert_text" "message" "TIMER EXTENDED" "x" "-1" "y" "0.4" "spawnflags" "1" "effect" "2" "channel" "2" "color" "123 123 255" "fxtime" "0.2" "fadeout" "0.6" //"fadein" "0" "holdtime" "2.5" } game_text { "origin" "1984 1984 0" "targetname" "upper_text" "message" "GREYSCALE GENERAL" "x" "-1" "y" "0.4" "spawnflags" "1" "effect" "2" "channel" "2" "color" "255 255 255" "fxtime" "0.2" "fadeout" "1" //"fadein" "0" "holdtime" "5" } game_text { "origin" "1984 1984 0" "targetname" "middle_text" "message" "MONOCHROME" "x" "-1" "y" "0.45" "channel" "0" "spawnflags" "1" "color" "128 128 128" "fadein" "0.2" "fadeout" "1" "holdtime" "4.8" } game_text { "origin" "1984 1984 0" "targetname" "upper_text_funny" "message" "GWEYSCAWLE GENEWAL" "x" "-1" "y" "0.4" "spawnflags" "1" "effect" "2" "channel" "2" "color" "255 100 200" "fxtime" "0.2" "fadeout" "1" //"fadein" "0" "holdtime" "5" } game_text { "origin" "1984 1984 0" "targetname" "middle_text_funny" "message" "MONOWOCHROME" "x" "-1" "y" "0.45" "channel" "0" "spawnflags" "1" "color" "255 100 200" "fadein" "0.2" "fadeout" "1" "holdtime" "4.8" } } Wave3_Control_Points { NoFixup 1 team_control_point_master { "classname" "team_control_point_master" "cpm_restrict_team_cap_win" "1" "custom_position_x" "0.15" "custom_position_y" "0.81" "partial_cap_points_rate" "0" "caplayout" "1 2, 3 0" "play_all_rounds" "0" "score_style" "0" "StartDisabled" "0" "switch_teams" "0" "targetname" "cap_master" "team_base_icon_2" "sprites/obj_icons/icon_base_red" "team_base_icon_3" "sprites/obj_icons/icon_base_blu" } OnSpawnOutput //very important to keep this output otherwise the control point will not function { Target cap_area1 Action SetControlPoint Param cap_point1 } OnSpawnOutput //very important to keep this output otherwise the control point will not function { Target cap_area2 Action SetControlPoint Param cap_point2 } OnSpawnOutput //very important to keep this output otherwise the control point will not function { Target cap_area4 Action SetControlPoint Param cap_point4 } OnSpawnOutput //very important to keep this output otherwise the control point will not function { Target cap_area5 Action SetControlPoint Param cap_point5 } OnSpawnOutput //this output is optional but it is kept here for debugging purposes, if you do not restrict a team from winning and the control point spawned is not neutral, it will automatically end the wave so make sure you set the restriction { Target cap_master Action RoundSpawn } prop_dynamic { "model" "models/props_gameplay/cap_point_base.mdl" "targetname" "cap_base1" "solid" "6" "skin" "1" //set this number to 0 for neutral, 1 for red, 2 for blu "origin" "-1287.58 259.24 192.5" } trigger_capture_area { "area_cap_point" "cap_point1" "area_time_to_cap" "15" //multiply this number by 2 to get the capture duration in seconds, raising "team_numcap_3" and "team_numcap_2" will also increase the time taken by a factor of the value (e.g. raising it to 2 will multiply the duration by 2) "StartDisabled" "0" "targetname" "cap_area1" "team_cancap_2" "0" //setting this number to 0 disables red team from recapturing, 1 enables red team to recapture "team_cancap_3" "1" //1 enables blu team to cap "team_numcap_2" "1" //changing this number will change the number of red players required to stand on the point to finish capturing "team_numcap_3" "1" //changing this number will change the number of blu players required to stand on the point to finish capturing "team_spawn_2" "0" "team_spawn_3" "0" "team_startcap_2" "1" //changing this number will change the number of red players required to stand on the point to begin capturing "team_startcap_3" "1" //changing this number will change the number of blu players required to stand on the point to begin capturing "mins" "-128 -128 -128" "maxs" "128 128 128" "spawnflags" "1" "origin" "-1287.58 259.24 192.5" //change this "OnCapTeam1" "cap_base1,Skin,1,0,-1" //set the first number to 0 for neutral, 1 for red, 2 for blu "OnCapTeam2" "cap_base1,Skin,2,0,-1" //set the first number to 0 for neutral, 1 for red, 2 for blu ////////////////////////////////////////////editable outputs//////////////////////////////////////////// OnStartTeam1,OnBreakTeam1,OnCapTeam1,OnStartTeam2,OnBreakTeam2.OnCapTeam2,OnStartCap,OnBreakCap,OnEndCap,OnNumCappersChanged,OnNumCappersChanged2 "OnCapTeam2" "Gatebot_Interrupt_Target,$SetLocalOrigin,-1778.48 -1148.93 2.48,0,-1" "OnCapTeam2" "FirstShields,Disable,,0,-1" "OnCapTeam2" "player,$PlaySoundToSelf,ambient/energy/zap9.wav,0,-1" "OnCapTeam2" "relay_D,Trigger,,0,-1" "OnCapTeam2" "bombpath_holograms_clear_relay,Trigger,,0.01,-1" "OnCapTeam2" "text3_2,Show,,0,1" "OnCapTeam2" "spawnbot_red_mirror1*,Disable,,3,-1" "OnCapTeam2" "spawnbot_red_mirror2*,Enable,,5,-1" "OnCapTeam2" "player,$PlaySoundToSelf,mobocracy/rescue.wav,0,-1" "OnCapTeam2" "relay_tank_hologram_D,Trigger,,0,-1" "OnCapTeam2" "tf_point_nav_interface,recomputeblockers,,0,-1" } team_control_point { "angles" "0 0 0" "point_default_owner" "2" //this is the team that the control point will spawn in, set this number to 0 for neutral, 2 for red, 3 for blu "point_group" "0" "point_index" "0" //if you plan on having multiple control points at once, you must give each one a unique "point_index", spawning more than 8 control points on the map will crash the server "point_printname" "Blue Highground" //this is the name of the control point that will show up in the kill feed "point_start_locked" "0" "point_warn_on_cap" "0" "point_warn_sound" "ControlPoint.CaptureWarn" "random_owner_on_restart" "0" "spawnflags" "4" "targetname" "cap_point1" "team_bodygroup_0" "3" "team_bodygroup_2" "1" "team_bodygroup_3" "1" "team_icon_0" "sprites/obj_icons/icon_obj_neutral" //this is the image shown on the hud icon "team_icon_2" "sprites/obj_icons/icon_obj_red" "team_icon_3" "sprites/obj_icons/icon_obj_blu" "team_model_0" "models/effects/cappoint_hologram.mdl" //this is the model of the hologram that appears above the control point "team_model_2" "models/effects/cappoint_hologram.mdl" "team_model_3" "models/effects/cappoint_hologram.mdl" "team_previouspoint_3_0" "cap_point1" //if you want to create a sequence of control points similar to an attack/defense map, this keyvalue determines the order in which they can be captured //it represents the names of the previous control points that must be owned by blu team before this point can be unlocked, if this is the first control point on the map, it must refer to itself or else it will be locked "team_previouspoint_2_0" "cap_point1" //this allows red to recapture if "team_cancap_2" is set to 1 in the trigger_capture_area "team_timedpoints_2" "0" "team_timedpoints_3" "0" "origin" "-1287.58 259.24 192.5" } prop_dynamic { "model" "models/props_gameplay/cap_point_base.mdl" "targetname" "cap_base2" "solid" "6" "skin" "1" //set this number to 0 for neutral, 1 for red, 2 for blu "origin" "2557.03 -1904.31 225.19" } trigger_capture_area { "area_cap_point" "cap_point2" "area_time_to_cap" "20" //multiply this number by 2 to get the capture duration in seconds, raising "team_numcap_3" and "team_numcap_2" will also increase the time taken by a factor of the value (e.g. raising it to 2 will multiply the duration by 2) "StartDisabled" "0" "targetname" "cap_area2" "team_cancap_2" "0" //setting this number to 0 disables red team from recapturing, 1 enables red team to recapture "team_cancap_3" "1" //1 enables blu team to cap "team_numcap_2" "1" //changing this number will change the number of red players required to stand on the point to finish capturing "team_numcap_3" "1" //changing this number will change the number of blu players required to stand on the point to finish capturing "team_spawn_2" "0" "team_spawn_3" "0" "team_startcap_2" "1" //changing this number will change the number of red players required to stand on the point to begin capturing "team_startcap_3" "1" //changing this number will change the number of blu players required to stand on the point to begin capturing "mins" "-128 -128 -5" "maxs" "128 128 128" "spawnflags" "1" "origin" "2557.03 -1904.31 225.19" "OnCapTeam1" "cap_base2,Skin,1,0,-1" //set the first number to 0 for neutral, 1 for red, 2 for blu "OnCapTeam2" "cap_base2,Skin,2,0,-1" //set the first number to 0 for neutral, 1 for red, 2 for blu ////////////////////////////////////////////editable outputs//////////////////////////////////////////// OnStartTeam1,OnBreakTeam1,OnCapTeam1,OnStartTeam2,OnBreakTeam2.OnCapTeam2,OnStartCap,OnBreakCap,OnEndCap,OnNumCappersChanged,OnNumCappersChanged2 "OnCapTeam2" "Gatebot_Interrupt_Target,$SetLocalOrigin,1275.41 -2815.96 -3.23,0,-1" "OnCapTeam2" "wave3_hatch_open,Trigger,,0,-1" "OnCapTeam2" "player,$PlaySoundToSelf,ambient/energy/zap9.wav,0,-1" "OnCapTeam2" "spawnbot_red_mirror3*,Disable,,0,-1" "OnCapTeam2" "stop_timer,Trigger,,0,-1" "OnCapTeam2" "player,$PlaySoundToSelf,mobocracy/rescue.wav,0,-1" "OnCapTeam2" "relay_tank_hologram_D,Trigger,,0,-1" "OnCapTeam2" "relay_tank_hologram_A,Trigger,,0,-1" "OnCapTeam2" "tf_point_nav_interface,recomputeblockers,,0,-1" } team_control_point { "classname" "team_control_point" "angles" "0 0 0" "point_default_owner" "2" //this is the team that the control point will spawn in, set this number to 0 for neutral, 2 for red, 3 for blu "point_group" "0" "point_index" "1" //if you plan on having multiple control points at once, you must give each one a unique "point_index", spawning more than 8 control points on the map will crash the server "point_printname" "Red Hatch Bridge" //this is the name of the control point that will show up in the kill feed "point_start_locked" "1" "point_warn_on_cap" "0" "point_warn_sound" "ControlPoint.CaptureWarn" "random_owner_on_restart" "0" "spawnflags" "4" "targetname" "cap_point2" "team_bodygroup_0" "3" "team_bodygroup_2" "1" "team_bodygroup_3" "1" "team_icon_0" "sprites/obj_icons/icon_obj_neutral" //this is the image shown on the hud icon "team_icon_2" "sprites/obj_icons/icon_obj_red" "team_icon_3" "sprites/obj_icons/icon_obj_blu" "team_model_0" "models/effects/cappoint_hologram.mdl" //this is the model of the hologram that appears above the control point "team_model_2" "models/effects/cappoint_hologram.mdl" "team_model_3" "models/effects/cappoint_hologram.mdl" "team_previouspoint_3_0" "cap_point4" //if you want to create a sequence of control points similar to an attack/defense map, this keyvalue determines the order in which they can be captured //it represents the names of the previous control points that must be owned by blu team before this point can be unlocked, if this is the first control point on the map, it must refer to itself or else it will be locked "team_previouspoint_2_0" "cap_point4" //this allows red to recapture if "team_cancap_2" is set to 1 in the trigger_capture_area "team_timedpoints_2" "0" "team_timedpoints_3" "0" "origin" "2557.03 -1904.31 225.19" } //made a copy and pasting error, you will have to live with incorrectly //numbered points now prop_dynamic { "model" "models/props_gameplay/cap_point_base.mdl" "targetname" "cap_base4" "solid" "6" "skin" "1" //set this number to 0 for neutral, 1 for red, 2 for blu "origin" "-1778.48 -1148.93 2.48" } trigger_capture_area { "area_cap_point" "cap_point4" "area_time_to_cap" "35" //multiply this number by 2 to get the capture duration in seconds, raising "team_numcap_3" and "team_numcap_2" will also increase the time taken by a factor of the value (e.g. raising it to 2 will multiply the duration by 2) "StartDisabled" "0" "targetname" "cap_area4" "team_cancap_2" "0" //setting this number to 0 disables red team from recapturing, 1 enables red team to recapture "team_cancap_3" "1" //1 enables blu team to cap "team_numcap_2" "1" //changing this number will change the number of red players required to stand on the point to finish capturing "team_numcap_3" "1" //changing this number will change the number of blu players required to stand on the point to finish capturing "team_spawn_2" "0" "team_spawn_3" "0" "team_startcap_2" "1" //changing this number will change the number of red players required to stand on the point to begin capturing "team_startcap_3" "1" //changing this number will change the number of blu players required to stand on the point to begin capturing "mins" "-128 -128 -128" "maxs" "128 128 128" "spawnflags" "1" "origin" "-1778.48 -1148.93 2.48" "OnCapTeam1" "cap_base4,Skin,1,0,-1" //set the first number to 0 for neutral, 1 for red, 2 for blu "OnCapTeam2" "cap_base4,Skin,2,0,-1" //set the first number to 0 for neutral, 1 for red, 2 for blu ////////////////////////////////////////////editable outputs//////////////////////////////////////////// OnStartTeam1,OnBreakTeam1,OnCapTeam1,OnStartTeam2,OnBreakTeam2.OnCapTeam2,OnStartCap,OnBreakCap,OnEndCap,OnNumCappersChanged,OnNumCappersChanged2 "OnCapTeam2" "Gatebot_Interrupt_Target,$SetLocalOrigin,2557.03 -1904.31 225.19,0,-1" "OnCapTeam2" "FinalShields,Disable,,0,-1" "OnCapTeam2" "player,$PlaySoundToSelf,ambient/energy/zap9.wav,0,-1" "OnCapTeam2" "text3_3,Show,,0,1" "OnCapTeam2" "spawnbot_red_mirror2*,Disable,,0,-1" "OnCapTeam2" "spawnbot_red_mirror3*,Enable,,15,-1" "OnCapTeam2" "spawnbot_blu_bomb_carrier,Enable,,0.5,-1" "OnCapTeam2" "bomb,Enable,,0,-1" "OnCapTeam2" "player,$PlaySoundToSelf,mobocracy/rescue.wav,0,-1" "OnCapTeam2" "relay_tank_hologram_A,Trigger,,0,-1" "OnCapTeam2" "relay_tank_hologram_D,Trigger,,0,-1" "OnCapTeam2" "relay_tank_hologram_B,Trigger,,0,-1" "OnCapTeam2" "tf_point_nav_interface,recomputeblockers,,0,-1" } team_control_point { "classname" "team_control_point" "angles" "0 0 0" "point_default_owner" "2" //this is the team that the control point will spawn in, set this number to 0 for neutral, 2 for red, 3 for blu "point_group" "0" "point_index" "2" //if you plan on having multiple control points at once, you must give each one a unique "point_index", spawning more than 8 control points on the map will crash the server "point_printname" "The Lava Zone" //this is the name of the control point that will show up in the kill feed "point_start_locked" "0" "point_warn_on_cap" "0" "point_warn_sound" "ControlPoint.CaptureWarn" "random_owner_on_restart" "0" "spawnflags" "4" "targetname" "cap_point4" "team_bodygroup_0" "3" "team_bodygroup_2" "1" "team_bodygroup_3" "1" "team_icon_0" "sprites/obj_icons/icon_obj_neutral" //this is the image shown on the hud icon "team_icon_2" "sprites/obj_icons/icon_obj_red" "team_icon_3" "sprites/obj_icons/icon_obj_blu" "team_model_0" "models/effects/cappoint_hologram.mdl" //this is the model of the hologram that appears above the control point "team_model_2" "models/effects/cappoint_hologram.mdl" "team_model_3" "models/effects/cappoint_hologram.mdl" "team_previouspoint_3_0" "cap_point1" //if you want to create a sequence of control points similar to an attack/defense map, this keyvalue determines the order in which they can be captured //it represents the names of the previous control points that must be owned by blu team before this point can be unlocked, if this is the first control point on the map, it must refer to itself or else it will be locked "team_previouspoint_2_0" "cap_point1" //this allows red to recapture if "team_cancap_2" is set to 1 in the trigger_capture_area "team_timedpoints_2" "0" "team_timedpoints_3" "0" "origin" "-1778.48 -1148.93 2.48" } prop_dynamic { "model" "models/props_gameplay/cap_point_base.mdl" "targetname" "cap_base5" "solid" "6" "skin" "0" //set this number to 0 for neutral, 1 for red, 2 for blu "origin" "1080.22 249.16 80.42" } trigger_capture_area { "area_cap_point" "cap_point5" "area_time_to_cap" "9" //multiply this number by 2 to get the capture duration in seconds, raising "team_numcap_3" and "team_numcap_2" will also increase the time taken by a factor of the value (e.g. raising it to 2 will multiply the duration by 2) "StartDisabled" "0" "targetname" "cap_area5" "team_cancap_2" "1" //setting this number to 0 disables red team from recapturing, 1 enables red team to recapture "team_cancap_3" "1" //1 enables blu team to cap "team_numcap_2" "1" //changing this number will change the number of red players required to stand on the point to finish capturing "team_numcap_3" "1" //changing this number will change the number of blu players required to stand on the point to finish capturing "team_spawn_2" "0" "team_spawn_3" "0" "team_startcap_2" "1" //changing this number will change the number of red players required to stand on the point to begin capturing "team_startcap_3" "1" //changing this number will change the number of blu players required to stand on the point to begin capturing "mins" "-128 -128 -128" "maxs" "128 128 128" "spawnflags" "1" "origin" "1080.22 249.16 80.42" "OnCapTeam1" "cap_base5,Skin,1,0,-1" //set the first number to 0 for neutral, 1 for red, 2 for blu "OnCapTeam2" "cap_base5,Skin,2,0,-1" //set the first number to 0 for neutral, 1 for red, 2 for blu ////////////////////////////////////////////editable outputs//////////////////////////////////////////// OnStartTeam1,OnBreakTeam1,OnCapTeam1,OnStartTeam2,OnBreakTeam2.OnCapTeam2,OnStartCap,OnBreakCap,OnEndCap,OnNumCappersChanged,OnNumCappersChanged2 "OnCapTeam1" "spawnbot_blu_factory,Disable,,0.01,-1" //turn off blue factory spawn "OnCapTeam1" "spawnbot_red_factory,Enable,,0.01,-1" //turn on red factory spawn "OnCapTeam1" "spawnbot_gry_factory,Disable,,0.01,-1" //turn off grey factory spawn. //"OnCapTeam1" "spawnbot_gry_monochrome,Enable,,0.01,1" //Summon grey boss "OnCapTeam2" "spawnbot_blu_factory,Enable,,0.01,-1" //turn on blue factory spawn "OnCapTeam2" "spawnbot_red_factory,Disable,,0.01,-1" //turn off red factory spawn "OnCapTeam2" "spawnbot_gry_factory,Disable,,0.01,-1" //turn off grey factory spawn. //commented out, he will be spawned somewhere new, under new circumstances //"OnCapTeam2" "spawnbot_gry_monochrome,Enable,,0.01,1" //Summon grey boss } team_control_point { "classname" "team_control_point" "angles" "0 0 0" "point_default_owner" "0" //this is the team that the control point will spawn in, set this number to 0 for neutral, 2 for red, 3 for blu "point_group" "0" "point_index" "3" //if you plan on having multiple control points at once, you must give each one a unique "point_index", spawning more than 8 control points on the map will crash the server "point_printname" "Factory Reinforcements" //this is the name of the control point that will show up in the kill feed "point_start_locked" "0" "point_warn_on_cap" "0" "point_warn_sound" "ControlPoint.CaptureWarn" "random_owner_on_restart" "0" "spawnflags" "4" "targetname" "cap_point5" "team_bodygroup_0" "3" "team_bodygroup_2" "1" "team_bodygroup_3" "1" "team_icon_0" "sprites/obj_icons/icon_obj_neutral" //this is the image shown on the hud icon "team_icon_2" "sprites/obj_icons/icon_obj_red" "team_icon_3" "sprites/obj_icons/icon_obj_blu" "team_model_0" "models/effects/cappoint_hologram.mdl" //this is the model of the hologram that appears above the control point "team_model_2" "models/effects/cappoint_hologram.mdl" "team_model_3" "models/effects/cappoint_hologram.mdl" "team_previouspoint_3_0" "cap_point5" //if you want to create a sequence of control points similar to an attack/defense map, this keyvalue determines the order in which they can be captured //it represents the names of the previous control points that must be owned by blu team before this point can be unlocked, if this is the first control point on the map, it must refer to itself or else it will be locked //"team_previouspoint_3_1" "0" //"team_previouspoint_3_2" "0" "team_previouspoint_2_0" "cap_point5" //this allows red to recapture if "team_cancap_2" is set to 1 in the trigger_capture_area //"team_previouspoint_2_1" "0" //"team_previouspoint_2_2" "0" "team_timedpoints_2" "0" "team_timedpoints_3" "0" "origin" "1080.22 249.16 80.42" } func_forcefield //doubled size compared to computer crash { "targetname" "barrier_hatch" "origin" "1279.24 -2820.82 -5.39" "TeamNum" "5" // stops everyone "renderamt" "255" "rendercolor" "255 255 255" "renderfx" "0" "rendermode" "0" "disablereceiveshadows" "0" "mins" "-48.1 -48.1 32.825" "maxs" "48.1 48.1 48.1" } func_nobuild //doubled size compared to computer crash { "targetname" "barrier_hatch" "origin" "1279.24 -2820.82 -5.39" "renderamt" "255" "rendercolor" "255 255 255" "renderfx" "0" "rendermode" "0" "disablereceiveshadows" "0" "DestroyBuildings" 1 //taking absolutely zero chances "mins" "-48.1 -48.1 32.825" "maxs" "48.1 48.1 48.1" } trigger_hurt //game end any being within the hatch shield { "targetname" "barrier_hatch" "damage" "99999" "damagetype" "67108864" //combine ball damage type "spawnflags" "1" "nodmgforce" "0" //funny "origin" "1279.24 -2820.82 -5.39" "mins" "-48.1 -48.1 32.825" "maxs" "48.1 48.1 48.1" } //detect when bomb is about to be deployed trigger_once { "targetname" "bomb_detect_zone" "mins" "-48.1 -48.1 32.825" "maxs" "48.1 48.1 48.1" "filtername" "filter_bomb" "spawnflags" "1" "onstarttouch" "wave3_hatch_close,trigger,,0.01,-1" "onstarttouch" "text3_final,Show,,0.01,-1" "onstarttouch" "spawnbot_gry_monochrome,Enable,,0.01,1" "onstarttouch" "teleport_fade,Fade,,0.01,1" "onstarttouch" "bomb_detect_zone,Disable,,0.1,1" "onstarttouch" "spawnbot_red_mirror3*,Disable,,0,-1" "onstarttouch" "spawnbot_red_mirror4*,Enable,,15,-1" "onstarttouch" "timer_relay,Trigger,,0,-1" "onstarttouch" "tank_holograms_clear_relay,Trigger,,0,-1" "onstarttouch" "player,$PlaySoundToSelf,mobocracy/rescue.wav,0,-1" "onstarttouch" "w3_teleporter,Disable,,1,1" "onstarttouch" "timer_counter_1,add,50,0,-1" "onstarttouch" "w3_teleporter,Enable,,0.01,1" "onstarttouch" "tf_point_nav_interface,recomputeblockers,,0,-1" "origin" "1279.24 -2820.82 -5.39" } env_fade { "targetname" "teleport_fade" "duration" "1" "holdtime" "0.5" "renderamt" "255" "rendercolor" "0 0 0" "spawnflags" "1" } trigger_teleport { targetname "w3_teleporter" origin "1682.21 -1818.64 54.20" //Averaged distances between the farthest side of the lava //hatch entrance and the cliff hatch entrance mins "-3257.08 -3257.08 -3257.08" //X Distance between farthest side of the lava and cliff hatch entrances maxs "3257.08 3257.08 3257.08" target "w3_teleporter_destination" //Thanks ficool "OnStartTouch" "!activatorRunScriptCodeself.AddCondEx(57, 3, null)-1-1" "spawnflags" "1" "filtername" "filter_blu" StartDisabled 1 } filter_activator_tfteam { "targetname" "filter_blu" "teamnum" 3 } info_teleport_destination { targetname "w3_teleporter_destination" origin "-1159.13 216.73 261.04" angles "0 -90 0" } filter_tf_bot_has_tag { "targetname" "filter_bomb" "require_all_tags" "1" "tags" "bot_bomb" } prop_dynamic { "angles" "0 0 0" "model" "models/props_mvm/hatch_shield.mdl" "modelscale" "0.5" "skin" "0" "solid" "6" "spawnflags" "0" "targetname" "barrier_hatch" "origin" "1279.24 -2820.82 -5.39" } logic_relay { "targetname" wave3_hatch_open "OnTrigger" "barrier_hatch,Disable,,0,-1" //Lower shield "OnTrigger" "relay_D,Trigger,,0,-1" "OnTrigger" "bombpath_holograms_clear_relay,Trigger,,0.01,-1" "OnTrigger" "relay_tank_hologram_A,Trigger,,0,-1" "OnTrigger" "relay_tank_hologram_D,Trigger,,0,-1" "OnTrigger" "relay_tank_hologram_B,Trigger,,0,-1" "OnTrigger" "tf_point_nav_interface,recomputeblockers,,0,-1" } logic_relay { "targetname" wave3_hatch_close "OnTrigger" "barrier_hatch,Enable,,0,-1" //Raise shield "OnTrigger" "tf_point_nav_interface,recomputeblockers,,0,-1" } } MonochromeSpawner { info_target { "targetname" "CenterSpawnBeacon" } OnSpawnOutput { Target "CenterSpawnBeacon" Action "SetParent" Param "!activator" Repeats 1 } OnSpawnOutput { Target "spawnbot_gry_monochrome_support1" Action "SetParent" Param "!activator" Repeats 1 } OnSpawnOutput { Target "spawnbot_gry_monochrome_support2" Action "SetParent" Param "!activator" Repeats 1 } OnSpawnOutput { Target "spawnbot_gry_monochrome_support3" Action "SetParent" Param "!activator" Repeats 1 } OnParentKilledOutput //emergency shutdown in case monochrome dies normally { Target "spawnbot_gry_monochrome_support3" Action "Disable" Param "" Repeats 1 } } W1_Chief_Objective_Logic { training_annotation { "targetname" "objective1_6Text" "display_text" "Kill this guy to unlock the final Giga Dispenser!" "lifetime" "10" "origin" "0 0 0" } OnSpawnOutput { Target "objective1_6Text" Action "SetParent" Param "!activator" Repeats 1 } OnParentKilledOutput //when the boss dies, lower the giga dispenser count { Target "popscript" Action "$DecrementGigaDispCount" Param "" Repeats 1 } OnParentKilledOutput { Target objective1_6Text Action "Kill" Param "" Repeats 1 } OnParentKilledOutput { Target final_giga_disp_shield Action "Kill" Param "" Repeats 1 } OnParentKilledOutput { Target objective1_3Text Action "Show" Repeats 1 } } music_3 { NoFixup 1 ambient_generic { "targetname" "w3_music_player" "message" "#madness_combat_remix_cheshyre_madness_clipped.mp3" "health" "10" "radius" "69420" "spawnflags" "17" } logic_relay { "targetname" "w3_music" "OnTrigger" "w3_music_player,PlaySound,,0,-1" } logic_relay { "targetname" "w3_music_end" "OnTrigger" "w3_music_player,Volume,0.01,0,-1" } } music_2 { NoFixup 1 ambient_generic { "targetname" "w2_music_player" "message" "#transformers_devastation_soundtrack_decepticon_sergeant_extended.mp3" "health" "10" "radius" "69420" "spawnflags" "17" } logic_relay { "targetname" "w2_music" "OnTrigger" "w2_music_player,PlaySound,,0,-1" } logic_relay { "targetname" "w2_music_end" "OnTrigger" "w2_music_player,Volume,0.01,0,-1" } } init_rev_relay { func_forcefield //tank door { targetname "carrier_door_clip" origin "-1296.84 3396.77 181.59" mins "-300 -5 -300" maxs "300 5 300" teamnum 2 StartDisabled 0 } prop_dynamic { "origin" "-1016.85, 3683.62, 181.46" "angles" "0, 0, 0" "model" "models/props_gameplay/sign_wood_cap001.mdl" "disableshadows" "1" "modelscale" "2.5" } //-78 +4, +68 //-82 -4, +48 //-82 -4, -22 point_worldtext { "origin" "-1026.81, 3745.13, 320.24" "angles" "0, 0, 0" "targetname" "informationText1" "message" "Listen Up Engineers" "font" "1" "textsize" "12" "orientation" "0" } point_worldtext { "origin" "-1027.63, 3823.31, 290.24" "angles" "0, 0, 0" "targetname" "informationText2" "message" "Your sentries have been replaced with powerful Giant Robots, Inspect your wrench!" "font" "1" "Color" "144 144 255 255" "textsize" "6" "orientation" "0" } point_worldtext { "origin" "-1027.63, 3823.31, 270.24" "angles" "0, 0, 0" "targetname" "informationText3" "message" "The objective this wave is to repair 5 GIGA DISPENSERS around the map" "font" "1" "Color" "144 144 255 255" "textsize" "6" "orientation" "0" } point_worldtext { "origin" "-1027.63, 3823.31, 250.24" "angles" "0, 0, 0" "targetname" "informationText4" "message" "You have six minutes to perform this objective" "font" "1" "Color" "144 144 255 255" "textsize" "6" "orientation" "0" } point_worldtext { "origin" "-1027.63, 3823.31, 230.24" "angles" "0, 0, 0" "targetname" "informationText5" "message" "Note: you can wrench your allies, hold your med shield key to park your giant" "font" "1" "Color" "0 255 0 255" "textsize" "6" "orientation" "0" } point_worldtext { "origin" "-1027.63, 3823.31, 190.24" "angles" "0, 0, 0" "targetname" "informationTextAllies" "message" "Your allies consist of: 2 Giant Soldiers" "font" "1" "Color" "0 255 0 255" "textsize" "6" "orientation" "0" } point_worldtext { "origin" "-2670.47, 2738.51, 1.42" "angles" "0, 45, 0" "targetname" "informationText1" "message" "Listen Up Engineers" "font" "1" "textsize" "12" "orientation" "0" } point_worldtext { "origin" "-2670.47, 2738.51, -28.58" "angles" "0, 45, 0" "targetname" "informationText2" "message" "Your sentries have been replaced with powerful Giant Robots, Inspect your wrench!" "font" "1" "Color" "144 144 255 255" "textsize" "6" "orientation" "0" } point_worldtext { "origin" "-2670.47, 2738.51, -48.58" "angles" "0, 45, 0" "targetname" "informationText3" "message" "The objective this wave is to repair 5 GIGA DISPENSERS around the map" "font" "1" "Color" "144 144 255 255" "textsize" "6" "orientation" "0" } point_worldtext { "origin" "-2670.47, 2738.51, -68.58" "angles" "0, 45, 0" "targetname" "informationText4" "message" "You have six minutes to perform this objective" "font" "1" "Color" "144 144 255 255" "textsize" "6" "orientation" "0" } point_worldtext { "origin" "-2670.47, 2738.51, -88.58" "angles" "0, 45, 0" "targetname" "informationText5" "message" "Note: you can wrench your allies, hold med shield key to park your giant" "font" "1" "Color" "0 255 0 255" "textsize" "6" "orientation" "0" } point_worldtext { "origin" "-2670.47, 2738.51, -118.58" "angles" "0, 45, 0" "targetname" "informationTextAllies" "message" "Your allies consist of: 2 Giant Soldiers" "font" "1" "Color" "0 255 0 255" "textsize" "6" "orientation" "0" } point_worldtext { "origin" "-256.61, 2161.35, -66.63" "angles" "0, -90, 0" "targetname" "informationText1" "message" "Listen Up Engineers" "font" "1" "textsize" "12" "orientation" "0" } point_worldtext { "origin" "-256.61, 2161.35, -86.63" "angles" "0, -90, 0" "targetname" "informationText2" "message" "Your sentries have been replaced with powerful Giant Robots, Inspect your wrench!" "font" "1" "Color" "144 144 255 255" "textsize" "6" "orientation" "0" } point_worldtext { "origin" "-256.61, 2161.35, -106.63" "angles" "0, -90, 0" "targetname" "informationText3" "message" "The objective this wave is to repair 5 GIGA DISPENSERS around the map" "font" "1" "Color" "144 144 255 255" "textsize" "6" "orientation" "0" } point_worldtext { "origin" "-256.61, 2161.35, -126.63" "angles" "0, -90, 0" "targetname" "informationText4" "message" "You have six minutes to perform this objective" "font" "1" "Color" "144 144 255 255" "textsize" "6" "orientation" "0" } point_worldtext { "origin" "-256.61, 2161.35, -146.63" "angles" "0, -90, 0" "targetname" "informationText5" "message" "Note: you can wrench your allies, hold med shield key to park your giant" "font" "1" "Color" "0 255 0 255" "textsize" "6" "orientation" "0" } point_worldtext { "origin" "-256.61, 2161.35, -176.63" "angles" "0, -90, 0" "targetname" "informationTextAllies" "message" "Your allies consist of: 2 Giant Soldiers" "font" "1" "Color" "0 255 0 255" "textsize" "6" "orientation" "0" } logic_relay { "targetname" "w2_text_change" "OnTrigger" "informationText2,SetText,The objective of this wave is to protect the VIP as they stand in 3 rings on the map,0,1" "OnTrigger" "informationText3SetTextOnce it reaches a ring, you must defend them for two minutes01" "OnTrigger" "informationText4,SetText,Healing the VIP with dispensers and your wrench will be imperative to your survival,0,1" "OnTrigger" "informationText4,SetColor,255 255 0,0,1" "OnTrigger" "informationTextAllies,SetText,You have no allies this wave,0,1" "OnTrigger" "informationTextAllies,SetColor,255 0 0,0,1" } logic_relay { "targetname" "w3_text_change" "OnTrigger" "informationText2SetTextCapture 3 control points to unlock the hatch!01" "OnTrigger" "informationText3SetTextThe factory point will also be guarded by greys, capping it gives more allies!01" "OnTrigger" "informationText4SetTextYou have 10 minutes to perform this objective01" "OnTrigger" "informationTextAlliesSetTextYour allies consist of: Super Scouts, Zweihander Knights, Rammer Demos, and Soldiers01" } prop_dynamic { "targetname" "carrier_door_clip" origin "-2449.04 1589.23 -187.31" "angles" "0 133 0" "model" "models\props_vehicles\train_flatcar_container.mdl" "disableshadows" "1" "modelscale" "1" "SetBodyGroup" "0" "skin" "0" "solid" "6" "spawnflags" "0" } prop_dynamic { "targetname" "carrier_door_clip" origin "-2449.04 1589.23 -37.31" "angles" "0 133 0" "model" "models\props_vehicles\train_flatcar_container.mdl" "disableshadows" "1" "modelscale" "1" "SetBodyGroup" "0" "skin" "0" "solid" "6" "spawnflags" "0" } trigger_teleport //you spawn behind the forcefield UNACCEPTABLE { targetname "w1_teleporter" origin "-2670.4 1371.31 -190.78" mins "-300 -5 -300" maxs "300 5 300" target "w1_teleporter_destination" "spawnflags" "1" StartDisabled 0 } trigger_teleport //how the fuck did anyone spawn here { targetname "w1_teleporter" origin "-2614.7 -1303.11 9.71" mins "-300 -5 -300" maxs "300 5 300" target "w1_teleporter_destination" "spawnflags" "1" StartDisabled 0 } trigger_teleport //spawning here at setup is bad { targetname "setup_teleporter" origin "-259.03 2299.61 -190.18" mins "-300 -5 -300" maxs "300 5 300" target "w1_teleporter_destination" "spawnflags" "1" StartDisabled 0 } trigger_teleport //a route giant spawn doesn't die fast enough { //this is here to compensate for that targetname "w1_teleporter" origin "1788.85 1225.93 87.61" mins "-200 -5 -200" maxs "200 5 200" target "w1_teleporter_destination" "spawnflags" "1" StartDisabled 0 } trigger_teleport { targetname "w1_teleporter" origin "2110.50 -377.30 104.99" mins "-200 -5 -200" maxs "200 5 200" target "w1_teleporter_destination" "spawnflags" "1" StartDisabled 0 } info_teleport_destination //you spawn behind the forcefield UNACCEPTABLE { targetname "w1_teleporter_destination" origin "-2931.34 2736.07 -60.47" angles "0 -45 0" } //Sergeant Table : SetCapLayoutCustomPositionY logic_relay { "onspawn" "carrier_door_trigger,disable,,0,1" "onspawn" "door_r_trigger_open,disable,,0.01,1" "onspawn" "door_l_trigger_open,disable,,0.01,1" "onspawn" "carrier_door_clip,enable,,0,1" "onspawn" "locker_model*,Enable,,0,-1" "onspawn" "trigger_catapult*,addoutput,filtername filter_blue,0,1" //so everyone can use the jumppads "onspawn" "spawnbot_A_route,kill,,0,1" //turn off annoying spawns "onspawn" "spawnbot_A_route_giant,kill,,0,1" "onspawn" "eyris_jump_pad_open,kill,,0,1" //seal jumppad door "onspawn" "eyris_jump_pad_close,kill,,0,1" //seal jumppad door "onspawn" "spawnbot_B2,disable,,0,1" "onspawn" "spawnbot_right,enable,,0,1" //how the hell did this get disabled?! "onspawn" "tube_bot_spawn,disable,,0,1" //never seen this happen, but that doesn't mean it can't happen "onspawn" "jumppad_slideing_door,Lock,0,1" "onmapspawn" "cap_master,SetCapLayoutCustomPositionY,999,0,-1" } prop_dynamic { "targetname" "carrier_door_clip" "origin" "-2529.83 2285.91 -125.47" "angles" "0 45 0" "model" "models\props_vehicles\train_flatcar_container.mdl" "disableshadows" "1" "modelscale" "1" "SetBodyGroup" "0" "skin" "0" "solid" "6" "spawnflags" "0" } prop_dynamic { "targetname" "carrier_door_clip" "origin" "-2529.83 2285.91 26.73" "angles" "0 45 0" "model" "models\props_vehicles\train_flatcar_container.mdl" "disableshadows" "1" "modelscale" "1" "SetBodyGroup" "0" "skin" "0" "solid" "6" "spawnflags" "0" } prop_dynamic { "targetname" "carrier_door_clip" "origin" "-700.61 2301.97 -189.15" "angles" "0 90 0" "model" "models\props_vehicles\train_flatcar_container.mdl" "disableshadows" "1" "modelscale" "1" "SetBodyGroup" "0" "skin" "0" "solid" "6" "spawnflags" "0" } prop_dynamic { "targetname" "carrier_door_clip" "origin" "-700.61 2301.97 -41.41" "angles" "0 90 0" "model" "models\props_vehicles\train_flatcar_container.mdl" "disableshadows" "1" "modelscale" "1" "SetBodyGroup" "0" "skin" "0" "solid" "6" "spawnflags" "0" } } upgrade_station { NoFixUp 1 func_upgradestation { "origin" "-1542.27 3686.73 182.69" "mins" "-50 -108 -80" "maxs" "50 108 80" } func_upgradestation { "origin" "-421.94 2437.92 -189.57" "mins" "-50 -108 -80" "maxs" "50 108 80" } func_upgradestation { "origin" "-2685.14 1534.00 -189.57" "mins" "-50 -108 -80" "maxs" "50 108 80" } func_upgradestation { "origin" "-2750 2984.95 -120.46" "mins" "-50 -108 -80" "maxs" "50 108 80" } prop_dynamic { "targetname" "locker_model1" "origin" "-1150.12 3954.30 181.08" "model" "models/props_gameplay/resupply_locker.mdl" "solid" "0" "angles" "0 -90 0" "disableshadows" "1" "rendermode" "1" } func_regenerate { "mins" "-23 -23 -80" //I trust hellmet's scaling on this "maxs" "23 23 80" "origin" "-1150.12 3954.30 181.08" "targetname" "cab1" "associatedmodel" "locker_model1" "TeamNum" "3" } prop_dynamic { "targetname" "locker_model2" "model" "models/props_gameplay/resupply_locker.mdl" "origin" "-1422.51 3947.56 181.08" "solid" "0" "angles" "0 -90 0" "disableshadows" "1" "rendermode" "1" } func_regenerate { "mins" "-23 -23 -80" //I trust hellmet's scaling on this "maxs" "23 23 80" "origin" "-1422.51 3947.56 181.08" "targetname" "cab2" "associatedmodel" "locker_model2" "TeamNum" "3" } prop_dynamic { "targetname" "locker_model4" "origin" "-3280.32 2370.45 -125.28" "model" "models/props_gameplay/resupply_locker.mdl" "solid" "0" "angles" "0 45 0" "disableshadows" "1" "rendermode" "1" } func_regenerate { "mins" "-23 -23 -80" //I trust hellmet's scaling on this "maxs" "23 23 80" "origin" "-3306.55 2433.40 -113.77" "targetname" "cab4" "associatedmodel" "locker_model4" "TeamNum" "3" } prop_dynamic { "targetname" "locker_model5" "origin" "-2685.14 1534.00 -189.57" "model" "models/props_gameplay/resupply_locker.mdl" "solid" "0" "angles" "0 -45 0" "disableshadows" "1" "rendermode" "1" } func_regenerate { "mins" "-23 -23 -80" //I trust hellmet's scaling on this "maxs" "23 23 80" "origin" "-2685.14 1534.00 -189.57" "targetname" "cab5" "associatedmodel" "locker_model5" "TeamNum" "3" } prop_dynamic { "targetname" "locker_model6" "origin" "-421.94 2437.92 -189.57" "model" "models/props_gameplay/resupply_locker.mdl" "solid" "0" "angles" "0 -90 0" "disableshadows" "1" "rendermode" "1" } func_regenerate { "mins" "-23 -23 -80" //I trust hellmet's scaling on this "maxs" "23 23 80" "origin" "-421.94 2437.92 -189.57" "targetname" "cab6" "associatedmodel" "locker_model6" "TeamNum" "3" } } side_objective_spawn //use SpawnTemplate with origin and angle args { NoFixup 1 obj_sentrygun { "targetname" "sideObjective" "origin" "0 0 0" "teamnum" "3" "spawnflags" "0" "SolidToPlayer" "1" "defaultupgrade" "2" "modelscale" 1 $cannotbesapped "1" } OnSpawnOutput { Target "sideObjective" Action "sethealth" Param 500 } OnSpawnOutput { Target "sideObjective" Action "removehealth" Param 498 } } side_objective_spawn_dispenser //use SpawnTemplate with origin and angle args { NoFixup 1 obj_dispenser { "targetname" "sideObjective" "origin" "0 0 0" "teamnum" "3" "spawnflags" "0" "SolidToPlayer" "1" "defaultupgrade" "2" "modelscale" 1 $cannotbesapped "1" } OnSpawnOutput { Target "sideObjective" Action "sethealth" Param 500 } OnSpawnOutput { Target "sideObjective" Action "removehealth" Param 498 } } wave1_building_spawn_0 //use SpawnTemplate with origin and angle args { NoFixup 1 tf_glow { "GlowColor" "125 168 196 255" "Mode" "0" "target" "objective1_0" "targetname" "objective1_0_glow" } NoFixup 1 obj_dispenser { "targetname" "objective1_0" "origin" "0 0 0" "teamnum" "3" "spawnflags" "0" "SolidToPlayer" "1" "defaultupgrade" "2" "modelscale" 2 $cannotbesapped "1" } OnSpawnOutput { Target "objective1_0" Action "sethealth" Param 2000 } OnSpawnOutput { Target "objective1_0" Action "removehealth" Param 1998 } OnSpawnOutput { Target "vgui_screen" //I gave up on trying to scale it Action "Kill" Delay 0.01 } training_annotation { "targetname" "objective1_0Text" "display_text" "Giga Dispenser Here!" "lifetime" "10" "origin" "0 0 0" } } wave1_building_spawn_1 //use SpawnTemplate with origin and angle args { NoFixup 1 tf_glow { "GlowColor" "125 168 196 255" "Mode" "0" "target" "objective1_1" "targetname" "objective1_1_glow" "StartDisabled" 1 } NoFixup 1 obj_dispenser { "targetname" "objective1_1" "origin" "0 0 0" "teamnum" "3" "spawnflags" "0" "SolidToPlayer" "1" "defaultupgrade" "2" "modelscale" 2 $cannotbesapped "1" } OnSpawnOutput { Target "objective1_1" Action "sethealth" Param 2000 } OnSpawnOutput { Target "objective1_1" Action "removehealth" Param 1998 } OnSpawnOutput { Target "vgui_screen" //I gave up on trying to scale it Action "Kill" Delay 0.01 } training_annotation { "targetname" "objective1_1Text" "display_text" "Giga Dispenser Here!" "lifetime" "10" "origin" "0 0 0" } } wave1_building_spawn_2 //use SpawnTemplate with origin and angle args { NoFixup 1 tf_glow { "GlowColor" "125 168 196 255" "Mode" "0" "target" "objective1_2" "targetname" "objective1_2_glow" "StartDisabled" 1 } NoFixup 1 obj_dispenser { "targetname" "objective1_2" "origin" "0 0 0" "teamnum" "3" "spawnflags" "0" "SolidToPlayer" "1" "defaultupgrade" "2" "modelscale" 2 $cannotbesapped "1" } OnSpawnOutput { Target "objective1_2" Action "sethealth" Param 2000 } OnSpawnOutput { Target "objective1_2" Action "removehealth" Param 1998 } OnSpawnOutput { Target "vgui_screen" //I gave up on trying to scale it Action "Kill" Delay 0.01 } training_annotation { "targetname" "objective1_2Text" "display_text" "Giga Dispenser Here!" "lifetime" "10" "origin" "0 0 0" } } wave1_building_spawn_3 //use SpawnTemplate with origin and angle args { NoFixup 1 tf_glow { "GlowColor" "125 168 196 255" "Mode" "0" "target" "objective1_3" "targetname" "objective1_3_glow" "StartDisabled" 1 } NoFixup 1 obj_dispenser { "targetname" "objective1_3" "origin" "0 0 0" "teamnum" "3" "spawnflags" "0" "SolidToPlayer" "1" "defaultupgrade" "2" "modelscale" 2 $cannotbesapped "1" } prop_dynamic { modelscale 1.5 "model" "models/buildables/sentry_shield.mdl" "disableshadows" 1 "angles" "0 90 0" "skin" 0 "targetname" final_giga_disp_shield } OnSpawnOutput { Target "objective1_3" Action "sethealth" Param 2000 } OnSpawnOutput { Target "objective1_3" Action "removehealth" Param 1998 } OnSpawnOutput { Target "vgui_screen" //I gave up on trying to scale it Action "Kill" Delay 0.01 } training_annotation { "targetname" "objective1_3Text" "display_text" "Giga Dispenser Unlocked!" "lifetime" "10" "origin" "0 0 0" } } wave1_building_spawn_4 //use SpawnTemplate with origin and angle args { NoFixup 1 tf_glow { "GlowColor" "125 168 196 255" "Mode" "0" "target" "objective1_4" "targetname" "objective1_4_glow" "StartDisabled" 1 } NoFixup 1 obj_dispenser { "targetname" "objective1_4" "origin" "0 0 0" "teamnum" "3" "spawnflags" "0" "SolidToPlayer" "1" "defaultupgrade" "2" "modelscale" 2 $cannotbesapped "1" } OnSpawnOutput { Target "objective1_4" Action "sethealth" Param 2000 } OnSpawnOutput { Target "objective1_4" Action "removehealth" Param 1998 } OnSpawnOutput { Target "vgui_screen" //I gave up on trying to scale it Action "Kill" Delay 0.01 } training_annotation { "targetname" "objective1_4Text" "display_text" "Giga Dispenser Here! Follow the tank hologram!" "lifetime" "10" "origin" "0 0 0" } } } ExtraSpawnPoint { Name "spawnbot_blu_bomb_carrier" TeamNum 3 X "-1313.5" Y "3808.77" Z "246.03" } ExtraSpawnPoint { Name "spawnbot_red_b1" //I left these as teamnum 3 during testing, that was facepalm worthy TeamNum 2 X "144.76" Y "-1297.68" Z "5.62" } ExtraSpawnPoint { Name "spawnbot_red_mirror1_b1" //I left these as teamnum 3 during testing, that was facepalm worthy TeamNum 2 X "144.76" Y "-1297.68" Z "5.62" } ExtraSpawnPoint { Name "spawnbot_red_mirror2_b1" //I left these as teamnum 3 during testing, that was facepalm worthy TeamNum 2 X "144.76" Y "-1297.68" Z "5.62" } ExtraSpawnPoint { Name "spawnbot_red_mirror3_b1" //I left these as teamnum 3 during testing, that was facepalm worthy TeamNum 2 X "144.76" Y "-1297.68" Z "5.62" } ExtraSpawnPoint { Name "spawnbot_red_mirror4_b1" //I left these as teamnum 3 during testing, that was facepalm worthy TeamNum 2 X "144.76" Y "-1297.68" Z "5.62" } ExtraSpawnPoint { Name "spawnbot_red_hatch_bridge" TeamNum 2 X "2557.03" Y "-1904.31" Z "227.19" } ExtraSpawnPoint { Name "spawnbot_red_mirror1_hatch_bridge" TeamNum 2 X "2557.03" Y "-1904.31" Z "227.19" } ExtraSpawnPoint { Name "spawnbot_red_mirror2_hatch_bridge" TeamNum 2 X "2557.03" Y "-1904.31" Z "227.19" } ExtraSpawnPoint { Name "spawnbot_red_mirror3_hatch_bridge" TeamNum 2 X "2557.03" Y "-1904.31" Z "227.19" } ExtraSpawnPoint { Name "spawnbot_red_mirror4_hatch_bridge" TeamNum 2 X "2557.03" Y "-1904.31" Z "227.19" } ExtraSpawnPoint { Name "spawnbot_red_mirror3_w1_chief" TeamNum 2 X "1326.03" Y "735.52" Z "183.54" } ExtraSpawnPoint { Name "spawnbot_red_a1_a2_bridge" TeamNum 2 X "56.20" Y "-14.28" Z "341.17" } ExtraSpawnPoint { Name "spawnbot_red_mirror1_a1_a2_bridge" TeamNum 2 X "56.20" Y "-14.28" Z "341.17" } ExtraSpawnPoint { Name "spawnbot_red_mirror2_a1_a2_bridge" TeamNum 2 X "56.20" Y "-14.28" Z "341.17" } ExtraSpawnPoint { Name "spawnbot_red_mirror3_a1_a2_bridge" TeamNum 2 X "56.20" Y "-14.28" Z "341.17" } ExtraSpawnPoint { Name "spawnbot_red_mirror4_a1_a2_bridge" TeamNum 2 X "56.20" Y "-14.28" Z "341.17" } ExtraSpawnPoint //b1 hatch { Name "spawnbot_red_b1_hatch" TeamNum 2 X "444.65" Y "-2007.88" Z "165.1" } ExtraSpawnPoint //b1 hatch { Name "spawnbot_red_mirror1_b1_hatch" TeamNum 2 X "444.65" Y "-2007.88" Z "165.1" } ExtraSpawnPoint //b1 hatch { Name "spawnbot_red_mirror2_b1_hatch" TeamNum 2 X "444.65" Y "-2007.88" Z "165.1" } ExtraSpawnPoint //b1 hatch { Name "spawnbot_red_mirror3_b1_hatch" TeamNum 2 X "444.65" Y "-2007.88" Z "165.1" } ExtraSpawnPoint //b1 hatch { Name "spawnbot_red_mirror4_b1_hatch" TeamNum 2 X "444.65" Y "-2007.88" Z "165.1" } ExtraSpawnPoint //red spawnroom, needs no spawn cover { Name "spawnbot_red_spawnroom" TeamNum 2 X "1359.09" Y "-4264.72" Z "59.66" } ExtraSpawnPoint //red spawnroom, needs no spawn cover { Name "spawnbot_red_mirror1_spawnroom" TeamNum 2 X "1359.09" Y "-4264.72" Z "59.66" } ExtraSpawnPoint //red spawnroom, needs no spawn cover { Name "spawnbot_red_mirror2_spawnroom" TeamNum 2 X "1359.09" Y "-4264.72" Z "59.66" } ExtraSpawnPoint //red spawnroom, needs no spawn cover { Name "spawnbot_red_mirror3_spawnroom" TeamNum 2 X "1359.09" Y "-4264.72" Z "59.66" } ExtraSpawnPoint //red spawnroom, needs no spawn cover { Name "spawnbot_red_mirror4_spawnroom" TeamNum 2 X "1359.09" Y "-4264.72" Z "59.66" } ExtraSpawnPoint //red spawnroom, expendable spawn { Name "spawnbot_red_spawnroom_disposable" TeamNum 2 X "1245.16" Y "-3278.77" Z "2.75" } ExtraSpawnPoint //right outside of factory zone door, similar to that weird unused gry spawn { Name "spawnbot_red_mirror1_b2" TeamNum 2 X "1734.68" Y "-391.07" Z "84.57" } ExtraSpawnPoint //right outside of factory zone door, similar to that weird unused gry spawn { Name "spawnbot_red_mirror2_b2" TeamNum 2 X "1734.68" Y "-391.07" Z "84.57" } ExtraSpawnPoint //right outside of factory zone door, similar to that weird unused gry spawn { Name "spawnbot_red_mirror3_b2" TeamNum 2 X "1734.68" Y "-391.07" Z "84.57" } ExtraSpawnPoint //right outside of factory zone door, similar to that weird unused gry spawn { Name "spawnbot_red_mirror4_b2" TeamNum 2 X "1734.68" Y "-391.07" Z "84.57" } ExtraSpawnPoint //front canister, really close to blue, be careful with this one { Name "spawnbot_red_front_canister" TeamNum 2 X "-954.48" Y "274.06" Z "-188.39" } ExtraSpawnPoint //front canister, really close to blue, be careful with this one { Name "spawnbot_red_mirror1_front_canister" TeamNum 2 X "-954.48" Y "274.06" Z "-188.39" } ExtraSpawnPoint //front canister, really close to blue, be careful with this one { Name "spawnbot_red_mirror2_front_canister" TeamNum 2 X "-954.48" Y "274.06" Z "-188.39" } ExtraSpawnPoint //front canister, really close to blue, be careful with this one { Name "spawnbot_red_mirror3_front_canister" TeamNum 2 X "-954.48" Y "274.06" Z "-188.39" } ExtraSpawnPoint //front canister, really close to blue, be careful with this one { Name "spawnbot_red_mirror4_front_canister" TeamNum 2 X "-954.48" Y "274.06" Z "-188.39" } ExtraSpawnPoint { Name "spawnbot_red_hatch_shortcut_a" TeamNum 2 X "1103.85" Y "-2051.64" Z "85.04" } ExtraSpawnPoint { Name "spawnbot_red_mirror1_hatch_shortcut_a" TeamNum 2 X "1103.85" Y "-2051.64" Z "85.04" } ExtraSpawnPoint { Name "spawnbot_red_mirror2_hatch_shortcut_a" TeamNum 2 X "1103.85" Y "-2051.64" Z "85.04" } ExtraSpawnPoint { Name "spawnbot_red_mirror3_hatch_shortcut_a" TeamNum 2 X "1103.85" Y "-2051.64" Z "85.04" } ExtraSpawnPoint { Name "spawnbot_red_mirror4_hatch_shortcut_a" TeamNum 2 X "1103.85" Y "-2051.64" Z "85.04" } ExtraSpawnPoint { Name "spawnbot_red_hatch_1" TeamNum 2 X "1276.68" Y "-2489.83" Z "7.39" } ExtraSpawnPoint { Name "spawnbot_red_mirror1_hatch_1" TeamNum 2 X "1276.68" Y "-2489.83" Z "7.39" } ExtraSpawnPoint { Name "spawnbot_red_mirror2_hatch_1" TeamNum 2 X "1276.68" Y "-2489.83" Z "7.39" } ExtraSpawnPoint { Name "spawnbot_red_mirror3_hatch_1" TeamNum 2 X "1276.68" Y "-2489.83" Z "7.39" } ExtraSpawnPoint { Name "spawnbot_red_mirror4_hatch_1" TeamNum 2 X "1276.68" Y "-2489.83" Z "7.39" } ExtraSpawnPoint { Name "spawnbot_red_a1_cubby" TeamNum 2 X "-4.96" Y "53.24" Z "6.26" } ExtraSpawnPoint { Name "spawnbot_red_mirror1_a1_cubby" TeamNum 2 X "-4.96" Y "53.24" Z "6.26" } ExtraSpawnPoint { Name "spawnbot_red_mirror2_a1_cubby" TeamNum 2 X "-4.96" Y "53.24" Z "6.26" } ExtraSpawnPoint { Name "spawnbot_red_mirror3_a1_cubby" TeamNum 2 X "-4.96" Y "53.24" Z "6.26" } ExtraSpawnPoint { Name "spawnbot_red_mirror4_a1_cubby" TeamNum 2 X "-4.96" Y "53.24" Z "6.26" } ExtraSpawnPoint { Name "spawnbot_red_flank_door_a" TeamNum 2 X "-440.00" Y "4.66" Z "341.58" } ExtraSpawnPoint { Name "spawnbot_red_mirror1_flank_door_a" TeamNum 2 X "-440.00" Y "4.66" Z "341.58" } ExtraSpawnPoint { Name "spawnbot_red_mirror2_flank_door_a" TeamNum 2 X "-440.00" Y "4.66" Z "341.58" } ExtraSpawnPoint { Name "spawnbot_red_mirror3_flank_door_a" TeamNum 2 X "-440.00" Y "4.66" Z "341.58" } ExtraSpawnPoint { Name "spawnbot_red_mirror4_flank_door_a" TeamNum 2 X "-440.00" Y "4.66" Z "341.58" } ExtraSpawnPoint //grey factory spawns, 6 cardinal mirrors around the gheavy thing { Name "spawnbot_gry_factory" TeamNum 2 X "1570.67" Y "63.53" Z "82.57" } ExtraSpawnPoint { Name "spawnbot_gry_factory" TeamNum 2 X "1570.67" Y "440.96" Z "82.57" } ExtraSpawnPoint { Name "spawnbot_gry_factory" TeamNum 2 X "1981.06" Y "440.96" Z "82.57" } ExtraSpawnPoint { Name "spawnbot_gry_factory" TeamNum 2 X "1981.06" Y "65.52" Z "82.57" } ExtraSpawnPoint { Name "spawnbot_gry_factory" TeamNum 2 X "1758.23" Y "548.96" Z "82.57" } ExtraSpawnPoint { Name "spawnbot_gry_factory" TeamNum 2 X "1758.37" Y "16" Z "82.57" } ExtraSpawnPoint //monochrome's spawnpoint, between B1 and the lava zone, on the roof { Name "spawnbot_gry_monochrome" TeamNum 2 X "-1853.44" Y "-1898.36" Z "449.11" } ExtraSpawnPoint //Spawns first section of monochrome's support { Name "spawnbot_gry_monochrome_support1" TeamNum 2 X "-1853.44" Y "-1898.36" Z "449.11" } ExtraSpawnPoint //Spawns second section of monochrome's support { Name "spawnbot_gry_monochrome_support2" TeamNum 2 X "-1853.44" Y "-1898.36" Z "449.11" } ExtraSpawnPoint //Spawns final section of monochrome's support { Name "spawnbot_gry_monochrome_support3" TeamNum 2 X "-1853.44" Y "-1898.36" Z "449.11" } ExtraSpawnPoint //red factory spawns, 6 cardinal mirrors around the gheavy thing { Name "spawnbot_red_factory" TeamNum 2 X "1570.67" Y "63.53" Z "82.57" } ExtraSpawnPoint { Name "spawnbot_red_factory" TeamNum 2 X "1570.67" Y "440.96" Z "82.57" } ExtraSpawnPoint { Name "spawnbot_red_factory" TeamNum 2 X "1981.06" Y "440.96" Z "82.57" } ExtraSpawnPoint { Name "spawnbot_red_factory" TeamNum 2 X "1981.06" Y "65.52" Z "82.57" } ExtraSpawnPoint { Name "spawnbot_red_factory" TeamNum 2 X "1758.23" Y "548.96" Z "82.57" } ExtraSpawnPoint { Name "spawnbot_red_factory" TeamNum 2 X "1758.37" Y "16" Z "82.57" } ExtraSpawnPoint //blue factory spawns, 6 cardinal mirrors around the gheavy thing { Name "spawnbot_blu_factory" TeamNum 2 X "1570.67" Y "63.53" Z "82.57" } ExtraSpawnPoint { Name "spawnbot_blu_factory" TeamNum 2 X "1570.67" Y "440.96" Z "82.57" } ExtraSpawnPoint { Name "spawnbot_blu_factory" TeamNum 2 X "1981.06" Y "440.96" Z "82.57" } ExtraSpawnPoint { Name "spawnbot_blu_factory" TeamNum 2 X "1981.06" Y "65.52" Z "82.57" } ExtraSpawnPoint { Name "spawnbot_blu_factory" TeamNum 2 X "1758.23" Y "548.96" Z "82.57" } ExtraSpawnPoint { Name "spawnbot_blu_factory" TeamNum 2 X "1758.37" Y "16" Z "82.57" } ExtendedUpgrades { Dummy { Name "Custom Upgrades" Attribute "max health additive bonus" Cap 0 Increment 0 Cost 0 Description "Most of your weapons have custom upgrades now, check your primary for the especially cool stuff." Tier 1 PlayerUpgrade 1 } companion_upgrade_soldier { Name "Companion Hardware Upgrade" Attribute "throwable fire speed" Cap 4 Increment 1 Cost 1500 Description "Upgrades bot type" AllowedWeapons { SimilarToItem "TF_WEAPON_WRENCH" } AllowedMinWave 2 //There's an annoying bug that could potentially softlock people if everyone buys this on w1 //I hope it dies in the vscript port, though there is a chance it could become exponentially worse there OnApply { Output "popscript,$TierPurchaseSoldier,,0" } OnDowngrade { Output "popscript,$TierPurchaseSoldier,,0" } } repair_upgrade { Name "Repair Mastery" Attribute "Repair rate increased" Cap 2 Increment 0.25 Cost 250 Description "Increases the rate that you repair buildings and friendly players. Cost of metal when healing allies remains constant" AllowedWeapons { SimilarToItem "TF_WEAPON_WRENCH" SimilarToItem "The Jag" SimilarToItem "The Southern Hospitality" SimilarToItem "The Gunslinger" SimilarToItem "The Eureka Effect" } } giga_engie_damage_boost { Name "+15% Damage" Attribute "damage bonus" Cap 2.2 Increment 0.15 Cost 200 Description "Smack enemies harder!" AllowedWeapons { SimilarToItem "The Southern Hospitality" } } giga_engie_damage_boost_gunslinger_markup { Name "+15% Damage" Attribute "damage bonus" Cap 2.2 Increment 0.15 Cost 250 Description "Smack enemies harder!" AllowedWeapons { SimilarToItem "The Gunslinger" } } companion_upgrade_demo { Name "Companion Hardware Upgrade" Attribute "throwable fire speed" Cap 4 Increment 1 Cost 1500 Description "Upgrades bot type" AllowedWeapons { ItemName "The Jag" } AllowedMinWave 2 //There's an annoying bug that could potentially softlock people if everyone buys this on w1 //I hope it dies in the vscript port, though there is a chance it could become exponentially worse there OnApply { Output "popscript,$TierPurchaseDemo,,0" } OnDowngrade { Output "popscript,$TierPurchaseDemo,,0" } } companion_upgrade_pyro { Name "Companion Hardware Upgrade" Attribute "throwable fire speed" Cap 4 Increment 1 Cost 1000 Description "Upgrades bot type" AllowedWeapons { ItemName "The Southern Hospitality" } AllowedMinWave 2 //There's an annoying bug that could potentially softlock people if everyone buys this on w1 //I hope it dies in the vscript port, though there is a chance it could become exponentially worse there OnApply { Output "popscript,$TierPurchasePyro,,0" } OnDowngrade { Output "popscript,$TierPurchasePyro,,0" } } companion_upgrade_scout { Name "Companion Hardware Upgrade" Attribute "throwable fire speed" Cap 4 Increment 1 Cost 1000 Description "Upgrades bot type" AllowedWeapons { ItemName "The Gunslinger" } AllowedMinWave 2 //There's an annoying bug that could potentially softlock people if everyone buys this on w1 //I hope it dies in the vscript port, though there is a chance it could become exponentially worse there OnApply { Output "popscript,$TierPurchaseScout,,0" } OnDowngrade { Output "popscript,$TierPurchaseScout,,0" } } companion_upgrade_heavy { Name "Companion Hardware Upgrade" Attribute "throwable fire speed" Cap 4 Increment 1 Cost 1500 Description "Upgrades bot type" AllowedWeapons { ItemName "The Eureka Effect" } AllowedMinWave 2 //There's an annoying bug that could potentially softlock people if everyone buys this on w1 //I hope it dies in the vscript port, though there is a chance it could become exponentially worse there OnApply { Output "popscript,$TierPurchaseHeavy,,0" } OnDowngrade { Output "popscript,$TierPurchaseHeavy,,0" } } companion_upgrade_cloak { Name "Companion Temporary Cloak" Attribute "charge recharge rate increased" Cap 10 Increment 2 Cost 150 Description "Applies a 4 second cloak to your bot on spawn, subsequent upgrades multiply cloak time" AllowedWeapons { SimilarToItem "TF_WEAPON_WRENCH" ItemName "The Southern Hospitality" ItemName "The Jag" ItemName "The Eureka Effect" ItemName "The Gunslinger" } } rescue_ranger_damage { Name "+25% Damage" Attribute "damage bonus" Cap 2 Increment 0.25 Cost 200 Description "Increases damage to enemies and healing to allies" AllowedWeapons { ItemName "The Rescue Ranger" } } rescue_ranger_debuff { Name "Debuff Enemies On Hit" Attribute "disguise speed penalty" Cap 4 Increment 1 Cost 300 SecondaryAttributes { "fire input on hit" "popscript^$rescueDebuffOnHit^" } Description "Increases debuff duration. Giants are resistant, upgrades make them less resistant. " AllowedWeapons { ItemName "The Rescue Ranger" } } rescue_ranger_debuff_select { Name "Selected Debuff" Attribute "disguise no burn" Cap 3 Increment 1 Cost 0 Description "Select buff type, 1: Mark For Death, 2: Damage Debuff, 3: Movespeed Debuff" AllowedWeapons { ItemName "The Rescue Ranger" } RequiredUpgrade { Upgrade "rescue_ranger_debuff" // Name of the upgrade, as specified in the outer block Level 1 // Minimum level after which the upgrade becomes enabled (Default: 1) } } pomson_damage { Name "+25% Damage" Attribute "damage bonus" Cap 2 Increment 0.25 Cost 150 AllowedWeapons { ItemName "The Pomson 6000" } } pomson_bleed_duration { Name "Bleed Mastery" Attribute "cannot disguise" Description "Each tick adds +2 seconds of bleed duration, +50% bleed damage, and -0.1 bleed delay" Cap 4 Increment 1 Cost 150 AllowedWeapons { ItemName "The Pomson 6000" } SecondaryAttributes { "bleeding duration" 2 "mult bleeding dmg" 0.50 "mult bleeding delay" -0.1 } DisallowedUpgrade { Upgrade pomson_stun // Name of the upgrade, as specified in the outer block Level 1 // Minimum level after which the upgrade becomes disabled (Default: 1) } } pomson_stun { Name "EMP Bolts" Attribute "disguise speed penalty" Description "Non-Giant robots dropped below 50% health by your weapon will be stunned for 2*Increment seconds." Cap 4 Increment 1 Cost 100 AllowedWeapons { ItemName "The Pomson 6000" } SecondaryAttributes { "fire input on hit" "popscript^$pomsonEMPhit^" } DisallowedUpgrade { Upgrade pomson_bleed_duration // Name of the upgrade, as specified in the outer block Level 1 // Minimum level after which the upgrade becomes disabled (Default: 1) } } pomson_penetration { Name "Projectile Penetration" Attribute "energy weapon penetration" Description "Deal less direct damage, but you can hit the same enemy multiple times." Cap 1 Increment 1 Cost 100 AllowedWeapons { ItemName "The Pomson 6000" } } rescue_ranger_speed { Name "+25% Projectile Speed Increase" Attribute "Projectile speed increased" Cap 2 Increment 0.25 Cost 100 AllowedWeapons { ItemName "The Rescue Ranger" ItemName "The Pomson 6000" } } panic_attack_accuracy { Name "Accuracy Mastery" Attribute "weapon spread bonus" Description "Tightens your spread by 15% and also increases your damage by 20% per point" Cap 0.4 Increment -0.15 Cost 100 AllowedWeapons { ItemName "Panic Attack Shotgun" } SecondaryAttributes //Secondary attributes applied when upgrade is applied, for each upgrade level { "damage bonus" 0.20 } DisallowedUpgrade { Upgrade panic_attack_bullets_per_shot // Name of the upgrade, as specified in the outer block Level 1 // Minimum level after which the upgrade becomes disabled (Default: 1) } } panic_attack_bullets_per_shot { Name "+50% Bullets Per Shot" Attribute "bullets per shot bonus" Cap 3 Increment 0.50 Cost 100 AllowedWeapons { SimilarToItem "Panic Attack Shotgun" } DisallowedUpgrade { Upgrade panic_attack_accuracy // Name of the upgrade, as specified in the outer block Level 1 // Minimum level after which the upgrade becomes disabled (Default: 1) } } panic_attack_equalizer { Name "+50% Damage Increase With Reduced Health" Attribute "mult dmg with reduced health" Cap 2 Increment 0.5 Cost 200 AllowedWeapons { SimilarToItem "Panic Attack Shotgun" } DisallowedUpgrade { Upgrade panic_attack_escape_plan // Name of the upgrade, as specified in the outer block Level 1 // Minimum level after which the upgrade becomes disabled (Default: 1) } } panic_attack_escape_plan { Name "+50% Movement Speed Increase with Reduced Health" Attribute "move speed as health decreases" Cap 3 Increment 0.50 Cost 200 AllowedWeapons { SimilarToItem "Panic Attack Shotgun" } DisallowedUpgrade { Upgrade panic_attack_equalizer // Name of the upgrade, as specified in the outer block Level 1 // Minimum level after which the upgrade becomes disabled (Default: 1) } } stock_sniper { Name "Slug Rounds" Cap 1 Attribute "can headshot" Increment 1 Cost 0 Description "Fires a single powerful slug that can headshot enemies!" AllowedWeapons { SimilarToItem "TF_WEAPON_SHOTGUN_PRIMARY" } SecondaryAttributes //Secondary attributes applied when upgrade is applied, for each upgrade level { "weapon spread bonus" -1 //can never be too sure "revolver use hit locations" 1 "damage bonus" 0.70 "can headshot" 1 } DisallowedUpgrade { Upgrade stock_ignite // Name of the upgrade, as specified in the outer block Level 1 // Minimum level after which the upgrade becomes disabled (Default: 1) } DisallowedUpgrade { Upgrade widow_ignite // Name of the upgrade, as specified in the outer block Level 1 // Minimum level after which the upgrade becomes disabled (Default: 1) } } widow_sniper { Name "Slug Rounds" Cap 1 Attribute "can headshot" Increment 1 Cost 0 Description "Fires a single powerful slug that can headshot enemies! Costs triple the metal per shot however" AllowedWeapons { SimilarToItem "The Widowmaker" //goes with the weapon's design nicely } SecondaryAttributes //Secondary attributes applied when upgrade is applied, for each upgrade level { "weapon spread bonus" -1 //can never be too sure "revolver use hit locations" 1 "mod ammo per shot" 30 "damage bonus" 0.50 "can headshot" 1 } DisallowedUpgrade { Upgrade stock_ignite // Name of the upgrade, as specified in the outer block Level 1 // Minimum level after which the upgrade becomes disabled (Default: 1) } DisallowedUpgrade { Upgrade widow_ignite // Name of the upgrade, as specified in the outer block Level 1 // Minimum level after which the upgrade becomes disabled (Default: 1) } } stock_ignite { Name "Dragon's Breath Rounds" Cap 1 Increment 1 Attribute "Set DamageType Ignite" Description "Ignite enemies on hit, and deal double damage to burning enemies! You lose 50% of your bullets per shot however." Cost 0 AllowedWeapons { SimilarToItem "TF_WEAPON_SHOTGUN_PRIMARY" } DisallowedWeapons { SimilarToItem "The Widowmaker" //has a mirror of this upgrade with extra nerfs } SecondaryAttributes //Secondary attributes applied when upgrade is applied, for each upgrade level { "damage bonus vs burning" 3 "bullets per shot bonus" -0.50 } DisallowedUpgrade { Upgrade stock_sniper // Name of the upgrade, as specified in the outer block Level 1 // Minimum level after which the upgrade becomes disabled (Default: 1) } } widow_ignite { Name "Dragon's Breath Rounds" Cap 1 Increment 1 Attribute "Set DamageType Ignite" Description "Ignite enemies on hit, and both minicrit and deal 50% more damage to burning enemies! You lose 50% of your bullets per shot however" Cost 0 AllowedWeapons { SimilarToItem "The Widowmaker" } SecondaryAttributes //Secondary attributes applied when upgrade is applied, for each upgrade level { "bullets per shot bonus" -0.5 "minicrit vs burning player" 1 "damage bonus vs burning" 0.5 } DisallowedUpgrade { Upgrade stock_sniper // Name of the upgrade, as specified in the outer block Level 1 // Minimum level after which the upgrade becomes disabled (Default: 1) } } stock_ignite_mastery { Name "Afterburn Mastery" Cap 2 Increment 0.25 Attribute "weapon burn dmg increased" Description "Increase afterburn duration by 25% and afterburn damage by 15% per increment" Cost 125 AllowedWeapons { SimilarToItem "TF_WEAPON_SHOTGUN_PRIMARY" } SecondaryAttributes { "afterburn duration bonus" 0.15 } RequiredUpgrade { Upgrade "stock_ignite" // Name of the upgrade, as specified in the outer block Level 1 // Minimum level after which the upgrade becomes enabled (Default: 1) } DisallowedUpgrade { Upgrade stock_sniper // Name of the upgrade, as specified in the outer block Level 1 // Minimum level after which the upgrade becomes disabled (Default: 1) } } widow_ignite_mastery { Name "Afterburn Mastery" Cap 2.25 Increment 0.25 Attribute "weapon burn dmg increased" Description "Increase afterburn duration by 25% and afterburn damage by 15% per increment" Cost 75 AllowedWeapons { SimilarToItem "The Widowmaker" } SecondaryAttributes { "afterburn duration bonus" 0.15 } RequiredUpgrade { Upgrade "widow_ignite" // Name of the upgrade, as specified in the outer block Level 1 // Minimum level after which the upgrade becomes enabled (Default: 1) } DisallowedUpgrade { Upgrade stock_sniper // Name of the upgrade, as specified in the outer block Level 1 // Minimum level after which the upgrade becomes disabled (Default: 1) } } frontier_knockback { Name "Knockback Shells" Description "Knock robots back based on damage dealt, works on ubered targets." Cap 6 Increment 1 Attribute "damage blast push" Cost 100 AllowedWeapons { SimilarToItem "The Frontier Justice" } DisallowedUpgrade { Upgrade frontier_deflector // Name of the upgrade, as specified in the outer block Level 1 // Minimum level after which the upgrade becomes disabled (Default: 1) } } frontier_deflector { Name "+25% Crit Damage Bonus" Description "Increases the damage that all critical hits deal." Cap 1.5 Increment 0.25 Attribute "mult crit dmg" Cost 200 AllowedWeapons { SimilarToItem "The Frontier Justice" } DisallowedUpgrade { Upgrade frontier_knockback // Name of the upgrade, as specified in the outer block Level 1 // Minimum level after which the upgrade becomes disabled (Default: 1) } } pistol_minicrit_on_kill { Name "+2 Seconds Minicrit on Kill" Description "Also gives your giant minicrits when you kill something with the pistol. +15% damage bonus per point" Cap 8 Increment 2 Attribute "minicritboost on kill" Cost 50 AllowedWeapons { SimilarToItem "TF_WEAPON_PISTOL" } SecondaryAttributes { "damage bonus" 0.15 } DisallowedUpgrade { Upgrade pistol_reload_on_kill // Name of the upgrade, as specified in the outer block Level 1 // Minimum level after which the upgrade becomes disabled (Default: 1) } DisallowedUpgrade { Upgrade pistol_minicrit_burning // Name of the upgrade, as specified in the outer block Level 1 // Minimum level after which the upgrade becomes disabled (Default: 1) } } pistol_minicrit_burning { Name "25% Damage Bonus VS Burning" Description "Goes great with a pyro giant and/or the Dragon's Breath shotgun! +15% damage bonus per point." Cap 1.5 Increment 0.25 Attribute "damage bonus vs burning" Cost 100 AllowedWeapons { SimilarToItem "TF_WEAPON_PISTOL" } SecondaryAttributes { "damage bonus" 0.15 } DisallowedUpgrade { Upgrade pistol_reload_on_kill // Name of the upgrade, as specified in the outer block Level 1 // Minimum level after which the upgrade becomes disabled (Default: 1) } DisallowedUpgrade { Upgrade pistol_minicrit_on_kill // Name of the upgrade, as specified in the outer block Level 1 // Minimum level after which the upgrade becomes disabled (Default: 1) } } pistol_minicrit_burning_nofalloff { Name "Minicrit Burning Enemies" Attribute "minicrit vs burning player" Cap 1 Increment 1 Cost 100 AllowedWeapons { SimilarToItem "TF_WEAPON_PISTOL" } DisallowedUpgrade { Upgrade pistol_minicrit_on_kill // Name of the upgrade, as specified in the outer block Level 1 // Minimum level after which the upgrade becomes disabled (Default: 1) } RequiredUpgrade { Upgrade "pistol_minicrit_burning" // Name of the upgrade, as specified in the outer block Level 1 // Minimum level after which the upgrade becomes enabled (Default: 1) } } } BuildingSpawnTemplate { ItemName "The Eureka Effect" Name OnSentryBuild BuildingType "Sentry" Delay 0.1 } BuildingSpawnTemplate { ItemName "The Gunslinger" Name OnSentryBuild BuildingType "Sentry" Delay 0.1 } BuildingSpawnTemplate { ItemName "The Southern Hospitality" Name OnSentryBuild BuildingType "Sentry" Delay 0.1 } BuildingSpawnTemplate { ItemName "The Jag" Name OnSentryBuild BuildingType "Sentry" Delay 0.1 } BuildingSpawnTemplate { SimilarToItem "TF_WEAPON_WRENCH" Name OnSentryBuild BuildingType "Sentry" Delay 0.1 } SpawnTemplate "upgrade_station" SpawnTemplate "LoseRelay" SpawnTemplate "init_rev_relay" ItemBlacklist //no zombies { Name "Zombie Scout" Name "Zombie Pyro" Name "Zombie Soldier" Name "Zombie Heavy" Name "Zombie Demo" Name "Zombie Engineer" Name "Zombie Medic" Name "Zombie Spy" Name "Zombie Sniper" } Mission //spies on wave 1 { Where spawnbot_red_hatch_1 Objective Spy InitialCooldown 25 CooldownTime 25 BeginAtWave 1 RunForThisManyWaves 1 DesiredCount 3 TFBot { Template T_TFBot_Spy Skill Normal AddCond { Name TF_COND_REPROGRAMMED } } } Mission // Sniper - wave 3 { Objective Sniper InitialCooldown 20 Where spawnbot_red_spawnroom BeginAtWave 3 RunForThisManyWaves 1 CooldownTime 15 DesiredCount 3 TFBot { Template T_TFBot_Sniper Skill Expert AddCond { Name TF_COND_REPROGRAMMED } SpawnTemplate LaserOnAim } } SpawnTemplate "nameChange" // WAVE 1 [$0] Wave { StartWaveOutput { Target wave_start_relay Action Trigger } DoneOutput { Target wave_finished_relay Action Trigger } Explanation { Line "{CCFFCC}///////////BEGIN TRANSMISSION////////////////" Line "" Line "{CCCCFF}Your sentries have been replaced with powerful {00FF00}Giant Robots{FFFF00} Inspect your wrench!" Line "{CCCCFF}The objective this wave is to repair 5 {00FF00}GIGA DISPENSERS{CCCCFF} around the map" Line "{CCCCFF}You have {FF9999}six minutes {CCCCFF}to perform this objective" Line "{CCCCFF}Note: {FFFF00}you can wrench your allies, hold med shield button to park your giant" Line "" Line "{CCCCFF}Your allies consist of: {00FF00}2 Giant Soldiers" Line "" Line "{CCFFCC}////////////END TRANSMISSION/////////////////" } SpawnTemplate { Name "wave1_building_spawn_0" Origin "-975.13 1925.7 -185.94" Angles "0 -90 0" } SpawnTemplate { Name "wave1_building_spawn_1" Origin "-1890.14 -2189.30 65.87" Angles "0 61.14 0" } SpawnTemplate { Name "wave1_building_spawn_2" Origin "314.18 969.47 0.66" Angles "0 -1.3 0" } SpawnTemplate { Name "wave1_building_spawn_3" Origin "1487.34 884.48 82.46" Angles "0 43.36 0" } SpawnTemplate "W1_Timer" SpawnTemplate { Name "wave1_building_spawn_4" Origin "-2076.61 251.57 -124.39" Angles "0 -3.85 0" } SpawnTemplate { Name "wave1_initialization_relay" } SpawnTemplate { Name "side_objective_spawn" Origin "-2227.76 1304.93 -189.56" Angles "0 76.67 0" } SpawnTemplate { Name "side_objective_spawn" Origin "-688.67 1975.17 -189.56" Angles "0 147.75 0" } SpawnTemplate { Name "side_objective_spawn" Origin "1851.08 -1705.4 3.52" Angles "0 17.97 0" } SpawnTemplate { Name "side_objective_spawn" Origin "1011.11 -192.51 341.7" Angles "0 50.72 0" } SpawnTemplate { Name "side_objective_spawn" Origin "-1281.66 625.04 -186.87" Angles "0 45 0" } SpawnTemplate { Name "side_objective_spawn" Origin "-1330.32 -650.52 124.56" Angles "0 25 0" } SpawnTemplate { Name "side_objective_spawn" Origin "-96.34 1712.23 3.36" Angles "0 -94.9 0" } SpawnTemplate { Name "side_objective_spawn_dispenser" Origin "-364.76 -1897.63 -53" Angles "0 41.69 0" } SpawnTemplate { Name "side_objective_spawn_dispenser" Origin "-1723.75 1836.57 -188.61" Angles "0 25 0" } SpawnTemplate { Name "side_objective_spawn_dispenser" Origin "-466.99 -655.69 258.42" Angles "0 0 0" } SpawnTemplate { Name "side_objective_spawn_dispenser" Origin "-378.85 -1003.83 22.11" Angles "0 90 0" } SpawnTemplate { Name "side_objective_spawn_dispenser" Origin "1981.99 255.15 86.31" Angles "0 0 0" } SpawnTemplate { Name "side_objective_spawn_dispenser" Origin "-915.45 1782.2 3.02" Angles "0 0 0" } SpawnTemplate { Name "side_objective_spawn_dispenser" Origin "-1113.48 257.41 -189.92" Angles "0 0 0" } // [$0] WaveSpawn { Name "wave01a1" Where spawnbot_red_mirror1_flank_door_a TotalCount 14 MaxActive 3 SpawnCount 2 TotalCurrency 0 WaitBeforeStarting 2 WaitBetweenSpawns 7 RandomChoice { TFBot { Class Soldier AddCond { Name TF_COND_REPROGRAMMED } Action Mobber Skill Normal Attributes DisableDodge } TFBot { Class Demoman AddCond { Name TF_COND_REPROGRAMMED } Action Mobber Skill Normal Attributes DisableDodge } } } WaveSpawn { Where spawnbot_red_mirror1_a1_cubby TotalCount 16 MaxActive 3 SpawnCount 2 TotalCurrency 0 WaitBeforeStarting 2 WaitBetweenSpawns 7 TFBot { Class Scout AddCond { Name TF_COND_REPROGRAMMED } Action Mobber Skill Normal Attributes DisableDodge } } WaveSpawn { Where spawnbot_red_mirror1_b1 TotalCount 20 MaxActive 2 SpawnCount 2 TotalCurrency 0 FirstSpawnMessage "{AAAAFF}Repair the {22FF22}GIGA DISPENSERS {AAAAFF}to {EEEE33}lower the forcefield." WaitBeforeStarting 2 WaitBetweenSpawns 12 TFBot { Class Scout AddCond { Name TF_COND_REPROGRAMMED } Action Mobber Skill Normal Attributes DisableDodge } } WaveSpawn { Name "wave01a" Where spawnbot_red_mirror1_b1 TotalCount 6 MaxActive 3 SpawnCount 2 TotalCurrency 0 WaitBeforeStarting 2 WaitBetweenSpawns 10 TFBot { Class Soldier AddCond { Name TF_COND_REPROGRAMMED } Action Mobber Skill Hard Attributes DisableDodge } } WaveSpawn { Name "wave01a" Where spawnbot_red_mirror1_hatch_shortcut_a TotalCount 6 MaxActive 3 SpawnCount 2 TotalCurrency 0 WaitBeforeStarting 2 WaitBetweenSpawns 10 TFBot { Class Demoman AddCond { Name TF_COND_REPROGRAMMED } Action Mobber Skill Hard Attributes DisableDodge } } WaveSpawn { Name "wave01b" Where spawnbot_red_mirror1_b1 TotalCount 2 MaxActive 1 SpawnCount 1 TotalCurrency 250 WaitBeforeStarting 30 WaitBetweenSpawns 15 TFBot { Template T_TFBot_Giant_Soldier Tag bot_giant ClassIcon soldier_giant AddCond { Name TF_COND_REPROGRAMMED } Action Mobber Attributes DisableDodge } } WaveSpawn { Name "wave01b" Where spawnbot_red_mirror1_hatch_shortcut_a TotalCount 2 MaxActive 1 SpawnCount 1 TotalCurrency 250 WaitBeforeStarting 50 WaitBetweenSpawns 20 TFBot { Template T_TFBot_Giant_Demoman Tag bot_giant AddCond { Name TF_COND_REPROGRAMMED } Action Mobber Attributes DisableDodge } } // [$0] WaveSpawn { Name "wave01c1" Where spawnbot_red_mirror2_hatch_shortcut_a TotalCount 16 MaxActive 3 SpawnCount 2 TotalCurrency 250 WaitBeforeStarting 10 WaitBetweenSpawns 4 TFBot { Template T_TFBot_Sniper_Huntsman Action Mobber Attributes DisableDodge AddCond { Name TF_COND_REPROGRAMMED } AimAt Body } } // [$0] WaveSpawn { Name "wave01c" Where spawnbot_red_mirror2_hatch_shortcut_a TotalCount 16 MaxActive 3 SpawnCount 2 TotalCurrency 250 WaitBeforeStarting 10 WaitBetweenSpawns 4 TFBot { Class Scout Name "Jumping Scout" Skill Normal AddCond { Name TF_COND_REPROGRAMMED } ClassIcon scout_jumping Item "The Sandman" Item "The Hanger-On Hood" Item "The Flight of the Monarch" Action Mobber Attributes DisableDodge Attributes AutoJump AutoJumpMin 5 AutoJumpMax 5 WeaponSwitch { Type "Melee" MaxTargetRange 9999 MinTargetRange 600 Delay 0.1 Repeats 0 Cooldown 0 IfSeeTarget 1 } WeaponSwitch { Type "Primary" MaxTargetRange 600 MinTargetRange 0 Delay 0.1 Repeats 0 Cooldown 0 IfSeeTarget 1 } CharacterAttributes { "increased jump height" 2 } ItemAttributes { ItemName "The Sandman" "effect bar recharge rate increased" 0.5 } } } WaveSpawn { Name "wave01c" Where spawnbot_red_mirror2_b1 TotalCount 3 MaxActive 2 SpawnCount 1 TotalCurrency 500 WaitBeforeStarting 10 WaitBetweenSpawns 10 TFBot { Template T_TFBot_Giant_Pyro_Fury Tag bot_giant AddCond { Name TF_COND_REPROGRAMMED } Action Mobber Attributes DisableDodge } } WaveSpawn { Name "wave01c2" Where spawnbot_red_mirror3_w1_chief //moved here because he is a brainlet who gets stuck on things TotalCount 1 MaxActive 1 SpawnCount 1 TotalCurrency 0 WaitBeforeStarting 5 WaitBetweenSpawns 0 TFBot { Template T_TFBot_Giant_Soldier_RocketPush_Reserve_Boss //Tag bot_giant //This gave him significant trouble when trying to navigate to his //designated spot //This tag marks him as a target for the contingency teleport zone I have //set up in case a bug that occurs extremely rarely Tag bot_w1_chief AddCond { Name TF_COND_REPROGRAMMED } Action Mobber Attributes DisableDodge FireInput { Target objective1_6Text Action Show Param "" Delay 0 Cooldown 20 } } } WaveSpawn { Name "wave01d" Where spawnbot_red_mirror3_b1 TotalCount 12 MaxActive 4 SpawnCount 2 TotalCurrency 0 WaitBeforeStarting 20 WaitBetweenSpawns 8 TFBot { AddCond { Name TF_COND_REPROGRAMMED } Template T_TFBot_Soldier_Skilled Action Mobber } } WaveSpawn { Name "wave01d" Where spawnbot_red_mirror3_flank_door_a TotalCount 12 MaxActive 4 SpawnCount 2 TotalCurrency 0 WaitBeforeStarting 20 WaitBetweenSpawns 8 TFBot { Template T_TFBot_Sniper_Huntsman Action Mobber Attributes DisableDodge AddCond { Name TF_COND_REPROGRAMMED } } } //backup infinite bots WaveSpawn { Name "wave01e" Where spawnbot_red_mirror3_b1 WaitForAllDead "wave01d" TotalCount 999 MaxActive 3 SpawnCount 3 TotalCurrency 500 WaitBeforeStarting 20 WaitBetweenSpawns 10 TFBot { Template T_TFBot_Soldier_RocketShotgun AddCond { Name TF_COND_REPROGRAMMED } Action Mobber Attributes DisableDodge } } WaveSpawn { Where spawnbot_left //spawnbot right broke for no reason Name "Wave01AlliesA" TotalCount 1 MaxActive 1 SpawnCount 1 TotalCurrency 0 HideIcon 1 WaitBeforeStarting 0 WaitBetweenSpawns 0 Support Limited TFBot { Template T_TFBot_Giant_Soldier Tag bot_giant Action Mobber Attributes DisableDodge} } WaveSpawn { Where spawnbot_left Name "Wave01AlliesA" TotalCount 1 MaxActive 1 SpawnCount 1 TotalCurrency 0 HideIcon 1 WaitBeforeStarting 0 WaitBetweenSpawns 0 Support Limited TFBot { Template T_TFBot_Giant_Soldier Tag bot_giant Action Mobber Attributes DisableDodge} } } // WAVE 2 [$0] Wave { StartWaveOutput { Target wave_start_relay Action Trigger } DoneOutput { Target wave_finished_relay Action Trigger } InitWaveOutput { Target w2_text_change Action Trigger } Explanation { Line "{CCFFCC}///////////BEGIN TRANSMISSION////////////////" Line "" Line "{CCCCFF}The objective this wave is to protect {00FF00}The VIP as they stand within {00FF00}3 rings on the map" Line "{CCCCFF}Once it reaches a ring, you must defend them for {FF9999}two minutes" Line "{FFFF00}Healing the VIP with dispensers and your wrench will be imperative to your survival" Line "{FF9999}You have no allies this wave" Line "" Line "{CCFFCC}////////////END TRANSMISSION/////////////////" } SpawnTemplate "wave2_initialization_relay" SpawnTemplate "W2_Timer_1" SpawnTemplate "W2_Timer_2" SpawnTemplate "W2_Timer_3" SpawnTemplate "music_2" SpawnTemplate { Name "side_objective_spawn" Origin "-2222.90 1465.15 -189.56" Angles "0 76.67 0" } SpawnTemplate { Name "side_objective_spawn" Origin "-688.67 1975.17 -189.56" Angles "0 147.75 0" } SpawnTemplate { Name "side_objective_spawn" Origin "1851.08 -1705.4 3.52" Angles "0 17.97 0" } SpawnTemplate { Name "side_objective_spawn" Origin "1011.11 -192.51 341.7" Angles "0 50.72 0" } SpawnTemplate { Name "side_objective_spawn" Origin "-1281.66 625.04 -186.87" Angles "0 45 0" } SpawnTemplate { Name "side_objective_spawn" Origin "-1330.32 -650.52 124.56" Angles "0 25 0" } SpawnTemplate { Name "side_objective_spawn" Origin "-96.34 1712.23 3.36" Angles "0 -94.9 0" } SpawnTemplate { Name "side_objective_spawn_dispenser" Origin "-364.76 -1897.63 -53" Angles "0 41.69 0" } SpawnTemplate { Name "side_objective_spawn_dispenser" Origin "-1723.75 1836.57 -188.61" Angles "0 25 0" } SpawnTemplate { Name "side_objective_spawn_dispenser" Origin "-466.99 -655.69 258.42" Angles "0 0 0" } SpawnTemplate { Name "side_objective_spawn_dispenser" Origin "-378.85 -1003.83 22.11" Angles "0 90 0" } SpawnTemplate { Name "side_objective_spawn_dispenser" Origin "1981.99 255.15 86.31" Angles "0 0 0" } SpawnTemplate { Name "side_objective_spawn_dispenser" Origin "-915.45 1782.2 3.02" Angles "0 0 0" } SpawnTemplate { Name "side_objective_spawn_dispenser" Origin "-1113.48 257.41 -189.92" Angles "0 0 0" } // [$0] WaveSpawn { Name "wave02VIP" Where spawnbot_blu_bomb_carrier TotalCount 1 MaxActive 1 SpawnCount 1 TotalCurrency 0 HideIcon 1 WaitBeforeStarting 0 WaitBetweenSpawns 20 TFBot { Template T_TFBot_Giant_Heavyweapons Attributes UseBossHealthBar AlwaysGlow 1 Name "Giant VIP Heavy" Item "Ol' Reliable" Action Mobber Health 15000 Scale 2.0 Tag bot_vip Tag bot_giant Item "Deflector" ItemAttributes { ItemName "Deflector" "heal on kill" 75 "attack projectiles" 2 "damage bonus" 1.5 } ItemAttributes { ItemName "Ol' Reliable" "attach particle effect" 65 } CharacterAttributes { //tele griefing "cannot be teleported" 1 "not solid to players" 1 } InterruptAction { Target "VIP_Interrupt_Target" Delay 2 Repeats 0 Cooldown 2 Duration 10 Distance 75 WaitUntilDone 1 } FireInput { Target text2_negative1 Action Show Param "" Delay 0 Repeats 1 } } DoneOutput { Target "bots_win_red" Action RoundWin } } WaveSpawn { Where spawnbot_red_spawnroom_disposable TotalCount 9 MaxActive 3 SpawnCount 3 TotalCurrency 50 WaitBeforeStarting 0 WaitBetweenSpawns 3 Support 1 TFBot { Class Scout Skill Expert WeaponRestrictions MeleeOnly AddCond { Name TF_COND_REPROGRAMMED } Action Mobber Attributes DisableDodge } } // [$0] WaveSpawn { Name "wave02a" Where spawnbot_red_mirror1_b1 TotalCount 4 MaxActive 2 SpawnCount 2 TotalCurrency 50 WaitBeforeStarting 20 WaitBetweenSpawns 6 TFBot { Template T_TFBot_Giant_Soldier_Crit //Tag bot_giant //They seem to get crippling social anxiety with this tag and refuse to move //forward until half the subwave is already dead AddCond { Name TF_COND_REPROGRAMMED } Action Mobber Attributes DisableDodge } FirstSpawnOutput { Target spawnbot_red_spawnroom_disposable Action Disable } } // [$0] WaveSpawn { Name "wave02a2" Where spawnbot_red_mirror1_b1 TotalCount 2 MaxActive 1 SpawnCount 1 TotalCurrency 250 WaitBeforeStarting 8 WaitBetweenSpawns 6 WaitForAllDead "wave02a" TFBot { Template T_TFBot_Giant_Soldier_Crit //Tag bot_giant //They seem to get crippling social anxiety with this tag and refuse to move //forward until half the subwave is already dead AddCond { Name TF_COND_REPROGRAMMED } Action Mobber Attributes DisableDodge } } // [$0] WaveSpawn { Name "wave02a1" Where spawnbot_red_mirror1_b1_hatch TotalCount 10 MaxActive 4 SpawnCount 2 TotalCurrency 250 WaitBeforeStarting 20 WaitBetweenSpawns 3 TFBot { Template T_TFBot_Pyro_Phlog AddCond { Name TF_COND_REPROGRAMMED } Action Mobber Attributes DisableDodge } } // [$0] WaveSpawn { Name "wave02a3" Where spawnbot_red_mirror1_b1_hatch TotalCount 16 MaxActive 4 SpawnCount 2 TotalCurrency 0 WaitBeforeStarting 0 WaitBetweenSpawns 3 WaitForAllDead "wave02a1" TFBot { Template T_TFBot_Pyro_Phlog AddCond { Name TF_COND_REPROGRAMMED } Action Mobber Attributes DisableDodge } } WaveSpawn { Name "wave02b" Where spawnbot_red_mirror2_hatch_shortcut_a TotalCount 6 MaxActive 4 SpawnCount 2 TotalCurrency 250 WaitBeforeStarting 20 WaitBetweenSpawns 9 Squad { TFBot { Template T_TFBot_Giant_Soldier_Airstrike AddCond { Name TF_COND_REPROGRAMMED } Action Mobber Attributes DisableDodge Tag bot_giant } TFBot { Template T_TFBot_Giant_Medic_Leaping AddCond { Name TF_COND_REPROGRAMMED } Tag bot_giant } } } WaveSpawn { Name "wave02b1" Where spawnbot_red_mirror2_b1_hatch TotalCount 18 MaxActive 3 SpawnCount 1 TotalCurrency 150 WaitBeforeStarting 20 WaitBetweenSpawns 0.25 TFBot { Template T_TFBot_Soldier_RocketShotgun AddCond { Name TF_COND_REPROGRAMMED } Action Mobber } } WaveSpawn { Name "wave02b1" Where spawnbot_red_mirror2_b1_hatch TotalCount 18 MaxActive 3 SpawnCount 1 TotalCurrency 250 WaitBeforeStarting 20 WaitBetweenSpawns 0.25 TFBot { Template T_TFBot_Soldier_RocketShotgun AddCond { Name TF_COND_REPROGRAMMED } Action Mobber } } WaveSpawn { Name "wave02c" Where spawnbot_red_mirror3_hatch_shortcut_a TotalCount 12 MaxActive 3 SpawnCount 1 TotalCurrency 250 WaitBeforeStarting 20 WaitBetweenSpawns 16 TFBot { Template T_TFBot_Demo_Zweihander AddCond { Name TF_COND_REPROGRAMMED } Action Mobber } } WaveSpawn { Name "wave02c1" Where spawnbot_red_mirror3_hatch_shortcut_a TotalCount 5 MaxActive 1 SpawnCount 1 TotalCurrency 250 WaitBeforeStarting 20 WaitBetweenSpawns 14 WaitForAllSpawned "wave2sub3spies" TFBot { Template T_TFBot_Giant_Demo_Burst Tag bot_giant AddCond { Name TF_COND_REPROGRAMMED } Action Mobber } } // [$0] WaveSpawn { Name "wave2d" Where spawnbot_red_mirror1_flank_door_a TotalCount 26 MaxActive 3 SpawnCount 1 TotalCurrency 250 WaitBeforeStarting 20 WaitBetweenSpawns 0.3 TFBot { Class Scout Skill Normal AddCond { Name TF_COND_REPROGRAMMED } Action Mobber Attributes DisableDodge } } // [$0] WaveSpawn { Name "wave2d" Where spawnbot_red_mirror1_flank_door_a TotalCount 26 MaxActive 3 SpawnCount 1 TotalCurrency 0 WaitBeforeStarting 20 WaitBetweenSpawns 0.3 TFBot { Class Scout Skill Normal AddCond { Name TF_COND_REPROGRAMMED } Action Mobber Attributes DisableDodge } } // [$0] WaveSpawn { Name "wave2d" Where spawnbot_red_mirror1_flank_door_a TotalCount 20 MaxActive 4 SpawnCount 2 TotalCurrency 0 WaitBeforeStarting 20 WaitBetweenSpawns 4 Squad { TFBot { Class Heavy Skill Normal AddCond { Name TF_COND_REPROGRAMMED } Action Mobber Attributes DisableDodge } TFBot { Template T_TFBot_Medic AddCond { Name TF_COND_REPROGRAMMED } } } } // [$0] WaveSpawn { Name "wave2sub1spies" Where spawnbot_red_mirror1_spawnroom TotalCount 3 MaxActive 3 SpawnCount 3 TotalCurrency 0 WaitBeforeStarting 20 WaitBetweenSpawns 0.75 WaitForAllSpawned "wave02a1" TFBot { Template T_TFBot_Spy AddCond { Name TF_COND_REPROGRAMMED } ItemAttributes { ItemName "TF_WEAPON_KNIFE" "armor piercing" 35 //giga oof } Attributes DisableDodge } } // [$0] WaveSpawn { Name "wave2sub2spies" Where spawnbot_red_mirror2_spawnroom TotalCount 3 MaxActive 3 SpawnCount 3 TotalCurrency 0 WaitBeforeStarting 20 WaitBetweenSpawns 0.75 TFBot { Template T_TFBot_Spy AddCond { Name TF_COND_REPROGRAMMED } ItemAttributes { ItemName "TF_WEAPON_KNIFE" "armor piercing" 35 //giga oof } Attributes DisableDodge } } // [$0] WaveSpawn { Name "wave2e3" Where spawnbot_red_mirror2_a1_cubby TotalCount 6 MaxActive 2 SpawnCount 1 TotalCurrency 0 WaitBeforeStarting 10 WaitBetweenSpawns 20 WaitForAllSpawned "wave2sub2spies" TFBot { Template T_TFBot_Giant_Soldier_RocketPush_Reserve Tag bot_giant AddCond { Name TF_COND_REPROGRAMMED } Action Mobber Attributes DisableDodge } } // [$0] WaveSpawn { Name "wave2e3" Where spawnbot_red_mirror2_spawnroom TotalCount 40 MaxActive 4 SpawnCount 2 TotalCurrency 0 WaitBeforeStarting 3 WaitBetweenSpawns 1.5 WaitForAllDead "wave2e2" TFBot { Template T_TFBot_Soldier_RocketShotgun AddCond { Name TF_COND_REPROGRAMMED } Action Mobber Attributes DisableDodge } } // [$0] WaveSpawn { Name "wave2f" Where spawnbot_red_mirror3_b2 TotalCount 96 MaxActive 6 SpawnCount 3 TotalCurrency 0 WaitBeforeStarting 20 WaitBetweenSpawns 2.5 Squad { TFBot { Template T_TFBot_Scout_Shortstop AddCond { Name TF_COND_REPROGRAMMED } Action Mobber Attributes DisableDodge } TFBot { Class Scout Skill Normal AddCond { Name TF_COND_REPROGRAMMED } Action Mobber Attributes DisableDodge } TFBot { Class Scout Skill Normal AddCond { Name TF_COND_REPROGRAMMED } Action Mobber Attributes DisableDodge } } } // [$0] WaveSpawn { Name "wave2sub3spies" Where spawnbot_red_mirror3_spawnroom TotalCount 3 MaxActive 3 SpawnCount 3 TotalCurrency 0 WaitBeforeStarting 20 WaitBetweenSpawns 0.75 TFBot { Template T_TFBot_Spy AddCond { Name TF_COND_REPROGRAMMED } ItemAttributes { ItemName "TF_WEAPON_KNIFE" "armor piercing" 35 //giga oof } Attributes DisableDodge } } // [$0] WaveSpawn { Name "wave2f1" Where spawnbot_red_mirror3_b2 TotalCount 5 MaxActive 1 SpawnCount 1 TotalCurrency 0 WaitBeforeStarting 9 WaitBetweenSpawns 15 WaitForAllSpawned "wave2sub3spies" TFBot { Template T_TFBot_Giant_Demo_Burst Tag bot_giant AddCond { Name TF_COND_REPROGRAMMED } Action Mobber Attributes DisableDodge } } } // WAVE 3 [$0] Wave { StartWaveOutput { Target wave_start_relay Action Trigger } DoneOutput { Target wave_finished_relay Action Trigger } //thank you randomguy InitWaveOutput { Target wave_start_relay //if this exists idk i don't robotfactory, replace it with any ent that exists. Action RunScriptCode Param " EntFire(`w3_text_change`,`Trigger`) ::CleanupPoints <- { Cleanup = function() { // cleanup any persistent changes here // I'm straight up stealing this from archive Teien but only putting it here in hopes that it will work fine, it might screw over the mission itself so go test that. SpawnEntityFromTable(`team_control_point_master`, { targetname = `controlpoint_hudfix` custom_position_x = 5 }) SpawnEntityFromTable(`team_control_point`, { targetname = `controlpoint_point` }) EntFire(`controlpoint_hudfix`, `RoundSpawn`) EntFire(`controlpoint_hudfix`, `Kill`) EntFire(`controlpoint_point`, `Kill`) delete ::CleanupPoints } // mandatory events, cause cleanup when mission or wave changes. OnGameEvent_recalculate_holidays = function(_) { if (GetRoundState() == 3) Cleanup() } OnGameEvent_mvm_wave_complete = function(_) { Cleanup() } }; __CollectGameEventCallbacks(CleanupPoints) " } SpawnTemplate { Name "wave3_initialization_relay" } SpawnTemplate { Name "Wave3_Control_Points" } SpawnTemplate { Name "music_3" } SpawnTemplate { Name "w3_timer" } SpawnTemplate { Name "side_objective_spawn" Origin "-2227.76 1304.93 -189.56" Angles "0 76.67 0" } SpawnTemplate { Name "side_objective_spawn" Origin "-688.67 1975.17 -189.56" Angles "0 147.75 0" } SpawnTemplate { Name "side_objective_spawn" Origin "1851.08 -1705.4 3.52" Angles "0 17.97 0" } SpawnTemplate { Name "side_objective_spawn" Origin "1011.11 -192.51 341.7" Angles "0 50.72 0" } SpawnTemplate { Name "side_objective_spawn" Origin "-1281.66 625.04 -186.87" Angles "0 45 0" } SpawnTemplate { Name "side_objective_spawn" Origin "-1330.32 -650.52 124.56" Angles "0 25 0" } SpawnTemplate { Name "side_objective_spawn" Origin "-96.34 1712.23 3.36" Angles "0 -94.9 0" } SpawnTemplate { Name "side_objective_spawn_dispenser" Origin "-364.76 -1897.63 -53" Angles "0 41.69 0" } SpawnTemplate { Name "side_objective_spawn_dispenser" Origin "-1723.75 1836.57 -188.61" Angles "0 25 0" } SpawnTemplate { Name "side_objective_spawn_dispenser" Origin "-466.99 -655.69 258.42" Angles "0 0 0" } SpawnTemplate { Name "side_objective_spawn_dispenser" Origin "-378.85 -1003.83 22.11" Angles "0 90 0" } SpawnTemplate { Name "side_objective_spawn_dispenser" Origin "1981.99 255.15 86.31" Angles "0 0 0" } SpawnTemplate { Name "side_objective_spawn_dispenser" Origin "-915.45 1782.2 3.02" Angles "0 0 0" } SpawnTemplate { Name "side_objective_spawn_dispenser" Origin "-1113.48 257.41 -189.92" Angles "0 0 0" } Explanation { Line "{CCFFCC}///////////BEGIN TRANSMISSION////////////////" Line "" Line "{CCCCFF}Capture three {00FF00}control points{CCCCFF} to unlock the hatch!" Line "{CCCCFF}The factory point will also be {FFFFFF}guarded by greys,{CCCCFF} capping it gives {00FF00}more allies!" Line "{CCCCFF}Your allies are all infinite, and consist of:{00FF00} Super Scouts, Zweihander Knights, Rammer Demos and Soldiers" Line "{CCCCFF}You have {FF9999}ten minutes {CCCCFF}to perform this objective, then escort the bomb to the hatch" Line "" Line "{CCFFCC}////////////END TRANSMISSION/////////////////" } WaveSpawn { Name "wave03gateB" Where spawnbot_red_mirror1_b1 TotalCount 24 MaxActive 4 SpawnCount 1 TotalCurrency 0 WaitBeforeStarting 5 WaitBetweenSpawns 1.75 RandomChoice { TFBot { Class Demoman Skill Expert Item "MvM GateBot Light Demoman" AddCond { Name TF_COND_REPROGRAMMED } InterruptAction { Target "Gatebot_Interrupt_Target" Delay 0.01 Repeats 0 Cooldown 1 Duration 10 Distance 75 WaitUntilDone 1 } Attributes DisableDodge Attributes IgnoreFlag } TFBot { Class Demoman Skill Hard Item "MvM GateBot Light Demoman" AddCond { Name TF_COND_REPROGRAMMED } InterruptAction { Target "Gatebot_Interrupt_Target" Delay 0.01 Repeats 0 Cooldown 1 Duration 10 Distance 75 WaitUntilDone 1 } Attributes DisableDodge Attributes IgnoreFlag } } } WaveSpawn { Name "wave03gateB2" Where spawnbot_red_mirror1_b1 TotalCount 4 MaxActive 2 SpawnCount 2 TotalCurrency 250 WaitBeforeStarting 15 WaitBetweenSpawns 10 TFBot { Template T_TFBot_Giant_Demoman Item "MvM GateBot Light Demoman" AddCond { Name TF_COND_REPROGRAMMED } InterruptAction { Target "Gatebot_Interrupt_Target" Delay 0.01 Repeats 0 Cooldown 1 Duration 10 Distance 25 WaitUntilDone 1 } Attributes DisableDodge Attributes IgnoreFlag } } WaveSpawn { Name "wave03gateC" Where spawnbot_red_mirror2_b1 TotalCount 15 MaxActive 3 SpawnCount 1 TotalCurrency 0 WaitBeforeStarting 15 WaitBetweenSpawns 4 TFBot { Class Heavy Skill Normal AddCond { Name TF_COND_REPROGRAMMED } InterruptAction { Target "Gatebot_Interrupt_Target" Delay 0.01 Repeats 0 Cooldown 1 Duration 10 Distance 75 WaitUntilDone 1 } Item "MvM GateBot Light Heavy" Attributes DisableDodge Attributes IgnoreFlag } } WaveSpawn { Name "wave03gateC1" Where spawnbot_red_mirror2_b1 TotalCount 1 MaxActive 1 SpawnCount 1 TotalCurrency 250 WaitBeforeStarting 20 WaitBetweenSpawns 15 TFBot { Template T_TFBot_Giant_Heavyweapons Item "MvM GateBot Light Heavy" AddCond { Name TF_COND_REPROGRAMMED } InterruptAction { Target "Gatebot_Interrupt_Target" Delay 0.01 Repeats 0 Cooldown 1 Duration 10 Distance 25 WaitUntilDone 1 } Attributes DisableDodge Attributes IgnoreFlag } } WaveSpawn { Name "wave03gateC2" Where spawnbot_red_mirror2_b1 TotalCount 2 MaxActive 1 SpawnCount 1 TotalCurrency 0 WaitBeforeStarting 15 WaitBetweenSpawns 15 TFBot { Template T_TFBot_Giant_Pyro_Fury_Combo Item "MvM GateBot Light Pyro" AddCond { Name TF_COND_REPROGRAMMED } InterruptAction { Target "Gatebot_Interrupt_Target" Delay 0.01 Repeats 0 Cooldown 1 Duration 10 Distance 25 WaitUntilDone 1 } Attributes DisableDodge Attributes IgnoreFlag } } WaveSpawn { Name "wave03gateC3" Where spawnbot_red_mirror2_b1 TotalCount 2 MaxActive 1 SpawnCount 1 TotalCurrency 0 WaitBeforeStarting 15 WaitBetweenSpawns 15 WaitForAllDead "wave03gateC2" TFBot { Template T_TFBot_Giant_Heavyweapons Item "MvM GateBot Light Heavy" AddCond { Name TF_COND_REPROGRAMMED } InterruptAction { Target "Gatebot_Interrupt_Target" Delay 0.01 Repeats 0 Cooldown 1 Duration 10 Distance 25 WaitUntilDone 1 } Attributes DisableDodge Attributes IgnoreFlag } } WaveSpawn { Name "wave03gateC3" Where spawnbot_red_mirror2_b1 TotalCount 1 MaxActive 1 SpawnCount 1 TotalCurrency 0 WaitBeforeStarting 15 WaitBetweenSpawns 15 WaitForAllDead "wave03gateC1" TFBot { Template T_TFBot_Giant_Pyro_Fury_Combo Item "MvM GateBot Light Pyro" AddCond { Name TF_COND_REPROGRAMMED } InterruptAction { Target "Gatebot_Interrupt_Target" Delay 0.01 Repeats 0 Cooldown 1 Duration 10 Distance 25 WaitUntilDone 1 } Attributes DisableDodge Attributes IgnoreFlag } } WaveSpawn { Name "wave03gateC" Where spawnbot_red_mirror2_b1 TotalCount 26 MaxActive 4 SpawnCount 1 TotalCurrency 0 WaitBeforeStarting 6 WaitBetweenSpawns 2 TFBot { Template T_TFBot_Fuel_Injected_Pyro_Dragon AddCond { Name TF_COND_REPROGRAMMED } InterruptAction { Target "Gatebot_Interrupt_Target" Delay 0.01 Repeats 0 Cooldown 1 Duration 10 Distance 75 WaitUntilDone 1 } Item "MvM GateBot Light Pyro" Attributes DisableDodge Attributes IgnoreFlag } } WaveSpawn { Name "wave03gateD" Where spawnbot_red_mirror3_hatch_1 TotalCount 18 MaxActive 2 SpawnCount 1 TotalCurrency 0 WaitBeforeStarting 6 WaitBetweenSpawns 2 TFBot { Template T_TFBot_Fuel_Injected_Pyro_Dragon AddCond { Name TF_COND_REPROGRAMMED } InterruptAction { Target "Gatebot_Interrupt_Target" Delay 0.01 Repeats 0 Cooldown 1 Duration 10 Distance 75 WaitUntilDone 1 } Item "MvM GateBot Light Pyro" Attributes DisableDodge Attributes IgnoreFlag } } WaveSpawn { Name "wave03gateD" Where spawnbot_red_mirror3_hatch_1 TotalCount 18 MaxActive 2 SpawnCount 1 TotalCurrency 0 WaitBeforeStarting 5 WaitBetweenSpawns 2.5 RandomChoice { TFBot { Class Soldier Skill Hard Item "MvM GateBot Light Soldier" AddCond { Name TF_COND_REPROGRAMMED } InterruptAction { Target "Gatebot_Interrupt_Target" Delay 0.01 Repeats 0 Cooldown 1 Duration 10 Distance 75 WaitUntilDone 1 } Attributes DisableDodge Attributes IgnoreFlag } TFBot { Class Soldier Skill Expert Item "MvM GateBot Light Soldier" AddCond { Name TF_COND_REPROGRAMMED } InterruptAction { Target "Gatebot_Interrupt_Target" Delay 0.01 Repeats 0 Cooldown 1 Duration 10 Distance 75 WaitUntilDone 1 } Attributes DisableDodge Attributes IgnoreFlag } } } WaveSpawn { Name "wave03gateD1" Where spawnbot_red_mirror3_spawnroom TotalCount 2 MaxActive 1 SpawnCount 1 TotalCurrency 0 WaitBeforeStarting 40 WaitBetweenSpawns 20 WaitForAllDead "wave03gateC1" TFBot { Template T_TFBot_Soldier_BurstFire Item "MvM GateBot Light Soldier" Item "Tyrantium Helmet" Name "Giga Burst Soldier" Tag bot_giant Tag giant //weird ass tag charlie uses for nav stuff on all his maps ClassIcon soldier_burstfire_hyper_lite AddCond { Name TF_COND_REPROGRAMMED } InterruptAction { Target "Gatebot_Interrupt_Target" Delay 0.01 Repeats 0 Cooldown 1 Duration 10 Distance 25 WaitUntilDone 1 } Attributes DisableDodge Attributes IgnoreFlag } } //good spawns for these guys: //spawnbot_red_a1_a2_bridge //spawnbot_red_a1_cubby //spawnbot_red_flank_door_a WaveSpawn { Name "wave03b" Where spawnbot_red_mirror1_flank_door_a TotalCount 24 MaxActive 6 SpawnCount 1 TotalCurrency 0 WaitBeforeStarting 3 WaitBetweenSpawns 2.5 WaitForAllSpawned "wave03a1" TFBot { Class Demoman Skill Hard Action Mobber Attributes DisableDodge Attributes IgnoreFlag AddCond { Name TF_COND_REPROGRAMMED } CharacterAttributes { "increase player capture value" -1 } } } WaveSpawn { Name "wave03b1" Where spawnbot_red_mirror1_a1_a2_bridge TotalCount 4 MaxActive 2 SpawnCount 2 TotalCurrency 0 WaitBeforeStarting 3 WaitBetweenSpawns 12 WaitForAllSpawned "wave03a1" TFBot { Template T_TFBot_Giant_Demo_Burst Tag bot_giant AddCond { Name TF_COND_REPROGRAMMED } Action Mobber Attributes DisableDodge Attributes IgnoreFlag CharacterAttributes { "increase player capture value" -1 } } } WaveSpawn { Name "wave03c2" Where spawnbot_red_mirror2_spawnroom TotalCount 1 MaxActive 1 SpawnCount 1 TotalCurrency 0 WaitBeforeStarting 20 WaitBetweenSpawns 40 TFBot { Template T_TFBot_Giant_Heavyweapons Tag bot_giant Action Mobber Attributes DisableDodge Attributes IgnoreFlag AddCond { Name TF_COND_REPROGRAMMED } CharacterAttributes { "increase player capture value" -1 } } } WaveSpawn { Name "wave03c" Where spawnbot_red_mirror2_a1_cubby TotalCount 1 MaxActive 1 SpawnCount 1 TotalCurrency 0 WaitBeforeStarting 20 WaitBetweenSpawns 0 WaitForAllSpawned "wave03c2" TFBot { Template T_TFBot_Giant_Heavyweapons Tag bot_giant AddCond { Name TF_COND_REPROGRAMMED } Action Mobber Attributes DisableDodge Attributes IgnoreFlag } } WaveSpawn { Name "wave03c1" Where spawnbot_red_mirror3_spawnroom TotalCount 16 MaxActive 4 SpawnCount 2 TotalCurrency 0 WaitBeforeStarting 20 WaitBetweenSpawns 5 TFBot { Template T_TFBot_Soldier_Skilled Action Mobber Attributes DisableDodge Attributes IgnoreFlag AddCond { Name TF_COND_REPROGRAMMED } CharacterAttributes { "increase player capture value" -1 } } } WaveSpawn { Name "wave03d1" Where spawnbot_red_mirror4_a1_a2_bridge TotalCount 6 MaxActive 3 SpawnCount 3 TotalCurrency 250 WaitBeforeStarting 20 WaitBetweenSpawns 5 TFBot { Template T_TFBot_Soldier_Extended_Concheror Action Mobber Attributes DisableDodge Attributes IgnoreFlag AddCond { Name TF_COND_REPROGRAMMED } CharacterAttributes { "increase player capture value" -1 } } } WaveSpawn { Name "wave03d" Where spawnbot_red_mirror4_a1_a2_bridge TotalCount 12 MaxActive 3 SpawnCount 3 TotalCurrency 250 WaitBeforeStarting 2 WaitBetweenSpawns 5 WaitForAllDead "wave03d1" TFBot { Template T_TFBot_Soldier_Extended_Concheror Action Mobber Attributes DisableDodge Attributes IgnoreFlag AddCond { Name TF_COND_REPROGRAMMED } CharacterAttributes { "increase player capture value" -1 } } } WaveSpawn { Name "wave03d" Where spawnbot_red_mirror4_a1_cubby TotalCount 6 MaxActive 2 SpawnCount 2 TotalCurrency 0 WaitBeforeStarting 9 WaitBetweenSpawns 12 TFBot { Template T_TFBot_Giant_Soldier_Spammer_Reload_Two_Stage Tag bot_giant AddCond { Name TF_COND_REPROGRAMMED } Action Mobber Attributes DisableDodge Attributes IgnoreFlag } } WaveSpawn { Name "wave03e" Where spawnbot_red_mirror4_b1_hatch TotalCount 8 MaxActive 2 SpawnCount 2 TotalCurrency 0 WaitBeforeStarting 4 WaitBetweenSpawns 9 TFBot { Template T_TFBot_Demo_Zweihander Action Mobber Attributes DisableDodge Attributes IgnoreFlag AddCond { Name TF_COND_REPROGRAMMED } CharacterAttributes { "increase player capture value" -1 } } } WaveSpawn { Where spawnbot_red_mirror4_spawnroom TotalCount 999 MaxActive 4 SpawnCount 2 TotalCurrency 0 WaitBeforeStarting 5 WaitBetweenSpawns 8 HideIcon 1 RandomChoice { TFBot { Class Soldier Skill Hard Action Mobber Attributes DisableDodge Attributes IgnoreFlag AddCond { Name TF_COND_REPROGRAMMED } CharacterAttributes { "increase player capture value" -1 } } TFBot { Class Demoman Skill Expert ClassIcon gry_lite //for some reason this didn't precache correctly Action Mobber Attributes DisableDodge Attributes IgnoreFlag AddCond { Name TF_COND_REPROGRAMMED } CharacterAttributes { "increase player capture value" -1 } } TFBot { Class Soldier Skill Expert Action Mobber Attributes DisableDodge Attributes IgnoreFlag AddCond { Name TF_COND_REPROGRAMMED } CharacterAttributes { "increase player capture value" -1 } } TFBot { Class Demoman Skill Hard Action Mobber Attributes DisableDodge Attributes IgnoreFlag AddCond { Name TF_COND_REPROGRAMMED } CharacterAttributes { "increase player capture value" -1 } } } } WaveSpawn { Name "wave03e1" Where spawnbot_red_mirror4_hatch_1 TotalCount 6 MaxActive 3 SpawnCount 1 TotalCurrency 0 WaitBeforeStarting 8 WaitBetweenSpawns 12 TFBot { Template T_TFBot_Giant_Demo_Zweihander Tag bot_giant Action Mobber Attributes DisableDodge Attributes IgnoreFlag AddCond { Name TF_COND_REPROGRAMMED } CharacterAttributes { "increase player capture value" -1 } } } WaveSpawn { Where spawnbot_left TotalCount 200 MaxActive 2 SpawnCount 2 TotalCurrency 0 WaitBeforeStarting 2 WaitBetweenSpawns 8 Support 1 HideIcon 1 RandomChoice { TFBot { Class Soldier Skill Expert Item "MvM GateBot Light Soldier" InterruptAction { Target "Gatebot_Interrupt_Target" Delay 0.01 Repeats 0 Cooldown 1 Duration 10 Distance 75 WaitUntilDone 1 } Attributes DisableDodge Attributes IgnoreFlag } TFBot { Class Demoman Name "Rammer Demoman" ClassIcon demo_loch Skill Hard Item "Juggernaut Jacket" Item "Hazard Headgear" Item "The Scrumpy Strongbox" Item "the loch-n-load" Item "the splendid screen" ItemAttributes { ItemName "the splendid screen" "Attack not cancel charge" 1 "charge impact damage increased" 2 "damage blast push" 20 "full charge turn control" 1 } WeaponRestrictions PrimaryOnly Item "MvM GateBot Light Demoman" InterruptAction { Target "Gatebot_Interrupt_Target" Delay 0.01 Repeats 0 Cooldown 1 Duration 10 Distance 75 WaitUntilDone 1 } Attributes DisableDodge Attributes IgnoreFlag } } } WaveSpawn { Where spawnbot_red_spawnroom TotalCount 6 MaxActive 1 SpawnCount 1 TotalCurrency 0 WaitBeforeStarting 25 WaitBetweenSpawns 80 HideIcon 1 Support 1 TFBot { Template T_TFBot_Giant_Demoman Tag bot_giant AddCond { Name TF_COND_REPROGRAMMED } Item "MvM GateBot Light Demoman" ItemAttributes { ItemName "MvM GateBot Light Demoman" "item color rgb" 3329330 //the bitter taste of defeat and lime } InterruptAction { Target "cap_area5" Delay 0.01 Repeats 0 Cooldown 1 Duration 10 Distance 75 WaitUntilDone 1 } Attributes DisableDodge Attributes IgnoreFlag } } WaveSpawn { Where spawnbot_red_hatch_1 TotalCount 200 MaxActive 2 SpawnCount 2 TotalCurrency 0 WaitBeforeStarting 0 WaitBetweenSpawns 18 Support 1 TFBot { Class Scout WeaponRestrictions MeleeOnly Skill Normal AddCond { Name TF_COND_REPROGRAMMED } Item "MvM GateBot Light Scout" ItemAttributes { ItemName "MvM GateBot Light Scout" "item color rgb" 3329330 //the bitter taste of defeat and lime } InterruptAction { Target "cap_area5" Delay 0.01 Repeats 0 Cooldown 1 Duration 10 Distance 75 WaitUntilDone 1 } Attributes DisableDodge Attributes IgnoreFlag } } WaveSpawn { Where spawnbot_red_hatch_1 TotalCount 200 MaxActive 1 SpawnCount 1 TotalCurrency 0 WaitBeforeStarting 0 WaitBetweenSpawns 30 Support 1 TFBot { Class Soldier Skill Normal AddCond { Name TF_COND_REPROGRAMMED } Item "MvM GateBot Light Soldier" ItemAttributes { ItemName "MvM GateBot Light Soldier" "item color rgb" 3329330 //the bitter taste of defeat and lime } InterruptAction { Target "cap_area5" Delay 0.01 Repeats 0 Cooldown 1 Duration 10 Distance 75 WaitUntilDone 1 } Attributes DisableDodge Attributes IgnoreFlag } } WaveSpawn { Where spawnbot_left TotalCount 200 MaxActive 1 SpawnCount 1 TotalCurrency 0 WaitBeforeStarting 2 WaitBetweenSpawns 30 Support 1 HideIcon 1 TFBot { Template T_TFBot_Demo_Zweihander Action Mobber Attributes DisableDodge Attributes IgnoreFlag CharacterAttributes { "increase player capture value" -1 } } } //////////////////////////////////////////////////////////FACTORY SPAWNS/////////////////////////////////////////////// WaveSpawn { Where spawnbot_red_factory TotalCount 200 MaxActive 2 SpawnCount 2 TotalCurrency 0 WaitBeforeStarting 3 WaitBetweenSpawns 6 Support 1 HideIcon 1 RandomChoice { TFBot { Template T_TFBot_Demo_Burst Action Mobber Attributes DisableDodge Attributes IgnoreFlag AddCond { Name TF_COND_REPROGRAMMED } CharacterAttributes { "increase player capture value" -1 } } TFBot { Class Soldier Skill Expert Action Mobber Attributes DisableDodge Attributes IgnoreFlag AddCond { Name TF_COND_REPROGRAMMED } CharacterAttributes { "increase player capture value" -1 } } TFBot { Class Pyro Skill Expert Action Mobber Attributes DisableDodge Attributes IgnoreFlag Item "The Dragon's Fury" Maxvisionrange 800 AddCond { Name TF_COND_REPROGRAMMED } CharacterAttributes { "increase player capture value" -1 } ClassIcon pyro_dragon_fury_swordstone } } } WaveSpawn { Where spawnbot_red_factory TotalCount 200 MaxActive 1 SpawnCount 1 TotalCurrency 0 WaitBeforeStarting 10 WaitBetweenSpawns 20 Support 1 HideIcon 1 TFBot { Template T_TFBot_Giant_Scout_Fast Action Mobber Tag bot_giant Attributes DisableDodge Attributes IgnoreFlag AddCond { Name TF_COND_REPROGRAMMED } CharacterAttributes { "increase player capture value" -2 } } } WaveSpawn { Where spawnbot_blu_factory TotalCount 200 MaxActive 2 SpawnCount 2 TotalCurrency 0 WaitBeforeStarting 3 WaitBetweenSpawns 6 Support 1 HideIcon 1 RandomChoice { TFBot { Template T_TFBot_Demo_Burst Action Mobber Attributes DisableDodge Attributes IgnoreFlag CharacterAttributes { "increase player capture value" -1 } } TFBot { Class Soldier Skill Expert Action Mobber Attributes DisableDodge Attributes IgnoreFlag CharacterAttributes { "increase player capture value" -1 } } TFBot { Class Pyro Skill Expert Action Mobber Attributes DisableDodge Attributes IgnoreFlag Item "The Dragon's Fury" Maxvisionrange 800 ClassIcon pyro_dragon_fury_swordstone CharacterAttributes { "increase player capture value" -1 } } } } WaveSpawn { Where spawnbot_blu_factory TotalCount 200 MaxActive 1 SpawnCount 1 TotalCurrency 0 WaitBeforeStarting 10 WaitBetweenSpawns 20 Support 1 TFBot { Template T_TFBot_Giant_Scout_Fast Action Mobber Tag bot_giant Attributes DisableDodge Attributes IgnoreFlag CharacterAttributes { "increase player capture value" -2 } } } WaveSpawn { Where spawnbot_blu_bomb_carrier TotalCount 999 MaxActive 1 SpawnCount 1 TotalCurrency 0 HideIcon 1 WaitBeforeStarting 0 WaitBetweenSpawns 12 Support 1 TFBot { Template T_TFBot_Giant_Scout_Fast Tag bot_giant Tag bot_bomb AlwaysGlow 1 CharacterAttributes { "cannot taunt" 1 "cannot be teleported" 1 } } } WaveSpawn { Where spawnbot_gry_factory TotalCount 200 MaxActive 3 SpawnCount 2 TotalCurrency 0 WaitBeforeStarting 0 WaitBetweenSpawns 11 Support 1 HideIcon 1 TFBot { Class Scout Skill Normal UseMeleeThreatPrioritization 1 MaxVisionRange 1200 Addcond { Name TF_COND_REPROGRAMMED_NEUTRAL } SpawnTemplate "GreyGlowsMK1" CustomEyeGlowColor "255 255 255" Action Mobber Attributes DisableDodge UseCustomModel "models/bots/scout/bot_scout_gray.mdl" ClassIcon gry_lite ItemAttributes { ItemName "TF_WEAPON_SCATTERGUN" "collect currency on kill" 1 } CharacterAttributes { "crit mod disabled" 0 "not solid to players" 1 } InterruptAction { Target "cap_area5" Delay 0.1 Repeats 0 Cooldown 2 Duration 0.01 Distance 300 WaitUntilDone 1 } } } WaveSpawn { Where spawnbot_gry_factory TotalCount 200 MaxActive 2 SpawnCount 1 TotalCurrency 0 WaitBeforeStarting 0 WaitBetweenSpawns 15 Support 1 HideIcon 1 RandomChoice { TFBot { Class Soldier Skill Hard UseMeleeThreatPrioritization 1 MaxVisionRange 1200 Addcond { Name TF_COND_REPROGRAMMED_NEUTRAL } SpawnTemplate "GreyGlowsMK1" Action Mobber Attributes DisableDodge UseCustomModel "models/bots/soldier/bot_soldier_gray.mdl" ClassIcon gry_lite CharacterAttributes { "crit mod disabled" 0 "not solid to players" 1 "collect currency on kill" 1 } InterruptAction { Target "cap_area5" Delay 0.1 Repeats 0 Cooldown 2 Duration 0.01 Distance 300 WaitUntilDone 1 } } TFBot { Class Soldier Skill Hard UseMeleeThreatPrioritization 1 MaxVisionRange 1200 Addcond { Name TF_COND_REPROGRAMMED_NEUTRAL } SpawnTemplate "GreyGlowsMK1" Action Mobber Attributes DisableDodge UseCustomModel "models/bots/soldier/bot_soldier_gray.mdl" ClassIcon gry_lite CharacterAttributes { "crit mod disabled" 0 "not solid to players" 1 "collect currency on kill" 1 } InterruptAction { Target "cap_area5" Delay 0.1 Repeats 0 Cooldown 2 Duration 0.01 Distance 300 WaitUntilDone 1 } } TFBot { Class Soldier Skill Easy UseMeleeThreatPrioritization 1 MaxVisionRange 1200 Addcond { Name TF_COND_REPROGRAMMED_NEUTRAL } SpawnTemplate "GreyGlowsMK1" CustomEyeGlowColor "255 255 255" Action Mobber Attributes DisableDodge UseCustomModel "models/bots/soldier/bot_soldier_gray.mdl" ClassIcon gry_lite CharacterAttributes { "crit mod disabled" 0 "not solid to players" 1 "collect currency on kill" 1 } InterruptAction { Target "cap_area5" Delay 0.1 Repeats 0 Cooldown 2 Duration 0.01 Distance 300 WaitUntilDone 1 } } TFBot { Class Soldier Skill Expert UseMeleeThreatPrioritization 1 MaxVisionRange 1200 Addcond { Name TF_COND_REPROGRAMMED_NEUTRAL } SpawnTemplate "GreyGlowsMK1" Action Mobber Attributes DisableDodge UseCustomModel "models/bots/soldier/bot_soldier_gray.mdl" ClassIcon gry_lite CharacterAttributes { "crit mod disabled" 0 "not solid to players" 1 "collect currency on kill" 1 } InterruptAction { Target "cap_area5" Delay 0.1 Repeats 0 Cooldown 2 Duration 0.01 Distance 300 WaitUntilDone 1 } } TFBot { Class Demoman Skill Expert UseMeleeThreatPrioritization 1 MaxVisionRange 1200 Addcond { Name TF_COND_REPROGRAMMED_NEUTRAL } SpawnTemplate "GreyGlowsMK1" Action Mobber Attributes DisableDodge UseCustomModel "models/bots/demo/bot_demo_gray.mdl" ClassIcon gry_lite ItemAttributes { ItemName "TF_WEAPON_GRENADELAUNCHER" "custom projectile model" "models/weapons/w_models/w_grenade_grenadelauncher_gray.mdl" } CharacterAttributes { "crit mod disabled" 0 "not solid to players" 1 "collect currency on kill" 1 } InterruptAction { Target "cap_area5" Delay 0.1 Repeats 0 Cooldown 2 Duration 0.01 Distance 300 WaitUntilDone 1 } } TFBot { Class Demoman Skill Hard UseMeleeThreatPrioritization 1 MaxVisionRange 1200 Addcond { Name TF_COND_REPROGRAMMED_NEUTRAL } SpawnTemplate "GreyGlowsMK1" Action Mobber Attributes DisableDodge UseCustomModel "models/bots/demo/bot_demo_gray.mdl" ClassIcon gry_lite ItemAttributes { ItemName "TF_WEAPON_GRENADELAUNCHER" "custom projectile model" "models/weapons/w_models/w_grenade_grenadelauncher_gray.mdl" } CharacterAttributes { "crit mod disabled" 0 "not solid to players" 1 "collect currency on kill" 1 } InterruptAction { Target "cap_area5" Delay 0.1 Repeats 0 Cooldown 2 Duration 0.01 Distance 300 WaitUntilDone 1 } } TFBot { Class Demoman Skill Easy UseMeleeThreatPrioritization 1 MaxVisionRange 1200 Addcond { Name TF_COND_REPROGRAMMED_NEUTRAL } SpawnTemplate "GreyGlowsMK1" CustomEyeGlowColor "255 255 255" Action Mobber Attributes DisableDodge UseCustomModel "models/bots/demo/bot_demo_gray.mdl" ClassIcon gry_lite ItemAttributes { ItemName "TF_WEAPON_GRENADELAUNCHER" "custom projectile model" "models/weapons/w_models/w_grenade_grenadelauncher_gray.mdl" } CharacterAttributes { "crit mod disabled" 0 "not solid to players" 1 "collect currency on kill" 1 } InterruptAction { Target "cap_area5" Delay 0.1 Repeats 0 Cooldown 2 Duration 0.01 Distance 300 WaitUntilDone 1 } } TFBot { Class Demoman Skill Easy UseMeleeThreatPrioritization 1 MaxVisionRange 1200 Addcond { Name TF_COND_REPROGRAMMED_NEUTRAL } SpawnTemplate "GreyGlowsMK1" CustomEyeGlowColor "255 255 255" Action Mobber Attributes DisableDodge UseCustomModel "models/bots/demo/bot_demo_gray.mdl" ClassIcon gry_lite ItemAttributes { ItemName "TF_WEAPON_GRENADELAUNCHER" "custom projectile model" "models/weapons/w_models/w_grenade_grenadelauncher_gray.mdl" } CharacterAttributes { "crit mod disabled" 0 "not solid to players" 1 "collect currency on kill" 1 } InterruptAction { Target "cap_area5" Delay 0.1 Repeats 0 Cooldown 2 Duration 0.01 Distance 300 WaitUntilDone 1 } } } } WaveSpawn { Name "Monochrome" Where spawnbot_gry_monochrome TotalCount 1 MaxActive 1 SpawnCount 1 TotalCurrency 0 HideIcon 1 WaitBeforeStarting 3 WaitBetweenSpawns 0 RandomChoice { TFBot { Template T_TFBot_Grey_Chief } TFBot { Template T_TFBot_Grey_Chief } TFBot { Template T_TFBot_Grey_Chief } TFBot { Template T_TFBot_Grey_Chief } TFBot { Template T_TFBot_Grey_Chief } TFBot { Template T_TFBot_Grey_Chief_Funny } } DoneOutput { Target "wave3_hatch_open" Action trigger Delay 6 } } WaveSpawn { Where spawnbot_gry_monochrome_support1 TotalCount 6 MaxActive 3 SpawnCount 3 TotalCurrency 0 WaitBeforeStarting 3 WaitBetweenSpawns 6 Support 1 TFBot { Class Scout Skill Expert UseMeleeThreatPrioritization 1 MaxVisionRange 1200 Addcond { Name TF_COND_REPROGRAMMED_NEUTRAL } SpawnTemplate "GreyGlowsMK1" CustomEyeGlowColor "255 255 255" Action Mobber Attributes DisableDodge WeaponRestrictions MeleeOnly UseCustomModel "models/bots/scout/bot_scout_gray.mdl" ClassIcon gry_lite ItemAttributes { ItemName "TF_WEAPON_BAT" "collect currency on kill" 1 } CharacterAttributes { "crit mod disabled" 0 "not solid to players" 1 } // FireInput // { // Target !self // Action $SetLocalOrigin // Param "centerSpawnBeacon" // Delay 0.01 // Repeats 1 // } FireInput { Target !self Action $PlaySound Param "=65|mvm\mvm_tele_deliver.wav" Delay 0 Repeats 1 } Addcond { Name TF_COND_REPROGRAMMED_NEUTRAL Delay 0.8 } Addcond { Name TF_COND_MVM_BOT_STUN_RADIOWAVE Duration 0.8 } Addcond { Index 5 Duration 0.8 } } } WaveSpawn { Where spawnbot_gry_monochrome_support1 TotalCount 6 MaxActive 2 SpawnCount 2 TotalCurrency 0 WaitBeforeStarting 3 WaitBetweenSpawns 8 Support 1 TFBot { Class Soldier Skill Expert UseMeleeThreatPrioritization 1 MaxVisionRange 1200 Addcond { Name TF_COND_REPROGRAMMED_NEUTRAL } SpawnTemplate "GreyGlowsMK1" CustomEyeGlowColor "255 255 255" SpawnTemplate "GreyGlowsMK1" Action Mobber Attributes DisableDodge UseCustomModel "models/bots/soldier/bot_soldier_gray.mdl" ClassIcon gry_lite ItemAttributes { ItemName "TF_WEAPON_ROCKETLAUNCHER" "collect currency on kill" 1 } CharacterAttributes { "crit mod disabled" 0 "not solid to players" 1 } // FireInput // { // Target !self // Action $SetLocalOrigin // Param "centerSpawnBeacon" // Delay 0.01 // Repeats 1 // } FireInput { Target !self Action $PlaySound Param "=65|mvm\mvm_tele_deliver.wav" Delay 0 Repeats 1 } Addcond { Name TF_COND_REPROGRAMMED_NEUTRAL Delay 0.8 } Addcond { Name TF_COND_MVM_BOT_STUN_RADIOWAVE Duration 0.8 } Addcond { Index 5 Duration 0.8 } } } WaveSpawn { Where spawnbot_gry_monochrome_support2 TotalCount 6 MaxActive 3 SpawnCount 3 TotalCurrency 0 WaitBeforeStarting 3 WaitBetweenSpawns 6 Support 1 TFBot { Class Demoman Name "Demoknight" Skill Expert UseMeleeThreatPrioritization 1 UseCustomModel "models/bots/demo/bot_demo_gray.mdl" Item "The Chargin' Targe" Item "The Eyelander" WeaponRestrictions MeleeOnly Action Mobber Attributes DisableDodge Skill Expert // increased to improve ability to hit with melee SpawnTemplate "GreyGlowsMK1" ItemAttributes { ItemName "The Eyelander" "collect currency on kill" 1 "add cond when active" 36 "crit vs burning players" 1 "crit vs non burning players" 1 } ItemAttributes { ItemName "The Chargin' Targe" "collect currency on kill" 1 } CharacterAttributes { "crit mod disabled" 0 "not solid to players" 1 } // FireInput // { // Target !self // Action $SetLocalOrigin // Param "centerSpawnBeacon" // Delay 0 // Repeats 1 // } FireInput { Target !self Action $PlaySound Param "=65|mvm\mvm_tele_deliver.wav" Delay 0 Repeats 1 } Addcond { Name TF_COND_REPROGRAMMED_NEUTRAL Delay 0.8 } Addcond { Name TF_COND_MVM_BOT_STUN_RADIOWAVE Duration 0.8 } Addcond { Index 5 Duration 0.8 } } } WaveSpawn { Where spawnbot_gry_monochrome_support2 TotalCount 6 MaxActive 1 SpawnCount 1 TotalCurrency 0 WaitBeforeStarting 3 WaitBetweenSpawns 6 Support 1 TFBot { Template T_TFBot_Demo_Burst UseCustomModel "models/bots/demo/bot_demo_gray.mdl" UseMeleeThreatPrioritization 1 SpawnTemplate "GreyGlowsMK1" Action Mobber Attributes DisableDodge Skill Expert ItemAttributes { ItemName "TF_WEAPON_GRENADELAUNCHER" "custom projectile model" "models/weapons/w_models/w_grenade_grenadelauncher_gray.mdl" "collect currency on kill" 1 } CharacterAttributes { "crit mod disabled" 0 "not solid to players" 1 } FireInput { Target !self Action $PlaySound Param "=65|mvm\mvm_tele_deliver.wav" Delay 0 Repeats 1 } Addcond { Name TF_COND_REPROGRAMMED_NEUTRAL Delay 0.8 } Addcond { Name TF_COND_MVM_BOT_STUN_RADIOWAVE Duration 0.8 } Addcond { Index 5 Duration 0.8 } } } WaveSpawn { Where spawnbot_gry_monochrome_support3 TotalCount 6 MaxActive 1 SpawnCount 1 TotalCurrency 0 WaitBeforeStarting 3 WaitBetweenSpawns 6 Support 1 RandomChoice { TFBot { Template T_TFBot_Scout_Shortstop Skill Normal UseMeleeThreatPrioritization 1 MaxVisionRange 1200 Addcond { Name TF_COND_REPROGRAMMED_NEUTRAL } SpawnTemplate "GreyGlowsMK1" CustomEyeGlowColor "255 255 255" Action Mobber Attributes DisableDodge UseCustomModel "models/bots/scout/bot_scout_gray.mdl" ClassIcon gry_lite CharacterAttributes { "crit mod disabled" 0 "not solid to players" 1 "collect currency on kill" 1 } // FireInput // { // Target !self // Action $SetLocalOrigin // Param "centerSpawnBeacon" // Delay 0 // Repeats 1 // } FireInput { Target !self Action $PlaySound Param "=65|mvm\mvm_tele_deliver.wav" Delay 0 Repeats 1 } Addcond { Name TF_COND_REPROGRAMMED_NEUTRAL Delay 0.8 } Addcond { Name TF_COND_MVM_BOT_STUN_RADIOWAVE Duration 0.8 } Addcond { Index 5 Duration 0.8 } } TFBot { Class Soldier Skill Hard Health 1200 Name "Armored Burst Fire Soldier" "scale" 1.5 Attributes HoldFireUntilFullReload ItemAttributes { ItemName "TF_WEAPON_ROCKETLAUNCHER" "faster reload rate" 0.7 "fire rate bonus" 0.2 "clip size upgrade atomic" 2.0 "Projectile speed increased" 0.65 } UseMeleeThreatPrioritization 1 MaxVisionRange 1200 Addcond { Name TF_COND_REPROGRAMMED_NEUTRAL } SpawnTemplate "GreyGlowsMK1" Action Mobber Attributes DisableDodge UseCustomModel "models/bots/soldier/bot_soldier_gray.mdl" ClassIcon gry_lite CharacterAttributes { "crit mod disabled" 0 "not solid to players" 1 "collect currency on kill" 1 "head scale" 0.7 "move speed bonus" 0.85 } // FireInput // { // Target !self // Action $SetLocalOrigin // Param "centerSpawnBeacon" // Delay 0 // Repeats 1 // } FireInput { Target !self Action $PlaySound Param "=65|mvm\mvm_tele_deliver.wav" Delay 0 Repeats 1 } Addcond { Name TF_COND_REPROGRAMMED_NEUTRAL Delay 0.8 } Addcond { Name TF_COND_MVM_BOT_STUN_RADIOWAVE Duration 0.8 } Addcond { Index 5 Duration 0.8 } } } } WaveSpawn { Where spawnbot_gry_monochrome_support3 TotalCount 6 MaxActive 3 SpawnCount 2 TotalCurrency 0 WaitBeforeStarting 3 WaitBetweenSpawns 6 Support 1 RandomChoice { TFBot { Class Scout Skill Normal UseMeleeThreatPrioritization 1 MaxVisionRange 1200 Addcond { Name TF_COND_REPROGRAMMED_NEUTRAL } SpawnTemplate "GreyGlowsMK1" CustomEyeGlowColor "255 255 255" Action Mobber Attributes DisableDodge UseCustomModel "models/bots/scout/bot_scout_gray.mdl" ClassIcon gry_lite ItemAttributes { ItemName "TF_WEAPON_SCATTERGUN" "collect currency on kill" 1 } CharacterAttributes { "crit mod disabled" 0 "not solid to players" 1 } // FireInput // { // Target !self // Action $SetLocalOrigin // Param "centerSpawnBeacon" // Delay 0 // Repeats 1 // } FireInput { Target !self Action $PlaySound Param "=65|mvm\mvm_tele_deliver.wav" Delay 0 Repeats 1 } Addcond { Name TF_COND_REPROGRAMMED_NEUTRAL Delay 0.8 } Addcond { Name TF_COND_MVM_BOT_STUN_RADIOWAVE Duration 0.8 } Addcond { Index 5 Duration 0.8 } } TFBot { Class Demoman Name "Demoknight" Skill Expert UseMeleeThreatPrioritization 1 Item "The Chargin' Targe" UseCustomModel "models/bots/demo/bot_demo_gray.mdl" Item "The Eyelander" WeaponRestrictions MeleeOnly Action Mobber Attributes DisableDodge Skill Expert // increased to improve ability to hit with melee ItemAttributes { ItemName "The Eyelander" "collect currency on kill" 1 "add cond when active" 36 "crit vs burning players" 1 "crit vs non burning players" 1 } ItemAttributes { ItemName "The Chargin' Targe" "collect currency on kill" 1 } CharacterAttributes { "crit mod disabled" 0 "not solid to players" 1 } // FireInput // { // Target !self // Action $SetLocalOrigin // Param "centerSpawnBeacon" // Delay 0 // Repeats 1 // } FireInput { Target !self Action $PlaySound Param "=65|mvm\mvm_tele_deliver.wav" Delay 0 Repeats 1 } Addcond { Name TF_COND_REPROGRAMMED_NEUTRAL Delay 0.8 } Addcond { Name TF_COND_MVM_BOT_STUN_RADIOWAVE Duration 0.8 } Addcond { Index 5 Duration 0.8 } } } } WaveSpawn { Where spawnbot_gry_monochrome_support3 TotalCount 6 MaxActive 1 SpawnCount 1 TotalCurrency 0 WaitBeforeStarting 3 WaitBetweenSpawns 6 Support 1 RandomChoice { TFBot { Template T_TFBot_Demo_Burst UseCustomModel "models/bots/demo/bot_demo_gray.mdl" UseMeleeThreatPrioritization 1 Action Mobber Attributes DisableDodge Skill Expert ItemAttributes { ItemName "TF_WEAPON_GRENADELAUNCHER" "custom projectile model" "models/weapons/w_models/w_grenade_grenadelauncher_gray.mdl" "collect currency on kill" 1 } CharacterAttributes { "crit mod disabled" 0 "not solid to players" 1 } FireInput { Target !self Action $PlaySound Param "=65|mvm\mvm_tele_deliver.wav" Delay 0 Repeats 1 } Addcond { Name TF_COND_REPROGRAMMED_NEUTRAL Delay 0.8 } Addcond { Name TF_COND_MVM_BOT_STUN_RADIOWAVE Duration 0.8 } Addcond { Index 5 Duration 0.8 } } TFBot { Class Soldier Skill Expert UseMeleeThreatPrioritization 1 MaxVisionRange 1200 Addcond { Name TF_COND_REPROGRAMMED_NEUTRAL } SpawnTemplate "GreyGlowsMK1" CustomEyeGlowColor "255 255 255" Action Mobber Attributes DisableDodge UseCustomModel "models/bots/soldier/bot_soldier_gray.mdl" ClassIcon gry_lite ItemAttributes { ItemName "TF_WEAPON_ROCKETLAUNCHER" "collect currency on kill" 1 } CharacterAttributes { "crit mod disabled" 0 "not solid to players" 1 } // FireInput // { // Target !self // Action $SetLocalOrigin // Param "centerSpawnBeacon" // Delay 0.01 // Repeats 1 // } FireInput { Target !self Action $PlaySound Param "=65|mvm\mvm_tele_deliver.wav" Delay 0 Repeats 1 } Addcond { Name TF_COND_REPROGRAMMED_NEUTRAL Delay 0.8 } Addcond { Name TF_COND_MVM_BOT_STUN_RADIOWAVE Duration 0.8 } Addcond { Index 5 Duration 0.8 } } } } } }