// mvm_scrapyard // expert skill // // Starting Currency: 800 // // +----------+----------+----------+ // | Wave | Currency | A+ | // +----------+----------+----------+ // | Wave 1 | 700 | 800 | // | Wave 2 | 700 | 800 | // | Wave 3 | 700 | 800 | // | Wave 4 | 800 | 900 | // | Wave 5 | 900 | 1000 | // | Wave 6 | 0 | 0 | // +----------+----------+----------+ // | Total | 3800 | 4300 | // +----------+----------+----------+ // #base robot_standard.pop #base robot_giant.pop #base robot_midori.pop WaveSchedule { StartingCurrency 800 CanBotsAttackWhileInSpawnRoom no RespawnWaveTime 3 FixedRespawnWaveTime 1 NoRomevisionCosmetics 1 ForceHoliday 2 NoHolidayPickups 1 NoThrillerTaunt 1 NoCritPumpkin 1 MedigunShieldDamage 1 SendBotsToSpectatorImmediately 1 AllowBotExtraSlots 1 ExtraBotSlotsNoDeathcam 0 RobotLimit 40 PrecacheModel "models/bots/boss_bot/boss_tank_color.mdl" PrecacheModel "models/props_mvm/robot_spawnpoint.mdl" PrecacheModel "models/workshop/player/items/heavy/road_rager/road_rager.mdl" PrecacheModel "models/workshop/player/items/demo/taunt_drunk_manns_cannon/taunt_drunk_manns_cannon.mdl" PrecacheModel "models/weapons/c_models/c_scopelessrifle/c_scopelessrifle.mdl" ExtraSpawnPoint { Name "ambush1" TeamNum 3 X 3424 Y 1344 Z -248 } ExtraSpawnPoint { Name "ambush2" TeamNum 3 X 2656 Y 576 Z -344 } ExtraSpawnPoint { Name "spawnbot_tank" TeamNum 3 X -384 Y -752 Z -483.993 } CustomWeapon { Name "cannontank" OriginalItemName "The Loose Cannon" "grenade launcher mortar mode" 0 "reload time decreased" -1 "fire rate bonus" 2 "projectile speed increased" 0.8 "projectile spread angle penalty" 5 "damage bonus" 2 "damage causes airblast" 1 "blast radius increased" 1.2 "mult projectile scale" 2 "explosion particle" "fireSmokeExplosion" } PointTemplates { powerup_logic { OnSpawnOutput { Target "powerup_haver_target" Action SetParent Param "!activator" Delay 0.01 } OnParentKilledOutput { Target "item_powerup_rune" Action Kill Delay 0 } info_target { "targetname" "powerup_haver_target" } } powerup_logic_medic { OnParentKilledOutput { Target "item_powerup_rune" Action Kill Delay 0 } OnParentKilledOutput { Target "powerup_logic_relay" Action Trigger Delay 0.001 } } powerup_relays { NoFixUp 1 logic_relay { "targetname" "powerup_logic_relay" "OnTrigger" "@p@powerup_haver_target*,$RemoveCond,93,0.1,-1" "OnTrigger" "@p@powerup_haver_target*,$RemoveCond,103,0.1,-1" "OnTrigger" "@p@powerup_haver_target*,$RemoveCond,109,0.1,-1" "OnTrigger" "@p@powerup_bystander_target*,$RemoveCond,93,0.1,-1" "OnTrigger" "@p@powerup_bystander_target*,$RemoveCond,103,0.1,-1" "OnTrigger" "@p@powerup_bystander_target*,$RemoveCond,109,0.1,-1" "OnTrigger" "@p@powerup_haver_target*,$RemoveCond,91,0.1,-1" "OnTrigger" "@p@powerup_haver_target*,$RemoveCond,96,0.1,-1" } } FullHeads { OnSpawnOutput { Target !activator Action $SetProp$m_iDecapitations Param 5 } } enemyspawner { prop_dynamic { "targetname" "spawnprop" "classname" "prop_dynamic" "model" "models/props_mvm/robot_spawnpoint.mdl" "DefaultAnim" "idle" "disableshadows" "1" "DisableBoneFollowers" "1" "solid" "0" "skin" "1" "spawnflags" "0" } prop_dynamic { "targetname" "spawnprop" "classname" "prop_dynamic" "model" "models/buildables/teleporter_light.mdl" "DefaultAnim" "running" "disableshadows" "1" "rendercolor" "0 0 0" "DisableBoneFollowers" "1" "solid" "0" "skin" "1" "spawnflags" "0" } } Jeep_Tank // inspired by royal { OnSpawnOutput { Target "!activator" Action "AddOutput" Param "OnHealthBelow40Percent junior:SetAnimation:panic:0:-1" } prop_dynamic { "targetname" "jeep" "spawnflags" "0" "solid" "0" "model" "models/workshop/player/items/heavy/road_rager/road_rager.mdl" "origin" "0 0 0" "angles" "0 0 0" "modelscale" "3" "skin" "0" } prop_dynamic { "targetname" "junior" "spawnflags" "0" "solid" "0" "rendercolor" "255 255 255" "renderamt" "255" "RandomAnimation" "0" "pressuredelay" "0" "physdamagescale" "1.0" "PerformanceMode" "0" "model" "models/bots/bot_worker/bot_worker.mdl" "modelscale" "1.5" "body" "0" "origin" "-8 0 48" "angles" "0 0 0" "DefaultAnim" "idle" "skin" "1" } tf_point_weapon_mimic { "targetname" "gatling_mimic" "WeaponType" "4" "TeamNum" "3" "ModelScale" "1" "SpeedMax" "5000" "SpeedMin" "5000" "Crits" "0" "Damage" "50" "SpreadAngle" "15" "SplashRadius" "10" "FireSound" "Weapon_Minigun.Fire" "origin" "152 -8 107" "angles" "0 0 0" } ambient_generic { "targetname" "windupsound" "origin" "0 0 72" "message" "Weapon_Minigun.WindUp" "health" "10" "pitch" "100" "radius" "512" "spawnflags" "48" } ambient_generic { "targetname" "minishootsound" "origin" "0 0 72" "message" "Weapon_Minigun.Fire" "health" "10" "pitch" "100" "radius" "512" "spawnflags" "16" } ambient_generic { "targetname" "winddownsound" "origin" "0 0 72" "message" "Weapon_Minigun.WindDown" "health" "10" "pitch" "100" "radius" "512" "spawnflags" "48" } info_particle_system { "targetname" "miniparticle" "origin" "144 8 107" "effect_name" "muzzle_minigun_constant" } logic_relay { "targetname" "minigun_shoot_relay" "OnTrigger" "windupsound,PlaySound,,0,-1" "OnTrigger" "windupsound,StopSound,,2,-1" "OnTrigger" "gatling_mimic,FireMultiple,4,2.5,-1" "OnTrigger" "minitimer,Enable,,2.5,-1" "OnTrigger" "minishootsound,PlaySound,,3,-1" "OnTrigger" "miniparticle,Start,,2.5,-1" "OnTrigger" "minitimer,Disable,,8,-1" "OnTrigger" "minishootsound,StopSound,,8,-1" "OnTrigger" "miniparticle,Stop,,8,-1" "OnTrigger" "winddownsound,PlaySound,,8.5,-1" } logic_timer { "targetname" "minifiretimer" "refiretime" "0.105" "startdisabled" "1" "OnTimer" "gatling_mimic,FireMultiple,4,0,-1" } logic_timer { "targetname" "minishoottimer" "UpperRandomBound" "10" "LowerRandomBound" "10" "UseRandomTime" "0" "OnTimer" "minigun_shoot_relay,Trigger,,0,-1" } } Cannon_Tank { prop_dynamic { "targetname" "cannon" "spawnflags" "0" "solid" "0" "model" "models/workshop/player/items/demo/taunt_drunk_manns_cannon/taunt_drunk_manns_cannon.mdl" "origin" "0 0 0" "angles" "0 0 0" "modelscale" "3" "skin" "0" } tf_point_weapon_mimic { "targetname" "cannon_mimic" "WeaponType" "1" "TeamNum" "3" "ModelScale" "1" "SpeedMax" "525" "SpeedMin" "525" "Crits" "1" "Damage" "75" "SpreadAngle" "0" "SplashRadius" "175" "FireSound" "Weapon_LooseCannon.Shoot" "origin" "116 0 81" "angles" "0 0 0" "$weaponname" "cannontank" } ambient_generic { "targetname" "cannon_sound" "origin" "0 0 72" "message" "Weapon_LooseCannon.Shoot" "health" "10" "pitch" "100" "radius" "512" "spawnflags" "48" } logic_timer { "targetname" "cannontimer" "refiretime" "5" "OnTimer" "cannon_mimic,fireonce,,0,-1" "OnTimer" "cannon_sound,playsound,,0,-1" } } SawbladeLauncherLogic { func_rotating { targetname "rot" spawnflags 593 fanfriction 333333 maxspeed 400 } OnSpawnOutput { target "rot" action "addoutput" param "avelocity 0 400 0" delay 0.01 } OnSpawnOutput { target "!activator" action "addoutput" param "rendermode 10" delay 0.01 } prop_dynamic { targetname "blade1" parentname "rot" model "models/props_forest/saw_blade.mdl" angles "0 0 -90" } } spawnlogic { Nofixup 1 logic_auto { "origin" "0 0 0" "targetname" "mainrelay" "OnMapSpawn" "tf_objective_resource,$SetClientProp$m_iszMvMPopfileName,Wracked Wreckage (Expert),0,-1" "OnMapSpawn" "boss_deploy_relay,AddOutput,OnTrigger tankboss:DestroyIfAtCapturePoint:0:-1" "OnMapSpawn" "boss_deploy_relay,AddOutput,OnTrigger tank_bus:DestroyIfAtCapturePoint:0:-1" } logic_relay { "targetname" "disable_spawn_spawnbot_mission_spy" "ontrigger" "spawnbot_mission_spy,Disable,0,0,-1" } logic_relay { "targetname" "enable_spawn_spawnbot_mission_spy" "ontrigger" "spawnbot_mission_spy,Enable,0,0,-1" } logic_relay { "targetname" "disable_spawn_spawnbot_right" "ontrigger" "spawnbot_alt,Disable,0,0,-1" } logic_relay { "targetname" "enable_spawn_spawnbot_right" "ontrigger" "spawnbot_right,Enable,0,0,-1" } } Superjump_PT { trigger_push { "pushdir" "0 0 0" "spawnflags" "1" "speed" "1000" "filtername" "filter_boss" "StartDisabled" "1" "targetname" "crawlerpush" "mins" "-48 -48 -48" "maxs" "48 48 48" } logic_timer { "refiretime" "20" "OnTimer" "crawlerpush,Enable,,0,-1" "OnTimer" "crawlerpush,Disable,,0.7,-1" } filter_tf_bot_has_tag { "targetname" "filter_boss" "require_all_tags" "1" "tags" "boss" "Negated" "Allow entities that match criteria" } } } SpawnTemplate "powerup_relays" SpawnTemplate "spawnlogic" SpawnTemplate { Name "enemyspawner" Origin "3424 1344 -272" } SpawnTemplate { Name "enemyspawner" Origin "2656 576 -368" } Templates { T_TFBot_Heavyweapons_Flyweight_Champ { Name "Flyweight Champ" Class Heavyweapons ClassIcon heavy_champ Scale 0.75 Health 100 Skill Normal WeaponRestrictions MeleeOnly Item "The Killing Gloves of Boxing" Item "Pugilist's Protector" CharacterAttributes { "move speed bonus" 2 "damage penalty" 0.5 "alt-fire disabled" 1 } } T_TFBot_Medic_Booster { Name "Booster Medic" Class Medic ClassIcon medic_boost Attributes SpawnWithFullCharge Skill Normal Item "Upgradeable TF_WEAPON_MEDIGUN" Item "dec2014 Surgeon's Shako" ItemAttributes { ItemName "Upgradeable TF_WEAPON_MEDIGUN" "paintkit_proto_def_index" 214 "set_item_texture_wear" 0 "effect cond override" 36 // "medigun keep charged effect" 1 "effect add attributes" "CARD: move speed bonus|1.2|fire rate bonus hidden|0.5|reload time increased hidden|0" "ubercharge rate bonus" 9999 "uber duration bonus" -9 } ItemAttributes { ItemName "dec2014 Surgeon's Shako" "set item tint rgb" 125064113 } CharacterAttributes { "heal rate bonus" 10 "bot medic uber health threshold" 999 } } T_TFBot_Medic_Precise { Name "Precision Medic" Class Medic ClassIcon medic_precision Attributes SpawnWithFullCharge Skill Normal Item "Upgradeable TF_WEAPON_MEDIGUN" Item "dec2014 Surgeon's Shako" ItemAttributes { ItemName "Upgradeable TF_WEAPON_MEDIGUN" "paintkit_proto_def_index" 226 "set_item_texture_wear" 0 "effect cond override" 96 "ubercharge rate bonus" 9999 "uber duration bonus" -9 } ItemAttributes { ItemName "dec2014 Surgeon's Shako" "set item tint rgb" 16548608 } CharacterAttributes { "heal rate bonus" 10 "bot medic uber health threshold" 999 } } T_TFBot_Medic_Resist { Name "Resistance Medic" Class Medic ClassIcon medic_resist Attributes SpawnWithFullCharge Skill Normal Item "Upgradeable TF_WEAPON_MEDIGUN" Item "dec2014 Surgeon's Shako" ItemAttributes { ItemName "Upgradeable TF_WEAPON_MEDIGUN" "paintkit_proto_def_index" 226 "set_item_texture_wear" 0 "effect cond override" 93 "ubercharge rate bonus" 9999 "uber duration bonus" -9 } ItemAttributes { ItemName "dec2014 Surgeon's Shako" "set item tint rgb" 2452877 } CharacterAttributes { "heal rate bonus" 10 "bot medic uber health threshold" 999 } } T_TFBot_Sniper_Upgraded { Name "Upgraded Combat Sniper" Class Sniper ClassIcon sniper_awp_sif Health 200 Skill Normal Attributes HoldFireUntilFullReload MaxVisionRange 700 WeaponRestrictions PrimaryOnly Item "Upgradeable TF_WEAPON_SCATTERGUN" Item "Cranium Cover" Item "Preventative Measure" Item "The Cammy Jammies" ItemAttributes { ItemName "Upgradeable TF_WEAPON_SCATTERGUN" "custom item model" "models/weapons/c_models/c_csgo_awp/c_csgo_awp.mdl" "bullets per shot bonus" 0.1 "custom weapon fire sound" "Weapon_AWP.Single" "weapon spread bonus" 0.8 "maxammo primary increased" 5.625 "clip size bonus" 3.333 "fire rate bonus" 0.9 "reload time increased" 10 "damage bonus" 5 "reload full clip at once" 1 "no reduced damage rampup" 1 "burst fire count" -4 "burst fire rate mult" 2 "custom kill icon" "sniperrifle" } FireInput { Target @e@m_hMyWeapons$0@!self Action $setprop@wep.m_iClip1 Param 20 Delay 0.1 Repeats 1 } } } Mission // busters { Where spawnbot Objective DestroySentries BeginAtWave 1 DesiredCount 1 InitialCooldown 20 CooldownTime 50 TFBot { Template T_TFBot_SentryBuster_Fix } } Mission // For Wave 1 { Where spawnbot_mission_sniper Objective Sniper BeginAtWave 1 RunForThisManyWaves 1 DesiredCount 2 InitialCooldown 35 CooldownTime 35 TFBot { Template T_TFBot_Sniper_Sydney_Sleeper_2 } } Mission // For Wave 2 { Where spawnbot_mission_spy Objective Spy BeginAtWave 2 RunForThisManyWaves 1 DesiredCount 3 InitialCooldown 20 CooldownTime 60 TFBot { Class Spy Skill Expert } } Mission // For Wave 3 { Where spawnbot Objective Engineer BeginAtWave 3 RunForThisManyWaves 1 DesiredCount 1 InitialCooldown 20 CooldownTime 60 TFBot { Template T_TFBot_Engineer_Sentry_Teleporter Health 275 } } Mission // For Wave 4 { Where spawnbot_mission_sniper Objective Sniper BeginAtWave 4 RunForThisManyWaves 1 DesiredCount 2 InitialCooldown 30 CooldownTime 60 TFBot { Template T_TFBot_Sniper Name "Full-Heads Bazaar Sniper" Skill Expert Item "The Bazaar Bargain" Item "Desert Marauder" SpawnTemplate "FullHeads" } } Wave // Wave 1 { WaitWhenDone 65 Checkpoint Yes StartWaveOutput { Target wave_start_classic_relay Action Trigger } DoneOutput { Target wave_finished_relay Action Trigger } WaveSpawn { Name "part01" Where spawnbot Where spawnbot_left Where spawnbot_right TotalCount 30 MaxActive 30 SpawnCount 1 WaitBeforeStarting 0 WaitBetweenSpawns 0 TotalCurrency 100 TFBot { Template T_TFBot_Heavyweapons_Flyweight_Champ } } WaveSpawn { Name "part02" WaitForAllSpawned "part01" Where spawnbot TotalCount 4 MaxActive 4 SpawnCount 2 WaitBeforeStarting 0 WaitBetweenSpawns 15 TotalCurrency 200 Squad { TFBot { Template T_TFBot_Giant_Soldier_SlowBarrage_Improved } TFBot { Template T_TFBot_Giant_Medic_Shield Attributes IgnoreEnemies } } } WaveSpawn { Name "part02" WaitForAllDead "part01" Where spawnbot TotalCount 24 MaxActive 12 SpawnCount 6 WaitBeforeStarting 10 WaitBetweenSpawns 5 TotalCurrency 100 TFBot { Template T_TFBot_Pyro_Dragon_Fury Skill Hard } } WaveSpawn { Name "part03" WaitForAllSpawned "part02" Where spawnbot TotalCount 25 MaxActive 10 SpawnCount 5 WaitBeforeStarting 0 WaitBetweenSpawns 5 TotalCurrency 100 TFBot { Template T_TFBot_Heavyweapons_Shotgun } } WaveSpawn { Name "part03" WaitForAllSpawned "part02" Where spawnbot TotalCount 4 MaxActive 4 SpawnCount 1 WaitBeforeStarting 0 WaitBetweenSpawns 25 TotalCurrency 100 TFBot { Template T_TFBot_Giant_Scout Name "Giant Bat Scout" ClassIcon scout_bat_nys WeaponRestrictions MeleeOnly } } WaveSpawn { Name "part03" WaitForAllSpawned "part02" Where spawnbot TotalCount 8 MaxActive 4 SpawnCount 1 WaitBeforeStarting 20 WaitBetweenSpawns 5 TotalCurrency 100 TFBot { Template T_TFBot_Demoman_Samurai } } } Wave // Wave 2 { WaitWhenDone 65 Checkpoint Yes StartWaveOutput { Target wave_start_classic_relay Action Trigger } DoneOutput { Target wave_finished_relay Action Trigger } WaveSpawn { Name "part01" Where spawnbot TotalCount 27 MaxActive 27 SpawnCount 1 WaitBeforeStarting 0 WaitBetweenSpawns 0 TotalCurrency 100 TFBot { Template T_TFBot_Demoman_Knight } } WaveSpawn { Name "part02" WaitForAllDead "part01" Where spawnbot TotalCount 10 MaxActive 10 SpawnCount 5 WaitBeforeStarting 0 WaitBetweenSpawns 20 TotalCurrency 200 Squad { TFBot { Template T_TFBot_Giant_Heavyweapons AimTrackingInterval 1 // aims poorly CustomEyeGlowColor "0 255 255" } TFBot { Template T_TFBot_Medic_Kritzkrieg } TFBot { Template T_TFBot_Medic_Kritzkrieg } TFBot { Template T_TFBot_Medic_Kritzkrieg } TFBot { Template T_TFBot_Medic_Kritzkrieg } } } WaveSpawn { Name "part02" WaitForAllSpawned "part01" Where spawnbot TotalCount 28 MaxActive 7 SpawnCount 2 WaitBeforeStarting 42 WaitBetweenSpawns 2 TotalCurrency 100 TFBot { Class Demoman Skill Normal Attributes HoldFireUntilFullReload } } WaveSpawn { Name "part03" WaitForAllSpawned "part02" Where spawnbot TotalCount 4 MaxActive 2 SpawnCount 1 WaitBeforeStarting 0 WaitBetweenSpawns 20 TotalCurrency 100 TFBot { Template T_TFBot_Giant_Soldier_Spammer Name "Giant Rapid Fire Conch Soldier" ClassIcon soldier_conch_spammer Attributes SpawnWithFullCharge Item "The Concheror" CharacterAttributes { "increase buff duration" 9 "deploy time decreased" 0.5 } } } WaveSpawn // Tank 10k HP { Name "tank" WaitForAllSpawned "part02" TotalCount 1 MaxActive 1 SpawnCount 1 WaitBeforeStarting 10 WaitBetweenSpawns 0 TotalCurrency 100 Tank { Name "tankboss" StartingPathTrackNode "tank_path_b_1" Health 10000 Speed 80 Skin 0 Model "models/empty.mdl" SpawnTemplate Jeep_Tank DisableSmokestack 1 DisableTracks 1 DisableChildModels 1 NoScreenShake 1 // Disable screen shake (Default: 0) NoCrushDamage 1 // Tanks cannot crush players (Default: 0) PingSound "misc/null.wav" EngineLoopSound "misc/null.wav" // IsMiniBoss 0 OnBombDroppedOutput { Target boss_deploy_relay Action Trigger } } } WaveSpawn { Name "part03a" WaitForAllSpawned "tank" Where spawnbot_left TotalCount 40 MaxActive 16 SpawnCount 4 WaitBeforeStarting 0 WaitBetweenSpawns 3 TotalCurrency 100 Squad { NoWaitForFormation 1 TFBot { Class Sniper ClassIcon sniper_bushwacka Name "Bushwacka Sniper" Health 300 Scale 1.25 WeaponRestrictions MeleeOnly Item "The Bushwacka" } TFBot { Template T_TFBot_Sniper_Jarate Skill Normal AimLeadProjectileSpeed 1020 } } } } Wave // Wave 3 { WaitWhenDone 65 Checkpoint Yes StartWaveOutput { Target wave_start_classic_relay Action Trigger } DoneOutput { Target wave_finished_relay Action Trigger } WaveSpawn // Dummy { TotalCount 0 SpawnCount 0 WaitBeforeStarting 0 FirstSpawnOutput { Target second_bomb_classic_enable Action Trigger } } WaveSpawn { Name "part01" Where spawnbot TotalCount 4 MaxActive 4 SpawnCount 2 WaitBeforeStarting 0 WaitBetweenSpawns 20 TotalCurrency 200 Squad { TFBot { Template T_TFBot_Giant_Soldier_Spammer_Reload_Hatted } TFBot { Template T_TFBot_Medic_Booster } } } WaveSpawn { Name "part01" Where spawnbot_right TotalCount 32 MaxActive 8 SpawnCount 4 WaitBeforeStarting 5 WaitBetweenSpawns 2 TotalCurrency 100 TFBot { Template T_TFBot_Sniper_SMG Skill Normal } } WaveSpawn // Tank 14k HP { Name "tank" WaitForAllSpawned "part01" TotalCount 1 MaxActive 1 SpawnCount 1 WaitBeforeStarting 0 WaitBetweenSpawns 0 TotalCurrency 100 Tank { Name "tankboss" StartingPathTrackNode "tank_path_b_1" Health 14000 Speed 75 Skin 0 ClassIcon tank_grenade Model "models/empty.mdl" SpawnTemplate "Cannon_Tank" IsCrit 1 DisableSmokestack 1 DisableTracks 1 DisableChildModels 1 NoScreenShake 1 // Disable screen shake (Default: 0) PingSound "misc/null.wav" EngineLoopSound "misc/null.wav" OnBombDroppedOutput { Target boss_deploy_relay Action Trigger } } } WaveSpawn { Name "part02" WaitForAllSpawned "part01" Where spawnbot TotalCount 16 MaxActive 8 SpawnCount 4 WaitBeforeStarting 10 WaitBetweenSpawns 20 TotalCurrency 100 Squad { TFBot { Template T_TFBot_Giant_Demo_Barrage } TFBot { Template T_TFBot_Medic_Quick_Uber } TFBot { Template T_TFBot_Medic_Quick_Uber } TFBot { Template T_TFBot_Medic_Quick_Uber } } } WaveSpawn { Name "part02" WaitForAllSpawned "part01" Where spawnbot TotalCount 4 MaxActive 2 SpawnCount 1 WaitBeforeStarting 10 WaitBetweenSpawns 15 TotalCurrency 100 TFBot { Template T_TFBot_Giant_Scout_Pistol } } WaveSpawn { Name "part03" WaitForAllSpawned "part02" Where spawnbot TotalCount 12 MaxActive 4 SpawnCount 2 WaitBeforeStarting 0 WaitBetweenSpawns 4 TotalCurrency 100 TFBot { Template T_TFBot_Heavy_IronFist_Airblast } } WaveSpawn { Name "support" Where spawnbot TotalCount 999 MaxActive 8 SpawnCount 4 WaitBeforeStarting 0 WaitBetweenSpawns 2 TotalCurrency 0 Support 1 TFBot { Template T_TFBot_Scout_Melee_Fix } } // WaveSpawn // { // Name "ambush" // WaitForAllSpawned "part02" // Where ambush1 // Where ambush2 // TotalCount 20 // MaxActive 5 // SpawnCount 1 // WaitBeforeStarting 0 // WaitBetweenSpawns 2 // TotalCurrency 0 // Support Limited // RandomSpawn 1 // FirstSpawnWarningSound "mvm/mvm_tele_deliver.wav" // TFBot // { // Class Soldier // ClassIcon soldier_ambush // Skill Easy // AimTrackingInterval 0.05 // CustomEyeGlowColor "255 240 36" // Action Mobber // MoveBehindEnemy 1 // MaxVisionRange 450 // ItemAttributes // { // ItemName "TF_WEAPON_ROCKETLAUNCHER" // "crit from behind" 1 // "blast dmg to self increased" 0 // } // } // } } Wave // Wave 4 { WaitWhenDone 65 Checkpoint Yes StartWaveOutput { Target wave_start_classic_relay Action Trigger } DoneOutput { Target wave_finished_relay Action Trigger } WaveSpawn // Dummy { TotalCount 0 SpawnCount 0 WaitBeforeStarting 0 FirstSpawnOutput { Target second_bomb_classic_enable Action Trigger } } WaveSpawn { Name "part01" Where spawnbot TotalCount 40 MaxActive 16 SpawnCount 4 WaitBeforeStarting 0 WaitBetweenSpawns 4 TotalCurrency 100 Squad { TFBot { Template T_TFBot_Sniper_Huntsman Name "Penetrating Bowman" ClassIcon sniper_bow_penetrate Health 300 Scale 1.25 Item "The Anger" Item "The Fortified Compound" ItemAttributes { ItemName "The Fortified Compound" "projectile penetration" 1 "damage penalty" 0.5 } } TFBot { Template T_TFBot_Medic_Quick_Uber } } } WaveSpawn { Name "part01" Where spawnbot TotalCount 4 MaxActive 2 SpawnCount 2 WaitBeforeStarting 20 WaitBetweenSpawns 25 TotalCurrency 200 Squad { TFBot { Name "Giant Sawblade Heavy" Class Heavyweapons ClassIcon heavy_chainsaw Health 5000 Attributes MiniBoss Skill Expert MaxVisionRange 1000 WeaponRestrictions PrimaryOnly AimLeadProjectileSpeed 1 Item "TF_WEAPON_GRENADELAUNCHER" Item "The Outdoorsman" ItemAttributes { ItemName "TF_WEAPON_GRENADELAUNCHER" "override projectile type" 18 // ranger "mult projectile scale" 0.01 "projectile gravity native" 0.1 "mult projectile scale" 0.01 "ignores other projectiles" 1 "fire rate bonus hidden" 2 "reload time increased" -1 "penetrate teammates" 1 "damage penalty" 0.3 "bleeding duration" 4 "mult bleeding dmg" 2.5 "custom weapon fire sound" "misc/null.wav" "custom item model" "models/empty.mdl" "custom kill icon" "saw_kill" "no self blast dmg" 1 "custom projectile size" 1350 "centerfire projectile" 1 "projectile lifetime" 5 "grenade bounce speed" 1 "reset arrow hits on bounce" 1 } ItemAttributes { ItemName "TF_WEAPON_FISTS" "is_passive_weapon" 1 "fire rate penalty" 2 "damage penalty" 0 } CharacterAttributes { "move speed bonus" 0.5 "damage force reduction" 0.2 "airblast vulnerability multiplier" 0.2 "override footstep sound set" 2 } ShootTemplate { Name SawbladeLauncherLogic AttachToProjectile 1 ItemName "TF_WEAPON_GRENADELAUNCHER" } } TFBot { Template T_TFBot_Giant_Medic_Regen } } } WaveSpawn { Name "part02a" WaitForAllSpawned "part01" Where spawnbot_left Where spawnbot_right TotalCount 32 MaxActive 8 SpawnCount 4 WaitBeforeStarting 0 WaitBetweenSpawns 2 TotalCurrency 100 TFBot { Class Demoman ClassIcon demo_clusterbomb Name "Clusterbomb Shotgun" Skill Normal Attributes HoldFireUntilFullReload Item "The Iron Bomber" ItemAttributes { ItemName "The Iron Bomber" "fire rate bonus" 0.001 "damage penalty" 0.25 "faster reload rate" 0.9 "projectile speed increased" 1.2 "blast radius decreased" 1.25 "projectile spread angle penalty" 2 } } } WaveSpawn { Name "part02" WaitForAllSpawned "part01" Where spawnbot TotalCount 20 MaxActive 10 SpawnCount 10 WaitBeforeStarting 30 WaitBetweenSpawns 15 TotalCurrency 200 Squad { NoWaitForFormation 1 TFBot { Name "Giant Explosive Pyro" Class Pyro ClassIcon pyro_gascann_explode Health 3000 Attributes MiniBoss Attributes SpawnWithFullCharge Attributes AlwaysFireWeapon Skill Expert WeaponRestrictions SecondaryOnly Item "The Gas Passer" Item "The Rusty Reaper" ItemAttributes { ItemName "The Gas Passer" "mult_item_meter_charge_rate" 0.001 "explode_on_ignite" 1 "fire rate bonus" 6 } CharacterAttributes { "move speed bonus" 0.5 "damage force reduction" 0.6 "airblast vulnerability multiplier" 0.6 "override footstep sound set" 6 "dmg penalty vs players" 0.25 } } TFBot { Template T_TFBot_Scout_SunStick_Fix } TFBot { Template T_TFBot_Scout_SunStick_Fix } TFBot { Template T_TFBot_Scout_SunStick_Fix } TFBot { Template T_TFBot_Scout_SunStick_Fix } TFBot { Template T_TFBot_Scout_SunStick_Fix } TFBot { Template T_TFBot_Scout_SunStick_Fix } TFBot { Template T_TFBot_Scout_SunStick_Fix } TFBot { Template T_TFBot_Scout_SunStick_Fix } TFBot { Template T_TFBot_Scout_SunStick_Fix } } } WaveSpawn { Name "part02" WaitForAllSpawned "part01" Where spawnbot TotalCount 30 MaxActive 15 SpawnCount 5 WaitBeforeStarting 50 WaitBetweenSpawns 3 TotalCurrency 100 TFBot { Template T_TFBot_Soldier_RocketShotgun Name "Conchbox Soldier" ClassIcon soldier_blackbox_conch_lite Attributes SpawnWithFullCharge Item "The Concheror" CharacterAttributes { "increase buff duration" 9 "deploy time decreased" 0.5 } } } WaveSpawn { Name "part03" WaitForAllSpawned "part02" Where spawnbot TotalCount 24 MaxActive 12 SpawnCount 4 WaitBeforeStarting 10 WaitBetweenSpawns 3 TotalCurrency 100 Squad { TFBot { Template T_TFBot_Sniper_Upgraded SpawnTemplate "powerup_logic" } TFBot { Template T_TFBot_Medic_Precise SpawnTemplate "powerup_logic_medic" } } } } Wave // Wave 5 { WaitWhenDone 65 Checkpoint Yes StartWaveOutput { Target wave_start_classic_relay Action Trigger } DoneOutput { Target wave_finished_relay Action Trigger } WaveSpawn // Dummy { TotalCount 0 SpawnCount 0 WaitBeforeStarting 0 FirstSpawnOutput { Target second_bomb_classic_enable Action Trigger } } WaveSpawn { Name "part01" Where spawnbot TotalCount 4 MaxActive 4 SpawnCount 2 WaitBeforeStarting 0 WaitBetweenSpawns 30 TotalCurrency 200 Squad { TFBot { Template T_TFBot_Giant_Heavyweapons } TFBot { Template T_TFBot_Giant_Medic_Shield Attributes IgnoreEnemies } } } WaveSpawn { Name "part01" Where spawnbot_left TotalCount 16 MaxActive 4 SpawnCount 2 WaitBeforeStarting 15 WaitBetweenSpawns 2 TotalCurrency 200 TFBot { Name "Minor Bomber" Class Demoman ClassIcon demo_bomber Scale 1.4 Health 650 Attributes HoldFireUntilFullReload Attributes AlwaysCrit Skill Hard WeaponRestrictions PrimaryOnly // AimLeadProjectileSpeed 1217 Item "Upgradeable TF_WEAPON_GRENADELAUNCHER" Item "Prince Tavish's Crown" ItemAttributes { ItemName "Upgradeable TF_WEAPON_GRENADELAUNCHER" "fire rate bonus" 0.2 "faster reload rate" 0.3 "clip size upgrade atomic" 2 "projectile speed increased" 1.5 } CharacterAttributes { "move speed bonus" 0.85 "health regen" 2 "head scale" 0.8 } } } WaveSpawn { Name "part02" WaitForAllDead "part01" Where spawnbot TotalCount 4 MaxActive 4 SpawnCount 1 WaitBeforeStarting 0 WaitBetweenSpawns 12 TotalCurrency 100 TFBot { Template T_TFBot_Giant_Demo_Sticky } } WaveSpawn { Name "part02" WaitForAllDead "part01" Where spawnbot TotalCount 32 MaxActive 8 SpawnCount 4 WaitBeforeStarting 0 WaitBetweenSpawns 2 TotalCurrency 100 TFBot { Class Scout Skill Hard Attributes HoldFireUntilFullReload } } WaveSpawn // Tank 20k HP { Name "tank" WaitForAllDead "part01" TotalCount 1 MaxActive 1 SpawnCount 1 WaitBeforeStarting 0 WaitBetweenSpawns 30 TotalCurrency 100 Tank { Name "tankboss" StartingPathTrackNode "tank_path_b_1" Health 20000 Speed 75 Skin 0 OnBombDroppedOutput { Target boss_deploy_relay Action Trigger } } } WaveSpawn { Name "part03" WaitForAllDead "part01" Where ambush1 Where ambush2 TotalCount 4 MaxActive 4 SpawnCount 1 WaitBeforeStarting 32 WaitBetweenSpawns 10 TotalCurrency 100 RandomSpawn 1 FirstSpawnWarningSound "mvm/mvm_tele_deliver.wav" TFBot { Template T_TFBot_Giant_Pyro Name "Giant Cloak Pyro" ClassIcon pyro_d Action Mobber Attributes DisableDodge MoveBehindEnemy 1 MaxVisionRange 150 AddCond { Name "TF_COND_STEALTHED_USER_BUFF_FADING" } Item "The Backburner" CharacterAttributes { "airblast disabled" 1 } } } WaveSpawn { Name "part03" WaitForAllDead "part01" Where spawnbot TotalCount 24 MaxActive 12 SpawnCount 4 WaitBeforeStarting 45 WaitBetweenSpawns 3 TotalCurrency 200 Squad { TFBot { Template T_TFBot_Heavyweapons_Shotgun Name "Armored Shotgun Heavy" ClassIcon heavy_shotgun_armored Health 900 Scale 1.5 SpawnTemplate "powerup_logic" } TFBot { Template T_TFBot_Medic_Resist SpawnTemplate "powerup_logic_medic" } } } WaveSpawn // Tank 20k HP { Name "tank2" WaitForAllDead "part01" TotalCount 1 MaxActive 1 SpawnCount 1 WaitBeforeStarting 45 WaitBetweenSpawns 0 TotalCurrency 100 Tank { Name "tankboss" StartingPathTrackNode "tank_path_a_1" Health 20000 Speed 75 Skin 1 OnBombDroppedOutput { Target boss_deploy_relay Action Trigger } } } WaveSpawn { Name "support" WaitForAllDead "part01" Where spawnbot TotalCount 4 MaxActive 4 SpawnCount 2 WaitBeforeStarting 0 WaitBetweenSpawns 2 TotalCurrency 0 Support 1 TFBot { Class Soldier Name "M-1000" ClassIcon sniper_m4a1_lite Skill Normal WeaponRestrictions SecondaryOnly Item "Loyalty Reward" ItemAttributes { ItemName "tf_weapon_shotgun_soldier" "custom item model" "models/weapons/c_models/c_scopelessrifle/c_scopelessrifle.mdl" "bullets per shot bonus" 0.1 "weapon spread bonus" 0.75 "clip size bonus" 3 "fire rate bonus" 0.2 "reload full clip at once" 1 "reload time increased" 10 "burst fire count" -6 "burst fire rate mult" 5 "custom kill icon" "bazaar_bargain" "custom weapon fire sound" "Weapon_Bazaar_Bargain.Single" } } } WaveSpawn { Name "manglers" Where spawnbot TotalCount 999 MaxActive 2 SpawnCount 2 WaitBeforeStarting 30 WaitBetweenSpawns 60 TotalCurrency 0 Support 1 TFBot { Template T_TFBot_Soldier_Mangler Action Sniper AimTrackingInterval 0.05 AimLeadProjectileSpeed 1100 CustomEyeGlowColor "255 240 36" ItemAttributes { ItemName "The Cow Mangler 5000" "reload time decreased" -1 } } } } Wave // Wave 6 { WaitWhenDone 65 Checkpoint Yes StartWaveOutput { Target wave_start_relay Action Trigger } DoneOutput { Target wave_finished_relay Action Trigger } WaveSpawn // Dummy { TotalCount 0 SpawnCount 0 WaitBeforeStarting 0 FirstSpawnOutput { Target second_bomb_classic_enable Action Trigger } } WaveSpawn { Name "part01" Where spawnbot_tank TotalCount 1 MaxActive 1 SpawnCount 1 WaitBeforeStarting 0 WaitBetweenSpawns 0 TotalCurrency 100 TFBot { Name "Brawler Titan Soldier" Class Soldier ClassIcon soldier_hellmet_lite Scale 2 Health 55000 Attributes MiniBoss Attributes UseBossHealthBar Attributes DisableDodge Skill Expert Action Mobber UseHumanAnimations 1 UseCustomModel "models/bots/soldier_boss/bot_soldier_boss_gibby.mdl" Tag boss Item "The Direct Hit" Item "The Half-Zatoichi" Item "The Hellmet" Item "Blast Blocker" ItemAttributes { ItemName "The Direct Hit" "provide on active" 1 "is invisible" 1 "single wep deploy time increased" 1.5 "fire rate penalty" 20 "no_jump" 1 "reload full clip at once" 1 "reload time decreased" -1 "custom projectile model" "models/props_badlands/barrel03.mdl" "dmg bonus vs buildings" 4444 "custom weapon fire sound" "misc/null.wav" "projectile gravity" 300 "no self blast dmg" 2 "set damagetype ignite" 1 "custom kill icon" "purgatory" "no self effect" 1 "penetrate teammates" 1 "mult_player_movespeed_active" 0 } ItemAttributes { ItemName "The Half-Zatoichi" "honorbound" 0 "decapitate type" 0 "restore health on kill" 0 "is invisible" 1 "is_passive_weapon" 1 "damage bonus" 2 "custom weapon fire sound" "misc/null.wav" "custom hit sound" "MVM.GiantSoldierRocketShoot" "damage causes airblast" 1 "apply z velocity on damage" 1024 "apply look velocity on damage" 1024 "fire rate penalty" 2 "melee range multiplier" 1.4 "custom kill icon" "fists" } CharacterAttributes { "move speed bonus" 1.75 "damage force reduction" 0 "airblast vulnerability multiplier" 0 "airblast vertical vulnerability multiplier" 0 "override footstep sound set" 7 "torso scale" 0.65 "hand scale" 1.25 "increased jump height" 2 "cancel falling damage" 1 "bot custom jump particle" 1 "mult duck speed" 3 } WeaponSwitch { Delay 0.1 Cooldown 30 Repeats 1 Type "Melee" } Sequence { Name "Run_MELEE" Delay 0 Repeats 1 IfHealthBelow 55001 } Taunt //Taunt periodically { Delay 0 //Time before the first taunt starts (Default: 10) Cooldown 1 //Time between each taunt (Default: 10) Repeats 1 //How many times the bot should taunt in total (Default: 0 - Infinite) IfSeeTarget 0 //When set to 1, this task activates only when the bot can see the target player (Default 0 - Always activate) } WeaponSwitch { Delay 10 Cooldown 20 Repeats 0 Type "Primary" } WeaponSwitch { Delay 12.5 Cooldown 20 Repeats 0 Type "Primary" } FireWeapon { Delay 12.5 Cooldown 20 Repeats 0 Type "Primary" } Sequence { Name "taunt_cyoa_PDA_intro" Delay 10 Cooldown 20 Repeats 0 } Sequence { Name "throw_fire" Delay 12.5 Cooldown 20 Repeats 0 } WeaponSwitch { Delay 13.5 Cooldown 20 Repeats 0 Type "Melee" } } } // WaveSpawn // { // Name "part01s" // Where spawnbot // TotalCount 40 // MaxActive 8 // SpawnCount 4 // WaitBeforeStarting 5 // WaitBetweenSpawns 2 // TotalCurrency 400 // Support 1 // RandomChoice // { // TFBot // { // Class Pyro // Skill Expert // CharacterAttributes { "airblast disabled" 1 } // } // TFBot // { // Class Pyro // Skill Expert // CharacterAttributes { "airblast disabled" 1 } // } // TFBot // { // Class Pyro // Skill Expert // ClassIcon pyro_flare_infinite // Name "Rapid Flare Pyro" // WeaponRestrictions SecondaryOnly // Item "The Flare Gun" // ItemAttributes // { // ItemName "the flare gun" // //"reload time decreased" 0.2 // "fire rate bonus" 0.3 // } // } // } // } // WaveSpawn // { // Name "part02" // Where spawnbot // TotalCount 36 // MaxActive 16 // SpawnCount 4 // WaitBeforeStarting 40 // WaitBetweenSpawns 2 // TotalCurrency 400 // Support 1 // TFBot // { // Class Spy // ClassIcon helicoper_blue_nys // Name "Chopper Spy" // Action Mobber // UseHumanAnimations 1 // Item "Taunt: The Travel Agent" // Taunt //Taunt periodically // { // Delay 0.1 //Time before the first taunt starts (Default: 10) // Cooldown 1 //Time between each taunt (Default: 10) // Repeats 0 //How many times the bot should taunt in total (Default: 0 - Infinite) // Duration 9999 //Duration of a looping taunt (Default: 0.1) // Name "Taunt: The Travel Agent" //If set, uses this item taunt instead of default // IfSeeTarget 0 //When set to 1, this task activates only when the bot can see the target player (Default 0 - Always activate) // } // CharacterAttributes // { // "cannot disguise" 1 // "stomp player damage" 20 // "stomp player force" 10 // "stomp player time" 0.5 // } // } // } } }