//Please dont use anything here without my permission! I would be eternally grateful! //Mission by StardustSpy // CHANGES 12/07/24 #base robot_standard.pop #base robot_giant.pop #base robot_stardust_vscript.pop WaveSchedule { StartingCurrency 750 CanBotsAttackWhileInSpawnRoom no RespawnWaveTime 5 FixedRespawnWaveTime 1 AddSentryBusterWhenDamageDealtExceeds 2000 AddSentryBusterWhenKillCountExceeds 10 FixHuntsmanDamageBonus 0 // fuck YOU rafmod // Advanced 1 // EventPopfile Halloween //spawnbot //spawnbot_right //spawnbot_mission_sniper //spawnbot_left //spawnbot_mission_sentrybuster //spawnbot_mission_spy Templates { //scout T_TFBot_Scout_Wrap_Assassin_Armored { Class Scout Skill Expert Scale 1.4 Health 750 Item "The Wrap Assassin" ClassIcon scout_wrap_armored WeaponRestrictions MeleeOnly Tag "wrap_assassin" Item "Bulb Bonnet" Name "Armored Wrapper Scout" CharacterAttributes { "move speed penalty" 0.8 "head scale" 0.8 "effect bar recharge rate increased" 0.15 } } T_TFBot_Giant_Scout_Meteor { Class Scout Name "The Grateful Smited" ClassIcon spell_meteor_swordstonehel Skill Expert Health 5000 Item "Batter's Helmet" Item "MNC Mascot Outfit" Item "The Last Laugh" Item "The Sandman" WeaponRestrictions MeleeOnly Attributes MiniBoss Attributes UseBossHealthBar Tag "bot_baseball" ItemAttributes { Itemname "The Sandman" "max health additive penalty" 0 } CharacterAttributes { "damage force reduction" 0.7 "airblast vulnerability multiplier" 0.7 "override footstep sound set" 5 "move speed penalty" 0.65 } } //soldier T_TFBot_Giant_Soldier_FireLaser { Class Soldier Name "Blazing Forest Fire" ClassIcon soldier_mangler_fire Skill Expert Health 4000 WeaponRestrictions PrimaryOnly Attributes HoldFireUntilFullReload Attributes MiniBoss Item "The Cow Mangler 5000" Item "Lord Cockswain's Pith Helmet" ItemAttributes { Itemname "Lord Cockswain's Pith Helmet" "attach particle effect" 13 } ItemAttributes { Itemname "The Cow Mangler 5000" "dmg penalty vs players" 0.25 "faster reload rate" -1 "fire rate bonus" 0.08 "energy weapon penetration" 1 "ragdolls become ash" 1 "override projectile type" 13 "set item tint rgb" 13595446 "crit vs burning players" 1 "projectile penetration" 1 "Set DamageType Ignite" 1 "SPELL: set Halloween footstep type" 13595446 // orange } CharacterAttributes { "move speed bonus" 0.5 "damage force reduction" 0.4 "airblast vulnerability multiplier" 0.4 "override footstep sound set" 3 "SPELL: set Halloween footstep type" 13595446 // orange } } T_TFBot_Giant_Soldier_Charged_Spammer { Class Soldier Name "Giant Charged Spam Soldier" ClassIcon soldier_crit_spammer Skill Normal Health 4000 Item "The Original" Item "Defiant Spartan" Attributes AlwaysCrit WeaponRestrictions PrimaryOnly Attributes MiniBoss ItemAttributes { ItemName "The Original" "faster reload rate" -1 "mod no reload display only" 1 "fire rate penalty" 1.25 "damage penalty" 0.75 "blast radius decreased" 0.75 "Projectile speed decreased" 0.5 } CharacterAttributes { "move speed bonus" 0.5 "damage force reduction" 0.4 "airblast vulnerability multiplier" 0.4 "override footstep sound set" 3 } } //pyro T_TFBot_Pyro_Guardian { Name "Hell Guardian" Class Pyro ClassIcon pyro_dragon_fury_armored Scale 1.5 Health 750 // shield now deactivates at half health Skill Expert MaxVisionRange 1200 WeaponRestrictions PrimaryOnly Tag "bot_shield" Item "The Dragon's Fury" Item "The Mishap Mercenary" ItemAttributes { Itemname "The Dragon's Fury" "airblast disabled" 1 // pyros are forced to press alt 2 via vscript, this is relavent } CharacterAttributes { "move speed penalty" 0.85 } } T_TFBot_Pyro_Bulwark { Class Pyro WeaponRestrictions PrimaryOnly Attributes UseBossHealthBar Attributes Miniboss Tag "bot_bulwark" Name "Ghadarn Flóga" Health 5000 Scale 1.75 Skill Expert ClassIcon pyro_firespreader Item "The Combustible Kabuto" Item "The Dragon's Fury" ItemAttributes { Itemname "The Combustible Kabuto" "attach particle effect" 13 // burning } CharacterAttributes { "move speed bonus" 0.5 "lunchbox adds minicrits" 2 "damage force reduction" 0.6 "airblast vulnerability multiplier" 0.6 "override footstep sound set" 6 "no_jump" 1 "SPELL: set Halloween footstep type" 13595446 // orange //because the DF will be stripped these are kept here, dunno why i cant fx it "airblast disabled" 1 "damage bonus" 1.5 } } //demo T_TFBot_Giant_Demoman_Stickybomb_PumpkinBombs { Name "Polluting Harvester" Class Demoman ClassIcon demo_sticky_burst_hyper_giant Health 6500 Attributes MiniBoss Attributes HoldFireUntilFullReload Attributes UseBossHealthBar Attributes AlwaysCrit Skill Expert MaxVisionRange 1500 WeaponRestrictions SecondaryOnly Item "The Hood of Sorrows" Item "Upgradeable TF_WEAPON_PIPEBOMBLAUNCHER" Item "upgradeable tf_weapon_grenadelauncher" Tag "boss_bomber" ItemAttributes { Itemname "upgradeable tf_weapon_grenadelauncher" "is_passive_weapon" 1 "fire rate penalty" 999 "override projectile type" 27 } ItemAttributes { ItemName "Upgradeable TF_WEAPON_PIPEBOMBLAUNCHER" "stickybomb charge rate" -1 "max pipebombs decreased" -7 "projectile range decreased" 0.45 "faster reload rate" 0.5 "fire rate bonus" 0.5 } CharacterAttributes { "move speed bonus" 0.5 "damage force reduction" 0.4 "airblast vulnerability multiplier" 0.4 "override footstep sound set" 4 } } T_TFBot_Demo_Marauder { Class Demoman Tag "bot_marauder" Classicon demo_marauder_blu Name "Marauder" Scale 1.25 Health 3500 MaxVisionRange 2500 Attributes HoldFireUntilFullReload Attributes MiniBoss //needed for dodge ability, controlled by no_jump attribute Attributes AutoJump AutoJumpMin 1 AutoJumpMax 1 Skill Expert WeaponRestrictions MeleeOnly CharacterAttributes { "deploy time decreased" 0 "move speed penalty" 0.7 "cannot pick up intelligence" 1 } } T_TFBot_Demoman_HHH { Class Demoman Name "Pumpkin Underling" ClassIcon demoknight_headtaker_nys Skill Expert //Item "The Horseless Headless Horseman's Headtaker" Item "The Chargin' Targe" Item "Horseless Headless Horseman's Head" Item "The Horsemann's Hand-Me-Down" WeaponRestrictions MeleeOnly Tag "bot_horseman" // Weapon has the below attributes; not given here for killcam reasons // ItemAttributes // { // ItemName "The Horseless Headless Horseman's Headtaker" // "fire rate penalty" 2 // //"decapitate type" 0 // removes decapitation effect // "damage bonus hidden" 0 // removes excessive damage // "max health additive penalty" 0 // "critboost on kill" 0 // "no crit boost" 1 // } CharacterAttributes { "charge recharge rate increased" 1.5 } } T_TFBot_Demoman_Katana { Class Demoman Name "Zatoichi Demo" ClassIcon demoknight_samurai Skill Expert Item "The Half-Zatoichi" Item "The Splendid Screen" Item "Demo Kabuto" WeaponRestrictions MeleeOnly } //heavy T_TFBot_Giant_Heavyweapons_BotDeployer { Name "Soul Gatherer" Class Heavyweapons ClassIcon teleporter_seel Scale 1.75 Health 7500 Attributes MiniBoss Attributes UseBossHealthBar Skill Normal MaxVisionRange 2500 WeaponRestrictions PrimaryOnly Tag bot_giant Tag "bot_deployer" Item "Clockwerk's Helm" Item "The Huo Long Heatmaker" ItemAttributes { ItemName "The Huo Long Heatmaker" "damage penalty" 1 "damage bonus" 1.25 } CharacterAttributes { "move speed bonus" 0.5 "damage force reduction" 0.2 "airblast vulnerability multiplier" 0.2 "override footstep sound set" 2 } } //medic T_TFBot_Giant_Medic_Uber_Instacharge { Name "Controlled Shocker" Class Medic ClassIcon medic_uber_giant Health 2500 Attributes MiniBoss Attributes SpawnWithFullCharge Attributes IgnoreEnemies Skill Expert WeaponRestrictions SecondaryOnly Tag bot_giant Item "upgradeable TF_WEAPON_MEDIGUN" Item "Das Naggenvatcher" ItemAttributes { ItemName "upgradeable TF_WEAPON_MEDIGUN" "ubercharge rate bonus" 25 "uber duration bonus" -2 } CharacterAttributes { "move speed bonus" 0.5 "damage force reduction" 0.3 "airblast vulnerability multiplier" 0.3 "heal rate bonus" 20 "bot medic uber health threshold" 999999 } } T_TFBot_Giant_Medic_Lite { Class Medic Name "Giant Lite Regen Medic" ClassIcon medic_giant Skill Expert Health 2000 Scale 1.45 Item "The quick-fix" Item "The Surgeon's Stahlhelm" Attributes MiniBoss Attributes IgnoreEnemies ItemAttributes { ItemName "The quick-fix" "ubercharge rate penalty" 0.01 } CharacterAttributes { "move speed penalty" 0.85 "damage force reduction" 0.6 "airblast vulnerability multiplier" 0.6 "heal rate bonus" 200 "health regen" 40 } } //sniper T_TFBot_Sniper_Nanoboost { Class Sniper Skill Expert Classicon sniper_nano MaxVisionRange 2500 Name "Adrenaline Administer" Tag "bot_nanoboost" Item "Sightseer" //Item "Preventative Measure" Item "The Bazaar Bargain" ItemAttributes { Itemname "The Bazaar Bargain" "damage penalty" 0.5 } // Scale 1.25 // Health 400 } } Mission { Where spawnbot_mission_sentrybuster Objective DestroySentries // Engineer,Sniper,Spy,DestroySentries BeginAtWave 1 RunForThisManyWaves 999 DesiredCount 1 InitialCooldown 35 CooldownTime 70 TFBot { Template T_TFBot_SentryBuster_Fix } } Mission // w1 snips { Where spawnbot_left Where spawnbot_right Objective Sniper // Engineer,Sniper,Spy,DestroySentries BeginAtWave 1 RunForThisManyWaves 1 DesiredCount 12 InitialCooldown 15 CooldownTime 9999 TFBot { Template T_TFBot_Sniper Skill Expert } } Mission // w2 stabs { Where spawnbot_mission_spy Objective Spy // Engineer,Sniper,Spy,DestroySentries BeginAtWave 2 RunForThisManyWaves 1 DesiredCount 2 InitialCooldown 20 CooldownTime 75 TFBot { Template T_TFBot_Spy Skill Expert } } Wave // Wave 1 { StartWaveOutput { Target wave_start_classic_relay Action Trigger } DoneOutput { Target wave_finished_relay Action Trigger } InitWaveOutput { Target gamerules Action RunScriptCode Param " // Load popextensions script IncludeScript(`popextensions_main.nut`, getroottable()) local _root = getroottable() function IncludeExp(path) { try IncludeScript(format(`scrapyard_expert/%s`, path), _root) catch(e) printl(e) } IncludeExp(`bulwark_exp.nut`) PopExt.AddRobotTag(`bot_fullhead`, { OnSpawn = function(bot, tag) { NetProps.SetPropInt(bot, `m_Shared.m_iDecapitations`, 5) bot.SetHealth(210) // i hate rafmod } }) //ClientPrint(null,3,`\x0799CCFFThe dimensions will distort each wave, causing random changes to random weapons!`) MissionAttrs ({ `ForceHoliday`: 2 }) " } WaveSpawn { Name "supp" Where spawnbot TotalCount 77 MaxActive 2 SpawnCount 1 WaitBeforeStarting 10 WaitBetweenSpawns 12 TotalCurrency 100 Support 1 TFBot { Class Soldier Skill Normal } } WaveSpawn { Name "a1" Where spawnbot Where spawnbot_left Where spawnbot_right TotalCount 24 MaxActive 6 SpawnCount 2 WaitBeforeStarting 10 WaitBetweenSpawns 2 TotalCurrency 200 RandomSpawn 1 Squad { TFBot { Template T_TFBot_Pyro_Dragon Skill Expert } TFBot { Template T_TFBot_Medic_BigHeal_Fix Attributes SpawnWithFullCharge ClassIcon medic_pop Skill Expert } } } WaveSpawn { Name "a1" Where spawnbot TotalCount 1 MaxActive 1 SpawnCount 1 WaitBeforeStarting 0 WaitBetweenSpawns 0 TotalCurrency 200 TFBot { Template T_TFBot_Giant_Demoman_Burst_Fix } } WaveSpawn { Name "a2" WaitForAllSpawned "a1" Where spawnbot TotalCount 2 MaxActive 2 SpawnCount 1 WaitBeforeStarting 18 WaitBetweenSpawns 25 TotalCurrency 200 TFBot { Template T_TFBot_Giant_Pyro ClassIcon pyro_reflect } } WaveSpawn { Name "a2" WaitForAllSpawned "a1" Where spawnbot TotalCount 30 MaxActive 10 SpawnCount 5 WaitBeforeStarting 18 WaitBetweenSpawns 8 TotalCurrency 100 TFBot { Template T_TFBot_Scout_Cola Skill Normal } } } Wave // Wave 2 { StartWaveOutput { Target wave_start_classic_relay Action Trigger } DoneOutput { Target wave_finished_relay Action Trigger } InitWaveOutput { Target gamerules Action RunScriptCode Param " // Load popextensions script IncludeScript(`popextensions_main.nut`, getroottable()) local _root = getroottable() function IncludeExp(path) { try IncludeScript(format(`scrapyard_expert/%s`, path), _root) catch(e) printl(e) } IncludeExp(`bulwark_exp.nut`) PopExt.AddRobotTag(`bot_fullhead`, { OnSpawn = function(bot, tag) { NetProps.SetPropInt(bot, `m_Shared.m_iDecapitations`, 5) bot.SetHealth(210) // i hate rafmod } }) PopExt.AddRobotTag(`bot_med_regenpack`, { OnSpawn = function(bot, tag) { NetProps.SetPropInt(bot, `m_Shared.m_iDecapitations`, 5) bot.SetHealth(210) // i hate rafmod } }) MissionAttrs ({ `ForceHoliday`: 2 }) " } WaveSpawn { Name "a1" Where spawnbot TotalCount 6 MaxActive 4 SpawnCount 2 WaitBeforeStarting 0 WaitBetweenSpawns 20 TotalCurrency 200 Squad { TFBot { Template T_TFBot_Giant_DemoMan_PrinceTavish Name "Giant Fullhead Demoknight" Item "The Bolted Bombardier" Item "Prince Tavish's Crown" Tag "bot_fullhead" ItemAttributes { Itemname "Prince Tavish's Crown" "attach particle effect" 14 } } TFBot { Template T_TFBot_Giant_Medic_Lite } } } WaveSpawn { Name "a1.1" Where spawnbot Where spawnbot_left Where spawnbot_right TotalCount 35 MaxActive 9 SpawnCount 3 WaitBeforeStarting 5 WaitBetweenSpawns 2.5 TotalCurrency 100 TFBot { Class Soldier Skill Normal } } WaveSpawn { Name "a2" WaitForAllSpawned "a1" Where spawnbot TotalCount 4 MaxActive 2 SpawnCount 1 WaitBeforeStarting 25 WaitBetweenSpawns 16 TotalCurrency 200 TFBot { Template T_TFBot_Giant_Demoman ClassIcon demo_spammer } } WaveSpawn { Name "a2" WaitForAllSpawned "a1" Where spawnbot_right Where spawnbot TotalCount 27 MaxActive 9 SpawnCount 6 WaitBeforeStarting 32 WaitBetweenSpawns 5 TotalCurrency 200 TFBot { Template T_TFBot_Sniper_Huntsman Skill Expert Attributes AlwaysCrit } } WaveSpawn { Name "a2" WaitForAllSpawned "a1" Where spawnbot_left Where spawnbot TotalCount 42 MaxActive 6 SpawnCount 1 WaitBeforeStarting 32 WaitBetweenSpawns 1 TotalCurrency 100 TFBot { Template T_TFBot_Heavyweapons_Heavyweight_Champ } } } Wave // Wave 3 { StartWaveOutput { Target wave_start_classic_relay Action Trigger } DoneOutput { Target wave_finished_relay Action Trigger } InitWaveOutput { Target gamerules Action RunScriptCode Param " // Load popextensions script IncludeScript(`popextensions_main.nut`, getroottable()) local _root = getroottable() function IncludeExp(path) { try IncludeScript(format(`scrapyard_expert/%s`, path), _root) catch(e) printl(e) } IncludeExp(`bulwark_exp.nut`) PopExt.AddRobotTag(`bot_fullhead`, { OnSpawn = function(bot, tag) { NetProps.SetPropInt(bot, `m_Shared.m_iDecapitations`, 5) bot.SetHealth(210) // i hate rafmod } }) PopExt.AddRobotTag(`bot_med_regenpack`, { OnSpawn = function(bot, tag) { NetProps.SetPropInt(bot, `m_Shared.m_iDecapitations`, 5) bot.SetHealth(210) // i hate rafmod } }) MissionAttrs ({ `ForceHoliday`: 2 }) " } WaveSpawn { Name "supp" Where spawnbot TotalCount 54 MaxActive 3 SpawnCount 1 WaitBeforeStarting 40 WaitBetweenSpawns 40 TotalCurrency 0 Support 1 TFBot { Template T_TFBot_Engineer_Sentry_Teleporter TeleportWhere spawnbot_left TeleportWhere spawnbot_right } } WaveSpawn { Name "support" Where spawnbot TotalCount 55 MaxActive 2 SpawnCount 1 WaitBeforeStarting 4 WaitBetweenSpawns 10 TotalCurrency 50 Support 1 TFBot { Template T_TFBot_Pyro_Fix Skill Expert CharacterAttributes { "airblast disabled" 1 } } } WaveSpawn { Name "a1" Where spawnbot TotalCount 2 MaxActive 2 SpawnCount 1 WaitBeforeStarting 0 WaitBetweenSpawns 30 TotalCurrency 200 TFBot { Template T_TFBot_Giant_Heavyweapons } } WaveSpawn { Name "a1" Where spawnbot TotalCount 19 MaxActive 6 SpawnCount 4 WaitBeforeStarting 7 WaitBetweenSpawns 14 TotalCurrency 100 TFBot { Template T_TFBot_Soldier_Extended_Battalion } } WaveSpawn { Name "a1.1" Where spawnbot_left Where spawnbot_right TotalCount 6 MaxActive 2 SpawnCount 2 WaitBeforeStarting 10 WaitBetweenSpawns 0 TotalCurrency 200 RandomSpawn 1 TFBot { Template T_TFBot_Giant_Scout_FAN } } WaveSpawn { Name "a2" WaitForAllSpawned "a1" Where spawnbot Where spawnbot_left Where spawnbot_right TotalCount 29 MaxActive 7 SpawnCount 5 WaitBeforeStarting 20 WaitBetweenSpawns 0 TotalCurrency 100 TFBot { Class Heavyweapons Skill Normal } } WaveSpawn { Name "a2" WaitForAllSpawned "a1" Where spawnbot TotalCount 15 MaxActive 4 SpawnCount 1 WaitBeforeStarting 20 WaitBetweenSpawns 7 TotalCurrency 100 TFBot { Template T_TFBot_Sniper_Huntsman_Spammer ClassIcon sniper_bow_multi Skill Expert } } WaveSpawn { Name "a2" WaitForAllSpawned "a1" Where spawnbot TotalCount 25 MaxActive 6 SpawnCount 3 WaitBeforeStarting 20 WaitBetweenSpawns 4 TotalCurrency 50 TFBot { Template T_TFBot_Demoman_Stickybomb } } } Wave // Wave 4 { StartWaveOutput { Target wave_start_classic_relay Action Trigger } DoneOutput { Target wave_finished_relay Action Trigger } InitWaveOutput { Target gamerules Action RunScriptCode Param " // Load popextensions script IncludeScript(`popextensions_main.nut`, getroottable()) local _root = getroottable() function IncludeExp(path) { try IncludeScript(format(`scrapyard_expert/%s`, path), _root) catch(e) printl(e) } IncludeExp(`bulwark_exp.nut`) MarauderInclude() PopExt.AddRobotTag(`bot_fullhead`, { OnSpawn = function(bot, tag) { NetProps.SetPropInt(bot, `m_Shared.m_iDecapitations`, 5) bot.SetHealth(210) // i hate rafmod } }) PopExt.AddRobotTag(`bot_med_regenpack`, { OnSpawn = function(bot, tag) { NetProps.SetPropInt(bot, `m_Shared.m_iDecapitations`, 5) bot.SetHealth(210) // i hate rafmod } }) MissionAttrs ({ `ForceHoliday`: 2 }) " } WaveSpawn { Name "boss" Where spawnbot TotalCount 1 MaxActive 1 SpawnCount 1 WaitBeforeStarting 0 WaitBetweenSpawns 0 TotalCurrency 100 TFBot { Template T_TFBot_Demo_Marauder Attributes UseBossHealthBar Attributes IgnoreFlag Scale 1.35 Tag "popext_mobber" Health 9000 } } } }