//Downtown Reverse by Skin King // Difficulty (?) #base robot_giant.pop #base robot_standard.pop #base robot_standard_red.pop #base robot_giant_red.pop #base robot_gatebot.pop #base robot_damno.pop #base reverse_timer.pop WaveSchedule { StartingCurrency 800 CanBotsAttackWhileInSpawnRoom yes WaveStartCountdown 5 RespawnWaveTimeBlue 1 FixedRespawnWaveTimeBlue 1 AddSentryBusterWhenDamageDealtExceeds 0 RobotLimit 26 ForceHoliday 2 NoHolidayPickups 1 MaxTotalPlayers 6 DisplayRobotDeathNotice 0 NoReanimators 1 NoMvMDeathTune 1 TextPrintTime 0 SniperAllowHeadshots 1 SentryBusterFriendlyFire 0 StandableHeads 1 //For reverse only ReverseWinConditions 1 BluHumanFlagCapture 0 BluHumanFlagPickup 1 BluHumanInfiniteAmmo 0 FlagCarrierMovementPenalty 0.5 AllowJoinTeamBlueMax 6 AllowJoinTeamBlue 1 HumansMustJoinTeam blue BluPlayersAreRobots 1 PrecacheModel "models/props_tumb/mvm/tank_shield.mdl" PrecacheModel "models/bots/sniper_boss/bot_sniper_boss.mdl" PrecacheModel "models/bots/demo/red_sentry_buster.mdl" PrecacheModel "models/props_mvm/mvm_upgrade_blu.mdl" PrecacheModel "models/props_mvm/robot_spawnpoint.mdl" PrecacheModel "models/props_mvm/no_entry.mdl" PrecacheModel "models/bots/boss_bot/boss_tankred.mdl" PrecacheModel "models/bots/boss_bot/boss_tankred_damage1.mdl" PrecacheModel "models/bots/boss_bot/boss_tankred_damage2.mdl" PrecacheModel "models/bots/boss_bot/boss_tankred_damage3.mdl" PrecacheModel "models/bots/boss_bot/boss_tankred_part1_destruction.mdl" PrecacheModel "models\bots\boss_bot\boss_blimpred.mdl" //This is the older blimp model using it because why not. PrecacheModel "models\bots\boss_bot\boss_blimpred_damage1.mdl" PrecacheModel "models\bots\boss_bot\boss_blimpred_damage2.mdl" PrecacheModel "models\bots\boss_bot\boss_blimpred_damage3.mdl" PrecacheModel "models/bots/boss_bot/boss_blimp.mdl" PrecacheModel "models/bots/boss_bot/boss_blimp_damage1.mdl" PrecacheModel "models/bots/boss_bot/boss_blimp_damage2.mdl" PrecacheModel "models/bots/boss_bot/boss_blimp_damage3.mdl" PrecacheModel "models/bots/boss_bot/boss_blimp_damage_explode.mdl" PrecacheModel "models/bots/boss_bot/boss_blimp_explode.mdl" OverrideSounds { "MVM.GiantCommonExplodes" "ambient/explosions/explode_3.wav" "MVM.BombWarning" "combine_bank_alarm.mp3" "MVM.TankDeploy" "items/cart_explode_trigger.wav" } 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" PrecacheModel "models/props_mvm/robot_spawnpoint.mdl" PrecacheModel "models/workshop/weapons/c_models/c_celtic_cleaver/c_demo_sultan_sword.mdl" PlayerAttributes { Engineer { "max health additive bonus" 150 "cannot pick up intelligence" 1 } Spy { "cannot pick up intelligence" 1 } Scout { "cannot pick up intelligence" 1 } Heavyweapons { "cannot pick up intelligence" 1 } Medic { "cannot pick up intelligence" 1 } Soldier { "cannot pick up intelligence" 1 } Demoman { "cannot pick up intelligence" 1 } Pyro { "cannot pick up intelligence" 1 } Sniper { "cannot pick up intelligence" 1 } } ExtendedUpgrades // upgrades designed by Skin King and PDA Expert. { PersonalityChip_Scout { Name "Personality Chip" Attribute "air dash count" // The attribute name Description "+2 Double jumps." Cap 2 // Maximum amount of the attribute Increment 2 // Attribute increment value per level Cost 400 PlayerUpgrade 1 // Makes this appear on the player section. AllowPlayerClass Scout } PersonalityChip_Soldier // increases blast radius of rocket launchers, allowing you to slay more enemies in a single shot. { Name "Personality Chip" Attribute "Blast radius increased" // The attribute name Description "80% Blast radius increase." Cap 1.8 // Maximum amount of the attribute Increment 0.8 // Attribute increment value per level PlayerUpgrade 1 // Makes this appear on the player section. Cost 600 AllowPlayerClass Soldier } PersonalityChip_Pyro // increases vs burning dmg. { Name "Personality Chip" Attribute "weapon burn time reduced" // The attribute name Description "20% Overall damage penalty, but you're able to mark enemies for death with all of your weapons." Cap 0.5 // Maximum amount of the attribute Increment -0.5 // Attribute increment value per level PlayerUpgrade 1 // Makes this appear on the player section. Cost 600 AllowPlayerClass Pyro SecondaryAttributes { "damage penalty" -0.2 "add cond on hit" 48 "add cond on hit duration" 0.5 } } PersonalityChip_Demoman // full reload + sticky stickies { Name "Personality Chip" Attribute "reload full clip at once" // The attribute name Description "Reload full clip at once, stickybombs now stick to enemies." Cap 1 // Maximum amount of the attribute Increment 1 // Attribute increment value per level PlayerUpgrade 1 // Makes this appear on the player section. Cost 600 AllowPlayerClass Demoman DisallowedUpgrade { Upgrade PersonalityChip_Demoman2 Level 1 } SecondaryAttributes { "stickybomb stick to enemies" 1 "Reload time increased" 1.5 } } PersonalityChip_Demoman2 // minigiant { Name "Personality Chip" Attribute "max health additive bonus" // The attribute name Description "+75 max health, 100% shield impact damage and 25% faster shield recharge rate." Cap 75 // Maximum amount of the attribute Increment 75 // Attribute increment value per level PlayerUpgrade 1 // Makes this appear on the player section. Cost 600 AllowPlayerClass Demoman DisallowedUpgrade { Upgrade PersonalityChip_Demoman Level 1 } SecondaryAttributes { "charge impact damage increased" 1 "charge recharge rate increased" 0.25 } } PersonalityChip_Heavy { Name "Personality Chip" Attribute "increase player capture value" // The attribute name Description "+1 Capture rate." Cap 1 // Maximum amount of the attribute Increment 1 // Attribute increment value per level PlayerUpgrade 1 // Makes this appear on the player section. Cost 600 AllowPlayerClass Heavyweapons } PersonalityChip_Engineer // maybe add extra disp range if it proves underwhelming? { Name "Personality Chip" Attribute "Repair rate increased" // The attribute name Description "Repair faster." Cap 2 // Maximum amount of the attribute Increment 1 // Attribute increment value per level PlayerUpgrade 1 // Makes this appear on the player section. Cost 800 AllowPlayerClass Engineer } PersonalityChip_Medic { Name "Personality Chip" Attribute "add cond when active" Description "See teammates through walls while not carrying medigun, 50% heal rate bonus and gain the ability to heal engineer buildings." Cap 114 Increment 114 PlayerUpgrade 1 Cost 600 AllowPlayerClass Medic SecondaryAttributes //Secondary attributes applied when upgrade is applied, for each upgrade level { "heal rate bonus" 0.5 "medic machinery beam" 2 // from 5 } } PersonalityChip_Sniper { Name "Personality Chip" Attribute "ammo regen" Description "15% Ammo regen." Cap 0.15 Increment 0.15 PlayerUpgrade 1 Cost 600 AllowPlayerClass Sniper } PersonalityChip_Spy // probably too weak for the price, maybe bumb up to 50 if it proves to be that. { Name "Personality Chip" Attribute "max health additive bonus" // The attribute name Description "+75 Max health." Cap 75 // Maximum amount of the attribute Increment 75 // Attribute increment value per level Cost 600 PlayerUpgrade 1 // Makes this appear on the player section. AllowPlayerClass Spy } } ExtraSpawnPoint { Name "newsstand" TeamNum 2 X "-280" Y "420" Z "-90" } ExtraSpawnPoint { Name "portapotty" TeamNum 2 X "350" Y "-855" Z "-127" } ExtraSpawnPoint //cloned spawn for cart swarm feature { Name "portapotty_swarm" TeamNum 2 StartDisabled 1 X "350" Y "-855" Z "-127" } ExtraSpawnPoint // same here { Name "newsstand_swarm" TeamNum 2 StartDisabled 1 X "-280" Y "420" Z "-90" } ExtraSpawnPoint //// May or May not use { Name "cratesbytankspawn" TeamNum 2 X "1952" Y "1008" Z "-231" } ExtraSpawnPoint { Name "mannholecover" TeamNum 2 X "-1763" Y "-752" Z "-127" } ExtraSpawnPoint { Name "dumptruck" TeamNum 2 X "-1149" Y "1465" Z "-21" } ExtraSpawnPoint { Name "hatchgaurdian" TeamNum 2 StartDisabled 1 X "-3296" Y "-178" Z "178" } ExtraSpawnPoint { Name "redspawn" TeamNum 2 StartDisabled 1 X "-4385" Y "-210" Z "-17" } ExtraSpawnPoint { Name "gianthatchsupport" TeamNum 2 StartDisabled 1 X "-3355" Y "-615" Z "-15" } ExtraTankPath { Name "pl_path" Node "2538.94 1130.53 -96" Node "2539 1049 -96" Node "2539 774 -96" Node "2529.94 -276.58 -200" Node "2529.94 -636.577 -200" Node "2393.94 -764.577 -200" Node "1737.94 -764.577 -200" Node "1646 -634 -200" Node "1642 -313 -200" Node "1641.94 -56.58 -200" Node "1641.94 135.42 -200" Node "1561.94 231.42 -200" Node "1225.94 231.42 -104" Node "1129.94 135.42 -104" Node "1129.94 -56.58 -104" Node "1130 -399 -104" Node "898 -480 -104" Node "364 -480 -120" Node "71 -712 -120" Node "71 -1177 -120" Node "-65 -1329 -120" Node "-944 -1328 -120" Node "-1104 -1152 -120" Node "-1104 -112 -120" Node "-1176 16 -120" Node "-1176 128 -120" Node "-1176 452 -120" Node "-1176 808 -120" Node "-1280 864 -120" Node "-1488 864 -120" Node "-1584 976 -120" Node "-1584 1456 -120" Node "-1744 1568 -120" Node "-1984 1568 -120" Node "-2320 1568 0" Node "-3056 1568 0" Node "-3152 1424 0" Node "-3152 800 0" Node "-3056 720 0" Node "-2912 720 0" Node "-2804 483 0" Node "-2804 227 0" Node "-2804 -61 0" Node "-2984 -185 0" Node "-3120 -185 0" Node "-3281 -185 0" } ExtraTankPath // very basic alt path, no real smooth turns here boyo { Name "pl_path2" Node "2538.94 1130.53 -96" // 1 Node "2539 1049 -96" // 2 Node "2539 774 -96" // 3 Node "2529.94 -276.58 -200" // 4 Node "2529.94 -636.577 -200" // 5 Node "2393.94 -764.577 -200" // 6 Node "1737.94 -764.577 -200" // 7 Node "1646 -634 -200" // 8 Node "1642 -313 -200" // 9 Node "1641.94 -56.58 -200" // 10 Node "1641.94 135.42 -200" // 11 Node "1561.94 231.42 -200" // 12 Node "1225.94 231.42 -104" // 13 Node "1129.94 135.42 -104" // 14 Node "1129.94 -56.58 -104" // 15 Node "1130 -399 -104" // 16 Node "898 -480 -104" // 17 Node "364 -480 -120" // 18 Node "112 -320 -120" // 19 Node "112 808 -120" // 20 Node "-1080 864 -120" // 21 Node "-1100 864 -120" // 22 Node "-1176 808 -120" // 23 Node "-1176 452 -120" // 24 Node "-1176 128 -120" // 25 Node "-1176 16 -120" // 26 Node "-1176 -50 -120" // 27 Node "-1176 -1320 -120" // 28 Node "-1880 -1320 -120" // 29 Node "-2260 -1320 0" // 30 Node "-2750 -1320 0" // 31 Node "-2915 -915 0" // 32 Node "-3050 -415 0" // 33 Node "-3135 -332 0" // 34 Node "-3300 -360 0" // 35 } SpawnTemplate "main" SpawnTemplate "corelogic" SpawnTemplate "payload_logic" SpawnTemplate "initialize_logic_rocketminisentry" SpawnTemplate "spawns_red" SpawnTemplate "spawnpoints" //Put this right below your Pointtemplate area SpawnTemplate "textualtimer" PointTemplates { textualtimer { OnSpawnOutput { Param 8 // change the value for minutes, set to 20 cuz the point temp counts down by 2 for some reason Target minutehand Action SetValue } OnSpawnOutput { Param 0 // change the value for seconds Target secondhand Action SetValue } logic_relay { "targetname" "loserelay" "startdisabled" "1" "ontrigger" "bots_win_red,RoundWin,,2,-1" "ontrigger" "realtimer,cancelpending,,2,-1" "onspawn" "wave_start*,addoutput,ontrigger realtimer:trigger::0:-1,0,-1" "onspawn" "wave_finish*,addoutput,ontrigger realtimer:cancelpending::0:-1,0,-1" "onspawn" "wave_finish*,addoutput,ontrigger loserelay:cancelpending::0:-1,0,-1" } NoFixup 1 math_counter { "targetname" "minutehand" "max" "9999" "outvalue" "timerformat,$setkey$case01,,0,-1" "onhitmin" "loserelay,enable,,1,-1" } math_counter { "targetname" "secondhand" "max" "60" "outvalue" "timerformat,$setkey$case02,,0,-1" "outvalue" "zerocompare,setvaluecompare,,0,-1" "onhitmin" "loserelay,trigger,,0,-1" "onhitmin" "!self,setvalue,60,1,-1" "onhitmin" "minutehand,subtract,1,1,-1" } logic_compare { "targetname" "zerocompare" "comparevalue" "9" "onequalto" "timerformat,$setkey$case16,%:0%,0,-1" "ongreaterthan" "timerformat,$setkey$case16,%:%,0,-1" } logic_case { "targetname" "timerformat" "case16" "%:%" "ondefault" "timertext,$setkey$message,,0,-1" "ondefault" "timertext,display,0,0,-1" } game_text { "targetname" "timertext" "color" "65 155 255" "holdtime" "1" "spawnflags" "1" "x" "0.7" "y" "0.9" } logic_relay { "targetname" "realtimer" "spawnflags" "2" "ontrigger" "timerformat,$format,,0.01,-1" "ontrigger" "secondhand,subtract,1,0,-1" "ontrigger" "!self,trigger,,1,-1" } game_round_win { "teamnum" "2" "targetname" "bots_win_red" "force_map_reset" "1" } } spawnpoints // put this stuff in your pointtemplates area { // models NoFixup 1 prop_dynamic { "targetname" "spawnpoint_newsstand" "model" "models/props_mvm/robot_spawnpoint.mdl" "disableshadows" "1" "defaultanim" "idle" "origin" "-280 420 -130" "angles" "0 180 0" "fademaxdist" "1600" "fademindist" "1500" "skin" "3" } // on logic, turns on the hologram when logic is activated NoFixup 1 logic_relay { "targetname" "newsstand_on_logic" "OnTrigger" "spawnpoint_newsstand,skin,0,0,-1" } // models NoFixup 1 prop_dynamic { "targetname" "spawnpoint_portapotty" "model" "models/props_mvm/robot_spawnpoint.mdl" "disableshadows" "1" "defaultanim" "idle" "origin" "350 -855 -127" "angles" "0 180 0" "fademaxdist" "1600" "fademindist" "1500" "skin" "3" } // on logic, turns on the hologram when logic is activated NoFixup 1 logic_relay { "targetname" "portapotty_on_logic" "OnTrigger" "spawnpoint_portapotty,skin,0,0,-1" } // models NoFixup 1 prop_dynamic { "targetname" "spawnpoint_mannholecover" "model" "models/props_mvm/robot_spawnpoint.mdl" "disableshadows" "1" "defaultanim" "idle" "origin" "-1763 -752 -127" "angles" "0 180 0" "fademaxdist" "1600" "fademindist" "1500" "skin" "3" } // on logic, turns on the hologram when logic is activated NoFixup 1 logic_relay { "targetname" "mannholecover_on_logic" "OnTrigger" "spawnpoint_mannholecover,skin,0,0,-1" } // models NoFixup 1 prop_dynamic { "targetname" "spawnpoint_dumptruck" "model" "models/props_mvm/robot_spawnpoint.mdl" "disableshadows" "1" "defaultanim" "idle" "origin" "-1149 1465 -21" "angles" "0 180 0" "fademaxdist" "1600" "fademindist" "1500" "skin" "3" } // on logic, turns on the hologram when logic is activated NoFixup 1 logic_relay { "targetname" "dumptruck_on_logic" "OnTrigger" "spawnpoint_dumptruck,skin,0,0,-1" } prop_dynamic //newsstand spawn { "DefaultAnim" "idle" "angles" "0 180 0" "disableshadows" "1" "model" "models/props_mvm/robot_spawnpoint.mdl" "modelscale" "1.0" "rendercolor" "255 255 255" "origin" "477 200 36" "fademaxdist" "1600" "fademindist" "1500" } prop_dynamic //portapotty spawn { "DefaultAnim" "idle" "angles" "0 180 0" "disableshadows" "1" "model" "models/props_mvm/robot_spawnpoint.mdl" "modelscale" "1.0" "rendercolor" "255 255 255" "origin" "425 -855 -127" "fademaxdist" "1600" "fademindist" "1500" } prop_dynamic //mannholecover spawn { "DefaultAnim" "idle" "angles" "0 180 0" "disableshadows" "1" "model" "models/props_mvm/robot_spawnpoint.mdl" "modelscale" "1.0" "rendercolor" "255 255 255" "origin" "-1763 -752 -127" "fademaxdist" "1600" "fademindist" "1500" } prop_dynamic //dumptruck spawn { "DefaultAnim" "idle" "angles" "0 180 0" "disableshadows" "1" "model" "models/props_mvm/robot_spawnpoint.mdl" "modelscale" "1.0" "rendercolor" "255 255 255" "origin" "-1149 1465 -21" "fademaxdist" "1600" "fademindist" "1500" } prop_dynamic //gianthatchsupport spawn { "DefaultAnim" "idle" "angles" "0 90 0" "disableshadows" "1" "model" "models/props_mvm/robot_spawnpoint.mdl" "modelscale" "1.0" "rendercolor" "255 255 255" "origin" "-3522 -578 -15" "fademaxdist" "1600" "fademindist" "1500" } } spawns_red { prop_dynamic { "angles" "0 0 0" "fademindist" "-1" "fadescale" "1" "MaxAnimTime" "10" "MinAnimTime" "5" "model" "models/props_mvm/robot_spawnpoint.mdl" "modelscale" "1.0" "renderamt" "255" "rendercolor" "255 255 255" "skin" "0" "solid" "6" "origin" "-3616 -1984 -48" "fademaxdist" "1600" "fademindist" "1500" } } corelogic { NoFixup 1 game_round_win { "TeamNum" "2" "targetname" "bots_win_red" "switch_teams" "0" "force_map_reset" "1" } logic_relay { "targetname" "redwin_relay" "OnTrigger" "bots_win_red,RoundWin,,0,-1" } logic_relay { "targetname" "kill_critboost" "OnSpawn" "bot_buff_condition,kill,,0,-1" "OnSpawn" "bot_buff_condition_short,kill,,0,-1" } game_round_win //do not { "origin" "0 0 0" "TeamNum" "2" "targetname" "bots_win_red" "switch_teams" "0" "force_map_reset" "1" "classname" "game_round_win" } } initialize_logic_rocketminisentry { NoFixUp 1 //IMPORTANT!! /// detect buildings template OnSpawnOutput { Target "rafmod_map_rot" Action "Open" } //filters filter_activator_class //detects all engineer devices { "targetname" "rafmod_filter_obj" "filterclass" "obj_*" } // func_door needed to detect buildings func_door { "targetname" "rafmod_map_rot" "mins" "-10 -10 -10" "maxs" "10 10 10" "movedir" "-90 0 0" "spawnflags" "4104" "speed" "0.1" "wait" "0.01" "OnFullyClosed" "!self,Open,,0,-1" } trigger_multiple { "targetname" "map_detect_building" "mins" "-10000 -10000 -10000" "maxs" "10000 10000 10000" "filtername" "rafmod_filter_obj" "spawnflags" "64" "parentname" "rafmod_map_rot" "OnStartTouch" "rafmod_filter_obj_sentrygun_is_rocket_mini,TestActivator,,0,-1" } filter_multi { "targetname" "rafmod_filter_obj_sentrygun_is_rocket_mini" "filter01" "rafmod_filter_obj_sentrygun_rocket_mini" "filter02" "rafmod_filter_var_rocket_mini" "filter03" "rafmod_filter_is_mini_sentry" "OnPass" "m_rocket_minisentry,ForceSpawnAtEntityOrigin,!activator,0,-1" } filter_activator_class { "targetname" "rafmod_filter_obj_sentrygun_rocket_mini" "filterclass" "obj_sentrygun" } $filter_variable { "targetname" "rafmod_filter_var_rocket_mini" "$name" "rocket_can_fire" "$value" "1" "Negated" "1" "$compare" "equal" } $filter_sendprop { "targetname" "rafmod_filter_is_mini_sentry" "$name" "m_bMiniBuilding" "$value" "1" } /// rocket minisentry maker env_entity_maker { "targetname" "m_rocket_minisentry" "EntityTemplate" "t_rocket_minisentry" } } /// Template for "m_rocket_minisentry" t_rocket_minisentry { /// This entire part parents the weapon mimic to the sentry. /// The "rafmod_obj_minirocket_trigger" is parented to the sentry ... that way we can adjust the weapon mimic's position on the sentry /// OnSpawnOutput { Target "rafmod_obj_minirocket_rot" Action "Open" } filter_activator_class { "targetname" "rafmod_filter_minirocketsentry_obj_sentrygun" "filterclass" "obj_sentrygun" } func_door { "targetname" "rafmod_obj_minirocket_rot" "mins" "-10 -10 -10" "maxs" "10 10 10" "movedir" "-90 0 0" "spawnflags" "4104" "speed" "0.1" "wait" "0.01" "OnFullyClosed" "!self,Open,,0,-1" } trigger_multiple { "targetname" "rafmod_obj_minirocket_trigger" "parentname" "rafmod_obj_minirocket_rot" "filtername" "rafmod_filter_minirocketsentry_obj_sentrygun" "mins" "-5 -5 -5" "maxs" "5 5 5" "spawnflags" "64" "OnStartTouchAll" "rafmod_obj_minirocket_trigger,$SetKey$parentname,,0,1" "OnStartTouchAll" "rafmod_obj_minirocket_rot,Kill,,0.1,1" "OnStartTouchAll" "rafmod_obj_minirocket_trigger,SetParent,!activator,0,1" "OnStartTouchAll" "rafmod_obj_minirocket_trigger,SetParentAttachment,muzzle,0.1,1" ///sets the parent attachment to the "muzzle" part of the gun "OnStartTouchAll" "!activator,AddOutput,OnUser2 rafmod_filter_rocket_mini_can_fire:TestActivator::0:1,0,1" //allows for firing of rockets "OnStartTouchAll" "!activator,FireUser2,,1,1" // begins the check loop "OnStartTouchAll" "!activator,$SetVar$rocket_can_fire,1,0,1" //custom var allows us to not have to name the sentrygun } /// sets the weapon mimic owner to sentry OnSpawnOutput { Target "rafmod_rocket_mini_shooter" Action "$SetOwner" Param "!activator" } tf_point_weapon_mimic { "targetname" "rafmod_rocket_mini_shooter" "parentname" "rafmod_obj_minirocket_trigger" "origin" "50 0 0" //use origin to adjust where the rockets shoot from "speedmin" "1000" "speedmax" "1000" "WeaponType" "0" "SplashRadius" "160" "Damage" "75" "teamnum" "2" "OnUser1" "!self,FireOnce,,0,-1" } /// Goes through a series of filters to check if: /// It's firing + not disabled, /// If wrangled (if no, fire every 1 second) (if yes, fire every 0.5 seconds) /// ++ This part goes through a relay to ensure the sentry doesn't fire two rockets quickly /// "rocket_minisentry_has_ammo_can_fire_math" is used to track ammo /// ++ This constantly updates every time the rocket fires, and doesn't get muddled with an Engie repairing ammo /// Finally, sees if the sentry has greater than 10 ammo before firing. /// ++ comes with firing and empty clip sounds, too! filter_multi { "targetname" "rafmod_filter_rocket_mini_can_fire" "filter01" "rafmod_filter_rocket_mini_state" "filter02" "rafmod_filter_rocket_mini_disabled" "OnPass" "rafmod_filter_rocket_mini_is_player_controlled,TestActivator,,0,-1" "OnFail" "rafmod_filter_rocket_mini_can_fire,TestActivator,,0.5,-1" } $filter_sendprop { "targetname" "rafmod_filter_rocket_mini_is_player_controlled" "$name" "m_bPlayerControlled" "$value" "1" "OnPass" "rafmod_relay_rocket_mini_fire,CancelPending,,0,-1" "OnPass" "rafmod_relay_rocket_mini_fire,FireUser1,,0.01,-1" "OnFail" "rafmod_relay_rocket_mini_fire,CancelPending,,0,-1" "OnFail" "rafmod_relay_rocket_mini_fire,FireUser2,,0.01,-1" } logic_relay { "targetname" "rafmod_relay_rocket_mini_fire" "OnUser1" "rocket_minisentry_has_ammo_can_fire_math,GetValue,,0.5,-1" //wrangler fire rate "OnUser2" "rocket_minisentry_has_ammo_can_fire_math,GetValue,,1,-1" //standard, non-wrangled fire rate } math_counter { "targetname" "rocket_minisentry_has_ammo_can_fire_math" "min" "0" //minimum ammo value "max" "150" //max ammo value "startvalue" "150" //starting ammo value "OutValue" "!activator,$SetProp$m_iAmmoShells,,0,-1" "OutValue" "rafmod_filter_rocket_mini_can_fire,TestActivator,,0,-1" "OnGetValue" "!activator,$GetProp$m_iAmmoShells,rocket_minisentry_has_ammo_can_fire_math|SetValueNoFire|,0,-1" "OnGetValue" "rafmod_filter_rocket_mini_has_enough_ammo,TestActivator,,0,-1" } /// The filters $filter_sendprop { "targetname" "rafmod_filter_rocket_mini_state" "$name" "m_iState" "$value" "2" //means it's firing or wrangled } $filter_sendprop { "targetname" "rafmod_filter_rocket_mini_disabled" "$name" "m_bDisabled" "$value" "0" //if disabled } /// Final Touch /// This controls how much ammo is used, and subtracts the difference. If it doesn't have enough ammo, loops logic and plays an empty clip sound. $filter_sendprop //compares if ammo if >=10 { "targetname" "rafmod_filter_rocket_mini_has_enough_ammo" "$name" "m_iAmmoShells" "$value" "10" "$compare" "greater than or equal" "OnPass" "rocket_minisentry_has_ammo_can_fire_math,Subtract,10,0,-1" //Subtracts 10 ammo on mini "OnPass" "rafmod_rocket_mini_shooter,FireUser1,,0,-1" //fires the rocket, used in conjunction with "rafmod_filter_rocket_mini_has_enough_ammo" "OnPass" "!activator,$PlaySound,Building_Sentrygun.FireRocket,0,-1" //sound for rocket fire "OnFail" "rocket_minisentry_has_ammo_can_fire_math,Add,0,0,-1" //forces OutValue to refire "OnFail" "!activator,$PlaySound,Building_Sentrygun.Empty,0,-1" } RemoveIfKilled "rafmod_filter_minirocketsentry_obj_sentrygun" RemoveIfKilled "rafmod_obj_minirocket_trigger" RemoveIfKilled "rafmod_rocket_mini_shooter" RemoveIfKilled "rafmod_filter_rocket_mini_can_fire" RemoveIfKilled "rafmod_filter_rocket_mini_is_player_controlled" RemoveIfKilled "rafmod_relay_rocket_mini_fire" RemoveIfKilled "rocket_minisentry_has_ammo_can_fire_math" RemoveIfKilled "rafmod_filter_rocket_mini_state" RemoveIfKilled "rafmod_filter_rocket_mini_disabled" RemoveIfKilled "rafmod_filter_rocket_mini_has_enough_ammo" } payload //to my knowledge, implementing the payload hud is currently impossible as the hud can only be instanced on map load, however the control point hud shows up and can still display the number of players pushing the payload { NoFixup 1 logic_auto { "OnMapSpawn" "bot_stun_reprogram,Kill,,0,-1" } prop_dynamic { "targetname" "payload_model" "model" "models/props_trainyard/bomb_cart.mdl" "origin" "10 0 -20" "angles" "0 180 0" "solid" "0" } prop_dynamic { "targetname" "payload_tread_model" "model" "models/bots/boss_bot/tank_track_l.mdl" "origin" "15 35 -40" "angles" "-7 180 0" "defaultanim" "forward" "modelscale" "0.45" } prop_dynamic { "targetname" "payload_tread_model" "model" "models/bots/boss_bot/tank_track_r.mdl" "origin" "15 -35 -40" "angles" "-7 180 0" "defaultanim" "forward" "modelscale" "0.45" } func_tracktrain { "dmg" "0" "height" "15" //change this number to adjust the height of the payload from the ground, if you want people to jump on the payload, it shoudld be 72 units from the ground (this does not always accurately reflect the value shown here) "ManualAccelSpeed" "70" "ManualDecelSpeed" "150" "ManualSpeedChanges" "1" "MoveSound" "Cart.Roll" "MoveSoundMaxPitch" "200" "MoveSoundMaxTime" "0" "MoveSoundMinPitch" "60" "MoveSoundMinTime" "0" "orientationtype" "1" "origin" "0 0 16" "renderamt" "255" "rendercolor" "255 255 255" "renderfx" "0" "rendermode" "0" "spawnflags" "514" "speed" "0" //this makes the cart stationary when it spawns "StartSound" "Cart.RollStart" "startspeed" "90" //change this number to adjust the maximum speed of the payload, actual speed is determined by logic_case "StopSound" "Cart.RollStop" "target" "pl_path_1" //change the FIXME to the name of the path_track node you want to spawn at, different maps will have different names, if you are using a custom tank path you can use the name of the path to make it spawn there "targetname" "cart_tracktrain" "velocitytype" "1" "volume" "10" "wheels" "20" "mins" "-36 -25 -54" "maxs" "52 25 14" } //phys_constraint //this is required, without this entity the model will be disjointed from the payload itself //{ // "classname" "phys_constraint" // "angles" "0 270 0" // "attach1" "cart_tracktrain" // "attach2" "cart_physprop" // "forcelimit" "0" // "spawnflags" "1" // "targetname" "cart_constraint" // "teleportfollowdistance" "0" // "torquelimit" "0" // "origin" "-38 72 -18" //} trigger_capture_area { "area_cap_point" "cart_point" "area_time_to_cap" "99999" //this is a very high number so that the control point cant be captured at any point, if it is capped, the payload will not move "parentname" "payload_model" "StartDisabled" "0" "targetname" "cart_area" "team_cancap_2" "0" //this makes it so that red team cannot push the payload "team_cancap_3" "1" "team_numcap_2" "1" //you cant "finish" capturing a payload, so these keyvalues are ineffective "team_numcap_3" "1" "team_spawn_2" "0" "team_spawn_3" "0" "team_startcap_2" "1" //this also is ineffective, as the logic_case entity is used to affect the cart speed depending on how many blu players are on it "team_startcap_3" "1" "OnNumCappersChanged" "cart_remap,InValue,,0,-1" "OnNumCappersChanged" "cart_watcher,SetNumTrainCappers,,0,-1" "mins" "-200 -145 -100" //trigger_capture_area and dispenser_touch_trigger should have the same mins and maxs "maxs" "200 145 100" } dispenser_touch_trigger { "parentname" "payload_model" "targetname" "cart_dispenser_trigger" "mins" "-112 -96 -60" //trigger_capture_area and dispenser_touch_trigger should have the same mins and maxs "maxs" "112 96 60" } mapobj_cart_dispenser //spawning the payload in waveschedule will cause the dispenser to explode for some reason { "parentname" "payload_model" "spawnflags" "12" "targetname" "cart_dispenser" "TeamNum" "3" "touch_trigger" "cart_dispenser_trigger" "origin" "-31 -12 46" } info_particle_system { "angles" "-80.7088 53.9446 -53.5839" "cpoint1_parent" "0" "cpoint2_parent" "0" "cpoint3_parent" "0" "cpoint4_parent" "0" "cpoint5_parent" "0" "cpoint6_parent" "0" "cpoint7_parent" "0" "effect_name" "cart_flashinglight" "parentname" "payload_model" "start_active" "0" "targetname" "cart_particles" "origin" "39 5 36" } env_spark { "angles" "0 0 0" "Magnitude" "1" "MaxDelay" "0" "parentname" "payload_model" "spawnflags" "0" "targetname" "cart_spark_left" "TrailLength" "2" "origin" "0.080101 14 -36" } env_spark { "angles" "0 0 0" "Magnitude" "1" "MaxDelay" "0" "parentname" "payload_model" "spawnflags" "0" "targetname" "cart_spark_right" "TrailLength" "2" "origin" "0.080101 -14 -36" } //trigger_hurt //{ // "damage" "2000" //if the payload happens to collide with a tank, it will damage the tank for this number, can be set to a higher number to instantly destroy the tank // "damagecap" "20" // "damagemodel" "0" // "damagetype" "16" // "filtername" "cart_filter_noplayers" // "origin" "14.29 0 -20" // "parentname" "payload_model" // "spawnflags" "1096" // "StartDisabled" "0" // "targetname" "cart_hurt" // // "mins" "-4 -24 -34" // "maxs" "4 24 34" //} team_control_point //this is a hidden control point that comes with the payload { //you must have atleast one control point on the map in order for the trigger_capture_area to work, otherwise the payload will not operate in any capacity "classname" "team_control_point" //the purpose of the placeholder control point is set here to enable the trigger_capture_area "angles" "0 0 0" "point_default_owner" "2" "point_group" "0" "point_index" "4" //if you want to have multiple payloads on the map at the same time, make sure to change the index so each control point has a unique index, again having more than eight unique control points will crash the server "point_printname" "Payload" "point_start_locked" "0" "point_warn_on_cap" "2" "point_warn_sound" "ControlPoint.CaptureWarn" "random_owner_on_restart" "0" "spawnflags" "14" //this hides the model, disables sounds and disables shadows "StartDisabled" "0" "targetname" "cart_point" "team_bodygroup_0" "3" "team_bodygroup_2" "1" "team_bodygroup_3" "1" "team_icon_3" "hud/leaderboard_class_payload_blu" "team_icon_2" "hud/leaderboard_class_payload_blu" "team_icon_3" "hud/leaderboard_class_payload_blu" "team_model_0" "models/effects/cappoint_hologram.mdl" "team_model_2" "models/effects/cappoint_hologram.mdl" "team_model_3" "models/effects/cappoint_hologram.mdl" "team_previouspoint_3_0" "cart_point" //this is required so the payload isnt "locked" "team_timedpoints_2" "0" "team_timedpoints_3" "0" "origin" "10 0 -42" } logic_case { "Case01" "0" //you can add more cases here to raise the maximum number of players that can affect the payload, by default max speed is reached at three players "Case02" "1" //these Case01, Case02, etc... keyvalues represents the outputs sent depending on how many players are pushing the payload at any given time "Case03" "2" "Case04" "3" "targetname" "cart_case" "OnCase01" "payloadtank,SetSpeed,0,0,-1" //change the first number here to adjust the speed per case as a percentage of "startspeed" defined in func_tracktrain, does not go below -1 or above 1, negative numbers roll backwards "OnCase02" "payloadtank,SetSpeed,55,0,-1" "OnCase03" "payloadtank,SetSpeed,77,0,-1" "OnCase04" "payloadtank,SetSpeed,100,0,-1" "OnCase01" "cart_tracktrain,SetSpeedDirAccel,0,0,-1" //change the first number here to adjust the speed per case as a percentage of "startspeed" defined in func_tracktrain, does not go below -1 or above 1, negative numbers roll backwards "OnCase02" "cart_tracktrain,SetSpeedDirAccel,0.55,0,-1" "OnCase03" "cart_tracktrain,SetSpeedDirAccel,0.77,0,-1" "OnCase04" "cart_tracktrain,SetSpeedDirAccel,1.0,0,-1" "OnCase01" "cart_spark_left,StopSpark,,0,-1" "OnCase01" "cart_spark_right,StopSpark,,0,-1" "OnCase02" "cart_spark_right,StopSpark,,0,-1" "OnCase02" "cart_spark_left,StopSpark,,0,-1" "OnCase03" "cart_spark_left,StopSpark,,0,-1" "OnCase03" "cart_spark_right,StopSpark,,0,-1" "OnCase04" "cart_spark_right,StopSpark,,0,-1" "OnCase04" "cart_spark_left,StopSpark,,0,-1" "OnCase01" "cart_particles,Stop,,0,-1" "OnCase02" "cart_particles,Start,,0,-1" "OnCase03" "cart_particles,Start,,0,-1" "OnCase04" "cart_particles,Start,,0,-1" "OnCase01" "payload_tread_model,SetPlaybackRate,0,0,-1" // animates the treads "OnCase02" "payload_tread_model,SetPlaybackRate,-0.5,0,-1" "OnCase03" "payload_tread_model,SetPlaybackRate,-0.75,0,-1" "OnCase04" "payload_tread_model,SetPlaybackRate,-1,0,-1" "origin" "10 0 62" } math_remap { "classname" "math_remap" "in1" "0" //make sure you also change the numbers if you introduce more cases in logic_case, in1/out1 represent the minimum amount of players on the cart and out1/out2 represents the maximum "in2" "3" //if you want to raise the maximum amount of players on the cart, you would have to change the keyvalues here and add more cases to logic_case "out1" "0" "out2" "3" "spawnflags" "2" "targetname" "cart_remap" "OutValue" "cart_case,InValue,,0,-1" "origin" "-14 0 62" } filter_activator_class //this filter is used by the trigger_hurt entity to not affect players { "classname" "filter_activator_class" "filterclass" "player" "Negated" "1" "targetname" "cart_filter_noplayers" "origin" "-70 72 -18" } team_control_point_master //this entity is required to enable the control point { "classname" "team_control_point_master" "caplayout" "3, 0 1 2" "cpm_restrict_team_cap_win" "2" //probably ineffective "custom_position_x" "0.33" "custom_position_y" "0.82" "partial_cap_points_rate" "0.1" "score_style" "1" "switch_teams" "1" "targetname" "cart_master" "team_base_icon_2" "sprites/obj_icons/icon_base_red" "team_base_icon_3" "sprites/obj_icons/icon_base_blu" "origin" "-62 -40 -10" } team_train_watcher { "classname" "team_train_watcher" "goal_node" "pl_path_46" //this should be the final path_track node of the desired track, FIXME by default as different maps will have different names "hud_min_speed_level_1" "1" "hud_min_speed_level_2" "60" "hud_min_speed_level_3" "80" "linked_cp_1" "cart_point" //placeholder control point set here to enable the trigger_capture_area "linked_pathtrack_1" "pl_path_46" //set this to the final path_track node, same as goal_node, to prevent the administrator from saying voice lines prematurely "speed_forward_modifier" "1" "start_node" "pl_path_1" //this should be the path_track node of where the payload spawns, FIXME by default as different maps will have different names "targetname" "cart_watcher" "train" "cart_tracktrain" "train_can_recede" "1" //set this to 0 to disable payload rolling backwards, 1 to enable "OnTrainStartRecede" "payloadtank,SetSpeed,-10,0,-1" "OnTrainStartRecede" "payload_tread_model,SetPlaybackRate,0.1,0,-1" "OnTrainStartRecede" "cart_tracktrain,SetSpeedDirAccel,-0.1,0,-1" "OnTrainStartRecede" "cart_spark_left,StartSpark,,0,-1" "OnTrainStartRecede" "cart_spark_right,StartSpark,,0,-1" "origin" "-62 -56 -10" } team_train_watcher { "classname" "team_train_watcher" "goal_node" "pl_path2_35" //this should be the final path_track node of the desired track, FIXME by default as different maps will have different names "hud_min_speed_level_1" "1" "hud_min_speed_level_2" "60" "hud_min_speed_level_3" "80" "linked_cp_1" "cart_point" //placeholder control point set here to enable the trigger_capture_area "linked_pathtrack_1" "pl_path2_35" //set this to the final path_track node, same as goal_node, to prevent the administrator from saying voice lines prematurely "speed_forward_modifier" "1" "start_node" "pl_path2_1" //this should be the path_track node of where the payload spawns, FIXME by default as different maps will have different names "targetname" "cart_watcher" "train" "cart_tracktrain" "train_can_recede" "1" //set this to 0 to disable payload rolling backwards, 1 to enable "OnTrainStartRecede" "payloadtank,SetSpeed,-10,0,-1" "OnTrainStartRecede" "payload_tread_model,SetPlaybackRate,0.1,0,-1" "OnTrainStartRecede" "cart_tracktrain,SetSpeedDirAccel,-0.1,0,-1" "OnTrainStartRecede" "cart_spark_left,StartSpark,,0,-1" "OnTrainStartRecede" "cart_spark_right,StartSpark,,0,-1" "origin" "-62 -56 -10" } OnSpawnOutput //very important to keep these three outputs otherwise the payload will not function { Target cart_area Action SetControlPoint Param cart_point } OnSpawnOutput { Target cart_watcher Action RoundActivate } //OnSpawnOutput //{ // Target cart_physprop // Action SetParent // Param cart_tracktrain //} OnSpawnOutput { Target payload_model Action SetParent Param "!activator" } ////////////////////////////////////////////editable output section//////////////////////////////////////////// //note that editing outputs for the payload is very different, as you have to use OnSpawnOutput blocks, and use AddOutputs on specific path_track nodes in order to make things happen OnSpawnOutput //this makes blu team win when the payload reaches the last track, commented out as a more exciting payload deploying animation is provided { Target pl_path_45 Action AddOutput Param "OnPass boss_deploy_relay:Trigger::0.6:-1" } OnSpawnOutput { Target pl_path_45 Action AddOutput Param "OnPass payload_tread_model:kill::0.7:-1" } OnSpawnOutput { Target pl_path_45 Action AddOutput Param "OnPass payload_model:kill::0.7:-1" } OnSpawnOutput { Target pl_path_2 Action AddOutput Param "OnPass payload_tread_model:SetPlaybackRate:-1:0:-1" } OnSpawnOutput { Target pl_path_2 Action AddOutput Param "OnPass tank_smask_relay:Trigger::0:-1" } OnSpawnOutput { Target pl_path_3 Action AddOutput Param "OnPass payload_tread_model:SetPlaybackRate:0:0:-1" } OnSpawnOutput { Target pl_path_3 Action AddOutput Param "OnPass !activator:SetSpeed:0:0:-1" } OnSpawnOutput { Target pl_path_18 Action AddOutput Param "OnPass payload_cap1_relay:Trigger::0:-1" } OnSpawnOutput { Target pl_path_18 Action AddOutput Param "OnPass gateblab_take:Enable::0:-1" } OnSpawnOutput { Target pl_path_18 Action AddOutput Param "OnPass gateblab_take:Disable::0.10:-1" } OnSpawnOutput { Target pl_path_27 Action AddOutput Param "OnPass gate_2_relay_new:Trigger::0:-1" } OnSpawnOutput //this makes blu team win when the payload reaches the last track, commented out as a more exciting payload deploying animation is provided { Target pl_path2_34 Action AddOutput Param "OnPass boss_deploy_relay:Trigger::0.6:-1" } OnSpawnOutput { Target pl_path2_34 Action AddOutput Param "OnPass payload_model:kill::0.7:-1" } OnSpawnOutput { Target pl_path2_34 Action AddOutput Param "OnPass payload_tread_model:kill::0.7:-1" } OnSpawnOutput { Target pl_path2_2 Action AddOutput Param "OnPass payload_tread_model:SetPlaybackRate:-1:0:-1" } OnSpawnOutput { Target pl_path2_2 Action AddOutput Param "OnPass tank_smask_relay:Trigger::0:-1" } OnSpawnOutput { Target pl_path2_3 Action AddOutput Param "OnPass !activator:SetSpeed:0:0:-1" } OnSpawnOutput { Target pl_path2_3 Action AddOutput Param "OnPass payload_tread_model:SetPlaybackRate:0:0:-1" } OnSpawnOutput { Target pl_path2_20 Action AddOutput Param "OnPass payload_cap1_relay:Trigger::0:-1" } OnSpawnOutput { Target pl_path2_20 Action AddOutput Param "OnPass gateblab_take:Enable::0:-1" } OnSpawnOutput { Target pl_path2_20 Action AddOutput Param "OnPass gateblab_take:Disable::0.10:-1" } OnSpawnOutput { Target pl_path2_27 Action AddOutput Param "OnPass gate_2_relay_new:Trigger::0:-1" } } payload_logic { NoFixup 1 logic_relay { //"OnTrigger" "pop_interface,PauseBotSpawning,,0,-1" "targetname" "payload_cap1_relay" "OnTrigger" "gatea_captured,display,,0,-1" "OnTrigger" "gate1_entrance_door,Open,,0,-1" "OnTrigger" "gate1_alarm_timer_relay,Trigger,,0,-1" "OnTrigger" "garage_avoid,Disable,,0,-1" "OnTrigger" "gate1_alarm_trigger,Disable,,0,-1" "OnTrigger" "engiebot_gate1_activate,Trigger,,0,-1" "OnTrigger" "garage_gateblab,Disable,,0,-1" "OnTrigger" "garage_alarm_yellow_flash,Stop,,0,-1" "OnTrigger" "gateblab_take,Enable,,0,-1" "OnTrigger" "sniper_moveup,Trigger,,0,-1" "OnTrigger" "garage_emergency_light,Skin,1,0.2,-1" "OnTrigger" "garage_emergency_light,SetAnimation,Idle,0.2,-1" "OnTrigger" "spawnbot_garage,Enable,0.5,-1" "OnTrigger" "spawnbot_garage_giant,Enable,0.5,-1" "OnTrigger" "spawnbot_upper,Disable,,0.55,-1" "OnTrigger" "spawnbot_support,Disable,,0.55,-1" "OnTrigger" "spawnbot,Disable,,0.55,-1" "OnTrigger" "spawnbot_elevator,Disable,,0.55,-1" "OnTrigger" "garage_giantdoor,Open,,0.55,-1" "OnTrigger" "gatebot_prefer_garage,Disable,0.55,-1" "OnTrigger" "gate1_entrance_door,Open,,1,-1" "OnTrigger" "garage_emergency_light,SetAnimation,spin,1,-1" "OnTrigger" "garage_emergency_light,Skin,3,1,-1" "OnTrigger" "garage_blue_flash,Start,,1,-1" "OnTrigger" "mainspawn_detect,Enable,,1.2,-1" "OnTrigger" "upper_detect,Enable,,1.2,-1" "OnTrigger" "mainspawn_detect,TouchTest,,1.2,-1" "OnTrigger" "upper_detect,TouchTest,,1.2,-1" "OnTrigger" "nav_refresh,RecomputeBlockers,,1.2,-1" "OnTrigger" "garage_cap_wait,Disable,,1.2,-1" "OnTrigger" "gate_capture_sound,PlaySound,,1.2,-1" "OnTrigger" "garage_brush,Disable,,1.2,-1" "OnTrigger" "gate1_capnoise,PlaySound,,1.2,-1" "OnTrigger" "bot_buff_condition,Enable,,1.2,-1" } } main { NoFixup 1 logic_relay { "onspawn" "spawnbot_support,kill,,0,-1" "onspawn" "spawnbot_elevator,kill,,0,-1" "onspawn" "spawnbot_upper,kill,,0,-1" "onspawn" "spawntele,kill,,0.1,-1" "onspawn" "tele_elevator,kill,,0.1,-1" "onspawn" "!player,$forcerespawn,,0.12,-1" "onspawn" "wave_start_relay,addoutput,ontrigger spawnbarrier:disable::0:-1,0.1,-1" "onspawn" "wave_finished_relay,addoutput,ontrigger spawnbarrier:enable::0:-1,0.1,-1" } trigger_teleport { "mins" "-9999 -9999 -9999" "maxs" "9999 9999 9999" "targetname" "spawntele" "origin" "2233 51 -127" "spawnflags" "1" "target" "spawnteleto" } trigger_teleport { "mins" "-64 -64 0" "maxs" "64 64 128" "targetname" "tele_elevator" "origin" "2234 -30 -127" "spawnflags" "1" "target" "spawnteleto" } info_teleport_destination { "origin" "3900 508 29" "angles" "0 270 0" "targetname" "spawnteleto" } info_player_teamspawn { "origin" "2239 -31 -119" "angles" "0 90 0" "targetname" "spawnbot_support2" "teamnum" "2" } info_player_teamspawn { "origin" "2100 -473 -198" "angles" "0 270 0" "targetname" "spawnbot_elevator2" "teamnum" "2" } info_player_teamspawn { "origin" "3190 -773 -86" "angles" "0 180 0" "targetname" "spawnbot_upper2" "teamnum" "2" } func_forcefield { "origin" "3261 -224 -8" "mins" "-49 -350 -120" "maxs" "49 350 120" "targetname" "spawnbarrier" "teamnum" "2" } logic_auto { "spawnflags" "1" "OnMapSpawn" "bot_spawn_gate,Close,,0.1,-1" "OnMapSpawn" "bot_spawn_gate,SetSpeed,100,0,-1" "OnMapSpawn" "wave_start_relay,AddOutput,OnTrigger bot_spawn_gate:Open::0:-1,0,-1" } prop_dynamic { "origin" "4088 -416 -128" "angles" "0 180 0" "model" "models/props_mvm/mvm_upgrade_blu.mdl" "disableshadows" "1" } func_upgradestation { "origin" "4040 -416 -48" "mins" "-48 -152 -80" "maxs" "48 152 80" } func_forcefield { "origin" "4072 -416 -48" "mins" "-48 -152 -80" "maxs" "48 152 80" "teamnum" "2" } } upgradetemplate { func_upgradestation { "mins" "3956.315917 -1008.968750 -68.902702" "maxs" "3983.908935 -742.968750 -14.218750" } } station // all-in-one upgrade station template { NoFixup 1 func_upgradestation { mins "-105 -100 0" maxs "105 100 242" solid 0 } prop_dynamic { targetname upgradestation1 angles "0 0 0" DisableBoneFollowers 0 disablereceiveshadows 0 disableshadows 1 model models\props_mvm\mvm_upgrade_blu.mdl solid 0 origin "0 0 0" } func_upgradestation { mins "-100 -100 0" maxs "90 60 100" parentname upgradestation } prop_dynamic { targetname shopcollision angles "0 -90 0" DisableBoneFollowers 1 disablereceiveshadows 1 model models/props_vehicles/train_flatcar_container.mdl disableshadows 1 renderamt 0 renderfx 0 rendermode 10 CollisionGroup 5 solid 0 //6 // commented out to avoid potetional issues. origin "0 0 0" } } station2 // all-in-one upgrade station template { NoFixup 1 func_upgradestation { mins "-105 -100 0" maxs "105 100 180" solid 0 } prop_dynamic { targetname upgradestation1 angles "0 0 0" DisableBoneFollowers 0 disablereceiveshadows 0 disableshadows 1 model models\props_mvm\mvm_upgrade_blu.mdl solid 0 origin "0 0 0" } func_upgradestation { mins "-100 -100 0" maxs "90 60 100" parentname upgradestation } prop_dynamic { targetname shopcollision angles "0 -90 0" DisableBoneFollowers 1 disablereceiveshadows 1 model models/props_vehicles/train_flatcar_container.mdl disableshadows 1 renderamt 0 renderfx 0 rendermode 10 CollisionGroup 5 solid 0 //6 // commented out to avoid potetional issues. origin "0 0 0" } } playercap { NoFixup 1 math_remap { "in1" "0" "in2" "5" "out1" "0" "out2" "5" "spawnflags" "3" "targetname" "cap_remap" "OutValue" "capturearea_case,InValue,,0,-1" "origin" "-5840 -556.63 288" } } hatchblocker //hatch prop { NoFixup 1 prop_dynamic { "targetname" "hatchcover" "angles" "0 0 0" "DisableBoneFollowers" "1" "disablereceiveshadows" "1" "model" "models/props_hydro/water_machinery2.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" "100 100 255" "renderfx" "15" "rendermode" "0" "SetBodyGroup" "0" "CollisionGroup" "1" "skin" "0" "solid" "0" "spawnflags" "0" "StartDisabled" "0" "origin" "-3289.767089 -180.297302 -14.256347" } } hatchblocker //hatch collision { NoFixup 1 func_forcefield { "disablereceiveshadows" "0" "origin" "-3289.767089 -180.297302 -14.256347" "renderamt" "255" "rendercolor" "255 255 255" "renderfx" "0" "rendermode" "10" "TeamNum" "2" "targetname" "hatchcovercollision" "parentname" "hatchcover" "mins" "-100 -120 -100" "maxs" "100 120 100" "StartDisabled" "0" } } hatchunblocker { NoFixup 1 logic_relay { "targetname" "unblockhatch" "OnTrigger" "hatchcover,Kill,,0,-1" "OnTrigger" "hatchopen,Show,,0,-1" "OnTrigger" "thirdperson,Enable,,0,-1" } } Fixupspawn { NoFixup 1 prop_dynamic { "targetname" "spawnwalls" "model" "models\props_2fort\sniper_fence01.mdl" "disableshadows" "1" "DisableBoneFollowers" 1 "origin" "3328 220 -130" "angles" "0 0 0" "fademaxdist" "1500" "fademindist" "1400" "solid" "6" } prop_dynamic { "targetname" "spawnwalls" "model" "models/props_mvm/downtown_spawnwall1.mdl" "origin" "3302 56 588" "angles" "0 -90 0" "disableshadows" "1" } prop_dynamic { "targetname" "spawnwalls" "model" "models\props_2fort\sniper_fence01.mdl" "disableshadows" "1" "DisableBoneFollowers" 1 "origin" "3328 220 25" "angles" "0 0 0" "fademaxdist" "1500" "fademindist" "1400" "solid" "6" } prop_dynamic { "targetname" "spawnwalls" "model" "models\props_2fort\sniper_fence02.mdl" "disableshadows" "1" "DisableBoneFollowers" 1 "origin" "3370 332 -130" "angles" "0 -85 0" "modelscale" "1.25" "fademaxdist" "1500" "fademindist" "1400" } prop_dynamic { "model" "models/props_mvm/barrel_crate.mdl" "disableshadows" "1" "DisableBoneFollowers" 1 "origin" "3542 341 -127" "angles" "0 -65 0" "targetname" "spawnwalls" "fademaxdist" "1500" "fademindist" "1400" "solid" "6" } prop_dynamic { "targetname" "spawnwalls" "model" "models\props_2fort\sniper_fence02.mdl" "disableshadows" "1" "DisableBoneFollowers" 1 "origin" "3328 -666 -130" "angles" "0 0 0" "fademaxdist" "2000" "fademindist" "1900" "solid" "6" } prop_dynamic { "targetname" "spawnwalls" "model" "models\props_2fort\sniper_fence02.mdl" "disableshadows" "1" "DisableBoneFollowers" 1 "origin" "3328 -667 40" "angles" "0 0 0" "fademaxdist" "2000" "fademindist" "1900" "solid" "6" } prop_dynamic { "targetname" "spawnwalls" "model" "models\props_2fort\sniper_fence01.mdl" "disableshadows" "1" "DisableBoneFollowers" 1 "origin" "3328 -850 -130" "angles" "0 0 0" "fademaxdist" "2000" "fademindist" "1900" "solid" "6" } prop_dynamic { "targetname" "spawnwalls" "model" "models\props_2fort\sniper_fence01.mdl" "disableshadows" "1" "DisableBoneFollowers" 1 "origin" "3328 -850 25" "angles" "0 0 0" "fademaxdist" "2000" "fademindist" "1900" "solid" "6" } prop_dynamic { "targetname" "spawnwalls" "model" "models\props_2fort\sniper_fence01.mdl" "disableshadows" "1" "DisableBoneFollowers" 1 "origin" "3328 -1000 -130" "angles" "0 0 0" "fademaxdist" "2000" "fademindist" "1900" "solid" "6" } prop_dynamic { "targetname" "spawnwalls" "model" "models\props_2fort\sniper_fence02.mdl" "disableshadows" "1" "DisableBoneFollowers" 1 "origin" "3328 -1000 25" "angles" "0 0 0" "fademaxdist" "2000" "fademindist" "1900" "solid" "6" } prop_dynamic { "model" "models/props_mvm/barrel_crate.mdl" "disableshadows" "1" "DisableBoneFollowers" 1 "origin" "4376 -0 -127" "angles" "0 -47 0" "targetname" "spawnwalls" "fademaxdist" "1500" "fademindist" "1400" "solid" "6" } prop_dynamic { "model" "models/props_mvm/barrel_crate.mdl" "disableshadows" "1" "DisableBoneFollowers" 1 "origin" "4342 -95 -127" "angles" "0 67 0" "targetname" "spawnwalls" "fademaxdist" "1500" "fademindist" "1400" "solid" "6" } prop_dynamic { "model" "models/props_mvm/barrel_crate.mdl" "disableshadows" "1" "DisableBoneFollowers" 1 "origin" "4275 143 -90" "angles" "0 26 90" "targetname" "spawnwalls" "fademaxdist" "1500" "fademindist" "1400" "solid" "6" } } Barrier // barrier for gate B, removed once the cart captures B. { NoFixup 1 func_forcefield { "origin" "-1450 -70 -128" mins "-20 -2548 0" maxs "20 2548 4000" "targetname" "gatebarrier" "teamnum" "2" } trigger_hurt { "targetname" "gatebarrier_cash" "damage" "0" "damagecap" "0" "damagemodel" "0" "damagetype" "0" "nodmgforce" "0" "spawnflags" "1" "StartDisabled" "0" "origin" "-1450 -70 -127" "mins" "-2000 -3000 -420" "maxs" "30 3000 420" } func_nobuild { "targetname" "gatebarrier" "origin" "-1450 -70 -128" "mins" "-4000 -2548 0" "maxs" "20 2548 4000" "AllowTeleporters" "0" "AllowSentry" "0" "AllowDispenser" "0" } prop_dynamic { "origin" "-1450 -395 -128" "angles" "0 270 0" "rendercolor" "230 110 115" "disablereceiveshadows" "1" "disableshadows" "1" "model" "models/props_mvm/reversemvm_redwall_640x300.mdl" "targetname" "gatebarrier" "modelscale" "1.5" } prop_dynamic { "origin" "-1450 -1355 -128" "angles" "0 270 0" "rendercolor" "230 110 115" "disablereceiveshadows" "1" "disableshadows" "1" "model" "models/props_mvm/reversemvm_redwall_640x300.mdl" "targetname" "gatebarrier" "modelscale" "1.5" } prop_dynamic { "origin" "-1450 -2300 -128" "angles" "0 270 0" "rendercolor" "230 110 115" "disablereceiveshadows" "1" "disableshadows" "1" "model" "models/props_mvm/reversemvm_redwall_640x300.mdl" "targetname" "gatebarrier" "modelscale" "1.5" } prop_dynamic { "origin" "-1450 395 -128" "angles" "0 270 0" "rendercolor" "230 110 115" "disablereceiveshadows" "1" "disableshadows" "1" "model" "models/props_mvm/reversemvm_redwall_640x300.mdl" "targetname" "gatebarrier" "modelscale" "1.5" } prop_dynamic { "origin" "-1450 1355 -128" "angles" "0 270 0" "rendercolor" "230 110 115" "disablereceiveshadows" "1" "disableshadows" "1" "model" "models/props_mvm/reversemvm_redwall_640x300.mdl" "targetname" "gatebarrier" "modelscale" "1.5" } prop_dynamic { "origin" "-1450 2300 -128" "angles" "0 270 0" "rendercolor" "230 110 115" "disablereceiveshadows" "1" "disableshadows" "1" "model" "models/props_mvm/reversemvm_redwall_640x300.mdl" "targetname" "gatebarrier" "modelscale" "1.5" } ambient_generic { "targetname" "gate_capture_sound" "message" "ui/scored.wav" "health" "10" "radius" "69420" "spawnflags" "49" } ambient_generic { "targetname" "gate_capture_sound" "message" "ui/scored.wav" "health" "10" "radius" "69420" "spawnflags" "49" } ambient_generic { "targetname" "gatedown_sound" "message" "npc/turret_floor/die.wav" "health" "10" "radius" "69420" "spawnflags" "49" "pitch" "75" "pitchstart" "90" } logic_relay { "targetname" "gate_2_relay_new" "OnTrigger" "gate2_disable_cart,Trigger,,0,-1" "OnTrigger" "portapotty_swarm,Enable,,0,-1" "OnTrigger" "newsstand_swarm,Enable,,0,-1" } logic_relay { "targetname" "gate2_disable_cart" "OnTrigger" "w1_note1,display,,0,-1" "OnTrigger" "cart_stuck,display,,0,-1" "OnTrigger" "cart_area,disable,,0,-1" } logic_relay { "targetname" "gate2_done" "OnTrigger" "w1_note2,display,,0,-1" "OnTrigger" "gateb_captured,display,,0,-1" "OnTrigger" "cart_area,enable,,0,-1" "OnTrigger" "gate2_relay,trigger,,0,-1" "OnTrigger" "gatebarrier_cash,kill,,1,-1" "OnTrigger" "redspawn,Enable,,0,-1" "OnTrigger" "hatchgaurdian,Enable,,0,-1" "OnTrigger" "gianthatchsupport,Enable,,0,-1" "OnTrigger" "spawnwalls,Kill,,0,-1" "OnTrigger" "gatebarrier,Kill,,0,-1" "OnTrigger" "gatedown_sound,Playsound,,0,-1" "OnTrigger" "gate_capture_sound,PlaySound,,1.5,-1" "OnTrigger" "gatedown_sound,Kill,,5,-1" "OnTrigger" "gate_capture_sound,Kill,,6.5,-1" "OnTrigger" "w1_note1,Disable,,0,-1" "OnTrigger" "portapotty_swarm,Disable,,0,-1" "OnTrigger" "newsstand_swarm,Disable,,0,-1" "OnTrigger" "gate2_disable_cart,Disable,,0,-1" } NoFixup 1 game_text_tf { "targetname" "cart_stuck" "background" "3" "display_to_team" "3" "icon" "ico_notify_flag_moving_alt" "message" "The cart won't procced until all the enemies are killed." } NoFixup 1 game_text_tf { "targetname" "gateb_captured" "background" "3" "display_to_team" "3" "icon" "ico_notify_flag_moving_alt" "message" "Gate B was succesfully captured!" } NoFixup 1 game_text_tf { "targetname" "gatea_captured" "background" "3" "display_to_team" "3" "icon" "ico_notify_flag_moving_alt" "message" "Gate A was succesfully captured!" } } wave1_notes { OnSpawnOutput { Target gateb_captured Action Disable } OnSpawnOutput { Target cart_stuck Action Disable } NoFixup 1 game_text_tf { "targetname" "w1_note1" "background" "3" "display_to_team" "3" "icon" "ico_notify_flag_moving_alt" "message" "The cart has stopped dead in its tracks! Kill the robots within this area to capture the gate!" } NoFixup 1 game_text_tf { "targetname" "w1_note2" "background" "3" "display_to_team" "3" "icon" "ico_demolish" "message" "Well done! The cart can be pushed once again and gate B was succesfully captured!" } } MafiaBoss_Invul_Function { NoFixup 1 trigger_add_tf_player_condition { "targetname" "mafiaboss_uber" "condition" "52" "duration" "1" "filtername" "filter_mafiaboss" "origin" "0 0 0" "mins" "-25 -25 -25" "maxs" "25 25 25" "StartDisabled" "1" "spawnflags" "1" } logic_timer { "targetname" "uba" "refiretime" "1" "startdisabled" "1" "ontimer" "mafiaboss_uber,Enable,,0,-1" "ontimer" "mafiaboss_uber,Disable,,0.5,-1" } game_text_tf { "targetname" "mafiaboss_note1" "background" "3" "display_to_team" "3" "icon" "ico_notify_flag_moving_alt" "message" "The mafia's boss is currently invulnerable, continue pushing the cart!" } logic_relay { "targetname" "lolbosstime" "OnTrigger" "mafiaboss_note1,Display,,0,-1" "OnTrigger" "uba,Enable,,0,-1" } OnSpawnOutput { Target lolbosstime Action trigger } } MafiaBoss_Invul { NoFixup 1 OnSpawnOutput { Target pl_path2_31 Action AddOutput Param "OnPass mafiaboss_shield_disable:trigger::0:-1" } filter_tf_bot_has_tag { "Negated" "Allow entities that match criteria" "require_all_tags" "1" "tags" "bot_mafiaboss" "targetname" "filter_mafiaboss" } game_text_tf { "targetname" "mafiaboss_note2" "background" "3" "display_to_team" "3" "icon" "ico_demolish" "message" "The mafia boss is now able to take damage! Shoot him down to reactivate the for-now-invulnerable cart!" } game_text_tf { "targetname" "mafiaboss_note3" "background" "3" "display_to_team" "3" "icon" "ico_notify_flag_moving_alt" "message" "The cart is now reactivated and able to be harmed, get to pushing!" } ambient_generic { "targetname" "mafia_uber_sound" "message" "player/invulnerable_off.wav" "health" "10" "radius" "69420" "spawnflags" "49" } logic_relay { "targetname" "mafiaboss_shield_disable" "OnTrigger" "mafiaboss_note2,display,,0,-1" "OnTrigger" "uba,disable,,0,-1" "OnTrigger" "mafiaboss_uber,kill,,0,-1" "OnTrigger" "mafia_uber_sound,Playsound,,0,-1" "OnTrigger" "cart_area,disable,,0,-1" "OnTrigger" "payloadtank,SetHealth,600000,0,-1" } logic_relay { "targetname" "mafiaboss_died" "OnTrigger" "cart_area,enable,,0,-1" "OnTrigger" "payloadtank,SetHealth,27000,0,-1" "OnTrigger" "mafiaboss_note3,display,,0,-1" } } } SpawnTemplate Barrier SpawnTemplate Fixupspawn SpawnTemplate { Name station Origin "828 986 -63" Angles "0 -90 0" } SpawnTemplate { Name station2 Origin "-1565 -180 -130" Angles "0 0 0" } ItemAttributes { ItemName "The Short Circuit" "provide on active" 1 "metal_pickup_decreased" 1 "single wep deploy time increased" 3 "single wep holster time increased" 3 "fire rate penalty" 3 } CustomWeapon // t. samson berserk inspired weapon { Name "The Celtic Cleaver" OriginalItemName "The Persian Persuader" "special item description" "Shorter range, 20% extra damage bonus. Deal more damage the lower your health." // remove stats "charge meter on hit" 0 "is_a_sword" 0 "special taunt" 0 // not sure if this works "melee range multiplier" 0.75 "melee bounds multiplier" 0.75 // actual stats "crit kill will gib" 1 "CARD: damage bonus" 1.20 // stackable damage "mod shovel damage boost" 2 "critboost on kill" 1 "speed_boost_on_kill" 2 "maxammo primary reduced" 0.15 "maxammo secondary reduced" 0.15 "custom item model" "models/workshop/weapons/c_models/c_celtic_cleaver/c_demo_sultan_sword.mdl" "custom kill icon" "battleaxe" } ExtraLoadoutItems { Demoman { Melee "The Celtic Cleaver" } } Wave //wave 1 900 cash { SpawnTemplate wave1_notes StartWaveOutput { Target wave_start_relay Action Trigger } DoneOutput { Target wave_finished_relay Action trigger } Explanation { Line "{Red}---------------------------------" Line "{Yellow} Players cannot pick up the bomb" Line "{green} Be prepared for bomb escorting" Line "{blue} Cart escorting allows you to have forward spawns" Line "{blue} You have 8 minutes to complete each wave" Line "{Red}---------------------------------" } WaveSpawn { Name blueicon Support 1 TotalCount 1 MaxActive 1 SpawnCount 1 Where spawnbot WaitBeforeStarting 9999 TFBot { Class Scout ClassIcon blu2_lite } } WaveSpawn { Name "payload" Where spawnbot TotalCount 1 MaxActive 1 SpawnCount 1 WaitBeforeStarting 0 Support Limited Tank { Health 40000 Speed 90 Scale 0.5 ClassIcon payload_blu Model "models/empty.mdl" StartSound "misc/null.wav" PingSound "misc/null.wav" EngineLoopSound "misc/null.wav" DisableTracks 1 DisableSmokestack 1 DisableChildModels 1 Name "payloadtank" StartingPathTrackNode "pl_path_1" TeamNum 3 SpawnTemplate { Name "payload" Origin "0 0 42" } } } WaveSpawn { Name "lose-condition" WaitForAllDead "payload" FirstSpawnOutput { Target redwin_relay Action Trigger } } WaveSpawn { Name w1-1 Where newsstand TotalCount 44 MaxActive 9 SpawnCount 3 WaitBeforeStarting 4 WaitBetweenSpawns 1 TotalCurrency 150 FirstSpawnOutput // add this for the first bots that spawn in that location, use FirstSpawnOutput/LastSpawnOutput { Target newsstand_on_logic Action Trigger } RandomChoice { TFBot { Class Scout Skill Easy Attributes IgnoreFlag Action Mobber InterruptAction // Stop current bot ai and force the bot to move to a location { Target "tank_boss" // Entity / bot / class name as an alternative. Also: RandomEnemy, ClosestPlayer AimTarget "tank_boss" // Entity / bot / class name as an alternative. Also: RandomEnemy, ClosestPlayer KillAimTarget 1 // Attack aim target (Default: 0) Delay 5 // Time before the first task starts. Must be above 0, or it will not execute (Default: 10) Repeats 0 // How many times should bot do the task in total (Default: 0 - Infinite) Cooldown 5 //Time between each task (Default: 10) Duration 10 // How long should the ai be interrupted } CharacterAttributes { "crit mod disabled" 0 "voice pitch scale" 0 } AddCond { Index 43 } AddCond { Index 5 Duration 2 } } TFBot { Class Scout Skill Easy Attributes IgnoreFlag Action Mobber ExtAttr IgnoreNPC CharacterAttributes { "crit mod disabled" 0 "voice pitch scale" 0 } AddCond { Index 43 } AddCond { Index 5 Duration 2 } } } } WaveSpawn { Name w1-1 Where mannholecover TotalCount 6 MaxActive 2 SpawnCount 2 WaitBeforeStarting 4 WaitBetweenSpawns 0 TotalCurrency 200 FirstSpawnOutput { Target portapotty_on_logic Action Trigger } RandomChoice { TFBot { Template T_TFBot_Giant_DemoMan_PrinceTavish Item "The Splendid Screen" Attributes IgnoreFlag Action Mobber InterruptAction // Stop current bot ai and force the bot to move to a location { Target "tank_boss" // Entity / bot / class name as an alternative. Also: RandomEnemy, ClosestPlayer AimTarget "tank_boss" // Entity / bot / class name as an alternative. Also: RandomEnemy, ClosestPlayer KillAimTarget 1 // Attack aim target (Default: 0) Delay 5 // Time before the first task starts. Must be above 0, or it will not execute (Default: 10) Repeats 0 // How many times should bot do the task in total (Default: 0 - Infinite) Cooldown 5 //Time between each task (Default: 10) Duration 10 // How long should the ai be interrupted } CharacterAttributes { "damage force reduction" 0 "crit mod disabled" 0 "voice pitch scale" 0 } AddCond { Index 43 } AddCond { Index 5 Duration 2 } } TFBot { Template T_TFBot_Giant_DemoMan_PrinceTavish Item "The Splendid Screen" Attributes IgnoreFlag Action Mobber ExtAttr IgnoreNPC CharacterAttributes { "damage force reduction" 0 "crit mod disabled" 0 "voice pitch scale" 0 } AddCond { Index 43 } AddCond { Index 5 Duration 2 } } } } WaveSpawn { Name w1-2 WaitForAllDead w1-1 Where mannholecover Where newsstand_swarm Where portapotty_swarm TotalCount 60 MaxActive 8 SpawnCount 2 WaitBeforeStarting 1 WaitBetweenSpawns 0.5 TotalCurrency 125 FirstSpawnOutput { Target mannholecover_on_logic Action Trigger } RandomChoice { TFBot { Template T_TFBot_Sniper_Huntsman Skill Normal Attributes IgnoreFlag Action Mobber InterruptAction // Stop current bot ai and force the bot to move to a location { Target "tank_boss" // Entity / bot / class name as an alternative. Also: RandomEnemy, ClosestPlayer AimTarget "tank_boss" // Entity / bot / class name as an alternative. Also: RandomEnemy, ClosestPlayer KillAimTarget 1 // Attack aim target (Default: 0) Delay 5 // Time before the first task starts. Must be above 0, or it will not execute (Default: 10) Repeats 0 // How many times should bot do the task in total (Default: 0 - Infinite) Cooldown 5 //Time between each task (Default: 10) Duration 10 // How long should the ai be interrupted } CharacterAttributes { "crit mod disabled" 0 "voice pitch scale" 0 } AddCond { Index 43 } AddCond { Index 5 Duration 2 } } TFBot { Template T_TFBot_Sniper_Huntsman Skill Normal Attributes IgnoreFlag Action Mobber ExtAttr IgnoreNPC CharacterAttributes { "crit mod disabled" 0 "voice pitch scale" 0 } AddCond { Index 43 } AddCond { Index 5 Duration 2 } } TFBot { Class Pyro Skill Easy Attributes IgnoreFlag Action Mobber ExtAttr IgnoreNPC CharacterAttributes { "crit mod disabled" 0 "voice pitch scale" 0 } AddCond { Index 43 } AddCond { Index 5 Duration 2 } } TFBot { Class Pyro Skill Easy Attributes IgnoreFlag Action Mobber ExtAttr IgnoreNPC InterruptAction // Stop current bot ai and force the bot to move to a location { Target "tank_boss" // Entity / bot / class name as an alternative. Also: RandomEnemy, ClosestPlayer AimTarget "tank_boss" // Entity / bot / class name as an alternative. Also: RandomEnemy, ClosestPlayer KillAimTarget 1 // Attack aim target (Default: 0) Delay 5 // Time before the first task starts. Must be above 0, or it will not execute (Default: 10) Repeats 0 // How many times should bot do the task in total (Default: 0 - Infinite) Cooldown 5 //Time between each task (Default: 10) Duration 10 // How long should the ai be interrupted } CharacterAttributes { "crit mod disabled" 0 "voice pitch scale" 0 } AddCond { Index 43 } AddCond { Index 5 Duration 2 } } } } WaveSpawn { Name w1-2 WaitForAllDead w1-1 Where dumptruck Where newsstand_swarm Where portapotty_swarm TotalCount 2 MaxActive 2 SpawnCount 1 WaitBeforeStarting 1 WaitBetweenSpawns 20 TotalCurrency 50 FirstSpawnOutput { Target dumptruck_on_logic Action Trigger } TFBot { Class heavyweapons Name "Giant Gru Heavy" ClassIcon heavy_urgent Skill expert Health 5000 Item "Gloves of Running Urgently MvM" Item "Pugilist's Protector" WeaponRestrictions MeleeOnly Attributes MiniBoss Attributes IgnoreFlag Action Mobber ExtAttr IgnoreNPC CharacterAttributes { "damage force reduction" 0 "crit mod disabled" 0 "voice pitch scale" 0 "move speed bonus" 0.5 "airblast vulnerability multiplier" 0.3 "override footstep sound set" 2 } AddCond { Index 43 } AddCond { Index 5 Duration 2 } } } WaveSpawn { Name barriershutoff WaitForAllSpawned w1-2 Support limited TotalCount 1 MaxActive 1 SpawnCount 1 WaitBeforeStarting 0 WaitBetweenSpawns 9999 DoneOutput { Target gate2_done Action Trigger } } WaveSpawn { Name w1-2-1kgb2 WaitForAllSpawned w1-2-1kgb Where gianthatchsupport TotalCount 2 MaxActive 2 SpawnCount 1 WaitBeforeStarting 1 WaitBetweenSpawns 20 TotalCurrency 50 FirstSpawnOutput { Target dumptruck_on_logic Action Trigger } TFBot { Class heavyweapons Name "Giant Gru Heavy" ClassIcon heavy_urgent Skill expert Health 5000 Item "Gloves of Running Urgently MvM" Item "Pugilist's Protector" WeaponRestrictions MeleeOnly Attributes MiniBoss Attributes IgnoreFlag Action Mobber ExtAttr IgnoreNPC AlwaysGlow 1 CharacterAttributes { "damage force reduction" 0 "crit mod disabled" 0 "voice pitch scale" 0 "move speed bonus" 0.5 "airblast vulnerability multiplier" 0.3 "override footstep sound set" 2 } AddCond { Index 43 } AddCond { Index 5 Duration 2 } } } WaveSpawn { Name w1-2-1 WaitForAllDead w1-2 TotalCount 46 MaxActive 12 SpawnCount 2 Where redspawn WaitBeforeStarting 4 WaitBetweenSpawns 2 TotalCurrency 50 RandomChoice { TFBot { Class Scout Skill Easy Attributes IgnoreFlag Action Mobber InterruptAction // Stop current bot ai and force the bot to move to a location { Target "tank_boss" // Entity / bot / class name as an alternative. Also: RandomEnemy, ClosestPlayer AimTarget "tank_boss" // Entity / bot / class name as an alternative. Also: RandomEnemy, ClosestPlayer KillAimTarget 1 // Attack aim target (Default: 0) Delay 5 // Time before the first task starts. Must be above 0, or it will not execute (Default: 10) Repeats 0 // How many times should bot do the task in total (Default: 0 - Infinite) Cooldown 5 //Time between each task (Default: 10) Duration 10 // How long should the ai be interrupted } CharacterAttributes { "crit mod disabled" 0 "voice pitch scale" 0 } AddCond { Index 43 } AddCond { Index 5 Duration 2 } } TFBot { Class Scout Skill Easy Attributes IgnoreFlag Action Mobber ExtAttr IgnoreNPC CharacterAttributes { "crit mod disabled" 0 "voice pitch scale" 0 } AddCond { Index 43 } AddCond { Index 5 Duration 2 } } } } WaveSpawn { Name redicon Support 1 TotalCount 1 MaxActive 1 SpawnCount 1 Where spawnbot WaitBeforeStarting 9999 TFBot { Class Scout ClassIcon red2_lite } } WaveSpawn { Name w1-3 WaitForAllDead w1-2-1 Where redspawn TotalCount 9999 MaxActive 15 SpawnCount 1 Support 1 WaitBeforeStarting 2 WaitBetweenSpawns 5 TotalCurrency 50 TFBot { Class Soldier Skill Normal Attributes IgnoreFlag Action Mobber InterruptAction // Stop current bot ai and force the bot to move to a location { Target "tank_boss" // Entity / bot / class name as an alternative. Also: RandomEnemy, ClosestPlayer AimTarget "tank_boss" // Entity / bot / class name as an alternative. Also: RandomEnemy, ClosestPlayer KillAimTarget 1 // Attack aim target (Default: 0) Delay 5 // Time before the first task starts. Must be above 0, or it will not execute (Default: 10) Repeats 0 // How many times should bot do the task in total (Default: 0 - Infinite) Cooldown 5 //Time between each task (Default: 10) Duration 10 // How long should the ai be interrupted } CharacterAttributes { "crit mod disabled" 0 "voice pitch scale" 0 } AddCond { Index 43 } AddCond { Index 5 Duration 2 } } } WaveSpawn { Name w1-3 WaitForAllDead w1-2-1 Where gianthatchsupport TotalCount 2 MaxActive 2 SpawnCount 1 WaitBeforeStarting 5 WaitBetweenSpawns 10 TotalCurrency 25 TFBot { Template T_TFBot_Giant_Scout_Baseball Skill Normal AlwaysGlow 1 Attributes IgnoreFlag Action Mobber ExtAttr IgnoreNPC CharacterAttributes { "crit mod disabled" 0 "voice pitch scale" 0 "damage force reduction" 0 } AddCond { Index 43 } AddCond { Index 5 Duration 2 } } } WaveSpawn { Name hatch Where hatchgaurdian WaitForAllSpawned w1-2-1kgb2 TotalCount 1 MaxActive 1 SpawnCount 1 WaitBeforeStarting 0 WaitBetweenSpawns 0 TotalCurrency 200 TFBot { Template T_TFBot_Giant_Soldier_Spammer UseMeleeThreatPrioritization 1 Attributes IgnoreFlag Action Mobber CharacterAttributes {"move speed bonus" 0.001 "no_jump" 1 "damage force reduction" 0 "crit mod disabled" 0 "voice pitch scale" 0} AddCond { Index 43 } AddCond { Index 5 Duration 2 } } } WaveSpawn // Dummy, makes wave seems infinite { TotalCount 0 SpawnCount 0 WaitBeforeStarting 9999 Where spawnbot RandomChoice { RandomChoice { TFBot { Class Scout } } } } } Wave // wave 2 1100 cash { StartWaveOutput { Target wave_start_relay Action Trigger } DoneOutput { Target wave_finished_relay Action trigger } WaveSpawn { Name blueicon Support 1 TotalCount 1 MaxActive 1 SpawnCount 1 Where spawnbot WaitBeforeStarting 9999 TFBot { Class Scout ClassIcon blu2_lite } } WaveSpawn { Name "payload" Where spawnbot TotalCount 1 MaxActive 1 SpawnCount 1 WaitBeforeStarting 0 Support Limited Tank { Health 30000 Speed 90 Scale 0.5 ClassIcon payload_blu Model "models/empty.mdl" StartSound "misc/null.wav" PingSound "misc/null.wav" EngineLoopSound "misc/null.wav" DisableTracks 1 DisableSmokestack 1 DisableChildModels 1 Name "payloadtank" StartingPathTrackNode "pl_path2_1" TeamNum 3 SpawnTemplate { Name "payload" Origin "0 0 42" } } } WaveSpawn { Name "lose-condition" WaitForAllDead "payload" FirstSpawnOutput { Target redwin_relay Action Trigger } } WaveSpawn { Name redicon Support 1 TotalCount 1 MaxActive 1 SpawnCount 1 Where spawnbot WaitBeforeStarting 9999 TFBot { Class Scout ClassIcon red2_lite } } WaveSpawn { Name w2-1 Where newsstand TotalCount 35 MaxActive 7 SpawnCount 1 WaitBeforeStarting 4 WaitBetweenSpawns 1 TotalCurrency 200 RandomChoice { TFBot { Template T_TFBot_Heavyweapons_Shotgun Attributes IgnoreFlag Action Mobber ClassIcon heavy_shotgun_red InterruptAction // Stop current bot ai and force the bot to move to a location { Target "tank_boss" // Entity / bot / class name as an alternative. Also: RandomEnemy, ClosestPlayer AimTarget "tank_boss" // Entity / bot / class name as an alternative. Also: RandomEnemy, ClosestPlayer KillAimTarget 1 // Attack aim target (Default: 0) Delay 5 // Time before the first task starts. Must be above 0, or it will not execute (Default: 10) Repeats 0 // How many times should bot do the task in total (Default: 0 - Infinite) Cooldown 5 //Time between each task (Default: 10) Duration 10 // How long should the ai be interrupted } CharacterAttributes { "crit mod disabled" 0 "voice pitch scale" 0 } AddCond { Index 43 } AddCond { Index 5 Duration 2 } } TFBot { Template T_TFBot_Heavyweapons_Shotgun Attributes IgnoreFlag Action Mobber ClassIcon heavy_shotgun_red ExtAttr IgnoreNPC CharacterAttributes { "crit mod disabled" 0 "voice pitch scale" 0 } AddCond { Index 43 } AddCond { Index 5 Duration 2 } } } } WaveSpawn { Name w2-1 Where newsstand TotalCount 35 MaxActive 7 SpawnCount 1 WaitBeforeStarting 4 WaitBetweenSpawns 1 TotalCurrency 200 TFBot { Template T_TFBot_Soldier_RocketShotgun Attributes IgnoreFlag Action Mobber InterruptAction // Stop current bot ai and force the bot to move to a location { Target "tank_boss" // Entity / bot / class name as an alternative. Also: RandomEnemy, ClosestPlayer AimTarget "tank_boss" // Entity / bot / class name as an alternative. Also: RandomEnemy, ClosestPlayer KillAimTarget 1 // Attack aim target (Default: 0) Delay 5 // Time before the first task starts. Must be above 0, or it will not execute (Default: 10) Repeats 0 // How many times should bot do the task in total (Default: 0 - Infinite) Cooldown 5 //Time between each task (Default: 10) Duration 10 // How long should the ai be interrupted } CharacterAttributes { "crit mod disabled" 0 "voice pitch scale" 0 } AddCond { Index 43 } AddCond { Index 5 Duration 2 } } } WaveSpawn { Name w2-1 Where portapotty TotalCount 3 MaxActive 3 SpawnCount 1 WaitBeforeStarting 4 WaitBetweenSpawns 10 TotalCurrency 200 RandomChoice { TFBot { Template T_TFBot_Giant_Demo_RapidFire ClassIcon demo_rapid_giant Attributes IgnoreFlag Action Mobber InterruptAction // Stop current bot ai and force the bot to move to a location { Target "tank_boss" // Entity / bot / class name as an alternative. Also: RandomEnemy, ClosestPlayer AimTarget "tank_boss" // Entity / bot / class name as an alternative. Also: RandomEnemy, ClosestPlayer KillAimTarget 1 // Attack aim target (Default: 0) Delay 5 // Time before the first task starts. Must be above 0, or it will not execute (Default: 10) Repeats 0 // How many times should bot do the task in total (Default: 0 - Infinite) Cooldown 5 //Time between each task (Default: 10) Duration 10 // How long should the ai be interrupted } CharacterAttributes { "damage force reduction" 0 "crit mod disabled" 0 "voice pitch scale" 0 } AddCond { Index 43 } AddCond { Index 5 Duration 2 } } TFBot { Template T_TFBot_Giant_Demo_RapidFire ClassIcon demo_rapid_giant Attributes IgnoreFlag Action Mobber ExtAttr IgnoreNPC CharacterAttributes { "damage force reduction" 0 "crit mod disabled" 0 "voice pitch scale" 0 } AddCond { Index 43 } AddCond { Index 5 Duration 2 } } } } WaveSpawn { Name w2-2 WaitForAllDead w2-1 Where mannholecover Where newsstand_swarm Where portapotty_swarm TotalCount 24 MaxActive 12 SpawnCount 2 WaitBeforeStarting 1 WaitBetweenSpawns 0 TotalCurrency 200 Squad { TFBot { Template T_TFBot_Pyro_Flaregun ClassIcon pyro_flare_red Attributes IgnoreFlag Attributes AlwaysCrit Action Mobber ExtAttr IgnoreNPC CharacterAttributes { "crit mod disabled" 0 "voice pitch scale" 0 } AddCond { Index 43 } AddCond { Index 5 Duration 2 } } TFBot { Template T_TFBot_Soldier_Extended_Concheror Attributes IgnoreFlag Action Mobber InterruptAction // Stop current bot ai and force the bot to move to a location { Target "tank_boss" // Entity / bot / class name as an alternative. Also: RandomEnemy, ClosestPlayer AimTarget "tank_boss" // Entity / bot / class name as an alternative. Also: RandomEnemy, ClosestPlayer KillAimTarget 1 // Attack aim target (Default: 0) Delay 5 // Time before the first task starts. Must be above 0, or it will not execute (Default: 10) Repeats 0 // How many times should bot do the task in total (Default: 0 - Infinite) Cooldown 5 //Time between each task (Default: 10) Duration 10 // How long should the ai be interrupted } ItemAttributes { ItemName "The Concheror" "switch from wep deploy time decreased" -2 } CharacterAttributes { "crit mod disabled" 0 "voice pitch scale" 0 } AddCond { Index 43 } AddCond { Index 5 Duration 2 } } } } WaveSpawn { Name w2-2 WaitForAllDead w2-1 Where mannholecover Where newsstand_swarm Where portapotty_swarm TotalCount 2 MaxActive 2 SpawnCount 1 WaitBeforeStarting 2 WaitBetweenSpawns 24 TotalCurrency 100 RandomChoice { TFBot { Template T_TFBot_Giant_Soldier_Spammer_Reload Attributes IgnoreFlag Action Mobber InterruptAction // Stop current bot ai and force the bot to move to a location { Target "tank_boss" // Entity / bot / class name as an alternative. Also: RandomEnemy, ClosestPlayer AimTarget "tank_boss" // Entity / bot / class name as an alternative. Also: RandomEnemy, ClosestPlayer KillAimTarget 1 // Attack aim target (Default: 0) Delay 5 // Time before the first task starts. Must be above 0, or it will not execute (Default: 10) Repeats 0 // How many times should bot do the task in total (Default: 0 - Infinite) Cooldown 5 //Time between each task (Default: 10) Duration 10 // How long should the ai be interrupted } ItemAttributes { ItemName "TF_WEAPON_ROCKETLAUNCHER" "auto fires full clip" 0 "can overload" 0 } CharacterAttributes { "damage force reduction" 0 "crit mod disabled" 0 "voice pitch scale" 0 } AddCond { Index 43 } AddCond { Index 5 Duration 2 } } TFBot { Template T_TFBot_Giant_Soldier_Spammer_Reload Attributes IgnoreFlag Action Mobber ExtAttr IgnoreNPC ItemAttributes { ItemName "TF_WEAPON_ROCKETLAUNCHER" "auto fires full clip" 0 "can overload" 0 } CharacterAttributes { "damage force reduction" 0 "crit mod disabled" 0 "voice pitch scale" 0 } AddCond { Index 43 } AddCond { Index 5 Duration 2 } } } } WaveSpawn { Name w2-2 WaitForAllDead w2-1 Where mannholecover Where newsstand_swarm Where portapotty_swarm TotalCount 36 MaxActive 12 SpawnCount 6 WaitBeforeStarting 2 WaitBetweenSpawns 7 TotalCurrency 100 RandomChoice { TFBot { Class Scout Skill Easy Attributes IgnoreFlag Action Mobber InterruptAction // Stop current bot ai and force the bot to move to a location { Target "tank_boss" // Entity / bot / class name as an alternative. Also: RandomEnemy, ClosestPlayer AimTarget "tank_boss" // Entity / bot / class name as an alternative. Also: RandomEnemy, ClosestPlayer KillAimTarget 1 // Attack aim target (Default: 0) Delay 5 // Time before the first task starts. Must be above 0, or it will not execute (Default: 10) Repeats 0 // How many times should bot do the task in total (Default: 0 - Infinite) Cooldown 5 //Time between each task (Default: 10) Duration 10 // How long should the ai be interrupted } ItemAttributes { ItemName "TF_WEAPON_ROCKETLAUNCHER" "auto fires full clip" 0 "can overload" 0 } CharacterAttributes { "damage force reduction" 0 "crit mod disabled" 0 "voice pitch scale" 0 } AddCond { Index 43 } AddCond { Index 5 Duration 2 } } TFBot { Class Scout Skill Easy Attributes IgnoreFlag Action Mobber ExtAttr IgnoreNPC ItemAttributes { ItemName "TF_WEAPON_ROCKETLAUNCHER" "auto fires full clip" 0 "can overload" 0 } CharacterAttributes { "damage force reduction" 0 "crit mod disabled" 0 "voice pitch scale" 0 } AddCond { Index 43 } AddCond { Index 5 Duration 2 } } } } WaveSpawn { Name barriershutoff WaitForAllSpawned w2-2 Support limited TotalCount 1 MaxActive 1 SpawnCount 1 WaitBeforeStarting 0 WaitBetweenSpawns 9999 DoneOutput { Target gate2_done Action Trigger } } WaveSpawn { Name w3-1 WaitForAllDead w2-2 Where redspawn Support 1 TotalCount 9999 MaxActive 10 SpawnCount 2 WaitBeforeStarting 7 WaitBetweenSpawns 1 RandomChoice { TFBot { Class Demoman Attributes IgnoreFlag Action Mobber InterruptAction // Stop current bot ai and force the bot to move to a location { Target "tank_boss" // Entity / bot / class name as an alternative. Also: RandomEnemy, ClosestPlayer AimTarget "tank_boss" // Entity / bot / class name as an alternative. Also: RandomEnemy, ClosestPlayer KillAimTarget 1 // Attack aim target (Default: 0) Delay 5 // Time before the first task starts. Must be above 0, or it will not execute (Default: 10) Repeats 0 // How many times should bot do the task in total (Default: 0 - Infinite) Cooldown 5 //Time between each task (Default: 10) Duration 10 // How long should the ai be interrupted } CharacterAttributes { "crit mod disabled" 0 "voice pitch scale" 0 } AddCond { Index 43 } AddCond { Index 5 Duration 2 } } TFBot { Class Demoman Attributes IgnoreFlag Action Mobber ExtAttr IgnoreNPC CharacterAttributes { "crit mod disabled" 0 "voice pitch scale" 0 } AddCond { Index 43 } AddCond { Index 5 Duration 2 } } TFBot { Template T_TFBot_ScorchShot_FastShot ClassIcon pyro_scorch_spammer Attributes IgnoreFlag Action Mobber InterruptAction // Stop current bot ai and force the bot to move to a location { Target "tank_boss" // Entity / bot / class name as an alternative. Also: RandomEnemy, ClosestPlayer AimTarget "tank_boss" // Entity / bot / class name as an alternative. Also: RandomEnemy, ClosestPlayer KillAimTarget 1 // Attack aim target (Default: 0) Delay 5 // Time before the first task starts. Must be above 0, or it will not execute (Default: 10) Repeats 0 // How many times should bot do the task in total (Default: 0 - Infinite) Cooldown 5 //Time between each task (Default: 10) Duration 10 // How long should the ai be interrupted } CharacterAttributes { "crit mod disabled" 0 "voice pitch scale" 0 } AddCond { Index 43 } AddCond { Index 5 Duration 2 } } TFBot { Template T_TFBot_ScorchShot_FastShot ClassIcon pyro_scorch_spammer Attributes IgnoreFlag Action Mobber ExtAttr IgnoreNPC CharacterAttributes { "crit mod disabled" 0 "voice pitch scale" 0 } AddCond { Index 43 } AddCond { Index 5 Duration 2 } } } } WaveSpawn { Name w3-2 WaitForAllDead w2-3 Where hatchgaurdian TotalCount 1 SpawnCount 1 MaxActive 1 WaitBeforeStarting 0 TotalCurrency 100 TFBot { Template T_TFBot_Heavyweapons_Heater Name "Giant Heater Heavy" UseMeleeThreatPrioritization 1 Attributes IgnoreFlag Action Mobber InterruptAction // Stop current bot ai and force the bot to move to a location { Target "tank_boss" // Entity / bot / class name as an alternative. Also: RandomEnemy, ClosestPlayer AimTarget "tank_boss" // Entity / bot / class name as an alternative. Also: RandomEnemy, ClosestPlayer KillAimTarget 1 // Attack aim target (Default: 0) Delay 5 // Time before the first task starts. Must be above 0, or it will not execute (Default: 10) Repeats 0 // How many times should bot do the task in total (Default: 0 - Infinite) Cooldown 5 //Time between each task (Default: 10) Duration 10 // How long should the ai be interrupted } CharacterAttributes {"move speed bonus" 0.001 "no_jump" 1 "damage force reduction" 0 "crit mod disabled" 0 "voice pitch scale" 0} AddCond { Index 43 } AddCond { Index 5 Duration 2 } } } WaveSpawn // Dummy, makes wave seems infinite { TotalCount 0 SpawnCount 0 WaitBeforeStarting 9999 Where spawnbot RandomChoice { RandomChoice { TFBot { Class Scout } } } } } Wave // Wave 3 $1000 { StartWaveOutput { Target wave_start_relay Action Trigger } DoneOutput { Target wave_finished_relay Action trigger } WaveSpawn { Name blueicon Support 1 TotalCount 1 MaxActive 1 SpawnCount 1 Where spawnbot WaitBeforeStarting 9999 TFBot { Class Scout ClassIcon blu2_lite } } WaveSpawn { Name "payload" Where spawnbot TotalCount 1 MaxActive 1 SpawnCount 1 WaitBeforeStarting 0 Support Limited Tank { Health 30000 Speed 90 Scale 0.5 ClassIcon payload_blu Model "models/empty.mdl" StartSound "misc/null.wav" PingSound "misc/null.wav" EngineLoopSound "misc/null.wav" DisableTracks 1 DisableSmokestack 1 DisableChildModels 1 Name "payloadtank" StartingPathTrackNode "pl_path_1" TeamNum 3 SpawnTemplate { Name "payload" Origin "0 0 42" } } } WaveSpawn { Name "lose-condition" WaitForAllDead "payload" FirstSpawnOutput { Target redwin_relay Action Trigger } } WaveSpawn { Name w1-1 Where newsstand TotalCount 44 MaxActive 12 SpawnCount 1 WaitBetweenSpawns 0.5 WaitBeforeStarting 2 TotalCurrency 100 RandomChoice { TFBot { Template T_TFBot_Sniper_Huntsman Attributes IgnoreFlag Action Mobber InterruptAction // Stop current bot ai and force the bot to move to a location { Target "tank_boss" // Entity / bot / class name as an alternative. Also: RandomEnemy, ClosestPlayer AimTarget "tank_boss" // Entity / bot / class name as an alternative. Also: RandomEnemy, ClosestPlayer KillAimTarget 1 // Attack aim target (Default: 0) Delay 5 // Time before the first task starts. Must be above 0, or it will not execute (Default: 10) Repeats 0 // How many times should bot do the task in total (Default: 0 - Infinite) Cooldown 5 //Time between each task (Default: 10) Duration 10 // How long should the ai be interrupted } CharacterAttributes { "crit mod disabled" 0 "voice pitch scale" 0 } AddCond { Index 43 } AddCond { Index 5 Duration 2 } } TFBot { Template T_TFBot_Sniper_Huntsman Attributes IgnoreFlag Action Mobber ExtAttr IgnoreNPC CharacterAttributes { "crit mod disabled" 0 "voice pitch scale" 0 } AddCond { Index 43 } AddCond { Index 5 Duration 2 } } } } WaveSpawn { Name w1-2 Where portapotty TotalCount 2 MaxActive 2 SpawnCount 1 WaitBeforeStarting 4 WaitBetweenSpawns 26 TotalCurrency 100 RandomChoice { TFBot { Template T_TFBot_Giant_Soldier_Spammer Attributes IgnoreFlag Action Mobber InterruptAction // Stop current bot ai and force the bot to move to a location { Target "tank_boss" // Entity / bot / class name as an alternative. Also: RandomEnemy, ClosestPlayer AimTarget "tank_boss" // Entity / bot / class name as an alternative. Also: RandomEnemy, ClosestPlayer KillAimTarget 1 // Attack aim target (Default: 0) Delay 5 // Time before the first task starts. Must be above 0, or it will not execute (Default: 10) Repeats 0 // How many times should bot do the task in total (Default: 0 - Infinite) Cooldown 5 //Time between each task (Default: 10) Duration 10 // How long should the ai be interrupted } CharacterAttributes { "damage force reduction" 0 "crit mod disabled" 0 "voice pitch scale" 0 } AddCond { Index 43 } AddCond { Index 5 Duration 2 } } TFBot { Template T_TFBot_Giant_Soldier_Spammer Attributes IgnoreFlag Action Mobber ExtAttr IgnoreNPC CharacterAttributes { "damage force reduction" 0 "crit mod disabled" 0 "voice pitch scale" 0 } AddCond { Index 43 } AddCond { Index 5 Duration 2 } } } } WaveSpawn { Name w2-1 Where mannholecover Where newsstand_swarm Where portapotty_swarm WaitForAllDead w1-1 TotalCount 28 MaxActive 12 SpawnCount 2 WaitBeforeStarting 3 TotalCurrency 100 WaitBetweenSpawns 2 RandomChoice { TFBot { Template T_TFBot_Mafia_Heavy_Shotgun_Small Attributes IgnoreFlag Action Mobber InterruptAction // Stop current bot ai and force the bot to move to a location { Target "tank_boss" // Entity / bot / class name as an alternative. Also: RandomEnemy, ClosestPlayer AimTarget "tank_boss" // Entity / bot / class name as an alternative. Also: RandomEnemy, ClosestPlayer KillAimTarget 1 // Attack aim target (Default: 0) Delay 5 // Time before the first task starts. Must be above 0, or it will not execute (Default: 10) Repeats 0 // How many times should bot do the task in total (Default: 0 - Infinite) Cooldown 5 //Time between each task (Default: 10) Duration 10 // How long should the ai be interrupted } CharacterAttributes { "crit mod disabled" 0 "voice pitch scale" 0 } AddCond { Index 43 } AddCond { Index 5 Duration 2 } } TFBot { Template T_TFBot_Mafia_Heavy_Shotgun_Small Attributes IgnoreFlag Action Mobber ExtAttr IgnoreNPC CharacterAttributes { "crit mod disabled" 0 "voice pitch scale" 0 } AddCond { Index 43 } AddCond { Index 5 Duration 2 } } } } WaveSpawn { Name w2-2 Where mannholecover Where newsstand_swarm Where portapotty_swarm TotalCount 22 MaxActive 8 SpawnCount 1 WaitForAllDead w1-1 WaitBeforeStarting 5 WaitBetweenSpawns 3 TotalCurrency 100 RandomChoice { TFBot { Class Soldier Attributes IgnoreFlag Action Mobber ExtAttr IgnoreNPC CharacterAttributes { "crit mod disabled" 0 "voice pitch scale" 0 } AddCond { Index 43 } AddCond { Index 5 Duration 2 } } TFBot { Class Soldier Attributes IgnoreFlag Action Mobber InterruptAction // Stop current bot ai and force the bot to move to a location { Target "tank_boss" // Entity / bot / class name as an alternative. Also: RandomEnemy, ClosestPlayer AimTarget "tank_boss" // Entity / bot / class name as an alternative. Also: RandomEnemy, ClosestPlayer KillAimTarget 1 // Attack aim target (Default: 0) Delay 5 // Time before the first task starts. Must be above 0, or it will not execute (Default: 10) Repeats 0 // How many times should bot do the task in total (Default: 0 - Infinite) Cooldown 5 //Time between each task (Default: 10) Duration 10 // How long should the ai be interrupted } CharacterAttributes { "crit mod disabled" 0 "voice pitch scale" 0 } AddCond { Index 43 } AddCond { Index 5 Duration 2 } } } } WaveSpawn { Name w3-2 Where dumptruck Where newsstand_swarm Where portapotty_swarm TotalCount 10 MaxActive 5 SpawnCount 5 WaitForAllDead w2-1 WaitBeforeStarting 5 WaitBetweenSpawns 20 TotalCurrency 300 Squad { TFBot { Template T_TFBot_Giant_Heavyweapons_Shotgun ClassIcon heavy_shotgun_red_giant Attributes IgnoreFlag Action Mobber InterruptAction // Stop current bot ai and force the bot to move to a location { Target "tank_boss" // Entity / bot / class name as an alternative. Also: RandomEnemy, ClosestPlayer AimTarget "tank_boss" // Entity / bot / class name as an alternative. Also: RandomEnemy, ClosestPlayer KillAimTarget 1 // Attack aim target (Default: 0) Delay 5 // Time before the first task starts. Must be above 0, or it will not execute (Default: 10) Repeats 0 // How many times should bot do the task in total (Default: 0 - Infinite) Cooldown 5 //Time between each task (Default: 10) Duration 10 // How long should the ai be interrupted } CharacterAttributes { "damage force reduction" 0 "crit mod disabled" 0 "voice pitch scale" 0 } AddCond { Index 43 } AddCond { Index 5 Duration 2 } } TFBot { Template T_TFBot_Medic_SlowRecharge Attributes IgnoreFlag Action Mobber AddCond { Index 43 } AddCond { Index 5 Duration 2 } CharacterAttributes { "crit mod disabled" 0 "voice pitch scale" 0 } } TFBot { Template T_TFBot_Medic_SlowRecharge Attributes IgnoreFlag Action Mobber AddCond { Index 43 } AddCond { Index 5 Duration 2 } CharacterAttributes { "crit mod disabled" 0 "voice pitch scale" 0 } } TFBot { Template T_TFBot_Medic_SlowRecharge Attributes IgnoreFlag Action Mobber AddCond { Index 43 } AddCond { Index 5 Duration 2 } CharacterAttributes { "crit mod disabled" 0 "voice pitch scale" 0 } } TFBot { Template T_TFBot_Medic_SlowRecharge Attributes IgnoreFlag Action Mobber AddCond { Index 43 } AddCond { Index 5 Duration 2 } CharacterAttributes { "crit mod disabled" 0 "voice pitch scale" 0 } } } } WaveSpawn { Name w3-2 Where dumptruck Where newsstand_swarm Where portapotty_swarm TotalCount 9 MaxActive 9 SpawnCount 1 WaitForAllDead w2-2 WaitBeforeStarting 2 WaitBetweenSpawns 3 TotalCurrency 100 RandomChoice { TFBot { Template T_TFBot_Dragon_Fury Skill Easy Attributes IgnoreFlag Action Mobber InterruptAction // Stop current bot ai and force the bot to move to a location { Target "tank_boss" // Entity / bot / class name as an alternative. Also: RandomEnemy, ClosestPlayer AimTarget "tank_boss" // Entity / bot / class name as an alternative. Also: RandomEnemy, ClosestPlayer KillAimTarget 1 // Attack aim target (Default: 0) Delay 5 // Time before the first task starts. Must be above 0, or it will not execute (Default: 10) Repeats 0 // How many times should bot do the task in total (Default: 0 - Infinite) Cooldown 5 //Time between each task (Default: 10) Duration 10 // How long should the ai be interrupted } CharacterAttributes { "crit mod disabled" 0 "voice pitch scale" 0 } AddCond { Index 43 } AddCond { Index 5 Duration 2 } } TFBot { Template T_TFBot_Dragon_Fury Skill Easy Attributes IgnoreFlag Action Mobber ExtAttr IgnoreNPC CharacterAttributes { "crit mod disabled" 0 "voice pitch scale" 0 } AddCond { Index 43 } AddCond { Index 5 Duration 2 } } } } WaveSpawn { Name barriershutoff WaitForAllSpawned w3-2 Support limited TotalCount 1 MaxActive 1 SpawnCount 1 WaitBeforeStarting 0 WaitBetweenSpawns 9999 DoneOutput { Target gate2_done Action Trigger } } WaveSpawn { Name w4-1 Where redspawn TotalCount 20 SpawnCount 1 MaxActive 10 WaitForAllSpawned w3-2 WaitBeforeStarting 8 WaitBetweenSpawns 0 TotalCurrency 100 TFBot { Template T_TFBot_Mafia_Heavy_Tomigun Skill Easy Attributes IgnoreFlag Action Mobber ExtAttr IgnoreNPC CharacterAttributes { "crit mod disabled" 0 "voice pitch scale" 0 } AddCond { Index 43 } AddCond { Index 5 Duration 2 } } } WaveSpawn { Name w4-2 WaitForAllSpawned w3-2 Where hatchgaurdian TotalCount 1 SpawnCount 1 MaxActive 1 TotalCurrency 100 TFBot { Template T_TFBot_Giant_Soldier_Extended_Concheror UseMeleeThreatPrioritization 1 Attributes IgnoreFlag Action Mobber InterruptAction // Stop current bot ai and force the bot to move to a location { Target "tank_boss" // Entity / bot / class name as an alternative. Also: RandomEnemy, ClosestPlayer AimTarget "tank_boss" // Entity / bot / class name as an alternative. Also: RandomEnemy, ClosestPlayer KillAimTarget 1 // Attack aim target (Default: 0) Delay 5 // Time before the first task starts. Must be above 0, or it will not execute (Default: 10) Repeats 0 // How many times should bot do the task in total (Default: 0 - Infinite) Cooldown 5 //Time between each task (Default: 10) Duration 10 // How long should the ai be interrupted } CharacterAttributes {"move speed bonus" 0.001 "no_jump" 1 "increase buff duration" 90.0 "damage force reduction" 0 "voice pitch scale" 0} AddCond { Index 43 } AddCond { Index 5 Duration 2 } } } WaveSpawn { Name redicon Where spawnbot TotalCount 1 Support 1 SpawnCount 1 WaitBeforeStarting 9999 TFBot { Class Scout ClassIcon red2_lite } } WaveSpawn { Name w4-sup Where redspawn TotalCount 12 Support 1 MaxActive 12 SpawnCount 4 WaitBeforeStarting 2 WaitForAllSpawned w4-1 WaitBetweenSpawns 5 RandomChoice { TFBot { Class Pyro Attributes IgnoreFlag Action Mobber Attributes AlwaysFireWeapon InterruptAction // Stop current bot ai and force the bot to move to a location { Target "tank_boss" // Entity / bot / class name as an alternative. Also: RandomEnemy, ClosestPlayer AimTarget "tank_boss" // Entity / bot / class name as an alternative. Also: RandomEnemy, ClosestPlayer KillAimTarget 1 // Attack aim target (Default: 0) Delay 5 // Time before the first task starts. Must be above 0, or it will not execute (Default: 10) Repeats 0 // How many times should bot do the task in total (Default: 0 - Infinite) Cooldown 5 //Time between each task (Default: 10) Duration 10 // How long should the ai be interrupted } CharacterAttributes { "crit mod disabled" 0 "voice pitch scale" 0 } AddCond { Index 43 } AddCond { Index 5 Duration 2 } } TFBot { Class Heavy Skill Normal Attributes IgnoreFlag Action Mobber ExtAttr IgnoreNPC AddCond { Index 43 } AddCond { Index 5 Duration 2 } CharacterAttributes { "crit mod disabled" 0 "voice pitch scale" 0 } } } } WaveSpawn // Dummy, makes wave seems infinite { TotalCount 0 SpawnCount 0 WaitBeforeStarting 9999 Where spawnbot RandomChoice { RandomChoice { TFBot { Class Scout } } } } } Wave // Wave 4 $900 { StartWaveOutput { Target wave_start_relay Action Trigger } DoneOutput { Target wave_finished_relay Action trigger } WaveSpawn { Name blueicon Support 1 TotalCount 1 MaxActive 1 SpawnCount 1 Where spawnbot WaitBeforeStarting 9999 TFBot { Class Scout ClassIcon blu2_lite } } WaveSpawn { Name "payload" Where spawnbot TotalCount 1 MaxActive 1 SpawnCount 1 WaitBeforeStarting 0 Support Limited Tank { Health 27000 Speed 90 Scale 0.5 ClassIcon payload_blu Model "models/empty.mdl" StartSound "misc/null.wav" PingSound "misc/null.wav" EngineLoopSound "misc/null.wav" DisableTracks 1 DisableSmokestack 1 DisableChildModels 1 Name "payloadtank" StartingPathTrackNode "pl_path2_1" TeamNum 3 SpawnTemplate { Name "payload" Origin "0 0 42" } } } WaveSpawn { Name "lose-condition" WaitForAllDead "payload" FirstSpawnOutput { Target redwin_relay Action Trigger } } WaveSpawn { Name w1-1 TotalCount 2 SpawnCount 1 MaxActive 2 WaitBeforeStarting 7 WaitBetweenSpawns 30 Where portapotty TotalCurrency 100 TFBot { Template T_TFBot_Giant_Heavyweapons Attributes AlwaysCrit Attributes IgnoreFlag Action Mobber ExtAttr IgnoreNPC CharacterAttributes { "damage force reduction" 0 "crit mod disabled" 0 "voice pitch scale" 0 } AddCond { Index 43 } AddCond { Index 5 Duration 2 } } } WaveSpawn { Name w1-2 TotalCount 24 SpawnCount 2 MaxActive 12 WaitBeforeStarting 8 WaitBetweenSpawns 4 Where newsstand TotalCurrency 100 RandomChoice { TFBot { Class Soldier Attributes IgnoreFlag Action Mobber InterruptAction // Stop current bot ai and force the bot to move to a location { Target "tank_boss" // Entity / bot / class name as an alternative. Also: RandomEnemy, ClosestPlayer AimTarget "tank_boss" // Entity / bot / class name as an alternative. Also: RandomEnemy, ClosestPlayer KillAimTarget 1 // Attack aim target (Default: 0) Delay 5 // Time before the first task starts. Must be above 0, or it will not execute (Default: 10) Repeats 0 // How many times should bot do the task in total (Default: 0 - Infinite) Cooldown 5 //Time between each task (Default: 10) Duration 10 // How long should the ai be interrupted } CharacterAttributes { "crit mod disabled" 0 "voice pitch scale" 0 } AddCond { Index 43 } AddCond { Index 5 Duration 2 } } TFBot { Class Soldier Attributes IgnoreFlag Action Mobber ExtAttr IgnoreNPC CharacterAttributes { "crit mod disabled" 0 "voice pitch scale" 0 } AddCond { Index 43 } AddCond { Index 5 Duration 2 } } } } WaveSpawn { Name w2-1 TotalCount 32 SpawnCount 1 MaxActive 14 WaitForAllDead w1-2 WaitBetweenSpawns 1.5 WaitBeforeStarting 2 Where mannholecover Where newsstand_swarm Where portapotty_swarm TotalCurrency 100 RandomChoice { TFBot { Class Pyro Skill Expert ExtAttr IgnoreNPC ItemAttributes { ItemName "tf_weapon_flamethrower" "airblast_destroy_projectile" 1 } Attributes IgnoreFlag Action Mobber CharacterAttributes { "crit mod disabled" 0 "voice pitch scale" 0 } AddCond { Index 43 } AddCond { Index 5 Duration 2 } } TFBot { Class Pyro Skill Expert InterruptAction // Stop current bot ai and force the bot to move to a location { Target "tank_boss" // Entity / bot / class name as an alternative. Also: RandomEnemy, ClosestPlayer AimTarget "tank_boss" // Entity / bot / class name as an alternative. Also: RandomEnemy, ClosestPlayer KillAimTarget 1 // Attack aim target (Default: 0) Delay 5 // Time before the first task starts. Must be above 0, or it will not execute (Default: 10) Repeats 0 // How many times should bot do the task in total (Default: 0 - Infinite) Cooldown 5 //Time between each task (Default: 10) Duration 10 // How long should the ai be interrupted } ItemAttributes { ItemName "tf_weapon_flamethrower" "airblast_destroy_projectile" 1 } Attributes IgnoreFlag Action Mobber CharacterAttributes { "crit mod disabled" 0 "voice pitch scale" 0 } AddCond { Index 43 } AddCond { Index 5 Duration 2 } } } } WaveSpawn { Name w2-2 TotalCount 2 SpawnCount 1 MaxActive 2 WaitForAllDead w1-2 WaitBetweenSpawns 20 WaitBeforeStarting 3 Where mannholecover Where newsstand_swarm Where portapotty_swarm TotalCurrency 100 RandomChoice { TFBot { Template T_TFBot_Giant_Demo_Burst ClassIcon demo_burst_red_giant Attributes IgnoreFlag Action Mobber InterruptAction // Stop current bot ai and force the bot to move to a location { Target "tank_boss" // Entity / bot / class name as an alternative. Also: RandomEnemy, ClosestPlayer AimTarget "tank_boss" // Entity / bot / class name as an alternative. Also: RandomEnemy, ClosestPlayer KillAimTarget 1 // Attack aim target (Default: 0) Delay 5 // Time before the first task starts. Must be above 0, or it will not execute (Default: 10) Repeats 0 // How many times should bot do the task in total (Default: 0 - Infinite) Cooldown 5 //Time between each task (Default: 10) Duration 10 // How long should the ai be interrupted } CharacterAttributes { "damage force reduction" 0 "crit mod disabled" 0 "voice pitch scale" 0 } AddCond { Index 43 } AddCond { Index 5 Duration 2 } } TFBot { Template T_TFBot_Giant_Demo_Burst ClassIcon demo_burst_red_giant Attributes IgnoreFlag Action Mobber ExtAttr IgnoreNPC CharacterAttributes { "damage force reduction" 0 "crit mod disabled" 0 "voice pitch scale" 0 } AddCond { Index 43 } AddCond { Index 5 Duration 2 } } } } WaveSpawn { Name w3-1 TotalCount 4 SpawnCount 1 MaxActive 2 WaitForAllDead w2-2 Where dumptruck Where newsstand_swarm Where portapotty_swarm WaitBeforeStarting 4 WaitBetweenSpawns 20 TotalCurrency 200 Squad { TFBot { Template T_TFBot_Giant_Pyro Skill Expert Attributes IgnoreFlag Action Mobber Attributes AlwaysCrit AlwaysGlow 1 ExtAttr IgnoreNPC CharacterAttributes { "damage force reduction" 0 "crit mod disabled" 0 "voice pitch scale" 0 } ItemAttributes { ItemName "tf_weapon_flamethrower" "airblast_destroy_projectile" 1 } AddCond { Index 43 } AddCond { Index 5 Duration 2 } } TFBot { Template T_TFBot_Giant_Medic_Regen Attributes IgnoreFlag Action Mobber AlwaysGlow 1 CharacterAttributes { "damage force reduction" 0 "crit mod disabled" 0 "voice pitch scale" 0 } AddCond { Index 43 } AddCond { Index 5 Duration 2 } } } } WaveSpawn { Name w3-1 TotalCount 18 MaxActive 6 SpawnCount 2 Where dumptruck Where newsstand_swarm Where portapotty_swarm WaitForAllDead w2-2 WaitBeforeStarting 6 WaitBetweenSpawns 2.5 TotalCurrency 100 RandomChoice { TFBot { Template T_TFBot_Scout_Shortstop Attributes AlwaysCrit Attributes IgnoreFlag Action Mobber InterruptAction // Stop current bot ai and force the bot to move to a location { Target "tank_boss" // Entity / bot / class name as an alternative. Also: RandomEnemy, ClosestPlayer AimTarget "tank_boss" // Entity / bot / class name as an alternative. Also: RandomEnemy, ClosestPlayer KillAimTarget 1 // Attack aim target (Default: 0) Delay 5 // Time before the first task starts. Must be above 0, or it will not execute (Default: 10) Repeats 0 // How many times should bot do the task in total (Default: 0 - Infinite) Cooldown 5 //Time between each task (Default: 10) Duration 10 // How long should the ai be interrupted } AddCond { Index 43 } AddCond { Index 5 Duration 2 } CharacterAttributes { "crit mod disabled" 0 "voice pitch scale" 0 } } TFBot { Template T_TFBot_Scout_Shortstop Attributes AlwaysCrit Attributes IgnoreFlag Action Mobber ExtAttr IgnoreNPC AddCond { Index 43 } AddCond { Index 5 Duration 2 } CharacterAttributes { "crit mod disabled" 0 "voice pitch scale" 0 } } } } WaveSpawn { Name barriershutoff WaitForAllSpawned w3-1 Support limited TotalCount 1 MaxActive 1 SpawnCount 1 WaitBeforeStarting 0 WaitBetweenSpawns 9999 DoneOutput { Target gate2_done Action Trigger } } WaveSpawn { Name w4-1 TotalCount 28 MaxActive 5 SpawnCount 3 Where redspawn WaitForAllDead w3-1 WaitBeforeStarting 6 WaitBetweenSpawns 2 TotalCurrency 50 RandomChoice { TFBot { Template T_TFBot_Loch_N_Load Attributes IgnoreFlag Action Mobber InterruptAction // Stop current bot ai and force the bot to move to a location { Target "tank_boss" // Entity / bot / class name as an alternative. Also: RandomEnemy, ClosestPlayer AimTarget "tank_boss" // Entity / bot / class name as an alternative. Also: RandomEnemy, ClosestPlayer KillAimTarget 1 // Attack aim target (Default: 0) Delay 5 // Time before the first task starts. Must be above 0, or it will not execute (Default: 10) Repeats 0 // How many times should bot do the task in total (Default: 0 - Infinite) Cooldown 5 //Time between each task (Default: 10) Duration 10 // How long should the ai be interrupted } CharacterAttributes { "crit mod disabled" 0 "voice pitch scale" 0 } AddCond { Index 43 } AddCond { Index 5 Duration 2 } } TFBot { Template T_TFBot_Loch_N_Load Attributes IgnoreFlag Action Mobber ExtAttr IgnoreNPC CharacterAttributes { "crit mod disabled" 0 "voice pitch scale" 0 } AddCond { Index 43 } AddCond { Index 5 Duration 2 } } } } WaveSpawn { Name w4-2-1 TotalCount 3 MaxActive 3 SpawnCount 1 Where gianthatchsupport WaitForAllDead w3-1 WaitBeforeStarting 6 WaitBetweenSpawns 10 TotalCurrency 50 RandomChoice { TFBot { Template T_TFBot_Giant_Soldier_Spammer_Reload Attributes IgnoreFlag Action Mobber AlwaysGlow 1 InterruptAction // Stop current bot ai and force the bot to move to a location { Target "tank_boss" // Entity / bot / class name as an alternative. Also: RandomEnemy, ClosestPlayer AimTarget "tank_boss" // Entity / bot / class name as an alternative. Also: RandomEnemy, ClosestPlayer KillAimTarget 1 // Attack aim target (Default: 0) Delay 5 // Time before the first task starts. Must be above 0, or it will not execute (Default: 10) Repeats 0 // How many times should bot do the task in total (Default: 0 - Infinite) Cooldown 5 //Time between each task (Default: 10) Duration 10 // How long should the ai be interrupted } ItemAttributes { ItemName "TF_WEAPON_ROCKETLAUNCHER" "auto fires full clip" 0 "can overload" 0 } CharacterAttributes { "damage force reduction" 0 "crit mod disabled" 0 "voice pitch scale" 0 } AddCond { Index 43 } AddCond { Index 5 Duration 2 } } TFBot { Template T_TFBot_Giant_Soldier_Spammer_Reload Attributes IgnoreFlag Action Mobber ExtAttr IgnoreNPC AlwaysGlow 1 ItemAttributes { ItemName "TF_WEAPON_ROCKETLAUNCHER" "auto fires full clip" 0 "can overload" 0 } CharacterAttributes { "damage force reduction" 0 "crit mod disabled" 0 "voice pitch scale" 0 } AddCond { Index 43 } AddCond { Index 5 Duration 2 } } } } WaveSpawn { Name w4-2 WaitForAllSpawned w4-2-1 TotalCount 1 MaxActive 1 SpawnCount 1 Where hatchgaurdian TotalCurrency 100 TFBot { Template T_TFBot_Giant_Soldier_Extended_Battalion Attributes AlwaysCrit UseMeleeThreatPrioritization 1 Attributes IgnoreFlag Action Mobber InterruptAction // Stop current bot ai and force the bot to move to a location { Target "tank_boss" // Entity / bot / class name as an alternative. Also: RandomEnemy, ClosestPlayer AimTarget "tank_boss" // Entity / bot / class name as an alternative. Also: RandomEnemy, ClosestPlayer KillAimTarget 1 // Attack aim target (Default: 0) Delay 5 // Time before the first task starts. Must be above 0, or it will not execute (Default: 10) Repeats 0 // How many times should bot do the task in total (Default: 0 - Infinite) Cooldown 5 //Time between each task (Default: 10) Duration 10 // How long should the ai be interrupted } CharacterAttributes {"move speed bonus" 0.001 "no_jump" 1 "increase buff duration" 90.0 "damage force reduction" 0 "crit mod disabled" 0 "voice pitch scale" 0} AddCond { Index 43 } AddCond { Index 5 Duration 2 } } } WaveSpawn { Name redicon Where spawnbot TotalCount 1 Support 1 SpawnCount 1 WaitBeforeStarting 9999 TFBot { Class Scout ClassIcon red2_lite } } WaveSpawn { TotalCount 1000 SpawnCount 1 MaxActive 20 Support 1 Where redspawn WaitForAllDead w4-1 WaitBeforeStarting 4 WaitBetweenSpawns 1.5 RandomChoice { TFBot { Template T_TFBot_Dragon_Fury Attributes IgnoreFlag Action Mobber CharacterAttributes { "crit mod disabled" 0 "voice pitch scale" 0 } AddCond { Index 43 } AddCond { Index 5 Duration 2 } } TFBot { Class Demoman ClassIcon demo_crit Skill Easy Attributes AlwaysCrit Attributes IgnoreFlag Action Mobber CharacterAttributes { "crit mod disabled" 0 "voice pitch scale" 0 } AddCond { Index 43 } AddCond { Index 5 Duration 2 } } } } WaveSpawn // Dummy, makes wave seems infinite { TotalCount 0 SpawnCount 0 WaitBeforeStarting 9999 Where spawnbot RandomChoice { RandomChoice { TFBot { Class Scout } } } } } Wave // Wave 5 $800 { StartWaveOutput { Target wave_start_relay Action Trigger } DoneOutput { Target wave_finished_relay Action trigger } WaveSpawn { Name blueicon Support 1 TotalCount 1 MaxActive 1 SpawnCount 1 Where spawnbot WaitBeforeStarting 9999 TFBot { Class Scout ClassIcon blu2_lite } } WaveSpawn { Name "payload" Where spawnbot TotalCount 1 MaxActive 1 SpawnCount 1 WaitBeforeStarting 0 Support Limited Tank { Health 30000 Speed 90 Scale 0.5 ClassIcon payload_blu Model "models/empty.mdl" StartSound "misc/null.wav" PingSound "misc/null.wav" EngineLoopSound "misc/null.wav" DisableTracks 1 DisableSmokestack 1 DisableChildModels 1 Name "payloadtank" StartingPathTrackNode "pl_path_1" TeamNum 3 SpawnTemplate { Name "payload" Origin "0 0 42" } } } WaveSpawn { Name "lose-condition" WaitForAllDead "payload" FirstSpawnOutput { Target redwin_relay Action Trigger } } WaveSpawn { Name w1-1 Where dumptruck TotalCount 4 SpawnCount 1 MaxActive 2 WaitBeforeStarting 4 WaitBetweenSpawns 22 TotalCurrency 200 RandomChoice { TFBot { Template T_TFBot_Giant_Soldier_SlowBarrage Attributes IgnoreFlag Action Mobber InterruptAction // Stop current bot ai and force the bot to move to a location { Target "tank_boss" // Entity / bot / class name as an alternative. Also: RandomEnemy, ClosestPlayer AimTarget "tank_boss" // Entity / bot / class name as an alternative. Also: RandomEnemy, ClosestPlayer KillAimTarget 1 // Attack aim target (Default: 0) Delay 5 // Time before the first task starts. Must be above 0, or it will not execute (Default: 10) Repeats 0 // How many times should bot do the task in total (Default: 0 - Infinite) Cooldown 5 //Time between each task (Default: 10) Duration 10 // How long should the ai be interrupted } CharacterAttributes { "damage force reduction" 0 "crit mod disabled" 0 "voice pitch scale" 0 } AddCond { Index 43 } AddCond { Index 5 Duration 2 } } TFBot { Template T_TFBot_Giant_Soldier_SlowBarrage Attributes IgnoreFlag Action Mobber ExtAttr IgnoreNPC CharacterAttributes { "damage force reduction" 0 "crit mod disabled" 0 "voice pitch scale" 0 } AddCond { Index 43 } AddCond { Index 5 Duration 2 } } } } WaveSpawn { Name w1-2 Where newsstand TotalCount 12 SpawnCount 1 MaxActive 4 WaitBeforeStarting 5 WaitBetweenSpawns 4.5 TotalCurrency 100 RandomChoice { TFBot { Template T_TFBot_Mafia_Heavy_Shotgun ClassIcon heavy_armored_shotgun_red Attributes AlwaysCrit Attributes IgnoreFlag Action Mobber InterruptAction // Stop current bot ai and force the bot to move to a location { Target "tank_boss" // Entity / bot / class name as an alternative. Also: RandomEnemy, ClosestPlayer AimTarget "tank_boss" // Entity / bot / class name as an alternative. Also: RandomEnemy, ClosestPlayer KillAimTarget 1 // Attack aim target (Default: 0) Delay 5 // Time before the first task starts. Must be above 0, or it will not execute (Default: 10) Repeats 0 // How many times should bot do the task in total (Default: 0 - Infinite) Cooldown 5 //Time between each task (Default: 10) Duration 10 // How long should the ai be interrupted } CharacterAttributes { "crit mod disabled" 0 "voice pitch scale" 0 } AddCond { Index 43 } AddCond { Index 5 Duration 2 } } TFBot { Template T_TFBot_Mafia_Heavy_Shotgun ClassIcon heavy_armored_shotgun_red Attributes AlwaysCrit Attributes IgnoreFlag Action Mobber ExtAttr IgnoreNPC CharacterAttributes { "crit mod disabled" 0 "voice pitch scale" 0 } AddCond { Index 43 } AddCond { Index 5 Duration 2 } } } } WaveSpawn { Name w2-1 Where mannholecover Where newsstand_swarm Where portapotty_swarm TotalCount 8 SpawnCount 1 MaxActive 4 WaitForAllDead w1-1 WaitBeforeStarting 4 WaitBetweenSpawns 15 TotalCurrency 200 Squad { TFBot { Template T_TFBot_Giant_Soldier_Spammer Attributes IgnoreFlag Action Mobber InterruptAction // Stop current bot ai and force the bot to move to a location { Target "tank_boss" // Entity / bot / class name as an alternative. Also: RandomEnemy, ClosestPlayer AimTarget "tank_boss" // Entity / bot / class name as an alternative. Also: RandomEnemy, ClosestPlayer KillAimTarget 1 // Attack aim target (Default: 0) Delay 5 // Time before the first task starts. Must be above 0, or it will not execute (Default: 10) Repeats 0 // How many times should bot do the task in total (Default: 0 - Infinite) Cooldown 5 //Time between each task (Default: 10) Duration 10 // How long should the ai be interrupted } CharacterAttributes { "damage force reduction" 0 "crit mod disabled" 0 "voice pitch scale" 0 } AddCond { Index 43 } AddCond { Index 5 Duration 2 } } TFBot { Template T_TFBot_Soldier_Extended_Concheror Attributes IgnoreFlag ClassIcon soldier_banner_trio Action Mobber ExtAttr IgnoreNPC CharacterAttributes { "crit mod disabled" 0 "voice pitch scale" 0 } AddCond { Index 43 } AddCond { Index 5 Duration 2 } } TFBot { Template T_TFBot_Soldier_Extended_Battalion Attributes IgnoreFlag ClassIcon soldier_banner_trio Action Mobber ExtAttr IgnoreNPC CharacterAttributes { "crit mod disabled" 0 "voice pitch scale" 0 } AddCond { Index 43 } AddCond { Index 5 Duration 2 } } TFBot { Template T_TFBot_Soldier_Extended_Buff_Banner Attributes IgnoreFlag ClassIcon soldier_banner_trio Action Mobber InterruptAction // Stop current bot ai and force the bot to move to a location { Target "tank_boss" // Entity / bot / class name as an alternative. Also: RandomEnemy, ClosestPlayer AimTarget "tank_boss" // Entity / bot / class name as an alternative. Also: RandomEnemy, ClosestPlayer KillAimTarget 1 // Attack aim target (Default: 0) Delay 5 // Time before the first task starts. Must be above 0, or it will not execute (Default: 10) Repeats 0 // How many times should bot do the task in total (Default: 0 - Infinite) Cooldown 5 //Time between each task (Default: 10) Duration 10 // How long should the ai be interrupted } CharacterAttributes { "crit mod disabled" 0 "voice pitch scale" 0 } AddCond { Index 43 } AddCond { Index 5 Duration 2 } } } } WaveSpawn { Name w2-2 TotalCount 32 SpawnCount 4 Where mannholecover Where newsstand_swarm Where portapotty_swarm MaxActive 12 WaitForAllDead w1-1 WaitBeforeStarting 5 WaitBetweenSpawns 4 TotalCurrency 100 RandomChoice { TFBot { Template T_TFBot_Bazooka_Soldier Attributes IgnoreFlag Action Mobber InterruptAction // Stop current bot ai and force the bot to move to a location { Target "tank_boss" // Entity / bot / class name as an alternative. Also: RandomEnemy, ClosestPlayer AimTarget "tank_boss" // Entity / bot / class name as an alternative. Also: RandomEnemy, ClosestPlayer KillAimTarget 1 // Attack aim target (Default: 0) Delay 5 // Time before the first task starts. Must be above 0, or it will not execute (Default: 10) Repeats 0 // How many times should bot do the task in total (Default: 0 - Infinite) Cooldown 5 //Time between each task (Default: 10) Duration 10 // How long should the ai be interrupted } CharacterAttributes { "crit mod disabled" 0 "voice pitch scale" 0 } AddCond { Index 43 } AddCond { Index 5 Duration 2 } } TFBot { Template T_TFBot_Bazooka_Soldier Attributes IgnoreFlag Action Mobber ExtAttr IgnoreNPC CharacterAttributes { "crit mod disabled" 0 "voice pitch scale" 0 } AddCond { Index 43 } AddCond { Index 5 Duration 2 } } } } WaveSpawn { Name w3-2 TotalCount 3 MaxActive 2 SpawnCount 1 WaitForAllDead w2-1 WaitBeforeStarting 5 WaitBetweenSpawns 12 Where dumptruck Where newsstand_swarm Where portapotty_swarm TotalCurrency 50 RandomChoice { TFBot { Template T_TFBot_Giant_Fury_Pyro Skill Expert ItemAttributes { ItemName "tf_weapon_flamethrower" "airblast_destroy_projectile" 1 } Action Mobber InterruptAction // Stop current bot ai and force the bot to move to a location { Target "tank_boss" // Entity / bot / class name as an alternative. Also: RandomEnemy, ClosestPlayer AimTarget "tank_boss" // Entity / bot / class name as an alternative. Also: RandomEnemy, ClosestPlayer KillAimTarget 1 // Attack aim target (Default: 0) Delay 5 // Time before the first task starts. Must be above 0, or it will not execute (Default: 10) Repeats 0 // How many times should bot do the task in total (Default: 0 - Infinite) Cooldown 5 //Time between each task (Default: 10) Duration 10 // How long should the ai be interrupted } CharacterAttributes { "damage force reduction" 0 "crit mod disabled" 0 "voice pitch scale" 0 } AddCond { Index 43 } AddCond { Index 5 Duration 2 } } TFBot { Template T_TFBot_Giant_Fury_Pyro Skill Expert ItemAttributes { ItemName "tf_weapon_flamethrower" "airblast_destroy_projectile" 1 } Action Mobber ExtAttr IgnoreNPC CharacterAttributes { "damage force reduction" 0 "crit mod disabled" 0 "voice pitch scale" 0 } AddCond { Index 43 } AddCond { Index 5 Duration 2 } } } } WaveSpawn { Name w3-2 TotalCount 16 MaxActive 8 SpawnCount 2 WaitForAllDead w2-1 WaitBeforeStarting 6 WaitBetweenSpawns 4 Where dumptruck Where newsstand_swarm Where portapotty_swarm TotalCurrency 50 Squad { TFBot { Template T_TFBot_Demo_Burst ClassIcon demo_burst_red Attributes IgnoreFlag Attributes AlwaysCrit Action Mobber InterruptAction // Stop current bot ai and force the bot to move to a location { Target "tank_boss" // Entity / bot / class name as an alternative. Also: RandomEnemy, ClosestPlayer AimTarget "tank_boss" // Entity / bot / class name as an alternative. Also: RandomEnemy, ClosestPlayer KillAimTarget 1 // Attack aim target (Default: 0) Delay 5 // Time before the first task starts. Must be above 0, or it will not execute (Default: 10) Repeats 0 // How many times should bot do the task in total (Default: 0 - Infinite) Cooldown 5 //Time between each task (Default: 10) Duration 10 // How long should the ai be interrupted } CharacterAttributes { "crit mod disabled" 0 "voice pitch scale" 0 } AddCond { Index 43 } AddCond { Index 5 Duration 2 } } TFBot { Template T_TFBot_Medic_SlowRecharge Attributes IgnoreFlag Action Mobber AddCond { Index 43 } AddCond { Index 5 Duration 2 } CharacterAttributes { "crit mod disabled" 0 "voice pitch scale" 0 } } } } WaveSpawn { Name barriershutoff WaitForAllSpawned w3-2 Support limited TotalCount 1 MaxActive 1 SpawnCount 1 WaitBeforeStarting 0 WaitBetweenSpawns 9999 DoneOutput { Target gate2_done Action Trigger } } WaveSpawn { Name w4-1 TotalCount 28 SpawnCount 4 MaxActive 12 Where redspawn WaitForAllDead w3-2 WaitBetweenSpawns 6 WaitBeforeStarting 9 TotalCurrency 50 RandomChoice { TFBot { Template T_TFBot_Explosive_Soldier Attributes IgnoreFlag Action Mobber InterruptAction // Stop current bot ai and force the bot to move to a location { Target "tank_boss" // Entity / bot / class name as an alternative. Also: RandomEnemy, ClosestPlayer AimTarget "tank_boss" // Entity / bot / class name as an alternative. Also: RandomEnemy, ClosestPlayer KillAimTarget 1 // Attack aim target (Default: 0) Delay 5 // Time before the first task starts. Must be above 0, or it will not execute (Default: 10) Repeats 0 // How many times should bot do the task in total (Default: 0 - Infinite) Cooldown 5 //Time between each task (Default: 10) Duration 10 // How long should the ai be interrupted } CharacterAttributes { "crit mod disabled" 0 "voice pitch scale" 0 } AddCond { Index 43 } AddCond { Index 5 Duration 2 } } TFBot { Template T_TFBot_Explosive_Soldier Attributes IgnoreFlag Action Mobber ExtAttr IgnoreNPC CharacterAttributes { "crit mod disabled" 0 "voice pitch scale" 0 } AddCond { Index 43 } AddCond { Index 5 Duration 2 } } } } WaveSpawn { Name w4-2 WaitForAllDead w3-2 TotalCount 1 SpawnCount 1 Where hatchgaurdian TotalCurrency 50 TFBot { Template T_TFBot_Giant_Soldier_Extended_Buff_Banner UseMeleeThreatPrioritization 1 Attributes IgnoreFlag Action Mobber InterruptAction // Stop current bot ai and force the bot to move to a location { Target "tank_boss" // Entity / bot / class name as an alternative. Also: RandomEnemy, ClosestPlayer AimTarget "tank_boss" // Entity / bot / class name as an alternative. Also: RandomEnemy, ClosestPlayer KillAimTarget 1 // Attack aim target (Default: 0) Delay 5 // Time before the first task starts. Must be above 0, or it will not execute (Default: 10) Repeats 0 // How many times should bot do the task in total (Default: 0 - Infinite) Cooldown 5 //Time between each task (Default: 10) Duration 10 // How long should the ai be interrupted } CharacterAttributes {"move speed bonus" 0.001 "no_jump" 1 "increase buff duration" 90.0 "damage force reduction" 0 "crit mod disabled" 0 "voice pitch scale" 0 } AddCond { Index 43 } AddCond { Index 5 Duration 2 } } } WaveSpawn { Name red_icon TotalCount 100 SpawnCount 1 MaxActive 1 Support 1 WaitBeforeStarting 9999 Where spawnbot TFBot { Class Scout ClassIcon red2_lite } } WaveSpawn { Name w4-2-1 TotalCount 9999 SpawnCount 1 MaxActive 4 Where gianthatchsupport WaitForAllDead w3-2 WaitBetweenSpawns 25 WaitBeforeStarting 9 TotalCurrency 50 RandomChoice { TFBot { Template T_TFBot_Giant_Heavyweapons_Shotgun Attributes IgnoreFlag Action Mobber ClassIcon heavy_shotgun_red_giant Attributes AlwaysCrit AlwaysGlow 1 InterruptAction // Stop current bot ai and force the bot to move to a location { Target "tank_boss" // Entity / bot / class name as an alternative. Also: RandomEnemy, ClosestPlayer AimTarget "tank_boss" // Entity / bot / class name as an alternative. Also: RandomEnemy, ClosestPlayer KillAimTarget 1 // Attack aim target (Default: 0) Delay 5 // Time before the first task starts. Must be above 0, or it will not execute (Default: 10) Repeats 0 // How many times should bot do the task in total (Default: 0 - Infinite) Cooldown 5 //Time between each task (Default: 10) Duration 10 // How long should the ai be interrupted } CharacterAttributes { "damage force reduction" 0 "crit mod disabled" 0 "voice pitch scale" 0 } AddCond { Index 43 } AddCond { Index 5 Duration 2 } } TFBot { Template T_TFBot_Giant_Heavyweapons_Shotgun Attributes IgnoreFlag Action Mobber ClassIcon heavy_shotgun_red_giant Attributes AlwaysCrit ExtAttr IgnoreNPC AlwaysGlow 1 CharacterAttributes { "damage force reduction" 0 "crit mod disabled" 0 "voice pitch scale" 0 } AddCond { Index 43 } AddCond { Index 5 Duration 2 } } } } WaveSpawn { Name red_icon TotalCount 100 SpawnCount 4 MaxActive 12 Support 1 WaitForAllDead w4-1 Where redspawn WaitBetweenSpawns 1.5 RandomChoice { TFBot { Template T_TFBot_Dragon_Fury Attributes IgnoreFlag Action Mobber ExtAttr IgnoreNPC CharacterAttributes { "crit mod disabled" 0 "voice pitch scale" 0 } AddCond { Index 43 } AddCond { Index 5 Duration 2 } } TFBot { Template T_TFBot_Explosive_Demoman Attributes IgnoreFlag Action Mobber InterruptAction // Stop current bot ai and force the bot to move to a location { Target "tank_boss" // Entity / bot / class name as an alternative. Also: RandomEnemy, ClosestPlayer AimTarget "tank_boss" // Entity / bot / class name as an alternative. Also: RandomEnemy, ClosestPlayer KillAimTarget 1 // Attack aim target (Default: 0) Delay 5 // Time before the first task starts. Must be above 0, or it will not execute (Default: 10) Repeats 0 // How many times should bot do the task in total (Default: 0 - Infinite) Cooldown 5 //Time between each task (Default: 10) Duration 10 // How long should the ai be interrupted } CharacterAttributes { "crit mod disabled" 0 "voice pitch scale" 0 } AddCond { Index 43 } AddCond { Index 5 Duration 2 } } } } WaveSpawn // Dummy, makes wave seems infinite { TotalCount 0 SpawnCount 0 WaitBeforeStarting 9999 Where spawnbot RandomChoice { RandomChoice { TFBot { Class Scout } } } } } Wave // Wave 6 $1000 { SpawnTemplate MafiaBoss_Invul StartWaveOutput { Target wave_start_relay Action Trigger } DoneOutput { Target wave_finished_relay Action trigger } Explanation { Line "{Red}---------------------------------" Line "{Yellow} The Mafia is tired of losing and decided to track you down themselves." Line "{Red}---------------------------------" } WaveSpawn { Name blueicon Support 1 TotalCount 1 MaxActive 1 SpawnCount 1 Where spawnbot WaitBeforeStarting 9999 TFBot { Class Scout ClassIcon blu2_lite } } WaveSpawn { Name "payload" Where spawnbot TotalCount 1 MaxActive 1 SpawnCount 1 WaitBeforeStarting 0 Support Limited Tank { Health 27000 Speed 90 Scale 0.5 ClassIcon payload_blu Model "models/empty.mdl" StartSound "misc/null.wav" PingSound "misc/null.wav" EngineLoopSound "misc/null.wav" DisableTracks 1 DisableSmokestack 1 DisableChildModels 1 Name "payloadtank" StartingPathTrackNode "pl_path2_1" TeamNum 3 SpawnTemplate { Name "payload" Origin "0 0 42" } } } WaveSpawn { Name "lose-condition" WaitForAllDead "payload" FirstSpawnOutput { Target redwin_relay Action Trigger } } WaveSpawn { Name w1-1 TotalCount 2 MaxActive 2 SpawnCount 1 Where portapotty WaitBeforeStarting 4 TotalCurrency 100 Squad { TFBot { Template T_TFBot_Giant_Mafia_Heavy Attributes IgnoreFlag Action Mobber ExtAttr IgnoreNPC CharacterAttributes { "damage force reduction" 0 "crit mod disabled" 0 "voice pitch scale" 0 } AddCond { Index 43 } AddCond { Index 5 Duration 2 } } TFBot { Template T_TFBot_Giant_Mafia_Doctor ClassIcon medic_armored_lite Attributes IgnoreFlag Action Mobber CharacterAttributes { "damage force reduction" 0 "crit mod disabled" 0 "voice pitch scale" 0 } AddCond { Index 43 } AddCond { Index 5 Duration 2 } } } } WaveSpawn { Name w1-2 TotalCount 32 MaxActive 12 SpawnCount 4 Where newsstand WaitBeforeStarting 2 WaitBetweenSpawns 6 TotalCurrency 50 RandomChoice { TFBot { Template T_TFBot_Mafia_Heavy_Shotgun_Small Attributes AlwaysCrit Attributes IgnoreFlag Action Mobber InterruptAction // Stop current bot ai and force the bot to move to a location { Target "tank_boss" // Entity / bot / class name as an alternative. Also: RandomEnemy, ClosestPlayer AimTarget "tank_boss" // Entity / bot / class name as an alternative. Also: RandomEnemy, ClosestPlayer KillAimTarget 1 // Attack aim target (Default: 0) Delay 5 // Time before the first task starts. Must be above 0, or it will not execute (Default: 10) Repeats 0 // How many times should bot do the task in total (Default: 0 - Infinite) Cooldown 5 //Time between each task (Default: 10) Duration 10 // How long should the ai be interrupted } CharacterAttributes { "crit mod disabled" 0 "voice pitch scale" 0 } AddCond { Index 43 } AddCond { Index 5 Duration 2 } } TFBot { Template T_TFBot_Mafia_Heavy_Shotgun_Small Attributes AlwaysCrit Attributes IgnoreFlag Action Mobber ExtAttr IgnoreNPC CharacterAttributes { "crit mod disabled" 0 "voice pitch scale" 0 } AddCond { Index 43 } AddCond { Index 5 Duration 2 } } } } WaveSpawn { Name w1-2 TotalCount 20 MaxActive 10 SpawnCount 4 Where newsstand WaitBeforeStarting 2 WaitBetweenSpawns 6 TotalCurrency 50 RandomChoice { TFBot { Template T_TFBot_Dragon_Fury Skill Normal Attributes IgnoreFlag Action Mobber InterruptAction // Stop current bot ai and force the bot to move to a location { Target "tank_boss" // Entity / bot / class name as an alternative. Also: RandomEnemy, ClosestPlayer AimTarget "tank_boss" // Entity / bot / class name as an alternative. Also: RandomEnemy, ClosestPlayer KillAimTarget 1 // Attack aim target (Default: 0) Delay 5 // Time before the first task starts. Must be above 0, or it will not execute (Default: 10) Repeats 0 // How many times should bot do the task in total (Default: 0 - Infinite) Cooldown 5 //Time between each task (Default: 10) Duration 10 // How long should the ai be interrupted } CharacterAttributes { "crit mod disabled" 0 "voice pitch scale" 0 } AddCond { Index 43 } AddCond { Index 5 Duration 2 } } TFBot { Template T_TFBot_Dragon_Fury Skill Normal Attributes IgnoreFlag Action Mobber ExtAttr IgnoreNPC CharacterAttributes { "crit mod disabled" 0 "voice pitch scale" 0 } AddCond { Index 43 } AddCond { Index 5 Duration 2 } } } } WaveSpawn { Name w2-1 TotalCount 28 MaxActive 12 SpawnCount 2 Where mannholecover Where newsstand_swarm Where portapotty_swarm WaitBeforeStarting 5 WaitBetweenSpawns 2 WaitForAllDead w1-1 TotalCurrency 100 TFBot { Template T_TFBot_Mafia_Heavy_Tomigun Attributes IgnoreFlag Action Mobber ExtAttr IgnoreNPC CharacterAttributes { "crit mod disabled" 0 "voice pitch scale" 0 } AddCond { Index 43 } AddCond { Index 5 Duration 2 } } } WaveSpawn { Name w2-2 TotalCount 2 MaxActive 1 SpawnCount 1 Where mannholecover Where newsstand_swarm Where portapotty_swarm WaitBeforeStarting 4 WaitBetweenSpawns 12 WaitForAllDead w1-1 TotalCurrency 100 RandomChoice { TFBot { Template T_TFBot_Giant_Soldier_RocketShotgun Attributes AlwaysCrit Attributes IgnoreFlag Action Mobber InterruptAction // Stop current bot ai and force the bot to move to a location { Target "tank_boss" // Entity / bot / class name as an alternative. Also: RandomEnemy, ClosestPlayer AimTarget "tank_boss" // Entity / bot / class name as an alternative. Also: RandomEnemy, ClosestPlayer KillAimTarget 1 // Attack aim target (Default: 0) Delay 5 // Time before the first task starts. Must be above 0, or it will not execute (Default: 10) Repeats 0 // How many times should bot do the task in total (Default: 0 - Infinite) Cooldown 5 //Time between each task (Default: 10) Duration 10 // How long should the ai be interrupted } CharacterAttributes { "damage force reduction" 0 "crit mod disabled" 0 "voice pitch scale" 0 } AddCond { Index 43 } AddCond { Index 5 Duration 2 } } TFBot { Template T_TFBot_Giant_Soldier_RocketShotgun Attributes AlwaysCrit Attributes IgnoreFlag Action Mobber ExtAttr IgnoreNPC CharacterAttributes { "damage force reduction" 0 "crit mod disabled" 0 "voice pitch scale" 0 } AddCond { Index 43 } AddCond { Index 5 Duration 2 } } } } WaveSpawn { Name w3-2 TotalCount 2 MaxActive 2 SpawnCount 1 Where dumptruck Where newsstand_swarm Where portapotty_swarm WaitBeforeStarting 6 WaitForAllDead w2-2 TotalCurrency 100 Squad { TFBot { Template T_TFBot_Giant_Mafia_Heavy Attributes IgnoreFlag Action Mobber ExtAttr IgnoreNPC CharacterAttributes { "damage force reduction" 0 "crit mod disabled" 0 "voice pitch scale" 0 } AddCond { Index 43 } AddCond { Index 5 Duration 2 } } TFBot { Template T_TFBot_Giant_Mafia_Doctor ClassIcon medic_armored_lite Attributes IgnoreFlag Action Mobber CharacterAttributes { "damage force reduction" 0 "crit mod disabled" 0 "voice pitch scale" 0 } AddCond { Index 43 } AddCond { Index 5 Duration 2 } } } } WaveSpawn { Name w3-2 TotalCount 12 MaxActive 6 SpawnCount 2 Where dumptruck Where newsstand_swarm Where portapotty_swarm WaitBeforeStarting 8 WaitBetweenSpawns 8 WaitForAllDead w2-2 TotalCurrency 100 RandomChoice { TFBot { Template T_TFBot_Mafia_Soldier Attributes AlwaysCrit Attributes IgnoreFlag Action Mobber InterruptAction // Stop current bot ai and force the bot to move to a location { Target "tank_boss" // Entity / bot / class name as an alternative. Also: RandomEnemy, ClosestPlayer AimTarget "tank_boss" // Entity / bot / class name as an alternative. Also: RandomEnemy, ClosestPlayer KillAimTarget 1 // Attack aim target (Default: 0) Delay 5 // Time before the first task starts. Must be above 0, or it will not execute (Default: 10) Repeats 0 // How many times should bot do the task in total (Default: 0 - Infinite) Cooldown 5 //Time between each task (Default: 10) Duration 10 // How long should the ai be interrupted } CharacterAttributes { "crit mod disabled" 0 "voice pitch scale" 0 } AddCond { Index 43 } AddCond { Index 5 Duration 2 } } TFBot { Template T_TFBot_Mafia_Soldier Attributes AlwaysCrit Attributes IgnoreFlag Action Mobber ExtAttr IgnoreNPC CharacterAttributes { "crit mod disabled" 0 "voice pitch scale" 0 } AddCond { Index 43 } AddCond { Index 5 Duration 2 } } } } WaveSpawn { Name barriershutoff WaitForAllSpawned w3-2 Support limited TotalCount 1 MaxActive 1 SpawnCount 1 WaitBeforeStarting 0 WaitBetweenSpawns 9999 DoneOutput { Target gate2_done Action Trigger } } WaveSpawn { Name w4-1 TotalCount 24 MaxActive 8 SpawnCount 2 Where redspawn WaitBeforeStarting 10 WaitBetweenSpawns 8 WaitForAllDead w3-1 TotalCurrency 100 RandomChoice { TFBot { Template T_TFBot_Demo_Burst ClassIcon demo_burst_red Attributes IgnoreFlag Action Mobber InterruptAction // Stop current bot ai and force the bot to move to a location { Target "tank_boss" // Entity / bot / class name as an alternative. Also: RandomEnemy, ClosestPlayer AimTarget "tank_boss" // Entity / bot / class name as an alternative. Also: RandomEnemy, ClosestPlayer KillAimTarget 1 // Attack aim target (Default: 0) Delay 5 // Time before the first task starts. Must be above 0, or it will not execute (Default: 10) Repeats 0 // How many times should bot do the task in total (Default: 0 - Infinite) Cooldown 5 //Time between each task (Default: 10) Duration 10 // How long should the ai be interrupted } CharacterAttributes { "crit mod disabled" 0 "voice pitch scale" 0 } AddCond { Index 43 } AddCond { Index 5 Duration 2 } } TFBot { Template T_TFBot_Demo_Burst ClassIcon demo_burst_red Attributes IgnoreFlag Action Mobber ExtAttr IgnoreNPC CharacterAttributes { "crit mod disabled" 0 "voice pitch scale" 0 } AddCond { Index 43 } AddCond { Index 5 Duration 2 } } } } WaveSpawn { Name w4-2 TotalCount 1 SpawnCount 1 Where hatchgaurdian WaitBeforeStarting 12 WaitForAllDead w3-1 DoneOutput { Target mafiaboss_died Action Trigger } TotalCurrency 300 TFBot { Template T_TFBot_Giant_Chief_Mafia_Heavy Name "The Godfather" Attributes IgnoreFlag Action Mobber Attributes UseBossHealthBar ExtAttr IgnoreNPC // added so the boss doesn't shoot at the cart that is probably going to be invuln. Tag bot_mafiaboss SpawnTemplate MafiaBoss_Invul_Function InterruptAction // Stop current bot ai and force the bot to move to a location { Target "-2917 -183 -14" // Entity / bot / class name as an alternative. Also: RandomEnemy, ClosestPlayer Delay 1 // Time before the first task starts. Must be above 0, or it will not execute (Default: 10) Repeats 0 // How many times should bot do the task in total (Default: 0 - Infinite) Cooldown 59 //Time between each task (Default: 10) Duration 15 // How long should the ai be interrupted } InterruptAction // Stop current bot ai and force the bot to move to a location { Target "-2360 -1332 -24" // Entity / bot / class name as an alternative. Also: RandomEnemy, ClosestPlayer Delay 16 // Time before the first task starts. Must be above 0, or it will not execute (Default: 10) Repeats 0 // How many times should bot do the task in total (Default: 0 - Infinite) Cooldown 74 //Time between each task (Default: 10) Duration 15 // How long should the ai be interrupted } InterruptAction // Stop current bot ai and force the bot to move to a location { Target "-2917 -183 -14" // Entity / bot / class name as an alternative. Also: RandomEnemy, ClosestPlayer Delay 31 // Time before the first task starts. Must be above 0, or it will not execute (Default: 10) Repeats 0 // How many times should bot do the task in total (Default: 0 - Infinite) Cooldown 89 //Time between each task (Default: 10) Duration 15 // How long should the ai be interrupted } InterruptAction // Stop current bot ai and force the bot to move to a location { Target "-2477 747 -24" // Entity / bot / class name as an alternative. Also: RandomEnemy, ClosestPlayer Delay 46 // Time before the first task starts. Must be above 0, or it will not execute (Default: 10) Repeats 0 // How many times should bot do the task in total (Default: 0 - Infinite) Cooldown 104 //Time between each task (Default: 10) Duration 15 // How long should the ai be interrupted } CharacterAttributes { "damage force reduction" 0 "crit mod disabled" 0 "voice pitch scale" 0 } AddCond { Index 43 } } } WaveSpawn { TotalCount 1 SpawnCount 1 Support 1 Where spawnbot WaitBeforeStarting 9999 TFBot { Class Scout ClassIcon red2_lite } } WaveSpawn { TotalCount 200 MaxActive 10 SpawnCount 1 WaitBeforeStarting 1 WaitBetweenSpawns 1.5 WaitForAllSpawned w4-2 Support 1 Where redspawn RandomChoice { TFBot { Template T_TFBot_Soldier_Extended_Buff_Banner Attributes IgnoreFlag Action Mobber Item "The Direct Hit" ExtAttr IgnoreNPC CharacterAttributes { "crit mod disabled" 0 "voice pitch scale" 0 } AddCond { Index 43 } AddCond { Index 5 Duration 2 } } TFBot { Template T_TFBot_Soldier_Extended_Buff_Banner Attributes IgnoreFlag Action Mobber Item "The Direct Hit" InterruptAction // Stop current bot ai and force the bot to move to a location { Target "tank_boss" // Entity / bot / class name as an alternative. Also: RandomEnemy, ClosestPlayer AimTarget "tank_boss" // Entity / bot / class name as an alternative. Also: RandomEnemy, ClosestPlayer KillAimTarget 1 // Attack aim target (Default: 0) Delay 5 // Time before the first task starts. Must be above 0, or it will not execute (Default: 10) Repeats 0 // How many times should bot do the task in total (Default: 0 - Infinite) Cooldown 5 //Time between each task (Default: 10) Duration 10 // How long should the ai be interrupted } CharacterAttributes { "crit mod disabled" 0 "voice pitch scale" 0 } AddCond { Index 43 } AddCond { Index 5 Duration 2 } } } } WaveSpawn // Dummy, makes wave seems infinite { TotalCount 0 SpawnCount 0 WaitBeforeStarting 9999 Where spawnbot RandomChoice { RandomChoice { TFBot { Class Scout } } } } } } #base judge_restricts.pop