//Spawns: //spawnbot (mid spawn), spawnbot_flank, spawnbot_top //Maple Hill, Sensational Syrup //A meme mission made by Seelpit, and made possible thanks to: //royal - General lua help; callbacks, rollbacks for wave 4 from Whitecliff Event, Dover. //lite - Icons and precedents! //NotYourSagittarius - Icons and precedents! //WangleLine - Music for wave 7! //WayneRadioTV - Providing a perfectly hilarious voiceline from HL:VR AI! //The original modelers of the Thumper, Crate Smasher, Gamma Gazer, and W.A.S.P. Launcher //Elizabeth - For making cool cap hologram indicators! //Jayril - Base template for worker bots, though mine are FAR simpler than their masterpieces. //Hellblade1010 - For providing inspiration and being cute :3 //Pillow - For making a pretty map that looks wonderful! #base robot_standard.pop #base robot_giant.pop #base robot_gatebot.pop WaveSchedule { StartingCurrency 1111 CanBotsAttackWhileInSpawnRoom no RespawnWaveTime 2 FixedRespawnWaveTime 1 MaxSpeedLimit 600 TextPrintTime 0 NoMissionInfo 0 RobotLimit 26 ForceRedMoney 1 //I mean, come on. //TEMP: LuaScriptFile "scripts/syrupbottle.lua" PrecacheModel "models/props_aircrap/tank_chute.mdl" PrecacheModel "models/weapons/c_models/c_rapidfire/c_rapidfire_1.mdl" PrecacheModel "models/weapons/c_models/c_cratesmasher/c_cratesmasher_1.mdl" PrecacheModel "models/weapons/c_models/c_gamma_gazer/c_gamma_gazer_1.mdl" PrecacheModel "models/weapons/c_models/c_wasp_launcher/c_wasp_launcher_1.mdl" PrecacheSound "syrup_sounds/military_is_crab.wav" PrecacheSound "syrup_sounds/wangleline.mp3" PrecacheModel "models/bots/bot_worker/bot_worker_a.mdl" PrecacheModel "models/props_gameplay/cap_square_512.mdl" PrecacheModel "models/props_mvm/robot_hologram_color.mdl" //meme mission ideas //- bots that can't harm you (Mantreads, Inf Bonk Scout, Medics, Sandvich Heavies, Banner-only sollies, Jars, a single camper sniper, Wrangler Engies, Parachutes) //- all "blast" wave, even when illogical //- mvm.tf wave (broken squads, gatebot templates, all mults of 10, gatebot templates) //- TFYouTuber references (2fast2quick alwayscrit heavies, hyperspeed puncher+uber med, duped shovel man, FUNKe in spawn, D.A.N.E. Bot,) //- potato.tf wave but it's CC (hyperlong wavebar, excessive custom icons) //- potato.tf wave but it's TT (only banners and vac meds) //- meta stuff (average kritz can fan vs average ammo can enjoyer; "Expert" meta;) + seelpit wave (rapid fires + barrages) //- developers commentary wave...? //- half life enemies wave (SMG snipers, RPG Soldier w/ aim rocket on cursor, shotgun, 'nades) //- 2014 wave (giant conga line as 'final boss', CONGA BUSTERS, bread stuff, air strikes; red engies that rancho) //- fnuuy icons heheha //- Red medics that intentionally sabotage the Red team? //- Powg Champ Heavies (heavies that use pow taunt) //Final version: //WAVE 1: //- bots that can't harm you (Mantreads, Inf Bonk Scout, Medics, Sandvich Heavies, Banner-only sollies, // Jars, a single camper sniper, Wrangler Engies, Parachutes) // Bonus/Alt dynamic: bots that *are* their icon. Use rendermode 10 on bot, but not children. //- Chief Tyrant's Helm //- Chief Crowned Bomb //- Gimmick-Ignoring Captain Punch //WAVE 2: //- taunt wave: all enemies taunt in some way (relaxo engineers, truck engie + mini tank tank, // rocket jockey + travel agent blimp, //WAVE 3: //- incorrect weapons/icons wave: bots doing the opposite of what they should be doing. // - Spy in Sniper mission and vice versa // - Speedup Heavy - Natascha that gives movespeed // - Heal-on-Hit Basher Scout - Gives +8 health regen on hit // - Giant White Box Soldier - dies on rocket hit // - Jarate/Milk that gives Resistance/Vampire on hit // - Crit-a-Cola Scouts that throw their cola (reskin milk!) //WAVE 4: //- "Infinity" wave (constantly refills after killing everything) // - Canteen Crasher (hyperlong wavebar, excessive custom icons, 1 of a bunch of bots) // - Punchy // - Giant Rapid Soldier, Giant Rapid Rapid Soldier, Giant Rapid Rapid Rapid Soldier // - //WAVE 5: //- half life enemies wave (SMG snipers, RPG Soldier w/ aim rocket on cursor, shotgun, 'nades) //WAVE 6: //- Chief Objective //WAVE 7: //- ERROR wave PointTemplates { // All waves SniperModelLogic { $filter_keyvalue { "targetname" "filter_snipermodel" "$name" "targetname" "$value" "snipermodel" } } MapleLogo { prop_dynamic { "targetname" "maple_letter_M1" "model" "models/props_island/parts/sign_yetiisland_i01.mdl" "origin" "-16 20 -10" //Leftmost side of the M "angles" "0 0 -15" "modelscale" 0.2 } prop_dynamic { "targetname" "maple_letter_M2" "model" "models/props_island/parts/sign_yetiisland_i01.mdl" "origin" "26 12 -10" "angles" "0 0 15" "modelscale" 0.2 "parentname" "maple_letter_M1" } prop_dynamic { "targetname" "maple_letter_M3" "model" "models/props_island/parts/sign_yetiisland_i01.mdl" "origin" "40 12 -10" "angles" "0 0 -15" "modelscale" 0.2 "parentname" "maple_letter_M1" } prop_dynamic { "targetname" "maple_letter_M4" "model" "models/props_island/parts/sign_yetiisland_i01.mdl" "origin" "82 0 -10" "angles" "0 0 15" "modelscale" 0.2 "parentname" "maple_letter_M1" } prop_dynamic { "targetname" "maple_letter_A" "model" "models/props_island/parts/sign_yetiisland_a01.mdl" "origin" "109 0 0" "modelscale" 0.2 "parentname" "maple_letter_M1" } prop_dynamic { "targetname" "maple_letter_P" "model" "models/props_island/parts/sign_yetiisland_p01.mdl" "origin" "165 -14 0" "modelscale" 0.2 "parentname" "maple_letter_M1" } prop_dynamic { "targetname" "maple_letter_L" "model" "models/props_island/parts/sign_yetiisland_l01.mdl" "origin" "221 -24 0" "modelscale" 0.2 "parentname" "maple_letter_M1" } prop_dynamic { "targetname" "maple_letter_E" "model" "models/props_island/parts/sign_yetiisland_e01.mdl" "origin" "277 -34 0" "modelscale" 0.2 "parentname" "maple_letter_M1" } } HillLogo { prop_dynamic { "targetname" "hill_letter_H1" "model" "models/props_island/parts/sign_yetiisland_i01.mdl" "origin" "0 0 0" "modelscale" 0.2 } prop_dynamic { "targetname" "hill_letter_H2" "model" "models/props_island/parts/sign_yetiisland_i01.mdl" "origin" "38 -6 45" "angles" "0 12 90" "modelscale" 0.12 "parentname" "hill_letter_H1" } prop_dynamic { "targetname" "hill_letter_H3" "model" "models/props_island/parts/sign_yetiisland_i01.mdl" "origin" "40 0 0" "modelscale" 0.2 "parentname" "hill_letter_H1" } prop_dynamic { "targetname" "hill_letter_I" "model" "models/props_island/parts/sign_yetiisland_i01.mdl" "origin" "64 0 0" "modelscale" 0.2 "parentname" "hill_letter_H1" } prop_dynamic { "targetname" "hill_letter_L1" "model" "models/props_island/parts/sign_yetiisland_l01.mdl" "origin" "104 0 0" "modelscale" 0.2 "parentname" "hill_letter_H1" } prop_dynamic { "targetname" "hill_letter_L2" "model" "models/props_island/parts/sign_yetiisland_l01.mdl" "origin" "160 0 10" "modelscale" 0.2 "parentname" "hill_letter_H1" } } // Harmless wave VisibleOnDeath { OnParentKilledOutput { Target !parent Action $SetKey$rendermode Param 1 Delay 0.01 } } BananaTitles { NoFixUp 1 game_text { "origin" "1984 1984 99999" "targetname" "banana_text1" "message" "FROM THE JUNGLE INFERNO BETA" "x" "-1" "y" "0.4" "spawnflags" "1" "effect" "2" "channel" "2" "color" "255 225 10" "fxtime" "0.2" "fadeout" "1" "holdtime" "4" } game_text { "origin" "1984 1984 99999" "targetname" "banana_text2" "message" "THE FIRST BANANA" "x" "-1" "y" "0.5" "channel" "4" "spawnflags" "1" "color" "255 225 10" "fadein" "0.2" "fadeout" "1" "holdtime" "3.8" } } //bananas //rotat e RadioActiveBanana { NoFixUp 1 OnSpawnOutput { Target banana_particle1 Action $SetFakeParent Param banana_plate1 } OnSpawnOutput { Target banana_particle2 Action $SetFakeParent Param banana_plate2 } OnSpawnOutput { Target banana_particle3 Action $SetFakeParent Param banana_plate3 } prop_dynamic { "targetname" "banana_plate1" "model" "models/items/banana/plate_banana.mdl" "modelscale" "0.75" "parentname" "banana_spin" "origin" "0 -40 0" //attach to head } info_particle_system { "targetname" "banana_particle1" "effect_name" "unusual_invasion_atomic_green" "start_active" "1" "origin" "0 0 0" //attach to head "$modules" "fakeparent" } prop_dynamic { "targetname" "banana_plate2" "model" "models/items/banana/plate_banana.mdl" "modelscale" "0.75" "parentname" "banana_spin" "origin" "-20 -20 0" //attach to head } info_particle_system { "targetname" "banana_particle2" "effect_name" "unusual_invasion_atomic_green" "start_active" "1" "origin" "0 0 0" //attach to head "$modules" "fakeparent" } prop_dynamic { "targetname" "banana_plate3" "model" "models/items/banana/plate_banana.mdl" "modelscale" "0.75" "parentname" "banana_spin" "origin" "20 -20 0" //attach to head } info_particle_system { "targetname" "banana_particle3" "effect_name" "unusual_invasion_atomic_green" "start_active" "1" "origin" "0 0 0" //attach to head "$modules" "fakeparent" } func_rotating { "targetname" "banana_spin" //yES FEEL TH e SPED "parentname" "banana_spin2" "mins" "-8 -8 -8" "maxs" "8 8 8" "fanfriction" "10" "maxspeed" "250" //WE HAV REAHCED MXAIMUN VLELOCIPY "rendermode" "10" "spawnflags" "75" //64: not solid, +8: Y axis, +4: X axis, +2: reverse, +1: start on } func_rotating { "targetname" "banana_spin2" "origin" "0 -40 0" "mins" "-8 -8 -8" "maxs" "8 8 8" "fanfriction" "10" "maxspeed" "200" "rendermode" "10" "spawnflags" "67" //64: not solid, +8: Y axis, +4: X axis, +2: reverse, +1: start on } } BananaPickup { item_healthkit_small { "targetname" "delicious_banana" "model" "models/items/banana/plate_banana.mdl" "TeamNum" "2" } } JarOnDeath { KeepAlive 1 OnParentKilledOutput { Target jarer Action ForceSpawnAtEntityOrigin Param !parent Delay -1 } OnParentKilledOutput { Target jarater Action Kill Delay 0.05 } env_entity_maker { "targetname" "jarer" "EntityTemplate" "$Projectile$" } } Jarate { KeepAlive 1 tf_projectile_jar { "origin" "0 0 0" "teamnum" "3" } } Milk { KeepAlive 1 tf_projectile_jar_milk { "origin" "0 0 0" "teamnum" "3" } } Gas { KeepAlive 1 tf_projectile_jar_gas { "origin" "0 0 0" "teamnum" "3" } } CrownedBomb { KeepAlive 1 OnSpawnOutput { Target ccc_explode Action $SetOwner Param !parent } OnParentKilledOutput { Target ccc_explode Action FireOnce Delay 0.5 } OnParentKilledOutput { Target ccc_explode Action Kill Delay 0.65 } prop_dynamic { "targetname" "ccc_prop_bomb" "model" "models/weapons/w_models/w_cannonball.mdl" "modelscale" "3" "origin" "0 45 0" "angles" "0 0 80" "skin" 1 } prop_dynamic { "targetname" "ccc_prop_crown" "model" "models/player/items/demo/crown.mdl" "modelscale" "3" "skin" 1 "origin" "-15 25 10" "angles" "0 0 85" } tf_point_weapon_mimic { "targetname" "ccc_explode" "$weaponname" "Surprise Nuke" "$OnFire" "!activator,AddOutput,$OnKilled ccc_prop*:Kill::0:-1,0,-1" } } // Taunt wave SpycrabAnger { NoFixUp 1 logic_relay { "targetname" "spycrab_angered" "OnTrigger" "player,$ChangeAttributes,Angery,0.1,-1" "OnTrigger" "player,$DisplayTextChat,{DD1111}The spycrabs have been angered!,0.1,-1" "OnTrigger" "!self,Kill,,0.1,-1" } } Spycrab { OnSpawnOutput { //when above frame 54/74, jump to frame 14/74 Target "specrab" Action RunScriptCode Param " function OnAnimThink() { if (self.GetCycle() > 0.73) self.SetCycle(0.19); self.StudioFrameAdvance(); self.DispatchAnimEvents(self); return 0.0; } self.SetModelSimple(`models/player/spy.mdl`); self.SetSkin(1); self.SetPlaybackRate(1.0); self.SetSequence(self.LookupSequence(`taunt05`)); AddThinkToEnt(self, `OnAnimThink`);" //spycrab taunt } funCBaseFlex { "targetname" "specrab" } } RocketJockey { KeepAlive 1 OnSpawnOutput { Target "the jockety" Action "SetDefaultAnimation" Param "taunt_rocket_jockey_action" Delay 5 } OnParentKilledOutput { Target "the jockety" Action SetDefaultAnimation Param "taunt_rocket_jockey_outro" Delay 0.01 } OnParentKilledOutput { Target "the jockety" Action SetAnimation Param "taunt_rocket_jockey_outro" Delay 0.01 } OnParentKilledOutput { Target "the rockety" Action Kill Delay 0.9 } OnParentKilledOutput { Target "the jockety*" Action Kill Delay 1.3 } OnParentKilledOutput { Target "jockey_spawn" Action Kill Delay 3 } prop_dynamic { "targetname" "the jockety" "model" "models/player/soldier.mdl" "defaultanim" "taunt_rocket_jockey_action" "skin" 1 "setbodygroup" "2" //no hat } prop_dynamic_ornament { "targetname" "the rockety" "model" "models/workshop/player/items/soldier/taunt_rocket_jockey/taunt_rocket_jockey.mdl" "initialowner" "the jockety" "skin" 1 } //Sky High Fly Guy prop_dynamic_ornament { "targetname" "the jockety cosmetics" "model" "models/workshop/player/items/soldier/spr18_sky_high_fly_guy/spr18_sky_high_fly_guy.mdl" "initialowner" "the jockety" "skin" 1 } //Veterans Attire prop_dynamic_ornament { "targetname" "the jockety cosmetics" "model" "models/workshop/player/items/soldier/spr18_veterans_attire/spr18_veterans_attire.mdl" "initialowner" "the jockety" "skin" 1 } info_target { "targetname" "jockey_spawn" } } ScootyScoot //TODO { KeepAlive 1 OnSpawnOutput { Target "the scooty" Action "SetDefaultAnimation" Param "taunt_vehicle_moped_wheely" Delay 0.8 } OnParentKilledOutput { Target "the scoota" Action Kill Delay 0.01 } OnParentKilledOutput { Target "the scooty*" Action Kill Delay 0.01 } OnParentKilledOutput { Target "scooter_spawn" Action Kill Delay 2.5 } prop_dynamic { "targetname" "the scooty" "model" "models/player/scout.mdl" "defaultanim" "taunt_vehicle_moped_start" //end, start, wheely "skin" 1 "setbodygroup" "3" //no hat or headphones } prop_dynamic_ornament { "targetname" "the scoota" "model" "models/player/items/taunts/scooter/scooter.mdl" "initialowner" "the scooty" } //Ripped Rider + Boston Brain Bucket prop_dynamic_ornament { "targetname" "the scooty cosmetics" "model" "models/workshop/player/items/scout/sum22_ripped_rider/sum22_ripped_rider.mdl" "initialowner" "the scooty" "skin" 1 } prop_dynamic_ornament { "targetname" "the scooty cosmetics" "model" "models/workshop/player/items/scout/sum22_brain_bucket_style5/sum22_brain_bucket_style5.mdl" "initialowner" "the scooty" "skin" 1 } info_target { "targetname" "scooter_spawn" } } TexasTruckin //TODO { KeepAlive 1 NoFixUp 1 //Welcome to VScript hell, because there's no proper looping animation for the Texas Truckin! //also wtf the frick the parser doesn't want end-of-line characters in param //I literally had to put everyting on one line bc of a technicality, this even works in vanilla, dangit OnSpawnOutput { Target "the texas" Action RunScriptCode //Set bodygroup 1 (hat) to 1 (no hat) Param " function OnAnimThink() { if (self.GetCycle() > 0.99) self.SetCycle(0.25); self.StudioFrameAdvance(); self.DispatchAnimEvents(self); return 0.0; } self.SetModelSimple(`models/player/engineer.mdl`); self.SetSkin(1); self.SetBodygroup(1, 1); self.SetPlaybackRate(1.0); self.SetSequence(self.LookupSequence(`taunt_texas_truckin`)); AddThinkToEnt(self, `OnAnimThink`);" Delay 0.1 } //On death: play outro anim, stop noises, kill truck + texas //Unfortunately the servers don't like VScript, so, rip. // OnParentKilledOutput // { // Target "the texas" // Action RunScriptCode // Param "AddThinkToEnt(self, `null`);" // Delay 0.01 // } // OnParentKilledOutput // { // Target "the texas" // Action RunScriptCode // Param "function OnAnimEndThink() { self.StudioFrameAdvance(); self.DispatchAnimEvents(self); return 0.0; } self.SetSequence(self.LookupSequence(`taunt_texas_truckin_outro`)); AddThinkToEnt(self, `OnAnimEndThink`);" // Delay 0.02 // } OnParentKilledOutput { Target "the trucky" Action Kill Delay 0.1 } OnParentKilledOutput { Target "the texas*" Action Kill Delay 0.1 } OnParentKilledOutput { Target "texan_spawn" Action Kill Delay 2.5 } funCBaseFlex { "targetname" "the texas" } prop_dynamic_ornament { "targetname" "the trucky" "model" "models/workshop/player/items/engineer/taunt_texas_truckin/taunt_texas_truckin.mdl" "initialowner" "the texas" "skin" 1 } // Last Straw prop_dynamic_ornament { "targetname" "the texas cosmetics" "model" "models/workshop_partner/player/items/engineer/cave_hat/cave_hat.mdl" "initialowner" "the texas" } // Dad Duds prop_dynamic_ornament { "targetname" "the texas cosmetics" "model" "models/workshop/player/items/engineer/all_work_and_no_plaid/all_work_and_no_plaid.mdl" "initialowner" "the texas" "skin" 1 } info_target { "targetname" "texan_spawn" } } DrunkMannsCannon //TODO { KeepAlive 1 OnSpawnOutput { Target "the drunk mann" Action SetDefaultAnimation Param "taunt_drunk_manns_cannon_a1" Delay 3.5 } OnSpawnOutput { Target "the drunk mann" Action RunScriptCode Param " function WhenShootThink() { if (self.GetCycle() > 0.03 && self.GetCycle() < 0.08) { DoEntFire(`the cannonshot`,`FireOnce`,``,0, null, null); } return 0.12; } AddThinkToEnt(self, `WhenShootThink`);" //0.05 = 10th frame, approx shoot moment } // OnSpawnOutput // { // Target "the cannonshot" // Action "$StartFiring" // Delay 5.5 // } OnSpawnOutput { Target "the cannonshot" Action "$AddWeaponAttribute" Delay "projectile speed decreased|0.5" } OnParentKilledOutput { Target "the drunk mann" Action SetDefaultAnimation Param "taunt_drunk_manns_cannon_outro" Delay 0.01 } OnParentKilledOutput { Target "the drunk mann" Action SetAnimation Param "taunt_drunk_manns_cannon_outro" Delay 0.01 } OnParentKilledOutput { Target "the drunk mann" Action Kill Delay 1.72 } OnParentKilledOutput { Target "the cannon*" Action Kill Delay 1.72 } OnParentKilledOutput { Target "cannon_spawn" Action Kill Delay 2.5 } tf_point_weapon_mimic { "targetname" "the cannonshot" "$weaponname" "The Loose Cannon" "origin" "35 0 20" } prop_dynamic { "targetname" "the drunk mann" "model" "models/player/demo.mdl" "defaultanim" "taunt_drunk_manns_cannon" "skin" 1 "setbodygroup" 4 //no grenades } prop_dynamic_ornament { "targetname" "the cannon" "model" "models/workshop/player/items/demo/taunt_drunk_manns_cannon/taunt_drunk_manns_cannon.mdl" "initialowner" "the drunk mann" } //Captain Hat thing prop_dynamic_ornament { "targetname" "the cannon" "model" "models/player/items/demo/mighty_pirate.mdl" "initialowner" "the drunk mann" "skin" 1 } //Whiff of the ol' Brimstone, the cannonballs! prop_dynamic_ornament { "targetname" "the cannon" "model" "models/player/items/demo/demo_bombs.mdl" "initialowner" "the drunk mann" } info_target { "targetname" "cannon_spawn" } } HotWheeler //TODO { KeepAlive 1 OnSpawnOutput { Target "the hotty" Action SetDefaultAnimation Param "taunt_the_hot_wheeler_action" Delay 2.9 } OnParentKilledOutput { Target "the hotty" Action SetDefaultAnimation Param "taunt_the_hot_wheeler_outro" Delay 0.01 } OnParentKilledOutput { Target "the hotty" Action SetAnimation Param "taunt_the_hot_wheeler_outro" Delay 0.01 } OnParentKilledOutput { Target "the wheeler" Action Kill Delay 1.2 } OnParentKilledOutput { Target "the hotty*" Action Kill Delay 1.5 } OnParentKilledOutput { Target "hotty_spawn" Action Kill Delay 3.5 } prop_dynamic { "targetname" "the hotty" "model" "models/player/pyro.mdl" "defaultanim" "taunt_the_hot_wheeler" "skin" 1 "setbodygroup" 6 //no grenades, no backpack } prop_dynamic_ornament { "targetname" "the wheeler" "model" "models/workshop/player/items/pyro/taunt_the_hot_wheeler/taunt_the_hot_wheeler.mdl" "initialowner" "the hotty" "skin" 1 } //Smoking Skid Lid prop_dynamic_ornament { "targetname" "the hotty cosmetic" "model" "models/workshop/player/items/pyro/short2014_spiked_armourgeddon/short2014_spiked_armourgeddon.mdl" "initialowner" "the hotty" "skin" 1 } //Lunatic's Leathers prop_dynamic_ornament { "targetname" "the hotty cosmetic" "model" "models/workshop/player/items/pyro/short2014_wildfire_wrappers/short2014_wildfire_wrappers.mdl" "initialowner" "the hotty" "skin" 1 } //Gas Guzzler prop_dynamic_ornament { "targetname" "the hotty cosmetic" "model" "models/workshop/player/items/pyro/short2014_the_gas_guzzler/short2014_the_gas_guzzler.mdl" "initialowner" "the hotty" "skin" 1 } info_target { "targetname" "hotty_spawn" } } // Incorrect bots wave CanteenAbuserScout { OnSpawnOutput { Target "canteenabuse_relay" Action Trigger } logic_relay { "targetname" "canteenabuse_relay" "OnTrigger" "!activator,$AddPlayerAttribute,move speed bonus|0.05,0,-1" "OnTrigger" "player,$DisplayTextChat,{blue}Canteen Abuser Scout {reset}has used their {9BBF4D}UBERCHARGE {reset}Power Up Canteen!,0.5,-1" "OnTrigger" "player,$PlaySoundToSelf,=35|mvm/mvm_used_powerup.wav,0.5,-1" "OnTrigger" "!activator,$AddCond,52,0.5,-1" "OnTrigger" "player,$DisplayTextChat,{blue}Canteen Abuser Scout {reset}has used their {9BBF4D}CRITS {reset}Power Up Canteen!,1,-1" "OnTrigger" "player,$PlaySoundToSelf,=35|mvm/mvm_used_powerup.wav,1,-1" "OnTrigger" "!activator,$AddCond,34,1,-1" "OnTrigger" "player,$DisplayTextChat,{blue}Canteen Abuser Scout {reset}has used their {9BBF4D}KNOCKBACK IMMUNITY {reset}Power Up Canteen!,1.5,-1" "OnTrigger" "player,$PlaySoundToSelf,=35|mvm/mvm_used_powerup.wav,1.5,-1" "OnTrigger" "!activator,$AddCond,28,1.5,-1" "OnTrigger" "player,$DisplayTextChat,{blue}Canteen Abuser Scout {reset}has used their {9BBF4D}HASTE {reset}Power Up Canteen!,2,-1" "OnTrigger" "player,$PlaySoundToSelf,=35|mvm/mvm_used_powerup.wav,2,-1" //built-in stats. "OnTrigger" "!activator,$AddPlayerAttribute,move speed bonus|2,2.2,-1" //Flag reset! No more uber or kritz for you lol "OnTrigger" "player,$DisplayTextChat,{blue}The Bomb {reset}has used its {9BBF4D}RECALL {reset}Power Up Canteen!,20,-1" "OnTrigger" "player,$PlaySoundToSelf,=35|mvm/mvm_used_powerup.wav,20,-1" //built-in stats. "OnTrigger" "item_teamflag,ForceResetSilent,,20,-1" "OnTrigger" "!activator,RunScriptCode,self.AddBotAttribute(132098),20,-1" //131072 + 1024 + 2; ignore flag, ignore enemies, aggressive (push) "OnTrigger" "!activator,$RemoveCond,52,20.1,-1" "OnTrigger" "!activator,$RemoveCond,34,20.1,-1" } } // Incorrect wave AirdropTank { KeepAlive 1 OnSpawnOutput { Target droptank_parachute Action SetAnimation Param "deploy" } OnParentKilledOutput { Target droptank_parachute Action Kill Delay 0.01 } OnParentKilledOutput { Target droptank_hurt Action Kill Delay 0.5 //slight delay just to catch you more off-guard :^3 } prop_dynamic { "targetname" "droptank_parachute" "model" "models/props_aircrap/tank_chute.mdl" "defaultanim" "idle" //"Floating" } trigger_hurt { "targetname" "droptank_hurt" "origin" "0 0 0" "damage" "32768" //actually a measly 16384! "damagetype" "64" //BLAST "damagemodel" "0" //normal "filtername" "filter_redteam" "spawnflags" "64" "StartDisabled" "1" "nodmgforce" "0" "mins" "-160 -120 -240" "maxs" "160 120 240" } } AirdropTankLogic { filter_activator_class { "targetname" "filter_droptank" "negated" "0" "filterclass" "tank_boss" } trigger_multiple { "targetname" "droptank_arrived" "origin" "620 4500 -703" //on the ground "mins" "-300 -300 -20" "maxs" "300 300 10" "filtername" "filter_droptank" "OnTrigger" "!activator,RemoveHealth,70000,0.01,-1" "spawnflags" "64" } } UberSkin { OnSpawnOutput { Target !activator Action RunScriptCode Param "self.SetSkin(3)" Delay 10 } } // Infinity wave Infwave_logic { logic_relay { "targetname" "infwave_init_relay" "OnTrigger" "popscript,$InitialWaveTalk,,0,-1" "OnTrigger" "wavebar_randomise,Enable,,0,-1" } logic_timer { "targetname" "wavebar_randomise" "startdisabled" 1 "refiretime" 1.1 "OnTimer" "popscript,$RandomWaveBar,,0,-1" } logic_relay { "targetname" "wavebar_reset_relay" //Stops randomizing the wavebar "OnTrigger" "wavebar_randomise,Disable,,0,-1" "OnTrigger" "tf_objective_resource,$SetProp$m_iszMannVsMachineWaveClassCounts$0,1,0.01,-1" "OnTrigger" "popscript,$ResetWaveBar,20,0.02,-1" "OnTrigger" "popscript,$WaveStart,,0.02,-1" //Gotta do the normal start relay, too: "OnTrigger" "wave_start_relay,Trigger,,0,-1" } } null {} FakeIcon { logic_auto { "OnMapSpawn" "!self,Kill,,0,-1" "targetname" "yes" } } RemoveIconOnDeath { OnParentKilledOutput { Target tf_objective_resource Action $SetClientProp$m_nMannVsMachineWaveClassCounts$0 Param 0 } OnParentKilledOutput { Target tf_objective_resource Action $SetClientProp$m_nMannVsMachineWaveEnemyCount Param 0 } } SpammerRocketSpinner { NoFixUp 1 OnSpawnOutput { Target "spammer_mimic*" Action $SetOwner Param !activator Delay 0.01 } OnSpawnOutput { Target "spammer_mimic*" Action $RotateTowards Param !activator Delay 0.01 } OnSpawnOutput { Target "spammer_prop*" Action $RotateTowards Param !activator Delay 0.01 } OnSpawnOutput { Target "spammer_mimic_mid" Action FireOnce Delay 0.01 } // OnSpawnOutput // { // Target "spammer_target" // Action $SetAimFollow // Delay 0.01 // } // info_target // { // "targetname" "spammer_target" // "$modules" "aimfollow" // } prop_dynamic { "targetname" "spammer_prop_left" "origin" "50 0 0" "angles" "90 0 90" "model" "models/weapons/c_models/c_rocketlauncher/c_rocketlauncher.mdl" "skin" 1 "solid" 0 "$modules" "rotator" "$lookat" "aim" "$rotationspeedx" "350" "$rotationspeedy" "350" } tf_point_weapon_mimic { "targetname" "spammer_mimic_left" "origin" "50 0 0" "angles" "90 0 90" "$weaponname" "Giant Launcher" "$OnFire" "spammer_mimic_right,FireOnce,,0.2,-1" "$modules" "rotator" "$lookat" "aim" "$rotationspeedx" "350" "$rotationspeedy" "350" } prop_dynamic { "targetname" "spammer_prop_right" "origin" "-50 0 0" "angles" "90 0 90" "model" "models/weapons/c_models/c_rocketlauncher/c_rocketlauncher.mdl" "skin" 1 "solid" 0 "$modules" "rotator" "$lookat" "aim" "$rotationspeedx" "350" "$rotationspeedy" "350" } tf_point_weapon_mimic { "targetname" "spammer_mimic_right" "origin" "-50 0 0" "angles" "90 0 90" "$weaponname" "Giant Launcher" "$OnFire" "spammer_mimic_mid,FireOnce,,0.2,-1" "$modules" "rotator" "$lookat" "aim" "$rotationspeedx" "350" "$rotationspeedy" "350" } prop_dynamic { "targetname" "spammer_prop_mid" "origin" "0 -30 0" "angles" "90 0 90" "model" "models/weapons/c_models/c_rocketlauncher/c_rocketlauncher.mdl" "skin" 8 "solid" 0 "$modules" "rotator" "$lookat" "aim" "$rotationspeedx" "350" "$rotationspeedy" "350" } tf_point_weapon_mimic { "targetname" "spammer_mimic_mid" "origin" "0 -30 0" "angles" "90 0 90" "$weaponname" "Giant Launcher" "$OnFire" "spammer_mimic_left,FireOnce,,0.2,-1" "$modules" "rotator" "$lookat" "aim" "$rotationspeedx" "350" "$rotationspeedy" "350" } } // Half-Life wave HLWaveRelay { NoFixUp 1 logic_relay { "targetname" "hl_wave_start_relay" "OnUser2" "popscript,$StartHLWave,,0.1,-1" "OnUser2" "hl_music,StopSound,,0,-1" "OnTrigger" "wave_start_relay,Trigger,,0,-1" "OnTrigger" "hl_music,PlaySound,,0,-1" "OnUser1" "wave_finished_relay,Trigger,,0,-1" "OnUser1" "popscript,$ResetPlayerItems,,0.1,-1" "OnUser1" "hl_music,StopSound,,0,-1" } ambient_generic { "targetname" "hl_music" "message" "#music/hl1_song10.mp3" "health" 10 "spawnflags" 17 } } // ERROR wave RandomBossIcon { logic_case { "targetname" "random_icon_cases" "Case01" "scout_shortstop_missing" "Case02" "demoman_missing" "Case03" "soldier_missing" "Case04" "soldier_rocketrain_missing" "Case05" "pyro_missing" "Case06" "tank_missing" "OnCase01" "tf_objective_resource,$SetProp$m_iszMannVsMachineWaveClassNames$6,scout_shortstop_missing,0,-1" "OnCase02" "tf_objective_resource,$SetProp$m_iszMannVsMachineWaveClassNames$6,demoman_missing,0,-1" "OnCase03" "tf_objective_resource,$SetProp$m_iszMannVsMachineWaveClassNames$6,soldier_missing,0,-1" "OnCase04" "tf_objective_resource,$SetProp$m_iszMannVsMachineWaveClassNames$6,soldier_rocketrain_missing,0,-1" "OnCase05" "tf_objective_resource,$SetProp$m_iszMannVsMachineWaveClassNames$6,scout_fast_missing,0,-1" "OnCase06" "tf_objective_resource,$SetProp$m_iszMannVsMachineWaveClassNames$6,medic_missing,0,-1" "OnCase07" "tf_objective_resource,$SetProp$m_iszMannVsMachineWaveClassNames$6,sniper_carbine_missing,0,-1" } logic_relay { "targetname" "error_start_relay" "OnTrigger" "wave_start_relay,Trigger,,0,-1" "OnTrigger" "error_music,PlaySound,,0,-1" "OnTrigger" "player,$DisplayTextChat,{2EFF00}♫ Now Playing ♫ {FBECCB} : {FF0051}WangleLine - BOUNDARY::BREAK,0,-1" "OnUser1" "error_music,StopSound,,0,-1" "OnUser1" "random_icon_relay,Trigger,,0,-1" } logic_relay { "targetname" "random_icon_relay" "spawnflags" "2" "OnTrigger" "random_icon_cases,PickRandomShuffle,,0.05,-1" "OnTrigger" "random_icon_loop,Trigger,,0.05,-1" } logic_relay { "targetname" "random_icon_loop" "OnTrigger" "random_icon_relay,Trigger,,0,-1" } ambient_generic { "targetname" "error_music" "message" "#syrup_sounds/wangleline.mp3" "health" 10 "spawnflags" 17 } } Errornade { KeepAlive 1 tf_projectile_pipe { "origin" "0 0 0" "teamnum" "3" // 2 - Red team, 3 - Blu team } } SniperModel { OnSpawnOutput { Target @f@filter_snipermodel@c@!activator Action SetParent Param "" Delay 0.02 } prop_dynamic { "targetname" "snipermodel" "model" "models/bots/sniper/bot_sniper.mdl" "skin" 1 "defaultanim" "primary_walk" //check name "$modules" "fakeparent" "$rotationonly" 1 } } YeetRocket { prop_dynamic { "model" "models/weapons/w_models/w_rocket.mdl" "parentname" "spin_source" "angles" "0 -180 0" } func_rotating { "targetname" "spin_source" "mins" "-8 -8 -8" "maxs" "8 8 8" "fanfriction" "100" "maxspeed" "350" "rendermode" "10" "spawnflags" "77" //64: not solid, +8: Y axis, +4: X axis, +1: start on } } ERRORBoss { NoFixUp 1 OnParentKilledOutput { Target error_death_relay Action Trigger } OnSpawnOutput { Target popscript Action $ErrorBoss } OnSpawnOutput { Target "boss_prop*" Action $RotateTowards Param !activator Delay 0.01 } OnSpawnOutput { Target "boss_mimic*" Action $RotateTowards Param !activator Delay 0.01 } OnSpawnOutput { Target "boss_mimic*" Action $SetOwner Param !activator Delay 0.01 } OnSpawnOutput { Target "boss_mimic*" Action $StartFiring Param !activator Delay 0.01 } prop_dynamic { "targetname" "boss_prop_rocket" "origin" "0 -30 0" "angles" "90 0 90" "model" "models/weapons/c_models/c_rocketlauncher/c_rocketlauncher.mdl" "skin" 8 "solid" 0 "$modules" "rotator" "$lookat" "aim" "$rotationspeedx" "33" "$rotationspeedy" "33" } tf_point_weapon_mimic { "targetname" "boss_mimic_rocket" "origin" "0 -30 0" "angles" "90 0 90" "$weaponname" "Giant Launcher" "$firetime" 0.47 "$modules" "rotator" "$lookat" "aim" "$rotationspeedx" "33" "$rotationspeedy" "33" } prop_dynamic { "targetname" "boss_prop_flare" "origin" "-55 -11 0" "angles" "90 0 90" "model" "models/weapons/c_models/c_flaregun_pyro/c_flaregun_pyro.mdl" "skin" 1 "solid" 0 "$modules" "rotator" "$lookat" "aim" "$rotationspeedx" "99" "$rotationspeedy" "99" } tf_point_weapon_mimic { "targetname" "boss_mimic_flare" "origin" "-55 -11 0" "angles" "90 0 90" "$weaponname" "Boss Flare Gun" "$firetime" 0.23 "$modules" "rotator" "$lookat" "aim" "$rotationspeedx" "99" "$rotationspeedy" "99" } prop_dynamic { "targetname" "boss_prop_nade" "origin" "66 30 0" "angles" "90 0 90" "model" "models/weapons/c_models/c_grenadelauncher/c_grenadelauncher.mdl" "skin" 1 "solid" 0 "$modules" "rotator" "$lookat" "aim" "$rotationspeedx" "33" "$rotationspeedy" "33" } tf_point_weapon_mimic { "targetname" "boss_mimic_nade" "origin" "66 30 0" "angles" "90 0 90" "$weaponname" "Boss Grenade" "$firetime" 0.37 "$modules" "rotator" "$lookat" "aim" "$rotationspeedx" "33" "$rotationspeedy" "33" } prop_dynamic { "targetname" "boss_prop_ranger" "origin" "-44 22 0" "angles" "90 0 90" "model" "models/weapons/c_models/c_flaregun_pyro/c_flaregun_pyro.mdl" "skin" 1 "solid" 0 "$modules" "rotator" "$lookat" "aim" "$rotationspeedx" "33" "$rotationspeedy" "33" } tf_point_weapon_mimic { "targetname" "boss_mimic_ranger" "origin" "-44 22 0" "angles" "90 0 90" "Crits" "1" "$weaponname" "Boss Ranger" "$firetime" 0.53 "$modules" "rotator" "$lookat" "aim" "$rotationspeedx" "33" "$rotationspeedy" "33" } } RoboSoldier { prop_dynamic { "targetname" "soldier_boy" "model" "models/bots/soldier/bot_soldier.mdl" "origin" "0 0 -50" "skin" 1 "defaultanim" "a_jumpfloat_melee" } prop_dynamic_ornament { "initialowner" "soldier_boy" "model" "models/workshop/weapons/c_models/c_caber/c_caber.mdl" } prop_dynamic_ornament { "initialowner" "soldier_boy" "model" "models/workshop/player/items/soldier/hwn2020_war_blunder/hwn2020_war_blunder.mdl" } } ErrorDeath { env_fade { "targetname" "boss_fade_green_out" "duration" "0.75" //take .75 sec to go to full, then hold for a bit... "renderamt" 128 "holdtime" "0.25" "rendercolor" "0 255 0" } env_fade { "targetname" "boss_fade_green" "duration" "0.75" //...and take .75sec to fade in again. "renderamt" 128 "rendercolor" "0 255 0" "spawnflags" "1" //fade FROM the color } env_fade { "targetname" "boss_fade_white_out" "duration" "0.75" //take .75 sec to go to full, then hold for a bit... "renderamt" 128 "holdtime" "0.25" "rendercolor" "255 255 255" } env_fade { "targetname" "boss_fade_white" "duration" "0.75" //...and take .75sec to fade in again. "renderamt" 128 "rendercolor" "255 255 255" "spawnflags" "1" //fade FROM the color } env_fade { "targetname" "boss_fade_red_out" "duration" "0.75" //take .75 sec to go to full, then hold for a bit... "renderamt" 128 "holdtime" "0.25" "rendercolor" "255 0 0" } env_fade { "targetname" "boss_fade_red" "duration" "0.75" //...and take .75sec to fade in again. "renderamt" 128 "rendercolor" "255 0 0" "spawnflags" "1" //fade FROM the color } env_fade { "targetname" "boss_fade_full" "duration" "3" //...and take 1sec to fade in again. "renderamt" 255 "holdtime" "20" "rendercolor" "0 0 0" } skybox_swapper { "targetname" "error_skybox_1" "SkyboxName" "sky_nightfall_01" } skybox_swapper { "targetname" "error_skybox_2" "SkyboxName" "sky_goldrush_01" } skybox_swapper { "targetname" "error_skybox_3" "SkyboxName" "sky_halloween" } logic_relay { "targetname" "error_death_relay" //Partial fade "OnTrigger" "item_teamflag,ForceResetSilent,,0.01,-1" "OnTrigger" "item_teamflag,Disable,,0.02,-1" "OnTrigger" "point_populator_interface,PauseBotSpawning,,0.09,-1" "OnTrigger" "@f@filter_blueteam@player,$Suicide,,0.1,-1" "OnTrigger" "error_music,StopSound,,0.5,-1" "OnTrigger" "boss_fade_green_out,Fade,,0.01,-1" "OnTrigger" "boss_fade_green,Fade,,0.76,-1" "OnTrigger" "error_skybox_1,Trigger,,0.75,-1" "OnTrigger" "boss_fade_white_out,Fade,,1.51,-1" "OnTrigger" "boss_fade_white,Fade,,2.26,-1" "OnTrigger" "prop_dynamic,Disable,,2.5,-1" "OnTrigger" "error_skybox_2,Trigger,,2.5,-1" "OnTrigger" "boss_fade_red_out,Fade,,3.01,-1" "OnTrigger" "boss_fade_red,Fade,,3.76,-1" "OnTrigger" "error_skybox_3,Trigger,,3.75,-1" "OnTrigger" "boss_fade_full,Fade,,4.51,-1" //Frog, cow, Heavy, empty "OnTrigger" "player,SetCustomModel,models/props_2fort/frog.mdl,0.75,-1" "OnTrigger" "player,$PlaySoundToSelf,replay/cameracontrolerror.wav,0.75,-1" "OnTrigger" "player,SetCustomModel,models/props_2fort/cow001_reference.mdl,1.5,-1" "OnTrigger" "player,$PlaySoundToSelf,replay/cameracontrolerror.wav,1.5,-1" "OnTrigger" "player,SetCustomModel,models/player/heavy.mdl,2.25,-1" "OnTrigger" "player,$PlaySoundToSelf,replay/cameracontrolerror.wav,2.25,-1" "OnTrigger" "player,SetCustomModel,models/empty.mdl,4.5,-1" "OnTrigger" "player,$PlaySoundToSelf,replay/cameracontrolerror.wav,3.75,-1" "OnTrigger" "player,$PlaySoundToSelf,replay/cameracontrolerror.wav,4,-1" "OnTrigger" "player,$PlaySoundToSelf,replay/cameracontrolerror.wav,4.25,-1" "OnTrigger" "player,$PlaySoundToSelf,replay/cameracontrolerror.wav,4.5,-1" "OnTrigger" "player,$PlaySoundToSelf,vo/mvm_game_over_loss09.mp3,5.5,-1" "OnTrigger" "point_populator_interface,UnpauseBotSpawning,,5.5,-1" "OnTrigger" "error_skybox_2,Trigger,,7.5,-1" "OnTrigger" "player,SetCustomModel,,7.5,-1" } } //PTs for weapons GamblersGambit { OnSpawnOutput { Target popscript Action $GamblerEquip } } //Half-Life wave + weapons ThumperThing { OnSpawnOutput { Target popscript Action $ThumperEquip } } } //Custom weapons and other player changes PlayerItemEquipSpawnTemplate { Name "GamblersGambit" ItemName "Gambler's Gambit" } Templates { InvisibleModel { SpawnTemplate VisibleOnDeath CustomEyeGlowColor "0 0 0" FireInput { Target !activator Action $SetKey$rendermode Param 10 Delay 0.1 } } /////////////////////////////////////////////////////////////////// /////////////////// WAVE 1 - Harmless Bots /////////////// /////////////////////////////////////////////////////////////////// T_TFBot_Random_Banner { Class Scout Skill Normal Attributes SpawnWithFullCharge WeaponRestrictions SecondaryOnly Action FetchFlag ClassIcon soldier_banner_trio FireInput { Target popscript Action $RandomBannerBot Delay 0.1 Repeats 1 } CharacterAttributes { "increase buff duration" 9 "cannot disguise" 1 } } //A Bonk! Scout with a duration of about 4 minutes. //Obviously, it does not pick up the bomb. T_TFBot_Scout_Bonk_Inf { Class Scout Attributes IgnoreFlag //failsafe Action Mobber ClassIcon scout_bonk_inf_nys Item "The Bonk Helm" Item "Bonk! Atomic Punch" WeaponRestrictions SecondaryOnly ItemAttributes { ItemName "Bonk! Atomic Punch" "mult effect duration" 30 "effect bar recharge rate increased" 0.05 } AddCond { Index 14 Delay 0 } CharacterAttributes { "dmg penalty vs players" 0 } } //A Milk Scout that just throws milk! ...and nothing but milk! T_TFBot_Scout_Milk { Class Scout Name "Milk Scout" ClassIcon scout_milk WeaponRestrictions SecondaryOnly Attributes AlwaysFireWeapon Item "Mad Milk" Item "The Milkman" StripItemSlot 0 StripItemSlot 2 ItemAttributes { ItemName "Mad Milk" "effect bar recharge rate increased" 0.01 "fire rate penalty" 1.2 } } T_TFBot_Scout_Milk_Real { Class Scout Name "Mad Milk" ClassIcon scout_milk WeaponRestrictions SecondaryOnly Attributes SuppressFire Item "Mad Milk" StripItemSlot 0 StripItemSlot 2 ItemAttributes { ItemName "Mad Milk" "effect bar recharge rate increased" 0.01 "fire rate penalty" 1.2 "attachment name" "head" "attachment scale" 3.2 "attachment offset" "0 0 -30" } AddAttribute { Item "Active" Name "attachment scale" Value 3 Delay 0.1 } Template InvisibleModel SpawnTemplate { Name "JarOnDeath" Params { Projectile Milk } } } T_TFBot_Scout_Cola_Real { Class Scout Name "Crit-a-Cola" ClassIcon scout_cola_nys WeaponRestrictions SecondaryOnly Attributes SuppressFire Item "Crit-a-Cola" StripItemSlot 0 StripItemSlot 2 ItemAttributes { ItemName "Crit-a-Cola" "attachment name" "head" "attachment scale" 3.2 "attachment offset" "0 0 -30" } AddAttribute { Item "Active" Name "attachment scale" Value 3 Delay 0.1 } Template InvisibleModel } T_TFBot_Scout_BackupOnly { Class Scout Name "Infinite Backup Scout" ClassIcon soldier_banner_trio WeaponRestrictions SecondaryOnly Attributes SpawnWithFullCharge Item "The Battalion's Backup" StripItemSlot 0 StripItemSlot 2 CharacterAttributes { "increase buff duration" 999 } ItemAttributes { ItemName "The Battalion's Backup" "attachment name" "head" "attachment scale" 3.2 "attachment offset" "0 0 -30" } AddAttribute { Item "Active" Name "attachment scale" Value 3 Delay 0.1 } Template InvisibleModel } //A Soldier with some fancy boots. Real Mantreads, y'know? T_TFBot_Soldier_Mantreads { Class Soldier WeaponRestrictions MeleeOnly Name "Mantreads Soldier" ClassIcon soldier_mantreads_lite Item "The Mantreads" Attributes SuppressFire ItemAttributes { ItemName "TF_WEAPON_SHOVEL" "is invisible" 1 } CharacterAttributes { "cancel falling damage" 1 "voice pitch scale" 0 } } //A Soldier that IS the fancy boots. Literally. T_TFBot_Soldier_Mantreads_Real { Class Soldier WeaponRestrictions MeleeOnly Name "Mantreads" // ClassIcon soldier_mantreads_lite rip assets ClassIcon soldier Item "The Mantreads" NoBombUpgrades 1 Attributes SuppressFire ItemAttributes { ItemName "TF_WEAPON_SHOVEL" "is invisible" 1 } CharacterAttributes { "cancel falling damage" 1 "voice pitch scale" 0 } Template InvisibleModel } T_TFBot_Pyro_Gas_Real { Class Sniper Name "Gas Passer" ClassIcon pyro_gascann WeaponRestrictions SecondaryOnly Item "The Gas Passer" StripItemSlot 0 StripItemSlot 2 ItemAttributes { ItemName "The Gas Passer" "attachment name" "head" "attachment scale" 1.2 "attachment offset" "0 0 -30" "mult_item_meter_charge_rate" 0.02 "fire rate penalty" 4 } AddAttribute { Item "Active" Name "attachment scale" Value 1.25 Delay 0.1 } Template InvisibleModel SpawnTemplate { Name JarOnDeath Params { Projectile "Gas" } } } T_TFBot_Demo_Turner { Class Demoman Name "Tide Turner Demo" Skill Normal ClassIcon demo_longcharge //TODO: new icon? Item "The Bootlegger" Item "The Tide Turner" Item "The Scotsman's Skullcutter" Item "The Buccaneer's Bicorne" Item "A Whiff of the Old Brimstone" ItemAttributes { ItemName "The Scotsman's Skullcutter" "is invisible" 1 "no_attack" 1 "move speed penalty" 1 } ItemAttributes { ItemName "The Tide Turner" "charge impact damage increased" 0 "charge recharge rate increased" 0.01 //this actually causes it to decrease } } T_TFBot_Demo_Targe { Class Demoman Name "Chargin' Targe Demo" Item "The Chargin' Targe" Item "The Scotsman's Skullcutter" Item "Employee Badge A" //Grizzled Veteran Skill Normal WeaponRestrictions MeleeOnly ClassIcon demo_targe_nys ItemAttributes { ItemName "The Scotsman's Skullcutter" "is invisible" 1 "no_attack" 1 "move speed penalty" 1 } ItemAttributes { ItemName "The Chargin' Targe" "charge impact damage increased" 0 "charge recharge rate increased" 0.01 } } T_TFBot_Demo_Splendid { Class Demoman Name "Splendid Screen Demo" Skill Normal Item "Ali Baba's Wee Booties" Item "The Splendid Screen" Item "The Scotsman's Skullcutter" Item "Sultan's Ceremonial" ClassIcon demo_splendid_lite ItemAttributes { ItemName "The Scotsman's Skullcutter" "is invisible" 1 "no_attack" 1 "move speed penalty" 1 } ItemAttributes { ItemName "The Splendid Screen" "charge impact damage increased" 0 "charge recharge rate increased" 0.01 } } T_TFBot_Heavy_Sandvich { Class Heavy Name "Sandvich Heavy" Skill Normal ClassIcon heavy_robosandvich_nys WeaponRestrictions SecondaryOnly Attributes SuppressFire Item "The Tungsten Toque" Item "The Robo-Sandvich" ItemAttributes { ItemName "The Robo-Sandvich" "alt-fire disabled" 1 } } T_TFBot_Heavy_Dalokohs { Class Heavy Name "Shokolad Heavy" Skill Normal ClassIcon heavy_dalokohs_lite WeaponRestrictions SecondaryOnly Attributes SuppressFire Item "The Tungsten Toque" Item "The Dalokohs Bar" ItemAttributes { ItemName "The Dalokohs Bar" "alt-fire disabled" 1 } } T_TFBot_Heavy_ConchOnly { Class Heavy Name "Infinite Conch Heavy" ClassIcon soldier_banner_trio WeaponRestrictions SecondaryOnly Attributes SpawnWithFullCharge Item "The Concheror" CharacterAttributes { "increase buff duration" 999 } } T_TFBot_Engineer_Wrangler { Class Engineer Name "Wrangler Engineer" ClassIcon engineer_wrangler_lite Item "The Wrangler" WeaponRestrictions SecondaryOnly Action FetchFlag } T_TFBot_Sniper_Jarate_Only { Class Sniper Name "Jarate Sniper" ClassIcon sniper_jarate Item "Jarate" Item "Desert Marauder" WeaponRestrictions SecondaryOnly ItemAttributes { ItemName "Jarate" "effect bar recharge rate increased" 0 "fire rate penalty" 1.2 } } //REAL JARETE? T_TFBot_Sniper_Jarate_Real { Class Sniper Name "Jarate" ClassIcon sniper_jarate WeaponRestrictions SecondaryOnly // Attributes SuppressFire Item "Jarate" StripItemSlot 0 StripItemSlot 2 ItemAttributes { ItemName "Jarate" "attachment name" "head" "attachment scale" 3.2 "attachment offset" "0 0 -30" "effect bar recharge rate increased" 0.03 "fire rate penalty" 4 } AddAttribute { Item "Active" Name "attachment scale" Value 3 Delay 0.1 } Template InvisibleModel SpawnTemplate { Name JarOnDeath Params { Projectile "Jarate" } } } T_TFBot_Giant_Pyro_Gas_EoI { Template T_TFBot_Giant_Pyro Name "Giant Team Wiper Pyro" ClassIcon pyro_gascann_explode Item "The Gas Passer" Item "The Lunatic's Leathers" Item "The Gas Guzzler" Item "The Smoking Skid Lid" WeaponRestrictions SecondaryOnly Attributes DisableDodge StripItemSlot 0 StripItemSlot 2 UseHumanAnimations 1 ItemAttributes { ItemName "The Gas Passer" "mult_item_meter_charge_rate" 0.02 "fire rate bonus" 0.6 "explode_on_ignite" 1 "killstreak tier" 1 } } T_TFBot_Giant_Heavy_First_Banana { Class Heavy Name "Giant First Banana Heavy" Health 2500 Scale 1.25 ClassIcon heavy_banana WeaponRestrictions SecondaryOnly Attributes UseBossHealthBar Attributes SuppressFire Attributes MiniBoss Item "Potassium Bonnett" Item "The Second Banana" ItemAttributes { ItemName "Dead of Night" "set item tint rgb" 15185211 //aussie gold } ItemAttributes { ItemName "The Second Banana" "alt-fire disabled" 1 } CharacterAttributes { "move speed penalty" 0.9 "damage force reduction" 0.7 "airblast vulnerability multiplier" 0.7 } FireInput { Target "banana_text1" Action Display Repeats 1 Delay 0.01 } FireInput { Target "banana_text2" Action Display Repeats 1 Delay 0.5 } } T_TFBot_Giant_Heavy_Second_Banana { Class Heavy Name "Giant Second Banana Heavy" Health 3700 Scale 1.5 ClassIcon heavy_banana WeaponRestrictions SecondaryOnly Attributes UseBossHealthBar Attributes MiniBoss Item "Potassium Bonnett" Item "Heavy Heating" ItemAttributes { ItemName "Heavy Heating" "item style override" 1 "set item tint rgb" 15185211 //aussie gold } ItemAttributes { ItemName "TF_WEAPON_SHOTGUN_HWG" "item color rgb" 16769290 "override projectile type" 2 "fire rate penalty" 1.5 "custom projectile model" "models/items/banana/plate_banana.mdl" "damage bonus" 10 "faster reload rate" 0 "no explosion particles" 1 "max aoe targets" 1 } CharacterAttributes { "move speed penalty" 0.7 "damage force reduction" 0.55 "airblast vulnerability multiplier" 0.55 } FireInput { Target "banana_text1" Action $SetKey$message Param "THE ONE YOU ALREADY KNOW AND LOVE" Delay 0.01 } FireInput { Target "banana_text2" Action $SetKey$message Param "THE SECOND BANANA" Delay 0.01 } FireInput { Target "banana_text1" Action Display Repeats 1 Delay 0.1 } FireInput { Target "banana_text2" Action Display Repeats 1 Delay 0.6 } } T_TFBot_Giant_Heavy_Third_Banana { Class Heavy Name "Giant Third Banana Heavy" Health 5500 ClassIcon heavy_banana WeaponRestrictions PrimaryOnly Attributes MiniBoss Item "Potassium Bonnett" Item "Upgradeable TF_WEAPON_MINIGUN" SpawnTemplate { Name "RadioActiveBanana" Bone "bip_head" } // ItemAttributes // { // ItemName "Heavy Tourism" // "set item tint rgb" 15185211 //aussie gold // } ItemAttributes { ItemName "Upgradeable TF_WEAPON_MINIGUN" "set_item_texture_wear" 0.2 "paintkit_proto_def_index" 302 //Mannana Peeled "override projectile type" 2 "fire rate penalty" 2 "custom projectile model" "models/empty.mdl" "damage bonus" 5 "no explosion particles" 1 "max aoe targets" 1 } CharacterAttributes { "move speed penalty" 0.5 "damage force reduction" 0.4 "airblast vulnerability multiplier" 0.4 } ShootTemplate { Name "BananaPickup" AttachToProjectile 1 } FireInput { Target "banana_text1" Action $SetKey$message Param "MYTHICAL VISION FROM THE RADIOACTIVE FUTURE" Delay 0.01 } FireInput { Target "banana_text2" Action $SetKey$message Param "THE THIRD BANANA" Delay 0.01 } FireInput { Target "banana_text1" Action Display Repeats 1 Delay 0.1 } FireInput { Target "banana_text2" Action Display Repeats 1 Delay 0.6 } } T_TFBot_Captain_PNG { Class Heavyweapons Skill Expert WeaponRestrictions MeleeOnly Name "Captain PNG" ClassIcon heavy_chief Health 2000 Scale 1.6 Item "Fists of Steel" Attributes MiniBoss Attributes SuppressFire Attributes UseBossHealthBar ItemAttributes { ItemName "Fists of Steel" "damage bonus" -0.01 "dmg from ranged reduced" 1 "is invisible" 1 } CharacterAttributes { "move speed bonus" 0.5 "damage force reduction" 0.3 "airblast vulnerability multiplier" 0.3 "override footstep sound set" 2 "airblast vertical vulnerability multiplier" 0.1 "rage giving scale" 0.1 } Item "Photo Badge" ItemAttributes { ItemName "Photo Badge" "custom texture hi" "x1bf621ef" "custom texture lo" "xab285b57" "attachment name" "head" "attachment scale" "3" } AddAttribute { Item "Photo Badge" Name "attachment scale" Value 5 Delay 0.1 } AddTemplate InvisibleModel } T_TFBot_Sergeant_Oversized_Helm { Class Soldier Skill Expert WeaponRestrictions PrimaryOnly Name "Oversized Tyrant's Helm" ClassIcon soldier_sergeant_crits Health 2000 Scale 1.4 Item "Tyrant's Helm" Attributes MiniBoss Attributes UseBossHealthBar Attributes HoldFireUntilFullReload Attributes AlwaysCrit Attributes SuppressFire ItemAttributes { ItemName "TF_WEAPON_ROCKETLAUNCHER" "mult projectile count" -1 "is invisible" 1 } CharacterAttributes { "move speed bonus" 0.5 "damage force reduction" 0.4 "airblast vulnerability multiplier" 0.4 "override footstep sound set" 3 "airblast vertical vulnerability multiplier" 0.1 "rage giving scale" 0.1 } ItemAttributes { ItemName "Tyrant's Helm" "attachment name" "head" "attachment scale" "3" "attachment offset" "-30 0 -40" "attachment angles" "0 0 -10" } AddAttribute { Item "Tyrant's Helm" Name "attachment scale" Value 3.1 Delay 0.1 } AddTemplate InvisibleModel } T_TFBot_Major_Crowned_Bomb { Class Demoman Name "Chief Crowned Cannonball" ClassIcon demo_bomber Skill Normal Health 2000 Item "Prince Tavish's Crown" WeaponRestrictions PrimaryOnly Attributes AlwaysCrit Attributes MiniBoss Attributes UseBossHealthBar ItemAttributes { ItemName "TF_WEAPON_GRENADELAUNCHER" "mult projectile count" -1 "is invisible" 1 } CharacterAttributes { "move speed bonus" 0.4 "damage force reduction" 0.7 "airblast vulnerability multiplier" 0.3 "override footstep sound set" 4 "airblast vertical vulnerability multiplier" 0.1 "rage giving scale" 0.1 } Attributes SuppressFire SpawnTemplate { Name "CrownedBomb" Bone bip_head } AddTemplate InvisibleModel } /////////////////////////////////////////////////////////////////// /////////////////// WAVE 2 - Taunt Bots /////////////////// /////////////////////////////////////////////////////////////////// CongaInfest { Health 1500 Attributes SuppressFire ClassIcon random_lite UseHumanAnimations 1 Taunt { Delay 0 Cooldown 1 Duration 9999 Name "Conga Taunt" IfSeeTarget 1 } CharacterAttributes { "fire input on hit" "!self^$TauntFromItem^Conga Taunt" "stomp player damage" 1 "stomp player time" 0.5 "stomp building damage" 60 } } CongaTaunt { Sequence { Name "taunt_conga" Delay 0.2 Repeats 0 IfSeeTarget 0 } CharacterAttributes { "fire input on hit" "!self^$TauntFromItem^Conga Taunt" "stomp player damage" 1 "stomp player time" 0.5 "stomp building damage" 60 } } PlayerBot { ClassIcon tf2_lite Action Mobber UseHumanModel 1 } //Player bots from the tanks and blimps T_TFBot_Scout_Player { Class Scout Name "Scooty Scout" Item "Boston Brain Bucket" Item "Ripped Rider" DesiredAttackRange 150 Attributes HoldFireUntilFullReload Template PlayerBot FireInput { Target !activator Action $TeleportToEntity Param scooter_spawn Delay 0.1 Repeats 1 } } T_TFBot_Engineer_Player { Class Engineer Name "Truckin' Engineer" Item "The Last Straw" Item "Dad Duds" Item "The Frontier Justice" DesiredAttackRange 150 Attributes HoldFireUntilFullReload Template PlayerBot ItemAttributes { ItemName "The Frontier Justice" "fire input on kill" "!activator^$Taunt" } FireInput { Target !activator Action $TeleportToEntity Param texan_spawn Delay 0.1 Repeats 1 } } T_TFBot_Soldier_Player { Class Soldier Name "Rocket Jockey Soldier" Skill Hard Item "The Air Strike" Item "The B.A.S.E. Jumper" Item "Sky High Fly Guy" Item "Veterans Attire" Attributes HoldFireUntilFullReload RocketJump 2 Template PlayerBot FireInput { Target !activator Action $TeleportToEntity Param jockey_spawn Delay 0.1 Repeats 1 } ItemAttributes { ItemName "The Air Strike" "rocket jump damage reduction" 0 "faster reload rate" 0.6 "self dmg push force increased" 2 "health regen" 5 } } T_TFBot_Spy_Player { Name "Travelling Spy" Class Spy AimTrackingInterval 0.2 Item "L'Etranger" //As the name says... Item "The B.A.S.E. Jumper" Item "The Aviator Assassin" Item "The Sky Captain" Template PlayerBot FireInput { Target !activator Action $TeleportToEntity Param agent_spawn Delay 0.1 Repeats 1 } } T_TFBot_Pyro_Player { Name "Hot Wheelin' Pyro" Class Pyro Skill Expert Item "The Degreaser" Item "The Powerjack" Item "The Lunatic's Leathers" Item "The Gas Guzzler" Item "The Smoking Skid Lid" DesiredAttackRange 150 WeaponSwitch { Delay 0.5 Cooldown 1 IfSeeTarget 0 Type "Primary" IfHealthBelow 160 } WeaponSwitch { Delay 0.5 Cooldown 1 IfSeeTarget 0 Type "Melee" IfHealthAbove 160 } ItemAttributes { ItemName "The Degreaser" "airblast disabled" 1 } Template PlayerBot FireInput { Target !activator Action $TeleportToEntity Param hotty_spawn Delay 0.1 Repeats 1 } } T_TFBot_Demo_Player { Name "Drunk Cannoneer Demo" Class Demoman Skill Normal Item "The Loose Cannon" Item "The Buccaneer's Bicorne" Item "A Whiff of the Old Brimstone" ItemAttributes { ItemName "The Loose Cannon" "grenade launcher mortar mode" 0 } Template PlayerBot FireInput { Target !activator Action $TeleportToEntity Param cannon_spawn Delay 0.1 Repeats 1 } } //Other bots //Subwave 1: T_TFBot_Soldier_Grenade { Class Soldier Skill Expert Name "Tactical Grenade Soldier" Item "The Escape Plan" Item "The Mantreads" ClassIcon soldier_escape WeaponRestrictions MeleeOnly ItemAttributes { ItemName "The Escape Plan" "fire input on hit" "!activator^$Taunt" "blast dmg to self increased" 99 "damage penalty" 0.1 } CharacterAttributes { "dmg from ranged reduced" 0.1 } } T_TFBot_Heavy_Conga { Class Heavyweapons Name "Conga Heavy" Attributes DisableDodge Item "Upgradeable TF_WEAPON_MINIGUN" UseHumanModel 1 AimTrackingInterval 0.5 DesiredAttackRange 200 ItemAttributes { ItemName "Upgradeable TF_WEAPON_MINIGUN" "damage penalty" 0.67 //6 base damage lo "aiming movespeed increased" 1.5 } Template CongaTaunt } T_TFBot_Medic_Conga { Class Medic Skill Normal Name "Conga Medic" WeaponRestrictions SecondaryOnly UseHumanModel 1 Template CongaTaunt } T_TFBot_SpyCrab { Class Spy ClassIcon spycrab_seel Name "Spycrab" Action Mobber Skill Expert UseHumanModel 1 NoCrouchButtonRelease 1 AimOffset "0 0 10000" AimAt "head" StripItemSlot 0 StripItemSlot 1 StripItemSlot 2 NoBombUpgrades 1 FireWeapon { Type "Crouch" Delay 0.1 Duration 2.1 IfSeeTarget 0 Cooldown 2 Repeats 0 } FireInput { Target !self Action $WeaponSwitchSlot Param 3 Delay 0.1 } AddAttribute { Item "Player" Name "mult duck speed" Value 3 Delay 0.02 IfHealthBelow 101 //When threatened, spycrabs are known to run faster. } AddAttribute { Item "Player" Name "stomp player damage" Value 40 Delay 0.02 IfHealthBelow 101 } AddAttribute { Item "Player" Name "stomp player time" Value 0.56 Delay 0.02 IfHealthBelow 101 } CharacterAttributes { "cannot disguise" 1 "ignored by enemy sentries" 1 } } T_TFBot_SpyCrab_Special { Class Spy ClassIcon spycrab_seel Name "Endangered Spycrab" Action Mobber UseHumanModel 1 //Actually gibs properly and stuff SpawnTemplate Spycrab Template InvisibleModel NoCrouchButtonRelease 1 NoBombUpgrades 1 FireWeapon { Type "Crouch" Duration 1.1 Cooldown 1 Repeats 0 IfHealthAbove 101 //When threatened, spycrabs are known to run faster. } WeaponRestrictions MeleeOnly ItemAttributes { ItemName "TF_WEAPON_KNIFE" "is invisible" 1 "no_attack" 1 "melee attack rate bonus" 0.6 "mult crit dmg" -1.5 } CharacterAttributes { "cannot disguise" 1 "ignored by enemy sentries" 1 } RemoveAttribute { Item "TF_WEAPON_KNIFE" Name "no_attack" Delay 0.02 Cooldown 1 Repeats 1 IfHealthBelow 101 } } T_TFBot_Giant_Scout_BnuuyHop { Class Scout Name "Giant Bunnyhopper Scout" Health 1200 Attributes SuppressFire Attributes MiniBoss Attributes DisableDodge WeaponRestrictions MeleeOnly ClassIcon scout_jumping_nys_norm UseHumanModel 1 FireInput { Target !activator Action $TauntFromItem Param "Taunt: The Bunnyhopper|taunt move speed|360" //-10% move speed Delay 0.1 Cooldown 2 IfSeeTarget 0 } CharacterAttributes { "increased jump height" 1.3 "always allow taunt" 1 "stomp player force" 360 "stomp player time" 0.5 "stomp building damage" 70 } } T_TFBot_Giant_SpyCrab { Class Spy ClassIcon spycrab_seel_giant Name "Alpha Spycrab" Scale 1.5 Health 1600 Action FetchFlag Attributes IgnoreEnemies Attributes MiniBoss UseHumanModel 1 NoCrouchButtonRelease 1 AimOffset "0 0 90" StripItemSlot 0 StripItemSlot 1 StripItemSlot 2 SpawnTemplate SpycrabTarget FireInput { Target !self Action $WeaponSwitchSlot Param 3 Delay 0.1 } FireWeapon { Type "Crouch" Delay 0.1 Duration 1.1 Cooldown 1 Repeats 0 } AddAttribute { Item "Player" Name "mult duck speed" Value 3 Delay 0.02 IfHealthBelow 801 //When threatened, spycrabs are known to run faster. } InterruptAction { Delay 0.1 Cooldown 2 Duration 6 AimTarget "spycrab_target" Target RandomEnemy Distance 50 IfHealthAbove 801 } InterruptAction { Delay 0.1 Cooldown 2 Duration 6 AimTarget "spycrab_target" Target "item_healthkit*" IfHealthBelow 801 AddToQueue 1 StopCurrentInterruptAction 1 } CharacterAttributes { "cannot disguise" 1 "ignored by enemy sentries" 1 "move speed penalty" 0.75 "damage force reduction" 0.3 "airblast vulnerability multiplier" 0.3 } } //Subwave 2, excluding player bots T_TFBot_Heavy_Dueler { Class Heavyweapons Name "Western Dueler Heavy" Skill Normal Attributes DisableDodge Attributes SuppressFire WeaponRestrictions MeleeOnly ClassIcon heavy_fist_nys AimTrackingInterval 0.6 UseHumanModel 1 ItemAttributes { ItemName "TF_WEAPON_FISTS" "dmg penalty vs players" 0.2 //100 } Taunt //Taunt periodically { Delay 3 Cooldown 6 IfSeeTarget 1 } } T_TFBot_Engineer_Guitar { Class Engineer Name "Guitar Smasher Engineer" Health 150 WeaponRestrictions MeleeOnly Action FetchFlag UseHumanModel 1 DesiredAttackRange 150 ItemAttributes { ItemName "TF_WEAPON_WRENCH" "custom item model" "models/player/items/engineer/guitar.mdl" "custom hit sound" "=35|weapons/guitar_impact2.wav" } } //Subwave 3 is all in-wave //Support: T_TFBot_DEJAVU { Class Heavyweapons Name "DEJA VU" WeaponRestrictions MeleeOnly Skill Expert Action Mobber Attributes DisableDodge UseHumanModel 1 ClassIcon scout_giant_fast DesiredAttackRange 150 FireInput { Target !self Action $TauntFromItem Param "Taunt: The Victory Lap|taunt move speed|720|taunt turn speed|216" Delay 0.1 } } //haha yes T_TFBot_Giant_Demoman_Buster_Conga { ClassIcon sentry_buster Health 2500 Name "Conga Buster" MaxVisionRange 55 Class Demoman Skill Expert WeaponRestrictions MeleeOnly Tag "bot_sentrybuster" Item "the ullapool caber" Attributes "MiniBoss" Attributes "DisableDodge" Attributes "IgnoreEnemies" UseHumanAnimations 1 Taunt //Taunt periodically { Delay 0 //Time before the first taunt starts (Default: 10) Duration 9999 //Duration of a looping taunt (Default: 0.1) Name "Conga Taunt" //If set, uses this item taunt instead of default IfSeeTarget 1 //When set to 1, this task activates only when the bot can see the target player (Default 0 - Always activate) } CharacterAttributes { "taunt move speed" 503 "taunt turn speed" 150 "move speed bonus" 2 "damage force reduction" 0.00 "airblast vulnerability multiplier" 0.00 "airblast vertical vulnerability multiplier" 0.00 "cannot be backstabbed" 1 "override footstep sound set" 7 "voice pitch scale" 0 } } /////////////////////////////////////////////////////////////////// /////////////////// WAVE 3 - Incorrect Bots /////////////// /////////////////////////////////////////////////////////////////// T_TFBot_Scout_HoustonHealer { Name "Houston Healer Scout" Class Scout Skill Expert WeaponRestrictions MeleeOnly Item "The Boston Basher" ClassIcon scout_basher_lite_heal ItemAttributes { ItemName "The Boston Basher" "mult bleeding dmg" -1 "damage penalty" 0.01 } } T_TFBot_Soldier_Badzooka { Class Soldier Skill Expert Name "Skybox Bazooka Soldier" Item "The Beggar's Bazooka" Item "The Gunboats" Attributes AlwaysFireWeapon Attributes AutoJump AutoJumpMin 2 AutoJumpMax 3 ClassIcon soldier_bazooka ItemAttributes { ItemName "The Beggar's Bazooka" "clip size penalty HIDDEN" 5 "faster reload rate" 0.2 "apply z velocity on damage" 420 "apply look velocity on damage" 400 } ItemAttributes { ItemName "The Gunboats" "rocket jump damage reduction" 0.05 "move speed bonus" 1.3 } } T_TFBot_Demo_Cantnon { Class Demoman Name "Can'tnon Demo" Item "The Loose Cannon" Skill Expert ClassIcon demo_cannon ItemAttributes { ItemName "The Loose Cannon" "rocket jump damage reduction" 5 } } T_TFBot_Heavy_Pogchamp { Template T_TFBot_Heavyweapons_Heavyweight_Champ Name "Heavyweight PogChamp" ClassIcon heavy_champ_pog_red Skill Expert Action Mobber ItemAttributes { ItemName "The Killing Gloves of Boxing" "fire input on kill" "popscript^$PogOnKill^" } AddCond { Name "TF_COND_REPROGRAMMED" Delay 0 } } T_TFBot_Heavy_Natascha_NotSlow { Name "Speed-up Natascha Heavy" Class Heavyweapons Item "Natascha" ItemAttributes { ItemName "Natascha" "slow enemy on hit" 0 "add cond on hit" "32" "add cond on hit duration" "1" } } T_TFBot_Heavy_Brass_Fast { Class Heavyweapons Name "Brass Speeder Heavy" Item "The Brass Beast" Item "Bonk Boy" ClassIcon heavy_brass_nys AimTrackingInterval 0.5 //Worse than Normal, better than Easy ExtAttr AlwaysFireWeaponAlt ItemAttributes { ItemName "The Brass Beast" "aiming movespeed increased" 2.3 "aiming movespeed decreased" 1 "bullets per shot bonus" 0.5 "move speed bonus" 2 } ItemAttributes { ItemName "Bonk Boy" "attachment name" "head" "attachment angles" "0 180 180" "attachment offset" "0 0 -8" } AddAttribute { Item "Bonk Boy" Name "attachment scale" Value 1.05 Delay 0.1 } } T_TFBot_Giant_Soldier_WhiteBox { Template T_TFBot_Giant_Soldier_RocketShotgun Name "Giant White Box Soldier" ItemAttributes { ItemName "The Black Box" "paintkit_proto_def_index" 248 //Igloo; Civic Duty might also work. "set_item_texture_wear" 0.2 "heal on hit for rapidfire" 0 "health on radius damage" 0 "fire input on hit" "!activator^$TakeDamage^1000" } } T_TFBot_Giant_Demo_Laziebomb { Template T_TFBot_Giant_Demoman Name "Giant Laziebomb Demo" WeaponRestrictions SecondaryOnly Item "The Quickiebomb Launcher" ClassIcon demo_quickie_pda ItemAttributes { ItemName "TF_WEAPON_GRENADELAUNCHER" "is_passive_weapon" 1 "fire rate penalty" 1357 "override projectile type" 7 } ItemAttributes { ItemName "The Quickiebomb Launcher" "sticky arm time bonus" 60 "max pipebombs increased" 180 "stickybomb charge rate" 0.001 "clip size penalty" 1 "clip size bonus" 7.5 "faster reload rate" 0 "fire rate bonus" 0.25 "projectile spread angle penalty" 25 "projectile range decreased" 0.5 } } T_TFBot_Giant_Medic_Undercharge { Name "Giant Undercharge Medic" Class Medic Skill Expert Health 4000 Attributes MiniBoss Attributes SpawnWithFullCharge ClassIcon medic_uber_infinite FireInput { Target !activator Action RunScriptCode Param "self.SetSkin(3)" IfHealthBelow 3999 Delay 0.01 } CharacterAttributes { "move speed bonus" 0.5 "damage force reduction" 0.4 "airblast vulnerability multiplier" 0.4 "bot medic uber health threshold" 1 "bot medic uber deploy delay duration" 9999 } ItemAttributes { ItemName "tf_weapon_medigun" "heal rate bonus" 75 "ubercharge rate bonus" 8 "uber duration bonus" -7.5 } } /////////////////////////////////////////////////////////////////// /////////////////// WAVE 4 - Infinity Bots /////////////// /////////////////////////////////////////////////////////////////// T_TFBot_Soldier_Bison { Class Soldier ClassIcon soldier_bison_rng Skill Expert Attributes "HoldFireUntilFullReload" WeaponRestrictions SecondaryOnly Item "The Righteous Bison" Item "The Crone's Dome" CharacterAttributes { "move speed bonus" 0.9 } ItemAttributes { ItemName "The Righteous Bison" "fire rate bonus" 0.79 "reload time increased" 0 "clip size bonus" 0.25 } } //Inf bosses T_TFBot_Giant_Soldier_Spammer_Spammer { Template T_TFBot_Giant_Soldier_Spammer Name "Giant Rapid Rapid Fire Soldier" Health 6000 Attributes UseBossHealthBar SpawnTemplate RemoveIconOnDeath FireInput { Target !self Action $SetProp$m_iszClassIcon Param "soldier_spammer_spammer" Delay 0.01 } ItemAttributes { ItemName "TF_WEAPON_ROCKETLAUNCHER" "fire rate bonus" 0.3 "damage penalty" 0.65 } } T_TFBot_Giant_Soldier_Spammer_Spammer_Spammer { Template T_TFBot_Giant_Soldier_Spammer Name "Giant Rapid Rapid Rapid Soldier" Health 9000 Attributes UseBossHealthBar SpawnTemplate RemoveIconOnDeath FireInput { Target !self Action $SetProp$m_iszClassIcon Param "soldier_spammer_spammer_spammer" Delay 0.01 } ItemAttributes { ItemName "TF_WEAPON_ROCKETLAUNCHER" "fire rate bonus" 0.1 "damage penalty" 0.3 } } T_TFBot_Giant_Soldier_Spammer_Infinite { Template T_TFBot_Giant_Soldier_Spammer Name "Rapid Rapid Rapid Rapid Soldier" Health 12000 Attributes UseBossHealthBar SpawnTemplate RemoveIconOnDeath FireInput { Target !self Action $SetProp$m_iszClassIcon Param "spammer_ad_infinitum" Delay 0.01 } SpawnTemplate { Name SpammerRocketSpinner Bone bip_head } ItemAttributes { ItemName "TF_WEAPON_ROCKETLAUNCHER" "fire rate bonus" 0.15 "damage penalty" 0.3 } CharacterAttributes { "projectile speed decreased" 0.55 //further nerf } } /////////////////////////////////////////////////////////////////// /////////////////// WAVE 5 - HECU Bots /////////////////// /////////////////////////////////////////////////////////////////// //SMG / MP5 / M4A1 HECU_smg { Class Sniper Name "HECU Marine Bot" WeaponRestrictions SecondaryOnly Skill Normal ClassIcon sniper_m4a1_lite Item "The HazMat Headcase" Item "Upgradeable TF_WEAPON_SMG" ItemAttributes { ItemName "Upgradeable TF_WEAPON_SMG" "clip size bonus" 2 } ItemAttributes { ItemName "The HazMat Headcase" "item style override" 1 //'reinforced' "set item tint rgb" 4345659 //zeph's greed } } //9mm HECU_pistol { Class Scout Name "HECU Scouting Bot" Skill Normal AimTrackingInterval 0.5 WeaponRestrictions SecondaryOnly ClassIcon scout_pocketpistol_lite Item "The Mishap Mercenary" Item "Pretty Boy's Pocket Pistol" ItemAttributes { ItemName "Pretty Boy's Pocket Pistol" "clip size bonus" 1.42 "clip size penalty" 1 } ItemAttributes { ItemName "The Mishap Mercenary" "set item tint rgb" 4345659 //zeph's greed } } //M-40A1 HECU_sniper { Class Sniper Name "HECU Sniper Bot" Skill Hard MaxVisionRange 1600 } HECU_heavy { Class Heavyweapons Name "HECU Heavy Machine Gun Bot" Skill Normal Health 600 Scale 1.2 MaxVisionRange 1200 Item "Phobos Filter" Item "Upgradeable TF_WEAPON_MINIGUN" ItemAttributes { ItemName "Upgradeable TF_WEAPON_MINIGUN" "fire rate penalty" 2.5 "minigun spinup time increased" 1.2 "bullets per shot bonus" 0.25 "damage bonus" 2 "weapon spread bonus" 0.5 "no damage falloff" 1 } ItemAttributes { ItemName "Phobos Filter" "attachment angles" "-30 0 0" "health regen" 2 "set item tint rgb" 4345659 //zeph's greed } } HECU_shotgun { Class Pyro Name "HECU Shotgun Bot" Skill Hard ClassIcon heavy_shotgun WeaponRestrictions SecondaryOnly // Item "Thumper" Item "The Winter Wonderland Wrap" Item "Upgradeable TF_WEAPON_SHOTGUN_PRIMARY" ItemAttributes { ItemName "Upgradeable TF_WEAPON_SHOTGUN_PRIMARY" "clip size bonus" 1.34 "fire rate penalty" 1.2 } ItemAttributes { ItemName "The Winter Wonderland Wrap" "item style override" 1 "set item tint rgb" 2960676 } } HECU_rpg { Class Soldier Name "HECU RPG Bot" Item "The Original" Item "Phobos Filter" Skill Normal ClassIcon soldier_heat_nys_blu Attributes HoldFireUntilFullReload ItemAttributes { ItemName "The Original" "mod projectile heat seek power" 60 "mod projectile heat follow crosshair" 1 "projectile speed decreased" 0.2 //220 hu/s base "projectile acceleration time" 0.4 "projectile acceleration start time" 0.4 "projectile acceleration" 1100 "fire rate penalty" 2 } ItemAttributes { ItemName "Phobos Filter" "set item tint rgb" 4345659 //zeph's greed } } HECU_giant_rpg { Class Soldier Health 4000 Name "HECU Elite RPG Bot" Item "The Original" Item "Airtight Arsonist" Skill Expert ClassIcon soldier_heat_spammer_nys_blu Attributes MiniBoss WeaponRestrictions PrimaryOnly ItemAttributes { ItemName "The Original" "mod projectile heat seek power" 100 "mod projectile heat follow crosshair" 1 "projectile speed decreased" 0.2 //220 hu/s base "projectile acceleration time" 0.4 "projectile acceleration start time" 0.4 "projectile acceleration" 1100 "fire rate penalty" 1.5 "damage bonus" 1.5 "faster reload rate" 0 } ItemAttributes { ItemName "Airtight Arsonist" "set item tint rgb" 4345659 //zeph's greed } CharacterAttributes { "move speed bonus" 0.5 "damage force reduction" 0.4 "airblast vulnerability multiplier" 0.4 "override footstep sound set" 3 } } HECU_giant_saw { Class Sniper Name "HECU Elite SAW Bot" Health 2500 Skill Expert WeaponRestrictions SecondaryOnly ClassIcon sniper_smg_tind_giant Attributes MiniBoss Item "Upgradeable TF_WEAPON_SMG" Item "The HazMat Headcase" ItemAttributes { ItemName "Upgradeable TF_WEAPON_SMG" "fire rate bonus" 0.7 "clip size bonus" 2 "damage bonus" 1.25 } ItemAttributes { ItemName "The HazMat Headcase" "set item tint rgb" 4345659 //zeph's greed } CharacterAttributes { "move speed bonus" 0.5 "head scale" 0.8 "override footstep sound set" 7 "damage force reduction" 0.5 "airblast vulnerability multiplier" 0.5 } } /////////////////////////////////////////////////////////////////// /////////////////// WAVE 6 - Objective Bots /////////////// /////////////////////////////////////////////////////////////////// T_TFBot_Chief_Objective { Class Demoman Name "Chief Control Point" Health 10000 Skill Hard Attributes MiniBoss Attributes UseBossHealthBar Attributes HoldFireUntilFullReload Tag bot_capchief Action Mobber Item "Bombard Brigadier" CharacterAttributes { "move speed penalty" 0.45 "damage force reduction" 0.1 "airblast vulnerability multiplier" 0.5 //Lower to make objectives more feasible } AddCond { Index 52 Delay 0 } EventChangeAttributes { Default //Payload shooter (n00ks) { Item "gentlemanne_grenadelauncher_topshelf" ItemAttributes { ItemName "gentlemanne_grenadelauncher_topshelf" "fire rate penalty" 2 "faster reload rate" 0 "custom projectile model" "models/empty.mdl" "damage bonus" 1.5 "dmg bonus vs buildings" 1.5 } ShootTemplate { Name "PayloadCart" AttachToProjectile 1 ItemName "gentlemanne_grenadelauncher_topshelf" } } Flags //Flag shooter (non-exploding cannonballs) { Item "The Iron Bomber" ItemAttributes { ItemName "The Iron Bomber" "override projectile type" 17 "fuse bonus" 3 //3 sec detonation time, "projectile lifetime" 2 //2 sec lifetime, so it won't explode! "custom projectile model" "models/empty.mdl" "fire rate bonus" 0.1 "faster reload rate" 0.55 "mod max primary clip override" 10 "projectile spread angle penalty" 5 } ShootTemplate { Name "RandomFlag" AttachToProjectile 1 ItemName "The Iron Bomber" } } Australium //Australium shooter (explosives) { Item "Upgradeable TF_WEAPON_GRENADELAUNCHER" ItemAttributes { ItemName "Upgradeable TF_WEAPON_GRENADELAUNCHER" "item style override" 1 //Australium Launcher shoots Australium, of course! "damage bonus" 1.25 "custom projectile model" "models/empty.mdl" "fire rate bonus" 0.75 "faster reload rate" 0 "projectile spread angle penalty" 0.5 "turn to gold" 1 //And you turn to gold >:3 } ShootTemplate { Name "AustraliumFlag" AttachToProjectile 1 ItemName "Upgradeable TF_WEAPON_GRENADELAUNCHER" } InterruptAction { Target "cap_areaD" } } } } /////////////////////////////////////////////////////////////////// /////////////////// WAVE 7 - Error Bots /////////////////// /////////////////////////////////////////////////////////////////// T_TFBot_Soldier_ERROR { Class Soldier Name "Erroneous Expert" Health 650 Scale 1.4 Skill Expert Attributes HoldFireUntilFullReload Item "The Finder's Fee" ClassIcon soldier_missing ItemAttributes { ItemName "The Finder's Fee" "attachment name" "head" "attachment scale" 1.25 "attachment offset" "0 0 -125" } ItemAttributes { ItemName "TF_WEAPON_ROCKETLAUNCHER" "projectile speed increased" 0.8 "projectile gravity" 400 "projectile trail particle" "peejar_trail_blue" "voice pitch scale" 0.11 "mult projectile scale" 0 } ShootTemplate "YeetRocket" } T_TFBot_Medic_ERROR { Template T_TFBot_Medic_BigHeal Name "Maddening Megabyte" ClassIcon medic_missing Item "The Finder's Fee" ItemAttributes { ItemName "The Finder's Fee" "attachment name" "head" "attachment scale" 1.25 } ItemAttributes { ItemName "The Quick-Fix" "attachment name" "head" "attachment angles" "0 180 0" "voice pitch scale" 0.11 } } T_TFBot_Sniper_ERROR { Class Sniper Name "Crashing Connecter" Skill Normal Item "The Machina" ClassIcon sniper_ping FireWeapon { Type Secondary Cooldown 1.6 Delay 0.1 IfSeeTarget 1 } FireWeapon { Type Primary Cooldown 1.6 Delay 0.6 IfSeeTarget 1 } Action FetchFlag Template InvisibleModel SpawnTemplate SniperModel FireInput { Target @f@filter_snipermodel@c@!activator Action $SetFakeParent Param !activator Delay 0.01 } FireInput { Target @c@!activator Action $TeleportToEntity Param !activator Delay 0.01 } } T_TFBot_Sniper_SMG_ERROR { Class Sniper Name "Aimless Assembler" Health 150 ClassIcon sniper_carbine_missing Skill Hard WeaponRestrictions SecondaryOnly Item "The Classic" Item "The Cleaner's Carbine" ItemAttributes { ItemName "The Classic" "is_passive_weapon" 1 "aiming movespeed decreased" 3 } ItemAttributes { ItemName "The Cleaner's Carbine" "fire rate penalty" 1 "faster reload rate" 0 "damage bonus" 1.25 } } T_TFBot_Giant_Soldier_SoldierLauncher { Template T_TFBot_Giant_Soldier Name "Giant Soldier Launcher Soldier" Item "Upgradeable TF_WEAPON_ROCKETLAUNCHER" ClassIcon soldier_rocketrain_missing AimOffset "0 0 15" ItemAttributes { ItemName "Upgradeable TF_WEAPON_ROCKETLAUNCHER" "fire rate bonus" 0.5 "faster reload rate" 0.4 "clip size upgrade atomic" 2 "projectile speed decreased" 0.75 "projectile spread angle penalty" 2 "projectile gravity" 45 "custom projectile model" "models/weapons/w_models/w_drg_ball.mdl" "projectile trail particle" "~rockettrail" "explosion particle" "bot_death" "custom impact sound" "ambient/grinder/grinderbot_02.wav" } ShootTemplate { Name RoboSoldier AttachToProjectile 1 ItemName "Upgradeable TF_WEAPON_ROCKETLAUNCHER" } } /////////////////////////////////////////////////////////////////// /////////////////////// Giant Bots /////////////////////// /////////////////////////////////////////////////////////////////// //Lovingly taken from a local blob .w. T_TFBot_Giant_Demoman_Buster_Improved { ClassIcon sentry_buster Health 2500 Name "Sentry Buster" Class Demoman Skill Expert WeaponRestrictions MeleeOnly Tag "bot_sentrybuster" Item "the ullapool caber" Attributes "MiniBoss" Attributes "DisableDodge" Attributes "IgnoreEnemies" CharacterAttributes { "move speed bonus" 2 "damage force reduction" 0.00 "airblast vulnerability multiplier" 0.00 "airblast vertical vulnerability multiplier" 0.00 "cannot be backstabbed" 1 "override footstep sound set" 7 "voice pitch scale" 0 } } /////////////////////////////////////////////////////////////////// /////////////////////// Red Bots /////////////////////// /////////////////////////////////////////////////////////////////// Friendly { ClassIcon red2_lite Action Mobber CharacterAttributes { "no_jump" 1 "voice pitch scale" 0 "dmg taken increased" 0.25 "health regen" 1 "receive friendly fire" 1 "always allow taunt" 1 "damage force reduction" 0.02 "ignored by bots" 1 } AddCond { Name "TF_COND_REPROGRAMMED" Delay 0 } UseHumanModel 1 // UseHumanAnimations 1 } /////////////////////////////////////////////////////////////////// /////////////////// WAVE 2 - Taunt Bots /////////////////// /////////////////////////////////////////////////////////////////// RedBot_Scout_Hobby { Class Scout Name "Helpful Hobby Scout" FireInput { Delay 0.1 Target !self Action $TauntFromItem Param "Taunt: The Homerunner's Hobby" Cooldown 1 } Template Friendly } RedBot_Pyro_Campfire { Class Pyro Name "Trusty Toasty Pyro" FireInput { Delay 0.1 Target !self Action $TauntFromItem Param "Taunt: Roasty Toasty" Cooldown 1 } Template Friendly } RedBot_Demo_Deck { Class Demoman Name "Dependable Deck Demo" FireInput { Delay 0.1 Target !self Action $TauntFromItem Param "Taunt: The Pooped Deck" Cooldown 1 } Template Friendly } RedBot_Heavy_ArmsRace { Class Heavyweapons Name "Allied Arms Race Heavy" FireInput { Delay 0.1 Target !self Action $TauntFromItem Param "Taunt: The Russian Arms Race" Cooldown 1 } Template Friendly } RedBot_Heavy_Strongarm { Class Heavyweapons Name "Stalwart Strongarm Heavy" FireInput { Delay 0.1 Target !self Action $TauntFromItem Param "Taunt: The Soviet Strongarm" Cooldown 1 } Template Friendly } RedBot_Engineer_Relaxo { Class Engineer Name "Reliable Relaxo Engineer" FireInput //Taunt periodically { Delay 0.3 Target !self Action $TauntFromItem Param "Rancho Relaxo Taunt" Cooldown 1 } Template Friendly CharacterAttributes { "always allow taunt" 0 //anti-air } } RedBot_Medic_Timeout { Class Medic Name "Tactical Timeout Medic" FireInput { Delay 0.1 Target !self Action $TauntFromItem Param "Taunt: Time Out Therapy" Cooldown 1 } Template Friendly } RedBot_Sniper_Stakeout { Class Sniper Name "Secure Stakeout Sniper" FireInput { Delay 0.1 Target !self Action $TauntFromItem Param "Taunt: Shooter's Stakeout" Cooldown 1 } Template Friendly } RedBot_Spy_Terminal { Class Spy Name "Tenacious Terminal Spy" FireInput { Delay 0.1 Target !self Action $TauntFromItem Param "Taunt: Tailored Terminal" Cooldown 1 } Template Friendly } RedBot_Spy_Lounge { Class Spy Name "Loyal Lounge Spy" FireInput { Delay 0.1 Target !self Action $TauntFromItem Param "Taunt: Luxury Lounge" Cooldown 1 } Template Friendly } RedBot_Spy_Box { Class Spy Name "Bold Boxtrot Spy" FireInput { Delay 0.1 Target !self Action $TauntFromItem Param "Taunt: The Boxtrot" Cooldown 1 } Template Friendly } } CustomWeapon { //Custom weapons for bots only //Harmless wave (ironic) "Surprise Nuke" { OriginalItemName "The Iron Bomber" "fuse bonus" 0.5 "damage bonus" 3 "use large smoke explosion" 1 "blast radius increased" 2.5 "projectile speed decreased" 0.01 "grenade explode on impact" 1 } //Infinity wave "Giant Launcher" { OriginalItemName "TF_WEAPON_ROCKETLAUNCHER" "custom weapon fire sound" "=25|mvm/giant_soldier/giant_soldier_rocket_shoot.wav" "projectile speed decreased" 0.5 "damage penalty" 0.5 "penetrate teammates" 1 } //Error wave "Boss Flare Gun" { OriginalItemName "The Flare Gun" "dmg bonus vs buildings" 2 "penetrate teammates" 1 } "Boss Grenade" { OriginalItemName "TF_WEAPON_GRENADELAUNCHER" "custom weapon fire sound" "=25|mvm/giant_demoman/giant_demoman_grenade_shoot.wav" } "Boss Ranger" { OriginalItemName "The Rescue Ranger" "damage bonus" 1.5 } //Custom weapons equippable by red "Gambler's Gambit" { OriginalItemName gentlemanne_smg_highrollers "special item description" "Deal a random amount of damage per shot." "set_item_texture_wear" 0.2 "fire rate penalty" 8.77 //777% slower, 0.777 secs between shots "clip size penalty" 0.23 //77% smaller clip, or about 5-6 shots. "weapon spread bonus" 0.23 //77% more accurate } "Ice Breaker" { OriginalItemName "The Back Scratcher" "set_item_texture_wear" 0.2 "paintkit_proto_def_index" 282 //Glacial Glazed "special item description" "Freezes enemies on hit for 1.5 seconds." "special item description 2" "Deals more damage to frozen enemies." "special damage type" 1 "add attributes on hit" "CARD: move speed bonus|0.5|1.5|no_jump|1.5|2|dmg taken mult from special damage type 1|2|1.45" "fire rate penalty" 1.5 //1.2s between swings, time 'em well, nerd. "health from healers reduced" 1 "health from packs increased" 1 } "Fallout Frenzy" { OriginalItemName "The Loose Cannon" "set_item_texture_wear" 0.2 "paintkit_proto_def_index" 218 //Uranium "special item description" "Fires a fair and balanced nuke." "grenade launcher mortar mode" 0 "override projectile type" 3 //regular 'nade "mod max primary clip override" -1 "clip size bonus" 2 "fire rate penalty" 3 "CARD: damage bonus" 3 "projectile speed decreased" 0.75 "grenade explode on impact" 1 "custom projectile model" "models/props_td/atom_bomb.mdl" } //Half-Life wave //Primary "Overcharged Thumper" //Shotgun { OriginalItemName "Panic Attack Shotgun" "custom item model" "models/weapons/c_models/c_rapidfire/c_rapidfire_1.mdl" "cannot be upgraded" 1 "damage penalty" 1 "headshot damage increase" 1.5 "damage bonus" 2.1 "clip size bonus" 1.3 "weapon spread bonus" 0.7 "fire rate bonus" 0.8 "bullets per shot bonus" 0.5 "faster reload rate" 0.7 "single wep deploy time increased" 1.15 } "Overcharged RPG" { OriginalItemName "The Liberty Launcher" "custom item model" "models/weapons/c_models/c_wasp_launcher/c_wasp_launcher_1.mdl" "cannot be upgraded" 1 "damage penalty" 1 "projectile speed increased" 1 "clip size bonus" 1 "damage bonus" 3 "heal on kill" 100 //Stats mostly taken from Dismal Devilry. Thanks, Jurrell :3 "mod projectile heat seek power" 180 "mod projectile heat follow crosshair" 1 "projectile speed decreased" 0.2 "clip size penalty" 0.25 "projectile acceleration" 5000 "projectile acceleration time" .1 "projectile acceleration start time" .5 } "Overcharged Magnum" { OriginalItemName "gentlemanne_pistol_dressedtokill" "cannot be upgraded" 1 "damage bonus" 3 "headshot damage increase" 1.5 "projectile penetration" 1 "mult bleeding dmg" 0.4 "explosive sniper shot" 1 "heal on kill" 75 "fire rate penalty" 4 //0.105 -> 0.6 "clip size penalty" 0.5 } "Overcharged Gluon Gun" { OriginalItemName "The Phlogistinator" "cannot be upgraded" 1 "flame_spread_degree" 0.7 //-75% spread "flame_drag" 4.2 //+50% range "damage bonus" 3 "special item description" "Can only hit two targets at a time." "max aoe targets" 2 "burn damage earns rage" 0 "heal on kill" 100 "maxammo primary increased" 1.5 "burn damage earns rage" 0 //no idea if this works but w/e } "Overcharged Gamma Gazer" //pew pew { OriginalItemName "The Shortstop" "custom item model" "models/weapons/c_models/c_gamma_gazer/c_gamma_gazer_1.mdl" "cannot be upgraded" 1 "bullets per shot bonus" 0.25 "maxammo primary increased" 2 "faster reload rate" 0.6 "fire rate bonus" 0.6 "weapon spread bonus" 0.75 "damage bonus" 2 "can headshot" 1 "heal on kill" 75 } "Overcharged SAW" { OriginalItemName "Upgradeable TF_WEAPON_SMG" "cannot be upgraded" 1 "set_item_texture_wear" 0.2 "paintkit_proto_def_index" 217 //Bomber Soul "fire rate bonus" 0.7 "can headshot" 1 "damage bonus" 3 "clip size bonus" 2 "maxammo secondary increased" 4 "heal on kill" 100 "max health additive bonus" 50 } "Overcharged Crate Smasher" { OriginalItemName "Necro Smasher" "custom item model" "models/weapons/c_models/c_cratesmasher/c_cratesmasher_1.mdl" "cannot be upgraded" 1 "melee attack rate bonus" 0.6 "heal on kill" 100 } } ExtraLoadoutItems { AllowEquipOutsideSpawn 1 Melee { Name "Overcharged Crate Smasher" Hidden 1 } Sniper { Secondary "Gambler's Gambit" Secondary { Name "Overcharged SAW" Hidden 1 } } //HL wave Scout { Primary { Name "Overcharged Magnum" Hidden 1 } Secondary { Name "Overcharged Gamma Gazer" Hidden 1 } } Soldier { Primary { Name "Overcharged RPG" Hidden 1 } Secondary { Name "Overcharged Thumper" Hidden 1 } } Pyro { Primary { Name "Overcharged Gluon Gun" Hidden 1 } Secondary { Name "Overcharged Thumper" Hidden 1 } } Engineer { Primary { Name "Overcharged Thumper" Hidden 1 } Secondary { Name "Overcharged Gamma Gazer" Hidden 1 } } } //Custom bots, spawns, and tank paths ExtraSpawnPoint //Adds spawn points on specified location { Name "highspawn" TeamNum 3 X "-650" Y "5000" Z "600" } ExtraSpawnPoint { Name "spawnbot_workers" StartDisabled 1 TeamNum 3 X "-150" Y "6175" Z "-678" } ExtraSpawnPoint { Name "errorspawn" TeamNum 3 X "-50" Y "4000" Z "-625" } ExtraSpawnPoint { Name "engiespawn1" TeamNum 3 X "-1800" Y "3330" Z "-450" } ExtraSpawnPoint { Name "engiespawn2" TeamNum 3 X "589" Y "205" Z "-50" } ExtraSpawnPoint { Name "engiespawn3" TeamNum 3 X "-120" Y "-1200" Z "-50" } ExtraSpawnPoint { Name "engiespawn4" TeamNum 3 X "-815" Y "-4111" Z "-670" } ExtraTankPath //Adds tank path to follow { Name "blimp_path" Node "-2860 4700 -580" Node "-2860 4050 -80" Node "-750 4050 -80" Node "-680 2150 -140" Node "-1140 1630 -45" Node "-585 680 -20" Node "-1135 -260 95" Node "-420 -975 95" } ExtraTankPath { Name "zoom_path" Node "-2504 4096 -685" Node "600 4096 -505" Node "400 4096 -505" } ExtraTankPath { Name "drop_path" Node "620 4500 740" Node "619 4499 -703" Node "610 4490 -703" Node "420 4200 -703" Node "420 4100 -703" } Mission { Objective DestroySentries Where spawnbot BeginAtWave 2 RunForThisManyWaves 1 DesiredCount 1 CooldownTime 60 TFBot { Template T_TFBot_Giant_Demoman_Buster_Conga } } Mission { Objective Sniper Where spawnbot BeginAtWave 5 RunForThisManyWaves 1 DesiredCount 2 InitialCooldown 30 CooldownTime 60 TFBot { Template HECU_sniper } } Mission { Objective Sniper Where spawnbot BeginAtWave 7 RunForThisManyWaves 1 DesiredCount 2 InitialCooldown 15 CooldownTime 50 TFBot { Template T_TFBot_Sniper_ERROR } } SpawnTemplate { Name "MapleLogo" Origin "0 5060 -255" Angles "0 -105 0" } SpawnTemplate { Name "HillLogo" Origin "65 4910 -315" Angles "0 -105 0" } // Wave //TEST WAVE // { // StartWaveOutput // { // Target wave_start_relay // Action Trigger // } // DoneOutput // { // Target wave_finished_relay // Action Trigger // } // WaveSpawn // { // Name "noend" // WaitBeforeStarting 5555 // } // } //GOAL: Centralize the subwaves to be more FOCUSED. //Subwave 1: ONE VERY scary pyro + triple vacc & kritz medic + Sandviches + Shokolads //Banners <- possibly too annoying? //Splendid Screen, Chargin Targe, Tide Turner <- Not interesting enough //Subwave 2: Giant Banana Heavies - respawn on old one's location, help the flow! //Subwave 3: "Are" their icon: Jars <- bigger, single crowd //Too many bosses at once! Focus on just one to maximize fnuuyness //REMOVED: Chief Crowned Cannonball, Oversized Tyrant's Helm //Subwave 4: Captain PNGch //Doesn't add anything and is too obscure, just scrap. //"Support": Infinite Bonk Scout Wave //WAVE 1 - Harmless Bots { StartWaveOutput { Target wave_start_relay Action Trigger } DoneOutput { Target wave_finished_relay Action Trigger } SpawnTemplate BananaTitles WaveSpawn { Name "wave1a" Where spawnbot TotalCount 10 MaxActive 10 SpawnCount 10 TotalCurrency 100 TFBot { Template T_TFBot_Soldier_Mantreads_Real } } WaveSpawn { Name "wave1a" Where spawnbot WaitBeforeStarting 10 WaitBetweenSpawns 5 TotalCount 15 MaxActive 15 SpawnCount 15 TotalCurrency 100 Squad { NoWaitForFormation 1 TFBot { Template T_TFBot_Scout_Milk_Real } TFBot { Template T_TFBot_Sniper_Jarate_Real } TFBot { Template T_TFBot_Pyro_Gas_Real } } } WaveSpawn { Name "wave1b" WaitForAllDead "wave1a" FirstSpawnWarningSound "mvm/mvm_tank_horn.wav" //tank spawn sound WaitBeforeStarting 1 Where spawnbot TotalCount 1 MaxActive 1 SpawnCount 1 TotalCurrency 100 TFBot { Template T_TFBot_Captain_PNG } } WaveSpawn { Name "wave1b" WaitForAllDead "wave1a" WaitBeforeStarting 5 Where spawnbot TotalCount 1 MaxActive 1 SpawnCount 1 TotalCurrency 100 TFBot { Template T_TFBot_Major_Crowned_Bomb } } WaveSpawn { Name "wave1b" WaitForAllDead "wave1a" WaitBeforeStarting 10 Where spawnbot TotalCount 1 MaxActive 1 SpawnCount 1 TotalCurrency 100 TFBot { Template T_TFBot_Sergeant_Oversized_Helm } } WaveSpawn { Name "wave1c1" WaitForAllDead "wave1b" WaitBeforeStarting 4 Where spawnbot_flank TotalCount 1 MaxActive 1 SpawnCount 1 TotalCurrency 24 TFBot { Template T_TFBot_Giant_Heavy_First_Banana } } WaveSpawn { Name "wave1c2" WaitForAllDead "wave1c1" Where spawnbot_flank TotalCount 1 MaxActive 1 SpawnCount 1 TotalCurrency 48 TFBot { Template T_TFBot_Giant_Heavy_Second_Banana } } WaveSpawn { Name "wave1c3" WaitForAllDead "wave1c2" Where spawnbot_flank TotalCount 1 MaxActive 1 SpawnCount 1 TotalCurrency 72 TFBot { Template T_TFBot_Giant_Heavy_Third_Banana } } } //Don't add much and are a bit too much filler - REMOVED //- Tactical Grenade Soldier //A bit too slow and odd to be fun - REMOVED //- Western Dueler Heavy (uses Pow! taunt) //Wave 2: Taunt wave //Subwave 1: all them tanks 'n blimps! Come out at once, LOW health. //- Spycrabs! On a kill, they will all turn VIOLENT //- TexasTruckin Tank //- ScootyScoot Tank //- RocketJockey Blimp //- HotWheeler Tank SetSpeed from 0 after about 1.9 secs //- DrunkMannsCannon Tank //Subwave 3: //- Giant Conga Swarm //Fun, but being support makes it too vague. Arguably better to either remove or dedicate more to? //- Support: DEJA VU (heavy with hyper speed Victory Lap taunt) //- RED "support": Sitting. Chilling. Relaxing. // Hobby Scout, Campfire Pyro, Pooped Deck Demo, Arms Race/Strongarm Heavy, // Relaxo Engineer, Time Out Medic, Stakeout Sniper, Lounge/Terminal Spy. Wave //WAVE 2 - Taunt wave! { Explanation { Line "{red}During this wave, RED bots will assist you!" Line "{red}...supposedly." } StartWaveOutput { Target wave_start_relay Action Trigger } DoneOutput { Target wave_finished_relay Action Trigger } SpawnTemplate "SpycrabAnger" WaveSpawn { Name "wave2a2" Where spawnbot_flank StartWaveMessage "{red}REMINDER: {FBECCB}Spycrabs are an endangered species." FirstSpawnMessage "{FBECCB}Please do not try to disturb or harm them." DoneMessage "{FBECCB}Wow, nature just means nothing to you, does it?" WaitBeforeStarting 3 WaitBetweenSpawns 0.5 TotalCount 4 MaxActive 4 SpawnCount 1 Support Limited //Spycrabs drop no money. Stop killing Spycrabs. TFBot { Template T_TFBot_SpyCrab } } WaveSpawn { Name "wave2a2" Where spawnbot_flank WaitBeforeStarting 3.25 TotalCount 1 MaxActive 1 SpawnCount 1 Support Limited //Spycrabs drop no money. Stop killing Spycrabs. TFBot { Template T_TFBot_SpyCrab_Special } } WaveSpawn { Name "wave2a" Where spawnbot WaitBeforeStarting 8 TotalCount 1 MaxActive 1 SpawnCount 1 TotalCurrency 100 TFBot { Template T_TFBot_Giant_Scout_BnuuyHop } } //First two tanks, WaveSpawn { Name "wave2b_texan" WaitForAllDead "wave2a" DoneMessage "{blue}Truckin' Engineer{FBECCB} : dude" Where spawnbot TotalCount 1 MaxActive 1 SpawnCount 1 TotalCurrency 100 Tank { Health 1500 SpawnTemplate TexasTruckin Speed 120 StartingPathTrackNode "tank_path_a_3" Scale 0.35 Model { Default "models/empty.mdl" LeftTrack "models/empty.mdl" RightTrack "models/empty.mdl" Destruction "models/empty.mdl" Bomb "models/empty.mdl" } StartSound "misc/null.wav" PingSound "misc/null.wav" EngineLoopSound "misc/null.wav" NoScreenShake 1 DisableSmokestack 1 MaxTurnRate 100 // DestroyTemplate "null" OnBombDroppedOutput { Target boss_deploy_relay Action Trigger } } } WaveSpawn { Name "wave2b" WaitForAllDead "wave2b_texan" WaitBeforeStarting 0 Where spawnbot_top TotalCount 1 MaxActive 1 SpawnCount 1 TFBot { Template T_TFBot_Engineer_Player } } WaveSpawn { Name "wave2b_scoot" WaitForAllDead "wave2a" WaitBeforeStarting 1 DoneMessage "{blue}Scooty Scout {FBECCB} : CAN YOU NOT" Where spawnbot TotalCount 1 MaxActive 1 SpawnCount 1 TotalCurrency 100 Tank { Health 1500 SpawnTemplate ScootyScoot Speed 120 StartingPathTrackNode "tank_path_a_3" Scale 0.35 Model { Default "models/empty.mdl" LeftTrack "models/empty.mdl" RightTrack "models/empty.mdl" Destruction "models/empty.mdl" Bomb "models/empty.mdl" } StartSound "misc/null.wav" PingSound "misc/null.wav" EngineLoopSound "misc/null.wav" NoScreenShake 1 DisableSmokestack 1 MaxTurnRate 100 // DestroyTemplate "null" OnBombDroppedOutput { Target boss_deploy_relay Action Trigger } } } WaveSpawn { Name "wave2b" WaitForAllDead "wave2b_scoot" WaitBeforeStarting 0.2 Where spawnbot_top TotalCount 1 MaxActive 1 SpawnCount 1 TFBot { Template T_TFBot_Scout_Player } } WaveSpawn { Name "wave2b_hot" WaitForAllDead "wave2a" WaitBeforeStarting 2 DoneMessage "{blue}Hot Wheelin' Pyro {FBECCB} : 3:" Where spawnbot TotalCount 1 MaxActive 1 SpawnCount 1 TotalCurrency 100 Tank { Health 1500 SpawnTemplate HotWheeler Speed 120 StartingPathTrackNode "tank_path_a_3" Scale 0.35 Model { Default "models/empty.mdl" LeftTrack "models/empty.mdl" RightTrack "models/empty.mdl" Destruction "models/empty.mdl" Bomb "models/empty.mdl" } StartSound "misc/null.wav" PingSound "misc/null.wav" EngineLoopSound "misc/null.wav" NoScreenShake 1 DisableSmokestack 1 MaxTurnRate 100 // DestroyTemplate "null" OnBombDroppedOutput { Target boss_deploy_relay Action Trigger } } } WaveSpawn { Name "wave2b" WaitForAllDead "wave2b_hot" WaitBeforeStarting 1.4 Where spawnbot_top TotalCount 1 MaxActive 1 SpawnCount 1 TFBot { Template T_TFBot_Pyro_Player } } WaveSpawn { Name "wave2b_cannon" WaitForAllDead "wave2a" DoneMessage "{blue}Drunk Cannoneer Demo{FBECCB} : i;m going ot kill yuo" WaitBeforeStarting 3 Where spawnbot TotalCount 1 MaxActive 1 SpawnCount 1 TotalCurrency 100 Tank { Health 1500 SpawnTemplate DrunkMannsCannon Speed 120 StartingPathTrackNode "tank_path_a_3" Scale 0.35 Model { Default "models/empty.mdl" LeftTrack "models/empty.mdl" RightTrack "models/empty.mdl" Destruction "models/empty.mdl" Bomb "models/empty.mdl" } StartSound "misc/null.wav" PingSound "misc/null.wav" EngineLoopSound "misc/null.wav" NoScreenShake 1 DisableSmokestack 1 MaxTurnRate 100 // DestroyTemplate "null" OnBombDroppedOutput { Target boss_deploy_relay Action Trigger } } } WaveSpawn { Name "wave2b" WaitForAllDead "wave2b_cannon" WaitBeforeStarting 1.6 Where spawnbot_top TotalCount 1 MaxActive 1 SpawnCount 1 TFBot { Template T_TFBot_Demo_Player } } WaveSpawn { Name "wave2b_rocket" WaitForAllDead "wave2a" DoneMessage "{blue}Rocket Jockey Soldier{FBECCB} : Why does red hate friendlies" WaitBeforeStarting 4 Where spawnbot TotalCount 1 MaxActive 1 SpawnCount 1 TotalCurrency 100 Tank { Health 1000 SpawnTemplate RocketJockey Speed 75 StartingPathTrackNode "blimp_path_1" ClassIcon blimp2_lite Model { Default "models/empty.mdl" LeftTrack "models/empty.mdl" RightTrack "models/empty.mdl" Bomb "models/empty.mdl" } Gravity 0 StartSound "misc/null.wav" PingSound "misc/null.wav" EngineLoopSound "misc/null.wav" NoScreenShake 1 DisableSmokestack 1 // DestroyTemplate "null" OnBombDroppedOutput { Target boss_deploy_relay Action Trigger } } } WaveSpawn { Name "wave2b" WaitForAllDead "wave2b_rocket" WaitBeforeStarting 1.2 Where spawnbot_top TotalCount 1 MaxActive 1 SpawnCount 1 TFBot { Template T_TFBot_Soldier_Player } } WaveSpawn { Name "wave2c" WaitForAllDead "wave2b" StartWaveMessage "{FBECCB}[SM-Admin]: Sent input Trigger to entity 'Forced Conga Relay'!" WaitBeforeStarting 5 WaitBetweenSpawns 0.2 Where spawnbot TotalCount 15 MaxActive 15 SpawnCount 1 TotalCurrency 90 RandomChoice { TFBot { Template T_TFBot_Giant_Scout AddTemplate CongaInfest } TFBot { Template T_TFBot_Giant_Soldier AddTemplate CongaInfest } TFBot { Template T_TFBot_Giant_Pyro AddTemplate CongaInfest } TFBot { Template T_TFBot_Giant_Demoman AddTemplate CongaInfest } TFBot { Template T_TFBot_Giant_Heavyweapons AddTemplate CongaInfest } } } WaveSpawn { Name "Relaxers" Where engiespawn1 TotalCount 1 MaxActive 1 SpawnCount 1 Support Limited RandomChoice { TFBot { Template RedBot_Scout_Hobby } TFBot { Template RedBot_Pyro_Campfire } TFBot { Template RedBot_Demo_Deck } } } WaveSpawn { Name "Relaxers" Where engiespawn2 TotalCount 1 MaxActive 1 SpawnCount 1 Support Limited RandomChoice { TFBot { Template RedBot_Heavy_ArmsRace } TFBot { Template RedBot_Heavy_Strongarm } TFBot { Template RedBot_Medic_Timeout } } } WaveSpawn { Name "Relaxers" Where engiespawn3 TotalCount 1 MaxActive 1 SpawnCount 1 Support Limited RandomChoice { TFBot { Template RedBot_Sniper_Stakeout FireInput { Target !self Action $SetLocalOrigin Param "362 -1240 -59" Delay 0.05 Repeats 1 } } TFBot { Template RedBot_Spy_Lounge FireInput { Target !self Action $SetLocalOrigin Param "362 -1240 -59" Delay 0.05 Repeats 1 } } TFBot { Template RedBot_Spy_Terminal FireInput { Target !self Action $SetLocalOrigin Param "362 -1240 -59" Delay 0.05 Repeats 1 } } } } WaveSpawn { Name "Relaxers" Where engiespawn4 TotalCount 1 MaxActive 1 SpawnCount 1 Support Limited TFBot { Template RedBot_Engineer_Relaxo FireInput { Target !self Action $SetLocalOrigin Param "-890 -4270 -590" Delay 0.05 Repeats 1 } } } } //Subwave 1: Stuff that heals, stuff that doesn't. Also, surprise bomb reset. //- Canteen Abuser Scout //- Giant White Box Soldier - TOO MANY! Cut down! //- Speedup Natascha Heavies //- Houston Healer Scouts //Subwave 2: Stuff that explodes a lot! //- Tank that runs directly into a wall and explodes //- Skybox Bazooka Soldier (explodes towards the skybox) //- Stuck Cannon Demos (explodes) -- Will likely die while red is distracted, remove? //Subwave 3: Slow or fast? //- Brass Speeder Heavies (extremely fast brass beast heavies) //- Giant Laziebomb Demo (simply does not detonate) // + Giant Undercharge Medic: fake the uber by setting skin --MAKE THIS THE FOCUS! Wave //WAVE 3 - Incorrect bots wave! { StartWaveOutput { Target wave_start_relay Action Trigger } DoneOutput { Target wave_finished_relay Action Trigger } SpawnTemplate AirdropTankLogic WaveSpawn { Name "wave3a1" Where spawnbot_flank TotalCount 1 MaxActive 1 SpawnCount 1 TotalCurrency 100 TFBot { Template T_TFBot_Giant_Scout_Fast Name "Canteen Abuser Scout" ClassIcon scout_fast_uberkritcan SpawnTemplate CanteenAbuserScout ItemAttributes { ItemName "The Holy Mackerel" "fire rate bonus" 0.4 "dmg bonus vs buildings" 3 "melee range multiplier" 1.5 } } } WaveSpawn { Name "Recalling Bomb..." WaitBeforeStarting 20 TotalCount 1 MaxActive 1 SpawnCount 1 Support Limited PointTemplate { Name "null" ClassIcon bomb_recallcan } } WaveSpawn { Name "wave3a" Where spawnbot Where spawnbot_top WaitForAllDead "wave3a1" WaitBeforeStarting 3 WaitBetweenSpawns 3 TotalCount 3 MaxActive 3 SpawnCount 1 TotalCurrency 100 TFBot { Template T_TFBot_Giant_Soldier_WhiteBox } } WaveSpawn { Name "wave3a" WaitForAllDead "wave3a1" Where spawnbot_flank Where spawnbot WaitBeforeStarting 3 WaitBetweenSpawns 2 TotalCount 18 MaxActive 18 SpawnCount 3 TotalCurrency 72 TFBot { Template T_TFBot_Scout_HoustonHealer } } WaveSpawn { Name "wave3b1" WaitForAllDead "wave3a" WaitBeforeStarting 1 Where spawnbot TotalCount 1 MaxActive 1 SpawnCount 1 TotalCurrency 100 FirstSpawnOutput { Target zoom_path_2 Action AddOutput Param "OnPass !activator:RemoveHealth:10000:0.1:-1" } Tank { Health 5000 Name "zoom_tank" Speed 1850 Scale 0.5 StartingPathTrackNode "zoom_path_1" NoScreenShake 1 } } WaveSpawn { Name "wave3b" Where spawnbot_flank WaitForAllDead "wave3b1" TotalCount 15 MaxActive 15 SpawnCount 3 TotalCurrency 48 RandomChoice { TFBot { Template T_TFBot_Soldier_Badzooka } TFBot { Template T_TFBot_Soldier_Badzooka Name "Badzooka Soldier" } TFBot { Template T_TFBot_Soldier_Badzooka Name "x10 Bazooka Soldier" } TFBot { Template T_TFBot_Soldier_Badzooka Name "Soldier with Noclip" } } } WaveSpawn { Name "wave3c1" WaitForAllSpawned "wave3b" WaitBeforeStarting 1 StartWaveWarningSound "mvm/mvm_tank_start.wav" TotalCount 1 TotalCurrency 100 Tank { Name "droptank" Health 69337 Speed 1 Gravity 25 RotatePitch 0 StartingPathTrackNode "drop_path_1" SpawnTemplate "AirdropTank" ClassIcon tank2_para } } WaveSpawn { Name "wave3c2" Where spawnbot WaitForAllDead "wave3c1" WaitBeforeStarting 1 WaitBetweenSpawns 1 TotalCount 16 MaxActive 16 SpawnCount 4 TotalCurrency 70 TFBot { Template T_TFBot_Heavy_Brass_Fast } } WaveSpawn { Name "wave3c" Where spawnbot WaitForAllSpawned "wave3c2" TotalCount 2 MaxActive 2 SpawnCount 2 TotalCurrency 100 Squad { TFBot { Template T_TFBot_Giant_Demo_Laziebomb Skin 3 } TFBot { Template T_TFBot_Giant_Medic_Undercharge Skin 3 } } } WaveSpawn { Name "the poggers" Where "" TotalCount 4 MaxActive 1 SpawnCount 1 WaitBeforeStarting 5 WaitBetweenSpawnsAfterDeath 15 Support 1 TFBot { Template T_TFBot_Heavy_Pogchamp } } } //Unused: //- Barren //- Casino City //- Cyberia //- Dockyard //- Doppler //- Hideout //- Hoovy Dam //- Meltdown //- Metro //- Outlands //- Production //- Redstone Ridge //- Rust Valley //- Skullcove //- Silent Sky //- Snowpine //- Winterbridge //Subwave 1 //- Waterfront - "Caustic" Bowman //- Brugge - Carbine Sniper //- Oilrig - SMG Sniper //- Waterlogged - Jarate Sniper //- Steep - Ricochet Pyro //- Downpour - Fire Ring Heavy //- Oxidize - Freeze Flame Pyro //- Derelict - Rapid Fire Flare Pyro //- Frostwynd - Lesser Wizard (Scorch Shot Pyro) //- Transmission - Comfy Heavy //- Maple Hill - Lumberjack Heavy //- Area 52 - Jumping FaN Scout //- Coastrock - Kamikaze Sandman Scout //- Spacepost - Space Cadet //- Isolation - Bison Soldiers //- Radar - Parachute Air Striker //- Shiverpeak - Suppressor Heavy //- Underground - Rapid Fire Soldier (haha me) //- Powerplant - Natascha Heavy //POSITION RESET //Subwave 2 //- Giant Rapid Rapid ((Rapid)) Soldiers, position reset after each iteration //- Rapid Rapid Rapid Rapid Soldier -- absurd spammer SpawnTemplate Infwave_logic //Spawned before wave, on mission load. Wave //WAVE 4 - Infinity wave! { //Add info here through lua //Time Constraint : Wow, you REALLY broke the fabric of reality this time. //Time Constraint : I'm not even a Constraint anymore... //* Time Constraint has changed their name to Time Delimiter //Time Delimiter : Much better. //Time Delimiter : Now, let's see how you handle some blasts from the past. // Explanation // { // Line "{white}" // } InitWaveOutput { Target infwave_init_relay Action Trigger } StartWaveOutput { Target wavebar_reset_relay Action Trigger } DoneOutput { Target wave_finished_relay Action Trigger } WaveSpawn { Name "Remove first icon and proper wavebar reset" WaitBeforeStarting 0.05 TotalCount 1 SpawnCount 1 PointTemplate { Name "FakeIcon" IsMiniBoss 1 ClassIcon spammer } } WaveSpawn { Name "wave4a" //Waterfront Where spawnbot TotalCount 1 SpawnCount 1 TotalCurrency 1 TFBot { Class Sniper Name "Waterfront Caustic Bowman" Skill Hard Item "The Huntsman" Item "Letch's LED" ClassIcon sniper_bow_bleed WeaponRestrictions PrimaryOnly ItemAttributes { ItemName "The Huntsman" "damage bonus" 0.25 "bleeding duration" 10 } ItemAttributes { ItemName "Letch's LED" "set item tint RGB" 3329330 "attach particle effect" 9 } } } WaveSpawn { Name "wave4a" //Oilrig Where spawnbot WaitBeforeStarting 0.25 TotalCount 1 SpawnCount 1 TotalCurrency 1 TFBot { ClassIcon sniper_smg_tind //edit for an actually good icon Name "Oilrig Oil Injector" Class Sniper Skill Normal WeaponRestrictions SecondaryOnly ItemAttributes { ItemName tf_weapon_smg "damage bonus" 2 "fire rate bonus" 4 "slow enemy on hit major" 3 } Item "the anger" } } WaveSpawn { Name "wave4a" //Brugge Where spawnbot WaitBeforeStarting 0.5 TotalCount 1 SpawnCount 1 TotalCurrency 1 TFBot { Name "Brugge SMG Sniper" Class Sniper Skill Normal Item "The Cleaner's Carbine" ClassIcon sniper_carbine WeaponRestrictions SecondaryOnly } } WaveSpawn { Name "wave4a" //Waterlogged Where spawnbot WaitBeforeStarting 0.75 TotalCount 1 SpawnCount 1 TotalCurrency 1 TFBot { ClassIcon sniper_jarate Name "Waterlogged Jarate Tosser" Class Sniper WeaponRestrictions SecondaryOnly Attributes AlwaysFireWeapon Item "jarate" Item "desert marauder" CharacterAttributes { "effect bar recharge rate increased" .001 "fire rate bonus" 2 } } } WaveSpawn { Name "wave4a2" //Derelict Where spawnbot_top WaitBeforeStarting 1 TotalCount 1 SpawnCount 1 TotalCurrency 1 TFBot { Class Pyro Name "Derelict Rapid Flare Pyro" ClassIcon pyro_flare Skill Normal Item "The Flare Gun" Item "Old Guadalajara" WeaponRestrictions SecondaryOnly ItemAttributes { ItemName "The Flare Gun" "fire rate bonus" 0.3 } } } WaveSpawn { Name "wave4a2" //Frostwynd Where spawnbot WaitBeforeStarting 1.25 TotalCount 1 SpawnCount 1 TotalCurrency 1 TFBot { Class Pyro Name "Frostwynd Lesser Wizard" Skill Expert Health 750 Scale 1.3 ClassIcon pyro_scorch Item "The Scorch Shot" Item "Point and Shoot" WeaponRestrictions SecondaryOnly ItemAttributes { ItemName "The Scorch Shot" "damage bonus" 1.25 "fire rate bonus" 0.75 "faster reload rate" 1.25 "Projectile speed increased" 0.25 } } } WaveSpawn { Name "wave4a" //Downpour Where spawnbot WaitBeforeStarting 1.5 TotalCount 1 SpawnCount 1 TotalCurrency 1 TFBot { ClassIcon heavy_heater Name "Downpour Fire Ring Heavy" Class HeavyWeapons WeaponRestrictions PrimaryOnly Attributes "AlwaysFireWeapon" ItemAttributes { ItemName "the huo long heatmaker" "override projectile type" 27 "weapon burn time increased" 2 "damage bonus vs burning" 3 "minigun spinup time increased" 0.0001 "aiming movespeed decreased" 1.3 "minigun no spin sounds" 1 "fire rate penalty" 4 "killstreak tier" 1 "hand scale" 0 } Item "the huo long heatmaker" } } WaveSpawn { Name "wave4a" //Steep Where spawnbot WaitBeforeStarting 1.75 TotalCount 1 SpawnCount 1 TotalCurrency 1 TFBot { ClassIcon pyro_ricochet Name "Steep Ricochet Pyro" Class Pyro Skill Normal WeaponRestrictions PrimaryOnly Attributes "AlwaysFireWeapon" ItemAttributes { ItemName "the nostromo napalmer" "flame_speed" 3000 "flame_drag" 6 "max_flame_reflection_count" 30 "flame_reflect_on_collision" 2 "lunchbox adds minicrits" 2 } Item "the nostromo napalmer" Item "the electric escorter" } } WaveSpawn { Name "wave4a" //Oxidize Where spawnbot WaitBeforeStarting 2 TotalCount 1 SpawnCount 1 TotalCurrency 1 TFBot { ClassIcon pyro_freeze Name "Oxidize Freeze Flame Pyro" Class Pyro Skill Hard WeaponRestrictions PrimaryOnly Attributes "AlwaysFireWeapon" ItemAttributes { ItemName "festive flamethrower 2011" "slow enemy on hit" 1 "lunchbox adds minicrits" 1 "SPELL: Halloween green flames" 1 } Item "festive flamethrower 2011" Item "the b.m.o.c." Item "the ornament armament" } } WaveSpawn { Name "wave4a" //Transmission Where spawnbot WaitBeforeStarting 2.25 TotalCount 1 SpawnCount 1 TotalCurrency 1 TFBot { Class Heavyweapons Name "Transmission Comfy Heavy" ClassIcon heavy_bread Skill Hard Item "The Bread Bite" Item "Bread Heads" WeaponRestrictions MeleeOnly ItemAttributes { ItemName "The Bread Bite" "mod_maxhealth_drain_rate" 0 "speed_boost_on_kill" 5 "slow enemy on hit" 5 "move speed bonus" 0.7 } } } WaveSpawn { Name "wave4a" //MapleHill Where spawnbot WaitBeforeStarting 2.5 TotalCount 1 SpawnCount 1 TotalCurrency 1 TFBot { ClassIcon heavy_fist_nys //heavy_urgent - only tweak for modern standards...backwards as it is. Name "Maple Hill Heavy" Class Heavy MaxVisionRange 1 WeaponRestrictions SecondaryOnly Attributes DisableDodge Attributes AlwaysFireWeapon Item "the buffalo steak sandvich" Item "the outdoorsman" Item "the apparatchik's apparel" ItemAttributes { ItemName "the buffalo steak sandvich" "provide on active" 1 "move speed bonus" .1 "dmg from ranged reduced" .2 "dmg from melee increased" 5 "gesture speed increase" .6 "damage force reduction" 0 "airblast vulnerability multiplier" .1 "airblast vertical vulnerability multiplier" .1 } ItemAttributes { ItemName tf_weapon_fists "provide on active" 1 "hand scale" 1.4 "apply z velocity on damage" 600 "apply look velocity on damage" 1300 "fire rate bonus" 1.5 "effect bar recharge rate increased" .1 "voice pitch scale" 1.5 } } } WaveSpawn { Name "wave4a" //Spacepost Where spawnbot WaitBeforeStarting 2.75 TotalCount 1 SpawnCount 1 TotalCurrency 1 TFBot { ClassIcon scout_capper_nys Name "Spacepost Space Cadet" Class Scout Skill Normal WeaponRestrictions SecondaryOnly Item "the c.a.p.p.e.r" Item "cadet visor" } } WaveSpawn { Name "wave4a" //Coastrock Where spawnbot_top WaitBeforeStarting 3 TotalCount 1 SpawnCount 1 TotalCurrency 1 TFBot { Name "Coastrock Scout" Class Scout Health 300 Scale 1.3 Skill Hard ClassIcon scout_kamikaze WeaponRestrictions MeleeOnly AutoJumpMin 20 AutoJumpMax 20 //Slight change to make it less annoying. Attributes AutoJump Attributes Parachute Item "The B.A.S.E. Jumper" Item "The Sandman" Item "Flak Jack" Item "Transparent Trousers" ItemAttributes { ItemName "The Sandman" "damage bonus" 1.4 "effect bar recharge rate increased" 0.2 "max health additive penalty" 0 } CharacterAttributes { "bot custom jump particle" 1 "cancel falling damage" 1 "increased jump height" 2.4 //Slight change to make it less annoying. "move speed bonus" 0.8 } } } WaveSpawn { Name "wave4a" //Area52 Where spawnbot WaitBeforeStarting 3.25 TotalCount 1 SpawnCount 1 TotalCurrency 1 TFBot { ClassIcon scout_jumping_fan MaxVisionRange 1000 AutoJumpMin 5 AutoJumpMax 5 Name "Area 52 Jumping FaN Scout" Class Scout Skill Hard WeaponRestrictions PrimaryOnly Attributes "AutoJump" Attributes "AlwaysFireWeapon" ItemAttributes { ItemName "the force-a-nature" "weapon spread bonus" 0.5 "fire rate bonus" 2 "scattergun knockback mult" 1.25 } CharacterAttributes { "increased jump height" 2 "cancel falling damage" 1 } Item "the force-a-nature" Item "the hanger-on hood" Item "the flight of the monarch" } } WaveSpawn { Name "wave4a" //Isolation Where spawnbot WaitBeforeStarting 3.5 TotalCount 1 SpawnCount 1 TotalCurrency 1 RandomChoice { TFBot { Template T_TFBot_Soldier_Bison Name "Isolation Vampiric Ray Soldier" ItemAttributes { ItemName "the righteous bison" "set item tint RGB" 10027059 "subtract victim medigun charge on hit" 25 "subtract victim cloak on hit" 25 "damage all connected" 1 "heal on hit for rapidfire" 100 } ItemAttributes { ItemName "the crone's dome" "set item tint RGB" 10027059 } } TFBot { Template T_TFBot_Soldier_Bison Name "Isolation Rapid Ray Soldier" ItemAttributes { ItemName "the righteous bison" "set item tint RGB" 65280 "fire rate bonus" 0.25 "dmg penalty vs players" 0.75 } ItemAttributes { ItemName "the crone's dome" "set item tint RGB" 65280 } } TFBot { Template T_TFBot_Soldier_Bison Name "Isolation Slowing Ray Soldier" ItemAttributes { ItemName "the righteous bison" "set item tint RGB" 6723840 "slow enemy on hit" 100 "slow enemy on hit major" 6 } ItemAttributes { ItemName "the crone's dome" "set item tint RGB" 6723840 } } TFBot { Template T_TFBot_Soldier_Bison Name "Isolation Heat Ray Soldier" ItemAttributes { ItemName "the righteous bison" "set item tint RGB" 16750899 "fire rate bonus" 0.6 "Set DamageType Ignite" 1 } ItemAttributes { ItemName "the crone's dome" "set item tint RGB" 16750899 } } TFBot { Template T_TFBot_Soldier_Bison Name "Isolation Bleed Ray Soldier" ItemAttributes { ItemName "the righteous bison" "set item tint RGB" 10027008 "bleeding duration" 6 } ItemAttributes { ItemName "the crone's dome" "set item tint RGB" 10027008 } } } } WaveSpawn { Name "wave4a" //Radar WaitBeforeStarting 3.75 Where highspawn TotalCount 1 SpawnCount 1 TotalCurrency 1 TFBot { Class Soldier Skill Expert Name "Radar Air-Striker" ClassIcon soldier_airstrike_para Attributes Parachute Attributes AlwaysFireWeapon Item "the air strike" Item "the b.a.s.e. jumper" CharacterAttributes { "cancel falling damage" 1 "rocket jump damage reduction" 0 } } } WaveSpawn { Name "wave4a" //Powerplant Where spawnbot WaitBeforeStarting 4 TotalCount 1 SpawnCount 1 TotalCurrency 1 TFBot { ClassIcon heavy_natascha_grapple_nys Name "Powerplant Natascha Heavy" Class HeavyWeapons Skill Hard ItemAttributes { ItemName natascha "apply z velocity on damage" -75 "apply look velocity on damage" -75 } Item "natascha" } } WaveSpawn { Name "wave4a" //Shiverpeak Where spawnbot_flank WaitBeforeStarting 4.25 TotalCount 1 SpawnCount 1 TotalCurrency 1 TFBot { ClassIcon heavy_suppressor WeaponRestrictions PrimaryOnly Skill Expert Name "Shiverpeak Suppressor Heavy" Class HeavyWeapons ItemAttributes { ItemName "natascha" "bullets per shot bonus" 0.25 "weapon spread bonus" 0.25 } Item "natascha" Item "the eliminators safeguard" } } WaveSpawn { Name "wave4a" //Underground Where spawnbot Where spawnbot_flank WaitBeforeStarting 4.5 TotalCount 1 SpawnCount 1 TotalCurrency 2 //that's right my own template is worth TWICE as much TFBot { Name "Underground Rapid Fire Soldier" Class Soldier Skill Hard ClassIcon soldier_spammer WeaponRestrictions PrimaryOnly ItemAttributes { ItemName "tf_weapon_rocketlauncher" "faster reload rate" -0.8 "fire rate bonus" 0.625 "Projectile speed increased" 0.83 } } } WaveSpawn { Name "wavebar_restorer" WaitForAllDead "wave4a" FirstSpawnOutput { Target popscript Action $Spammer1 } DoneOutput { Target intel Action ForceResetSilent } } WaveSpawn { Name "wave4b" WaitForAllDead "wave4a" Where spawnbot WaitBeforeStarting 4 TotalCount 1 SpawnCount 1 TotalCurrency 110 DoneOutput { Target popscript Action $Spammer2 } RandomChoice { RandomChoice { TFBot { Template T_TFBot_Giant_Soldier_Spammer_Spammer } } } } WaveSpawn { Name "wave4c" WaitForAllDead "wave4b" Where spawnbot WaitBeforeStarting 4 TotalCount 1 SpawnCount 1 TotalCurrency 210 DoneOutput { Target popscript Action $Spammer3 } RandomChoice { RandomChoice { TFBot { Template T_TFBot_Giant_Soldier_Spammer_Spammer_Spammer } } } } WaveSpawn { Name "wave4d" WaitForAllDead "wave4c" Where spawnbot WaitBeforeStarting 4 TotalCount 1 SpawnCount 1 TotalCurrency 310 DoneOutput { Target popscript Action $Unconstraint } RandomChoice { RandomChoice { TFBot { Template T_TFBot_Giant_Soldier_Spammer_Infinite } } } } } // SpawnTemplate HLWaveRelay Wave //WAVE 5 - Half-Life simulation? { //Time Delimiter : What about even further back? //Time Delimiter : I'm thinking 1999. Real old-school stuff, here. InitWaveOutput { Target hl_wave_start_relay Action FireUser2 } StartWaveOutput { Target hl_wave_start_relay Action Trigger } DoneOutput { Target hl_wave_start_relay Action FireUser1 } WaveSpawn { Name "wave5a" Where spawnbot Where spawnbot_flank WaitBetweenSpawns 1.5 TotalCount 32 MaxActive 8 SpawnCount 2 TotalCurrency 160 TFBot { Template HECU_pistol } } WaveSpawn { Name "wave5a" Where spawnbot WaitBeforeStarting 3 WaitBetweenSpawns 4 TotalCount 24 MaxActive 8 SpawnCount 4 TotalCurrency 120 Squad { TFBot { Template HECU_shotgun } TFBot { Template HECU_smg } TFBot { Template HECU_smg } TFBot { Template HECU_smg } } } WaveSpawn { Name "wave5b1" Where spawnbot WaitBetweenSpawns 10 WaitForAllSpawned "wave5a" TotalCount 2 MaxActive 2 SpawnCount 1 TotalCurrency 80 TFBot { Template HECU_giant_saw } } WaveSpawn { Name "wave5b" Where spawnbot WaitBeforeStarting 10 WaitForAllSpawned "wave5b1" TotalCount 4 MaxActive 4 SpawnCount 4 TotalCurrency 160 Squad { TFBot { Template HECU_giant_saw } TFBot { Template HECU_heavy } TFBot { Template HECU_heavy } TFBot { Template HECU_heavy } } } WaveSpawn { Name "wave5b" Where spawnbot Where spawnbot_flank WaitForAllDead "wave5a" WaitBetweenSpawns 4 TotalCount 18 MaxActive 6 SpawnCount 2 TotalCurrency 90 TFBot { Template HECU_rpg } } WaveSpawn { Name "wave5b" Where spawnbot Where spawnbot_flank WaitForAllDead "wave5a" WaitBeforeStarting 1 WaitBetweenSpawns 3 TotalCount 18 MaxActive 6 SpawnCount 3 TotalCurrency 90 TFBot { Template HECU_shotgun } } WaveSpawn { Name "wave5c1" Where spawnbot_flank WaitForAllDead "wave5b" WaitBetweenSpawns 8 TotalCount 2 MaxActive 2 SpawnCount 1 TotalCurrency 100 TFBot { Template HECU_giant_rpg } } WaveSpawn { Name "wave5c" Where spawnbot_flank WaitForAllSpawned "wave5c1" DoneWarningSound "=45|syrup_sounds/military_is_crab.wav" WaitBeforeStarting 8 WaitBetweenSpawns 8 TotalCount 8 MaxActive 8 SpawnCount 4 TotalCurrency 400 Squad { NoWaitForFormation 1 TFBot { Template HECU_giant_rpg } TFBot { Template HECU_heavy } TFBot { Template HECU_heavy } TFBot { Template HECU_heavy } } } WaveSpawn { Name "Support" WaitForAllSpawned "wave5c1" Where spawnbot Where spawnbot_flank WaitBetweenSpawns 6 TotalCount 20 MaxActive 12 SpawnCount 4 Support 1 Squad { NoFormation 1 TFBot { Template HECU_smg } TFBot { Template HECU_smg } TFBot { Template HECU_smg } TFBot { Template HECU_rpg } } } } //Wave 7: The ERROR Wave //Subwave 1 //- Defunct Decoder - Giant Demo that shoots red pipes; no rotate, do not roll at all (gravity) //- Shortcoming Circuit - Shortstop Scout that ref-poses //- Erroneous Expert - Minigiant Soldier that THROWS rockets //Subwave 2 //- Perennial Parser - Giant Soldier Launcher Soldier, fires soldiers // + Maddening Megabyte - BigHeal Medic with Qfix on head //- Aimless Assembler - Sniper with prop that makes them always face one way ($fakeparent) // Sniper using both rifle and SMG, like in Alpine Skylines! //Subwave 3 //- The Vast Error - Stationary boss. // Fires random projectiles constantly. // Rapidly changes class (model). // On certain health thresholds: change overlay on player screen! //- Fast Error / Fast(er)ror - zoomy scout SpawnTemplate RandomBossIcon Wave //WAVE 7 - ERROR: wave_not_found { SpawnTemplate SniperModelLogic SpawnTemplate ErrorDeath Explanation { Line "{E74856}Error while loading file. It is possible a parsing error has occured." } InitWaveOutput { Target error_start_relay Action FireUser1 } StartWaveOutput { Target error_start_relay Action Trigger } DoneOutput { Target wave_finished_relay Action Trigger } WaveSpawn { Name "wave7a" Where spawnbot_flank WaitBeforeStarting 4 WaitBetweenSpawns 12 TotalCount 12 MaxActive 8 SpawnCount 4 TotalCurrency 100 Squad { NoFormation 1 TFBot { Template T_TFBot_Giant_Demoman Name "Defunct Decoder" Item "The Finder's Fee" ClassIcon demoman_missing ItemAttributes { ItemName "TF_WEAPON_GRENADELAUNCHER" "custom projectile model" models/empty.mdl } ItemAttributes { ItemName "The Finder's Fee" "attachment scale" 1.25 "attachment name" "head" "voice pitch scale" 0.01 } ShootTemplate //Shoot defined point template. Template is spawned at bot position in looking direction, forward velocity being applied to spawned entities { Name Errornade //Name of the template Speed 1100 //Velocity of the spawned objects AttachToProjectile 1 //If set, the template is spawned as a child of the projectile being fired. Incompatible with overrideshoot } } TFBot { Template T_TFBot_Soldier_ERROR } TFBot { Template T_TFBot_Soldier_ERROR } TFBot { Template T_TFBot_Soldier_ERROR } } } WaveSpawn { Name "wave7a2" WaitBetweenSpawns 2 Where spawnbot TotalCount 18 MaxActive 9 SpawnCount 3 TotalCurrency 100 TFBot { Name "Shortcoming Circuit" Class Scout Skill Normal ClassIcon scout_shortstop_missing Item "The Shortstop" // UseCustomModel "models/empty.mdl" ItemAttributes { ItemName "The Shortstop" // "custom item model" "models/bots/scout/bot_scout.mdl" // "attachment name" "" "voice pitch scale" 0.01 } Sequence { Name ref Delay 0.2 Repeats 0 } } } WaveSpawn { Name "wave7b" WaitForAllDead "wave7a" Where spawnbot TotalCount 9 MaxActive 9 SpawnCount 9 TotalCurrency 75 Squad { TFBot { Template T_TFBot_Giant_Soldier_SoldierLauncher } TFBot { Template T_TFBot_Medic_ERROR } TFBot { Template T_TFBot_Medic_ERROR } TFBot { Template T_TFBot_Medic_ERROR } TFBot { Template T_TFBot_Medic_ERROR } TFBot { Template T_TFBot_Medic_ERROR } TFBot { Template T_TFBot_Medic_ERROR } TFBot { Template T_TFBot_Medic_ERROR } TFBot { Template T_TFBot_Medic_ERROR } } } WaveSpawn { Name "wave7b" WaitForAllDead "wave7a2" Where spawnbot_top Where spawnbot_flank WaitBetweenSpawns 4 TotalCount 24 MaxActive 12 SpawnCount 12 TotalCurrency 120 TFBot { Template T_TFBot_Sniper_SMG_ERROR } } WaveSpawn { WaitForAllDead "wave7b" WaitBeforeStarting 2.25 StartWaveWarningSound "replay\cameracontrolerror.wav" FirstSpawnWarningSound "replay\cameracontrolerror.wav" } WaveSpawn { WaitForAllDead "wave7b" WaitBeforeStarting 2.55 StartWaveWarningSound "replay\cameracontrolerror.wav" FirstSpawnWarningSound "replay\cameracontrolerror.wav" } WaveSpawn { WaitForAllDead "wave7b" WaitBeforeStarting 2.75 StartWaveWarningSound "replay\cameracontrolerror.wav" FirstSpawnWarningSound "replay\cameracontrolerror.wav" } WaveSpawn { WaitForAllDead "wave7b" WaitBeforeStarting 3.25 StartWaveWarningSound "replay\cameracontrolerror.wav" FirstSpawnWarningSound "replay\cameracontrolerror.wav" } WaveSpawn { WaitForAllDead "wave7b" WaitBeforeStarting 3.4 StartWaveWarningSound "replay\cameracontrolerror.wav" FirstSpawnWarningSound "replay\cameracontrolerror.wav" } WaveSpawn { WaitForAllDead "wave7b" WaitBeforeStarting 3.6 StartWaveWarningSound "replay\cameracontrolerror.wav" FirstSpawnWarningSound "replay\cameracontrolerror.wav" } WaveSpawn { WaitForAllDead "wave7b" WaitBeforeStarting 3.8 StartWaveWarningSound "replay\cameracontrolerror.wav" FirstSpawnWarningSound "replay\cameracontrolerror.wav" } WaveSpawn { Name "wave7c" WaitForAllDead "wave7b" Where errorspawn FirstSpawnWarningSound "replay/cameracontrolerror.wav" WaitBeforeStarting 4 TotalCount 1 MaxActive 1 SpawnCount 1 TotalCurrency 250 TFBot { Class Soldier Name "The Vast Error" UseCustomModel "models/bots/heavy_boss/bot_heavy_boss.mdl" UseHumanAnimations 1 ClassIcon soldier Health 44444 Scale 5 Attributes UseBossHealthBar Attributes AlwaysFireWeapon Attributes MiniBoss Skill Expert Item "Upgradeable TF_WEAPON_ROCKETLAUNCHER" Action Mobber SpawnTemplate { Name ERRORBoss Bone "bip_head" } ItemAttributes { ItemName "Upgradeable TF_WEAPON_ROCKETLAUNCHER" "faster reload rate" 0 "fire rate penalty" 1.55 "no self blast dmg" 2 "blast radius decreased" 0.22 "no explosion particles" 1 "projectile speed decreased" 0.3 "mod projectile heat seek power" 90 "mod projectile heat aim error" 360 "mod projectile heat aim time" 5 "penetrate teammates" 1 } RocketCustomModel "models/error.mdl" CharacterAttributes { "move speed bonus" 0.05 "no_jump" 1 "damage force reduction" 0 "airblast vulnerability multiplier" 0 "voice pitch scale" 0.111 "not solid to players" 1 } } } WaveSpawn { WaitForAllDead "wave7c" WaitBeforeStarting 7.5 PointTemplate { Name "FakeIcon" } } WaveSpawn { Name "Support" WaitForAllDead "wave7b" Where errorspawn WaitBeforeStarting 6 WaitBetweenSpawns 5 TotalCount 11 MaxActive 11 SpawnCount 1 Support 1 RandomChoice { //4/5 bat scout, 1/5 mini super scout TFBot { Class Scout WeaponRestrictions MeleeOnly Name "Fast Error" ClassIcon scout_fast_missing Health 111 UseCustomModel "models/error.mdl" ItemModel // Replaces item model { ItemName "TF_WEAPON_BAT" Model "models/empty.mdl" } CharacterAttributes { "voice pitch scale" 0.11 } } TFBot { Class Scout WeaponRestrictions MeleeOnly Name "Fast Error" ClassIcon scout_fast_missing Health 111 UseCustomModel "models/error.mdl" ItemModel // Replaces item model { ItemName "TF_WEAPON_BAT" Model "models/empty.mdl" } CharacterAttributes { "voice pitch scale" 0.11 } } TFBot { Class Scout WeaponRestrictions MeleeOnly Name "Fast Error" ClassIcon scout_fast_missing Health 111 UseCustomModel "models/error.mdl" ItemModel // Replaces item model { ItemName "TF_WEAPON_BAT" Model "models/empty.mdl" } CharacterAttributes { "voice pitch scale" 0.11 } } TFBot { Class Scout WeaponRestrictions MeleeOnly Name "Fast Error" ClassIcon scout_fast_missing Health 111 UseCustomModel "models/error.mdl" ItemModel // Replaces item model { ItemName "TF_WEAPON_BAT" Model "models/empty.mdl" } CharacterAttributes { "voice pitch scale" 0.11 } } TFBot { Class Scout WeaponRestrictions MeleeOnly Name "Fast(Er)ror" ClassIcon scout_fast_missing Health 333 Scale 1.22 UseCustomModel "models/error.mdl" ItemModel // Replaces item model { ItemName "TF_WEAPON_BAT" Model "models/empty.mdl" } CharacterAttributes { "move speed bonus" 1.3 "health regen" 3 "voice pitch scale" 0.11 } } } } WaveSpawn { Name "Support" Where engiespawn4 WaitForAllDead "wave7a" WaitBeforeStarting 2 WaitBetweenSpawns 15 TotalCount 30 MaxActive 7 SpawnCount 4 Support 1 Squad { NoFormation 1 TFBot //Giant Punchy that sticks to bots { Template T_TFBot_Heavyweapons_Heavyweight_Champ_Fast Name "Program Pummeler" Skill Expert Health 5000 Attributes MiniBoss ClassIcon red2_lite Item "The Finder's Fee" Action Mobber ItemAttributes { ItemName "The Finder's Fee" "attachment name" "head" "attachment scale" 1.25 "attachment offset" "0 0 20" "voice pitch scale" 0.11 } ItemAttributes { ItemName "Gloves of Running Urgently MvM" "mult smack time" 0.25 //.05 sec "melee attack rate bonus" 0.1 "gesture speed increase" 0.05 } CharacterAttributes { "move speed penalty" 0.5 "damage force reduction" 0.3 } AddCond { Name "TF_COND_REPROGRAMMED" Delay 0 } } TFBot { Template T_TFBot_Giant_Soldier_Extended_Concheror Name "Byte-Bashing Buffer" Action Mobber ClassIcon red2_lite ItemAttributes { ItemName "TF_WEAPON_ROCKETLAUNCHER" "faster reload rate" 0 "fire rate bonus" 0.75 } ItemAttributes { ItemName "The Concheror" "mod soldier buff range" 2 "effect cond override" 1055261 //29 + 26*256 + 16*65536 } CharacterAttributes { "deploy time increased" 0.5 } AddCond { Name "TF_COND_REPROGRAMMED" Delay 0 } } TFBot //Heavy that focuses boss { Class Heavyweapons Name "CTRL-Z" Skill Expert UseHumanModel 1 Action Mobber Item "Deflector" Item "The Finder's Fee" ClassIcon red2_lite ItemAttributes { ItemName "Deflector" "damage bonus" 1.5 "attack projectiles" 1 "projectile penetration" 1 "heal on kill" 100 "health regen" 5 } CharacterAttributes { "dmg taken from blast reduced" 0.5 "dmg taken from bullets reduced" 0.5 "move speed bonus" 1.3 } AddCond { Name "TF_COND_REPROGRAMMED" Delay 0 } } TFBot //Pyro that stays near bomb { Class Pyro Name "Error Exterminator" Skill Expert Action FetchFlag UseHumanModel 1 Item "Upgradeable TF_WEAPON_FLAMETHROWER" Item "The Finder's Fee" ClassIcon red2_lite ItemAttributes { ItemName "Upgradeable TF_WEAPON_FLAMETHROWER" "slow enemy on hit major" 1 "heal on kill" 100 "health regen" 5 } AddCond { Name "TF_COND_REPROGRAMMED" Delay 0 } } } } } }