// mission by randomguy #base robot_standard.pop #base robot_giant.pop #base robot_randomguy_new.pop #base custom_medieval_randomguy.pop #base robot_gatebot_modular_disabledodge.pop WaveSchedule { CanBotsAttackWhileInSpawnRoom no RespawnWaveTime 3 StartingCurrency 800 // 400 Advanced 1 FixedRespawnWaveTime Yes AddSentryBusterWhenDamageDealtExceeds 3000 AddSentryBusterWhenKillCountExceeds 15 // UseOriginalAnimsForUnintendedClassWeapons 1 // Use original weapon animations when given to unintended class (default: 0) AllowBotExtraSlots 1 // Maybe this will let spectators exist. RobotLimit 30 SendBotsToSpectatorImmediately 1 SpawnTemplate { Name ExplanationSign origin "3470 3063 1216" angles "0 315 0" } // SpawnTemplate // { // Name Winterbridge_Sentry_Fix_GateB // } // SpawnTemplate // { // Name Winterbridge_Sentry_Fix_GateMain // } PointTemplates { SpookyPortal { NoFixUp 1 training_annotation { targetname first_vortex_hint display_text ??? lifetime 5 origin "6720 3500 900" } info_target { targetname spawnbot_astralprojectingrn_A2B // origin "6720 3112 993" origin "6720 3540 870" } info_particle_system { // origin "6720 3112 993" origin "6720 3500 900" targetname skeleton_vortex_particle_A effect_name eyeboss_tp_vortex start_active 0 } ambient_generic { // origin "6720 3112 993" origin "6720 3500 900" targetname skeleton_vortex_sound_A message misc\halloween_eyeball\vortex_eyeball_moved.wav health 10 // this is volume from 0 (silent) to 10 (normal) pitch 100 // radius 600 spawnflags 49 } logic_relay { targetname skeleton_vortex_open_relay_A OnTrigger skeleton_vortex_particle_A,Start OnTrigger skeleton_vortex_sound_A,PlaySound } logic_relay { targetname skeleton_vortex_close_relay_A OnTrigger skeleton_vortex_particle_A,Stop } info_target { targetname spawnbot_astralprojectingrn_MAIN2B // origin "5024 5376 801" origin "5024 5700 650" } info_particle_system { // origin "5024 5376 801" origin "5024 5700 650" targetname skeleton_vortex_particle_MAIN effect_name eyeboss_tp_vortex start_active 0 } ambient_generic { // origin "5024 5376 801" origin "5024 5700 650" targetname skeleton_vortex_sound_MAIN message misc\halloween_eyeball\vortex_eyeball_moved.wav health 10 // this is volume from 0 (silent) to 10 (normal) pitch 100 // radius 600 spawnflags 49 } logic_relay { targetname skeleton_vortex_open_relay_MAIN OnTrigger skeleton_vortex_particle_MAIN,Start OnTrigger skeleton_vortex_sound_MAIN,PlaySound } logic_relay { targetname skeleton_vortex_close_relay_MAIN OnTrigger skeleton_vortex_particle_MAIN,Stop } // Now for cutscene logic logic_relay { targetname cutscene_relay OnTrigger cutscene_fade,fade,,0,-1 OnTrigger pop_interface,$KillWaveSpawn,Support1,0,-1 OnTrigger pop_interface,$CollectCash,Support1,0.1,-1 OnTrigger cutscene_fade2,fade,,0.9,-1 OnTrigger cutscene_camera,$EnableAll,,0.95,-1 OnTrigger intel,ForceResetSilent,,0.95,-1 OnTrigger skeleton_vortex_open_relay_A,Trigger,,1.8,-1 OnTrigger first_vortex_hint,Show,,2,-1 OnTrigger cutscene_camera,$DisableAll,,7.95,-1 OnTrigger cutscene_fade,fade,,7.2,-1 OnTrigger pop_interface,$FinishWave,,8,-1 OnTrigger cutscene_fade2,fade,,8,-1 OnTrigger pop_interface,$CollectCash,,8.1,-1 } // Collect cash so you can't lose it because I take control away from the player. // Makes the mission easier, in a way. Too bad! point_viewcontrol { targetname cutscene_camera acceleration 0 deceleration 0 interpolatepositiontoplayer 0 spawnflags 0 speed 0 wait 10 origin "6720 2500 900" angles "0 90 0" } env_fade { targetname cutscene_fade duration 0.5 holdtime 0.5 rendercolor "0 0 0" spawnflags 0 } env_fade { targetname cutscene_fade2 duration 0.5 holdtime 0.5 rendercolor "0 0 0" spawnflags 1 } } SpawnPortalW2 { NoFixUp 1 logic_relay { targetname skeleton_vortex_open_relay_w2init OnTrigger skeleton_vortex_particle_A,Start,,0.1,-1 } } } Templates { Skeleton_Modular { UseCustomModel models/bots/skeleton_sniper/skeleton_sniper.mdl // Use custom model DeathSound misc/halloween/skeleton_break.wav UseHumanAnimations 1 NoIdleSound 1 Item "The Gunboats" CharacterAttributes { "voice pitch scale" 0 } } Skeleton_Gatebot_Modular { NoIdleSound 1 // Must be outside. EventChangeAttributes { Default { Tag bot_gatebot // having these will cause bots to run towards gates Tag nav_prefer_gate1_flank // having these will cause bots to run towards gates BehaviorModifiers push // having these will cause bots to run towards gates Attributes IgnoreFlag // having these will cause bots to run towards gates Attributes DisableDodge UseCustomModel models/bots/skeleton_sniper/skeleton_sniper.mdl // Use custom model DeathSound misc/halloween/skeleton_break.wav UseHumanAnimations 1 Item "The Gunboats" Item "Computron 5000" // Gatebot hat, because for some godforsaken reason, Skin is refusing to comply. // Skin 3 // Yellow CharacterAttributes { "voice pitch scale" 0 } } RevertGateBotsBehavior { UseCustomModel models/bots/skeleton_sniper/skeleton_sniper.mdl // Use custom model DeathSound misc/halloween/skeleton_break.wav UseHumanAnimations 1 Item "The Gunboats" // Skin 1 // Blue ItemModel { ItemName "Computron 5000" Model models/empty.mdl } CharacterAttributes { "voice pitch scale" 0 } } } } T_TFBot_Giant_Gnome_Heavy { Class heavyweapons Name "Tickle Master" ClassIcon heavy_mittens Skill Expert Health 5000 // 3000 // 5000 WeaponRestrictions MeleeOnly Attributes MiniBoss Tag bot_giant Attributes AlwaysCrit Item "The All-Father" Item "Point and Shoot" Item "The Holiday Punch" MaxVisionRange 400 // Scale 1.6 // Cause less HP. ItemAttributes { ItemName "The Holiday Punch" "dmg penalty vs players" 0 "crit does no damage" 0 // "dmg bonus vs buildings" 3 "melee attack rate bonus" 2 } CharacterAttributes { "move speed bonus" 0.5 "damage force reduction" 0.3 "airblast vulnerability multiplier" 0.3 "override footstep sound set" 2 } } T_TFBot_Soldier_Pickaxe_Tauntkill { Name "Grenade Soldier" Class Soldier Skill Expert ClassIcon soldier_pickaxe_escape_explode WeaponRestrictions MeleeOnly Item "The Escape Plan" // Item "Tyrantium Helmet" //your garbage cosmetic is trash past randomguy, this is how it's done. // loadout taken from this reddit post: https://www.reddit.com/r/TF2fashionadvice/comments/1alav0c/which_misc_cosmetic_for_my_miner_soldier_i_like/ Item "Shortness Of Breath" // Gas mask cause yknow toxic coal gas idk. Item "EOTL_Coldfront Curbstompers" // S H O E S. Item "Potato Hat" // Aperture Hat. Works as a mining hat. MaxVisionRange 250 ItemAttributes { ItemName "The Escape Plan" "blast dmg to self increased" 0.5 "always allow taunt" 1 "gesture speed increase" 2 "taunt attack time mult" 0.5 // change this to work "collect currency on kill" 1 // Collect own suicide cash "cancel falling damage" 1 "melee attack rate bonus" 2 // Main point is to nade, not to pickaxe. } UseHumanAnimations 1 // Use normal class animations instead of a bot / custom model ones Taunt // Taunt periodically { Delay 0 // Time before the first taunt starts (Default: 10) Cooldown 1 // Time between each taunt (Default: 10) Repeats 10 // How many times the bot should taunt in total (Default: 0 - Infinite) // Name "Taunt: Kazotsky Kick" //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) MaxTargetRange 100 // If set, the task activates only when the target is within specified units away } ItemAttributes { ItemName "Potato Hat" // Aperture Hat. "set item tint rgb" 2960676 // After Eight. } } T_TFBot_Giant_Engineer_Rescue { Name "Giant Ranger Engineer" ClassIcon engineer_ranger_nys Health 3000 Class Engineer Skill Expert Action FetchFlag // Forces bot to grab the bomb Item "The Rescue Ranger" WeaponRestrictions PrimaryOnly Attributes MiniBoss ItemAttributes { ItemName "The Rescue Ranger" "faster reload rate" 0.5 } CharacterAttributes { "move speed bonus" 0.5 "damage force reduction" 0.6 "airblast vulnerability multiplier" 0.6 "override footstep sound set" 4 } } T_TFBot_Medic_Crossbow { Class Medic ClassIcon medic_crossbow Skill Expert Name "Crossbow Medic" Item "The Crusader's Crossbow" Item "The Amputator" Item "Berliner's Bucket Helm" WeaponRestrictions PrimaryOnly } T_TFBot_Medic_Vaccinator_Bullet_75 { ClassIcon medic_bullet Name "Bullet Vaccinator Medic" Class Medic Skill Expert Attributes SpawnWithFullCharge Attributes VaccinatorBullets Tag bot_squad_member ItemAttributes { ItemName tf_weapon_medigun "lunchbox adds minicrits" 3 "medigun bullet resist passive" 0.75 "medigun bullet resist deployed" 0.75 "medigun charge is resists" 3 "uber duration bonus" 100 "ubercharge rate bonus" 100 } CharacterAttributes { "bot medic uber health threshold" 500 } } } SpawnTemplate { Name SpookyPortal origin "0 0 0" } SpawnTemplate // Initoutput'd in W2. { Name SpawnPortalW2 origin "0 0 0" } Mission { Objective Spy InitialCooldown 15 // Where spawnbot BeginAtWave 0 RunForThisManyWaves 1 CooldownTime 40 DesiredCount 2 TFBot { Template T_TFBot_Spy } } Mission { Objective Sniper // Where spawnbot_mission_sniper BeginAtWave 0 RunForThisManyWaves 1 InitialCooldown 25 CooldownTime 40 DesiredCount 1 TFBot { Template T_TFBot_Sniper } } // SPAWNS: // A: // spawnbot_gate01 // spawnbot_gate01_right // spawnbot_gate01_invasion // spawnbot_gate01_left (comes from next area) // B: // spawnbot_gate02 // spawnbot_gate02_left // spawnbot_gate02_invasion // spawnbot_gate02_right (comes from next area) // MAIN: // spawnbot_main // spawnbot_main_left // spawnbot_main_right // spawnbot_main_invasion // TANKS: // boss_path_21 is probably a decent one if used when B // boss_path_f1 inside gate A // boss_path_1 is at main // WAVE 1 //////////CURRENCY 750/////////////////////////////////// Wave { InitWaveOutPut { Target wave_initb_relay Action Trigger } StartWaveOutput { Target wave_start_relay Action Trigger } DoneOutput { Target wave_finished_relay Action trigger } WaveSpawn { Name stage1 Where spawnbot_gate01 TotalCount 1 MaxActive 1 SpawnCount 1 WaitBeforeStarting 0 WaitBetweenSpawns 0 TotalCurrency 50 // 25 TFBot { Template T_TFBot_Giant_Gnome_Heavy } } WaveSpawn { Name stage1 Where spawnbot_gate01_left TotalCount 10 MaxActive 10 SpawnCount 2 WaitBeforeStarting 5 WaitBetweenSpawns 2 TotalCurrency 50 // 30 TFBot { Template T_TFBot_Soldier_Pickaxe_Tauntkill } } WaveSpawn { Name stage2 WaitForAllDead stage1 Where spawnbot_gate01_invasion TotalCount 42 MaxActive 15 SpawnCount 3 WaitBeforeStarting 0 WaitBetweenSpawns 5 TotalCurrency 200 // 125 RandomChoice { Shuffle 1 TFBot { Template T_TFBot_Scout_Melee_Improved // T_TFBot_Heavyweapons_Heavyweight_Champ } TFBot { Template T_TFBot_Heavyweapons_Heavyweight_Champ_Fast } TFBot { Template T_TFBot_Heavyweapons_Heavyweight_Champ_Steel } } } // WaveSpawn // { // Name stage2 // WaitForAllDead stage1 // Where spawnbot_gate01_invasion // TotalCount 14 // 28 // MaxActive 4 // 8 // SpawnCount 1 // 2 // WaitBeforeStarting 0 // WaitBetweenSpawns 4 // TotalCurrency 85 // 60 // TFBot // { // Template T_TFBot_Medic_Crossbow // Action FetchFlag // } // } WaveSpawn { Name stage2 WaitForAllDead stage1 Where spawnbot_gate01_left TotalCount 3 MaxActive 2 SpawnCount 1 WaitBeforeStarting 0 WaitBetweenSpawns 20 TotalCurrency 185 // 100 TFBot { Template T_TFBot_Giant_Engineer_Rescue } } WaveSpawn { Name stage3 WaitForAllSpawned stage2 Where spawnbot_gate01_right TotalCount 6 MaxActive 6 SpawnCount 3 WaitBeforeStarting 10 WaitBetweenSpawns 15 TotalCurrency 200 Squad { NoWaitForFormation 1 // Prevents squad leader from waiting for squad members TFBot { Template T_TFBot_Giant_Gnome_Heavy } TFBot { Template T_TFBot_Soldier_Pickaxe_Tauntkill Health 750 Scale 1.5 Name "Jumbo Grenade Soldier" } TFBot { Template T_TFBot_Soldier_Pickaxe_Tauntkill Health 750 Scale 1.5 Name "Jumbo Grenade Soldier" } } } WaveSpawn { Name Support1 WaitForAllSpawned stage2 Where spawnbot_gate01 TotalCount 30 MaxActive 8 SpawnCount 2 WaitBeforeStarting 0 WaitBetweenSpawns 3 TotalCurrency 65 Support 1 TFBot { Template T_TFBot_Medic_Crossbow Action FetchFlag } } WaveSpawn { WaitForAllDead stage3 TotalCount 0 Where teamspawn_red WaitBeforeStarting 1.5 TFBot { Class Scout Attributes IgnoreFlag Scale 0.001 FireInput { Target !self // targets the bot this is on Action $SetLocalOrigin Cooldown 9999 Delay 0 Param "0 0 0" } } FirstSpawnOutPut { // Target wave_start_relay // Action RunScriptCode // Param " // EntFire(`cutscene_relay`,`Trigger`) ////pop_interface // EntFire(`pop_interface`,`$FinishWaveSpawn`,`Support1`) // EntFire(`pop_interface`,`$FinishWave`,``,10) // " Target cutscene_relay Action Trigger } } } // WAVE 2 //////////CURRENCY 000/////////////////////////////////// Wave { InitWaveOutPut { Target wave_initb_relay Action RunScriptCode Param " EntFire(`wave_initb_relay`,`Trigger`) EntFire(`skeleton_vortex_open_relay_w2init`,`Trigger`) " } StartWaveOutput { Target wave_start_relay Action Trigger } DoneOutput { Target wave_finished_relay Action trigger } WaveSpawn { Name stage1 Where spawnbot_gate01 TotalCount 3 // 2 MaxActive 2 SpawnCount 1 WaitBeforeStarting 0 WaitBetweenSpawns 12.5 // 20 TotalCurrency 100 RandomSpawn 0 TFBot { Template T_TFBot_Giant_Demoman Name "Giant Skeleton Bomber" AddTemplate Skeleton_Modular FireInput { Target !self // targets the bot this is on Action $TeleportToEntity Cooldown 99999 Delay 0 Param spawnbot_astralprojectingrn_A2B // name of an info_target } } } WaveSpawn { Name stage1 Where spawnbot_gate01 TotalCount 9 // 12 MaxActive 9 // 8 SpawnCount 3 WaitBeforeStarting 5 WaitBetweenSpawns 10 TotalCurrency 50 RandomSpawn 0 TFBot { Template T_TFBot_Heavyweapons_Fist } } WaveSpawn { Name stage2 WaitForAllSpawned stage1 Where spawnbot_gate01_invasion TotalCount 56 MaxActive 14 SpawnCount 4 WaitBeforeStarting 15 WaitBetweenSpawns 4 TotalCurrency 200 RandomSpawn 1 TFBot { Template T_TFBot_Sniper_Huntsman } } WaveSpawn { Name stage2 WaitForAllSpawned stage1 Where spawnbot_gate01 TotalCount 15 // 20 MaxActive 8 SpawnCount 3 WaitBeforeStarting 20 WaitBetweenSpawns 12 // 10 TotalCurrency 50 RandomSpawn 0 TFBot { Template T_TFBot_Heavyweapons_Fist } } WaveSpawn { WaitForAllDead stage2 Where spawnbot_gate01 TotalCount 50 MaxActive 10 SpawnCount 2 WaitBeforeStarting 5 WaitBetweenSpawns 5 TotalCurrency 150 RandomSpawn 0 Support 1 TFBot { Class Heavyweapons Name "Sneaky Mittens" Skill Expert ClassIcon heavy_mittens Scale 0.8 WeaponRestrictions MeleeOnly Health 150 Item "The All-Father" Item "Point and Shoot" Item "The Holiday Punch" Action Spy CharacterAttributes { "move speed bonus" 1.2 } } } WaveSpawn { Name stage3 WaitForAllDead stage2 Where spawnbot_gate01 TotalCount 9 MaxActive 6 SpawnCount 3 WaitBeforeStarting 0 WaitBetweenSpawns 20 TotalCurrency 150 RandomSpawn 0 Squad { TFBot { Template T_TFBot_Giant_Demoman // Attributes AlwaysCrit // ClassIcon demo Name "Giant Skeleton Bomber" AddTemplate Skeleton_Modular FireInput { Target !self // targets the bot this is on Action $TeleportToEntity Cooldown 99999 Delay 0 Param spawnbot_astralprojectingrn_A2B // name of an info_target } } TFBot { Template T_TFBot_Medic_Vaccinator_Bullet_75 Name "Bullet Vaccinator Skeleton" AddTemplate Skeleton_Modular FireInput { Target !self // targets the bot this is on Action $TeleportToEntity Cooldown 99999 Delay 0 Param spawnbot_astralprojectingrn_A2B // name of an info_target } } TFBot { Template T_TFBot_Medic_Vaccinator_Bullet_75 Name "Bullet Vaccinator Skeleton" AddTemplate Skeleton_Modular FireInput { Target !self // targets the bot this is on Action $TeleportToEntity Cooldown 99999 Delay 0 Param spawnbot_astralprojectingrn_A2B // name of an info_target } } } } } Wave { } Wave { } }