// Reverse MvM by Midori // // Credits to: // asd417 - made the map (i think) #base robot_standard.pop #base robot_giant.pop #base robot_midori.pop #base robotize_lines.pop WaveSchedule { StartingCurrency 800 CanBotsAttackWhileInSpawnRoom yes RespawnWaveTime 3 RespawnWaveTimeBlue 3 FixedRespawnWaveTimeBlue 1 ReverseWinConditions 1 AllowJoinTeamBlue 1 AllowJoinTeamBlueMax 6 HumansMustJoinTeam Blue BluHumanInfiniteAmmo 1 BluHumanInfiniteCloak 0 BluPlayersAreRobots 1 BluHumanSpawnNoShoot 0 EnemyTeamForReverse Red BotsAreHumans 2 ForceRobotBleed 1 SetCreditTeam 3 SniperAllowHeadshots 1 SendBotsToSpectatorImmediately 1 RobotLimit 25 NoRomevisionCosmetics 1 BluHumanFlagCapture 0 FlagCarrierMovementPenalty 1 MedigunShieldDamage 1 BluHumanFlagPickup 1 NoMvMDeathTune 1 // TextPrintTime 0 BodyPartScaleSpeed 100 WaveStartCountdown 3 StealthDamageReduction 0.1 NoRedSniperBotHeadshots 0 NoRedBotsRandomCrit 1 RemoveBluVelocityLimit 1 SentryBusterFriendlyFire 0 ForceRedMoney 1 ForceHoliday 2 NoThrillerTaunt 1 NoHolidayPickups 1 NoCritPumpkin 1 BotsDropSpells 1 GiantsDropRareSpells 1 SpellDropRateCommon 0 SpellDropRateGiant 0 // AllowCivilianClass 1 FastNPCUpdate 1 NoSkeletonSplit 1 AllowBombBuffsForPlayerCarriers 1 CustomNavFile "mvm_oxidize_rc3_rev" LuaScriptFile "scripts/shockwave_shields_red.lua" // LuaScriptFile "scripts/dover2_helicopter_reverse.lua" // LuaScriptFile "scripts/dover2_bots.lua" LuaScriptFile "scripts/projectile_shield_damage.lua" PrecacheModel "models/props_mvm/hatch_shield.mdl" PrecacheModel "models/props_mvm/reversemvm_redwall_696x337.mdl" PrecacheModel "models/props_mvm/reversemvm_redwall.mdl" PrecacheModel "models/props_mvm/reversemvm_redwall_640x300.mdl" PrecacheModel "models/props_mvm/mvm_upgrade_blu.mdl" PrecacheModel "models/props_mvm/robot_spawnpoint.mdl" PrecacheModel "models/buildables/sentry1_uber.mdl" PrecacheModel "models/buildables/sentry2_uber.mdl" PrecacheModel "models/bots/boss_bot/boss_tank_color.mdl" PrecacheModel "models/bots/boss_bot/boss_tankred.mdl" PrecacheModel "models/weapons/c_models/c_bmmh/c_bmmh.mdl" PrecacheModel "models/bots/merasmus/merasmussmall.mdl" // PrecacheModel "models/weapons/c_models/c_scythe/c_scythe.mdl" PrecacheModel "models/weapons/c_models/c_fists_of_steel_gray/c_fists_of_steel_gray.mdl" PrecacheGeneric "sprites/upgrades_blue.vmt" // awesome thanks hell-met PrecacheModel models/weapons/c_models/c_demo_bot_arms.mdl PrecacheModel models/weapons/c_models/c_demo_bot_animations.mdl PrecacheModel models/weapons/c_models/c_engineer_bot_arms.mdl PrecacheModel models/weapons/c_models/c_engineer_bot_gunslinger.mdl PrecacheModel models/weapons/c_models/c_engineer_bot_animations.mdl PrecacheModel models/weapons/c_models/c_engineer_bot_gunslinger_animations.mdl PrecacheModel models/weapons/c_models/c_heavy_bot_arms.mdl PrecacheModel models/weapons/c_models/c_heavy_bot_animations.mdl PrecacheModel models/weapons/c_models/c_medic_bot_arms.mdl PrecacheModel models/weapons/c_models/c_medic_bot_animations.mdl PrecacheModel models/weapons/c_models/c_pyro_bot_arms.mdl PrecacheModel models/weapons/c_models/c_pyro_bot_animations.mdl PrecacheModel models/weapons/c_models/c_scout_bot_arms.mdl PrecacheModel models/weapons/c_models/c_scout_bot_animations.mdl PrecacheModel models/weapons/c_models/c_soldier_bot_arms.mdl PrecacheModel models/weapons/c_models/c_soldier_bot_animations.mdl PrecacheModel models/weapons/c_models/c_sniper_bot_arms.mdl PrecacheModel models/weapons/c_models/c_sniper_bot_animations.mdl PrecacheModel models/weapons/c_models/c_spy_bot_arms.mdl PrecacheModel models/weapons/c_models/c_spy_bot_animations.mdl PrecacheModel models/weapons/v_models/v_pda_spy_bot.mdl PrecacheModel models/weapons/v_models/v_ttg_watch_spy_bot.mdl PrecacheModel models/weapons/v_models/v_watch_leather_spy_bot.mdl PrecacheModel models/weapons/v_models/v_watch_pocket_spy_bot.mdl PrecacheModel models/weapons/v_models/v_watch_spy_bot.mdl PrecacheModel models/workshop_partner/weapons/v_models/v_hm_watch/v_hm_watch_bot.mdl PrecacheSound "combine_bank_alarm.mp3" PrecacheSound "Breakable.Metal" PrecacheSound "npc/env_headcrabcanister/explosion.wav" //Disable Sounds DisableSound "Announcer.MVM_Game_Over_Loss" DisableSound "Announcer.MVM_Wave_Lose" DisableSound "music.mvm_lost_wave" OverrideSounds { "MVM.BombWarning" "combine_bank_alarm.mp3" "MVM.GiantHeavyE xplodes" "npc/env_headcrabcanister/explosion.wav" "MVM.GiantCommonExplodes" "npc/env_headcrabcanister/explosion.wav" "Player.FallGib" "Breakable.Metal" "Player.FallDamage" "Breakable.Metal" "Regenerate.Touch" "misc/null.wav" "Scout.ReadyMvM" "Scout.MVM_BattleCry02" "Soldier.ReadyMvM" "Soldier.MVM_Go02" "Pyro.ReadyMvM" "Pyro.MVM_Go01" "Demoman.ReadyMvM" "Demoman.MVM_Go03" "Heavy.ReadyMvM" "Heavy.MVM_MoveUp02" "Engineer.ReadyMvM" "Engineer.MVM_MoveUp01" "Medic.ReadyMvM" "Medic.MVM_AutoCappedControlPoint03" "Sniper.ReadyMvM" "Sniper.MVM_Taunts39" "Spy.ReadyMVM" "Spy.MVM_DominationScout01" "Civilian.MVM_Death" "Halloween.MerasmusBanish" "Civilian.MVM_CritDeath" "Halloween.MerasmusBanish" "Civilian.MVM_MeleeDeath" "Halloween.MerasmusBanish" "Civilian.MVM_ExplosionDeath" "BaseCombatCharacter.CorpseGib" } DisallowUpgrade "maxammo primary increased" DisallowUpgrade "maxammo secondary increased" DisallowUpgrade "maxammo metal increased" DisallowUpgrade "metal regen" DisallowUpgrade "refill_ammo" DisallowUpgrade "bidirectional teleport" HandModelOverride { Scout "models/weapons/c_models/c_scout_bot_arms.mdl" Soldier "models/weapons/c_models/c_soldier_bot_arms.mdl" Pyro "models/weapons/c_models/c_pyro_bot_arms.mdl" HeavyWeapons "models/weapons/c_models/c_heavy_bot_arms.mdl" Demoman "models/weapons/c_models/c_demo_bot_arms.mdl" Engineer "models/weapons/c_models/c_engineer_bot_arms.mdl" Medic "models/weapons/c_models/c_medic_bot_arms.mdl" Sniper "models/weapons/c_models/c_sniper_bot_arms.mdl" Spy "models/weapons/c_models/c_spy_bot_arms.mdl" // Civilian "models/weapons/c_models/c_sniper_arms.mdl" } ItemAttributes // give demoknight some love { ClassName "TF_WEAPON_SWORD" "is_a_sword" 0 "dmg bonus vs buildings" 2 } ItemAttributes // give demoknight some love { ItemName "Festive Eyelander" "is_a_sword" 0 "set turn to ice" 1 "dmg bonus vs buildings" 2 } ItemAttributes // give demoknight some love { ItemName "The Scotsman's Skullcutter" "is_a_sword" 0 "dmg bonus vs buildings" 2 } ItemAttributes // give demoknight some love { ItemName "The Claidheamohmor" "is_a_sword" 0 "dmg bonus vs buildings" 2 } ItemAttributes // give demoknight some love { ItemName "The Half-Zatoichi" "is_a_sword" 0 "dmg bonus vs buildings" 2 } ItemAttributes // give demoknight some love { ItemName "The Persian Persuader" "is_a_sword" 0 "dmg bonus vs buildings" 2 } PlayerAttributes { "always allow taunt" 1 "increased air control" 5 "no damage view flinch" 1 "crit mod disabled hidden" 0 "mult flag carrier move speed" 0.66 "cancel falling damage" 1 "vision opt in flags" -34028234663852886000000000000000000000 Heavyweapons { "cannot upgrade bomb" 1 } Engineer { "max health additive bonus" 150 "mult dispenser rate" 2 "construction rate increased" 2 "mod teleporter speed boost" 1 } Medic { "medic machinery beam" 2 } Sniper { "sniper beep with enemy under crosshair" 1 "aiming knockback resistance" 0.6 } Spy { "mod see enemy health" 1 } // Civilian // { // "min respawn time" 30 // "SET BONUS: max health additive bonus" 1000 // "never gib" 1 // "cannot pick up intelligence" 1 // "model scale" 1.74 // "is miniboss" 1 // } } // CustomWeapon // { // Name "Merasmus's Staff" // OriginalItemName "TF_WEAPON_CLUB" // "custom item model" "models/empty.mdl" // "damage bonus" 3 // "custom kill icon" "merasmus_decap" // "cannot be upgraded" 1 // "apply look velocity on damage" -1000 // "apply z velocity on damage" -256 // "melee range multiplier" 1.33 // "melee cleave attack" 1 // } // ForceItem // { // Civilian // { // Item "Merasmus's Staff" // Item "TF_WEAPON_SPELLBOOK" // } // } // PlayerSpawnTemplate // { // Name Merasmus_Civilian // CLass Civilian // } PlayerSpawnTemplate "fill_meter" PlayerSpawnTemplate { Name NoKnifeBombPickup Class Spy } PointTemplates { fill_meter // using whatever the fuck datamaps are, give players full bars { OnSpawnOutput { Target "!activator" Action "$SetProp$m_flRageMeter" Param "100" } } // Helicopter // { // OnSpawnOutput // { // Target "popscript" // Action "$HelicopterBot" // } // } // Merasmus_Civilian // { // logic_relay // { // "targetname" "merasmus_looper" // "ontrigger" "!self,trigger,0,0.05,-1" // "onspawn" "!self,trigger,0,0.25,-1" // "spawnflags" "2" // } // tf_glow // { // "GlowColor" "0 255 0 200" // "target" "!parent" // "targetname" "merasmus_glow" // } // // OnSpawnOutput // // { // // Target !activator // // Action $WeaponSwitchSlot // // Param 2 // // } // OnSpawnOutput // { // Target !activator // Action SetCustomModelWithClassAnimations // Param "models/bots/merasmus/merasmussmall.mdl" // } // OnSpawnOutput // { // Target !activator // Action SetCustomModelVisibleToSelf // Param 1 // } // OnSpawnOutput // { // Target !activator // Action $setprop$m_bUseBossHealthBar // Param 1 // } // OnParentKilledOutput // { // Target !activator // Action SetCustomModelVisibleToSelf // Param 0 // } // OnParentKilledOutput // { // Target !activator // Action $setprop$m_bUseBossHealthBar // Param 0 // } // OnSpawnOutput // { // Target !activator // Action $displaytextcenter // Param "ATTENTION! ATTENTION! ATTENTION!" // } // OnSpawnOutput // { // Target !activator // Action $displaytextcenter // Param "DO NOT ACCESS LOADOUT!" // Delay 5 // } // OnParentKilledOutput // { // Target merasmus_glow // Action Kill // } // } // WizardLogic // { // NoFixup 1 // OnSpawnOutput // { // Target filter_civilian // Action AddOutput // Param "tfclass 10" // Delay 0 // } // filter_tf_class // { // "targetname" "filter_civilian" // "tfclass" "10" // "Negated" "0" // } // filter_multi // { // "targetname" "filter_caster" // "Filter01" "filter_civilian" // "filtertype" "1" // "Negated" "0" // } // filter_tf_condition // { // "targetname" "filter_minify" // "condition" "75" // "Negated" "0" // } // trigger_multiple // { // "targetname" "wizard_give_spells_trigger" // "filtername" "filter_caster" // "spawnflags" "1" // "StartDisabled" "0" // "wait" "0" // "mins" "0 0 0" // "maxs" "9216 8192 4096" // "OnStartTouch" "wizard_spell_case,PickRandom,,0,-1" // } // trigger_multiple // { // "targetname" "wizard_no_minify_trigger" // "filtername" "filter_minify" // "spawnflags" "1" // "StartDisabled" "1" // "wait" "0" // "mins" "0 0 0" // "maxs" "9216 8192 4096" // "OnStartTouch" "wizard_give_spell_common,Trigger,,0.25,-1" // "OnStartTouch" "wizard_no_minify,Disable,,0.05,-1" // "OnStartTouch" "wizard_no_minify,Enable,,0.04,-1" // "OnStartTouch" "teleporter_minify,Teleport,,0.02,-1" // "OnStartTouch" "teleporter_minify,Kill,,0.03,-1" // "OnStartTouch" "teleporter_minify_maker,ForceSpawnAtEntityOrigin,!activator,0.01,-1" // } // trigger_remove_tf_player_condition // { // "targetname" "wizard_no_minify" // "condition" "75" // "spawnflags" "1" // "StartDisabled" "1" // "mins" "0 0 0" // "maxs" "9216 8192 4096" // } // logic_timer // { // "targetname" "wizard_give_spells_trigger_timer" // "RefireTime" "2.55" // "UseRandomTime" "0" // "OnTimer" "wizard_give_spells_trigger,Disable,,0,-1" // "OnTimer" "wizard_give_spells_trigger,Enable,,2.5,-1" // } // logic_case // { // "targetname" "wizard_spell_case" // "OnCase01" "wizard_give_spell_common,Trigger,,0,-1" // "OnCase02" "wizard_give_spell_common,Trigger,,0,-1" // "OnCase03" "wizard_give_spell_common,Trigger,,0,-1" // "OnCase04" "wizard_give_spell_common,Trigger,,0,-1" // "OnCase05" "wizard_give_spell_common,Trigger,,0,-1" // "OnCase06" "wizard_give_spell_common,Trigger,,0,-1" // "OnCase07" "wizard_give_spell_common,Trigger,,0,-1" // "OnCase08" "wizard_give_spell_common,Trigger,,0,-1" // "OnCase09" "wizard_give_spell_common,Trigger,,0,-1" // "OnCase10" "wizard_give_spell_common,Trigger,,0,-1" // "OnCase11" "wizard_give_spell_common,Trigger,,0,-1" // "OnCase12" "wizard_give_spell_common,Trigger,,0,-1" // "OnCase13" "wizard_give_spell_common,Trigger,,0,-1" // "OnCase14" "wizard_give_spell_common,Trigger,,0,-1" // "OnCase15" "wizard_give_spell_common,Trigger,,0,-1" // "OnCase16" "wizard_give_spell_rare,Trigger,,0,-1" // } // logic_relay // { // "targetname" "wizard_give_spell_common" // "OnTrigger" "wizard_spell_common_maker,ForceSpawnAtEntityOrigin,!activator,0,-1" // "OnTrigger" "spellbook,Kill,,0.01,-1" // } // logic_relay // { // "targetname" "wizard_give_spell_rare" // "OnTrigger" "!activator,RollRareSpell,,0,-1" // } // env_entity_maker // { // "targetname" "wizard_spell_common_maker" // "EntityTemplate" "wizard_spell_common_template" // } // env_entity_maker // { // "targetname" "teleporter_minify_maker" // "EntityTemplate" "teleporter_minify_template" // } // logic_timer // { // "targetname" "wizard_no_minify_timer" // "RefireTime" "0.6" // "UseRandomTime" "0" // "OnTimer" "wizard_no_minify_trigger,Enable,,0,-1" // "OnTimer" "wizard_no_minify_trigger,Disable,,0.02,-1" // } // } teleporter_minify_template { NoFixup 1 point_teleport { "targetname" "teleporter_minify" "target" "!activator" "origin" "0 0 24" } } RotateShield { OnSpawnOutput { Target "rotate" Action "Start" } OnSpawnOutput { Target "rotate" Action "SetParent" Param "" } OnSpawnOutput { Target "rotate_position" Action "Trigger" } logic_relay { "targetname" "rotate_position" "spawnflags" "2" "OnTrigger" "rotate,$TeleportToEntity,!activator,0,-1" "OnTrigger" "!self,Trigger,,0.01,-1" } entity_medigun_shield { "parentname" "rotate" "targetname" "projectile_shield" "origin" "100 0 0" "spawnflags" "1" "teamnum" "2" } OnSpawnOutput { Target "popscript" Action "$registerShieldLvl1" param "projectile_shield" Delay 0.1 } func_rotating { "targetname" "rotate" "origin" "0 0 0" "mins" "-0.1 -0.1 -0.1" "maxs" "0.1 0.1 0.1" "dmg" "0" "fanfriction" "100" "maxspeed" "60" "spawnflags" "64" "volume" "0" } } RedLargeSentryHead { obj_sentrygun { "targetname" "sentry" //Entity name. Required if the entity is going to be referenced somewhere "teamnum" "2" // 2 - Red team, 3 - Blu team "SolidToPlayer" "0" "defaultupgrade" "2" "Spawnflags" "8" "modelscale" "1.35" "$ignoredbybots" "0" "$damagemult" "1.3" "$rangemult" "1.75" "OnDestroyed" "!parent,sethealth,0,0,-1" } OnSpawnOutput { Target "sentry" Action "sethealth" Param 3000 } OnSpawnOutput { Target "sentry" Action "setbuilder" Delay 0.01 } OnSpawnOutput { Action "setparent" Param "!activator" } } SplitRocket { OnSpawnOutput { Target "shoot" Action "$setowner" Param "!activator" Delay 0.01 } OnSpawnOutput { Target "shoot" Action "FireUser1" Delay 0.01 } OnSpawnOutput { Target "shoot" Action "Kill" Delay 0.03 } tf_point_weapon_mimic { "targetname" "shoot" "origin" "0 -15 0" "angles" "0 -8 0" "speedmin" "1000" "speedmax" "1000" "WeaponType" "0" "SplashRadius" "160" "Damage" "95" "teamnum" "2" "crits" "1" "OnUser1" "!self,FireOnce,,0,-1" "OnUser1" "!self,FireUser1,,1,-1" } tf_point_weapon_mimic { "targetname" "shoot" "origin" "0 15 0" "angles" "0 8 0" "speedmin" "1000" "speedmax" "1000" "WeaponType" "0" "SplashRadius" "160" "Damage" "95" "teamnum" "2" "crits" "1" "OnUser1" "!self,FireOnce,,0,-1" "OnUser1" "!self,FireUser1,,1,-1" } tf_point_weapon_mimic { "targetname" "shoot" "origin" "0 0 0" "angles" "0 0 0" "speedmin" "1000" "speedmax" "1000" "WeaponType" "0" "SplashRadius" "160" "Damage" "95" "teamnum" "2" "crits" "1" "OnUser1" "!self,FireOnce,,0,-1" "OnUser1" "!self,FireUser1,,1,-1" } tf_point_weapon_mimic { "targetname" "shoot" "origin" "0 -30 0" "angles" "0 -16 0" "speedmin" "1000" "speedmax" "1000" "WeaponType" "0" "SplashRadius" "160" "Damage" "95" "teamnum" "2" "crits" "1" "OnUser1" "!self,FireOnce,,0,-1" "OnUser1" "!self,FireUser1,,1,-1" } tf_point_weapon_mimic { "targetname" "shoot" "origin" "0 30 0" "angles" "0 16 0" "speedmin" "1000" "speedmax" "1000" "WeaponType" "0" "SplashRadius" "160" "Damage" "95" "teamnum" "2" "crits" "1" "OnUser1" "!self,FireOnce,,0,-1" "OnUser1" "!self,FireUser1,,1,-1" } } Widowmaker_Dudebro_Logic // by royal { NoFixup 1 logic_relay { "targetname" "switch_to_sentry_mode" "spawnflags" "2" "OnTrigger" "!self,EnableRefire,,0,-1" "OnTrigger" "!activator,$WeaponSwitchSlot,5,0,-1" "OnTrigger" "!activator,$AddPlayerAttribute,disable weapon switch|1,0.01,-1" } logic_relay { "targetname" "switch_to_shotgun_mode" "spawnflags" "2" "OnTrigger" "!self,EnableRefire,,0,-1" "OnTrigger" "!activator,$RemovePlayerAttribute,disable weapon switch,0,-1" "OnTrigger" "!activator,$WeaponSwitchSlot,0,0.1,-1" } } NoKnifeBombPickup // by royal { OnSpawnOutput { Target "setup" Action "Trigger" Delay 0 } OnSpawnOutput { Target "compare_loop" Action "Trigger" Delay 0.01 } logic_relay { "targetname" "setup" //m_hMyWeapons$ //in this case 1 is melee "OnTrigger" "@e@m_hMyWeapons$1@!activator,$GetEntIndex,compare_current_weapon|$SetVar$desiredEntIndex|-1,0,-1" } logic_relay { "targetname" "compare_loop" "spawnflags" "2" "OnTrigger" "@e@m_hActiveWeapon@!activator,$GetEntIndex,compare_current_weapon|$FireUser5|-1,0,-1" "OnTrigger" "!self,Trigger,,0.1,-1" } logic_relay { "targetname" "compare_current_weapon" "spawnflags" "2" "$OnUser5" "compare_current_weapon,$SetVar$inputHolder,,0,-1" //check if current weapon is desired slot "$OnUser5" "compare_result,InValue,$$=?(compare_current_weapon.desiredEntIndex == compare_current_weapon.inputHolder, 1, 0),0.01,-1" } logic_case { "targetname" "compare_result" "case01" "1" //true "case02" "0" //false //is not on slot "OnCase02" "!activator,$RemoveItemAttribute,cannot pick up intelligence|2,0,-1" //is on slot "OnCase01" "!activator,$AddItemAttribute,cannot pick up intelligence|1|2,0,-1" } } corelogic { NoFixup 1 logic_auto { "origin" "0 0 0" "targetname" "mainrelay" "OnMapSpawn" "tf_objective_resource,$SetClientProp$m_iszMvMPopfileName,Molten Gold,0,-1" "OnMapSpawn" "spawnbot_mission_sniper,Setteam,2,0,-1" "OnMapSpawn" "nav_refresh,RecomputeBlockers,,0.1,-1" "OnMapSpawn" "ambient1,PlaySound,,0,-1" "OnMapSpawn" "nest*,Enable,,0,-1" "OnMapSpawn" "eyeball*,Kill,,0,-1" "OnMapSpawn" "func_nav_prefer,Kill,,0,-1" "OnMapSpawn" "move_rope,Kill,,0,-1" "OnMapSpawn" "keyframe_rope,Kill,,0,-1" "OnMapSpawn" "item_ammopack*,Kill,,0,-1" "OnMapSpawn" "intel_1,Kill,,0,-1" "OnMapSpawn" "intel_2,Kill,,0,-1" "OnMapSpawn" "pumpkin_*,Kill,,0,-1" "OnMapSpawn" "candle_*,Kill,,0,-1" "OnMapSpawn" "activate_route_*,Kill,,0,-1" "OnMapSpawn" "route_*,Kill,,0,-1" "OnMapSpawn" "relay_bomb*,Kill,,0,-1" "OnMapSpawn" "wave_start_relay*,AddOutput,OnTrigger spawnbarrier*:Disable::0:-1,0,-1" "OnMapSpawn" "wave_finished_relay,AddOutput,OnTrigger spawnbarrier*:Enable::0:-1,0,-1" "OnMapSpawn" "antispawncamp,forcespawn,0,0.1,-1" //resupply "OnMapSpawn" "wave_start_relay*,AddOutput,OnTrigger func_regenerate:Disable:0:-1,0,-1" "OnMapSpawn" "wave_finished_relay,AddOutput,OnTrigger func_regenerate:Enable:0:-1,0,-1" "OnMapSpawn" "wave_finished_relay,AddOutput,OnTrigger teleportblubacktospawn:Enable::0:-1,0,-1" "OnMapSpawn" "wave_finished_relay,AddOutput,OnTrigger teleportblubacktospawn:Disable::0.1:-1,0,-1" "OnMapSpawn" "wave_finished_relay,AddOutput,OnTrigger tele_disable_relay,Trigger::0:-1,0,-1" "OnMapSpawn" "tank_red_2,AddOutput,OnPass tank_break:Trigger::0:-1,0,-1" "OnMapSpawn" "path_blu_128CCW_3_5,AddOutput,OnPass disable_forcefield_one:Trigger::0:-1,0,-1" "OnMapSpawn" "path_blu_128CCW_1_1,AddOutput,OnPass disable_forcefield_two:Trigger::0:-1,0,-1" "OnMapSpawn" "wave_start_relay*,AddOutput,OnTrigger tutorial_relay:CancelPending:3:-1,0,-1" "OnMapSpawn" "wave_finished_relay,AddOutput,OnTrigger tutorial_relay:Trigger::4:-1,0,-1" } item_teamflag { "targetname" "newbomb" "gametype" "1" "teamnum" "3" "angles" "0 180 0" "flag_model" "models/props_td/atom_bomb.mdl" "origin" "-1848 4528 6.67174" "returnbetweenwaves" "1" "returntime" "60000" "$onbombupgradelevel3" "!activator,$addcond,34,0,-1" "onpickup1" "!activator,$setvar$is_bomb_carrier,1,0,-1" "onpickup1" "!self,$setlocalangles,0 0 0,0,-1" "onpickup1" "bomb_dispenser_touch,enable,0,0,-1" "onpickup1" "!activator,$addplayerattribute,self dmg push force decreased|0,0,-1" "ondrop1" "!activator,$removeplayerattribute,self dmg push force decreased,0,-1" "ondrop1" "!activator,$setvar$is_bomb_carrier,0,0,-1" "ondrop1" "bomb_dispenser_touch,disable,0,0,-1" "ondrop1" "newbomb,addoutput,$disablebuffs 0,0,-1" "ondrop1" "!activator,$removecond,34,0,-1" } mapobj_cart_dispenser { "targetname" "bomb_dispenser" "origin" "-1848 4528 6.67174" "teamnum" "3" "$modules" "fakeparent" "parentname" "newbomb" "$radiusmult" "6" "spawnflags" "8" "touch_trigger" "bomb_dispenser_touch" } dispenser_touch_trigger { "targetname" "bomb_dispenser_touch" "origin" "-1848 4528 6.67174" "mins" "-200 -200 -200" "maxs" "200 200 200" "spawnflags" "1" "startdisabled" "1" "teamnum" "3" "$modules" "fakeparent" "parentname" "newbomb" } trigger_multiple { "targetname" "bomb_nab" "origin" "-1808 4624 6.67174" "parentname" "newbomb" "mins" "-8 -8 -8" "maxs" "8 8 8" "spawnflags" "1" "startdisabled" "1" "filtername" "filter_player_nobomb" "onstarttouch" "filter_player_nobomb,testactivator,0,0,-1" } trigger_teleport { "origin" "0 0 0" "mins" "-10000 -10000 -10000" "maxs" "10000 10000 10000" "spawnflags" "1" "StartDisabled" "1" "filtername" "filter_blue" "target" "spawnbot" "targetname" "teleportblubacktospawn" } logic_relay //trigger this to lose { "origin" "0 0 0" "targetname" "redwin_relay" "OnTrigger" "bots_win_red,RoundWin,,0,-1" "OnTrigger" "pit_explosion_wav,PlaySound,,0,-1" //map dependent "OnTrigger" "failuresound,PlaySound,,0,-1" //map dependent } game_round_win //do not interact with this { "origin" "0 0 0" "TeamNum" "2" "targetname" "bots_win_red" "switch_teams" "0" "force_map_reset" "1" "classname" "game_round_win" } ambient_generic { "targetname" "failuresound" "health" "10" "message" "vo/announcer_failure.mp3" "pitch" "100" "pitchstart" "100" "radius" "20000" "spawnflags" "49" "origin" "0 0 0" } tf_point_nav_interface { "targetname" "nav_refresh" } func_regenerate { "targetname" "regenerate" "associatedmodel" "locker_model" "TeamNum" "3" "mins" "-10000 -10000 -10000" "maxs" "10000 10000 10000" "origin" "0 0 0" } prop_dynamic { "targetname" "locker_model" "model" "models/props_gameplay/resupply_locker.mdl" "solid" "0" "rendermode" "10" "renderfx" "6" "angles" "0 0 0" "origin" "0 0 -1000" "disablebonefollowers" "1" "disableshadows" "1" } $filter_sendprop { "targetname" "filter_setup" "$name" "m_iRoundState" "$value" "10" "onpass" "tf_weapon_medigun,$setprop$m_flChargeLevel,1,0,-1" "onpass" "tf_weapon_medigun,$setprop$m_bHolstered,1,0,-1" } } textualtimer { NoFixup 1 OnSpawnOutput { Param 9 // change the value for minutes Target minutehand Action SetValue } OnSpawnOutput { Param 60 // change the value for seconds Target secondhand Action SetValue } logic_relay { "targetname" "loserelay" "startdisabled" "1" "ontrigger" "bots_win_red,RoundWin,,2,-1" "ontrigger" "realtimer,cancelpending,,2,-1" "ontrigger" "fader,Fade,,2,-1" "ontrigger" "@f@filter_blue@player,speakresponseconcept,TLK_PLAYER_JEERS,0.5,-1" "ontrigger" "@f@filter_red@player,speakresponseconcept,TLK_PLAYER_CHEERS,0.5,-1" "ontrigger" "@f@filter_red@player,speakresponseconcept,TLK_PLAYER_POSITIVE,4,-1" "ontrigger" "@f@filter_red@player,$addcond,40,0,-1" "onspawn" "wave_start_*,addoutput,ontrigger realtimer:trigger::0:-1,0,-1" "onspawn" "wave_finish*,addoutput,ontrigger realtimer:cancelpending::0:-1,0,-1" "onspawn" "wave_finish*,addoutput,ontrigger loserelay:cancelpending::0:-1,0,-1" } logic_relay { "targetname" "lose_by_supports" "spawnflags" "2" "ontrigger" "bots_win_red,RoundWin,,2,-1" "ontrigger" "realtimer,cancelpending,,2,-1" "ontrigger" "fader,Fade,,2,-1" "ontrigger" "@f@filter_blue@player,speakresponseconcept,TLK_PLAYER_JEERS,0.5,-1" "ontrigger" "@f@filter_red@player,speakresponseconcept,TLK_PLAYER_CHEERS,0.5,-1" "ontrigger" "@f@filter_red@player,speakresponseconcept,TLK_PLAYER_POSITIVE,4,-1" "ontrigger" "@f@filter_red@player,$addcond,40,0,-1" } math_counter { "targetname" "minutehand" "max" "9999" "outvalue" "timerformat,$setkey$case01,,0,-1" "onhitmin" "loserelay,enable,,1,-1" } math_counter { "targetname" "secondhand" "max" "60" "outvalue" "timerformat,$setkey$case02,,0,-1" "outvalue" "zerocompare,setvaluecompare,,0,-1" "onhitmin" "loserelay,trigger,,0,-1" "onhitmin" "!self,setvalue,60,1,-1" "onhitmin" "minutehand,subtract,1,1,-1" } logic_compare { "targetname" "zerocompare" "comparevalue" "9" "onequalto" "timerformat,$setkey$case16,%:0%,0,-1" "ongreaterthan" "timerformat,$setkey$case16,%:%,0,-1" } logic_case { "targetname" "timerformat" "case16" "%:%" "ondefault" "timertext,$setkey$message,,0,-1" "ondefault" "timertext,display,0,0,-1" } game_text { "targetname" "timertext" "color" "65 155 255" "holdtime" "2" "spawnflags" "1" "x" "0.8" "y" "0.19" } logic_relay { "targetname" "realtimer" "spawnflags" "2" "ontrigger" "timerformat,$format,,0.01,-1" "ontrigger" "secondhand,subtract,1,0,-1" "ontrigger" "!self,trigger,,1,-1" } logic_relay { "targetname" "warn_relay" "OnTrigger" "ambient1,StopSound,,0,-1" "OnTrigger" "ambient2,PlaySound,,0,-1" "OnTrigger" "shakeit2,StartShake,,0,-1" "OnTrigger" "player,$displaytextcenter,One minute remaining!,0,-1" } logic_relay { "targetname" "warn_relay2" "OnTrigger" "timertext,AddOutput,color 167 35 35,0,-1" } env_fade { "targetname" "fader" "duration" "1" "holdtime" "10" "renderamt" "100" "rendercolor" "164 0 0" "spawnflags" "0" } } Barriers { NoFixup 1 prop_dynamic { "angles" "0 0 0" "fademindist" "-1" "fadescale" "1" "MaxAnimTime" "10" "MinAnimTime" "5" "model" "models/props_urban/urban_shipping_container02.mdl" "modelscale" "1.0" "renderamt" "255" "rendercolor" "255 255 255" "skin" "1" "solid" "0" "targetname" "spawnbarrierA" "origin" "-352 3572 148.225" } func_forcefield { "disablereceiveshadows" "0" "origin" "-352 3576 429.99" "renderamt" "255" "rendercolor" "255 255 255" "renderfx" "0" "rendermode" "10" "TeamNum" "2" "targetname" "spawnbarrierA1" "mins" "-208 -64 -524" "maxs" "208 64 524" "StartDisabled" "0" } prop_dynamic { "angles" "0 0 0" "fademindist" "-1" "fadescale" "1" "MaxAnimTime" "10" "MinAnimTime" "5" "model" "models/props_urban/urban_shipping_container02.mdl" "modelscale" "1.0" "renderamt" "255" "rendercolor" "255 255 255" "skin" "1" "solid" "0" "targetname" "spawnbarrierB" "origin" "-868 3632 128" } func_forcefield { "disablereceiveshadows" "0" "origin" "-932 3640 463.88" "renderamt" "255" "rendercolor" "255 255 255" "renderfx" "0" "rendermode" "10" "TeamNum" "2" "targetname" "spawnbarrierB1" "mins" "-380 -72 -524" "maxs" "380 72 524" "StartDisabled" "0" } prop_dynamic { "angles" "0 0 0" "fademindist" "-1" "fadescale" "1" "MaxAnimTime" "10" "MinAnimTime" "5" "model" "models/props_urban/urban_shipping_container02.mdl" "modelscale" "1.0" "renderamt" "255" "rendercolor" "255 255 255" "skin" "1" "solid" "0" "targetname" "spawnbarrierC" "origin" "-1973.77 3541.33 0" } func_forcefield { "disablereceiveshadows" "0" "origin" "-2048 3540 367.88" "renderamt" "255" "rendercolor" "255 255 255" "renderfx" "0" "rendermode" "10" "TeamNum" "2" "targetname" "spawnbarrierC1" "mins" "-160 -244 -368" "maxs" "160 244 368" "StartDisabled" "0" } } station { NoFixup 1 prop_dynamic //upgrade station { "targetname" "upgradestation" "angles" "0 0 0" "DisableBoneFollowers" "0" "disablereceiveshadows" "0" "disableshadows" "1" "lightingorigin" "me" "ExplodeDamage" "0" "ExplodeRadius" "0" "fademaxdist" "0" "fademindist" "-1" "fadescale" "1" "MaxAnimTime" "10" "maxdxlevel" "0" "MinAnimTime" "5" "mindxlevel" "0" "model" "models/props_mvm/mvm_upgrade_blu.mdl" "modelscale" "1" "PerformanceMode" "0" "pressuredelay" "0" "RandomAnimation" "0" "renderamt" "255" "renderfx" "0" "rendermode" "0" "SetBodyGroup" "0" "skin" "0" "solid" "0" "spawnflags" "0" "origin" "0 0 0" } func_upgradestation { "mins" "-105 -100 0" "maxs" "105 100 242" "parentname" "upgradestation" } prop_dynamic { "targetname" "shopcollision" "angles" "0 -90 0" "DisableBoneFollowers" "1" "disablereceiveshadows" "1" "model" "models/props_vehicles/train_flatcar_container.mdl" "disableshadows" "1" "ExplodeDamage" "0" "ExplodeRadius" "0" "fademaxdist" "0" "fademindist" "-1" "fadescale" "1" "MaxAnimTime" "10" "maxdxlevel" "0" "MinAnimTime" "5" "mindxlevel" "0" "modelscale" "1" "PerformanceMode" "0" "pressuredelay" "0" "RandomAnimation" "0" "renderamt" "0" "renderfx" "0" "rendermode" "10" "SetBodyGroup" "0" "skin" "0" "CollisionGroup" "5" "solid" "6" "spawnflags" "0" "StartDisabled" "0" "origin" "0 0 0" } } UpgradeStationAlt { OnSpawnOutput { Target "shop_pivot" Action "$SetLocalAngles" Param "0 180 0" //Use this to rotate the shop, preserves model orientations Delay 0.1 } info_target { "targetname" "shop_pivot" "angles" "0 0 0" } env_sprite //sprite to show its a upgrade station { "disablereceiveshadows" "0" "framerate" "1" "GlowProxySize" "1" "model" "sprites/upgrades_blue.vmt" //if you want a red upgrade station use "upgrades_red.vmt" instead "scale" "0.25" "spawnflags" "1" "targetname" "shop_particle" "origin" "10 -1 71" } func_upgradestation { "mins" "-100 -100 0" "maxs" "100 100 200" "solid" "0" "targetname" "shop_upgrade" } func_door //very bad way of doing collisions { "mins" "-60 -60 0" "maxs" "60 60 48" "targetname" "shop_collision" } //All props below can be changed/removed to suit whatever you need. prop_dynamic { "classname" "prop_dynamic" "angles" "0 0 0" "parentname" "shop_pivot" "disableshadows" "1" "model" "models/props_spytech/work_table001.mdl" "targetname" "shop_desk" "lightingorigin" "me" "origin" "0 0 0" } prop_dynamic { "classname" "prop_dynamic" "angles" "0 255 90" "parentname" "shop_pivot" "disableshadows" "1" "model" "models/weapons/w_models/w_shotgun.mdl" "targetname" "shop_wep_4" "lightingorigin" "me" "origin" "-5.8437 45.0474 39" } prop_dynamic { "classname" "prop_dynamic" "angles" "0 90 -90" "parentname" "shop_pivot" "disableshadows" "1" "model" "models/weapons/w_models/w_revolver.mdl" "targetname" "shop_wep_3" "lightingorigin" "me" "origin" "19 -38 39" } prop_dynamic { "classname" "prop_dynamic" "angles" "0 0 0" "parentname" "shop_pivot" "disableshadows" "1" "skin" "1" "model" "models/weapons/w_models/w_toolbox.mdl" "targetname" "shop_wep_2" "lightingorigin" "me" "origin" "-13 -7 38" } prop_dynamic { "classname" "prop_dynamic" "angles" "0 270 90" "parentname" "shop_pivot" "disableshadows" "1" "skin" "1" "model" "models/workshop/weapons/c_models/c_spikewrench/c_spikewrench.mdl" "targetname" "shop_wep_1" "lightingorigin" "me" "origin" "3 -35 39" } } tutorial { NoFixup 1 OnSpawnOutput { Target "tutorial_relay" Action Trigger Delay 4 } logic_relay { "spawnflags" "2" "targetname" "tutorial_relay" "OnTrigger" "signchat0,Show,,0,-1" "OnTrigger" "signchat1,Show,,4,-1" "OnTrigger" "signchat2,Show,,8,-1" "OnTrigger" "signchat3,Show,,12,-1" "OnTrigger" "!self,Trigger,,16,-1" } training_annotation { "targetname" "signchat0" "display_text" "Only your AI teammates can deploy the bomb!" "lifetime" "4" "origin" "-1848 4528 6.67174" } training_annotation { "targetname" "signchat1" "display_text" "Use your taunt key to upgrade the bomb and receive powerful buffs!" "lifetime" "4" "origin" "-1848 4528 6.67174" } training_annotation { "targetname" "signchat2" "display_text" "Press 'L' to drop the bomb." "lifetime" "4" "origin" "-1848 4528 6.67174" } training_annotation { "targetname" "signchat3" "display_text" "Losing all your blue support will fail the wave." "lifetime" "4" "origin" "-1848 4528 6.67174" } training_annotation { "targetname" "signchat5" "display_text" "Protect your blue robots!" "lifetime" "16" "origin" "-267 4751 -78" } training_annotation { "targetname" "signchat6" "display_text" "Protect your blue giants!" "lifetime" "16" "origin" "-267 4751 -78" } } ambience { NoFixup 1 ambient_generic { "targetname" "ambient1" "origin" "440 48 128" "volstart" "0" "spinup" "0" "spindown" "0" "spawnflags" "1" "radius" "999999" "preset" "0" "pitchstart" "100" "pitch" "100" "message" "#ambient/wind_gust1.wav" "lfotype" "0" "lforate" "0" "lfomodvol" "0" "lfomodpitch" "0" "health" "10" "fadeoutsecs" "0" "fadeinsecs" "0" "cspinup" "0" } ambient_generic { "targetname" "ambient2" "origin" "440 48 128" "volstart" "0" "spinup" "0" "spindown" "0" "spawnflags" "17" "radius" "999999" "preset" "0" "pitchstart" "100" "pitch" "100" "message" "#ambient/alarms/city_siren_loop2.wav" "lfotype" "0" "lforate" "0" "lfomodvol" "0" "lfomodpitch" "0" "health" "10" "fadeoutsecs" "0" "fadeinsecs" "0" "cspinup" "0" } } boost { NoFixup 1 trigger_add_tf_player_condition { "targetname" "booster" "condition" "32" "duration" "8" "filtername" "filter_blue" "startdisabled" "1" "origin" "-256 4256 416" "mins" "-1024 -736 -608" "maxs" "1024 736 608" "spawnflags" "1" } trigger_add_tf_player_condition { "targetname" "booster" "condition" "32" "duration" "8" "filtername" "filter_blue" "startdisabled" "1" "origin" "-2352 4160 416" "mins" "-688 -832 -608" "maxs" "688 832 608" "spawnflags" "1" } env_hudhint { "targetname" "hudhint" "message" "Escort your friendly robots to the hatch!" "spawnflags" "1" } logic_relay { "targetname" "hudhintloop" "OnSpawn" "!self,Trigger,,1,-1" "OnTrigger" "hudhint,ShowHudHint,,0,-1" "OnTrigger" "hudhint,HideHudHint,,10,-1" "OnTrigger" "hudhintloop2,Trigger,,10.01,-1" } logic_relay { "targetname" "hudhintloop2" "OnTrigger" "hudhintloop,Trigger,,0,-1" } logic_relay { "targetname" "boost_relay" "OnTrigger" "booster,Enable,,0,-1" "OnTrigger" "bigguy,$ChangeAttributes,go,0,-1" } // func_respawnflag // { // "origin" "1688 5248 -200" // "mins" "-615 -2624 -488" // "maxs" "615 2624 488" // } } spawnsentry { NoFixup 1 obj_sentrygun { "targetname" "turret1" "origin" "0 0 0" "teamnum" "2" "spawnflags" "10" "SolidToPlayer" "0" "defaultupgrade" "1" "modelscale" "1" "$cannotbesapped" "1" } OnSpawnOutput { Target "turret1" Action "sethealth" Param 9999 } OnSpawnOutput { Target "turret1" Action "$setmodeloverride" Param "models/buildables/sentry2_uber.mdl" } } antispawncamp { NoFixup 1 OnSpawnOutput { Target ubersentry Action $setmodeloverride Param "models/buildables/sentry1_uber.mdl" Delay 0.01 } // obj_sentrygun // { // "targetname" "ubersentry" // "origin" "-1180 3628 129" // "angles" "0 0 0" // "teamnum" "3" // "SolidToPlayer" "1" // "spawnflags" "10" // "$ignoredbybots" "1" // } obj_sentrygun { "targetname" "ubersentry" "origin" "-2016 3268 162" "angles" "0 0 -30" "teamnum" "3" "SolidToPlayer" "1" "spawnflags" "10" "$ignoredbybots" "1" } obj_sentrygun { "targetname" "ubersentry" "origin" "-78 3550 154" "angles" "0 0 0" "teamnum" "3" "SolidToPlayer" "1" "spawnflags" "10" "$ignoredbybots" "1" } obj_dispenser { "targetname" "spawndispenser" "origin" "-103 3695 289" "angles" "5 179 0" "teamnum" "3" "$radiusmult" "3" "$ratemult" "2" "SolidToPlayer" "1" "defaultupgrade" "2" "spawnflags" "8" } } hatchblocker //hatch prop & collision { NoFixup 1 func_forcefield { "disablereceiveshadows" "0" "origin" "-117 -2484 17" "renderamt" "255" "rendercolor" "255 255 255" "renderfx" "0" "rendermode" "10" "TeamNum" "2" "targetname" "hatchcovercollision" "parentname" "hatchcover" "mins" "-128 -128 -128" "maxs" "128 128 128" "StartDisabled" "0" } NoFixup 1 prop_dynamic { "targetname" "hatchcover" "angles" "0 0 0" "DisableBoneFollowers" "1" "disablereceiveshadows" "1" "model" "models/hatch_shield.mdl" "disableshadows" "1" "ExplodeDamage" "0" "ExplodeRadius" "0" "fademaxdist" "0" "fademindist" "-1" "fadescale" "1" "MaxAnimTime" "10" "maxdxlevel" "0" "MinAnimTime" "5" "mindxlevel" "0" "modelscale" "1.0" "PerformanceMode" "0" "pressuredelay" "0" "RandomAnimation" "0" "renderamt" "100" "rendercolor" "255 255 255" "renderfx" "0" "rendermode" "0" "SetBodyGroup" "0" "CollisionGroup" "1" "skin" "0" "solid" "0" "spawnflags" "0" "StartDisabled" "0" "origin" "-117 -2484 17" } } hatchunblocker { NoFixup 1 logic_relay { "targetname" "unblockhatch" "OnTrigger" "hatchcover*,Disable,,0,-1" "OnTrigger" "func_capturezone,Enable,,0,-1" "OnTrigger" "hatchopen,Show,,0,-1" // "OnTrigger" "thirdperson,Enable,,0,-1" } training_annotation { "targetname" "hatchopen" "display_text" "The hatch barrier has been disabled!" "lifetime" "5" "origin" "-117 -2484 17" } } forcefields { NoFixUp 1 ambient_generic // Forcefield goes poof! Gone! { "health" "10" "message" "ambient/energy/weld2.wav" "spawnflags" "17" "radius" "9999" "targetname" "hatchforcefieldpoof" } logic_relay { "targetname" "disable_forcefield_one" "OnTrigger" "forcefieldpoof,PlaySound,,0,-1" "OnTrigger" "forcefield_front,Disable,,0,-1" } logic_relay { "targetname" "disable_forcefield_two" "OnTrigger" "forcefieldpoof,PlaySound,,0,-1" "OnTrigger" "forcefield_mid,Disable,,0,-1" } prop_dynamic { "targetname" "forcefield_front" "model" "models/props_mvm/reversemvm_redwall.mdl" "angles" "0 0 0" "modelscale" "2" "solid" "0" "origin" "-1208 1564 98" } prop_dynamic { "targetname" "forcefield_front" "model" "models/props_mvm/reversemvm_redwall.mdl" "angles" "0 0 0" "modelscale" "2" "solid" "0" "origin" "-128 1564 98" } func_forcefield { "targetname" "forcefield_front" "origin" "-960 1520 140" "teamnum" "2" "mins" "-2032 -40 -396" "maxs" "2032 40 396" } func_nobuild { "targetname" "forcefield_front" "origin" "-960 1520 140" "mins" "-2032 -40 -396" "maxs" "2032 40 396" } prop_dynamic { "targetname" "forcefield_mid" "model" "models/props_mvm/reversemvm_redwall.mdl" "angles" "0 0 0" "modelscale" "2" "solid" "0" "origin" "-616 -504 42" } prop_dynamic { "targetname" "forcefield_mid" "model" "models/props_mvm/reversemvm_redwall.mdl" "angles" "0 0 0" "modelscale" "2" "solid" "0" "origin" "392 -504 42" } func_forcefield { "targetname" "forcefield_mid" "origin" "0 -532 84.02" "teamnum" "2" "mins" "-1200 -20 -219" "maxs" "1200 20 219" } func_nobuild { "targetname" "forcefield_mid" "origin" "0 -532 84.02" "mins" "-1200 -20 -219" "maxs" "1200 20 219" } } givename { OnSpawnOutput { Target !activator Action AddOutput Param "targetname namedbot" } OnParentKilledOutput { Target !activator Action AddOutput Param "targetname " } } MeleePullout // big thanks to royal for making this tech. { OnSpawnOutput { Target "!activator" Action "AddOutput" Param "targetname bigguy" Delay 0.1 } OnParentKilledOutput { Target "!activator" Action "AddOutput" Param "targetname " Delay 0 } $filter_sendprop { "targetname" "filter_notspy" "$name" "m_iClass" "Negated" "1" "$value" "8" } filter_multi { "targetname" "filter_melee_pullout_main" "Negated" "0" "FilterType" "0" "Filter01" "filter_blue" "Filter02" "filter_notspy" } //sucker punches you out of his way if you attempt to bodyblock like a boss //doesn't trigger against spies so as to make their job not aid trigger_multiple { "targetname" "melee_pullout_range" "origin" "0 0 0" "mins" "-100.0 -100.0 -100.0" "maxs" "100.0 100.0 100.0" "spawnflags" "1" "filtername" "filter_melee_pullout_main" "OnStartTouch" "bigguy,$WeaponSwitchSlot,2,0,-1" "OnStartTouch" "bigguy,$AddPlayerAttribute,disable weapon switch|1,0.01,-1" "OnStartTouch" "bigguy,$RemovePlayerAttribute,disable weapon switch,0.4,-1" "OnStartTouch" "bigguy,$WeaponSwitchSlot,1,0.41,-1" "OnStartTouch" "!self,Disable,1,0.42,-1" "OnStartTouch" "!self,Enable,1,1.42,-1" } } shakers { NoFixup 1 env_shake { "amplitude" "200" "frequency" "160" "duration" "2" "radius" "99999" "spawnflags" "5" "targetname" "shakeit1" } NoFixup 1 env_shake { "amplitude" "128" "frequency" "80" "duration" "1" "radius" "99999" "spawnflags" "5" "targetname" "shakeit2" } } misc_stuff { NoFixUp 1 logic_relay { "targetname" "red_tank_deploy_relay" "OnTrigger" "redwin_relay,Trigger,,0,-1" "OnTrigger" "tankbossred,Ignite,,0,-1" "OnTrigger" "player,igniteplayer,,0,1" "OnTrigger" "obj_dispenser,RemoveHealth,5000,0.25,-1" "OnTrigger" "obj_sentrygun,RemoveHealth,5000,0.25,-1" "OnTrigger" "obj_teleporter,RemoveHealth,5000,0.25,-1" "OnTrigger" "punch,ViewPunch,,0,-1" "OnTrigger" "ded,Enable,,0.5,-1" "OnTrigger" "explode1,Start,,0,-1" "OnTrigger" "explode2,Start,,0,-1" "OnTrigger" "boom,PlaySound,,0,-1" } trigger_hurt { "targetname" "ded" "origin" "0 0 0" "angles" "-45 -90 0" "mins" "-8000 -8000 -1000" "maxs" "8000 8000 1000" "nodmgforce" "0" "damagetype" "1048576" "damagemodel" "0" "damagecap" "0" "damage" "9999999999" "StartDisabled" "1" "spawnflags" "64" } env_viewpunch { "punchangle" "-90 0 0" "radius" "9999" "spawnflags" "3" "targetname" "punch" "origin" "-160 864 -204" } info_particle_system { "angles" "0 0 0" "effect_name" "fluidSmokeExpl_ring_mvm" "targetname" "explode1" "origin" "-1688 3400 -60.0399" } info_particle_system { "angles" "0 0 0" "effect_name" "cinefx_goldrush" "targetname" "explode2" "origin" "-1648 3400 -60.0399" } ambient_generic { "targetname" "boom" "origin" "-1648 3400 -60.0399" "volstart" "0" "spinup" "0" "spindown" "0" "spawnflags" "33" "radius" "9999" "preset" "0" "pitchstart" "100" "pitch" "100" "message" "ambient/explosions/explode_9.wav" "health" "10" } ambient_generic { "targetname" "carrier_hum" "origin" "-268 5224 274" "health" "10" "message" "mvm/mvm_mothership_loop.wav" "radius" "6000" } info_target { "angles" "0 0 0" "targetname" "me" "origin" "636 -2536 239.793" } logic_relay { "targetname" "tank_break" "OnTrigger" "cade1,Kill,,0,-1" "OnTrigger" "barrels1,Kill,,0,-1" "OnTrigger" "asplode_sparks,Start,,0,-1" "OnTrigger" "asplode_fx_particles,Start,,0,-1" "OnTrigger" "shakeit1,StartShake,,0,-1" "OnTrigger" "tank_bust_sound,PlaySound,,0,-1" "OnTrigger" "nav_refresh,RecomputeBlockers,,1,-1" "OnTrigger" "nav_refresh,RecomputeBlockers,,2,-1" } trigger_push { "alternateticksfix" "0" "filtername" "filter_blubot" "origin" "80 4208 132" "pushdir" "0 180 0" "spawnflags" "1" "speed" "512" "mins" "-208 -160 -188" "maxs" "208 160 188" "StartDisabled" "0" "targetname" "pusher" } } Tankround_Stalematent // stolen from legerdmain - castle crush { NoFixup 1 logic_relay { "targetname" "stalemate_buster" "OnTrigger" "tankboss,Setspeed,80,0,-1" } logic_relay // warp bomb to tank { "targetname" "boss_dead_bombwarp" OnTrigger "bomb_warp_burhsg,Enable,,0,-1" } trigger_teleport { targetname bomb_warp_burhsg spawnflags 1 target warp_target filtername bossfilter origin "-267 4751 -78" "mins" "-192 -192 -192" "maxs" "192 192 192" } filter_tf_bot_has_tag { targetname bossfilter tags swooce require_all_tags 1 Negated "Allow entities that match criteria" } logic_timer { RefireTime 150 "OnTimer" "stalemate_buster,Trigger,,0,-1" "OnTimer" "!self,Disable,,0,-1" } } TankWarp { NoFixup 1 KeepAlive 1 info_target { "targetname" "warp_target" "origin" "0 0 48" } } tankbarrier { NoFixUp 1 prop_dynamic { "angles" "0 90 0" "fademindist" "-1" "fadescale" "1" "MaxAnimTime" "10" "MinAnimTime" "5" "model" "models/props_medieval/tank_entrance_rottenburg_intact.mdl" "modelscale" "1.0" "renderamt" "255" "rendercolor" "255 255 255" "skin" "0" "solid" "6" "targetname" "cade1" "origin" "-640 1352 -8" } prop_dynamic { "angles" "0 180 0" "DisableBoneFollowers" "1" "disablereceiveshadows" "0" "disableshadows" "0" "ExplodeDamage" "0" "ExplodeRadius" "0" "fademaxdist" "0" "fademindist" "-1" "fadescale" "1" "MaxAnimTime" "10" "maxdxlevel" "0" "MinAnimTime" "5" "mindxlevel" "0" "model" "models/props_hydro/water_barrel_cluster3.mdl" "modelscale" "1.0" "PerformanceMode" "0" "pressuredelay" "0" "RandomAnimation" "0" "renderamt" "255" "rendercolor" "255 255 255" "renderfx" "0" "rendermode" "0" "SetBodyGroup" "0" "skin" "0" "solid" "6" "spawnflags" "0" "StartDisabled" "0" "targetname" "barrels1" "origin" "-680 1456 0.25" } prop_dynamic { "angles" "0 180 0" "DisableBoneFollowers" "1" "disablereceiveshadows" "0" "disableshadows" "0" "ExplodeDamage" "0" "ExplodeRadius" "0" "fademaxdist" "0" "fademindist" "-1" "fadescale" "1" "MaxAnimTime" "10" "maxdxlevel" "0" "MinAnimTime" "5" "mindxlevel" "0" "model" "models/props_hydro/water_barrel_cluster3.mdl" "modelscale" "1.0" "PerformanceMode" "0" "pressuredelay" "0" "RandomAnimation" "0" "renderamt" "255" "rendercolor" "255 255 255" "renderfx" "0" "rendermode" "0" "SetBodyGroup" "0" "skin" "0" "solid" "6" "spawnflags" "0" "StartDisabled" "0" "targetname" "barrels1" "origin" "-680 1384 0.25" } prop_dynamic { "angles" "0 180 0" "DisableBoneFollowers" "1" "disablereceiveshadows" "0" "disableshadows" "0" "ExplodeDamage" "0" "ExplodeRadius" "0" "fademaxdist" "0" "fademindist" "-1" "fadescale" "1" "MaxAnimTime" "10" "maxdxlevel" "0" "MinAnimTime" "5" "mindxlevel" "0" "model" "models/props_hydro/water_barrel_cluster3.mdl" "modelscale" "1.0" "PerformanceMode" "0" "pressuredelay" "0" "RandomAnimation" "0" "renderamt" "255" "rendercolor" "255 255 255" "renderfx" "0" "rendermode" "0" "SetBodyGroup" "0" "skin" "0" "solid" "6" "spawnflags" "0" "StartDisabled" "0" "targetname" "barrels1" "origin" "-680 1312 0.25" } ambient_generic { "cspinup" "0" "fadeinsecs" "0" "fadeoutsecs" "0" "health" "10" "lfomodpitch" "0" "lfomodvol" "0" "lforate" "0" "lfotype" "0" "message" "MVM.TankSmash" "pitch" "100" "pitchstart" "100" "preset" "0" "radius" "1250" "spawnflags" "49" "spindown" "0" "spinup" "0" "targetname" "tank_bust_sound" "volstart" "0" "origin" "-680 1392 9.02828" } info_particle_system { "angles" "0 0 0" "effect_name" "mvm_pow_gold_seq_firework" "targetname" "asplode_sparks" "origin" "-680 1392 9.02828" } info_particle_system { "angles" "0 380 0" "effect_name" "mvm_wood_boards_destroy" "targetname" "asplode_fx_particles" "origin" "-649.01 1364 120.849" } info_particle_system { "angles" "0 0 0" "effect_name" "asplode_hoodoo" "targetname" "asplode_fx_particles" "origin" "-708 1316 109.807" } } filters { NoFixUp 1 $filter_sendprop { "targetname" "filter_blu_alt" "$name" "m_iTeamNum" "$value" "3" } $filter_sendprop { "targetname" "filter_red_alt" "$name" "m_iTeamNum" "$value" "2" } $filter_variable { "targetname" "filter_bombcarrier" "$name" "is_bomb_carrier" "$value" "1" } $filter_variable { "targetname" "filter_notbombcarrier" "$name" "is_bomb_carrier" "$value" "0" } $filter_sendprop { "targetname" "filter_giant" "$name" "m_bIsMiniBoss" "$value" "1" } filter_multi { "targetname" "filter_player_nobomb" "filter01" "filter_blu_alt" "filter02" "filter_notbombcarrier" "negated" "0" "onpass" "bomb_nab,disable,0,0,-1" "onpass" "bomb_nab,enable,0,5,-1" "onpass" "newbomb,forcedrop,0,0,-1" } filter_activator_name { "targetname" "filter_notnewbomb" "filtername" "newbomb" "negated" "1" } filter_tf_condition { "targetname" "filter_cond51" "negated" "0" "condition" "51" } filter_tf_condition { "targetname" "filter_nocond51" "negated" "1" "condition" "51" } filter_tf_bot_has_tag { "Negated" "0" "require_all_tags" "1" "tags" "bot_blu" "targetname" "filter_blubot" } } } SpawnTemplate "corelogic" SpawnTemplate "Barriers" SpawnTemplate "hatchblocker" SpawnTemplate "hatchunblocker" SpawnTemplate "forcefields" SpawnTemplate "textualtimer" SpawnTemplate "shakers" SpawnTemplate "ambience" SpawnTemplate "misc_stuff" SpawnTemplate "filters" SpawnTemplate "boost" SpawnTemplate "tutorial" // SpawnTemplate "WizardLogic" SpawnTemplate { Name station Origin "700 4840 -128" Angles "0 180 0" } SpawnTemplate { Name station Origin "-2608 3272 0" Angles "0 90 0" } SpawnTemplate { Name UpgradeStationAlt Origin "-856.057 4772 -126.74" Angles "0 0 0" } ExtraTankPath { Name "tank_red" Node "-336 1332 73.0283" Node "-592 1332 73.0283" Node "-1384 1332 73.0283" Node "-1560 1332 73.0283" Node "-1624 1364 73.0283" Node "-1664 1412 73.0283" Node "-1664 1652 73.0283" Node "-1640 1692 73.0283" Node "-1608 1708 73.0283" Node "-1568 1716 73.0283" Node "-1152 1716 73.0283" Node "-640 1716 -62.9717" Node "-544 1716 -62.9717" Node "-504 1732 -62.9717" Node "-472 1764 -62.9717" Node "-448 1804 -62.9717" Node "-448 2044 -62.9717" Node "-456 2084 -62.9717" Node "-480 2116 -62.9717" Node "-512 2140 -62.9717" Node "-552 2148 -62.9717" Node "-1144 2148 -62.9717" Node "-1192 2156 -62.9717" Node "-1216 2172 -62.9717" Node "-1240 2204 -62.9717" Node "-1248 2260 -62.9717" Node "-1240 2404 -46.9717" Node "-1240 2732 -46.9717" Node "-1256 2856 -38.9717" Node "-1304 2944 -38.9717" Node "-1384 3048 -38.9717" Node "-1496 3152 -38.9717" Node "-1664 3408 -38.9717" } ExtraSpawnPoint { Name "spawnbot_new" TeamNum 3 X "-267" Y "4751" Z "-78" } ExtraSpawnPoint { Name "spawnbot_house" TeamNum 2 X "192" Y "2064" Z "-114.993" } ExtraSpawnPoint { Name "spawnbot_top" TeamNum 2 X "-1032" Y "1668" Z "269.007" } ExtraSpawnPoint { Name "spawnbot_mid1" TeamNum 2 X "-548" Y "1016" Z "13.0069" } ExtraSpawnPoint { Name "spawnbot_mid2" TeamNum 2 X "1380" Y "968" Z "-50.993" } ExtraSpawnPoint { Name "spawnbot_mid3" TeamNum 2 X "1140" Y "-320" Z "-50.993" } ExtraSpawnPoint { Name "spawnbot_mid4" TeamNum 2 X "980" Y " -748" Z "77.0069" } ExtraSpawnPoint { Name "spawnbot_mid5" TeamNum 2 X "696" Y "-1572" Z "13.007" } ExtraSpawnPoint { Name "spawnbot_mid6" TeamNum 2 X "-688" Y "-2088" Z "205.007" } ExtraSpawnPoint { Name "spawnbot_mid_left1" TeamNum 2 X "-1316" Y "-40" Z "141.007" } ExtraSpawnPoint { Name "spawnbot_mid_left2" TeamNum 2 X "-948" Y "-376" Z "77.0069" } ExtraSpawnPoint { Name "spawnbot_front1" TeamNum 2 X "-708" Y "-1536" Z "141" } ExtraSpawnPoint { Name "spawnbot_truck" TeamNum 2 X "-348" Y "-92" Z "-114.993" } ExtraSpawnPoint { Name "spawnbot_furnace" TeamNum 2 X "-104" Y "-2240" Z "13.0069" } ExtraSpawnPoint { Name "spawnbot_demoboss" TeamNum 2 X "-140" Y "-1176" Z "37" } Templates { T_TFBot_Red_Engineer_Uber { Name "Uber Engineer" Class Medic ClassIcon medic_uber Attributes SpawnWithFullCharge Attributes DisableDodge Skill Expert AddCond { Name "TF_COND_REPROGRAMMED" } UseCustomModel "models/player/engineer.mdl" DeathSound "=65|vo/engineer_paincrticialdeath01.mp3" UseHumanAnimations 1 ItemAttributes { ItemName "TF_WEAPON_MEDIGUN" "ubercharge rate bonus" 5 "uber duration bonus" -3 } CharacterAttributes { "voice pitch scale" 0 "gesture speed increase" 1.5 "patient overheal penalty" 0 "overheal penalty" 0 "bot medic uber deploy delay duration" 0.75 } } T_TFBot_Red_Giant_Engineer_Medic { Name "Giant Quick-Fix Engineer" Class Medic ClassIcon medic_giant Health 4500 Attributes MiniBoss Attributes IgnoreFlag Attributes DisableDodge Attributes SpawnWithFullCharge Skill Expert AddCond { Name "TF_COND_REPROGRAMMED" } UseCustomModel "models/player/engineer.mdl" DeathSound "=65|vo/engineer_paincrticialdeath03.mp3" UseHumanAnimations 1 Item "The Quick-Fix" ItemAttributes { ItemName "TF_WEAPON_SYRINGEGUN_MEDIC" "faster reload rate" 0.01 } CharacterAttributes { "move speed bonus" 0.5 "damage force reduction" 0 "airblast vulnerability multiplier" 0 "override footstep sound set" 0 "voice pitch scale" 0 "health from packs decreased" 0.01 "heal rate bonus" 200 "ammo regen" 1 "damage bonus" 1.75 "mult medigun range" 1.75 } } Engineer_Buster { Name "Sentry Buster" Class Engineer ClassIcon sentry_buster_red Health 2500 Attributes MiniBoss Attributes DisableDodge Attributes IgnoreEnemies Skill Expert WeaponRestrictions PrimaryOnly Action SuicideBomber AddCond { Name "TF_COND_REPROGRAMMED" } StripItemSlot 1 StripItemSlot 2 StripItemSlot 3 StripItemSlot 4 StripItemSlot 5 StripItemSlot 6 Item "Iron Lung" ItemAttributes { ItemName "TF_WEAPON_SHOTGUN_PRIMARY" "is invisible" 1 "gesture speed increase" 1.25 "custom kill icon" "ullapool_caber_explosion" "fire rate penalty" 200 } CharacterAttributes { "move speed bonus" 2 "damage force reduction" 0 "airblast vulnerability multiplier" 0.5 "override footstep sound set" 7 "voice pitch scale" 0 "health from packs decreased" 0.01 "cannot be backstabbed" 1 "cannot be sapped" 1 "torso scale" 0 } ItemModel { ItemName "Iron Lung" Model "models/props_lakeside_event/bomb_temp_hat.mdl" } } T_TFBot_Chief_Soldier_Ghost { Name "Sergeant Spook" Class Soldier ClassIcon soldier_libertylauncher_homing Scale 1.9 Health 20000 Attributes MiniBoss Attributes IgnoreFlag Attributes HoldFireUntilFullReload Attributes UseBossHealthBar Skill Expert // WeaponRestrictions PrimaryOnly NoIdleSound 1 StripItemSlot 1 MaxVisionRange 1000 AddCond { Name "TF_COND_REPROGRAMMED" } SpawnTemplate "MeleePullout" RocketCustomModel "models/props_halloween/ghost.mdl" RocketCustomParticle "yikes_text" Item "Rocket Jumper" Item "The Market Gardener" Item "Poopy Doe" Item "Aerobatics Demonstrator" Item "Zombie Soldier" ItemAttributes { ItemName "Rocket Jumper" //"apply z velocity on damage" 250 "damage penalty" 0.5 // "damage causes airblast" 1 "add cond on hit" 30 "fire rate bonus" 0.25 "clip size upgrade atomic" 3 "rocket specialist" 4 "faster reload rate" 2 "mod stun waist high airborne" 2 "projectile spread angle penalty" 25 "dmg bonus vs buildings" 3 "self dmg push force decreased" 0 "no self effect" 1 } ItemAttributes { ItemName "The Market Gardener" "damage bonus" 1.75 "fire rate bonus" 0.4 "melee cleave attack" 1 "apply z velocity on damage" 2000 "apply look velocity on damage" 3000 "damage causes airblast" 1 "melee airblast" 1 // trolling } CharacterAttributes { "move speed bonus" 0.5 "damage force reduction" 0 "airblast vulnerability multiplier" 0 "airblast vertical vulnerability multiplier" 0 "rage giving scale" 0.1 "override footstep sound set" 3 "single wep deploy time decreased" 0 "switch from wep deploy time decreased" 0 "voice pitch scale" 0 "cancel falling damage" 1 } HomingRockets { Enable 1 IgnoreDisguisedSpies 1 IgnoreStealthedSpies 1 RocketSpeed 0.25 TurnPower 90 MaxAimError 360 AimTime 2 } EventChangeAttributes { go { ActionOverride Mobber InterruptAction { Target "-64 -1382 28" Delay 0.1 Repeats 1 Duration 20 } } } } T_TFBot_Boss_Pirate { Name "Admiral Anchors" CLass Demoman ClassIcon demo_grapple Scale 2 Health 40000 Action Mobber Attributes MiniBoss Attributes UseBossHealthBar Attributes DisableDodge Skill Expert AddCond { Name "TF_COND_REPROGRAMMED" } ExtAttr IgnoreBuildings MaxVisionRange 1000 NoIdleSound 1 StripItemSlot 1 AimTrackingInterval 0 AimLeadProjectileSpeed 1 Item "The Loose Cannon" Item "The Ullapool Caber" Item "Cap'n Calamari" Item "Dynamite Abs" Item "Zombie Demo" Item "Pocket Villains" Item "Employee Badge A" ItemAttributes { ItemName "The Ullapool Caber" "custom item model" "models/workshop/weapons/c_models/c_scotland_shard/c_scotland_shard.mdl" "custom kill icon" "scotland_shard" "regenerate stickbomb" 1 "melee range multiplier" 1.15 "damage bonus" 2.5 } ItemAttributes { ItemName "The Loose Cannon" "grenade launcher mortar mode" 0 "damage bonus" 2 "override projectile type" 26 "fire rate penalty" 2.5 "faster reload rate" -1 "applies snare effect" 0.3 "apply look velocity on damage" 400 } CharacterAttributes { "move speed bonus" 0.5 "dmg taken from self reduced" 0.001 "voice pitch scale" 0 "damage force reduction" 0 "airblast vulnerability multiplier" 0 "single wep deploy time decreased" 0 "switch from wep deploy time decreased" 0 "health from packs decreased" 0.01 "override footstep sound set" 4 "mult stun resistance" 0 "increased air control" 100 "stomp player damage" 50 "stomp player force" 270 "stomp player time" 1 "increased jump height" 1.5 "cancel falling damage" 1 } ItemModel { ItemName "Pocket Villains" Model "models/workshop/player/items/demo/pegleg/pegleg.mdl" } ItemModel { ItemName "Employee Badge A" Model "models/player/items/demo/mighty_pirate.mdl" } WeaponSwitch { Delay 1 Cooldown 0 Repeats 1 Type "Melee" } WeaponSwitch { Delay 3 Cooldown 10 Repeats 0 IfSeeTarget 1 Type "Primary" } WeaponSwitch { Delay 6 Cooldown 10 Repeats 0 IfSeeTarget 1 Type "Melee" } FireWeapon { Delay 4 Cooldown 10 Repeats 0 IfSeeTarget 1 Type "Jump" } // FireInput // { // Target "popscript" // Action "$CreateShockwave" // Delay 1 // Cooldown 10 // Repeats 0 // } } T_TFBot_Engineer_BigBad { Class Engineer ClassIcon engineer_upgraded Scale 1 Health 60000 Attributes MiniBoss Attributes DisableDodge // Attributes AlwaysFireWeapon Attributes UseBossHealthBar Attributes AutoJump AutoJumpMin 2 AutoJumpMax 12 Action Mobber Skill Expert ExtAttr SuppressCanteenUse AddCond { Name "TF_COND_REPROGRAMMED" } MaxVisionRange 1200 FastUpdate 1 AlwaysGlow 1 UseMeleeThreatPrioritization 1 AimTrackingInterval 0.02 Item "The Frontier Justice" Item "Golden Wrench" Item "Battery Canteens" Item "Mining Light" Item "The Gold Digger" Item "EOTL_Insulated_innovator" ItemAttributes { ItemName "The Frontier Justice" "fire rate bonus" 1.25 "fire rate bonus with reduced health" 0.2 "faster reload rate" -1 "damage bonus" 2 // "critboost on kill" 4 "damage bonus bullet vs sentry target" 1.5 "item style override" 1 "turn to gold" 1 "dmg bonus vs buildings" 2 "killstreak tier" 2 } ItemAttributes { ItemName "Golden Wrench" "damage bonus" 2 "engineer sentry build rate multiplier" 100 "upgrade rate decrease" 10 "melee cleave attack" 1 "melee attack rate bonus" 0.6 } ItemAttributes { ItemName "Battery Canteens" "building instant upgrade" 1 "powerup charges" 3 "powerup max charges" 99 } CharacterAttributes { "damage force reduction" 0 "airblast vulnerability multiplier" 0 "airblast vertical vulnerability multiplier" 0 "engy sentry fire rate increased" 0.5 "engy sentry radius increased" 3 "engy building health bonus" 5 "single wep deploy time decreased" 0.01 "switch from wep deploy time decreased" 0.01 "mvm sentry ammo" 10 "ammo regen" 1 "metal regen" 200 // "increased air control" 100 "increased jump height" 1.4 "cancel falling damage" 1 "voice pitch scale" 0 "mult stun resistance" 0 "cannot be sapped" 1 } ChangeAttributes { Delay 0 Cooldown 7 IfSeeTarget 0 Repeats 0 Name "sentry" } ChangeAttributes { Delay 0 Cooldown 3 IfSeeTarget 1 Repeats 0 Name "shotgun" } EventChangeAttributes { sentry { WeaponRestrictions PDAOnly // Attributes AlwaysFireWeapon ClientCommand { Name "destroy 2; build 2" // Name of the client command, notable examples: Delay 0 Cooldown 0 IfSeeTarget 0 Repeats 0 } FireWeapon { Delay 1 Cooldown 2 Repeats 0 IfSeeTarget 0 Duration 0.1 Type "Action" } } shotgun { WeaponRestrictions PrimaryOnly } } } T_TFBot_Chief_Heatwave { Name "Captain Heatwave" Class Heavyweapons ClassIcon heavy_heat_wave_lite Scale 1.9 Health 70000 Attributes MiniBoss Attributes DisableDodge Attributes UseBossHealthBar Skill Expert Action Mobber UseCustomModel "models/bots/heavy_boss/bot_heavy_boss.mdl" Item "The Huo Long Heatmaker" Item "Fists of Steel" Item "The Bunsen Brave" Item "Siberian Tigerstripe" Item "Memes vs Machines Player 2019" ItemAttributes { ItemName "The Huo Long Heatmaker" "ring of fire while aiming" 350 "damage penalty" 1 "mod minigun can holster while spinning" 1 "attack projectiles" 2 "apply z velocity on damage" -250 } ItemAttributes { ItemName "Fists of Steel" "custom item model" "models/weapons/c_models/c_fists_of_steel_gray/c_fists_of_steel_gray.mdl" // "item color rgb" 16553728 "damage bonus" 3 "fire rate bonus" 0.6 "set damagetype ignite" 1 "attach particle effect" 13 } CharacterAttributes { "move speed bonus" 0.5 "damage force reduction" 0 "airblast vulnerability multiplier" 0 "override footstep sound set" 2 "voice pitch scale" 0 "health from packs decreased" 0.01 "cancel falling damage" 1 } ItemModel { ItemName "Memes vs Machines Player 2019" Model "models/workshop/player/items/heavy/hwn2022_road_rage/hwn2022_road_rage.mdl" } ItemColor { ItemName "Fists of Steel" Red 252 Green 131 Blue 0 } WeaponSwitch { Delay 0.1 Cooldown 1 Repeats 1 Type "Melee" } WeaponSwitch { Delay 0 Cooldown 3 Repeats 1 Type "Primary" IfHealthBelow 45000 } } RedEngiModel { UseCustomModel "models/player/engineer.mdl" UseHumanAnimations 1 Action Mobber AddCond { Name TF_COND_REPROGRAMMED } Attributes DisableDodge DeathSound "=65|vo/engineer_paincrticialdeath01.mp3" CharacterAttributes { "voice pitch scale" 0 "ammo regen" 1 "metal regen" 200 } } RedEngiModelGiant { NoIdleSound 1 DeathSound "=65|vo/engineer_paincrticialdeath03.mp3" CharacterAttributes { "health from packs decreased" 0.01 "damage force reduction" 0 } AddTemplate RedEngiModel } } Wave // Wave 1 { WaitWhenDone 65 Checkpoint Yes StartWaveOutput { Target wave_start_relay_classic Action Trigger } DoneOutput { Target wave_finished_relay Action Trigger } InitWaveOutput { Target holograms_3way_relay Action Trigger } Explanation { Line "{FC8300}You have 10 minutes to win the wave." Line "{blue}Help your robot allies deliver the bomb and destroy Engineer's factory!" Line "{FFFFFF}----------------------------------" Line "{green}Your support this wave:" Line "{blue}∞ Demoman support, 2 Giant Demoknights, 2 Giant Spies, 10 Large Shotgun Heavies." } SpawnTemplate { Name "spawnsentry" Origin "320 -2904 64" Angles "0 270 0" } SpawnTemplate { Name "spawnsentry" Origin "648 -2360 0" Angles "0 270 0" } SentryGun { HintName "nest_1" TeamNum 2 Bodygroup 1 Skin 2 Ismini 1 Health 100 } SentryGun { HintName "nest_2" TeamNum 2 Bodygroup 1 Skin 2 Ismini 1 Health 100 } SentryGun { HintName "nest_4" TeamNum 2 Bodygroup 1 Skin 2 Ismini 1 Health 100 } SentryGun { HintName "nest_5" TeamNum 2 Bodygroup 1 Skin 2 Ismini 1 Health 100 } SentryGun { HintName "nest_6" TeamNum 2 Bodygroup 1 Skin 2 Ismini 1 Health 100 } SentryGun { HintName "nest_8" TeamNum 2 Bodygroup 1 Skin 2 Ismini 1 Health 100 } WaveSpawn // Dummy { TotalCount 0 SpawnCount 0 FirstSpawnWarningSound "physics/metal/metal_grate_impact_hard3.wav" FirstSpawnOutput { Target shakeit1 Action StartShake } } WaveSpawn // Dummy { TotalCount 0 SpawnCount 0 WaitBeforeStarting 540 FirstSpawnWarningSound "vo/announcer_ends_60sec.mp3" FirstSpawnOutput { Target warn_relay Action Trigger } } WaveSpawn // Dummy { TotalCount 0 SpawnCount 0 WaitBeforeStarting 590 FirstSpawnWarningSound "vo/announcer_ends_10sec.mp3" FirstSpawnOutput { Target warn_relay2 Action Trigger } } WaveSpawn { Name "blue" Where spawnbot_new TotalCount 3 MaxActive 3 SpawnCount 1 WaitBeforeStarting 0 WaitBetweenSpawns 5 TotalCurrency 0 Support 1 TFBot { Class Demoman ClassIcon heavy_robot_nys Skill Easy AlwaysGlow 1 Action Mobber UseCustomModel "models/bots/demo/bot_demo.mdl" Tag bot_blu } } WaveSpawn { Name "blue2" Where spawnbot_new TotalCount 10 MaxActive 2 SpawnCount 1 WaitBeforeStarting 0 WaitBetweenSpawns 10 TotalCurrency 0 Support Limited StartWaveMessage "{FC8300}Now deploying: Large Shotgun Heavies x10" FirstSpawnOutput { Target signchat5 Action Show } TFBot { Name "Large Shotgun Heavy" Class Heavyweapons ClassIcon heavy_robot_nys Scale 1.5 Health 900 Skill Hard AlwaysGlow 1 Action EscortFlag WeaponRestrictions SecondaryOnly UseCustomModel "models/bots/heavy/bot_heavy.mdl" Tag bot_blu ItemAttributes { ItemName "TF_WEAPON_SHOTGUN_HWG" "faster reload rate" 0.1 "fire rate bonus" 2.5 "bullets per shot bonus" 5 "damage penalty" 0.33 } CharacterAttributes { "health regen" 1 "damage force reduction" 0.7 "airblast vulnerability multiplier" 0.7 } } } WaveSpawn { Name "blue3" WaitForAllDead "blue2" Where spawnbot_new TotalCount 2 MaxActive 1 SpawnCount 1 WaitBeforeStarting 0 WaitBetweenSpawns 4 TotalCurrency 0 Support Limited StartWaveMessage "{FC8300}Now deploying: Giant Demoknights x2" FirstSpawnOutput { Target signchat6 Action Show } TFBot { Template T_TFBot_Giant_DemoMan_PrinceTavish Attributes UseBossHealthBar AlwaysGlow 1 Action EscortFlag UseCustomModel "models/bots/demo_boss/bot_demo_boss.mdl" } } WaveSpawn { Name "blue4" WaitForAllDead "blue3" Where spawnbot_new TotalCount 2 MaxActive 1 SpawnCount 1 WaitBeforeStarting 0 WaitBetweenSpawns 4 TotalCurrency 0 Support Limited FirstSpawnMessage "{FC8300}Now deploying: Giant Spies x2" LastSpawnMessage "{FC8300}Only 1 giant remains!" DoneOutput { Target lose_by_supports Action Trigger } TFBot { Name "Giant Spy" Class Spy ClassIcon spy_revolver_lite Health 2500 Attributes MiniBoss Attributes UseBossHealthBar Skill Expert WeaponRestrictions PrimaryOnly Action FetchFlag AlwaysGlow 1 UseCustomModel "models/bots/spy/bot_spy.mdl" Item "Upgradeable TF_WEAPON_REVOLVER" ItemAttributes { ItemName "Upgradeable TF_WEAPON_REVOLVER" "damage bonus" 1.5 } CharacterAttributes { "move speed bonus" 0.8 "damage force reduction" 0 "airblast vulnerability multiplier" 0.6 "override footstep sound set" 7 "head scale" 0.7 "cannot disguise" 1 } } } WaveSpawn { Where spawnbot_furnace TotalCount 1 MaxActive 1 SpawnCount 1 WaitBeforeStarting 0 WaitBetweenSpawns 999999 TotalCurrency 0 Support 1 TFBot { Class Scout ClassIcon mini_sentry_red_nys Health 1 Name "Mini-sentries have spawned!" Attributes IgnoreFlag Scale 0.01 CharacterAttributes { "health drain" -1 } } } WaveSpawn { Name "busters" Where spawnbot_furnace TotalCount 1 MaxActive 1 SpawnCount 1 WaitBeforeStarting 20 WaitBetweenSpawnsAfterDeath 40 TotalCurrency 0 Support 1 TFBot { Template Engineer_Buster } } WaveSpawn { Name "part01" Where spawnbot_house TotalCount 3 MaxActive 3 SpawnCount 1 WaitBeforeStarting 0 WaitBetweenSpawns 12 TotalCurrency 200 RandomSpawn 1 DoneOutput { Target disable_forcefield_one Action Trigger } TFBot { Template T_TFBot_Giant_Pyro Name "Giant Engineer" AddTemplate RedEngiModelGiant CharacterAttributes { "airblast disabled" 1 } } } WaveSpawn { Name "part01" Where spawnbot_house Where spawnbot_top TotalCount 20 MaxActive 5 SpawnCount 1 WaitBeforeStarting 5 WaitBetweenSpawns 2 TotalCurrency 100 RandomSpawn 1 TFBot { Class Soldier Name "Engineer" Skill Normal AddTemplate RedEngiModel CharacterAttributes { "cancel falling damage" 1 } AddCond { Index 57 Duration 2 } } } WaveSpawn { Name "part01" where spawnbot_house where spawnbot_top TotalCount 24 MaxActive 12 SpawnCount 2 WaitBeforeStarting 20 WaitBetweenSpawns 1 TotalCurrency 100 RandomSpawn 1 TFBot { Class Heavyweapons ClassIcon heavy_urgent Name "Engyweight Champ" Item "Gloves of Running Urgently MvM" WeaponRestrictions MeleeOnly AddTemplate RedEngiModel AddCond { Index 57 Duration 2 } } } // WaveSpawn // { // Name "part02" // // WaitForAllSpawned "part01" // Where spawnbot_house // TotalCount 2 // MaxActive 2 // SpawnCount 1 // WaitBeforeStarting 60 // WaitBetweenSpawns 20 // TotalCurrency 100 // DoneOutput // { // Target disable_forcefield_one // Action Trigger // } // TFBot // { // Template T_TFBot_Giant_Soldier_Spammer // Name "Giant Rapid Fire Engineer" // AddTemplate RedEngiModelGiant // } // } WaveSpawn { Name "part02" WaitForAllDead "part01" Where spawnbot_mid1 Where spawnbot_mid2 TotalCount 30 MaxActive 10 SpawnCount 2 WaitBeforeStarting 0 WaitBetweenSpawns 2 TotalCurrency 100 TFBot { Template T_TFBot_Scout_Scattergun_SlowFire Name Engineer AddTemplate RedEngiModel } } WaveSpawn { Name "part03" WaitForAllDead "part01" Where spawnbot_mid_left1 TotalCount 2 MaxActive 2 SpawnCount 1 WaitBeforeStarting 30 WaitBetweenSpawns 10 TotalCurrency 100 DoneOutput { Target disable_forcefield_two Action Trigger } TFBot { Name "Giant Pomson Engineer" Class Engineer ClassIcon engineer_pomson Action Mobber Health 3000 Skill Expert Attributes MiniBoss Attributes DisableDodge WeaponRestrictions PrimaryOnly AddCond { Name "TF_COND_REPROGRAMMED" } Item "The Pomson 6000" Item "The Brainiac Hairpiece" ItemAttributes { Itemname "The Pomson 6000" "subtract victim cloak on hit" 0 "subtract victim medigun charge on hit" 0 "mult projectile count" 6 "projectile spread angle penalty" 2 "faster reload rate" -0.8 "damage penalty" 0.75 "fire rate penalty" 2.5 // "head scale" 0.75 } ItemAttributes { ItemName "The Brainiac Hairpiece" "item style override" 1 } CharacterAttributes { "move speed bonus" 0.5 "damage force reduction" 0 "airblast vulnerability multiplier" 0.4 "override footstep sound set" 6 "voice pitch scale" 0 "health from packs decreased" 0.01 } } } WaveSpawn { Name "part05" WaitForAllDead "part03" Where spawnbot_furnace TotalCount 2 MaxActive 2 SpawnCount 1 WaitBeforeStarting 0 WaitBetweenSpawns 10 TotalCurrency 200 DoneOutput { Target unblockhatch Action Trigger } TFBot { Template T_TFBot_Heavyweapons_Heater Name "Giant Heater Engineer" AddTemplate RedEngiModelGiant } } WaveSpawn { Name "part05" WaitForAllDead "part03" Where spawnbot_mid_left2 TotalCount 18 MaxActive 9 SpawnCount 3 WaitBeforeStarting 0 WaitBetweenSpawns 1 TotalCurrency 100 TFBot { Template T_TFBot_Pyro_FlareGun ClassIcon pyro_flare_red Name "Flare Engineer" AddTemplate RedEngiModel } } WaveSpawn { Name "infinite" WaitForAllDead "part03" Where spawnbot_front1 Where spawnbot_mid_left2 TotalCount 999 MaxActive 8 SpawnCount 1 WaitBeforeStarting 0 WaitBetweenSpawns 1 TotalCurrency 0 Support 1 RandomSpawn 1 RandomChoice { TFBot { Name "Robo-Engineer" Class Engineer Action Mobber Attributes DisableDodge Skill Normal WeaponRestrictions MeleeOnly UseCustomModel "models/bots/engineer/bot_engineer.mdl" AddCond { Name "TF_COND_REPROGRAMMED" } VoiceCommand { Delay 2 Cooldown 5 IfSeeTarget 1 Type "Battle Cry" } AddCond { Index 57 Duration 2 } } TFBot { Name "Robo-Engineer" Class Engineer Action Mobber Attributes DisableDodge Skill Normal WeaponRestrictions MeleeOnly UseCustomModel "models/bots/engineer/bot_engineer.mdl" AddCond { Name "TF_COND_REPROGRAMMED" } Item "The Southern Hospitality" VoiceCommand { Delay 2 Cooldown 5 IfSeeTarget 1 Type "Battle Cry" } AddCond { Index 57 Duration 2 } } TFBot { Name "Robo-Engineer" Class Engineer Action Mobber Attributes DisableDodge Skill Normal WeaponRestrictions MeleeOnly UseCustomModel "models/bots/engineer/bot_engineer.mdl" AddCond { Name "TF_COND_REPROGRAMMED" } Item "The Jag" VoiceCommand { Delay 2 Cooldown 5 IfSeeTarget 1 Type "Battle Cry" } AddCond { Index 57 Duration 2 } } TFBot { Name "Robo-Engineer" Class Engineer Action Mobber Attributes DisableDodge Skill Normal WeaponRestrictions MeleeOnly UseCustomModel "models/bots/engineer/bot_engineer.mdl" AddCond { Name "TF_COND_REPROGRAMMED" } Item "The Gunslinger" VoiceCommand { Delay 2 Cooldown 5 IfSeeTarget 1 Type "Battle Cry" } AddCond { Index 57 Duration 2 } } TFBot { Name "Robo-Engineer" Class Engineer Action Mobber Attributes DisableDodge Skill Normal WeaponRestrictions PrimaryOnly UseCustomModel "models/bots/engineer/bot_engineer.mdl" AddCond { Name "TF_COND_REPROGRAMMED" } VoiceCommand { Delay 2 Cooldown 5 IfSeeTarget 1 Type "Battle Cry" } AddCond { Index 57 Duration 2 } } } } WaveSpawn { Where spawnbot TotalCount 1 MaxActive 1 SpawnCount 1 WaitBeforeStarting 999999 WaitBetweenSpawns 0 TotalCurrency 0 HideIcon 1 // Hides icons from the wave bar. Should use a ClassIcon different from visible ones TFBot { Class Pyro ClassIcon hellmet_blank } } } Wave // Wave 2 { WaitWhenDone 65 Checkpoint Yes StartWaveOutput { Target wave_start_relay_classic Action Trigger } DoneOutput { Target wave_finished_relay Action Trigger } InitWaveOutput { Target holograms_3way_relay Action Trigger } Explanation { Line "{green}Your support this wave:" Line "{blue}6 Giant Crossbow Medics, 3 Giant Charged Soldiers, 5 Giant Boxing Heavies, Infinite Pyros." } SpawnTemplate "tankbarrier" SpawnTemplate { Name "spawnsentry" Origin "320 -2904 64" Angles "0 270 0" } SpawnTemplate { Name "spawnsentry" Origin "648 -2360 0" Angles "0 270 0" } SentryGun { HintName "nest_1" TeamNum 2 Level 1 } SentryGun { HintName "nest_2" TeamNum 2 Level 1 } SentryGun { HintName "nest_4" TeamNum 2 Level 1 } SentryGun { HintName "nest_5" TeamNum 2 Level 1 } SentryGun { HintName "nest_6" TeamNum 2 Level 1 } SentryGun { HintName "nest_8" TeamNum 2 Level 1 } WaveSpawn // Dummy { TotalCount 0 SpawnCount 0 FirstSpawnWarningSound "physics/metal/metal_grate_impact_hard3.wav" FirstSpawnOutput { Target shakeit1 Action StartShake } } WaveSpawn // Dummy { TotalCount 0 SpawnCount 0 WaitBeforeStarting 540 FirstSpawnWarningSound "vo/announcer_ends_60sec.mp3" FirstSpawnOutput { Target warn_relay Action Trigger } } WaveSpawn // Dummy { TotalCount 0 SpawnCount 0 WaitBeforeStarting 590 FirstSpawnWarningSound "vo/announcer_ends_10sec.mp3" FirstSpawnOutput { Target warn_relay2 Action Trigger } } WaveSpawn { Name "blu1" Where spawnbot_new TotalCount 6 MaxActive 1 SpawnCount 1 WaitBeforeStarting 0 WaitBetweenSpawns 5 TotalCurrency 0 Support Limited StartWaveMessage "{FC8300}Now deploying: Giant Crossbow Medics x6" FirstSpawnOutput { Target signchat5 Action Show } TFBot { Name "Giant Crossbow Medic" Class Medic ClassIcon medic_crossbow Health 3500 Attributes MiniBoss Attributes UseBossHealthBar Action FetchFlag Skill Expert MaxVisionRange 2000 WeaponRestrictions PrimaryOnly StripItemSlot 2 AlwaysGlow 1 UseCustomModel "models/bots/medic/bot_medic.mdl" Item "The Crusader's Crossbow" Item "Berliner's Bucket Helm" ItemAttributes { ItemName "The Crusader's Crossbow" "damage bonus" 1.5 } CharacterAttributes { "move speed bonus" 0.5 "damage force reduction" 0 "airblast vulnerability multiplier" 0.5 } } } WaveSpawn { Name "blu2" WaitForAllDead "blu1" Where spawnbot_new TotalCount 3 MaxActive 1 SpawnCount 1 WaitBeforeStarting 0 WaitBetweenSpawns 4 TotalCurrency 0 Support Limited StartWaveMessage "{FC8300}Now deploying: Giant Charged Soldiers x4" FirstSpawnOutput { Target signchat6 Action Show } TFBot { Template T_TFBot_Giant_Soldier_Crit Attributes UseBossHealthBar UseCustomModel "models/bots/soldier_boss/bot_soldier_boss.mdl" } } WaveSpawn { Name "blu3" WaitForAllDead "blu2" Where spawnbot_new TotalCount 5 MaxActive 1 SpawnCount 1 WaitBeforeStarting 0 WaitBetweenSpawns 4 TotalCurrency 0 Support Limited StartWaveMessage "{FC8300}Now deploying: Giant Boxing Heavies x5" LastSpawnMessage "{FC8300}Only 1 giant remains!" DoneWarningSound "npc/attack_helicopter/aheli_megabomb_siren1.wav" DoneOutput { Target lose_by_supports Action Trigger } TFBot { Template T_TFBot_Giant_Boxing_Heavy Attributes UseBossHealthBar Attributes SpawnWithFullCharge AlwaysGlow 1 UseCustomModel "models/bots/heavy_boss/bot_heavy_boss.mdl" Item "The Concheror" CharacterAttributes { "increase buff duration" 9 "deploy time decreased" 0.5 } } } WaveSpawn { Name "bluinf" Where spawnbot_new TotalCount 999 MaxActive 5 SpawnCount 1 WaitBeforeStarting 0 WaitBetweenSpawns 1 TotalCurrency 0 Support 1 TFBot { Class Pyro ClassIcon heavy_robot_nys Skill Normal Action Mobber AlwaysGlow 1 UseCustomModel "models/bots/pyro/bot_pyro.mdl" } } WaveSpawn { Name "busters" Where spawnbot_furnace TotalCount 1 MaxActive 1 SpawnCount 1 WaitBeforeStarting 20 WaitBetweenSpawnsAfterDeath 40 TotalCurrency 0 Support 1 TFBot { Template Engineer_Buster } } WaveSpawn { Where spawnbot_furnace TotalCount 1 MaxActive 1 SpawnCount 1 WaitBeforeStarting 0 WaitBetweenSpawns 999999 TotalCurrency 0 Support 1 TFBot { Class Scout ClassIcon sentry_gun_red_nys Health 1 Name "Level 1 sentries have spawned!" Attributes IgnoreFlag Scale 0.01 CharacterAttributes { "health drain" -1 } } } WaveSpawn { Name "part01" Where spawnbot_mid_left1 TotalCount 2 MaxActive 2 SpawnCount 2 WaitBeforeStarting 0 WaitBetweenSpawns 0 TotalCurrency 100 DoneOutput { Target disable_forcefield_one Action Trigger } Squad { TFBot { Template T_TFBot_Giant_Heavyweapons_Improved ClassIcon heavy_giant Name "Giant EngyWeapons" AddTemplate RedEngiModelGiant } TFBot { Template T_TFBot_Red_Giant_Engineer_Medic } } } WaveSpawn { Name "part02" Where spawnbot_house Where spawnbot_top TotalCount 25 MaxActive 5 SpawnCount 1 WaitBeforeStarting 0 WaitBetweenSpawns 1 TotalCurrency 100 RandomSpawn 1 TFBot { Class Engineer ClassIcon heavy_shotgun_red Skill Hard Action Mobber Attributes DisableDodge WeaponRestrictions PrimaryOnly ItemAttributes { ItemName "tf_weapon_shotgun_primary" "faster reload rate" 0.1 "fire rate bonus" 2.5 "bullets per shot bonus" 3 "damage bonus" 0.33 } AddCond { Name "TF_COND_REPROGRAMMED" } AddCond { Index 57 Duration 2 } } } WaveSpawn { Name "part02" WaitForAllDead "part01" Where spawnbot_mid_left1 TotalCount 9 MaxActive 9 SpawnCount 3 WaitBeforeStarting 0 WaitBetweenSpawns 8 TotalCurrency 100 Squad { TFBot { Template T_TFBot_Giant_Pyro_Fury Name "Giant Furious Engineer" AddTemplate RedEngiModelGiant } TFBot { Template T_TFBot_Red_Engineer_Uber } TFBot { Template T_TFBot_Red_Engineer_Uber } } } WaveSpawn // Tank 12K HP { Name "redtank" WaitForAllDead "part01" TotalCount 1 MaxActive 1 SpawnCount 1 WaitBeforeStarting 0 WaitBetweenSpawns 0 TotalCurrency 100 FirstSpawnWarningSound "mvm/mvm_tele_deliver.wav" FirstSpawnOutput { Target disable_forcefield_one Action Trigger } Tank { Name "tankbossred" StartingPathTrackNode "tank_red_1" Health 12000 Speed 75 Skin 0 TeamNum 2 ClassIcon tank_red_lite Model "models/bots/boss_bot/boss_tankred.mdl" OnBombDroppedOutput { Target red_tank_deploy_relay Action Trigger } } } WaveSpawn { Name "part03" WaitForAllSpawned "part02" Where spawnbot_mid2 Where spawnbot_mid_left1 TotalCount 12 MaxActive 6 SpawnCount 2 WaitBeforeStarting 20 WaitBetweenSpawns 2 TotalCurrency 100 RandomSpawn 1 TFBot { Template T_TFBot_Heavyweapons_Fist Name "Steel Engilet" AddTemplate RedEngiModel } } WaveSpawn { Name "part03" WaitForAllSpawned "part02" Where spawnbot_mid_left2 TotalCount 8 MaxActive 4 SpawnCount 1 WaitBeforeStarting 0 WaitBetweenSpawns 5 TotalCurrency 100 DoneOutput { Target disable_forcefield_two Action Trigger } TFBot { Template T_TFBot_Giant_Scout_Fast Name "Super Engineer" Skill Expert FastUpdate 1 AddTemplate RedEngiModelGiant ItemAttributes { ItemName "The Holy Mackerel" "custom item model" "models/weapons/c_models/c_wrench/c_wrench.mdl" "custom kill icon" "wrench" } ItemModel { ItemName "Bonk Boy" Model "models/player/items/engineer/clockwerk_hat.mdl" } } } WaveSpawn { Name "part04" WaitForAllSpawned "part03" Where spawnbot_mid_left2 Where spawnbot_front1 TotalCount 24 MaxActive 10 SpawnCount 2 WaitBeforeStarting 0 WaitBetweenSpawns 2 TotalCurrency 100 RandomSpawn 1 TFBot { Template T_TFBot_Demoman_Knight_Persian Name "Persian Engiknight" AddTemplate RedEngiModel } } WaveSpawn { Name "part04" WaitForAllDead "part03" Where spawnbot_furnace TotalCount 6 MaxActive 6 SpawnCount 3 WaitBeforeStarting 0 WaitBetweenSpawns 10 TotalCurrency 100 DoneOutput { Target unblockhatch Action Trigger } Squad { TFBot { Name "Giant Mangler Engineer" Class Soldier ClassIcon soldier_mangler Health 4000 Attributes MiniBoss Skill Expert MaxVisionRange 2000 WeaponRestrictions PrimaryOnly AimLeadProjectileSpeed 1100 AimAt Feet Item "The Cow Mangler 5000" ItemAttributes { ItemName "The Cow Mangler 5000" "faster reload rate" 0.01 "weapon burn dmg increased" 2.5 "fire rate bonus" 0.6 "no self effect" 1 } CharacterAttributes { "move speed bonus" 0.5 "damage force reduction" 0 "airblast vulnerability multiplier" 0.4 "override footstep sound set" 3 } FireWeapon { Delay 3 Cooldown 5 IfSeeTarget 1 Duration 1 Type "Secondary" } AddTemplate RedEngiModelGiant } TFBot { Template T_TFBot_Red_Engineer_Uber } TFBot { Template T_TFBot_Red_Engineer_Uber } } } WaveSpawn { Name "infinite" WaitForAllDead "part03" Where "" TotalCount 999 MaxActive 6 SpawnCount 1 WaitBeforeStarting 0 WaitBetweenSpawns 1 TotalCurrency 0 Support 1 RandomSpawn 1 FirstSpawnOutput { Target boost_relay Action Trigger } TFBot { Template T_TFBot_Pyro Name "Engineer" CharacterAttributes { "airblast disabled" 1 } AddTemplate RedEngiModel } } WaveSpawn { Where spawnbot TotalCount 1 MaxActive 1 SpawnCount 1 WaitBeforeStarting 999999 WaitBetweenSpawns 0 TotalCurrency 0 HideIcon 1 // Hides icons from the wave bar. Should use a ClassIcon different from visible ones TFBot { Class Pyro ClassIcon hellmet_blank } } } Wave // Wave 3 { WaitWhenDone 65 Checkpoint Yes StartWaveOutput { Target wave_start_relay_classic Action Trigger } DoneOutput { Target wave_finished_relay Action Trigger } InitWaveOutput { Target holograms_3way_relay Action Trigger } Explanation { Line "{green}Your support this wave:" Line "{blue}3 Giant Battalion Soldiers, 3 Giant Burst Shotgun Heavies, 2 Giant Dragon Pyros, Infinite Boxing Heavies and Soldiers" } SpawnTemplate { Name "spawnsentry" Origin "320 -2904 64" Angles "0 270 0" } SpawnTemplate { Name "spawnsentry" Origin "648 -2360 0" Angles "0 270 0" } SentryGun { HintName "nest_1" TeamNum 2 Level 2 } SentryGun { HintName "nest_2" TeamNum 2 Level 2 } SentryGun { HintName "nest_4" TeamNum 2 Level 2 } SentryGun { HintName "nest_5" TeamNum 2 Level 2 } SentryGun { HintName "nest_6" TeamNum 2 Level 2 } SentryGun { HintName "nest_8" TeamNum 2 Level 2 } WaveSpawn // Dummy { TotalCount 0 SpawnCount 0 FirstSpawnWarningSound "physics/metal/metal_grate_impact_hard3.wav" FirstSpawnOutput { Target shakeit1 Action StartShake } } WaveSpawn // Dummy { TotalCount 0 SpawnCount 0 WaitBeforeStarting 540 FirstSpawnWarningSound "vo/announcer_ends_60sec.mp3" FirstSpawnOutput { Target warn_relay Action Trigger } } WaveSpawn // Dummy { TotalCount 0 SpawnCount 0 WaitBeforeStarting 590 FirstSpawnWarningSound "vo/announcer_ends_10sec.mp3" FirstSpawnOutput { Target warn_relay2 Action Trigger } } WaveSpawn { Name "blu" Where spawnbot_new TotalCount 3 MaxActive 3 SpawnCount 1 WaitBeforeStarting 0 WaitBetweenSpawns 2 TotalCurrency 0 Support 1 TFBot { Template T_TFBot_Heavyweapons_Heavyweight_Champ Skill Normal ClassIcon heavy_robot_nys AlwaysGlow 1 Action Mobber UseCustomModel "models/bots/heavy/bot_heavy.mdl" Tag bot_blu } } WaveSpawn { Name "blu" Where spawnbot_new TotalCount 3 MaxActive 3 SpawnCount 3 WaitBeforeStarting 0 WaitBetweenSpawns 5 TotalCurrency 0 Support 1 TFBot { Class Soldier ClassIcon heavy_robot_nys Skill Normal AlwaysGlow 1 Action Mobber UseCustomModel "models/bots/soldier/bot_soldier.mdl" Tag bot_blu } } WaveSpawn { Name "blu1" Where spawnbot_new TotalCount 3 MaxActive 1 SpawnCount 1 WaitBeforeStarting 1 WaitBetweenSpawnsAfterDeath 2 TotalCurrency 0 Support Limited StartWaveMessage "{FC8300}Now deploying: Giant Battalion Soldiers x3" FirstSpawnOutput { Target signchat6 Action Show } TFBot { Template T_TFBot_Giant_Soldier_Extended_Battalion_Fix Attributes UseBossHealthBar // Action EscortFlag AlwaysGlow 1 UseCustomModel "models/bots/soldier_boss/bot_soldier_boss.mdl" Tag bot_blu } } WaveSpawn { Name "blu2" WaitForAllDead "blu1" Where spawnbot_new TotalCount 3 MaxActive 1 SpawnCount 1 WaitBeforeStarting 0 WaitBetweenSpawns 4 TotalCurrency 0 Support Limited StartWaveMessage "{FC8300}Now deploying: Giant Burst Shotgun Heavies x3" TFBot { Template T_TFBot_Giant_Heavyweapons_Shotgun ClassIcon heavy_shotgun_burst_lite Attributes HoldFireUntilFullReload Attributes UseBossHealthBar Name "Giant Burst Shotgun Heavy" AlwaysGlow 1 UseCustomModel "models/bots/heavy_boss/bot_heavy_boss.mdl" Item "Panic Attack Shotgun" ItemAttributes { ItemName "Panic Attack Shotgun" "faster reload rate" 0.4 "fire rate bonus" 0.2 "clip size bonus" 2 "damage penalty" 0.75 "auto fires full clip" 1 "auto fires when full" 1 } } } WaveSpawn { Name "blu3" WaitForAllDead "blu2" Where spawnbot_new TotalCount 2 MaxActive 1 SpawnCount 1 WaitBeforeStarting 0 WaitBetweenSpawns 2 TotalCurrency 0 Support Limited StartWaveMessage "{FC8300}Now deploying: Giant Dragon Pyros x2" LastSpawnMessage "{FC8300}Only 1 giant remains!" DoneWarningSound "npc/attack_helicopter/aheli_megabomb_siren1.wav" DoneOutput { Target lose_by_supports Action Trigger } TFBot { Template T_TFBot_Giant_Pyro_Fury Attributes UseBossHealthBar AlwaysGlow 1 UseCustomModel "models/bots/pyro_boss/bot_pyro_boss.mdl" } } WaveSpawn { Name "busters" Where spawnbot_furnace TotalCount 1 MaxActive 1 SpawnCount 1 WaitBeforeStarting 20 WaitBetweenSpawnsAfterDeath 40 TotalCurrency 0 Support 1 TFBot { Template Engineer_Buster } } WaveSpawn { Where spawnbot_furnace TotalCount 1 MaxActive 1 SpawnCount 1 WaitBeforeStarting 0 WaitBetweenSpawns 999999 TotalCurrency 0 Support 1 TFBot { Class Scout ClassIcon sentry_gun_lvl2_red_lite Health 1 Name "Level 2 sentries have spawned!" Attributes IgnoreFlag Scale 0.01 CharacterAttributes { "health drain" -1 } } } WaveSpawn { Name "hatchboss" Where spawnbot_furnace TotalCount 1 MaxActive 1 SpawnCount 1 WaitBeforeStarting 0 WaitBetweenSpawns 0 TotalCurrency 300 DoneOutput { Target unblockhatch Action Trigger } TFBot { Template T_TFBot_Chief_Soldier_Ghost } } WaveSpawn { Name "part01" Where spawnbot_top Where spawnbot_house TotalCount 40 MaxActive 10 SpawnCount 2 WaitBeforeStarting 0 WaitBetweenSpawns 1 TotalCurrency 100 RandomSpawn 1 RandomChoice { TFBot { Name "Skeletal Archer" Class Sniper ClassIcon dead_red_lite Skill Hard Action Mobber Attributes DisableDodge StripItemSlot 1 StripItemSlot 2 UseCustomModel "models/bots/skeleton_sniper/skeleton_sniper.mdl" DeathSound "misc/halloween/skeleton_break.wav" Item "The Fortified Compound" Item "TF_WEAPON_SPELLBOOK" AddCond { Name "TF_COND_REPROGRAMMED" } AddCond { Index 57 Duration 2 } CharacterAttributes { "damage penalty" 0.5 "cancel falling damage" 1 "voice pitch scale" 0 "bombinomicon effect on death" 1 } Spell { Delay 1 Cooldown 5 Repeats 0 IfSeeTarget 0 Charges 1 Limit 1 Type "Teleport" } } TFBot { Name "Skeletal Archer" Class Sniper ClassIcon dead_red_lite Skill Hard Action Mobber Attributes DisableDodge StripItemSlot 1 StripItemSlot 2 UseCustomModel "models/bots/skeleton_sniper/skeleton_sniper.mdl" DeathSound "misc/halloween/skeleton_break.wav" Item "The Fortified Compound" Item "TF_WEAPON_SPELLBOOK" AddCond { Name "TF_COND_REPROGRAMMED" } AddCond { Index 57 Duration 2 } CharacterAttributes { "damage penalty" 0.5 "cancel falling damage" 1 "voice pitch scale" 0 "bombinomicon effect on death" 1 } Spell { Delay 1 Cooldown 10 Repeats 0 IfSeeTarget 1 Charges 1 Limit 1 Type "Fireball" } } TFBot { Name "Skeletal Archer" Class Sniper ClassIcon dead_red_lite Skill Hard Action Mobber Attributes DisableDodge StripItemSlot 1 StripItemSlot 2 UseCustomModel "models/bots/skeleton_sniper/skeleton_sniper.mdl" DeathSound "misc/halloween/skeleton_break.wav" Item "The Fortified Compound" Item "TF_WEAPON_SPELLBOOK" AddCond { Name "TF_COND_REPROGRAMMED" } AddCond { Index 57 Duration 2 } CharacterAttributes { "damage penalty" 0.5 "cancel falling damage" 1 "voice pitch scale" 0 "bombinomicon effect on death" 1 } Spell { Delay 1 Cooldown 10 Repeats 0 IfSeeTarget 1 Charges 1 Limit 1 Type "Ball O' Bats" } } } } WaveSpawn { Name "part02" Where spawnbot_top TotalCount 40 MaxActive 8 SpawnCount 4 WaitBeforeStarting 0 WaitBetweenSpawns 2 TotalCurrency 100 TFBot { Template T_TFBot_Demoman_Knight Name "Engiknight" Attributes AlwaysCrit AddTemplate RedEngiModel } } WaveSpawn { Name "part03" WaitForAllSpawned "part02" Where spawnbot_mid_left1 TotalCount 10 MaxActive 10 SpawnCount 5 WaitBeforeStarting 0 WaitBetweenSpawns 10 TotalCurrency 100 Squad { TFBot { Name "Giant Widowmaker Engineer" Class Engineer ClassIcon engineer_widowmaker_nys_giant Health 3000 Skill Expert Action Mobber Attributes MiniBoss Attributes DisableDodge AddCond { Name "TF_COND_REPROGRAMMED" } WeaponRestrictions Primaryonly Item "The Widowmaker" ItemAttributes { ItemName "The Widowmaker" "fire rate bonus" 0.6 } CharacterAttributes { "voice pitch scale" 0 "move speed bonus" 0.5 "damage force reduction" 0 "airblast vulnerability multiplier" 0.6 "override footstep sound set" 6 "health from packs decreased" 0.01 "attack projectiles" 1 } } TFBot { Template T_TFBot_Medic_Kritzkrieg Classicon medic_kritz_red Name "Kritzkrieg Engineer" AddCond { Name "TF_COND_REPROGRAMMED" } Attributes IgnoreFlag Attributes DisableDodge UseCustomModel "models/player/engineer.mdl" UseHumanAnimations 1 CharacterAttributes { "voice pitch scale" 0 } } TFBot { Template T_TFBot_Medic_Kritzkrieg Classicon medic_kritz_red Name "Kritzkrieg Engineer" AddCond { Name "TF_COND_REPROGRAMMED" } Attributes IgnoreFlag Attributes DisableDodge UseCustomModel "models/player/engineer.mdl" UseHumanAnimations 1 CharacterAttributes { "voice pitch scale" 0 } } TFBot { Template T_TFBot_Medic_Kritzkrieg Classicon medic_kritz_red Name "Kritzkrieg Engineer" AddCond { Name "TF_COND_REPROGRAMMED" } Attributes IgnoreFlag Attributes DisableDodge UseCustomModel "models/player/engineer.mdl" UseHumanAnimations 1 CharacterAttributes { "voice pitch scale" 0 } } TFBot { Template T_TFBot_Medic_Kritzkrieg Classicon medic_kritz_red Name "Kritzkrieg Engineer" AddCond { Name "TF_COND_REPROGRAMMED" } Attributes IgnoreFlag Attributes DisableDodge UseCustomModel "models/player/engineer.mdl" UseHumanAnimations 1 CharacterAttributes { "voice pitch scale" 0 } } } } WaveSpawn // Dummy { WaitForAllSpawned "part03" TotalCount 0 SpawnCount 0 WaitBeforeStarting 0 FirstSpawnOutput { Target disable_forcefield_one Action Trigger } } WaveSpawn { Name "part04" WaitForAllDead "part03" Where spawnbot_mid_left1 TotalCount 3 MaxActive 3 SpawnCount 1 WaitBeforeStarting 0 WaitBetweenSpawns 10 TotalCurrency 100 TFBot { Template T_TFBot_Giant_Soldier_Spammer_Reload_Hatted Name "Giant Burst Conch Engineer" ClassIcon soldier_burstfire_conch Attributes SpawnWithFullCharge Item "The Concheror" CharacterAttributes { "increase buff duration" 200 "deploy time decreased" 0.5 } AddTemplate RedEngiModelGiant } } WaveSpawn { Name "part04" WaitForAllDead "part03" Where spawnbot_mid1 Where spawnbot_mid2 Where spawnbot_mid_left1 TotalCount 36 MaxActive 12 SpawnCount 2 WaitBeforeStarting 0 WaitBetweenSpawns 2 TotalCurrency 100 RandomSpawn 1 TFBot { Template T_TFBot_Scout_Sandman_FastCharge Name "Major League Engineer" Attributes AlwaysCrit ItemAttributes { ItemName "The Sandman" "custom item model" "models/weapons/c_models/c_wrench/c_wrench.mdl" "custom kill icon" "wrench" } AddTemplate RedEngiModel } } WaveSpawn { Name "part05" WaitForAllDead "part03" Where spawnbot_mid_left1 TotalCount 3 MaxActive 3 SpawnCount 1 WaitBeforeStarting 10 WaitBetweenSpawns 12 TotalCurrency 100 DoneOutput { Target disable_forcefield_two Action Trigger } TFBot { Template T_TFBot_Giant_Demo_Burst ClassIcon demo_burst_red Name "Giant Burst Engineer" AddTemplate RedEngiModelGiant } } WaveSpawn // Dummy { WaitForAllDead "part05" TotalCount 0 SpawnCount 0 WaitBeforeStarting 0 FirstSpawnOutput { Target boost_relay Action Trigger } } WaveSpawn { Name "infinite" WaitForAllDead "part05" Where "" TotalCount 999 MaxActive 6 SpawnCount 1 WaitBeforeStarting 0 WaitBetweenSpawns 1 TotalCurrency 0 Support 1 RandomSpawn 1 RandomChoice { TFBot { Class Engineer ClassIcon scout_capper_red_nys Skill Easy Action Mobber Attributes DisableDodge WeaponRestrictions SecondaryOnly Item "The C.A.P.P.E.R" Item "Captain Space Mann" AddCond { Name "TF_COND_REPROGRAMMED" } } TFBot { Class Engineer ClassIcon scout_capper_red_nys Skill Normal Action Mobber Attributes DisableDodge WeaponRestrictions SecondaryOnly Item "The C.A.P.P.E.R" Item "Captain Space Mann" AddCond { Name "TF_COND_REPROGRAMMED" } } TFBot { Class Engineer Skill Hard Action Mobber Attributes DisableDodge Health 325 Scale 1.25 WeaponRestrictions MeleeOnly Item "Necro Smasher" Item "Mining Light" AddCond { Name "TF_COND_REPROGRAMMED" } ItemAttributes { ItemName "Necro Smasher" "custom item model" "models/weapons/c_models/c_pickaxe/c_pickaxe.mdl" "custom kill icon" "pickaxe" } } } } WaveSpawn { Where spawnbot TotalCount 1 MaxActive 1 SpawnCount 1 WaitBeforeStarting 999999 WaitBetweenSpawns 0 TotalCurrency 0 HideIcon 1 // Hides icons from the wave bar. Should use a ClassIcon different from visible ones TFBot { Class Pyro ClassIcon hellmet_blank } } } Wave // Wave 4 { WaitWhenDone 65 Checkpoint Yes StartWaveOutput { Target wave_start_relay_classic Action Trigger } DoneOutput { Target wave_finished_relay Action Trigger } InitWaveOutput { Target holograms_3way_relay Action Trigger } Explanation { Line "{green}Your support this wave:" Line "{blue}5 Giant SMG Snipers, 3 Giant Blast Soldiers, 1 Major Crits, Infinite Scouts." } SpawnTemplate tankbarrier SpawnTemplate { Name "spawnsentry" Origin "320 -2904 64" Angles "0 270 0" } SpawnTemplate { Name "spawnsentry" Origin "648 -2360 0" Angles "0 270 0" } SentryGun { HintName "nest_1" TeamNum 2 Level 3 } SentryGun { HintName "nest_2" TeamNum 2 Level 3 } SentryGun { HintName "nest_4" TeamNum 2 Level 3 } SentryGun { HintName "nest_5" TeamNum 2 Level 3 } SentryGun { HintName "nest_6" TeamNum 2 Level 3 } SentryGun { HintName "nest_8" TeamNum 2 Level 3 } WaveSpawn // Dummy { TotalCount 0 SpawnCount 0 FirstSpawnWarningSound "physics/metal/metal_grate_impact_hard3.wav" FirstSpawnOutput { Target shakeit1 Action StartShake } } WaveSpawn // Dummy { TotalCount 0 SpawnCount 0 WaitBeforeStarting 540 FirstSpawnWarningSound "vo/announcer_ends_60sec.mp3" FirstSpawnOutput { Target warn_relay Action Trigger } } WaveSpawn // Dummy { TotalCount 0 SpawnCount 0 WaitBeforeStarting 590 FirstSpawnWarningSound "vo/announcer_ends_10sec.mp3" FirstSpawnOutput { Target warn_relay2 Action Trigger } } WaveSpawn { Name "blu" Where spawnbot_new TotalCount 4 MaxActive 4 SpawnCount 4 WaitBeforeStarting 0 WaitBetweenSpawns 2 TotalCurrency 0 Support 1 TFBot { Class Scout Skill Easy ClassIcon heavy_robot_nys AlwaysGlow 1 Action Mobber UseCustomModel "models/bots/scout/bot_scout.mdl" AddCond { Name "TF_COND_CRITBOOSTED_ON_KILL" } Tag bot_blu } } WaveSpawn { Name "blu1" Where spawnbot_new TotalCount 1 MaxActive 1 SpawnCount 1 WaitBeforeStarting 1 WaitBetweenSpawns 4 TotalCurrency 0 Support Limited StartWaveMessage "{FC8300}Now deploying: Major Crits x1" FirstSpawnOutput { Target signchat6 Action Show } TFBot { Template T_TFBot_Giant_Soldier_SlowBarrage_Improved Name "Major Crits" Health 35000 Attributes UseBossHealthBar Attributes AlwaysCrit AlwaysGlow 1 Action EscortFlag Tag bot_blu UseCustomModel "models/bots/soldier_boss/bot_soldier_boss.mdl" } } WaveSpawn { Name "blu2" WaitForAllDead "blu1" Where spawnbot_new TotalCount 5 MaxActive 1 SpawnCount 1 WaitBeforeStarting 1 WaitBetweenSpawns 4 TotalCurrency 0 Support Limited StartWaveMessage "{FC8300}Now deploying: Giant SMG Snipers x5" TFBot { Template T_TFBot_Giant_Sniper_SMG Attributes UseBossHealthBar AlwaysGlow 1 Action EscortFlag Tag bot_blu } } WaveSpawn { Name "blu3" WaitForAllDead "blu2" Where spawnbot_new TotalCount 3 MaxActive 1 SpawnCount 1 WaitBeforeStarting 0 WaitBetweenSpawns 4 TotalCurrency 0 Support Limited StartWaveMessage "{FC8300}Now deploying: Giant Blast Soldiers x3" LastSpawnMessage "{FC8300}Only 1 giant remains!" DoneWarningSound "npc/attack_helicopter/aheli_megabomb_siren1.wav" DoneOutput { Target lose_by_supports Action Trigger } TFBot { Template T_TFBot_Giant_Soldier_RocketPush Attributes UseBossHealthBar AlwaysGlow 1 UseCustomModel "models/bots/soldier_boss/bot_soldier_boss.mdl" } } WaveSpawn { Name "busters" Where spawnbot_furnace TotalCount 1 MaxActive 1 SpawnCount 1 WaitBeforeStarting 20 WaitBetweenSpawnsAfterDeath 40 TotalCurrency 0 Support 1 TFBot { Template Engineer_Buster } } WaveSpawn { Where spawnbot_furnace TotalCount 1 MaxActive 1 SpawnCount 1 WaitBeforeStarting 0 WaitBetweenSpawns 999999 TotalCurrency 0 Support 1 TFBot { Class Scout ClassIcon sentry_gun_lvl3_red_lite Health 1 Name "Level 3 sentries have spawned!" Attributes IgnoreFlag Scale 0.01 CharacterAttributes { "health drain" -1 } } } WaveSpawn { Name "spies" Where spawnbot_mid_left1 Where spawnbot_mid_left2 TotalCount 999 MaxActive 2 SpawnCount 2 WaitBeforeStarting 30 WaitBetweenSpawns 30 TotalCurrency 0 Support 1 RandomSpawn 1 TFBot { Class Spy ClassIcon spy_sniper Skill Expert Attributes IgnoreFlag Attributes DisableDodge AimTrackingInterval 0.05 AddCond { Name "TF_COND_REPROGRAMMED" } ItemAttributes { ItemName "TF_WEAPON_KNIFE" "armor piercing" 100 } } } WaveSpawn { Name "snipers" Where spawnbot_top Where spawnbot_mid1 Where spawnbot_mid_left2 TotalCount 999 MaxActive 2 SpawnCount 2 WaitBeforeStarting 25 WaitBetweenSpawns 25 TotalCurrency 0 Support 1 RandomSpawn 1 TFBot { Name Engineer Class Sniper ClassIcon spy_sniper Action Sniper Skill Hard Attributes DisableDodge AddCond { Name "TF_COND_REPROGRAMMED" } AddCond { Index 57 Duration 2 } UseCustomModel "models/player/engineer.mdl" UseHumanAnimations 1 } } WaveSpawn { Name "hatchguardian" Where spawnbot_furnace TotalCount 2 MaxActive 2 SpawnCount 2 WaitBeforeStarting 0 WaitBetweenSpawns 0 TotalCurrency 300 DoneOutput { Target unblockhatch Action Trigger } Squad { TFBot { Template T_TFBot_Giant_Demo_Burst Name "Giga Burst Engineer" ClassIcon demo_burst_red_hyper_lite Health 3500 Attributes AlwaysCrit Attributes IgnoreFlag BehaviorModifiers Push NoIdleSound 1 AddCond { Name "TF_COND_REPROGRAMMED" } UseCustomModel "models/player/engineer.mdl" UseHumanAnimations 1 ItemAttributes { ItemName "TF_WEAPON_GRENADELAUNCHER" "damage bonus" 2 "faster reload rate" 0.4 "fire rate bonus" 0.2 "clip size upgrade atomic" 5.0 "projectile speed increased" 1.5 } CharacterAttributes { "damage force reduction" 0 "voice pitch scale" 0 "health from packs increased" 0.01 } } TFBot { Name "Giant Regen Engineer" Class Medic ClassIcon medic_regen Health 4500 Attributes MiniBoss Attributes DisableDodge Attributes IgnoreFlag Skill Expert AddCond { Name "TF_COND_REPROGRAMMED" } UseCustomModel "models/player/engineer.mdl" UseHumanAnimations 1 Item "The Frontier Justice" Item "The Quick-Fix" // Item "Das Naggenvatcher" ItemAttributes { ItemName "The Frontier Justice" "always crit" 1 "fire rate bonus" 2.5 "faster reload rate" -1 "damage penalty" 0.65 "bullets per shot bonus" 10 "item style override" 1 "turn to gold" 1 } ItemAttributes { ItemName "The Quick-Fix" "ubercharge rate bonus" 0.001 } CharacterAttributes { "move speed bonus" 0.5 "damage force reduction" 0 "airblast vulnerability multiplier" 0.5 "health regen" 40 "heal rate bonus" 200 "voice pitch scale" 0 "health from packs increased" 0.01 "no_jump" 1 "mult medigun range" 1.75 } } } } WaveSpawn { Name "part01" Where spawnbot_house TotalCount 6 MaxActive 6 SpawnCount 1 WaitBeforeStarting 0 WaitBetweenSpawns 10 TotalCurrency 100 DoneOutput { Target disable_forcefield_one Action Trigger } TFBot { Template T_TFBot_Giant_Soldier_RocketShotgun Name "Giant Black Box Engineer" AddTemplate RedEngiModelGiant } } WaveSpawn { Name "part01" Where spawnbot_top TotalCount 4 MaxActive 4 SpawnCount 1 WaitBeforeStarting 0 WaitBetweenSpawns 10 TotalCurrency 100 TFBot { Name "Giant Steel Engilet" Class Heavyweapons ClassIcon heavy_steelfist_giant Health 5000 Attributes MiniBoss Skill Expert WeaponRestrictions MeleeOnly StripItemSlot 0 StripItemSlot 1 Item "Fists of Steel" ItemAttributes { ItemName "Fists of Steel" "damage bonus" 2 "damage causes airblast" 1 "fire rate bonus" 0.6 } CharacterAttributes { "move speed bonus" 0.5 "damage force reduction" 0 "airblast vulnerability multiplier" 0.4 "override footstep sound set" 2 } AddTemplate RedEngiModelGiant } } WaveSpawn // Tank # HP { Name "tank" WaitForAllDead "part01" TotalCount 1 MaxActive 1 SpawnCount 1 WaitBeforeStarting 0 WaitBetweenSpawns 0 TotalCurrency 100 FirstSpawnWarningSound "mvm/mvm_tele_deliver.wav" Tank { Name "tankbossred" StartingPathTrackNode "tank_red_1" Health 15000 Speed 75 Skin 0 TeamNum 2 ClassIcon tank_red_lite Model "models/bots/boss_bot/boss_tankred.mdl" OnBombDroppedOutput { Target red_tank_deploy_relay Action Trigger } } } WaveSpawn { Name "part02" WaitForAllDead "part01" Where spawnbot_mid_left1 Where spawnbot_mid2 TotalCount 16 MaxActive 4 SpawnCount 1 WaitBeforeStarting 0 WaitBetweenSpawns 2 TotalCurrency 100 TFBot { Name "Walking Pumpkin Bomb" Class Demoman ClassIcon demo_explode Scale 1.4 Health 650 Skill Hard Action Mobber Attributes DisableDodge AddCond { Name "TF_COND_REPROGRAMMED" } AddCond { Index 57 Duration 2 } UseCustomModel "models/bots/skeleton_sniper/skeleton_sniper.mdl" MaxVisionRange 169 WeaponRestrictions PrimaryOnly UseMeleeThreatPrioritization 1 Item "The Iron Bomber" Item "Horseless Headless Horseman's Head" ItemAttributes { ItemName "The Iron Bomber" "is invisible" 1 "blast dmg to self increased" 300 "damage bonus" 1.35 "explosion particle" "skull_island_explosion" "custom kill icon" "pumpkindeath" "fuse bonus" 0.0001 "blast radius decreased" 2 "set damagetype ignite" 1 "projectile speed decreased" 0.0001 } CharacterAttributes { "voice pitch scale" 0 "head scale" 2.3 "torso scale" 0 } } } WaveSpawn { Name "part02" WaitForAllDead "part01" Where spawnbot_mid_left2 TotalCount 9 MaxActive 6 SpawnCount 3 WaitBeforeStarting 0 WaitBetweenSpawns 12 TotalCurrency 200 Squad { TFBot { Template T_TFBot_Giant_Heavyweapons_Deflector Name "Giant Deflector Engineer" AddTemplate RedEngiModelGiant } TFBot { Template T_TFBot_Red_Engineer_Uber } TFBot { Template T_TFBot_Red_Engineer_Uber } } } // WaveSpawn // { // Name "part03" // WaitForAllDead "part01" // Where spawnbot_mid2 // Where spawnbot_mid3 // TotalCount 12 // MaxActive 3 // SpawnCount 3 // WaitBeforeStarting 10 // WaitBetweenSpawns 2 // TotalCurrency 100 // TFBot // { // Template T_TFBot_Demoman_Samurai // Name "Samurai Engineer" // AddTemplate RedEngiModel // } // } WaveSpawn // Dummy { WaitForAllDead "part02" TotalCount 0 SpawnCount 0 FirstSpawnOutput { Target disable_forcefield_two Action Trigger } } WaveSpawn { Name "infinite" WaitForAllDead "part02" Where spawnbot_furnace TotalCount 1 MaxActive 1 SpawnCount 1 WaitBeforeStarting 0 WaitBetweenSpawnsAfterDeath 2 TotalCurrency 0 Support 1 FirstSpawnOutput { Target boost_relay Action Trigger } TFBot { Template T_TFBot_Giant_Heavyweapons_Shotgun ClassIcon heavy_shotgun_red_giant Name "Giant Engineer Shotgun" AddTemplate RedEngiModelGiant } } WaveSpawn { Name "infinite" WaitForAllDead "part02" Where "" TotalCount 999 MaxActive 6 SpawnCount 1 WaitBeforeStarting 0 WaitBetweenSpawns 1 TotalCurrency 0 Support 1 RandomSpawn 1 TFBot { Class Soldier Name "Engineer" Skill Normal AddTemplate RedEngiModel AddCond { Index 57 Duration 2 } } } WaveSpawn { Where spawnbot TotalCount 1 MaxActive 1 SpawnCount 1 WaitBeforeStarting 999999 WaitBetweenSpawns 0 TotalCurrency 0 HideIcon 1 // Hides icons from the wave bar. Should use a ClassIcon different from visible ones TFBot { Class Pyro ClassIcon hellmet_blank } } } Wave // Wave 5 { WaitWhenDone 65 Checkpoint Yes StartWaveOutput { Target wave_start_relay_classic Action Trigger } DoneOutput { Target wave_finished_relay Action Trigger } InitWaveOutput { Target holograms_3way_relay Action Trigger } SpawnTemplate "Tankround_Stalematent" SpawnTemplate { Name "spawnsentry" Origin "320 -2904 64" Angles "0 270 0" } SpawnTemplate { Name "spawnsentry" Origin "648 -2360 0" Angles "0 270 0" } SentryGun { HintName "nest_1" TeamNum 2 Level 3 } SentryGun { HintName "nest_2" TeamNum 2 Level 3 } SentryGun { HintName "nest_4" TeamNum 2 Level 3 } SentryGun { HintName "nest_5" TeamNum 2 Level 3 } SentryGun { HintName "nest_6" TeamNum 2 Level 3 } SentryGun { HintName "nest_8" TeamNum 2 Level 3 } WaveSpawn // Dummy { TotalCount 0 SpawnCount 0 FirstSpawnWarningSound "physics/metal/metal_grate_impact_hard3.wav" FirstSpawnOutput { Target shakeit1 Action StartShake } } WaveSpawn // Dummy { TotalCount 0 SpawnCount 0 WaitBeforeStarting 540 FirstSpawnWarningSound "vo/announcer_ends_60sec.mp3" FirstSpawnOutput { Target warn_relay Action Trigger } } WaveSpawn // Dummy { TotalCount 0 SpawnCount 0 WaitBeforeStarting 590 FirstSpawnWarningSound "vo/announcer_ends_10sec.mp3" FirstSpawnOutput { Target warn_relay2 Action Trigger } } WaveSpawn { Name "busters" Where spawnbot_furnace TotalCount 1 MaxActive 1 SpawnCount 1 WaitBeforeStarting 20 WaitBetweenSpawnsAfterDeath 40 TotalCurrency 0 Support 1 TFBot { Template Engineer_Buster } } WaveSpawn // Tank # HP { Name "blutank" TotalCount 1 MaxActive 1 SpawnCount 1 WaitBeforeStarting 0 WaitBetweenSpawns 0 TotalCurrency 0 FirstSpawnWarningSound "mvm/mvm_tank_start.wav" Support Limited Tank { Name "tankboss" StartingPathTrackNode "tank_path_a_10" Health 35000 Speed 75 Skin 0 SpawnTemplate "TankWarp" OnKilledOutput { Target boss_dead_bombwarp Action Trigger } OnBombDroppedOutput { Target boss_deploy_relay Action Trigger } } } WaveSpawn { Name "bomb1" WaitForAllDead "blutank" Where spawnbot_new TotalCount 1 MaxActive 1 SpawnCount 1 WaitBeforeStarting 0.5 WaitBetweenSpawns 0 TotalCurrency 0 Support Limited DoneOutput { Target warp_target Action Kill } TFBot { Template T_TFBot_Giant_Scout_Baseball_2 ClassIcon heavy_robot_nys AlwaysGlow 1 Tag swooce UseCustomModel "models/bots/scout_boss/bot_scout_boss.mdl" } } WaveSpawn { Name "bomb2" WaitForAllDead "bomb1" Where spawnbot_new TotalCount 1 MaxActive 1 SpawnCount 1 WaitBeforeStarting 0 WaitBetweenSpawnsAfterDeath 10 TotalCurrency 0 Support 1 TFBot { Template T_TFBot_Giant_Scout_Baseball_2 ClassIcon heavy_robot_nys AlwaysGlow 1 UseCustomModel "models/bots/scout_boss/bot_scout_boss.mdl" } } WaveSpawn { Name "bomb2" WaitForAllDead "bomb1" Where spawnbot_new TotalCount 4 MaxActive 4 SpawnCount 4 WaitBeforeStarting 1 WaitBetweenSpawns 1 TotalCurrency 0 Support 1 TFBot { Template T_TFBot_Heavyweapons_Shotgun ClassIcon heavy_robot_nys AlwaysGlow 1 UseCustomModel "models/bots/heavy/bot_heavy.mdl" Action EscortFlag } } WaveSpawn { Name "hatchguardian" WaitForAllDead "blutank" Where spawnbot_furnace TotalCount 1 MaxActive 1 SpawnCount 1 WaitBeforeStarting 0 WaitBetweenSpawns 0 TotalCurrency 500 DoneOutput { Target unblockhatch Action Trigger } TFBot { Template T_TFBot_Giant_Heavyweapons_BrassBeast_Improved Name "Giant Brass Engineer" Attributes IgnoreFlag Attributes AlwaysCrit Attributes DisableDodge BehaviorModifiers Push UseCustomModel "models/player/engineer.mdl" UseHumanAnimations 1 AddCond { Name "TF_COND_REPROGRAMMED" } AddCond { Name "TF_COND_KING_BUFFED" } CharacterAttributes { "voice pitch scale" 0 "damage force reduction" 0 "health from packs decreased" 0.01 "crit kill will gib" 1 } } } WaveSpawn { Name "tankbots" Where spawnbot_mid_left1 TotalCount 4 MaxActive 4 SpawnCount 1 WaitBeforeStarting 5 WaitBetweenSpawns 10 TotalCurrency 100 TFBot { Template T_TFBot_Giant_DemoMan_PrinceTavish Name "Giant Engiknight" AddTemplate RedEngiModelGiant InterruptAction { Target tank_boss AimTarget tank_boss KillAimTarget 1 WaitUntilDone 1 Delay 5 Cooldown 10 Repeats 0 Duration 10 } } } WaveSpawn { Name "part01" Where spawnbot_top Where spawnbot_mid_left1 Where spawnbot_mid1 TotalCount 50 MaxActive 20 SpawnCount 1 WaitBeforeStarting 0 WaitBetweenSpawns 1 TotalCurrency 100 RandomSpawn 1 TFBot { Name "Buck Shooting Skeleton" Class Sniper ClassIcon sniper_smg_tind Skill Normal Action Mobber Attributes DisableDodge // ExtAttr IgnoreNPC AddCond { Name "TF_COND_REPROGRAMMED" } AddCond { Index 57 Duration 2 } UseCustomModel "models/bots/skeleton_sniper/skeleton_sniper.mdl" DeathSound "misc/halloween/skeleton_break.wav" WeaponRestrictions SecondaryOnly UseMeleeThreatPrioritization 1 Item "Cranium Cover" Item "Preventative Measure" ItemAttributes { ItemName "TF_WEAPON_SMG" "fire rate bonus" 0.001 "clip size penalty" 0.2 "damage penalty" 0.25 "bullets per shot bonus" 5 "spread penalty" 2 "reload time increased" 5 } CharacterAttributes { "voice pitch scale" 0 "bombinomicon effect on death" 1 } } } WaveSpawn { Name "part02" WaitForAllDead "part01" Where spawnbot_mid_left2 Where spawnbot_mid5 TotalCount 32 MaxActive 8 SpawnCount 4 WaitBeforeStarting 10 WaitBetweenSpawns 4 TotalCurrency 100 RandomSpawn 1 TFBot { Template T_TFBot_Pyro_Phlog_Mmph Name "Phlog Engineer" ExtAttr AlwaysFireWeaponAlt AddCond { Index 57 Duration 2 } AddTemplate RedEngiModel CharacterAttributes { "mod rage on hit bonus" 10 "gesture speed increase" 1.5 } } } WaveSpawn { Name "part02" WaitForAllDead "part01" Where spawnbot_mid_left1 Where spawnbot_mid_left2 TotalCount 3 MaxActive 3 SpawnCount 1 WaitBeforeStarting 0 WaitBetweenSpawns 10 TotalCurrency 100 RandomSpawn 1 TFBot { Name "Giant Skeleton King" Class Sniper ClassIcon dead_king_lite Health 3500 Attributes MiniBoss Attributes DisableDodge Skill Expert Action Mobber ExtAttr IgnoreNPC AddCond { Name "TF_COND_REPROGRAMMED" } UseCustomModel "models/bots/skeleton_sniper/skeleton_sniper.mdl" DeathSound "misc/halloween/skeleton_break.wav" StripItemSlot 0 StripItemSlot 1 Item "TF_WEAPON_SPELLBOOK" Item "Prince Tavish's Crown" ItemAttributes { ItemName "TF_WEAPON_CLUB" "is invisible" 1 "damage bonus" 2 "custom kill icon" "spellbook_skeleton" } CharacterAttributes { "move speed bonus" 0.8 "damage force reduction" 0 "airblast vulnerability multiplier" 0.5 "override footstep sound set" 7 "voice pitch scale" 0 "health from packs decreased" 0.01 } Spell { Type "Summon Skeletons" Delay 6 Cooldown 18 Charges 1 Limit 1 } } } WaveSpawn { Name "part03" WaitForAllDead "part01" Where spawnbot_mid_left2 TotalCount 4 MaxActive 4 SpawnCount 1 WaitBeforeStarting 0 WaitBetweenSpawns 15 TotalCurrency 200 TFBot { Template T_TFBot_Giant_Soldier ClassIcon soldier_directhit_lite Name "Giant Direct Hit Engineer" Item "The Direct Hit" AimLeadProjectileSpeed 1 AddTemplate RedEngiModelGiant InterruptAction { Target tank_boss AimTarget tank_boss KillAimTarget 1 WaitUntilDone 1 Delay 5 Cooldown 10 Repeats 0 Duration 10 } } } WaveSpawn { Name "part04" WaitForAllDead "part03" Where spawnbot_mid_left2 Where spawnbot_front1 Where spawnbot_mid4 TotalCount 40 MaxActive 10 SpawnCount 1 WaitBeforeStarting 10 WaitBetweenSpawns 1 TotalCurrency 100 RandomSpawn 1 TFBot { Class Heavyweapons ClassIcon heavy_warrior_red Name "Mauler Engineer" AddTemplate RedEngiModel Skill Hard WeaponRestrictions MeleeOnly AddCond { Name "TF_COND_ENERGY_BUFF" } Item "Warrior's Spirit" Item "Big Chief" ItemAttributes { ItemName "Warrior's Spirit" "dmg taken increased" 1.0 } InterruptAction { Target tank_boss AimTarget tank_boss KillAimTarget 1 WaitUntilDone 1 Delay 5 Cooldown 10 Repeats 0 Duration 10 } } } WaveSpawn { Name "infinite" WaitForAllSpawned "part04" Where "" TotalCount 999 MaxActive 4 SpawnCount 1 WaitBeforeStarting 0 WaitBetweenSpawns 1 TotalCurrency 0 Support 1 RandomSpawn 1 TFBot { Template T_TFBot_Soldier_Bison Name "Bison Engineer" AddTemplate RedEngiModel } } WaveSpawn { Where spawnbot TotalCount 1 MaxActive 1 SpawnCount 1 WaitBeforeStarting 999999 WaitBetweenSpawns 0 TotalCurrency 0 HideIcon 1 // Hides icons from the wave bar. Should use a ClassIcon different from visible ones TFBot { Class Pyro ClassIcon hellmet_blank } } } Wave // Wave 6 { WaitWhenDone 65 Checkpoint Yes StartWaveOutput { Target wave_start_relay_classic Action Trigger } DoneOutput { Target wave_finished_relay Action Trigger } InitWaveOutput { Target holograms_3way_relay Action Trigger } SpawnTemplate tankbarrier SpawnTemplate { Name "spawnsentry" Origin "320 -2904 64" Angles "0 270 0" } SpawnTemplate { Name "spawnsentry" Origin "648 -2360 0" Angles "0 270 0" } SentryGun { HintName "nest_1" TeamNum 2 Level 3 } SentryGun { HintName "nest_2" TeamNum 2 Level 3 } SentryGun { HintName "nest_4" TeamNum 2 Level 3 } SentryGun { HintName "nest_5" TeamNum 2 Level 3 } SentryGun { HintName "nest_6" TeamNum 2 Level 3 } SentryGun { HintName "nest_8" TeamNum 2 Level 3 } WaveSpawn // Dummy { TotalCount 0 SpawnCount 0 FirstSpawnWarningSound "physics/metal/metal_grate_impact_hard3.wav" FirstSpawnOutput { Target shakeit1 Action StartShake } } WaveSpawn // Dummy { TotalCount 0 SpawnCount 0 WaitBeforeStarting 540 FirstSpawnWarningSound "vo/announcer_ends_60sec.mp3" FirstSpawnOutput { Target warn_relay Action Trigger } } WaveSpawn // Dummy { TotalCount 0 SpawnCount 0 WaitBeforeStarting 590 FirstSpawnWarningSound "vo/announcer_ends_10sec.mp3" FirstSpawnOutput { Target warn_relay2 Action Trigger } } WaveSpawn { Name "blu" Where flankers TotalCount 2 MaxActive 2 SpawnCount 2 WaitBeforeStarting 10 WaitBetweenSpawns 10 TotalCurrency 0 Support 1 TFBot { Class Sniper ClassIcon heavy_robot_nys Skill Expert UseCustomModel "models/bots/sniper/bot_sniper.mdl" ExtAttr IgnoreNPC Action Sniper } } WaveSpawn { Name "blu" Where spawnbot_new TotalCount 3 MaxActive 3 SpawnCount 1 WaitBeforeStarting 0 WaitBetweenSpawns 5 TotalCurrency 0 Support 1 TFBot { Template T_TFBot_Soldier_DirectHit ClassIcon heavy_robot_nys UseCustomModel "models/bots/soldier/bot_soldier.mdl" AlwaysGlow 1 Action EscortFlag } } WaveSpawn { Name "busters" Where spawnbot_furnace TotalCount 1 MaxActive 1 SpawnCount 1 WaitBeforeStarting 20 WaitBetweenSpawnsAfterDeath 40 TotalCurrency 0 Support 1 TFBot { Template Engineer_Buster } } WaveSpawn { Name "part01" Where spawnbot_house Where spawnbot_mid_left1 TotalCount 6 MaxActive 6 SpawnCount 3 WaitBeforeStarting 0 WaitBetweenSpawns 15 TotalCurrency 100 DoneOutput { Target disable_forcefield_one Action Trigger } Squad { TFBot { Template T_TFBot_Giant_Heavyweapons_Deflector Name "Giant Deflector Engineer" AddTemplate RedEngiModelGiant } TFBot { Template T_TFBot_Giant_Medic_Kritz Name "Giant Kritzkrieg Engineer" ClassIcon medic_kritz_red AddCond { Name "TF_COND_REPROGRAMMED" } Attributes IgnoreFlag Attributes DisableDodge UseCustomModel "models/player/engineer.mdl" UseHumanAnimations 1 } TFBot { Template T_TFBot_Giant_Medic_Kritz Name "Giant Kritzkrieg Engineer" ClassIcon medic_kritz_red AddCond { Name "TF_COND_REPROGRAMMED" } Attributes IgnoreFlag Attributes DisableDodge UseCustomModel "models/player/engineer.mdl" UseHumanAnimations 1 } } } WaveSpawn { Name "part01a" Where spawnbot_house Where spawnbot_top TotalCount 25 MaxActive 10 SpawnCount 5 WaitBeforeStarting 0 WaitBetweenSpawns 2 TotalCurrency 75 RandomSpawn 1 TFBot { Class Pyro Name Engineer Skill Hard AddTemplate RedEngiModel CharacterAttributes { "airblast_destroy_projectile" 1 "airblast_pushback_no_viewpunch" 1 "cancel falling damage" 1 } } } WaveSpawn // Tank 25K HP { Name "redtank" WaitForAllDead "part01" TotalCount 1 MaxActive 1 SpawnCount 1 WaitBeforeStarting 0 WaitBetweenSpawns 0 TotalCurrency 100 Tank { Name "tankbossred" StartingPathTrackNode "tank_red_1" Health 25000 Speed 75 Skin 1 TeamNum 2 ClassIcon tank_red_lite Model "models/bots/boss_bot/boss_tankred.mdl" OnBombDroppedOutput { Target red_tank_deploy_relay Action Trigger } } } WaveSpawn { Name "part02" WaitForAllDead "part01" Where spawnbot_mid1 Where spawnbot_mid_left1 Where spawnbot_mid4 TotalCount 18 MaxActive 3 SpawnCount 3 WaitBeforeStarting 0 WaitBetweenSpawns 3 TotalCurrency 100 RandomSpawn 1 TFBot { Name "Large Machina Engineer" Class Sniper ClassIcon sniper_machina_nys Skill Expert Health 500 Scale 1.3 AimAt Head WeaponRestrictions PrimaryOnly AddCond { Name "TF_COND_AIMING" } AddTemplate RedEngiModel Item "The Machina" ItemAttributes { ItemName "The Machina" "sniper only fire zoomed" 0 "faster reload rate" 0.8 "damage bonus" 2 "projectile penetration" 1 "dmg bonus vs buildings" 1.5 } CharacterAttributes { "health regen" 1 "damage force reduction" 0.7 "airblast vulnerability multiplier" 0.7 } FireWeapon { Delay 0 Cooldown 3 Repeats 0 IfSeeTarget 1 Duration 0 Type "Secondary" } } } WaveSpawn { Name "part02" WaitForAllDead "part01" Where spawnbot_mid_left1 Where spawnbot_mid_left2 Where spawnbot_mid1 TotalCount 30 MaxActive 6 SpawnCount 3 WaitBeforeStarting 0 WaitBetweenSpawns 3 TotalCurrency 100 RandomSpawn 1 TFBot { Class Demoman Name Engineer Skill Expert AddTemplate RedEngiModel } } WaveSpawn { Name "part03" WaitForAllDead "part01" Where spawnbot_mid_left2 Where spawnbot_mid4 TotalCount 40 MaxActive 10 SpawnCount 5 WaitBeforeStarting 30 WaitBetweenSpawns 2 TotalCurrency 100 DoneOutput { Target disable_forcefield_two Action Trigger } TFBot { Name "Bazooka Engineer" Class Soldier ClassIcon soldier_bazooka Attributes HoldFireUntilFullReload Attributes AlwaysCrit Skill Hard WeaponRestrictions PrimaryOnly UseMeleeThreatPrioritization 1 Item "The Beggar's Bazooka" ItemAttributes { ItemName "The Beggar's Bazooka" "can overload" 0 "auto fires full clip" 1 "rocket specialist" 4 } CharacterAttributes { "blast dmg to self increased" 0 } AddTemplate RedEngiModel } } WaveSpawn { Name "part04" WaitForAllDead "part03" Where spawnbot_furnace Where spawnbot_mid_left2 Where spawnbot_front1 TotalCount 30 MaxActive 8 SpawnCount 2 WaitBeforeStarting 0 WaitBetweenSpawns 5 TotalCurrency 100 RandomSpawn 1 DoneOutput { Target boost_relay Action Trigger } Squad { TFBot { Template T_TFBot_Heavy_IronFist_Airblast StripItemSlot 0 Name "Steel Engilet" AddTemplate RedEngiModel } TFBot { Name "Shield Engineer" Class Medic ClassIcon medic_shield Attributes SpawnWithFullCharge Attributes DisableDodge Attributes ProjectileShield Skill Hard AddCond { Name "TF_COND_REPROGRAMMED" } UseCustomModel "models/player/engineer.mdl" UseHumanAnimations 1 Item "Lo-Fi Longwave" CharacterAttributes { "generate rage on heal" 1 "bot medic uber deploy delay duration" 99999 "heal rate bonus" 5 } } } } WaveSpawn { Name "part04" WaitForAllDead "part03" Where "" TotalCount 999 MaxActive 6 SpawnCount 1 WaitBeforeStarting 0 WaitBetweenSpawns 2 TotalCurrency 0 RandomSpawn 1 Support 1 TFBot { Template T_TFBot_Soldier_Extended_Buff_Banner_Fix Name "Extended Buff Engineer" AddTemplate RedEngiModel } } WaveSpawn { Name "hatchdefender" Where spawnbot_furnace TotalCount 1 MaxActive 1 SpawnCount 1 WaitBeforeStarting 0 WaitBetweenSpawns 15 TotalCurrency 200 DoneOutput { Target unblockhatch Action Trigger } TFBot { Name "Mobile Defence Machine" Class Soldier ClassIcon sentry_gun_lvl3_red_lite Health 4500 Action Mobber Attributes MiniBoss Attributes DisableDodge Skill Expert WeaponRestrictions MeleeOnly StripItemSlot 0 StripItemSlot 1 AddCond { Name "TF_COND_REPROGRAMMED" } SpawnTemplate { Name "RedLargeSentryHead" "origin" "0 0 60" "angles" "0 0 0" } SpawnTemplate "RotateShield" UseCustomModel "models/bots/soldier/bot_soldier.mdl" CharacterAttributes { "move speed bonus" 0.35 "damage force reduction" 0 "airblast vulnerability multiplier" 0 "airblast vertical vulnerability multiplier" 0 "override footstep sound set" 3 "voice pitch scale" 0 "health from packs decreased" 0.01 "increased jump height" 0.1 "no_duck" 1 "head scale" 0 "torso scale" -0.2 "hand scale" 0 "no_attack" 1 "cannot be backstabbed" 1 "cannot be headshot" 1 } } } WaveSpawn { Where spawnbot TotalCount 1 MaxActive 1 SpawnCount 1 WaitBeforeStarting 999999 WaitBetweenSpawns 0 TotalCurrency 0 HideIcon 1 // Hides icons from the wave bar. Should use a ClassIcon different from visible ones TFBot { Class Pyro ClassIcon hellmet_blank } } } Wave // Wave 7 { WaitWhenDone 65 Checkpoint Yes StartWaveOutput { Target wave_start_relay_classic Action Trigger } DoneOutput { Target wave_finished_relay Action Trigger } InitWaveOutput { Target holograms_3way_relay Action Trigger } SpawnTemplate { Name "spawnsentry" Origin "320 -2904 64" Angles "0 270 0" } SpawnTemplate { Name "spawnsentry" Origin "648 -2360 0" Angles "0 270 0" } // SentryGun // { // HintName "nest_1" // TeamNum 2 // Level 3 // Health 648 // } // SentryGun // { // HintName "nest_2" // TeamNum 2 // Level 3 // Health 648 // } // SentryGun // { // HintName "nest_4" // TeamNum 2 // Level 3 // Health 648 // } // SentryGun // { // HintName "nest_5" // TeamNum 2 // Level 3 // Health 648 // } // SentryGun // { // HintName "nest_6" // TeamNum 2 // Level 3 // Health 648 // } // SentryGun // { // HintName "nest_8" // TeamNum 2 // Level 3 // Health 648 // } WaveSpawn // Dummy { TotalCount 0 SpawnCount 0 FirstSpawnWarningSound "physics/metal/metal_grate_impact_hard3.wav" FirstSpawnOutput { Target shakeit1 Action StartShake } } WaveSpawn // Dummy { TotalCount 0 SpawnCount 0 WaitBeforeStarting 540 FirstSpawnWarningSound "vo/announcer_ends_60sec.mp3" FirstSpawnOutput { Target warn_relay Action Trigger } } WaveSpawn // Dummy { TotalCount 0 SpawnCount 0 WaitBeforeStarting 590 FirstSpawnWarningSound "vo/announcer_ends_10sec.mp3" FirstSpawnOutput { Target warn_relay2 Action Trigger } } WaveSpawn { Name "blu" Where spawnbot_new TotalCount 12 MaxActive 12 SpawnCount 12 WaitBeforeStarting 0 WaitBetweenSpawns 20 TotalCurrency 0 Support 1 FirstSpawnOutput { Target disable_forcefield_one Action Trigger } TFBot { Class Demoman ClassIcon heavy_robot_nys Skill Normal Attributes DisableDodge Action Mobber AimTrackingInterval 0.05 UseCustomModel "models/bots/demo/bot_demo.mdl" } } WaveSpawn { Name "finalboss" Where spawnbot_house TotalCount 1 MaxActive 1 SpawnCount 1 WaitBeforeStarting 0 WaitBetweenSpawns 0 TotalCurrency 0 FirstSpawnOutput { Target disable_forcefield_two Action Trigger } DoneOutput { Target unblockhatch Action Trigger } TFBot { Template T_TFBot_Engineer_BigBad // ExtAttr IgnoreRealPlayers } } WaveSpawn { Where spawnbot TotalCount 1 MaxActive 1 SpawnCount 1 WaitBeforeStarting 999999 WaitBetweenSpawns 0 TotalCurrency 0 HideIcon 1 // Hides icons from the wave bar. Should use a ClassIcon different from visible ones TFBot { Class Pyro ClassIcon hellmet_blank } } } }