// mission by randomguy #base robot_standard.pop #base robot_giant.pop // #base robot_randomguy_new.pop #base custom_weapons_randomguy.pop // #base judge_restricts_v2.pop // NOTES: WaveSchedule { CanBotsAttackWhileInSpawnRoom NO // Yes // no RespawnWaveTime 2 StartingCurrency 9999 // 400 AddSentryBusterWhenDamageDealtExceeds 2500 // 3000 >:) AddSentryBusterWhenKillCountExceeds 12 // 15 >:) // EventPopFile Halloween // ZombiesNo666 //Ideally the ONLY rafmod in this mission // ^ thanks to PDA thse are uneccessary ujel // rafmod just for the fastdl stuff to work: PrecacheModel models/bots/boss_bot/paintable_tank_v2/boss_tank.mdl PrecacheModel models/bots/boss_bot/paintable_tank_v2/boss_tank_damage1.mdl PrecacheModel models/bots/boss_bot/paintable_tank_v2/boss_tank_damage2.mdl PrecacheModel models/bots/boss_bot/paintable_tank_v2/boss_tank_damage3.mdl PrecacheModel models/bots/boss_bot/paintable_tank_v2/tank_track_L.mdl PrecacheModel models/bots/boss_bot/paintable_tank_v2/tank_track_R.mdl PrecacheModel models/bots/boss_bot/paintable_tank_v2/bomb_mechanism.mdl // fix rafmod fix stacking with popext fix: FixHuntsmanDamageBonus 0 // Fix huntsman damage bonus upgrade so it is applied correctly. Does not affect huntsman bots (default: 0) Templates { Boss_But_Now_With_Phases { Class Soldier Name "Soul Hive" ClassIcon soldier_hyper_lite Health 40000 // 35000 // 30000 // 35000 Attributes MiniBoss AutoJumpMin 2 AutoJumpMax 4 Tag boss_soldier EventChangeAttributes { Default { // CONSTANT Attributes MiniBoss Attributes UseBossHealthBar Skill Expert Tag boss_soldier CharacterAttributes { "move speed bonus" 0.5 "damage force reduction" 0.4 "airblast vulnerability multiplier" 0.4 "override footstep sound set" 3 "cancel falling damage" 1 } Item "The Horsemann's Hand-Me-Down" Item "The Manneater" Item "Supernatural Stalker" ItemAttributes { ItemName "Supernatural Stalker" // "attach particle effect" 44 } // PHASE EXCLUSIVE WeaponRestrictions PrimaryOnly Item "Blood Botkiller Rocket Launcher Mk.I" ItemAttributes { ItemName "Blood Botkiller Rocket Launcher Mk.I" "faster reload rate" -0.8 "fire rate bonus" 0.5 "Projectile speed increased" 0.65 } } Attr1 { // CONSTANT Attributes MiniBoss Attributes UseBossHealthBar Skill Expert Tag boss_soldier CharacterAttributes { "move speed bonus" 0.5 "damage force reduction" 0.4 "airblast vulnerability multiplier" 0.4 "override footstep sound set" 3 "cancel falling damage" 1 } Item "The Horsemann's Hand-Me-Down" Item "The Manneater" Item "Supernatural Stalker" ItemAttributes { ItemName "Supernatural Stalker" // "attach particle effect" 44 } // PHASE EXCLUSIVE WeaponRestrictions PrimaryOnly Item "Blood Botkiller Rocket Launcher Mk.I" ItemAttributes { ItemName "Blood Botkiller Rocket Launcher Mk.I" "faster reload rate" -0.8 "fire rate bonus" 0.5 "Projectile speed increased" 0.65 "damage penalty" 0.75 "damage causes airblast" 1 } } Attr2 { // CONSTANT Attributes MiniBoss Attributes UseBossHealthBar Skill Expert Tag boss_soldier CharacterAttributes { "move speed bonus" 0.5 "damage force reduction" 0.4 "airblast vulnerability multiplier" 0.4 "override footstep sound set" 3 "cancel falling damage" 1 } Item "The Horsemann's Hand-Me-Down" Item "The Manneater" Item "Supernatural Stalker" ItemAttributes { ItemName "Supernatural Stalker" // "attach particle effect" 44 } // PHASE EXCLUSIVE Item "Blood Botkiller Rocket Launcher Mk.I" WeaponRestrictions PrimaryOnly Attributes HoldFireUntilFullReload ItemAttributes { ItemName "Blood Botkiller Rocket Launcher Mk.I" "faster reload rate" 0.4 "fire rate bonus" 0.2 "clip size upgrade atomic" 5.0 "Projectile speed increased" 0.9 } } Attr3 { // CONSTANT Attributes MiniBoss Attributes UseBossHealthBar Skill Expert Tag boss_soldier CharacterAttributes { "move speed bonus" 0.5 "damage force reduction" 0.4 "airblast vulnerability multiplier" 0.4 "override footstep sound set" 3 "cancel falling damage" 1 } Item "The Horsemann's Hand-Me-Down" Item "The Manneater" Item "Supernatural Stalker" ItemAttributes { ItemName "Supernatural Stalker" // "attach particle effect" 44 } // PHASE EXCLUSIVE Item "Blood Botkiller Rocket Launcher Mk.I" WeaponRestrictions PrimaryOnly Attributes HoldFireUntilFullReload Attributes AutoJump ItemAttributes { ItemName "Blood Botkiller Rocket Launcher Mk.I" "fire rate bonus" 0.2 "clip size upgrade atomic" 5.0 "faster reload rate" -0.8 "Projectile speed increased" 0.65 } CharacterAttributes { "increased jump height" 5 } } } } T_TFBot_Soldier_Escape_Plan { Name "Pickaxe Soldier" Class Soldier Skill Expert ClassIcon soldier_pickaxe_dual WeaponRestrictions MeleeOnly Item "The Escape Plan" // Item "Idiot Box" // Item "Steel Pipes" // Item "Shoestring Budget" } T_TFBot_Soldier_Equalizer { Name "Pickaxe Soldier" Class Soldier Skill Expert ClassIcon soldier_pickaxe_dual WeaponRestrictions MeleeOnly Item "The Equalizer" // Item "Idiot Box" // Item "Steel Pipes" // Item "Shoestring Budget" } T_TFBot_Soldier_SlowBarrage { ClassIcon soldier_barrage Name "Barrage Soldier" Class Soldier Skill Normal WeaponRestrictions PrimaryOnly Attributes HoldFireUntilFullReload // Item "Idiot Box" // Item "Steel Pipes" // Item "Shoestring Budget" Health 800 scale 1.5 ItemAttributes { ItemName tf_weapon_rocketlauncher "fire rate bonus" 0.2 "Projectile speed increased" 0.4 "faster reload rate" 0.8 "clip size bonus" 2 "projectile spread angle penalty" 3 } CharacterAttributes { "rocket jump damage reduction" 0 "cancel falling damage" 1 "head scale" 0.7 } } T_TFBot_Giant_Pyro_DragonFury { Template T_TFBot_Giant_Pyro ClassIcon pyro_dragon_fury_swordstone // custom icon Name "Dragonic Fury" Item "The Dragon's Fury" MaxVisionRange 600 Item "Blazing Bull" Item "Fallen Angel" Item "Tail From the Crypt" ItemAttributes { ItemName "The Dragon's Fury" item_meter_charge_rate 0.5 } } T_TFBot_Medic_Kritz // YoovyBot_Medic_Kritzkrieg //I like to keep T_TFBot format. OG template by Yoovy. { // TFBot Class Medic Name "Kritzkrieg Medic" ClassIcon medic_kritz Attributes SpawnWithFullCharge // Attributes AlwaysCrit CharacterAttributes { "bot medic uber health threshold" 1987 } // Weapons Item "The Kritzkrieg" ItemAttributes { ItemName "The Kritzkrieg" "uber duration bonus" 3582 } // Cosmetics Item "The Combat Medic's Crusher Cap" } T_TFBot_Medic_Bigheal_Improved // I AM A STURGEON. { Template T_TFBot_Medic_Bigheal Name "Bigheal Medic" Item "The Surgeon's Stahlhelm" ClassIcon medic_quickfix_seel2 } T_TFBot_Soldier_TriRocket // more offensive blackbox soldier. { Class Soldier ClassIcon soldier_rocketshotgun_lite Item "The Black Box" Name "Trirocket Soldier" Skill Normal WeaponRestrictions PrimaryOnly Attributes HoldFireUntilFullReload Item "Private Maggot Muncher" Item "Hawk Warrior" ItemAttributes { ItemName "The Black Box" // "damage bonus" 0.75 "fire rate bonus" 0.001 "clip size upgrade atomic" 0 "faster reload rate" 0.9 "Projectile speed increased" 0.65 "projectile spread angle penalty" 3 } CharacterAttributes { "rocket jump damage reduction" 0 } } T_TFBot_Heavyweapons_Heavyweight_Champ_Steel // by me { Class Heavyweapons Name "Steel Manlet" Skill Easy ClassIcon heavy_steelfist WeaponRestrictions MeleeOnly Item "Fists of Steel" Item "The U-clank-a" } } Mission { Objective Spy InitialCooldown 45 Where spawnbot BeginAtWave 2 RunForThisManyWaves 1 CooldownTime 30 DesiredCount 2 TFBot { Template T_TFBot_Spy } } Mission { Objective Spy InitialCooldown 25 Where spawnbot BeginAtWave 5 RunForThisManyWaves 1 CooldownTime 40 DesiredCount 2 TFBot { Template T_TFBot_Spy } } // Mission // { // Objective Sniper // Where spawnbot_mission_sniper // BeginAtWave 1 // RunForThisManyWaves 1 // InitialCooldown 45 // CooldownTime 30 // DesiredCount 2 // TFBot // { // Template T_TFBot_Sniper // } // } Mission { Objective Sniper Where spawnbot_mission_sniper BeginAtWave 3 RunForThisManyWaves 1 InitialCooldown 20 CooldownTime 45 DesiredCount 3 TFBot { Template T_TFBot_Sniper } } Mission // :catastrophic: { Objective Sniper Where spawnbot_mission_sniper BeginAtWave 4 RunForThisManyWaves 1 InitialCooldown 5 CooldownTime 25 DesiredCount 2 TFBot { Template T_TFBot_Sniper } } Mission { Objective Sniper Where spawnbot_mission_sniper BeginAtWave 6 RunForThisManyWaves 1 InitialCooldown 10 CooldownTime 45 DesiredCount 2 TFBot { Template T_TFBot_Sniper_Sydney_Sleeper } } Mission { Objective Engineer Where spawnbot BeginAtWave 4 RunForThisManyWaves 1 InitialCooldown 10 CooldownTime 60 DesiredCount 1 TFBot { Template T_TFBot_Engineer_Sentry_Battle_TeleIn Item "A Shell of a Mann" Item "Dell in the Shell" } } // Mission // { // Objective DestroySentries // Where spawnbot // InitialCooldown 30 // CooldownTime 30 // BeginAtWave 1 // RunForThisManyWaves 10 // TFBot // { // Template T_TFBot_SentryBuster // Name "Brainz Buster" // CharacterAttributes // { // "gesture speed increase" 1.3 // } // } // } // WAVE 1 //////////CURRENCY 1000/////////////////////////////////// Wave { StartWaveOutput { Target wave_start_relay Action Trigger } DoneOutput { Target wave_finished_relay Action trigger } InitWaveOutPut // this mission is the first vscript project i really did so a lot of stuff is really weird, don't look here for help. { Target wave_start_relay Action RunScriptCode Param " IncludeScript (`mvm_underworld_rc2_int_astral_projection_vscripts`) EntFire(`func_upgradestation`, `enable`); //should fix the annoying bug where sometimes these are disabled on start. // IncludeScript(`popextensions_main`, getroottable()) //POPEXTPLUS // //POPEXTPLUS MISSION ATTRIBUTES: // MissionAttrs // ({ // `NoCrumpkins`: 1 //disable those orange critcans. // `NoRome`: 2 //SHOULD disable rome'd tank AND cosmetics. // `BotsAreHumans`: 130 //Zombies. // `HuntsmanDamageFix`: 1 //Auto disabled for potato compatibility. Disabling potato's one and enabling this. // }) //PRECACHE: Precache() " } // WaveSpawn // { // Name stage1 // Where spawnbot // TotalCount 48 // MaxActive 12 // SpawnCount 3 // 6 // WaitBeforeStarting 0 // WaitBetweenSpawns 4 // 8 // TotalCurrency 200 // Randomchoice // { // TFBot // { // Template T_TFBot_Soldier_Equalizer // } // TFBot // { // Template T_TFBot_Soldier_Escape_Plan // } // TFBot // { // Template T_TFBot_Soldier_Escape_Plan // } // TFBot // { // Template T_TFBot_Soldier_Escape_Plan // } // } // } // WaveSpawn // { //// Name stage1 // Where spawnbot_invasion // TotalCount 350 // MaxActive 4 // SpawnCount 2 // WaitBeforeStarting 1 // WaitBetweenSpawns 5 // TotalCurrency 350 // RandomSpawn 1 // Support 1 // TFBot // { // Class Soldier // WeaponRestrictions SecondaryOnly // ClassIcon heavy_shotgun // Name "Shotgun Soldier" //// Item "Supernatural Stalker" // } // } // WaveSpawn // { //// Name stage1 // Where spawnbot_side // TotalCount 6 // MaxActive 3 // SpawnCount 1 // WaitBeforeStarting 5 // WaitBetweenSpawns 24 // 25 // TotalCurrency 150 // TFBot // { // Template T_TFBot_HeavyWeapons_Fist // Item "Halloween Spellbook" // ClassIcon heavy_steelfist_fireballblue // Name "Fire-Casting Steel Gauntlet" //// Item "Point and Shoot" //// Item "Bull Locks" //// Item "Immobile Suit" //// Tag popext_spell|0|9|2|5 // Tag "popext_spell{type = SPELL_FIREBALL, cooldown = 9, delay = 10, repeats = 5}" // ItemAttributes // { // ItemName "Halloween Spellbook" // "dmg penalty vs buildings" 10 // 100 damage vs buildings // } // CharacterAttributes // { // "cancel falling damage" 1 // } // } // } WaveSpawn // older pacing structure; replaced by the next 2 wavespawns { Name stage2 WaitForAllSpawned stage1 Where spawnbot TotalCount 16 MaxActive 9 // 8 SpawnCount 4 WaitBeforeStarting 15 WaitBetweenSpawns 15 TotalCurrency 300 Squad { TFBot { Template T_TFBot_Soldier_SlowBarrage } // TFBot // { // Class Soldier // WeaponRestrictions SecondaryOnly //// ClassIcon shotgun_nys // ClassIcon heavy_shotgun_giant // Name "Shotgun Soldier" //// Item "Supernatural Stalker" // } // TFBot // { // Class Soldier // WeaponRestrictions SecondaryOnly //// ClassIcon shotgun_nys // ClassIcon heavy_shotgun_giant // Name "Shotgun Soldier" //// Item "Supernatural Stalker" // } // TFBot // { // Class Soldier // WeaponRestrictions SecondaryOnly //// ClassIcon shotgun_nys // ClassIcon heavy_shotgun_giant // Name "Shotgun Soldier" //// Item "Supernatural Stalker" // } } } // WaveSpawn //old pacing strcuture; replaced by wavespawn above // { // Name stage2 // WaitForAllSpawned stage1 // Where spawnbot // TotalCount 8 // MaxActive 4 // SpawnCount 4 // WaitBeforeStarting 15 // WaitBetweenSpawns 0 // TotalCurrency 150 // Squad // { // TFBot // { // Template T_TFBot_Soldier_SlowBarrage // } // TFBot // { // Class Soldier // WeaponRestrictions SecondaryOnly // ClassIcon shotgun_nys // Name "Shotgun Soldier" // } // TFBot // { // Class Soldier // WeaponRestrictions SecondaryOnly // ClassIcon shotgun_nys // Name "Shotgun Soldier" // } // TFBot // { // Class Soldier // WeaponRestrictions SecondaryOnly // ClassIcon shotgun_nys // Name "Shotgun Soldier" // } // } // } // WaveSpawn // { // Name stage2 // WaitForAllSpawned stage1 // Where spawnbot // TotalCount 8 // MaxActive 4 // SpawnCount 4 // WaitBeforeStarting 30 // WaitBetweenSpawns 0 // TotalCurrency 150 // Squad // { // TFBot // { // Template T_TFBot_Soldier_SlowBarrage // } // TFBot // { // Class Soldier // WeaponRestrictions SecondaryOnly // ClassIcon shotgun_nys // Name "Shotgun Soldier" // } // TFBot // { // Class Soldier // WeaponRestrictions SecondaryOnly // ClassIcon shotgun_nys // Name "Shotgun Soldier" // } // TFBot // { // Class Soldier // WeaponRestrictions SecondaryOnly // ClassIcon shotgun_nys // Name "Shotgun Soldier" // } // } // } // WaveSpawn // Cut mainly for maxactive tbh // { // Name stage2 // WaitForAllSpawned stage1 // Where spawnbot_invasion // TotalCount 24 // MaxActive 8 // SpawnCount 2 // WaitBeforeStarting 20 // WaitBetweenSpawns 2 // TotalCurrency 150 // Support Limited // Randomchoice // { // TFBot // { // Template T_TFBot_Soldier_Equalizer // ClassIcon soldier_pickaxe_dual_giant // } // TFBot // { // Template T_TFBot_Soldier_Escape_Plan // ClassIcon soldier_pickaxe_dual_giant // } // TFBot // { // Template T_TFBot_Soldier_Escape_Plan // ClassIcon soldier_pickaxe_dual_giant // } // TFBot // { // Template T_TFBot_Soldier_Escape_Plan // ClassIcon soldier_pickaxe_dual_giant // } // } // } } // WAVE 2 //////////CURRENCY 900/////////////////////////////////// Wave // FORCE TO bombpath_right_relay { StartWaveOutput { Target wave_start_relay Action Trigger } DoneOutput { Target wave_start_relay Action RunScriptCode // //i found these two slashes here when adding cosmetics. huh. Param " EntFire(`wave_finished_relay`, `trigger`) EntityOutputs.AddOutput(Entities.FindByName(null, `bombpath_choose_1_case`), `OnCase01`,`bombpath_left_relay`,`Trigger`, null,0,-1)//unforce path for next waves. " } InitWaveOutPut { Target wave_start_relay Action RunScriptCode Param " IncludeScript (`mvm_underworld_rc2_int_astral_projection_vscripts`) EntFire(`func_upgradestation`, `enable`); //should fix the annoying bug where sometimes these are disabled on start. EntityOutputs.RemoveOutput(Entities.FindByName(null, `bombpath_choose_1_case`), `OnCase01`,`bombpath_left_relay`,`Trigger`, null) //remove left path, forcing right path // IncludeScript(`popextensions_main`, getroottable()) //POPEXTPLUS // //POPEXTPLUS MISSION ATTRIBUTES: // MissionAttrs // ({ // `NoCrumpkins`: 1 //disable those orange critcans. // `NoRome`: 2 //SHOULD disable rome'd tank AND cosmetics. // `BotsAreHumans`: 130 //Zombies. // `HuntsmanDamageFix`: 1 //Auto disabled for potato compatibility. Disabling potato's one and enabling this. // }) //PRECACHE: Precache() //CUSTOM TANK COLOUR: IncludeScript(`tankextensions_main`, getroottable()) IncludeScript(`tankextensions/painttank`, getroottable()) TankExt.SetValueOverrides //Only doing this cause i'm obsessed with never needing to update the precaching again. ({ PAINTTANK_MODEL_COLOR = `models/bots/boss_bot/paintable_tank_v2/boss_tank.mdl` PAINTTANK_MODEL_COLOR_DAMAGE1 = `models/bots/boss_bot/paintable_tank_v2/boss_tank_damage1.mdl` PAINTTANK_MODEL_COLOR_DAMAGE2 = `models/bots/boss_bot/paintable_tank_v2/boss_tank_damage2.mdl` PAINTTANK_MODEL_COLOR_DAMAGE3 = `models/bots/boss_bot/paintable_tank_v2/boss_tank_damage3.mdl` PAINTTANK_MODEL_COLOR_TRACK_L = `models/bots/boss_bot/paintable_tank_v2/tank_track_l.mdl` PAINTTANK_MODEL_COLOR_TRACK_R = `models/bots/boss_bot/paintable_tank_v2/tank_track_r.mdl` PAINTTANK_MODEL_COLOR_BOMB = `models/bots/boss_bot/paintable_tank_v2/bomb_mechanism.mdl` }) //APPLY TANK MODEL AND COLOUR: //PopExt.AddTankName(`tankboss`, { //OnSpawn = function(tank, name) { //tank.KeyValueFromString(`rendercolor`, `255 50 50`) //^tank 'shell' //for (local child = tank.FirstMoveChild(); child != null; child = child.NextMovePeer()) { //if (child.GetModelName() == `models/bots/boss_bot/paintable_tank_v2/bomb_mechanism.mdl`) { //child.KeyValueFromString(`rendercolor`, `255 50 50`) //} //} //^tank bomb //for (local child = tank.FirstMoveChild(); child != null; child = child.NextMovePeer()) { //if (child.GetModelName() == `models/bots/boss_bot/paintable_tank_v2/tank_track_R.mdl`) { //child.KeyValueFromString(`rendercolor`, `255 50 50`) //} //} //for (local child = tank.FirstMoveChild(); child != null; child = child.NextMovePeer()) { //if (child.GetModelName() == `models/bots/boss_bot/paintable_tank_v2/tank_track_L.mdl`) { //child.KeyValueFromString(`rendercolor`, `255 50 50`) //} //} //^both sets of tank tracks //inefficient way of doing this, as there are three for loops. //Do i care? no. the efficient way i thought of spits a big error and i don't like that. //} //TankModel = { //Default = `models/bots/boss_bot/paintable_tank_v2/boss_tank.mdl` //Damage1 = `models/bots/boss_bot/paintable_tank_v2/boss_tank_damage1.mdl` //Damage2 = `models/bots/boss_bot/paintable_tank_v2/boss_tank_damage2.mdl` //Damage3 = `models/bots/boss_bot/paintable_tank_v2/boss_tank_damage3.mdl` //LeftTrack = `models/bots/boss_bot/paintable_tank_v2/tank_track_L.mdl` //RightTrack = `models/bots/boss_bot/paintable_tank_v2/tank_track_R.mdl` //Bomb = `models/bots/boss_bot/paintable_tank_v2/bomb_mechanism.mdl` //} //}) " } WaveSpawn { Name stage1 Where spawnbot_invasion TotalCount 42 MaxActive 12 SpawnCount 6 WaitBeforeStarting 1 WaitBetweenSpawns 5 // 6 //8 TotalCurrency 200 Randomchoice // use popextcustom model for skellies here. { TFBot { Class Sniper WeaponRestrictions MeleeOnly ClassIcon dead_blu_lite // Tag uses_fists // other weapons appear in hands and look weird. Cba'd to make this a heavy with sniper stats. Name Skeleton // Tag popext_usecustommodel|models/bots/skeleton_sniper/skeleton_sniper.mdl Tag "popext_usecustommodel{ model = `models/bots/skeleton_sniper/skeleton_sniper.mdl`}" // Tag popext_deathsound|misc/halloween/skeleton_break.wav Tag "popext_deathsound{ sound = `misc/halloween/skeleton_break.wav`}" // Tag popext_setskin|1 Tag "popext_setskin{ skin = 1}" // Tag popext_giveweapon|tf_weapon_fists|5 Tag "popext_giveweapon{ weapon = `tf_weapon_fists` id = `5`}" Health 200 Scale 1.2 CharacterAttributes { "voice pitch scale" 0 // disables voicelines } } TFBot { Class Sniper WeaponRestrictions MeleeOnly ClassIcon dead_blu_lite // Tag uses_fists // other weapons appear in hands and look weird. Cba'd to make this a heavy with sniper stats. Name "Astral Invader" // Tag popext_usecustommodel|models/bots/skeleton_sniper/skeleton_sniper.mdl Tag "popext_usecustommodel{ model = `models/bots/skeleton_sniper/skeleton_sniper.mdl`}" // Tag popext_deathsound|misc/halloween/skeleton_break.wav Tag "popext_deathsound{ sound = `misc/halloween/skeleton_break.wav`}" // Tag popext_setskin|1 Tag "popext_setskin{ skin = 1}" // Tag popext_giveweapon|tf_weapon_fists|5 Tag "popext_giveweapon{ weapon = `tf_weapon_fists` id = `5`}" Health 200 Scale 1.2 CharacterAttributes { "voice pitch scale" 0 // disables voicelines } } TFBot { Class Sniper WeaponRestrictions MeleeOnly ClassIcon dead_blu_lite // Tag uses_fists // other weapons appear in hands and look weird. Cba'd to make this a heavy with sniper stats. Name "Damned Soul" // Tag popext_usecustommodel|models/bots/skeleton_sniper/skeleton_sniper.mdl Tag "popext_usecustommodel{ model = `models/bots/skeleton_sniper/skeleton_sniper.mdl`}" // Tag popext_deathsound|misc/halloween/skeleton_break.wav Tag "popext_deathsound{ sound = `misc/halloween/skeleton_break.wav`}" // Tag popext_setskin|1 Tag "popext_setskin{ skin = 1}" // Tag popext_giveweapon|tf_weapon_fists|5 Tag "popext_giveweapon{ weapon = `tf_weapon_fists` id = `5`}" Health 200 Scale 1.2 CharacterAttributes { "voice pitch scale" 0 // disables voicelines } } } } WaveSpawn { Name stage1g Where spawnbot TotalCount 2 MaxActive 2 SpawnCount 1 WaitBeforeStarting 0 WaitBetweenSpawns 30 // 35 //45 TotalCurrency 100 TFBot { Template T_TFBot_Giant_Soldier_Spammer_Reload // Crit Item "The Freedom Feathers" Item "Private Maggot Muncher" CharacterAttributes { "rocket jump damage reduction" 0 "cancel falling damage" 1 } } } WaveSpawn { Where spawnbot_side TotalCount 8 MaxActive 3 SpawnCount 1 WaitBeforeStarting 5 WaitBetweenSpawns 15 TotalCurrency 100 Support 1 TFBot { Class Scout Name "Jumbo Forge Scout" Health 450 Scale 1.5 ClassIcon scout_homewrecker WeaponRestrictions MeleeOnly // Tag uses_homewrecker // Tag popext_giveweapon|tf_weapon_fireaxe|153 Tag "popext_giveweapon{ weapon = `tf_weapon_fireaxe` id = `153`}" Item "The Person in the Iron Mask" CharacterAttributes { "cancel falling damage" 1 "head scale" 0.7 } } } // add more, out of ideas rn // bonks and tank. WaveSpawn { WaitForAllSpawned stage1 Where spawnbot_side TotalCount 48 MaxActive 16 SpawnCount 8 WaitBeforeStarting 15 WaitBetweenSpawns 5 // 10 TotalCurrency 200 TFBot { Template T_TFBot_Scout_Bonk ClassIcon scout_bonk_nys Item "The Spooky Shoes" Item "The Spooky Sleeves" } } // WaveSpawn // tanks split cause rafmod bug which causes totalcount > 1 tank wavespawns to drop money incorrectly. (ie TotalCount 2 TotalCurrency 200 will drop 100 from first tank and 0 from second tank, making the team lose $100 through no fault of their own.) // { // WaitForAllSpawned stage1 // WaitForAllDead stage1g // TotalCount 1 // SpawnCount 1 // WaitBeforeStarting 0 // TotalCurrency 120 // Tank // { // Name Tankboss // Health 10000 // 12000 // Speed 75 // StartingPathTrackNode boss_path_1 // Skin 0 // OnKilledOutput // { // Target boss_dead_relay // Action Trigger // } // OnBombDroppedOutput // { // Target boss_deploy_relay // Action Trigger // } // } // FirstSpawnOutPut // { // Target wave_start_relay // Action RunScriptCode // Param " // ClientPrint(null,3,`\x07FF1234Tank deployed with 10k (10000) HP!`) // " // } // } WaveSpawn { WaitForAllSpawned stage1 WaitForAllDead stage1g TotalCount 1 SpawnCount 1 WaitBeforeStarting 30 TotalCurrency 240 // 120 Tank { Name "painttank|255 50 50" Health 13333 // 10000 // 12000 Speed 70 // 75 StartingPathTrackNode boss_path_1 Skin 0 OnBombDroppedOutput { Target boss_deploy_relay Action Trigger } } FirstSpawnOutPut { Target wave_start_relay Action RunScriptCode Param " ClientPrint(null,3,`\x07FF1234Tank deployed with 13.333k (13333) HP!`) " } } WaveSpawn { WaitForAllDead stage1g Where spawnbot TotalCount 1 MaxActive 1 SpawnCount 1 WaitBeforeStarting 20 TotalCurrency 60 TFBot { Template T_TFBot_Giant_Soldier_Spammer_Reload // _Crit Item "The Freedom Feathers" Item "Private Maggot Muncher" CharacterAttributes { "rocket jump damage reduction" 0 "cancel falling damage" 1 } } } } // WAVE 3 //////////CURRENCY 800/////////////////////////////////// Wave { StartWaveOutput { Target wave_start_relay Action RunScriptCode Param " EntFire(`wave_start_relay`,`Trigger`) SINS.ChangeIconFlags(`soldier`,0) //Make it go poof on wave start " } DoneOutput { Target wave_finished_relay Action Trigger } InitWaveOutPut { Target wave_start_relay Action RunScriptCode Param " IncludeScript (`mvm_underworld_rc2_int_astral_projection_vscripts`) EntFire(`func_upgradestation`, `enable`); //should fix the annoying bug where sometimes these are disabled on start. // IncludeScript(`popextensions_main`, getroottable()) //POPEXTPLUS // //POPEXTPLUS MISSION ATTRIBUTES: // MissionAttrs // ({ // `NoCrumpkins`: 1 //disable those orange critcans. // `NoRome`: 2 //SHOULD disable rome'd tank AND cosmetics. // `BotsAreHumans`: 130 //Zombies. // `HuntsmanDamageFix`: 1 //Auto disabled for potato compatibility. Disabling potato's one and enabling this. // }) //PRECACHE: Precache() //SUPPORT ICON MANIPULATION: IncludeScript(`seel_ins`) //S.I.N.S by Seelpit. //(see startwaveoutput) " } WaveSpawn { Name dummyicons Where spawnbot TotalCount 2 MaxActive 0 SpawnCount 0 WaitBeforeStarting 9999 WaitBetweenSpawns 2222 Support 1 Squad { TFBot { Class Soldier ClassIcon soldier_bison } TFBot { Class Heavyweapons } } } WaveSpawn { Name stage1 Where spawnbot TotalCount 64 MaxActive 9 // 10 SpawnCount 5 WaitBeforeStarting 1 WaitBetweenSpawns 7 TotalCurrency 250 Support 1 RandomChoice { // Shuffle 1 TFBot { Class Soldier Name "Bison Soldier" Item "The Righteous Bison" ClassIcon soldier_bison WeaponRestrictions SecondaryOnly Skill Normal Item "The Hardium Helm" Item "The Jupiter Jumpers" Item "The Space Bracers" } TFBot { Class Soldier Name "Bison Soldier" Item "The Righteous Bison" ClassIcon soldier_bison WeaponRestrictions SecondaryOnly Skill Normal Item "The Hardium Helm" Item "The Jupiter Jumpers" Item "The Space Bracers" } TFBot { Class Soldier Name "Bison Soldier" Item "The Righteous Bison" ClassIcon soldier_bison WeaponRestrictions SecondaryOnly Skill Normal Item "The Hardium Helm" Item "The Jupiter Jumpers" Item "The Space Bracers" } TFBot { Class Heavyweapons Name Yetiweapons Item Yeti_Head Item Yeti_Legs Item Yeti_Arms } } } WaveSpawn { Name stage1 Where spawnbot TotalCount 20 MaxActive 2 SpawnCount 1 WaitBeforeStarting 5 WaitBetweenSpawns 15 TotalCurrency 100 Support 1 RandomChoice { Shuffle 1 TFBot { Template T_TFBot_Soldier_Extended_Buff_Banner ClassIcon soldier_banner_trio Item "The Crit Cloak" CharacterAttributes { "rocket jump damage reduction" 0 } } TFBot { Template T_TFBot_Soldier_Extended_Battalion ClassIcon soldier_banner_trio Item "The Crit Cloak" CharacterAttributes { "rocket jump damage reduction" 0 } } TFBot { Template T_TFBot_Soldier_Extended_Concheror ClassIcon soldier_banner_trio Item "The Crit Cloak" CharacterAttributes { "rocket jump damage reduction" 0 } } } } WaveSpawn { Name stage1 Where spawnbot_side TotalCount 16 MaxActive 4 SpawnCount 2 WaitBeforeStarting 60 WaitBetweenSpawns 7 TotalCurrency 50 Support 1 TFBot { Class Soldier // Name "Undead Laser" // Item "The Righteous Bison" // ClassIcon soldier_bison // WeaponRestrictions SecondaryOnly Skill Normal Item "Bread Heads" Item "Bread Biter" Name "Overbreaded Soldier" CharacterAttributes { "rocket jump damage reduction" 0 } } FirstSpawnOutPut { Target wave_start_relay Action RunScriptCode Param " SINS.ChangeIconFlags(`soldier`,4) //Make it appear when ready to spawn. " } } WaveSpawn { Name stage1g Where spawnbot TotalCount 3 MaxActive 3 SpawnCount 1 WaitBeforeStarting 0 WaitBetweenSpawns 25 TotalCurrency 200 TFBot { Template T_TFBot_Giant_Pyro_DragonFury } } WaveSpawn { WaitForAllDead stage1g Where spawnbot TotalCount 8 MaxActive 6 SpawnCount 4 WaitBeforeStarting 0 WaitBetweenSpawns 15 TotalCurrency 100 Squad { TFBot { Template T_TFBot_Giant_Pyro_DragonFury } TFBot { Template T_TFBot_Medic_Kritz } TFBot { Template T_TFBot_Soldier_Extended_Battalion Item "The Crit Cloak" CharacterAttributes { "rocket jump damage reduction" 0 } } TFBot { Template T_TFBot_Soldier_Extended_Battalion Item "The Crit Cloak" CharacterAttributes { "rocket jump damage reduction" 0 } } } } } // WAVE 4 //////////CURRENCY 700/////////////////////////////////// Wave { StartWaveOutput { Target wave_start_relay Action Trigger } DoneOutput { Target wave_finished_relay Action Trigger } InitWaveOutPut { Target wave_start_relay Action RunScriptCode Param " IncludeScript (`mvm_underworld_rc2_int_astral_projection_vscripts`) EntFire(`func_upgradestation`, `enable`); //should fix the annoying bug where sometimes these are disabled on start. // IncludeScript(`popextensions_main`, getroottable()) //POPEXTPLUS // //POPEXTPLUS MISSION ATTRIBUTES: // MissionAttrs // ({ // `NoCrumpkins`: 1 //disable those orange critcans. // `NoRome`: 2 //SHOULD disable rome'd tank AND cosmetics. // `BotsAreHumans`: 130 //Zombies. // `HuntsmanDamageFix`: 1 //Auto disabled for potato compatibility. Disabling potato's one and enabling this. // }) //PRECACHE: Precache() " } WaveSpawn { Name stage1 Where spawnbot TotalCount 6 MaxActive 6 SpawnCount 1 WaitBeforeStarting 0 WaitBetweenSpawns 5 TotalCurrency 120 TFBot { Template T_TFBot_Giant_Scout Item "The Biomech Backpack" Item "The Alien Cranium" CharacterAttributes { "cancel falling damage" 1 } } } WaveSpawn { Name stage2 WaitForAllDead stage1 Where spawnbot TotalCount 20 MaxActive 12 SpawnCount 4 WaitBeforeStarting 0 WaitBetweenSpawns 4 TotalCurrency 60 RandomChoice { Shuffle 1 TFBot { Class HeavyWeapons Name Yetiweapons Item Yeti_Head Item Yeti_Legs Item Yeti_Arms } TFBot { Class Soldier Skill Normal Item "Bread Heads" Item "Bread Biter" Name "Overbreaded Soldier" CharacterAttributes { "rocket jump damage reduction" 0 } } } } WaveSpawn { Name stage2 WaitForAllDead stage1 Where spawnbot_side TotalCount 8 MaxActive 4 SpawnCount 2 WaitBeforeStarting 0 WaitBetweenSpawns 5 TotalCurrency 40 TFBot { Class Soldier // HeavyWeapons Skill Normal Item "Bread Heads" Item "Bread Biter" Name "Overbreaded Soldier" CharacterAttributes { "rocket jump damage reduction" 0 } } } WaveSpawn { Where spawnbot_side TotalCount 92 // 40 MaxActive 3 SpawnCount 3 WaitBeforeStarting 1 WaitBetweenSpawns 5 TotalCurrency 92 // 40 Support 1 TFBot { Class HeavyWeapons ClassIcon heavy_giant Name Yetiweapons Item Yeti_Head Item Yeti_Legs Item Yeti_Arms } } WaveSpawn { Name stage3 WaitForAllSpawned stage2 Where spawnbot_invasion TotalCount 24 // 48 MaxActive 12 SpawnCount 8 WaitBeforeStarting 15 WaitBetweenSpawns 6 TotalCurrency 48 // 210 RandomSpawn 1 TFBot { Class Demoman Skill Normal Item "Scottish Snarl" Item "Pickled Paws" Item "The Tartan Shade" CharacterAttributes { "rocket jump damage reduction" 0 } } } WaveSpawn { Name stage3g WaitForAllSpawned stage2 Where spawnbot_side TotalCount 4 MaxActive 2 SpawnCount 1 WaitBeforeStarting 20 WaitBetweenSpawns 10 TotalCurrency 40 TFBot { Template T_TFBot_Giant_Scout Item "The Biomech Backpack" Item "The Alien Cranium" CharacterAttributes { "cancel falling damage" 1 } } } WaveSpawn { Name stage4 WaitForAllSpawned stage3g // stage3 Where spawnbot_side TotalCount 6 MaxActive 6 SpawnCount 3 WaitBeforeStarting 5 // 0 // 5 // 20 WaitBetweenSpawns 20 TotalCurrency 300 // 250 // 200 Squad { TFBot { Template T_TFBot_Giant_Soldier_Spammer Item "The Chaser" Item "Poopy Doe" CharacterAttributes { "rocket jump damage reduction" 0 "cancel falling damage" 1 } } TFBot { Template T_TFBot_Soldier_Extended_Concheror Item "The Crit Cloak" CharacterAttributes { "rocket jump damage reduction" 0 } } TFBot { Template T_TFBot_Soldier_Extended_Concheror Item "The Crit Cloak" CharacterAttributes { "rocket jump damage reduction" 0 } } } } // WaveSpawn // { // Name stage4 // WaitForAllSpawned stage3 // Where spawnbot_invasion // TotalCount 12 // MaxActive 12 // 6 // SpawnCount 3 // WaitBeforeStarting 5 // 15 // WaitBetweenSpawns 8 // TotalCurrency 50 // TFBot // { // Class Demoman // Skill Expert // } // } WaveSpawn { WaitForAllSpawned stage3 Where spawnbot_side TotalCount 40 MaxActive 6 SpawnCount 3 WaitBeforeStarting 10 WaitBetweenSpawns 5 Support 1 TFBot { Class HeavyWeapons ClassIcon heavy_giant Name Yetiweapons Item Yeti_Head Item Yeti_Legs Item Yeti_Arms } } } // WAVE 5 //////////CURRENCY 600/////////////////////////////////// Wave { StartWaveOutput { Target wave_start_relay Action RunScriptCode Param " EntFire(`wave_start_relay`,`Trigger`) SINS.ChangeIconFlags(`soldier_rocketshotgun_lite`,0) //Make it go poof on wave start " } DoneOutput { Target wave_finished_relay Action Trigger } InitWaveOutPut { Target wave_start_relay Action RunScriptCode Param " IncludeScript (`mvm_underworld_rc2_int_astral_projection_vscripts`) EntFire(`func_upgradestation`, `enable`); //should fix the annoying bug where sometimes these are disabled on start. // IncludeScript(`popextensions_main`, getroottable()) //POPEXTPLUS // //POPEXTPLUS MISSION ATTRIBUTES: // MissionAttrs // ({ // `NoCrumpkins`: 1 //disable those orange critcans. // `NoRome`: 2 //SHOULD disable rome'd tank AND cosmetics. // `BotsAreHumans`: 130 //Zombies. // `HuntsmanDamageFix`: 1 //Auto disabled for potato compatibility. Disabling potato's one and enabling this. // }) //CUSTOM TANK: //InitTargeTank() //made by me based off PDA Expert's pt version. IncludeScript(`tankextensions_main`, getroottable()) IncludeScript(`tankextensions/targetank`, getroottable()) //TankExt.StartingPathNames //([ //`boss_path_1` //]) TankExt.SetValueOverrides //Only doing this cause i'm obsessed with never needing to update the precaching again. ({ TARGETANK_MODEL_COLOR = `models/bots/boss_bot/paintable_tank_v2/boss_tank.mdl` TARGETANK_MODEL_COLOR_DAMAGE1 = `models/bots/boss_bot/paintable_tank_v2/boss_tank_damage1.mdl` TARGETANK_MODEL_COLOR_DAMAGE1 = `models/bots/boss_bot/paintable_tank_v2/boss_tank_damage2.mdl` TARGETANK_MODEL_COLOR_DAMAGE1 = `models/bots/boss_bot/paintable_tank_v2/boss_tank_damage3.mdl` TARGETANK_MODEL_COLOR_TRACK_L = `models/bots/boss_bot/paintable_tank_v2/tank_track_l.mdl` TARGETANK_MODEL_COLOR_TRACK_R = `models/bots/boss_bot/paintable_tank_v2/tank_track_r.mdl` TARGETANK_MODEL_COLOR_BOMB = `models/bots/boss_bot/paintable_tank_v2/bomb_mechanism.mdl` TARGETANK_COLOR1 = `255 0 0` TARGETANK_COLOR2 = `255 127 0` }) //PRECACHE: Precache() //SUPPORT ICON MANIPULATION: IncludeScript(`seel_ins`) //S.I.N.S by Seelpit. //(see startwaveoutput) " } WaveSpawn { Where spawnbot TotalCount 8 // 10 MaxActive 4 SpawnCount 2 WaitBeforeStarting 0 WaitBetweenSpawns 40 TotalCurrency 200 Squad { TFBot { Template T_TFBot_Giant_HeavyWeapons Name "Wrathful Sandvich" Item Mannvich // Surprised I haven't seen this more. Item "Commissar's Coat" Item "Ivan The Inedible" CharacterAttributes { "cancel falling damage" 1 } } TFBot { Template T_TFBot_Medic_Bigheal_Improved } } } WaveSpawn { TotalCount 1 SpawnCount 1 WaitBeforeStarting 15 TotalCurrency 100 Tank { Name targetank_color Health 20000 Speed 75 StartingPathTrackNode boss_path_1 Skin 1 OnKilledOutput { Target boss_dead_relay Action Trigger } OnBombDroppedOutput { Target boss_deploy_relay Action Trigger } } FirstSpawnOutPut { Target wave_start_relay Action RunScriptCode Param " //SpawnTargeTank() ClientPrint(null,3,`\x07FF1234Chargin' Targe tank deployed with 20k (20000) HP!`) " // Delay 0.15 } } WaveSpawn { Name stage1 Where spawnbot TotalCount 36 MaxActive 12 SpawnCount 4 WaitBeforeStarting 5 WaitBetweenSpawns 5 TotalCurrency 100 TFBot { Template T_TFBot_Demoman_Knight Item "The Horseless Headless Horseman's Headtaker" Item "Horseless Headless Horseman's Head" Item "The Horsemann's Hand-Me-Down" Name "Horseless Horseknight" ItemAttributes { ItemName "The Horseless Headless Horseman's Headtaker" "critboost on kill" 3 } } } WaveSpawn { Name stage2 WaitForAllSpawned stage1 Where spawnbot_side TotalCount 16 // 32 MaxActive 6 // 12 SpawnCount 2 // 4 WaitBeforeStarting 15 WaitBetweenSpawns 5 TotalCurrency 100 TFBot { Template T_TFBot_Heavyweapons_Heavyweight_Champ_Steel Item "Halloween Spellbook" ClassIcon heavy_steelfist_fireballblue Name "Fire-Casting Steelweight Champ" Item "Point and Shoot" Item "Bull Locks" Item "Immobile Suit" // Tag popext_spell|0|9|2|5 Tag "popext_spell{type = SPELL_FIREBALL, cooldown = 9, delay = 1, repeats = 5}" ItemAttributes { ItemName "Halloween Spellbook" "dmg penalty vs buildings" 10 // 100 damage vs buildings } } } WaveSpawn { Name stage3 WaitForAllSpawned stage2 Where spawnbot TotalCount 50 MaxActive 9 SpawnCount 3 WaitBeforeStarting 5 WaitBetweenSpawns 5 TotalCurrency 100 Support 1 TFBot { Template T_TFBot_Soldier_TriRocket } FirstSpawnOutPut { Target wave_start_relay Action RunScriptCode Param " SINS.ChangeIconFlags(`soldier_rocketshotgun_lite`,4) //Make it appear. " } } } // WAVE 6 //////////CURRENCY 550/////////////////////////////////// Wave { StartWaveOutput { Target wave_start_relay Action Trigger } DoneOutput { Target wave_finished_relay Action Trigger } InitWaveOutPut { Target wave_start_relay Action RunScriptCode Param " IncludeScript (`mvm_underworld_rc2_int_astral_projection_vscripts`) EntFire(`func_upgradestation`, `enable`); //should fix the annoying bug where sometimes these are disabled on start. // IncludeScript(`popextensions_main`, getroottable()) //POPEXTPLUS // //POPEXTPLUS MISSION ATTRIBUTES: // MissionAttrs // ({ // `NoCrumpkins`: 1 //disable those orange critcans. // `NoRome`: 2 //SHOULD disable rome'd tank AND cosmetics. // `BotsAreHumans`: 130 //Zombies. // `HuntsmanDamageFix`: 1 //Auto disabled for potato compatibility. Disabling potato's one and enabling this. // }) //PRECACHE: Precache() //Credits to Seelpit for this. PopExt.AddRobotTag(`bot_infinuber`, { OnSpawn = function(bot,tag) { bot.GetScriptScope().PlayerThinkTable.unUberOnUberThink <- function() { if (self.InCond(5)) self.RemoveCond(5); } } }) //ClientPrint(null,3,`\x07FF1234Something nasty approaches...`) //ClientPrint(null,3,`\x0790EE90The \x07FF1234Giant Forge Scouts \x0790EE90will \x07FF1234pierce wrangler shields!`) ClientPrint(null,3,`\x0790EE90Something nasty approaches...`) ClientPrint(null,3,`\x0790EE90The Giant Forge Scouts will \x07FF1234pierce wrangler shields!`) " } WaveSpawn { Where spawnbot_side TotalCount 50 MaxActive 4 SpawnCount 1 WaitBeforeStarting 10 WaitBetweenSpawns 5 TotalCurrency 50 Support 1 TFBot { // Class Soldier // Skill Normal Class Heavyweapons Name Yetiweapons Item Yeti_Head Item Yeti_Legs Item Yeti_Arms } } WaveSpawn { Name stage1 Where spawnbot TotalCount 1 MaxActive 1 SpawnCount 1 WaitBeforeStarting 0 WaitBetweenSpawns 20 TotalCurrency 20 TFBot { Template T_TFBot_Giant_Scout WeaponRestrictions MeleeOnly // Tag uses_homewrecker // Tag popext_giveweapon|tf_weapon_fireaxe|153 Tag "popext_giveweapon{ weapon = `tf_weapon_fireaxe` id = `153`}" Name "Giant Forge Scout" ClassIcon scout_homewrecker_pierce_tind Item "The Person in the Iron Mask" CharacterAttributes { "dmg pierces resists absorbs" 1 "cancel falling damage" 1 } } } WaveSpawn { Name stage2 // WaitForAllDead stage1 Where spawnbot TotalCount 2 MaxActive 2 SpawnCount 2 WaitBeforeStarting 1 WaitBetweenSpawns 40 TotalCurrency 80 Squad { TFBot { Class Soldier ClassIcon soldier_hyper_lite Skill Expert Name "Faulty Eugene Clone" Attributes AlwaysCrit Attributes UseBossHealthBar ItemAttributes { ItemName TF_WEAPON_ROCKETLAUNCHER "damage bonus" 2.0 "faster reload rate" -0.8 "fire rate bonus" 0.6 "backstab shield" 1 } } TFBot { Template T_TFBot_Giant_Medic_Regen ClassIcon medic_overheal Attributes UseBossHealthBar Attributes IgnoreEnemies // REALLY don't need it getting distracted. Attributes DisableDodge // REALLY don't need it getting distracted. Name "Clone Maintenance" Item Herzensbrecher Item Hundekopf Item Kriegsmaschine-9000 CharacterAttributes { "overheal bonus" 8 // no random crit cheese. Demo can still tho. "overheal decay bonus" 0.01 // overheal near instantly decays upon death/disconnect (yes this is exploitable it's int idc) "move speed bonus" 5 // keep up dammit "cannot pick up intelligence" 1 // but don't yknow troll unsuspecting teams "cancel falling damage" 1 } } } } WaveSpawn { Name stage3 WaitForAllDead stage2 Where spawnbot TotalCount 2 MaxActive 2 SpawnCount 2 WaitBeforeStarting 0 WaitBetweenSpawns 20 TotalCurrency 50 TFBot { Template T_TFBot_Giant_Scout WeaponRestrictions MeleeOnly // Tag uses_homewrecker // Tag popext_giveweapon|tf_weapon_fireaxe|153 Tag "popext_giveweapon{ weapon = `tf_weapon_fireaxe` id = `153`}" Name "Giant Forge Scout" ClassIcon scout_homewrecker_pierce_tind Item "The Person in the Iron Mask" CharacterAttributes { "dmg pierces resists absorbs" 1 "cancel falling damage" 1 } } } WaveSpawn { Name stage3 WaitForAllDead stage2 Where spawnbot TotalCount 8 MaxActive 6 SpawnCount 2 WaitBeforeStarting 10 WaitBetweenSpawns 15 TotalCurrency 200 Squad { TFBot { Template T_TFBot_Giant_Soldier_Spammer Item "The Chaser" Item "Poopy Doe" CharacterAttributes { "rocket jump damage reduction" 0 "cancel falling damage" 1 } } TFBot { // Template T_TFBot_Medic_Bigheal_Popping //I have a replacement for this. // Gimmicky-ish equivalent of Bigheals? Kinda? Except they ALWAYS 'outheal' // Seelpit originally did this idea in some meltdown int? I think? It was also in some form on Hell-Met's Mobocracy, but those popped themselves. // These won't, thanks to the bot tag. Name "InfinUber Medic" Class Medic ClassIcon medic_uber_infinite Attributes SpawnWithFullCharge Tag bot_infinuber Item Medimedes ItemAttributes // Infinite prepop; does not pop itself thanks to its tag. { ItemName tf_weapon_medigun "uber duration bonus" -99 "bot medic uber health threshold" 9999 } } } } WaveSpawn { WaitForAllDead stage2 Where spawnbot TotalCount 50 MaxActive 12 // 16 SpawnCount 4 WaitBeforeStarting 5 WaitBetweenSpawns 4.5 // 4 TotalCurrency 150 Support 1 TFBot { // Class Soldier // Skill Normal Class Heavyweapons // Name "This May End Poorly" Name Yetiweapons Item Yeti_Head Item Yeti_Legs Item Yeti_Arms } } } // WAVE 7 //////////CURRENCY 000/////////////////////////////////// Wave // FORCE TO bombpath_left_relay { StartWaveOutput { Target wave_start_relay_boss Action Trigger Target wave_start_relay Action RunScriptCode Param " EntFire(`wave_start_relay_boss`,`Trigger`) SendGlobalGameEvent(`hide_annotation`, {id = 111}) //remove the pointer SendGlobalGameEvent(`hide_annotation`, {id = 112}) //remove the pointer SendGlobalGameEvent(`hide_annotation`, {id = 113}) //remove the pointer " } InitWaveOutPut { Target wave_start_relay Action RunScriptCode Param " EntFire(`func_upgradestation`, `enable`); //should fix the annoying bug where sometimes these are disabled on start. EntityOutputs.RemoveOutput(Entities.FindByName(null, `bombpath_choose_1_case`), `OnCase02`,`bombpath_right_relay`,`Trigger`, null) //remove right path, forcing left path // IncludeScript(`popextensions_main`, getroottable()) //POPEXTPLUS // //POPEXTPLUS MISSION ATTRIBUTES: // MissionAttrs // ({ // `NoCrumpkins`: 1 //disable those orange critcans. // `NoRome`: 2 //SHOULD disable rome'd tank AND cosmetics. // `BotsAreHumans`: 130 //Zombies. // `HuntsmanDamageFix`: 1 //Auto disabled for potato compatibility. Disabling potato's one and enabling this. // }) IncludeScript (`mvm_underworld_rc2_int_astral_projection_vscripts`) SpawnChangeAttributes() //kinda taken from Braindawg's Dynamic Disaster, uses Seelpit's Icon Manipulator Scripts. //^trigger boss_changeattributes_relay when you need to use this. FinaleGraveyard() //^spawns the wave's graves and points them out to players. proud of this lil thing. //SkeleShields() //From StardustSpy. Gives lil mini shields (model by Lite) to the skellies with bot_shield. //^could never get this to work so i axed it //PRECACHE: Precache() " } DoneOutput { Target wave_start_relay Action RunScriptCode Param " EntFire(`boss_changeattributes_relay`, `cancelpending`,null,-1); //stop the changeattrbs relay so it doesn't spit errors. // ClientPrint(null,3,`\x07FF0000AN ERROR HAS OCCURRED [the index 'SINS' does not exist]. Check console for details`) // ClientPrint(null,3,`\x07FFFF00AN ERROR HAS OCCURRED [the index 'SINS' does not exist]. Check console for details`) // ClientPrint(null,3,`\x07FFFFFFAN ERROR HAS OCCURRED [the index 'SINS' does not exist]. Check console for details`) // ClientPrint(null,3,`\x070000FFAN ERROR HAS OCCURRED [the index 'SINS' does not exist]. Check console for details`) // ClientPrint(null,3,`\x0700FFFFAN ERROR HAS OCCURRED [the index 'SINS' does not exist]. Check console for details`) // ClientPrint(null,3,`\x0700FF00AN ERROR HAS OCCURRED [the index 'SINS' does not exist]. Check console for details`) // ClientPrint(null,3,`\x07123456AN ERROR HAS OCCURRED [the index 'SINS' does not exist]. Check console for details`) " } WaveSpawn { Where spawnbot TotalCount 1 MaxActive 1 SpawnCount 1 WaitBeforeStarting 0 TFBot { Template Boss_But_Now_With_Phases // Class Soldier // Tag boss_soldier // Attributes UseBossHealthBar // Attributes MiniBoss // ClassIcon soldier_bison } FirstSpawnOutPut { Target wave_start_relay Action RunScriptCode Param " EntFire(`boss_changeattributes_relay`,`Trigger`) EntFire(`top_text`,`Display`) EntFire(`bottom_text`,`Display`,``,0.2) " } } WaveSpawn // Now they teleport in. { Name stage1 Where spawnbot_invasion TotalCount 333 // 666 MaxActive 12 // 9 SpawnCount 4 // 3 WaitBeforeStarting 1 WaitBetweenSpawns 8 TotalCurrency 333 // 666 RandomSpawn 1 Support 1 RandomChoice { Shuffle 1 TFBot { Class Sniper WeaponRestrictions MeleeOnly ClassIcon spell_skeletons_lite Name Skeleton // Tag popext_usecustommodel|models/bots/skeleton_sniper/skeleton_sniper.mdl Tag "popext_usecustommodel{ model = `models/bots/skeleton_sniper/skeleton_sniper.mdl`}" // Tag popext_deathsound|misc/halloween/skeleton_break.wav Tag "popext_deathsound{ sound = `misc/halloween/skeleton_break.wav`}" // Tag popext_setskin|1 Tag "popext_setskin{ skin = 1}" // Tag popext_giveweapon|tf_weapon_fists|5 Tag "popext_giveweapon{ weapon = `tf_weapon_fists` id = `5`}" // Tag "popext_spawnhere|655 515 220|0.1" Tag "popext_spawnhere{ where = `655 515 220`}" // Tag popext_addcond|64|0.5 Health 200 Scale 1.2 MaxVisionRange 400 CharacterAttributes { "voice pitch scale" 0 // disables voicelines "cancel falling damage" 1 } } TFBot { Class Sniper WeaponRestrictions MeleeOnly ClassIcon spell_skeletons_lite Name Skeleton // Tag popext_usecustommodel|models/bots/skeleton_sniper/skeleton_sniper.mdl Tag "popext_usecustommodel{ model = `models/bots/skeleton_sniper/skeleton_sniper.mdl`}" // Tag popext_deathsound|misc/halloween/skeleton_break.wav Tag "popext_deathsound{ sound = `misc/halloween/skeleton_break.wav`}" // Tag popext_setskin|1 Tag "popext_setskin{ skin = 1}" // Tag popext_giveweapon|tf_weapon_fists|5 Tag "popext_giveweapon{ weapon = `tf_weapon_fists` id = `5`}" // Tag "popext_spawnhere|-950 1500 218|0.1" Tag "popext_spawnhere{ where = `-950 1500 218`}" // Tag popext_addcond|64|0.5 Health 200 Scale 1.2 MaxVisionRange 400 CharacterAttributes { "voice pitch scale" 0 // disables voicelines "cancel falling damage" 1 } } } } WaveSpawn // Now they teleport in. { Name stage1 Where spawnbot_invasion TotalCount 333 // 666 MaxActive 6 SpawnCount 3 WaitBeforeStarting 0.5 WaitBetweenSpawns 8 TotalCurrency 333 // 666 RandomSpawn 1 Support 1 TFBot { Class Sniper WeaponRestrictions MeleeOnly ClassIcon spell_skeletons_lite Name Skeleton // Tag popext_usecustommodel|models/bots/skeleton_sniper/skeleton_sniper.mdl Tag "popext_usecustommodel{ model = `models/bots/skeleton_sniper/skeleton_sniper.mdl`}" // Tag popext_deathsound|misc/halloween/skeleton_break.wav Tag "popext_deathsound{ sound = `misc/halloween/skeleton_break.wav`}" // Tag popext_setskin|1 Tag "popext_setskin{ skin = 1}" // Tag popext_giveweapon|tf_weapon_fists|5 Tag "popext_giveweapon{ weapon = `tf_weapon_fists` id = `5`}" // Tag popext_addcond|64|0.5 Health 200 Scale 1.2 MaxVisionRange 400 CharacterAttributes { "voice pitch scale" 0 // disables voicelines "cancel falling damage" 1 } } } WaveSpawn { Where spawnbot TotalCount 1 MaxActive 0 SpawnCount 0 WaitBeforeStarting 99999 Support 1 RandomChoice { Squad { TFBot { Class Scout ClassIcon soldier_spammer_burstfire Name "Icon for DL" } } } } WaveSpawn { Where spawnbot TotalCount 1 MaxActive 0 SpawnCount 0 WaitBeforeStarting 99999 Support 1 RandomChoice { Squad { TFBot { Class Scout ClassIcon soldier_burstfire Name "Icon for DL" } } } } WaveSpawn { Where spawnbot TotalCount 1 MaxActive 0 SpawnCount 0 WaitBeforeStarting 99999 Support 1 RandomChoice { Squad { TFBot { Class Scout ClassIcon soldier_infinite_blast Name "Icon for DL" } } } } } }