#base robot_standard.pop #base robot_giant.pop #base robot_stardust_vscript.pop WaveSchedule { StartingCurrency 800 CanBotsAttackWhileInSpawnRoom no RespawnWaveTime 5 FixedRespawnWaveTime 1 AddSentryBusterWhenDamageDealtExceeds 2000 AddSentryBusterWhenKillCountExceeds 10 // EventPopfile Halloween ReverseWinConditions 1 AllowJoinTeamBlueMax 6 AllowJoinTeamBlue 1 HumansMustJoinTeam Blue SetCreditTeam 3 SniperAllowHeadshots 1 BluHumanInfiniteAmmo 1 BluHumanInfiniteCloak 0 FixedRespawnWaveTimeBlue 1 RespawnWaveTimeBlue 1 SendBotsToSpectatorImmediately 1 NoMvMDeathTune 1 NoRomevisionCosmetics 1 WaveStartCountdown 5 AllowBotExtraSlots 1 ExtraBotSlotsNoDeathcam 1 RobotLimit 40 FlagEscortCountOffset 10 BotsRandomCrit 1 RemoveBluVelocityLimit 1 MedigunShieldDamage 1 BluPlayersAreRobots 1 SniperHideLasers 1 ForceRedMoney 1 AllowBombBuffsForPlayerCarriers 1 FixHuntsmanDamageBonus 0 NoSkeletonSplit 1 //NoBluHumanFootsteps 1 BluHumanSpawnNoShoot 1 NoRedSniperBotHeadshots 1 BluHumanSpawnProtection 1 BluHumanTeleportOnSpawn 1 EnemyTeamForReverse red //Enemy team for reverse win condition //ForceRedMoney 1 BluHumanFlagCapture 1 BluHumanFlagPickup 1 SentryHintBombForwardRange 99999 // How far in front of the bomb the engineer can teleport in (default: 0) SentryHintBombBackwardRange 99999 // How far behind the bomb the engineer can teleport in (default: 3000) SentryHintMinDistanceFromBomb 0 // How far the engineer spot must be behind the bomb (default: 1300) //spawnbot_mission_sniper //spawnbot_mission_spy //spawnbot_mission_sentrybuster //spawnbot ClassLimit //Limits the number of specified classes { Scout 2 Soldier 2 Pyro 2 Demoman 2 Heavyweapons 1 Engineer 2 Medic 1 Sniper 2 Spy 2 } PlayerAttributes { Heavyweapons { "cannot upgrade bomb" 1 } Engineer { "max health additive bonus" 150 "build rate bonus" 0.5 } } //infinite ammo ItemAttributes { Itemname "The Widowmaker" "damage penalty" 0.8 } ItemAttributes { Itemname "The Rescue Ranger" "max health additive penalty" -100 } ItemAttributes { Itemname "The Short Circuit" "max health additive penalty" -50 "fire rate penalty" 5 } PointTemplates { AutoLogic { NoFixup 1 logic_relay { "targetname" "setup" "spawnflags" "2" "OnTrigger" "capturezone_blue,Disable,,0,-1" "OnTrigger" "robot_spawn,SetTeam,2,0,-1" "OnTrigger" "robot_spawn,AddOutput,OnTrigger robot_spawn:SetTeam:3:0:-1,0,-1" "OnTrigger" "wave_start_relay,AddOutput,OnTrigger robot_spawn:SetTeam:3:0:-1,0,-1" } OnSpawnOutput { Target setup Action Trigger } //walls prop_dynamic { "angles" "0 90 90" "model" "models/props_forest/wood_platform2.mdl" "modelscale" "3" "solid" "6" "spawnflags" "0" "targetname" "platform_wall_4" "origin" "52.9998 1887 177" } prop_dynamic { "angles" "45 185 90" "model" "models/props_forest/wood_platform2.mdl" "modelscale" "3.9" "skin" "0" "solid" "6" "spawnflags" "0" "targetname" "wall_spawn_main" "origin" "-233.995 1709.11 304.763" } prop_dynamic { "angles" "45 185 90" "model" "models/props_forest/wood_platform2.mdl" "modelscale" "3.9" "solid" "6" "spawnflags" "0" "targetname" "wall_spawn_main_2" "origin" "-293.166 1703.93 231.224" } prop_dynamic { "angles" "45 185 90" "model" "models/props_forest/wood_platform2.mdl" "modelscale" "3.9" "solid" "6" "spawnflags" "0" "targetname" "wall_spawn_main_2" "origin" "-312.185 1702.27 212.132" } prop_dynamic { "angles" "0 185 90" "model" "models/props_forest/wood_platform2.mdl" "modelscale" "2" "skin" "0" "solid" "6" "spawnflags" "0" "targetname" "platform_wall_3" "origin" "-53.8002 1727.89 210" } func_forcefield { "disablereceiveshadows" "0" "origin" "-241 1708 360.62" "renderamt" "255" "rendercolor" "255 255 255" "renderfx" "0" "rendermode" "0" "StartDisabled" "0" "targetname" "forcefield_wall_fix" "TeamNum" "2" "mins" "-310 -40 -268" "maxs" "310 40 268" } func_forcefield { "disablereceiveshadows" "0" "origin" "-1126 458 2539.28" "renderamt" "255" "rendercolor" "255 255 255" "renderfx" "0" "rendermode" "0" "StartDisabled" "0" "targetname" "forcefield_wall_tankspawn" "TeamNum" "2" "mins" "-128 -720 -2500" "maxs" "128 720 2500" } //allow players to use tank spawn trigger_add_tf_player_condition { "condition" "57" "duration" "-1" "origin" "-544 97.5 204" "spawnflags" "1" "StartDisabled" "0" "targetname" "allow_tankspawn" "mins" "-115 -75 -108" "maxs" "115 75 108" "filtername" "filter_bluteam" "OnStartTouch" "!activator,$AddPlayerAttribute,ignore player clip|1,0,-1" "OnStartTouch" "!activator,$AddPlayerAttribute,no_attack|1,0,-1" "OnStartTouch" "!activator,$AddPlayerAttribute,ignored by bots|1,0,-1" "OnEndTouch" "!activator,$RemovePlayerAttribute,ignore player clip,0,-1" "OnEndTouch" "!activator,$RemovePlayerAttribute,no_attack,0,-1" "OnEndTouch" "!activator,$RemovePlayerAttribute,ignored by bots,0,-1" } info_player_teamspawn { "angles" "0 255 0" "spawnflags" "511" "StartDisabled" "0" "targetname" "blu_spawnroom" "TeamNum" "3" "origin" "-451 694 186" } info_player_teamspawn { "angles" "0 255 0" "spawnflags" "511" "StartDisabled" "0" "targetname" "blu_spawnroom" "TeamNum" "3" "origin" "-473.5 695.7 180.9" } info_player_teamspawn { "angles" "0 255 0" "spawnflags" "511" "StartDisabled" "0" "targetname" "blu_spawnroom" "TeamNum" "3" "origin" "-594.1 825.5 166.9" } info_player_teamspawn { "angles" "0 255 0" "spawnflags" "511" "StartDisabled" "0" "targetname" "blu_spawnroom" "TeamNum" "3" "origin" "-427.4 761.6 184.3" } //hatch prop_dynamic { "angles" "0 180 0" "mindxlevel" "0" "model" "models/props_moonbase/moon_bridge01.mdl" "modelscale" "1.0" "skin" "0" "solid" "0" "spawnflags" "0" "origin" "4184 -2079 378" } //attribute_adder $filter_sendprop { "$name" "m_bIsMiniBoss" "$value" "1" "$compare" "equal" "targetname" "filter_giant" "OnPass" "!activator,$AddPlayerAttribute,voice pitch scale|0,0,-1" "OnPass" "!activator,$AddPlayerAttribute,damage force reduction|0,0,-1" } filter_activator_tfteam { "Negated" "0" "targetname" "filter_redteam_fix" "TeamNum" "2" "origin" "0 0 0" "OnPass" "!activator,$AddPlayerAttribute,use robot voice|1,0,-1" "OnPass" "!activator,$AddPlayerAttribute,crit mod disabled|0,0,-1" "OnPass" "!activator,$AddPlayerAttribute,not solid to players|1,0,-1" "OnPass" "!activator,$RemovePlayerAttribute,not solid to players,3,-1" "OnPass" "!activator,$AddCond,57 1.5,0,-1" "OnPass" "!activator,$AddCond,6 3,0,-1" // teleporter dust "OnPass" "filter_giant,Testactivator,!activator,0,-1" } trigger_add_tf_player_condition { "StartDisabled" "0" "targetname" "trigger_use" "condition" "57" "duration" "2" "spawnflags" "1" "mins" "-99999 -99999 -99999" "maxs" "99999 99999 99999" "origin" "0 0 0" "OnStartTouch" "filter_redteam_fix,Testactivator,!activator,0,-1" } //nobuild tank spawn func_respawnroom { "StartDisabled" "0" "targetname" "respawn_tank_stairside" "TeamNum" "3" "origin" "-1173 752.5 1676" "mins" "-833 -715 -2000" "maxs" "833 715 2000" } func_nobuild { "AllowDispenser" "0" "AllowSentry" "0" "AllowTeleporters" "0" "DestroyBuildings" "0" "StartDisabled" "0" "targetname" "nobuild_tankspawn_stairside" "TeamNum" "0" "origin" "-1173 752.5 1676" "mins" "-833 -715 -2000" "maxs" "833 715 2000" } func_respawnroom { "StartDisabled" "0" "targetname" "respawn_tank_stairside" "TeamNum" "3" "origin" "-1011.5 445 1676" "mins" "-300 -800 -2000" "maxs" "300 800 2000" } func_nobuild { "AllowDispenser" "0" "AllowSentry" "0" "AllowTeleporters" "0" "DestroyBuildings" "0" "StartDisabled" "0" "targetname" "nobuild_tankspawn_stairside" "TeamNum" "0" "origin" "-1011.5 445 1676" "mins" "-300 -800 -2000" "maxs" "300 800 2000" } //main spawn no build func_nobuild { "AllowDispenser" "0" "AllowSentry" "0" "AllowTeleporters" "0" "DestroyBuildings" "0" "StartDisabled" "0" "targetname" "nobuild_botspawn" "TeamNum" "0" "origin" "713.5 1867 444" "mins" "-2000 -1272 -650" "maxs" "2000 1272 650" } //upgrades prop_dynamic { "angles" "0 0 0" "model" "models/props_mvm/mvm_upgrade_blu.mdl" "modelscale" "1.0" "skin" "0" "solid" "6" "spawnflags" "0" "targetname" "upgrade" "origin" "66.9027 1849.87 112" } func_upgradestation { "StartDisabled" "0" "targetname" "upgrade_blu" "mins" "-45 -165 -80" "maxs" "45 165 80" "origin" "134 1857 167" } prop_dynamic { "angles" "0 90 0" "model" "models/props_mvm/mvm_upgrade_blu.mdl" "modelscale" "1.0" "skin" "0" "solid" "6" "spawnflags" "0" "targetname" "upgrade3" "origin" "-881 -232.509 126.269" } func_upgradestation { "StartDisabled" "0" "targetname" "upgrade_blu3" "mins" "-170 -75 -80" "maxs" "170 75 80" "origin" "-884.5 -190 209.56" } //navs func_nav_prerequisite // front of robot spawn { "targetname" "hold_front" "mins" "-205 -311 -76" // main entrance "maxs" "205 311 76" "Entity" "hold_front" "filtername" "filter_front" "origin" "416 -576 230.53" "spawnflags" "1" "start_disabled" "0" "StartDisabled" "0" "Task" "2" "Value" "999999" } filter_tf_bot_has_tag { "Negated" "0" "require_all_tags" "1" "tags" "tag_front_hold" "targetname" "filter_front" } //left choke func_nav_prerequisite // left choke { "targetname" "hold_choke_left" "mins" "-224 -224 -80" "maxs" "224 224 80" "Entity" "hold_choke_left" "filtername" "filter_choke_left" "origin" "1696 -736 304" "spawnflags" "1" "start_disabled" "0" "StartDisabled" "0" "Task" "2" "Value" "999999" } filter_tf_bot_has_tag { "Negated" "0" "require_all_tags" "1" "tags" "tag_hold_choke_left" "targetname" "filter_choke_left" } //big arch func_nav_prerequisite // big arch { "targetname" "hold_bigarch" "mins" "-224 -224 -80" "maxs" "224 224 80" "Entity" "hold_bigarch" "filtername" "filter_bigarch" "origin" "1719.6 -2143.57 240" "spawnflags" "1" "start_disabled" "0" "StartDisabled" "0" "Task" "2" "Value" "999999" } filter_tf_bot_has_tag { "Negated" "0" "require_all_tags" "1" "tags" "tag_hold_bigarch" "targetname" "filter_bigarch" } //right choke front func_nav_prerequisite // right choke { "targetname" "hold_right_choke" "mins" "-224 -224 -80" "maxs" "224 224 80" "Entity" "hold_right_choke" "filtername" "filter_right_choke" "origin" "278.81 -1993.73 240" "spawnflags" "1" "start_disabled" "0" "StartDisabled" "0" "Task" "2" "Value" "999999" } filter_tf_bot_has_tag { "Negated" "0" "require_all_tags" "1" "tags" "tag_hold_right_choke" "targetname" "filter_right_choke" } //streetway left func_nav_prerequisite // streetway { "targetname" "hold_left_streetway" "mins" "-224 -224 -80" "maxs" "224 224 80" "Entity" "hold_left_streetway" "filtername" "filter_left_streetway" "origin" "1583.75 -3314.78 232" "spawnflags" "1" "start_disabled" "0" "StartDisabled" "0" "Task" "2" "Value" "999999" } filter_tf_bot_has_tag { "Negated" "0" "require_all_tags" "1" "tags" "tag_hold_left_streetway" "targetname" "filter_left_streetway" } //hatch streetway func_nav_prerequisite // streetway hatch { "targetname" "hold_left_streetway_hatch" "mins" "-224 -224 -80" "maxs" "224 224 80" "Entity" "hold_left_streetway_hatch" "filtername" "filter_left_streetway_hatch" "origin" "2969.46 -3310.96 328" "spawnflags" "1" "start_disabled" "0" "StartDisabled" "0" "Task" "2" "Value" "999999" } filter_tf_bot_has_tag { "Negated" "0" "require_all_tags" "1" "tags" "tag_hold_left_streetway_hatch" "targetname" "filter_left_streetway_hatch" } //hatch func_nav_prerequisite // hatch { "targetname" "hold_hatch" "mins" "-331 -736 -80" "maxs" "331 736 80" "Entity" "hold_hatch" "filtername" "filter_hatch" "origin" "4212.76 -2144 468.57" "spawnflags" "1" "start_disabled" "0" "StartDisabled" "0" "Task" "2" "Value" "999999" } filter_tf_bot_has_tag { "Negated" "0" "require_all_tags" "1" "tags" "tag_hold_hatch" "targetname" "filter_hatch" } //right choke hatch func_nav_prerequisite // right choke hatch { "targetname" "hold_right_hatch_choke" "mins" "-224 -224 -80" "maxs" "224 224 80" "Entity" "hold_right_hatch_choke" "filtername" "filter_right_choke_hatch" "origin" "2930.7 -1486.39 336" "spawnflags" "1" "start_disabled" "0" "StartDisabled" "0" "Task" "2" "Value" "999999" } filter_tf_bot_has_tag { "Negated" "0" "require_all_tags" "1" "tags" "tag_hold_hatch_choke_right" "targetname" "filter_right_choke_hatch" } } RobotSpawns { NoFixup 1 info_player_teamspawn { "angles" "0 90 0" "spawnflags" "511" "StartDisabled" "0" "targetname" "spawnbot_rightpath_hatch" "TeamNum" "2" "origin" "3837.59 -1283.44 503.344" } info_player_teamspawn { "angles" "0 90 0" "spawnflags" "511" "StartDisabled" "0" "targetname" "spawnbot_rightpath_hatch_center" "TeamNum" "2" "origin" "3136.82 -2023.18 320" } info_player_teamspawn { "angles" "0 90 0" "spawnflags" "511" "StartDisabled" "0" "targetname" "spawnbot_rightpath_hotel" "TeamNum" "2" "origin" "2724.12 -954.761 352" } info_player_teamspawn { "angles" "0 90 0" "spawnflags" "511" "StartDisabled" "0" "targetname" "spawnbot_rightpath_bigarch" "TeamNum" "2" "origin" "2118 -1856 161" } info_player_teamspawn { "angles" "0 90 0" "spawnflags" "511" "StartDisabled" "0" "targetname" "spawnbot_rightpath_cafe" "TeamNum" "2" "origin" "38.658 -2754.7 160" } info_player_teamspawn { "angles" "0 15 0" "spawnflags" "511" "StartDisabled" "0" "targetname" "spawnbot_rightpath_boxes" "TeamNum" "2" "origin" "-96.6121 -2212.39 152" } info_player_teamspawn { "angles" "0 15 0" "spawnflags" "511" "StartDisabled" "0" "targetname" "spawnbot_rightpath_stairs_front" "TeamNum" "2" "origin" "-90.0696 -1338.08 192" } info_player_teamspawn { "angles" "0 15 0" "spawnflags" "511" "StartDisabled" "0" "targetname" "spawnbot_leftpath_hatch" "TeamNum" "2" "origin" "4078.06 -3088.77 384" } info_player_teamspawn { "angles" "0 15 0" "spawnflags" "511" "StartDisabled" "0" "targetname" "spawnbot_leftpath_doorway_arch" "TeamNum" "2" "origin" "2658.08 -2926.33 320" } info_player_teamspawn { "angles" "0 15 0" "spawnflags" "511" "StartDisabled" "0" "targetname" "spawnbot_leftpath_red_truck" "TeamNum" "2" "origin" "3024 -3793.01 256" } info_player_teamspawn { "angles" "0 15 0" "spawnflags" "511" "StartDisabled" "0" "targetname" "spawnbot_leftpath_upper_path" "TeamNum" "2" "origin" "2147.5 -3903.61 320" } info_player_teamspawn { "angles" "0 210 0" "spawnflags" "511" "StartDisabled" "0" "targetname" "spawnbot_leftpath_sniper_truck" "TeamNum" "2" "origin" "1739.48 -2978.58 184.089" } info_player_teamspawn { "angles" "0 0 0" "spawnflags" "511" "StartDisabled" "0" "targetname" "spawnbot_leftpath_stairs" "TeamNum" "2" "origin" "916.838 -3056.01 320" } info_player_teamspawn { "angles" "0 0 0" "spawnflags" "511" "StartDisabled" "0" "targetname" "spawnbot_leftpath_cross_section" "TeamNum" "2" "origin" "1439.78 -1829.67 160" } info_player_teamspawn { "angles" "0 0 0" "spawnflags" "511" "StartDisabled" "0" "targetname" "spawnbot_leftpath_bigammo" "TeamNum" "2" "origin" "2055.86 -977.179 320" } info_player_teamspawn { "angles" "0 0 0" "spawnflags" "511" "StartDisabled" "0" "targetname" "spawnbot_building_mid" "TeamNum" "2" "origin" "1052.63 -1339.27 384" } info_player_teamspawn { "angles" "0 0 0" "spawnflags" "511" "StartDisabled" "0" "targetname" "spawnbot_front_right" "TeamNum" "2" "origin" "-458.853 -1100.85 160" } info_player_teamspawn { "angles" "0 0 0" "spawnflags" "511" "StartDisabled" "0" "targetname" "spawnbot_front_left" "TeamNum" "2" "origin" "1166.6 -310.953 256" } info_player_teamspawn { "angles" "0 0 0" "spawnflags" "511" "StartDisabled" "0" "targetname" "spawnbot_front" "TeamNum" "2" "origin" "112.7 -147.4 217.8" } info_player_teamspawn { "angles" "0 0 0" "spawnflags" "511" "StartDisabled" "0" "targetname" "spawnbot_front_back" "TeamNum" "2" "origin" "489.156 -878.295 323.609" } //prop prop_dynamic { "angles" "0 0 0" "DefaultAnim" "running" "model" "models/buildables/teleporter_light.mdl" "modelscale" "1.0" "skin" "0" "solid" "0" "spawnflags" "0" "targetname" "teleporter" "origin" "2658.08 -2926.33 320" } prop_dynamic { "angles" "0 0 0" "DefaultAnim" "running" "model" "models/buildables/teleporter_light.mdl" "modelscale" "1.0" "skin" "0" "solid" "0" "spawnflags" "0" "targetname" "teleporter" "origin" "96 -32 168.268" } prop_dynamic { "angles" "0 0 0" "DefaultAnim" "running" "model" "models/buildables/teleporter_light.mdl" "modelscale" "1.0" "skin" "0" "solid" "0" "spawnflags" "0" "targetname" "teleporter" "origin" "1732.87 -2960.89 160" } prop_dynamic { "angles" "0 0 0" "DefaultAnim" "running" "model" "models/buildables/teleporter_light.mdl" "modelscale" "1.0" "skin" "0" "solid" "0" "spawnflags" "0" "targetname" "teleporter" "origin" "3136 -2008.75 320" } prop_dynamic { "angles" "0 0 0" "DefaultAnim" "running" "model" "models/buildables/teleporter_light.mdl" "modelscale" "1.0" "skin" "0" "solid" "0" "spawnflags" "0" "targetname" "teleporter" "origin" "3885.71 -1288.78 456.716" } prop_dynamic { "angles" "0 0 0" "DefaultAnim" "running" "model" "models/buildables/teleporter_light.mdl" "modelscale" "1.0" "skin" "0" "solid" "0" "spawnflags" "0" "targetname" "teleporter" "origin" "4072.9 -3072 384" } prop_dynamic { "angles" "0 0 0" "DefaultAnim" "running" "model" "models/buildables/teleporter_light.mdl" "modelscale" "1.0" "skin" "0" "solid" "0" "spawnflags" "0" "targetname" "teleporter" "origin" "2726 -957.979 353" } prop_dynamic { "angles" "0 0 0" "DefaultAnim" "running" "model" "models/buildables/teleporter_light.mdl" "modelscale" "1.0" "skin" "0" "solid" "0" "spawnflags" "0" "targetname" "teleporter" "origin" "3012.61 -3801.96 248" } prop_dynamic { "angles" "0 0 0" "DefaultAnim" "running" "model" "models/buildables/teleporter_light.mdl" "modelscale" "1.0" "skin" "0" "solid" "0" "spawnflags" "0" "targetname" "teleporter" "origin" "2110.83 -3915.63 320" } prop_dynamic { "angles" "0 0 0" "DefaultAnim" "running" "model" "models/buildables/teleporter_light.mdl" "modelscale" "1.0" "skin" "0" "solid" "0" "spawnflags" "0" "targetname" "teleporter" "origin" "896 -3056.54 322.837" } prop_dynamic { "angles" "0 0 0" "DefaultAnim" "running" "model" "models/buildables/teleporter_light.mdl" "modelscale" "1.0" "skin" "0" "solid" "0" "spawnflags" "0" "targetname" "teleporter" "origin" "2118.13 -1856 161" } prop_dynamic { "angles" "0 0 0" "DefaultAnim" "running" "model" "models/buildables/teleporter_light.mdl" "modelscale" "1.0" "skin" "0" "solid" "0" "spawnflags" "0" "targetname" "teleporter" "origin" "2048 -974.088 320" } prop_dynamic { "angles" "0 0 0" "DefaultAnim" "running" "model" "models/buildables/teleporter_light.mdl" "modelscale" "1.0" "skin" "0" "solid" "0" "spawnflags" "0" "targetname" "teleporter" "origin" "1171.15 -328.851 256" } prop_dynamic { "angles" "0 0 0" "DefaultAnim" "running" "model" "models/buildables/teleporter_light.mdl" "modelscale" "1.0" "skin" "0" "solid" "0" "spawnflags" "0" "targetname" "teleporter" "origin" "1060.97 -1386.12 388.111" } prop_dynamic { "angles" "0 0 0" "DefaultAnim" "running" "model" "models/buildables/teleporter_light.mdl" "modelscale" "1.0" "skin" "0" "solid" "0" "spawnflags" "0" "targetname" "teleporter" "origin" "1437.36 -1842.66 160" } prop_dynamic { "angles" "0 0 0" "DefaultAnim" "running" "model" "models/buildables/teleporter_light.mdl" "modelscale" "1.0" "skin" "0" "solid" "0" "spawnflags" "0" "targetname" "teleporter" "origin" "34.6631 -2743.8 160" } prop_dynamic { "angles" "0 0 0" "DefaultAnim" "running" "model" "models/buildables/teleporter_light.mdl" "modelscale" "1.0" "skin" "0" "solid" "0" "spawnflags" "0" "targetname" "teleporter" "origin" "-92.5801 -2219.08 152" } prop_dynamic { "angles" "0 0 0" "DefaultAnim" "running" "model" "models/buildables/teleporter_light.mdl" "modelscale" "1.0" "skin" "0" "solid" "0" "spawnflags" "0" "targetname" "teleporter" "origin" "-91.1754 -1334.3 175.217" } prop_dynamic { "angles" "0 0 0" "DefaultAnim" "running" "model" "models/buildables/teleporter_light.mdl" "modelscale" "1.0" "skin" "0" "solid" "0" "spawnflags" "0" "targetname" "teleporter" "origin" "-470.864 -1089.09 160" } prop_dynamic { "angles" "0 0 0" "DefaultAnim" "running" "model" "models/buildables/teleporter_light.mdl" "modelscale" "1.0" "skin" "0" "solid" "0" "spawnflags" "0" "targetname" "teleporter" "origin" "96 -32 168.268" } prop_dynamic { "angles" "0 0 0" "DefaultAnim" "running" "model" "models/buildables/teleporter_light.mdl" "modelscale" "1.0" "skin" "0" "solid" "0" "spawnflags" "0" "targetname" "teleporter" "origin" "1732.87 -2960.89 160" } prop_dynamic { "angles" "0 0 0" "DefaultAnim" "running" "model" "models/buildables/teleporter_light.mdl" "modelscale" "1.0" "solid" "0" "targetname" "teleporter" "origin" "475.704 -886.283 243.699" } } BombGuard { NoFixup 1 OnSpawnOutput { Target !activator Action $SetLocalOrigin Param "4130 -2079 439" } OnSpawnOutput { Target intel Action SetTeam Param 2 } OnSpawnOutput { Target intel Action $SetLocalOrigin Param "4130 -2079 439" } OnSpawnOutput { Target intel Action AddOutput Param "OnDrop !self:SetTeam:3:0:1" } OnSpawnOutput { Target func_flagdetectionzone Action Disable } } Wave1 { NoFixup 1 logic_relay { "targetname" "engineer_relay" "spawnflags" "2" "OnTrigger" "engie_nest_*,Disable,,0,-1" } bot_hint_sentrygun { "angles" "0 285 0" "sequence" "5" "spawnflags" "0" "targetname" "nest_blu" // "b" is to stop this from being disabled alongside all other engi nests "TeamNum" "2" "origin" "4155.58 -2517.1 384.368" } bot_hint_teleporter_exit { "angles" "0 195 0" "targetname" "nest_blu" "TeamNum" "2" "origin" "4317.8 -2541.06 384" } bot_hint_engineer_nest { "angles" "0 195 0" "spawnflags" "0" "targetname" "nest_blu" "TeamNum" "2" "origin" "4237.65 -2526.54 384" } trigger_catapult { "AirCtrlSupressionTime" "-1.0" "applyAngularImpulse" "0" "entryAngleTolerance" "0.0" "exactVelocityChoiceType" "0" "filtername" "filter_carrier" "launchDirection" "280 91 0" "launchTarget" "catapult_location" "lowerThreshold" "0.15" "onlyVelocityCheck" "0" "origin" "462.5 159 249.5" "physicsSpeed" "0" "playerSpeed" "450" "spawnflags" "1" "StartDisabled" "0" "targetname" "bomb_catapult" "upperThreshold" "0.30" //"useExactVelocity" "1500" "mins" "-150 -100 -190" "maxs" "150 100 190" "OnCatapulted" "!self,Disable,,0,-1" "OnCatapulted" "!self,Enable,,2,-1" } trigger_add_tf_player_condition { "condition" "129" "duration" "-1" "filtername" "filter_carrier" "origin" "1733.5 2010.5 348.17" "spawnflags" "1" "StartDisabled" "0" "targetname" "winner" "mins" "-550 -315 -110" "maxs" "550 315 110" "OnStartTouchAll" "bots_win,RoundWin,,0,-1" "OnStartTouchAll" "!self,Kill,,0.1,-1" } filter_tf_condition { "condition" "65" "Negated" "0" "targetname" "filter_carrier" "origin" "-427 -382 130.65" } info_target { "angles" "0 0 0" "spawnflags" "0" "targetname" "catapult_location" "origin" "359 972 365" } training_annotation { "display_text" "The bomb carrier will be catapulted here!" "lifetime" "10" "offset" "0" "targetname" "catapult_notice" "origin" "466 301 249.5" } OnSpawnOutput { Target intel Action AddOutput Param "OnPickupTeam2 catapult_notice:Show::0:1" } OnSpawnOutput { Target intel Action AddOutput Param "OnPickup1 !activator:$DisplayTextCenter:!!! RETURN TO THE CARRIER IMMEDIATELY !!!:0:-1" } OnSpawnOutput { Target intel Action AddOutput Param "OnPickup1 !activator:$AddCond:65:0:-1" } OnSpawnOutput { Target intel Action AddOutput Param "OnDrop1 !activator:$RemoveCond:65:0:-1" } OnSpawnOutput { Target intel Action AddOutput Param "OnPickupTeam2 path_bomb_*:Start::0:-1" } OnSpawnOutput { Target intel Action AddOutput Param "OnPickupTeam2 cap_glow:Enable::0:-1" } OnSpawnOutput { Target intel Action AddOutput Param "OnDrop1 path_bomb_*:Stop::0:-1" } OnSpawnOutput { Target intel Action AddOutput Param "OnDrop1 cap_glow:Disable::0:-1" } tf_glow { "GlowColor" "88 133 162 255" "Mode" "2" "target" "cap_glow" "targetname" "glow_point" "origin" "1461 2125 273" } prop_dynamic { "angles" "0 270 0" "model" "models/props_gameplay/cap_square_256.mdl" "modelscale" "1.75" "renderfx" "14" "rendermode" "3" "SetBodyGroup" "0" "skin" "2" "solid" "0" "StartDisabled" "0" "spawnflags" "0" "targetname" "cap_glow" "origin" "1483 2048 252" } OnSpawnOutput { Target cap_glow Action Disable Delay 0.01 } //laser back to hatch info_particle_system { "angles" "0 0 0" "cpoint1" "path_bomb_2" "effect_name" "passtime_beam" "flag_as_weather" "0" "start_active" "0" "targetname" "path_bomb_1" "origin" "4131 -1872 413" } info_particle_system { "angles" "0 0 0" "cpoint1" "path_bomb_3" "effect_name" "passtime_beam" "flag_as_weather" "0" "start_active" "0" "targetname" "path_bomb_2" "origin" "4137 -1576 418" } info_particle_system { "angles" "0 0 0" "cpoint1" "path_bomb_4" "effect_name" "passtime_beam" "flag_as_weather" "0" "start_active" "0" "targetname" "path_bomb_3" "origin" "3699 -1576 404" } info_particle_system { "angles" "0 0 0" "cpoint1" "path_bomb_5" "effect_name" "passtime_beam" "flag_as_weather" "0" "start_active" "0" "targetname" "path_bomb_4" "origin" "2808 -1576 292" } info_particle_system { "angles" "0 0 0" "cpoint1" "path_bomb_6" "effect_name" "passtime_beam" "flag_as_weather" "0" "start_active" "0" "targetname" "path_bomb_5" "origin" "2808 -1576 281" } info_particle_system { "angles" "0 0 0" "cpoint1" "path_bomb_7" "effect_name" "passtime_beam" "flag_as_weather" "0" "start_active" "0" "targetname" "path_bomb_6" "origin" "2659 -1700 274" } info_particle_system { "angles" "0 0 0" "cpoint1" "path_bomb_8" "effect_name" "passtime_beam" "flag_as_weather" "0" "start_active" "0" "targetname" "path_bomb_7" "origin" "2538 -1817 169.028" } info_particle_system { "angles" "0 0 0" "cpoint1" "path_bomb_9" "effect_name" "passtime_beam" "flag_as_weather" "0" "start_active" "0" "targetname" "path_bomb_8" "origin" "2158.95 -2163 172" } info_particle_system { "angles" "0 0 0" "cpoint1" "path_bomb_10" "effect_name" "passtime_beam" "flag_as_weather" "0" "start_active" "0" "targetname" "path_bomb_9" "origin" "259 -2160.31 168" } info_particle_system { "angles" "0 0 0" "cpoint1" "path_bomb_11" "effect_name" "passtime_beam" "flag_as_weather" "0" "start_active" "0" "targetname" "path_bomb_10" "origin" "318.215 -1021.38 265" } info_particle_system { "angles" "0 0 0" "cpoint1" "path_bomb_12" "effect_name" "passtime_beam" "flag_as_weather" "0" "start_active" "0" "targetname" "path_bomb_11" "origin" "-314.584 -607.323 192" } info_particle_system { "angles" "0 0 0" "effect_name" "hwn_cart_cap_neutral" "flag_as_weather" "0" "start_active" "0" "targetname" "path_bomb_12" "origin" "494.692 150.989 183.219" } } } SpawnTemplate AutoLogic SpawnTemplate RobotSpawns CustomWeapon { "Prefer Giant" { OriginalItemName "MvM GateBot Light Scout" "custom item model" "models\empty.mdl" "special item description" "You will be prioritised when becoming Giant! (if possible)" } "Prefer Common" { OriginalItemName "MvM GateBot Light Medic" "custom item model" "models\empty.mdl" "special item description" "You will be deprioritised from becoming Giant! (if possible)" } } ExtraLoadoutItems { Misc2 // Extended syntax, Item slot to use { Item "Prefer Common" AllowedMinWave 2 AllowedMaxWave 2 } Misc2 // Extended syntax, Item slot to use { Item "Prefer Giant" AllowedMinWave 2 AllowedMaxWave 2 } } Wave // Wave 1 { StartWaveOutput { Target wave_start_relay Action Trigger } DoneOutput { Target wave_finished_relay Action Trigger } InitWaveOutput { Target gamerules Action RunScriptCode Param " IncludeScript(`popextensions_main.nut`, getroottable()) local _root = getroottable() function IncludeHavanaGeneral(path) { try IncludeScript(format(`havana_vscripts/%s`, path), _root) catch(e) printl(e) } IncludeHavanaGeneral(`havana_reverse_general.nut`) " } SpawnTemplate Wave1 Explanation { Line "{green}OBJECTIVE: {blue} Fight your way toward the hatch, obtain the {yellow}disarmed Bomb, {blue}then return to the carrier!" Line "{red}WARNING: {blue} Additional forces may be present after mainwave, but these forces {yellow}do not have to be defeated!" } WaveSpawn { Name "a1" Where spawnbot_front_back TotalCount 2 MaxActive 2 SpawnCount 1 WaitBeforeStarting 0.1 WaitBetweenSpawns 25 TotalCurrency 100 FirstSpawnWarningSound "music\mvm_start_wave.wav" RandomSpawn 1 TFBot { Template T_TFBot_Giant_Demoman_Burst_Fix Attributes AlwaysCrit ClassIcon demo_burst_red_giant Action Mobber Attributes DisableDodge Tag "tag_front_hold" AddCond { Index 43 } } } WaveSpawn { Name "a1" Where spawnbot_building_mid TotalCount 22 MaxActive 6 SpawnCount 1 WaitBeforeStarting 0.1 WaitBetweenSpawns 2.25 TotalCurrency 100 RandomSpawn 1 TFBot { Template T_TFBot_Pyro_Fix CharacterAttributes { "airblast disabled" 1 } Skill Normal Action Mobber Attributes DisableDodge Tag "tag_hold_left_streetway_hatch" AddCond { Index 43 } } } WaveSpawn { Name "a1.1" Where spawnbot_front_left Where spawnbot_front_right TotalCount 15 MaxActive 3 SpawnCount 1 WaitBeforeStarting 0.1 WaitBetweenSpawns 2 TotalCurrency 100 RandomSpawn 1 TFBot { Template T_TFBot_Heavy_IronFist_Airblast Action Mobber ClassIcon heavy_steelfist_pusher Attributes DisableDodge Tag "tag_front_hold" AddCond { Index 43 } } } WaveSpawn { Name "a2.1" WaitForAllSpawned "a1" Where spawnbot_rightpath_cafe TotalCount 6 MaxActive 6 SpawnCount 6 WaitBeforeStarting 20 WaitBetweenSpawns 2 TotalCurrency 50 RandomSpawn 1 Squad { TFBot { Template T_TFBot_Giant_Soldier_DirectHit Action Mobber Attributes DisableDodge Tag "tag_hold_right_choke" AddCond { Index 43 } } TFBot { Template T_TFBot_Medic_BigHeal_Fix Attributes DisableDodge Tag "tag_hold_right_choke" AddCond { Index 43 } } TFBot { Template T_TFBot_Medic_BigHeal_Fix Attributes DisableDodge Tag "tag_hold_right_choke" AddCond { Index 43 } } TFBot { Template T_TFBot_Medic_BigHeal_Fix Attributes DisableDodge Tag "tag_hold_right_choke" AddCond { Index 43 } } TFBot { Template T_TFBot_Medic_BigHeal_Fix Attributes DisableDodge Tag "tag_hold_right_choke" AddCond { Index 43 } } TFBot { Template T_TFBot_Medic_BigHeal_Fix Attributes DisableDodge Tag "tag_hold_right_choke" AddCond { Index 43 } } } } WaveSpawn { Name "a2" WaitForAllSpawned "a1" Where spawnbot_leftpath_bigammo TotalCount 2 MaxActive 2 SpawnCount 1 WaitBeforeStarting 20 WaitBetweenSpawns 20 TotalCurrency 100 RandomSpawn 1 TFBot { Template T_TFBot_Giant_Pyro CharacterAttributes { "airblast disabled" 1 } Action Mobber Attributes DisableDodge Tag "tag_hold_left_choke" AddCond { Index 43 } } } WaveSpawn { Name "a2" WaitForAllSpawned "a1" Where spawnbot_rightpath_boxes Where spawnbot_leftpath_cross_section TotalCount 39 MaxActive 13 SpawnCount 6 WaitBeforeStarting 20 WaitBetweenSpawns 2 TotalCurrency 50 RandomSpawn 1 RandomChoice { TFBot { Class Scout Skill Normal Action Mobber Attributes DisableDodge Tag "tag_hold_right_choke" AddCond { Index 43 } } TFBot { Class Scout Skill Normal Action Mobber Attributes DisableDodge Tag "tag_hold_left_choke" AddCond { Index 43 } } TFBot { Class Scout Skill Normal Action Mobber Attributes DisableDodge Tag "tag_hold_right_choke" AddCond { Index 43 } } TFBot { Class Scout Skill Normal Action Mobber Attributes DisableDodge Tag "tag_hold_left_choke" AddCond { Index 43 } } TFBot { Class Scout Skill Normal Action Mobber Attributes DisableDodge AddCond { Index 43 } } } } WaveSpawn { Name "a3" WaitForAllSpawned "a2" Where spawnbot_rightpath_hotel Where spawnbot_leftpath_red_truck TotalCount 4 MaxActive 2 SpawnCount 2 WaitBeforeStarting 20 WaitBetweenSpawns 20 TotalCurrency 100 RandomSpawn 1 RandomChoice { TFBot { Template T_TFBot_Giant_Sniper_Huntsman ItemAttributes { Itemname "the huntsman" "fire rate bonus" 0.4 "damage bonus" 1.5 } Action Mobber Attributes DisableDodge ClassIcon sniper_bow_multi Tag "tag_hold_left_streetway_hatch" AddCond { Index 43 } } TFBot { Template T_TFBot_Giant_Sniper_Huntsman ItemAttributes { Itemname "the huntsman" "fire rate bonus" 0.4 "damage bonus" 1.5 } Action Mobber Attributes DisableDodge ClassIcon sniper_bow_multi Tag "tag_hold_hatch_choke_right" AddCond { Index 43 } } } } WaveSpawn { Name "a3.1" WaitForAllSpawned "a2" Where spawnbot_rightpath_hotel Where spawnbot_leftpath_red_truck TotalCount 28 MaxActive 12 SpawnCount 3 WaitBeforeStarting 20 WaitBetweenSpawns 4 TotalCurrency 100 RandomSpawn 1 RandomChoice { TFBot { Class Soldier Action Mobber Skill Normal Attributes DisableDodge Tag "tag_hold_left_streetway_hatch" AddCond { Index 43 } } TFBot { Class Soldier Action Mobber Skill Normal Attributes DisableDodge Tag "tag_hold_hatch_choke_right" AddCond { Index 43 } } TFBot { Class Soldier Action Mobber Skill Normal Attributes DisableDodge Tag "tag_hold_left_streetway_hatch" AddCond { Index 43 } } TFBot { Class Soldier Action Mobber Skill Normal Attributes DisableDodge Tag "tag_hold_hatch_choke_right" AddCond { Index 43 } } // TFBot // { // Class Soldier // Action Mobber // Skill Normal // Attributes DisableDodge // AddCond // { // Index 43 // } // } } } WaveSpawn { Name "a3.1" WaitForAllSpawned "a2" Where spawnbot_rightpath_hotel Where spawnbot_leftpath_red_truck TotalCount 17 MaxActive 6 SpawnCount 1 WaitBeforeStarting 20 WaitBetweenSpawns 2 TotalCurrency 100 RandomSpawn 1 RandomChoice { TFBot { Class Heavyweapons Action Mobber Skill Normal Attributes DisableDodge Tag "tag_hold_left_streetway_hatch" AddCond { Index 43 } } TFBot { Class Heavyweapons Action Mobber Skill Normal Attributes DisableDodge Tag "tag_hold_hatch_choke_right" AddCond { Index 43 } } TFBot { Class Heavyweapons Action Mobber Skill Normal Attributes DisableDodge Tag "tag_hold_left_streetway_hatch" AddCond { Index 43 } } TFBot { Class Heavyweapons Action Mobber Skill Normal Attributes DisableDodge Tag "tag_hold_hatch_choke_right" AddCond { Index 43 } } // TFBot // { // Class Heavyweapons // Action Mobber // Skill Normal // Attributes DisableDodge // AddCond // { // Index 43 // } // } } } WaveSpawn // Dummy { WaitForAllDead "guard" TotalCount 1 SpawnCount 1 WaitBeforeStarting 0 StartWaveWarningSound "music\mvm_start_tank_wave.wav" Support Limited FirstSpawnOutput { Target engineer_relay Action Trigger Delay 0.1 } } WaveSpawn { Name "Engineer" WaitForAllDead "guard" Where spawnbot TotalCount 9999 MaxActive 1 SpawnCount 1 WaitBeforeStarting 1 WaitBetweenSpawns 0.2 TotalCurrency 0 Support Limited TFBot { Class Engineer Attributes TeleportToHint Attributes Miniboss Name "Giant Engineer" Health 5000 TeleportWhere spawnbot ClassIcon teleporterfix CharacterAttributes { "move speed bonus" 0.5 "build rate bonus" 0.01 "damage force reduction" 0.4 "airblast vulnerability multiplier" 0.4 "override footstep sound set" 0 "engy building health bonus" 4 "head scale" 0.75 "collect currency on kill" 1 } } } WaveSpawn { Name "guard" Where spawnbot_leftpath_hatch Where spawnbot_rightpath_hatch TotalCount 1 MaxActive 1 SpawnCount 1 WaitBeforeStarting 0 WaitBetweenSpawns 0 TotalCurrency 50 DoneOutput { Target gamerules Action CallScriptFunction Param "CarrierGlow" } TFBot { Template T_TFBot_Giant_Heavyweapons Action FetchFlag Attributes DisableDodge Attributes UseBossHealthBar ClassIcon boss_ironhelm Tag "hold_hatch" SpawnTemplate BombGuard Name "The Commander" Item "The Team Captain" CharacterAttributes { "no_jump" 1 "move speed penalty" 0.01 "health regen" 15 } AddCond { Index 43 } } } WaveSpawn { Name "guard" Where spawnbot_leftpath_hatch Where spawnbot_rightpath_hatch TotalCount 8 MaxActive 8 SpawnCount 8 WaitBeforeStarting 0.1 WaitBetweenSpawns 0 TotalCurrency 50 RandomSpawn 1 TFBot { Template T_TFBot_Soldier_Extended_Battalion CharacterAttributes { "increase buff duration" 9999 "deploy time decreased" 0.01 } Action EscortFlag Attributes DisableDodge AddCond { Index 43 } } } /////////////////////////////////////// ////////////////PART 2///////////////// /////////////////////////////////////// WaveSpawn { Name "a1_part2" WaitForAllDead "a3" Where spawnbot_rightpath_hatch_center TotalCount 1 MaxActive 1 SpawnCount 1 WaitBeforeStarting 0 WaitBetweenSpawns 0 TotalCurrency 0 HideIcon 1 FirstSpawnWarningSound "mvm\giant_heavy\giant_heavy_entrance.wav" FirstSpawnOutput { Target gamerules Action CallScriptFunction Param "SetIconsWave1" } TFBot { Template T_TFBot_Giant_Demoman_Burst_Fix Attributes AlwaysCrit Tag "gburst_demo" Action FetchFlag Attributes DisableDodge AddCond { Index 43 } } } WaveSpawn { Name "a1_part2" WaitForAllDead "a3" Where spawnbot_rightpath_hotel Where spawnbot_leftpath_doorway_arch TotalCount 30 MaxActive 10 SpawnCount 5 WaitBeforeStarting 0 WaitBetweenSpawns 5 TotalCurrency 0 HideIcon 1 RandomSpawn 1 RandomChoice { TFBot { Class Scout Skill Normal Tag "bot_scout" Action FetchFlag Attributes DisableDodge AddCond { Index 43 } } TFBot { Class Scout Skill Normal Action Mobber Tag "bot_scout" Attributes DisableDodge AddCond { Index 43 } } TFBot { Class Scout Skill Normal Action Mobber Tag "bot_scout" Tag "tag_hold_hatch" Attributes DisableDodge AddCond { Index 43 } } } } WaveSpawn { Name "a2_part2" WaitForAllSpawned "a1_part2" Where spawnbot_rightpath_bigarch Where spawnbot_leftpath_upper_path TotalCount 50 MaxActive 20 SpawnCount 12 WaitBeforeStarting 20 WaitBetweenSpawns 5 TotalCurrency 0 HideIcon 1 RandomSpawn 1 Squad { TFBot { Template T_TFBot_Pyro_Fix Skill Normal Action FetchFlag Tag "bot_pyro" Attributes DisableDodge AddCond { Index 43 } } TFBot { Template T_TFBot_Medic_BigHeal_Fix Skill Normal Tag "medic_bigheal" Action Mobber Attributes DisableDodge AddCond { Index 43 } } } } WaveSpawn { Name "a2_part2" WaitForAllSpawned "a1_part2" Where spawnbot_leftpath_sniper_truck Where spawnbot_leftpath_cross_section TotalCount 2 MaxActive 2 SpawnCount 1 WaitBeforeStarting 20 WaitBetweenSpawns 15 TotalCurrency 0 HideIcon 1 TFBot { Template T_TFBot_Giant_Soldier_DirectHit Action FetchFlag Attributes DisableDodge Tag "soldier_directhit" AddCond { Index 43 } } } WaveSpawn { Name "a3_part2" WaitForAllSpawned "a2_part2" Where spawnbot_front_left Where spawnbot_front_right TotalCount 9999 MaxActive 9 SpawnCount 3 WaitBeforeStarting 20 WaitBetweenSpawns 5 TotalCurrency 0 HideIcon 1 TFBot { Template T_TFBot_Sniper_Huntsman Action Mobber Attributes DisableDodge Tag "sniper_hunts" AddCond { Index 43 } } } WaveSpawn { Name "a3_part2" WaitForAllSpawned "a2_part2" Where spawnbot_front TotalCount 1 MaxActive 1 SpawnCount 1 WaitBeforeStarting 20 WaitBetweenSpawns 20 TotalCurrency 0 HideIcon 1 FirstSpawnWarningSound "vo\mvm\mght\heavy_mvm_m_domination12.mp3" DoneWarningSound "vo\mvm\mght\heavy_mvm_m_paincrticialdeath02.mp3" TFBot { Template T_TFBot_Giant_Heavyweapons Action FetchFlag Attributes AlwaysCrit Attributes UseBossHealthBar Attributes DisableDodge Attributes HoldFireUntilFullReload AlwaysGlow 1 WeaponRestrictions SecondaryOnly ClassIcon boss_ironhelm Item "The Family Business" Name "The Commander Mk. II" Item "The Team Captain" Tag "heavy_boss" ItemAttributes { Itemname "The Family Business" "damage penalty" 0.5 "fire rate penalty" 1.5 "bullets per shot bonus" 10 "faster reload rate" 0.65 "health regen" 15 } AddCond { Index 43 } } } } Wave // Wave 2 { StartWaveOutput { Target wave_start_relay Action Trigger } DoneOutput { Target wave_finished_relay Action Trigger } InitWaveOutput { Target gamerules Action RunScriptCode Param " IncludeScript(`popextensions_main.nut`, getroottable()) local _root = getroottable() function IncludeHavanaGeneral(path) { try IncludeScript(format(`havana_vscripts/%s`, path), _root) catch(e) printl(e) } IncludeHavanaGeneral(`havana_reverse_general.nut`) " } Explanation { Line "{blue}Those {green}shield generators {blue}will prevent future invasions if we do not {red}destroy them NOW!" } WaveSpawn { Name "a1" Where spawnbot_front_left TotalCount 898 MaxActive 55 SpawnCount 3 WaitBeforeStarting 0 WaitBetweenSpawns 5 TotalCurrency 0 FirstSpawnOutput { Target gamerules Action CallScriptFunction Param "DetermineGiantPlayer" } TFBot { Template T_TFBot_Sniper_Huntsman Action Mobber Attributes DisableDodge AddCond { Index 43 } } } } }