#base robot_standard.pop #base robot_giant.pop #base yaki_berserker_test_monster_stats.pop WaveSchedule { StartingCurrency 10000 CanBotsAttackWhileInSpawnRoom yes RespawnWaveTime 0 AddSentryBusterWhenDamageDealtExceeds 0 AddSentryBusterWhenKillCountExceeds 0 ExtendedUpgradesOnly 1 ForceHoliday 2 NoReanimators 1 //Disable reanimators NoMvMDeathTune 1 //Disable distinctive sound played when a player is killed BonusRatioHalf 2 BotPushaway 0 NoRomevisionCosmetics 1 StandableHeads 1 NoHolidayPickups 1 FastNPCUpdate 1 NoThrillerTaunt 1 NoCritPumpkin 1 WaveStartCountdown 5 BotsDropSpells 1 SpellDropRateCommon 0 SpellDropRateGiant 0 DisableSound "music.mvm_end_last_wave" DisableSound "music.mvm_end_mid_wave" DisableSound "music.mvm_end_tank_wave" DisableSound "music.mvm_end_wave" DisableSound "music.mvm_lost_wave" DisableSound "music.mvm_start_last_wave" DisableSound "music.mvm_start_mid_wave" DisableSound "music.mvm_start_tank_wave" DisableSound "music.mvm_start_wave" // DisableSound "Announcer.MVM_Get_To_Upgrade" DisableSound "Announcer.MVM_Spy_Alert" DisableSound "Announcer.mvm_spybot_death" DisableSound "Announcer.mvm_spybot_death_all" DisableSound "Announcer.MVM_First_Wave_Start" DisableSound "Announcer.MVM_Wave_Start" // DisableSound "Announcer.MVM_Wave_End" // DisableSound "Announcer.MVM_Wave_Lose" DisableSound "Announcer.MVM_Final_Wave_Start" DisableSound "Announcer.MVM_Final_Wave_End" DisableSound "Announcer.MVM_Robots_Planted" DisableSound "Announcer.MVM_All_Dead" DisableSound "Announcer.MVM_Bomb_Alert_Entered" DisableSound "Announcer.MVM_Bomb_Alert_Near_Hatch" DisableSound "Announcer.MVM_Bomb_Alert_Deploying" DisableSound "Announcer.MVM_Sentry_Buster_Alert" DisableSound "Announcer.MVM_Sentry_Buster_Alert_Another" DisableSound "Announcer.MVM_General_Wave_Start" DisableSound "Announcer.MVM_Game_Over_Loss" DisableSound "Announcer.MVM_Tank_Planted" DisableSound "Announcer.MVM_Tank_Alert_Spawn" DisableSound "Announcer.MVM_Tank_Alert_Another" DisableSound "Announcer.MVM_Tank_Alert_Multiple" DisableSound "Announcer.MVM_Tank_Alert_Halfway" DisableSound "Announcer.MVM_Tank_Alert_Halfway_Multiple" DisableSound "Announcer.MVM_Tank_Alert_Near_Hatch" DisableSound "Announcer.MVM_Tank_Alert_Deploying" ClassLimit //Limits the number of specified classes { Medic 0 Scout 0 Spy 0 Engineer 0 Pyro 0 Demoman 0 Sniper 0 Heavyweapons 0 } ItemWhitelist //Only allows to use specified weapons below { Name "TF_WEAPON_SHOTGUN_SOLDIER" Name "TF_WEAPON_SMG" Name "Rocket Jumper" Name "The Rescue Ranger" Name "TF_WEAPON_SHOVEL" Name "The Righteous Bison" Name "The Half-Zatoichi" Name "The Black Box" Classname "tf_weapon_buff_item" Classname "tf_wearable" ItemSlot "11" //taunt slots ItemSlot "12" ItemSlot "13" ItemSlot "14" ItemSlot "15" ItemSlot "16" ItemSlot "17" ItemSlot "18" } CustomWeapon { Name "Railgun" OriginalItemName "TF_WEAPON_SHOTGUN_SOLDIER" "custom item model" "models/workshop_partner/weapons/c_models/c_dex_sniperrifle/c_dex_sniperrifle.mdl" "CARD: damage bonus" 3 "custom weapon fire sound" "Weapon_SniperRailgun_Large.Single" "mod max primary clip override" -1 "weapon spread bonus" 0.1 "sniper fires tracer" 1 "ragdolls become ash" 1 "can headshot" 1 "custom kill icon" "machina" "fire rate penalty" 2 } CustomWeapon { Name "Assault Rifle" OriginalItemName "TF_WEAPON_SMG" "custom item model" "models/weapons/c_models/c_tfc_sniperrifle/c_tfc_sniperrifle.mdl" "fire rate bonus" 0.8 "reload time increased" 2 "clip size bonus" 1.25 "maxammo secondary increased" 6.24 "custom kill icon" "the_classic" } CustomWeapon { Name "Power Crossbow" OriginalItemName "The Rescue Ranger" "custom item model" "models/workshop/weapons/c_models/c_crusaders_crossbow/c_crusaders_crossbow.mdl" "override projectile type" 8 "custom weapon fire sound" "weapons/crossbow/fire1.wav" "can headshot" 1 "custom kill icon" "crusaders_crossbow" } CustomWeapon { Name "Mauler" OriginalItemName "TF_WEAPON_SHOVEL" "custom item model" "models/workshop/weapons/c_models/c_spikewrench/c_spikewrench.mdl" "minicritboost on kill" 3 "speed_boost_on_hit" 3 "custom kill icon" "southern_comfort_kill" } CustomWeapon { Name "Robo Black Box" OriginalItemName "The Black Box" "damage penalty" 0.33 "fire rate bonus" 0.001 "faster reload rate" 0.9 "blast radius increased" 1.25 "projectile spread angle penalty" 2 "heal on hit for rapidfire" 60 } PlayerAttributes { "crit mod disabled" 0 "move speed bonus" 1.3 "cancel falling damage" 1 "collect currency on kill" 1 } ExtraLoadoutItems { AllowEquipOutsideSpawn 1 // Allow equipping items outside spawn Soldier { Primary { Item "Robo Black Box" AllowedMinWave 1 } Secondary { Item "Railgun" AllowedMinWave 1 } Secondary { Item "Assault Rifle" AllowedMinWave 1 } Melee { Item "Mauler" AllowedMinWave 1 } } } PointTemplates { //Players left template PlayersLeftLogic { NoFixup 1 math_counter { "targetname" "playersLeftAlive" "startvalue" "0" "outValue" "playersLeftFormat,$SetKey$Case01,,0,-1" "outValue" "playersLeftFormat,$Format,,0.2,-1" "outValue" "wipeCheck,SetValueCompare,,0,-1" } logic_compare { "targetname" "wipeCheck" "initialValue" "0" "CompareValue" "0" "OnEqualTo" "redalive_safety_timer,Enable,,0,-1" "OnNotEqualTo" "redalive_safety_timer,Disable,,0,-1" } logic_case { "targetname" "playersLeftFormat" "case16" "Players Alive: %" //formatting string "case01" "h" //Will be the number of players currently alive //"case02" "6" //Uncomment to give another param to show total team size, could be made dynamic but prob best left "ondefault" "playersLeftDisplay,$SetKey$Message,,0,-1" "ondefault" "playersLeftDisplay,Display,,0.2,-1" } game_text { "targetname" "playersLeftDisplay" "channel" "3" "color" "255 255 255" "color2" "255 255 255" "effect" "0" "fadein" "0" "fadeout" "1" "fxtime" "0.25" "holdtime" "9999" "message" "FunnyHahaPlaceholderText" "spawnflags" "1" "x" "0.85" "y" "0.1" } logic_relay { "targetname" "wipeTeam" "StartDisabled" "1" "OnTrigger" "bots_win,RoundWin,,0,-1" "OnTrigger" "wipe_fade,Fade,,0,-1" } logic_timer { "targetname" "redalive_safety_timer" "startdisabled" "1" "refiretime" "5" "OnTimer" "wipeTeam,Trigger,,0,-1" "OnTimer" "!self,Disable,,0.01,-1" } env_fade { "targetname" "wipe_fade" "duration" "1" "holdtime" "10" "renderamt" "100" "rendercolor" "164 0 0" "spawnflags" "0" } } PlayerTracker { NoFixup 1 OnSpawnOutput { Target "playersLeftAlive" Action "add" Param "1" } logic_relay { "$OnKilled" "playersLeftAlive,Subtract,1,0,0" } } //Player Res Template PlayerResInput { NoFixup 1 OnSpawnOutput { Target "playerResInWave" Action Test } logic_branch { "startvalue" "0" // used to detect if wave is started or not "targetname" "playerResInWave" "onTrue" "player,$SetVar$inWave,1,0,-1" "onFalse" "player,$SetVar$inWave,0,0,-1" } math_counter { "startvalue" "0" // value to change "targetname" "playerResVal1" "onGetValue" "player,$SetVar$hasRes,,0,-1" } math_counter { "startvalue" "1" // value to change "targetname" "playerResVal2" "onGetValue" "player,$SetVar$hasRes,,0,-1" } math_counter { "startvalue" "2" // value to change "targetname" "playerResVal3" "onGetValue" "player,$SetVar$hasRes,,0,-1" } } PlayerRes { keepalive 1 OnParentKilledOutput { Target "playerResConfirm" Action InValue Param "$$=''..?(int(!activator.hasRes) > 0, ?(int(!activator.inWave) < 1,string('99'),string('1')),?(int(!activator.inWave) < 1,string('99'),string('0')))" } logic_case { "targetname" "playerResConfirm" "case01" "1" "case02" "0" "case03" "99" "OnCase01" "!activator,$ForceRespawnDead,,2,-1" "OnCase01" "!activator,$SetVar$hasRes,$$=(int(!activator.hasRes) - 1),2,-1" // formatting string for if you have lifes "OnCase01" "player,$DisplayTextChat,$$=''.. '{f5c542}' .. string(!activator.m_szNetname) .. string(' {ffffff} has been revived, they have {f5c542}') .. string(!activator.hasRes) .. string('{ffffff} more lives left.'),2,-1" "OnCase01" "revivefx,PlaySound,,2.05,-1" "OnCase01" "revivefx,PlaySound,,2.05,-1" "OnCase01" "revivefx,kill,,3,-1" "OnCase01" "!self,kill,,3,-1" // formatting string for if no lifes "OnCase02" "player,$DisplayTextChat,$$=''.. '{f5c542}' .. string(!activator.m_szNetname) .. string(' {ffffff} has {ff2b2b} no more lives {ffffff}, they will be able to respawn at wave end.'),0,-1" "OnCase02" "!self,kill,,3,-1" "OnCase02" "revivefx,kill,,3,-1" "OnCase03" "!activator,$ForceRespawnDead,,2,-1" "OnCase03" "!self,kill,,0,-1" "OnCase03" "revivefx,kill,,0,-1" } ambient_generic { "targetname" "revivefx" "origin" "0 0 0" "volstart" "10" "spawnflags" "17" "radius" "999999" "preset" "0" "pitchstart" "125" "pitch" "125" "message" "#mvm/mvm_revive.wav" //to change respawn sound (plays globally) "lfotype" "0" "lforate" "0" "lfomodvol" "0" "lfomodpitch" "0" "health" "7.5" "fadeoutsecs" "0" "fadeinsecs" "0" "cspinup" "0" } } ModelFixSoldier { OnSpawnOutput { Target "!activator" Action "$SetModelOverride" Param "models/player/soldier.mdl" Delay 0.1 } } FakeIcon { NoFixup 1 logic_relay { "OnSpawn" "!self,Kill,,0,-1" "targetname" "yes" } } } SpawnTemplate "PlayersLeftLogic" SpawnTemplate "PlayerResInput" PlayerSpawnTemplate "PlayerTracker" PlayerSpawnTemplate { Name "PlayerRes" Bone "bip_spine_2" } PlayerSpawnTemplate { Name "ModelFixSoldier" Class Soldier } Templates { T_TFBot_BombHolder { Name "Bomb Holder" Class Soldier ClassIcon hellmet_blank Attributes IgnoreEnemies Attributes SuppressFire Skill Normal Tag bot_invisible CharacterAttributes { "move speed bonus" 0.0001 "voice pitch scale" 0 "hand scale" 0 "head scale" 0 "torso scale" 0 "dmg from ranged reduced" 0 "damage force reduction" 0 "airblast vulnerability multiplier" 0 "increased jump height" 0.01 "override footstep sound set" 9 } } T_TFBot_Zombie_Regular1 { Class Soldier Name "Zombie" Health 200 ClassIcon heavy_zombie_lite Skill Expert MaxVisionRange 400 UseHumanModel 1 WeaponRestrictions MeleeOnly StripItemSlot 0 StripItemSlot 1 Action Mobber Attributes DisableDodge Item "The Crossing Guard" Item "Zombie Soldier" ItemAttributes { ItemName "The Crossing Guard" "is invisible" 1 "custom hit sound" "npc/zombie/claw_strike1.wav" "custom kill icon" "unarmed_combat" "cannot taunt" 1 } CharacterAttributes { "move speed bonus" 0.75 "damage bonus" 1.25 "cancel falling damage" 1 "heal on kill" 150 "voice pitch scale" 0 "mult smack time" 0.1 "fire rate penalty" 1.33 "gesture speed increase" 0.5 "mult stun resistance" 0.5 "damage force reduction" 0.5 "airblast vulnerability multiplier" 0.5 "airblast vertical vulnerability multiplier" 0.5 "increased jump height" 1.5 } //PainSound =65|physics/body/body_medium_break4.wav DeathSound "npc/zombie/zombie_die1.wav" } T_TFBot_Zombie_Regular2 { Class Pyro Name "Zombie" Health 200 ClassIcon heavy_zombie_lite Skill Expert MaxVisionRange 400 UseHumanModel 1 WeaponRestrictions MeleeOnly StripItemSlot 0 StripItemSlot 1 Action Mobber Attributes DisableDodge Item "The Crossing Guard" Item "Zombie Pyro" ItemAttributes { ItemName "The Crossing Guard" "is invisible" 1 "custom hit sound" "npc/zombie/claw_strike1.wav" "custom kill icon" "unarmed_combat" "cannot taunt" 1 } CharacterAttributes { "move speed bonus" 0.75 "damage bonus" 1.25 "cancel falling damage" 1 "heal on kill" 150 "voice pitch scale" 0 "mult smack time" 0.1 "fire rate penalty" 1.33 "gesture speed increase" 0.5 "mult stun resistance" 0.5 "damage force reduction" 0.5 "airblast vulnerability multiplier" 0.5 "airblast vertical vulnerability multiplier" 0.5 "increased jump height" 1.5 } //PainSound =65|physics/body/body_medium_break4.wav DeathSound "npc/zombie/zombie_die2.wav" } T_TFBot_Zombie_Regular3 { Class Sniper Name "Zombie" Health 200 ClassIcon heavy_zombie_lite Skill Expert MaxVisionRange 400 UseHumanModel 1 WeaponRestrictions MeleeOnly StripItemSlot 0 StripItemSlot 1 Action Mobber Attributes DisableDodge Item "The Crossing Guard" Item "Zombie Sniper" Item "Ritzy Rick's Hair Fixative" ItemAttributes { ItemName "The Crossing Guard" "is invisible" 1 "custom hit sound" "npc/zombie/claw_strike1.wav" "custom kill icon" "unarmed_combat" "cannot taunt" 1 } CharacterAttributes { "move speed bonus" 0.75 "damage bonus" 1.25 "cancel falling damage" 1 "heal on kill" 150 "voice pitch scale" 0 "mult smack time" 0.1 "fire rate penalty" 1.33 "gesture speed increase" 0.5 "mult stun resistance" 0.5 "damage force reduction" 0.5 "airblast vulnerability multiplier" 0.5 "airblast vertical vulnerability multiplier" 0.5 "increased jump height" 1.5 } //PainSound =65|physics/body/body_medium_break4.wav DeathSound "npc/zombie/zombie_die3.wav" } T_TFBot_Zombie_Regular4 { Class Demoman Name "Zombie" Health 200 ClassIcon heavy_zombie_lite Skill Expert MaxVisionRange 400 UseHumanModel 1 WeaponRestrictions MeleeOnly StripItemSlot 0 StripItemSlot 1 Action Mobber Attributes DisableDodge Item "The Crossing Guard" Item "Zombie Demo" ItemAttributes { ItemName "The Crossing Guard" "is invisible" 1 "custom hit sound" "npc/zombie/claw_strike1.wav" "custom kill icon" "unarmed_combat" "cannot taunt" 1 } CharacterAttributes { "move speed bonus" 0.75 "damage bonus" 1.25 "cancel falling damage" 1 "heal on kill" 150 "voice pitch scale" 0 "mult smack time" 0.1 "fire rate penalty" 1.33 "gesture speed increase" 0.5 "mult stun resistance" 0.5 "damage force reduction" 0.5 "airblast vulnerability multiplier" 0.5 "airblast vertical vulnerability multiplier" 0.5 "increased jump height" 1.5 } //PainSound =65|physics/body/body_medium_break4.wav DeathSound "npc/zombie/zombie_die1.wav" } T_TFBot_Zombie_Regular5 { Class Heavyweapons Name "Zombie" Health 300 ClassIcon heavy_zombie_lite Skill Expert MaxVisionRange 400 UseHumanModel 1 WeaponRestrictions MeleeOnly StripItemSlot 0 StripItemSlot 1 Action Mobber Attributes DisableDodge Item "Upgradeable TF_WEAPON_FISTS" Item "Zombie Heavy" ItemAttributes { ItemName "Upgradeable TF_WEAPON_FISTS" "custom hit sound" "npc/zombie/claw_strike1.wav" "custom kill icon" "unarmed_combat" "cannot taunt" 1 } CharacterAttributes { "move speed bonus" 0.68 "damage bonus" 1.25 "cancel falling damage" 1 "heal on kill" 350 "voice pitch scale" 0 "mult smack time" 0.1 "fire rate penalty" 1.33 "gesture speed increase" 0.5 "mult stun resistance" 0.5 "damage force reduction" 0.5 "airblast vulnerability multiplier" 0.5 "airblast vertical vulnerability multiplier" 0.5 "increased jump height" 1.5 } //PainSound =65|physics/body/body_medium_break3.wav DeathSound "npc/zombie/zombie_die2.wav" } T_TFBot_Zombie_Regular6 { Class Medic Name "Zombie" Health 200 ClassIcon heavy_zombie_lite Skill Expert MaxVisionRange 400 UseHumanModel 1 WeaponRestrictions MeleeOnly StripItemSlot 0 StripItemSlot 1 Action Mobber Attributes DisableDodge Item "The Crossing Guard" Item "Zombie Medic" ItemAttributes { ItemName "The Crossing Guard" "is invisible" 1 "custom hit sound" "npc/zombie/claw_strike1.wav" "custom kill icon" "unarmed_combat" // "cannot taunt" 1 } CharacterAttributes { "move speed bonus" 0.75 "damage bonus" 1.25 "cancel falling damage" 1 "heal on kill" 150 "voice pitch scale" 0 "mult smack time" 0.1 "fire rate penalty" 1.33 "gesture speed increase" 0.5 "mult stun resistance" 0.5 "damage force reduction" 0.5 "airblast vulnerability multiplier" 0.5 "airblast vertical vulnerability multiplier" 0.5 "increased jump height" 1.5 "enables aoe heal" 1 } //PainSound =65|physics/body/body_medium_break4.wav DeathSound "npc/zombie/zombie_die1.wav" } T_TFBot_Zombie_Regular7 { Class Sniper Name "Zombie" Health 200 ClassIcon heavy_zombie_lite Skill Expert MaxVisionRange 400 UseHumanModel 1 WeaponRestrictions MeleeOnly StripItemSlot 0 StripItemSlot 1 Action Mobber Attributes DisableDodge UseCustomModel "models/player/spy.mdl" Skin 23 Item "The Crossing Guard" Item "Zombie Spy" ItemAttributes { ItemName "The Crossing Guard" "is invisible" 1 "custom hit sound" "npc/zombie/claw_strike1.wav" "custom kill icon" "unarmed_combat" "cannot taunt" 1 "crit from behind" 1 } CharacterAttributes { "move speed bonus" 0.75 "damage bonus" 1.25 "cancel falling damage" 1 "heal on kill" 150 "voice pitch scale" 0 "mult smack time" 0.1 "fire rate penalty" 1.33 "gesture speed increase" 0.5 "mult stun resistance" 0.5 "damage force reduction" 0.5 "airblast vulnerability multiplier" 0.5 "airblast vertical vulnerability multiplier" 0.5 "increased jump height" 1.5 } //PainSound =65|physics/body/body_medium_break4.wav DeathSound "npc/zombie/zombie_die3.wav" } T_TFBot_Zombie_Regular8 { Class Scout Name "Zombie" Health 200 ClassIcon heavy_zombie_lite Skill Expert MaxVisionRange 400 UseHumanModel 1 WeaponRestrictions MeleeOnly StripItemSlot 0 StripItemSlot 1 Action Mobber Attributes DisableDodge Item "The Crossing Guard" Item "Zombie Scout" Item "Millennial Mercenary" Item "The Bigg Mann on Campus" ItemAttributes { ItemName "The Crossing Guard" "is invisible" 1 "custom hit sound" "npc/zombie/claw_strike1.wav" "custom kill icon" "unarmed_combat" "cannot taunt" 1 } CharacterAttributes { "move speed bonus" 0.4 "damage bonus" 1.25 "cancel falling damage" 1 "heal on kill" 150 "voice pitch scale" 0 "mult smack time" 0.1 "fire rate penalty" 1.33 "gesture speed increase" 0.5 "mult stun resistance" 0.5 "damage force reduction" 0.5 "airblast vulnerability multiplier" 0.5 "airblast vertical vulnerability multiplier" 0.5 "increased jump height" 1.5 } //PainSound =65|physics/body/body_medium_break4.wav DeathSound "npc/zombie/zombie_die1.wav" } T_TFBot_Zombie_Samurai { Name "Samurai Zombie" Class Soldier ClassIcon demoknight_samurai Scale 1.3 Health 400 UseHumanModel 1 Attributes SpawnWithFullCharge Attributes DisableDodge Skill Expert MaxVisionRange 400 WeaponRestrictions MeleeOnly Action Mobber StripItemSlot 0 Item "The Concheror" Item "The Half-Zatoichi" Item "Soldier Samurai Hat" Item "Zombie Soldier" ItemAttributes { ItemName "The Half-Zatoichi" "honorbound" 0 } CharacterAttributes { "move speed bonus" 0.75 "damage bonus" 1.25 "cancel falling damage" 1 "heal on kill" 150 "voice pitch scale" 0 "mult smack time" 0.1 "fire rate penalty" 1.33 "gesture speed increase" 0.5 "mult stun resistance" 0.5 "damage force reduction" 0.5 "airblast vulnerability multiplier" 0.5 "airblast vertical vulnerability multiplier" 0.5 "increased jump height" 1.5 "increase buff duration" 20 "deploy time decreased" 0.5 } } T_TFBot_Soldier_Scrap { Name "Scrap Metal" Class Soldier ClassIcon soldier_gib_lite Health 200 Attributes DisableDodge Skill Expert MaxVisionRange 400 WeaponRestrictions MeleeOnly Action Mobber UseCustomModel "models/bots/soldier/bot_soldier_gibby.mdl" ItemAttributes { ItemName "TF_WEAPON_SHOVEL" "is invisible" 1 "custom kill icon" "fists" } CharacterAttributes { "voice pitch scale" 0 "fire rate penalty" 1.5 "mult smack time" 0 "gesture speed increase" 1.5 } } Engineer_Giant { Class Engineer ClassIcon heavy_zombie_lite_giant Health 2500 Attributes MiniBoss Attributes DisableDodge Skill Expert WeaponRestrictions MeleeOnly Action Mobber StripItemSlot 0 StripItemSlot 1 StripItemSlot 3 StripItemSlot 4 StripItemSlot 5 NoIdleSound 1 UseHumanModel 1 DeathSound "npc/ichthyosaur/attack_growl3.wav" Item "Necro Smasher" Item "Texas Slim's Dome Shine" Item "Talon Trotters" Item "Polycount Pin" Item "Zombie Engineer" ItemAttributes { ItemName "Necro Smasher" "bleeding duration" 10 "fire rate penalty" 1.5 "custom kill icon" "skull_tf" "melee cleave attack" 1 "dmg penalty vs players" 0.65 "is invisible" 1 } CharacterAttributes { "move speed bonus" 0.5 "damage force reduction" 0 "voice pitch scale" 0 "airblast vulnerability multiplier" 0.5 "airblast vertical vulnerability multiplier" 0 "override footstep sound set" 7 "gesture speed increase" 0.2 "rage giving scale" 0.1 } ItemColor { ItemName "Talon Trotters" Red 47 Green 79 Blue 79 } ItemModel { ItemName "Polycount Pin" Model "models/workshop/player/items/pyro/invasion_phobos_filter/invasion_phobos_filter.mdl" } } } Wave // Wave 1 { WaitWhenDone 65 Checkpoint Yes StartWaveOutput { Target wave_start_relay Action Trigger } DoneOutput { Target wave_finished_relay Action Trigger } InitWaveOutput { Target wave_init_relay_s1 Action Trigger } //Setting up the stage events (bomb teleports) WaveSpawn { FirstSpawnWarningSound "\vo\announcer_attack_controlpoints.mp3" Name "s1a1_cp1" StartWaveOutput { Target setup_pause_botspawn_auto Action Trigger } Where spawnbot_bomb WaitBeforeStarting 4 WaitBetweenSpawns 0 TotalCurrency 0 TFBot { Template T_TFBot_BombHolder } } //This spawns the collectible treasure chests on the map all over Stage 1 WaveSpawn { StartWaveOutput { Target setup_chest_spawn_s1 Action Trigger } } //This enables the Universal Trigger event relay, which the first door in the map uses to trigger all "event_*" events enabled (in this case, only event_unpause_botspawn is enabled). //Unlocks spawn doors in 5 seconds WaveSpawn { StartWaveOutput { Target event_universal_trigger Action Enable } WaitBeforeStarting 5 FirstSpawnOutput { Target setup_s1a1_unlockspawndoor Action Trigger } } WaveSpawn { TotalCount 0 SpawnCount 0 FirstSpawnOutput { Target playerResInWave //REQUIRED | Used to tell self res logic that wave is active/ turn it off again at the end of a wave Action ToggleTest } } WaveSpawn { TotalCount 0 SpawnCount 0 FirstSpawnOutput { Target playerResVal3 //set res count to one of 3 set Action GetValue } } WaveSpawn { Name "fake" WaitForAllDead "s1a1" Where spawnbot_bomb TotalCount 32 MaxActive 1 SpawnCount 1 WaitBeforeStarting 1 WaitBetweenSpawns 0 TotalCurrency 0 PointTemplate { SpawnAtEntity Where IsCrit 0 IsMiniBoss 0 ClassIcon heavy_zombie_lite Name "FakeIcon" Origin "0 0 0" Angles "0 0 0" SpawnCurrencyPack "yes" } } WaveSpawn { Name "s1a1" Where spawnbot_s1a1_frontdoor_staircase Where spawnbot_s1a1_cp1_back Where spawnbot_s1a1 TotalCount 32 MaxActive 12 SpawnCount 1 WaitBeforeStarting 10 WaitBetweenSpawns 0.5 TotalCurrency 200 Support Limited RandomSpawn 1 RandomChoice { RandomChoice { TFBot { Template T_TFBot_Zombie_Regular1 } TFBot { Template T_TFBot_Zombie_Regular2 } TFBot { Template T_TFBot_Zombie_Regular3 } TFBot { Template T_TFBot_Zombie_Regular4 } TFBot { Template T_TFBot_Zombie_Regular5 Tag drop_random_chance } TFBot { Template T_TFBot_Zombie_Regular6 Tag bot_healer } TFBot { Template T_TFBot_Zombie_Regular7 Tag bot_invisible } } } } //After the mob has been defeated, CP1 Unlocks WaveSpawn { WaitForAllDead "s1a1" StartWaveOutput { Target event_universal_trigger Action Enable } FirstSpawnOutput { Target event_bomb Action Enable } WaitBeforeStarting 3 DoneOutput { Target setup_s1a1_cp1_unlock Action Trigger } } //When CP1 is captured, kills "s1a1_cp1" to trigger: //the relay to close the spawn door (killing anyone inside) //unlocks the next door to area2. //event_bomb triggers the events by killing the bot "s1a1_closing"... WaveSpawn { WaitForAllDead "s1a1" FirstSpawnOutput { Target setup_s1a1_lockspawndoor Action Trigger } StartWaveOutput { Target setup_s1a1_unlockcp1door Action Trigger } DoneOutput { Target event_bomb Action Enable } } //Setting up the stage events (key trigger) //Stops any bots from spawning until the new area is opened. //When this bot dies, spawns area2 mobs WaveSpawn { WaitForAllDead "s1a1" Name "s1a1_closing" StartWaveOutput { Target event_universal_trigger Action Enable } Where spawnbot_bomb WaitBeforeStarting 0 WaitBetweenSpawns 0 TotalCurrency 0 TFBot { Template T_TFBot_BombHolder } } //Disables the key platform section of area2 WaveSpawn { StartWaveOutput { Target setup_s1a2_platforms_key_disable Action Trigger } } WaveSpawn { Name "fake" WaitForAllDead "s1a2_part1" Where spawnbot_bomb TotalCount 12 MaxActive 1 SpawnCount 1 WaitBeforeStarting 1 WaitBetweenSpawns 0 TotalCurrency 0 PointTemplate { SpawnAtEntity Where IsCrit 0 IsMiniBoss 0 ClassIcon demoknight_samurai Name "FakeIcon" Origin "0 0 0" Angles "0 0 0" SpawnCurrencyPack "yes" } } WaveSpawn { Name "s1a2_part1" WaitForAllDead "s1a1_closing" Where spawnbot_s1a2_back TotalCount 12 MaxActive 6 SpawnCount 1 WaitBeforeStarting 1 WaitBetweenSpawns 3 TotalCurrency 100 Support Limited FirstSpawnOutput { Target event_universal_trigger Action Enable } RandomChoice { Squad { TFBot { Template T_TFBot_Zombie_Samurai Tag drop_random_chance } } } } WaveSpawn { Name "fake" WaitForAllDead "s1a2_part1" Where spawnbot_bomb TotalCount 24 MaxActive 1 SpawnCount 1 WaitBeforeStarting 1 WaitBetweenSpawns 0 TotalCurrency 0 PointTemplate { SpawnAtEntity Where IsCrit 0 IsMiniBoss 0 ClassIcon soldier_gib_lite Name "FakeIcon" Origin "0 0 0" Angles "0 0 0" SpawnCurrencyPack "yes" } } WaveSpawn { Name "s1a2_part1" WaitForAllDead "s1a1_closing" Where spawnbot_s1a2_upperbalcony1 TotalCount 24 MaxActive 12 SpawnCount 6 WaitBeforeStarting 1 WaitBetweenSpawns 3 TotalCurrency 100 Support Limited RandomChoice { Squad { TFBot { Template T_TFBot_Soldier_Scrap } } } } WaveSpawn { Name "fake" WaitForAllDead "s1a2_part2" Where spawnbot_bomb TotalCount 3 MaxActive 1 SpawnCount 1 WaitBeforeStarting 1 WaitBetweenSpawns 10 TotalCurrency 0 PointTemplate { SpawnAtEntity Where IsCrit 0 IsMiniBoss 1 ClassIcon heavy_zombie_lite_giant Name "FakeIcon" Origin "0 0 0" Angles "0 0 0" SpawnCurrencyPack "yes" } } WaveSpawn { Name "s1a2_part2" WaitForAllSpawned "s1a2_part1" Where spawnbot_s1a2_upperbalcony2 TotalCount 3 MaxActive 3 SpawnCount 1 WaitBeforeStarting 10 WaitBetweenSpawns 10 TotalCurrency 200 Support Limited RandomChoice { Squad { TFBot { Template Engineer_Giant Tag drop_key_basic } } } } WaveSpawn { Name "fake" WaitForAllDead "s1a2_part2" Where spawnbot_bomb TotalCount 20 MaxActive 1 SpawnCount 1 WaitBeforeStarting 1 WaitBetweenSpawns 0 TotalCurrency 0 PointTemplate { SpawnAtEntity Where IsCrit 0 IsMiniBoss 0 ClassIcon heavy_shotgun Name "FakeIcon" Origin "0 0 0" Angles "0 0 0" SpawnCurrencyPack "yes" } } WaveSpawn { Name "s1a2_part2" WaitForAllSpawned "s1a2_part1" Where spawnbot_s1a2_tunnel TotalCount 20 MaxActive 5 SpawnCount 5 WaitBeforeStarting 12 WaitBetweenSpawns 5 TotalCurrency 100 RandomSpawn 1 Support Limited RandomChoice { Squad { TFBot { Template T_TFBot_Heavyweapons_Shotgun Skill Normal Attributes DisableDodge Action Mobber UseCustomModel "models/bots/heavy/bot_heavy_gibby.mdl" } } } } //Setting up the stage events (skeletons in this mission) //When this bot dies, starts the next mobs for area3. WaveSpawn { WaitForAllDead "s1a2_part2" Name "s1a2_key" StartWaveOutput { Target event_universal_trigger Action Enable } FirstSpawnOutput { Target event_bomb Action Enable } Where spawnbot_bomb WaitBeforeStarting 0 WaitBetweenSpawns 0 TotalCurrency 0 TFBot { Template T_TFBot_BombHolder } } //Engineer bot spawns for the Shop area //Use "Target kill_blu" "Action Trigger" to kill ALL enemies (including Ubered) at any time in the map. //Or, use "Target event_kill_blu" "Action Enable" to kill them when an Event occurs. WaveSpawn { WaitForAllSpawned "s1a2_key" Where spawnbot_s1_shop WaitBeforeStarting 0 WaitBetweenSpawns 0 TotalCurrency 0 Support Limited TFBot { Class Scout ClassIcon hellmet_blank Scale 0.01 Attributes IgnoreEnemies Attributes IgnoreFlag Attributes SuppressFire WeaponRestrictions MeleeOnly Tag bot_ubered } } //Enables the locked door @ s1a3_cp2 area //Disables s1a3_cp2 WaveSpawn { FirstSpawnOutput { Target setup_s1a3_cp2_lockdoor Action Trigger } DoneOutput { Target setup_s1a3_cp2_disable Action Trigger } } } }