#base robot_giant.pop #base robot_standard.pop population { StartingCurrency 600 //how much money players start with RespawnWaveTime 2 //just leave this as 2 AddSentryBusterWhenDamageDealtExceeds 5500 //these 2 decide how much dmg and/or kills a sentry needs before a buster is added to the queue AddSentryBusterWhenKillCountExceeds 35 CanBotsAttackWhileInSpawnRoom no Templates //where custom bot templates go, ive included a few here already { DH_Soldier { ClassIcon soldier_directhit_lite Health 200 Name "Direct Hit Soldier" Class Soldier Skill Expert WeaponRestrictions PrimaryOnly Item "The Direct Hit" Item "Tyrantium Helmet" } Heavy_Normal { ClassIcon heavy Health 300 Name "Heavy" Class Heavy Skill Normal WeaponRestrictions PrimaryOnly } Phlog_Pyro { ClassIcon pyro_phlog_v2 Health 175 Name "Phlog Pyro" Class Pyro Skill Expert WeaponRestrictions PrimaryOnly Attributes "SpawnWithFullCharge" CharacterAttributes { "gesture speed increase" 3 "increase buff duration HIDDEN" 2 } Taunt { Delay 1 Cooldown 1 Repeats 1 Duration 5 IfSeeTarget 0 MaxTargetRange 900 } Item "The Phlogistinator" Item "A Head Full of Hot Air" } DF_Pyro { ClassIcon pyro_dragonfury Health 175 Name "Fury Pyro" Class Pyro Skill Hard WeaponRestrictions PrimaryOnly Item "The Dragon's Fury" Item "Dead Heat" } Soldier_Charged { ClassIcon soldier_crit Health 200 Name "Charged Soldier" Class Soldier Skill Easy WeaponRestrictions PrimaryOnly Attributes "AlwaysCrit" Attributes "HoldFireUntilFullReload" ItemAttributes { ItemName "The Original" "faster reload rate" 0.2 "fire rate bonus" 2 "Projectile speed increased" 0.5 } Item "The Original" Item "Idiot Box" } Soldier_Hard { ClassIcon soldier Health 200 Name "Soldier" Class Soldier Skill Hard WeaponRestrictions PrimaryOnly } Scout_Hard { ClassIcon scout Health 125 Name "Scout" Class Scout Skill Hard WeaponRestrictions PrimaryOnly } Giant_Spread_Soldier { ClassIcon soldier_rocketrain Health 4200 Name "Giant Cluster Soldier" Class Soldier Skill Expert WeaponRestrictions PrimaryOnly Attributes "MiniBoss" Attributes "HoldFireUntilFullReload" ItemAttributes { ItemName "TF_WEAPON_ROCKETLAUNCHER" "clip size upgrade atomic" 6 "faster reload rate" 0.5 "fire rate bonus" 0.01 "projectile spread angle penalty" 4 "Projectile speed increased HIDDEN" 1.2 } CharacterAttributes { "move speed bonus" 0.5 "damage force reduction" 0.3 "airblast vulnerability multiplier" 0.3 "override footstep sound set" 3 } Item "Breach and Bomb" } Datbot_Giant_Dragon_Fury_Pyro { ClassIcon pyro_dragon_fury_giant Health 3000 Name "Giant Fury Pyro" Class Pyro Skill Expert WeaponRestrictions PrimaryOnly Attributes "MiniBoss" CharacterAttributes { "move speed bonus" 0.5 "damage force reduction" 0.4 "airblast vulnerability multiplier" 0.4 "override footstep sound set" 6 "damage bonus" 1.4 } Item "The Dragon's Fury" Item "The Rugged Respirator" } } Mission { Objective Sniper //spawns X amount of snipers after an itial cooldown and then a following cooldown BeginAtWave 1 RunForThisManyWaves 1 InitialCooldown 60 CooldownTime 32 DesiredCount 1 Where spawnbot_mission_sniper TFBot { Template T_TFBot_Sniper } } Mission { Objective DestroySentries //spawns a buster once it has been added to the queue and the cooldown as ended, mandatory to spawn busters BeginAtWave 1 RunForThisManyWaves 7 InitialCooldown 25 CooldownTime 35 DesiredCount 1 Where spawnbot TFBot { Template T_TFBot_SentryBuster } } Wave { WaitWhenDone 65 Checkpoint Yes StartWaveOutput { Target wave_start_relay Action Trigger } DoneOutput { Target wave_finished_relay Action Trigger } WaveSpawn { Name Subwave1 //name of the group TotalCurrency 50 //how much money will be dropped across all bots TotalCount 32 //how many total bots in this wavespawn MaxActive 8 //how many can be active, note there is a limit of 22 active across all active wavespawns SpawnCount 2 //how many will spawn per group WaitBeforeStarting 0 WaitBetweenSpawns 1 Where spawnbot //what bot spawn the bot template will use, spawnbot refers to using engie bot teles and a mix of spawns, this varies per map TFBot { Template T_TFBot_Demoman_Knight //the bot template you want to spawn, valve templates use tfbot before their name } } } WaveSpawn { Name Subwave2 WaitForAllDead Subwave1 //waits until all wavespawns that have the matching name are dead TotalCurrency 56 TotalCount 24 MaxActive 6 SpawnCount 1 WaitBeforeStarting 3 //waits this amount of time in addition to the time it takes the condition to trigger WaitBetweenSpawns 2 Where spawnbot_right TFBot { Template T_TFBot_Demoman } } WaveSpawn { Name Subwave2 WaitForAllSpawned Subwave1 //waits until all wavespawns that have the matching name have spawned TotalCurrency 50 TotalCount 25 MaxActive 8 SpawnCount 1 WaitBeforeStarting 12 WaitBetweenSpawns 1.5 Where spawnbot_left TFBot { Template T_TFBot_Pyro } } WaveSpawn { Name Subwave3 WaitForAllSpawned Subwave2 TotalCurrency 106 //try to make the cash per wave equal to a multiple of 50 TotalCount 53 MaxActive 11 SpawnCount 9 WaitBeforeStarting 15 WaitBetweenSpawns 12 Where spawnbot Support 1 //support 1 makes bots spawn infinitely, ignoring the total count, support limited makes them still not count as needing to be defeated to end the wave but will only spawn their total count times. TFBot { Template T } } WaveSpawn { Name Subwave3 //aim for about 3 subwaves per wave, these being small sections of a wave conprised of 1-3 bot types WaitForAllSpawned Subwave2 TotalCurrency 40 TotalCount 10 MaxActive 6 SpawnCount 2 WaitBeforeStarting 15 WaitBetweenSpawns 7 Where spawnbot_lower Squad //squad allows multiple bots to spawn at once, medics will heal the squad leader who will lead the squad which is the first in the squad list. { TFBot { Template DH_Soldier Skill Normal //can be used to adjust the wavespawns skill levels from default, higher skill levels cause better tracking and explosion placement } TFBot { Template T_TFBot_Medic_QuickUber } } } } Wave { WaitWhenDone 65 Checkpoint Yes StartWaveOutput { Target wave_start_relay Action Trigger } DoneOutput { Target wave_finished_relay Action Trigger } WaveSpawn { TotalCurrency 100 TotalCount 10 MaxActive 2 SpawnCount 1 WaitBeforeStarting 0 WaitBetweenSpawns 2 Where spawnbot TFBot { Template T_TFBot_Giant_Scout_Baseball } } } Wave { WaitWhenDone 65 Checkpoint Yes StartWaveOutput { Target wave_start_relay Action Trigger } DoneOutput { Target wave_finished_relay Action Trigger } WaveSpawn { TotalCurrency 20 TotalCount 20 MaxActive 4 SpawnCount 2 WaitBeforeStarting 0 WaitBetweenSpawns 6 Where spawnbot TFBot { Template T_TFBot_Heavyweapons_Heavyweight_Champ } } } Wave { WaitWhenDone 65 Checkpoint Yes StartWaveOutput { Target wave_start_relay Action Trigger } DoneOutput { Target wave_finished_relay Action Trigger } WaveSpawn { TotalCurrency 20 TotalCount 20 MaxActive 4 SpawnCount 2 WaitBeforeStarting 0 WaitBetweenSpawns 6 Where spawnbot TFBot { Template T_TFBot_Heavyweapons_Heavyweight_Champ } } } Wave { WaitWhenDone 65 Checkpoint Yes StartWaveOutput { Target wave_start_relay Action Trigger } DoneOutput { Target wave_finished_relay Action Trigger } WaveSpawn { TotalCurrency 20 TotalCount 20 MaxActive 4 SpawnCount 2 WaitBeforeStarting 0 WaitBetweenSpawns 4 Where spawnbot TFBot { Template T_TFBot_Heavyweapons_Heavyweight_Champ } } } Wave { WaitWhenDone 65 Checkpoint Yes StartWaveOutput { Target wave_start_relay Action Trigger } DoneOutput { Target wave_finished_relay Action Trigger } WaveSpawn { TotalCurrency 20 TotalCount 20 MaxActive 4 SpawnCount 2 WaitBeforeStarting 0 WaitBetweenSpawns 6 Where spawnbot TFBot { Template T_TFBot_Heavyweapons_Heavyweight_Champ } } } Wave { WaitWhenDone 65 Checkpoint Yes StartWaveOutput { Target wave_start_relay Action Trigger } DoneOutput { Target wave_finished_relay Action Trigger } WaveSpawn { TotalCurrency 20 TotalCount 20 MaxActive 4 SpawnCount 2 WaitBeforeStarting 0 WaitBetweenSpawns 6 Where spawnbot TFBot { Template T_TFBot_Heavyweapons_Heavyweight_Champ } } }