/////////////////////////////////////////////////////////////////////
//
// Example pop file for the map mvm_example.
//
// This pop file contains a sampling of wave types used in MVM and is commented.
// 
/////////////////////////////////////////////////////////////////////
//
// Helpful debug and console commands for developing MVM population scripts:
//
// sv_cheats 1 							// Allows cheat commands.
// god 									// Enables god mode for players.
// nb_stop 1							// Stops all bots in place.
// nb_blind 1 							// Bots will not treat players as threats.
// currency_give x						// Give player x amount of game currency to be used on upgrades.
// tf_populator_health_multiplier x.x	// Multiplies health of enemy bots - example: tf_populator_health_multiplier 0.01 will set health of bots to 1% of normal.
// tf_mvm_popfile abcd					// Will load the .pop file of the specified name - example tf_mvm_popfile mvm_mapname_challenge2 will load mvm_mapname_challenge2.pop in the tf/scripts/population directory.
// tf_mvm_jump_to_wave x				// Will jump to the specified wave number of the current .pop file - example tf_mvm_jump_to_wave 6 will jump to wave 6.
// tf_bot_flag_kill_on_touch 1			// When a bot picks up the flag, they die.
//
/////////////////////////////////////////////////////////////////////
// BEGIN POP FILE
/////////////////////////////////////////////////////////////////////

//FPSTD-by IDGCaptainRussia94 (https://steamcommunity.com/id/13371994101/)
//Rawr <3


#base robot_giant.pop                                         	// This pop file is marked to be included. These are other .pop files that contain templates for TFBots. In our WaveSpawns we can reference the templates in these pop files.
#base robot_standard.pop									  	// This pop file is marked to be included. These are other .pop files that contain templates for TFBots. In our WaveSpawns we can reference the templates in these pop files.

WaveSchedule													
{

	StartingCurrency		500                               // How much currency each player starts with. Normally 400 is a good starting point, but increased to 20k for the purpose of this test script.
	
	RespawnWaveTime 60                                        	// This is the maximum respawn time, in seconds for players when they die. Starting at 2 seconds, it grows 2 seconds per wave.
																// In this case, wave 1 will have a respawn time of 2 seconds. Wave 2 - 4 seconds. Wave 3 - 6 seocnds, and so on until it hits the cap of 10 seconds for wave 5 and beyond.
	
	CanBotsAttackWhileInSpawnRoom no                          	// Sets the robots to not attack players while they are inside of their respawn room volume.
	

	Templates
	{
		IDG_Timer //the magic timer bot
		{
			Class Heavy
			Health	2000
			Name	"Time's up!"
			Scale 1
			Item "Head Hunter"
			ClassIcon idg_timer
			Attributes UseBossHealthBar //players need to see the health
			BehaviorModifiers Mobber //Bot won't spawn with the bomb, IMPORTANT
			Tag timer //How the map knows this is the timer, IMPORTANT
			CharacterAttributes
			{
				"health regen"	-200
				"move speed bonus" 0.1

			}
		}
		IDG_TowerDefense_Runner
		{
			Class Scout
			Health	250
			Name	"Runner"
			Scale 1
			Item "Head Hunter"
			Skill Easy
			MaxVisionRange 300
			WeaponRestrictions MeleeOnly
			Item "The Atomizer"
			CharacterAttributes
			{
				"move speed bonus" 3
				"override footstep sound set" 7
			}
		}		
		IDG_TowerDefense_Testtype
		{
			Class Pyro
			Health	250
			Name	"Test"
			Scale 1
			Item "Head Hunter"
			Item "The Thermal Thruster"
			Skill Easy
			Attributes AutoJump
			AutoJumpMin 2
			AutoJumpMax 6
			MaxVisionRange 600
			WeaponRestrictions SecondaryOnly
			CharacterAttributes
			{
				"move speed bonus" 1
				"override footstep sound set" 7
				"increase buff duration"	30
				"increased jump height" 4
			}
			ItemAttributes
			{
				ItemName "The Thermal Thruster"
				"effect bar recharge rate increased" 0.1
				"falling_impact_radius_stun" 1
				"thermal_thruster_air_launch" 1
				"set item tint rgb" 15185211
				"set item tint rgb 2" 15185211
			}
		}
		IDG_TowerDefense_Giant_Creep
		{
			Class Sniper
			Health	1700
			Name	"Giant Creep"
			Scale 2
			Item "Head Hunter"
			Attributes MiniBoss
			Skill Expert
			MaxVisionRange 300
			WeaponRestrictions MeleeOnly
			Item "The Razorback"
			CharacterAttributes
			{
				"move speed bonus" 0.75
			}
		}
		IDG_TowerDefense_Creep
		{
			Class Sniper
			Health	600
			Name	"Creep"
			Item "Head Hunter"
			Skill Expert
			MaxVisionRange 100
			WeaponRestrictions MeleeOnly
			Item "The Razorback"
			CharacterAttributes
			{
				"move speed bonus" 1
			}
		}
			IDG_TowerDefense_FastCreep
		{
			Template IDG_TowerDefense_Creep
			Health	500
			Name	"Fast Creep"
			Skill Expert
			CharacterAttributes
			{
				"move speed bonus" 3
			}
		}
		IDG_TowerDefense_Rocket_Creep
		{
			Class Soldier
			Health	200
			Name	"Blaster Creep"
			Scale 0.75
			Item "Head Hunter"
			Item "The Gunboats"
			Skill Easy
			MaxVisionRange 1500
			Item "The Razorback"
			CharacterAttributes
			{
				"move speed bonus" 0.75
			}
		}
		IDG_TowerDefense_BackupCreep
		{
			Class Soldier
			Name "Backup Creep"
			Skill Normal
			Health 200
			Scale 0.75
			WeaponRestrictions MeleeOnly
			Item "The Disciplinary Action"
			Item "The Battalion's Backup"
			Attributes SpawnWithFullCharge
			CharacterAttributes
			{
				"move speed bonus"	1
				"damage force reduction" 0.2
				"airblast vulnerability multiplier" 0.2
				"increase buff duration"	1000
			}
		}
		IDG_TowerDefense_ConchCreep
		{
			Class Soldier
			Name "Conch Creep"
			Skill Normal
			Health 200
			Scale 0.75
			WeaponRestrictions MeleeOnly
			Item "The Disciplinary Action"
			Item "The Concheror"
			Attributes SpawnWithFullCharge
			CharacterAttributes
			{
				"move speed bonus"	1
				"damage force reduction" 0.2
				"airblast vulnerability multiplier" 0.2
				"increase buff duration"	1000
			}
		}
		IDG_TowerDefense_BuffCreep
		{
			Class Soldier
			Name "Buff Creep"
			Skill Normal
			Health 200
			Scale 0.75
			WeaponRestrictions MeleeOnly
			Item "The Disciplinary Action"
			Item "The Buff Banner"
			Attributes SpawnWithFullCharge
			CharacterAttributes
			{
				"move speed bonus"	1
				"damage force reduction" 0.2
				"airblast vulnerability multiplier" 0.2
				"increase buff duration"	1000
			}
		}
		IDG_TowerDefense_PusherSoldier
		{
			Class Soldier
			Name "Pusher Creep"
			Skill Normal
			Health 1000
			Scale 1.25
			WeaponRestrictions MeleeOnly
			Item "The Escape Plan"
		}
		IDG_TowerDefense_PusherConchSoldier
		{
			Template IDG_TowerDefense_PusherSoldier
			Name "Pusher Conch Creep"
			Item "The Concheror"
			Attributes SpawnWithFullCharge
			CharacterAttributes
			{
				"increase buff duration"	1000
			}
		}

		IDG_TowerDefense_Engie
		{
		Template T_TFBot_Engineer_Sentry_Tele_Battle
		Name "Back Camp Creep"
		}

		IDG_TowerDefense_InstaDeath_Pyro
		{			Class Pyro
			Health	450
			Name	"Instant Death Gasser"
			WeaponRestrictions SecondaryOnly
			MaxVisionRange 600
			Item "The Gas Passer"
			ItemAttributes
			{
				ItemName "The Gas Passer"
				"effect bar recharge rate increased" 0.1
				"explode_on_ignite" 1
				"set item tint rgb" 15185211
				"set item tint rgb 2" 15185211
			}
		}
					IDG_TowerDefense_LethalHeavy
				{
					Health	300
					Name	"InstaDeath Heavy"
					Scale	1
					Class Heavy
					ItemAttributes
					{
						ItemName	"iron curtain"
						"bullets per shot bonus"	4
						"damage bonus"	30
						"fire rate bonus"	0.01
						"aiming movespeed decreased"	0.80
						"minigun spinup time increased"	3.0
						"weapon spread bonus"	0.25
						"critboost on kill"	5
						"restore health on kill"	0.10
					}
					ItemAttributes
					{
						ItemName	"the team captain"
						"attach particle effect"	1
					}
					CharacterAttributes
					{
						"move speed bonus"	1.5
						"dmg taken from fire increased"	0.4
						"dmg taken from crit reduced"	0.25
						"dmg taken from bullets reduced"	0.50
					}
					Item	"iron curtain"
					Item "The Razorback"
					Item	"the team captain"
				}

				IDG_TowerDefense_PusherHeavy
				{
					Health	2500
					Name	"Pusher Creep"
					Scale	1.25
					Class Heavy
					Item "Gloves of Running Urgently MvM"
					WeaponRestrictions MeleeOnly
					ItemAttributes
					{
						ItemName	"Gloves of Running Urgently MvM"
						"dmg from ranged reduced"	2.5
						"dmg from melee increased"	20.0
						"melee bounds multiplier"	1.30
						"melee range multiplier"	1.30
						"melee attack rate bonus"	1.50
						"damage bonus"	5
					}
					CharacterAttributes
					{
						"move speed bonus"	1.5
						"dmg taken from fire increased"	0.4
						"dmg taken from crit reduced"	0.25
						"dmg taken from bullets reduced"	0.50
					}
				}

		IDG_TFBot_Medic_Bullet //Bullet Vacc Medic
		{
			Name "Vaccinator Medic"
			Class Medic
			Item "The Quick-Fix"
			ClassIcon medic_bullet
			Attributes SpawnWithFullCharge
			MaxVisionRange 400
			ItemAttributes
			{
				ItemName "The Quick-Fix"
				"lunchbox adds minicrits" 3
				"ubercharge rate bonus"	99999
				"uber duration bonus"	99999
				"medigun charge is resists" 1
                "medigun fire resist deployed" 0.9
                "medigun fire resist passive" 0.9
			}
			CharacterAttributes
            {
				"bot medic uber health threshold"	99999
            }
		}

	}	

/////////////////
//MISSIONS
/////////////////	
	
	Mission 													// This is a sentry buster mission. It creates sentry busters for any player sentries deemed too dangerous.
	{
		Objective DestroySentries

		InitialCooldown 5										// Amount of time once a wave starts before the mission becomes active. 
		Where spawnbot_sentrybuster					// Entity at which to spawn.
		BeginAtWave 1											// The mission becomes active on this wave.
		RunForThisManyWaves 11									// It remains active for this many waves. Generally, this is the same as the total number of waves.
		CooldownTime 35            								// This is the time, in seconds, between when Sentry Busters are allowed to spawn, should their spawning conditions be met.

        TFBot
		{
			Template T_TFBot_SentryBuster					// This references a template to use for its TFBot.
			Attributes AutoJump
			AutoJumpMin 1
			AutoJumpMax 2
			Name "Jumpin' Buster"
			//MaxVisionRange 600
			//WeaponRestrictions SecondaryOnly

			CharacterAttributes
			{
				"increased jump height" 2
			}
        }
	}

	Mission 													// This is a sniper mission. This spawns sniper(s) at periodic intervals, it will not spawn more snipers unless its conditions are met, and all previous snipers from this mission are dead.
	{
		Objective Sniper

		InitialCooldown 30										// Amount of time once a wave starts before the mission becomes active.
		Where spawnbot_sniper							// Entity at which to spawn.
		BeginAtWave 2										// The mission becomes active on this wave.
		RunForThisManyWaves 2									// It remains active for this many waves.
		CooldownTime 35											// This is the time, in seconds, between when Sniper Missions are allowed to spawn, should their spawning conditions be met.
		DesiredCount 1											// Number of snipers to spawn each time this mission's criteria are met.

		TFBot
		{
			Class Sniper
			Skill Expert
			Name Sniper
			Tag "sniper_bot"
		}
	}

	
/////////////////
//WAVES
/////////////////	
	


//WAVE 1//
	Wave
	{
		StartWaveOutput											// Output which occurs at moment the wave begins.
		{
			Target wave_start_relay_nobombcredits								// Name of the entity in the map to target.
			Action Trigger										// Input to give the targeted entity.
		}
		DoneOutput												// Output which occurrs at moment the wave is completed.
		{
			Target wave_finished_relay_30credits							// Name of the entity in the map to target.
			Action trigger										// Input to give the targeted entity.
		}

		//Checkpoint No											// Sets a checkpoint at the end of this wave.


		WaveSpawn //this is how you setup a timer as a bot
		{
			Name startupwave
			Where spawnbot_timer //IMPORTANT
			TotalCount 1
			MaxActive 1
			SpawnCount 1
	
			Support LIMITED //I'd say you should use this, but make sure it says LIMITED or else the bot will keep respawning

			WaitBeforeStarting 0
			WaitBetweenSpawns 0
			
			TotalCurrency 0
				
				TFBot
				{
					Template IDG_Timer //use this
					Health 10000 //timer loses 200 each second, but you can set to whatever, more=more time
					
				}
		}

		WaveSpawn
		{
			Name w1s1
			WaitForAllDead startupwave
			Where spawnbot										// Entity at which to spawn.
			TotalCount 10										// The total number of individual bots that will spawn.
			MaxActive 5										// The maximum number of bots, from this WaveSpawn, that can be alive in the world at any moment.
			SpawnCount 5										// Defines the number of bots to spawn at a time as a group. 
	
			WaitBeforeStarting 0								// Amount of time to wait before spawning the first bot.
			WaitBetweenSpawns 5									// Amount of time to wait between spawning each group (defined by the spawncount) of bots.
			
			TotalCurrency 100									// Amount of money dropped by all of the bots in the WaveSpawn. Money is divided equally between each bot.
				
				TFBot
				{
					Template IDG_TowerDefense_Runner								// Type of bot to spawn.
					Skill Normal 								// Skill level of bot. options are Easy, Normal, Hard, Expert in ascending difficulty.
				}
		}

		WaveSpawn
		{
			Where spawnbot
			WaitForAllDead startupwave
			TotalCount 3										// The total number of individual bots that will spawn.
			MaxActive 2										// The maximum number of bots, from this WaveSpawn, that can be alive in the world at any moment.
			SpawnCount 1										// Defines the number of bots to spawn at a time as a group. 
	
			WaitBeforeStarting 10								// Amount of time to wait before spawning the first bot.
			WaitBetweenSpawns 50								// Amount of time to wait between spawning each group (defined by the spawncount) of bots.
			
			TotalCurrency 100									// Amount of money dropped by all of the bots in the WaveSpawn. Money is divided equally between each bot.
				
				TFBot
				{
					Template T_TFBot_Giant_Soldier_Extended_Concheror								// Type of bot to spawn.
					Skill Normal 								// Skill level of bot. options are Easy, Normal, Hard, Expert in ascending difficulty.
				}
		}

		WaveSpawn
		{
			Name w1s1
			WaitForAllDead startupwave
			Where spawnbot										// Entity at which to spawn.
			TotalCount 7									// The total number of individual bots that will spawn.
			MaxActive 5										// The maximum number of bots, from this WaveSpawn, that can be alive in the world at any moment.
			SpawnCount 5										// Defines the number of bots to spawn at a time as a group. 
	
			WaitBeforeStarting 2								// Amount of time to wait before spawning the first bot.
			WaitBetweenSpawns 20									// Amount of time to wait between spawning each group (defined by the spawncount) of bots.
			
			TotalCurrency 75									// Amount of money dropped by all of the bots in the WaveSpawn. Money is divided equally between each bot.
				
				TFBot
				{
					Template IDG_TowerDefense_Creep								// Type of bot to spawn.
					Skill Normal 								// Skill level of bot. options are Easy, Normal, Hard, Expert in ascending difficulty.
					Attributes	"AlwaysFireWeapon"
				}
		}

		WaveSpawn
		{
			WaitForAllDead startupwave
			Where spawnbot										// Entity at which to spawn.
			TotalCount 3									// The total number of individual bots that will spawn.
			MaxActive 2										// The maximum number of bots, from this WaveSpawn, that can be alive in the world at any moment.
			SpawnCount 1										// Defines the number of bots to spawn at a time as a group. 
	
			Support 1

			WaitBeforeStarting 15								// Amount of time to wait before spawning the first bot.
			WaitBetweenSpawns 4									// Amount of time to wait between spawning each group (defined by the spawncount) of bots.
			
			TotalCurrency 50									// Amount of money dropped by all of the bots in the WaveSpawn. Money is divided equally between each bot.
				
				TFBot
				{
					Template IDG_TowerDefense_ConchCreep								// Type of bot to spawn.
					Skill Easy 								// Skill level of bot. options are Easy, Normal, Hard, Expert in ascending difficulty.
				}
		}

		WaveSpawn
		{
			WaitForAllDead startupwave
			Where spawnbot										// Entity at which to spawn.
			TotalCount 3									// The total number of individual bots that will spawn.
			MaxActive 2										// The maximum number of bots, from this WaveSpawn, that can be alive in the world at any moment.
			SpawnCount 1										// Defines the number of bots to spawn at a time as a group. 
	
			Support 1

			WaitBeforeStarting 15								// Amount of time to wait before spawning the first bot.
			WaitBetweenSpawns 4									// Amount of time to wait between spawning each group (defined by the spawncount) of bots.
			
			TotalCurrency 50									// Amount of money dropped by all of the bots in the WaveSpawn. Money is divided equally between each bot.
				
				TFBot
				{
					Template IDG_TowerDefense_BackupCreep								// Type of bot to spawn.
					Skill Easy 								// Skill level of bot. options are Easy, Normal, Hard, Expert in ascending difficulty.
				}
		}

		WaveSpawn
		{
			Name w1s2
			Where spawnbot
			WaitForAllSpawned w1s1
			TotalCount 40										// The total number of individual bots that will spawn.
			MaxActive 10										// The maximum number of bots, from this WaveSpawn, that can be alive in the world at any moment.
			SpawnCount 5										// Defines the number of bots to spawn at a time as a group. 
	
			WaitBeforeStarting 10								// Amount of time to wait before spawning the first bot.
			WaitBetweenSpawns 5									// Amount of time to wait between spawning each group (defined by the spawncount) of bots.
			
			TotalCurrency 100									// Amount of money dropped by all of the bots in the WaveSpawn. Money is divided equally between each bot.
				
				TFBot
				{
					Template IDG_TowerDefense_Creep								// Type of bot to spawn.
					Skill Normal 								// Skill level of bot. options are Easy, Normal, Hard, Expert in ascending difficulty.
				}
		}

			WaveSpawn
		{
			Name w1s2
			Where spawnbot_specialbomb
			WaitForAllSpawned w1s1
			TotalCount 5										// The total number of individual bots that will spawn.
			MaxActive 3										// The maximum number of bots, from this WaveSpawn, that can be alive in the world at any moment.
			SpawnCount 1										// Defines the number of bots to spawn at a time as a group. 
	
			WaitBeforeStarting 20								// Amount of time to wait before spawning the first bot.
			WaitBetweenSpawns 4									// Amount of time to wait between spawning each group (defined by the spawncount) of bots.
			
			TotalCurrency 200									// Amount of money dropped by all of the bots in the WaveSpawn. Money is divided equally between each bot.
				
				TFBot
				{
					Template IDG_TowerDefense_Creep								// Type of bot to spawn.
					tag tempbomb
					ClassIcon idg_bomb_temp
					Skill Normal 								// Skill level of bot. options are Easy, Normal, Hard, Expert in ascending difficulty.
				}
		}
		WaveSpawn
		{
			Name w1s3
			Where spawnbot
			WaitForAllSpawned w1s1
			TotalCount 25										// The total number of individual bots that will spawn.
			MaxActive 7										// The maximum number of bots, from this WaveSpawn, that can be alive in the world at any moment.
			SpawnCount 3										// Defines the number of bots to spawn at a time as a group. 
	
			WaitBeforeStarting 40								// Amount of time to wait before spawning the first bot.
			WaitBetweenSpawns 5									// Amount of time to wait between spawning each group (defined by the spawncount) of bots.
			
			TotalCurrency 100									// Amount of money dropped by all of the bots in the WaveSpawn. Money is divided equally between each bot.
				
				TFBot
				{
					Template IDG_TowerDefense_Runner								// Type of bot to spawn.
					Skill Normal 								// Skill level of bot. options are Easy, Normal, Hard, Expert in ascending difficulty.
				}
		}

			WaveSpawn
		{
			Name w1s3
			Where spawnbot_specialbomb
			WaitForAllSpawned w1s2
			TotalCount 5										// The total number of individual bots that will spawn.
			MaxActive 3										// The maximum number of bots, from this WaveSpawn, that can be alive in the world at any moment.
			SpawnCount 1										// Defines the number of bots to spawn at a time as a group. 
	
			WaitBeforeStarting 25								// Amount of time to wait before spawning the first bot.
			WaitBetweenSpawns 4									// Amount of time to wait between spawning each group (defined by the spawncount) of bots.
			
			TotalCurrency 100									// Amount of money dropped by all of the bots in the WaveSpawn. Money is divided equally between each bot.
				
				TFBot
				{
					Template IDG_TowerDefense_ConchCreep								// Type of bot to spawn.
					tag tempbomb
					ClassIcon idg_bomb_temp
					Skill Normal 								// Skill level of bot. options are Easy, Normal, Hard, Expert in ascending difficulty.
				}
		}

		WaveSpawn
		{
			Name w1s3
			Where spawnbot
			WaitForAllSpawned w1s2
			TotalCount 30										// The total number of individual bots that will spawn.
			MaxActive 15										// The maximum number of bots, from this WaveSpawn, that can be alive in the world at any moment.
			SpawnCount 5										// Defines the number of bots to spawn at a time as a group. 
	
			WaitBeforeStarting 15								// Amount of time to wait before spawning the first bot.
			WaitBetweenSpawns 5									// Amount of time to wait between spawning each group (defined by the spawncount) of bots.
			
			TotalCurrency 100							// Amount of money dropped by all of the bots in the WaveSpawn. Money is divided equally between each bot.
				
				TFBot
				{
					Template IDG_TowerDefense_Creep								// Type of bot to spawn.
					Skill Normal 								// Skill level of bot. options are Easy, Normal, Hard, Expert in ascending difficulty.
				}
		}
		WaveSpawn
		{
			Name w1s3
			Where spawnbot
			WaitForAllSpawned w1s2
			TotalCount 5										// The total number of individual bots that will spawn.
			MaxActive 5										// The maximum number of bots, from this WaveSpawn, that can be alive in the world at any moment.
			SpawnCount 1										// Defines the number of bots to spawn at a time as a group. 
	
			WaitBeforeStarting 15								// Amount of time to wait before spawning the first bot.
			WaitBetweenSpawns 8									// Amount of time to wait between spawning each group (defined by the spawncount) of bots.
			
			TotalCurrency 100									// Amount of money dropped by all of the bots in the WaveSpawn. Money is divided equally between each bot.
				
				TFBot
				{
					Template T_TFBot_Giant_Soldier_Extended_Concheror								// Type of bot to spawn.
					Skill Normal 								// Skill level of bot. options are Easy, Normal, Hard, Expert in ascending difficulty.
				}
		}

	}

//WAVE 2//
	Wave
	{
		StartWaveOutput											// Output which occurs at moment the wave begins.
		{
			Target wave_start_relay_nobombcredits								// Name of the entity in the map to target.
			Action Trigger										// Input to give the targeted entity.
		}
		DoneOutput												// Output which occurrs at moment the wave is completed.
		{
			Target wave_finished_relay_30credits							// Name of the entity in the map to target.
			Action trigger										// Input to give the targeted entity.
		}

		//Checkpoint No											// Sets a checkpoint at the end of this wave.


		WaveSpawn //this is how you setup a timer as a bot
		{
			Name startupwave
			Where spawnbot_timer //IMPORTANT
			TotalCount 1
			MaxActive 1
			SpawnCount 1
	
			Support LIMITED //I'd say you should use this, but make sure it says LIMITED or else the bot will keep respawning

			WaitBeforeStarting 0
			WaitBetweenSpawns 0
			
			TotalCurrency 40
				
				TFBot
				{
					Template IDG_Timer //use this
					Health 10000 //timer loses 200 each second, but you can set to whatever, more=more time
					
				}
		}

		WaveSpawn
		{
			Name w1s1
			WaitForAllDead startupwave
			Where spawnbot										// Entity at which to spawn.
			TotalCount 18										// The total number of individual bots that will spawn.
			MaxActive 8										// The maximum number of bots, from this WaveSpawn, that can be alive in the world at any moment.
			SpawnCount 1										// Defines the number of bots to spawn at a time as a group. 
	
			WaitBeforeStarting 0								// Amount of time to wait before spawning the first bot.
			WaitBetweenSpawns 1									// Amount of time to wait between spawning each group (defined by the spawncount) of bots.
			
			TotalCurrency 75									// Amount of money dropped by all of the bots in the WaveSpawn. Money is divided equally between each bot.
				
				TFBot
				{
					Template T_TFBot_Scout_Bonk								// Type of bot to spawn.
					Skill Normal 								// Skill level of bot. options are Easy, Normal, Hard, Expert in ascending difficulty.
				}
		}

		WaveSpawn
		{
			WaitForAllDead startupwave
			Where spawnbot										// Entity at which to spawn.
			TotalCount 2										// The total number of individual bots that will spawn.
			MaxActive 2										// The maximum number of bots, from this WaveSpawn, that can be alive in the world at any moment.
			SpawnCount 1										// Defines the number of bots to spawn at a time as a group. 
	
			WaitBeforeStarting 5								// Amount of time to wait before spawning the first bot.
			WaitBetweenSpawns 10								// Amount of time to wait between spawning each group (defined by the spawncount) of bots.
			
			TotalCurrency 75									// Amount of money dropped by all of the bots in the WaveSpawn. Money is divided equally between each bot.
				
				TFBot
				{
					Template T_TFBot_Giant_Soldier_Crit								// Type of bot to spawn.
					Skill Expert 								// Skill level of bot. options are Easy, Normal, Hard, Expert in ascending difficulty.
				}
		}

		WaveSpawn
		{
			Name w1s1
			WaitForAllDead startupwave
			Where spawnbot										// Entity at which to spawn.
			TotalCount 18										// The total number of individual bots that will spawn.
			MaxActive 8									// The maximum number of bots, from this WaveSpawn, that can be alive in the world at any moment.
			SpawnCount 1										// Defines the number of bots to spawn at a time as a group. 
	
			WaitBeforeStarting 0								// Amount of time to wait before spawning the first bot.
			WaitBetweenSpawns 1									// Amount of time to wait between spawning each group (defined by the spawncount) of bots.
			
			TotalCurrency 75									// Amount of money dropped by all of the bots in the WaveSpawn. Money is divided equally between each bot.
				
				RandomChoice
				{
				TFBot
				{
					Template IDG_TowerDefense_Creep								// Type of bot to spawn.
					Skill Normal 								// Skill level of bot. options are Easy, Normal, Hard, Expert in ascending difficulty.
				}
				TFBot
				{
					Template IDG_TowerDefense_FastCreep								// Type of bot to spawn.
					Skill Normal 								// Skill level of bot. options are Easy, Normal, Hard, Expert in ascending difficulty.
				}
			}
		}

		WaveSpawn
		{
			WaitForAllSpawned w1s1
			Where spawnbot										// Entity at which to spawn.
			TotalCount 16										// The total number of individual bots that will spawn.
			MaxActive 4									// The maximum number of bots, from this WaveSpawn, that can be alive in the world at any moment.
			SpawnCount 1										// Defines the number of bots to spawn at a time as a group. 
	
			Support 1

			WaitBeforeStarting 0								// Amount of time to wait before spawning the first bot.
			WaitBetweenSpawns 8								// Amount of time to wait between spawning each group (defined by the spawncount) of bots.
			
			TotalCurrency 50									// Amount of money dropped by all of the bots in the WaveSpawn. Money is divided equally between each bot.
				
				TFBot
				{
					Template IDG_TowerDefense_FastCreep								// Type of bot to spawn.
					Skill Normal 								// Skill level of bot. options are Easy, Normal, Hard, Expert in ascending difficulty.
				}
		}

		WaveSpawn
		{
			Name w1s2
			WaitForAllSpawned w1s1
			Where spawnbot										// Entity at which to spawn.
			TotalCount 24										// The total number of individual bots that will spawn.
			MaxActive 6									// The maximum number of bots, from this WaveSpawn, that can be alive in the world at any moment.
			SpawnCount 2										// Defines the number of bots to spawn at a time as a group. 
	
			WaitBeforeStarting 0								// Amount of time to wait before spawning the first bot.
			WaitBetweenSpawns 3									// Amount of time to wait between spawning each group (defined by the spawncount) of bots.
			
			TotalCurrency 75									// Amount of money dropped by all of the bots in the WaveSpawn. Money is divided equally between each bot.
				
				TFBot
				{
					Template IDG_TowerDefense_InstaDeath_Pyro								// Type of bot to spawn.
					Skill Normal 								// Skill level of bot. options are Easy, Normal, Hard, Expert in ascending difficulty.
				}
		}

		WaveSpawn
		{
			Name w1s2
			WaitForAllSpawned w1s1
			Where spawnbot										// Entity at which to spawn.
			TotalCount 40										// The total number of individual bots that will spawn.
			MaxActive 15									// The maximum number of bots, from this WaveSpawn, that can be alive in the world at any moment.
			SpawnCount 10										// Defines the number of bots to spawn at a time as a group. 
	
			WaitBeforeStarting 0								// Amount of time to wait before spawning the first bot.
			WaitBetweenSpawns 8								// Amount of time to wait between spawning each group (defined by the spawncount) of bots.
			
			TotalCurrency 75									// Amount of money dropped by all of the bots in the WaveSpawn. Money is divided equally between each bot.
				
				TFBot
				{
					Template IDG_TowerDefense_Runner								// Type of bot to spawn.
					Skill Normal 								// Skill level of bot. options are Easy, Normal, Hard, Expert in ascending difficulty.
				}
		}

		WaveSpawn
		{
			WaitForAllSpawned w1s1
			Where spawnbot_specialbomb										// Entity at which to spawn.
			TotalCount 4										// The total number of individual bots that will spawn.
			MaxActive 1									// The maximum number of bots, from this WaveSpawn, that can be alive in the world at any moment.
			SpawnCount 1										// Defines the number of bots to spawn at a time as a group. 
	
			WaitBeforeStarting 30								// Amount of time to wait before spawning the first bot.
			WaitBetweenSpawns 30									// Amount of time to wait between spawning each group (defined by the spawncount) of bots.
			
			TotalCurrency 75									// Amount of money dropped by all of the bots in the WaveSpawn. Money is divided equally between each bot.
				
				TFBot
				{
					Template IDG_TowerDefense_PusherHeavy								// Type of bot to spawn.
					tag sentrybomb
					ClassIcon idg_bomb_sentry
					Skill Normal 								// Skill level of bot. options are Easy, Normal, Hard, Expert in ascending difficulty.
				}
		}

		WaveSpawn
		{
			Name w1s3
			WaitForAllSpawned w1s2
			Where spawnbot										// Entity at which to spawn.
			TotalCount 12										// The total number of individual bots that will spawn.
			MaxActive 6								// The maximum number of bots, from this WaveSpawn, that can be alive in the world at any moment.
			SpawnCount 2										// Defines the number of bots to spawn at a time as a group. 
	
			WaitBeforeStarting 10								// Amount of time to wait before spawning the first bot.
			WaitBetweenSpawns 3									// Amount of time to wait between spawning each group (defined by the spawncount) of bots.
			
			TotalCurrency 75									// Amount of money dropped by all of the bots in the WaveSpawn. Money is divided equally between each bot.
				
				TFBot
				{
					Template IDG_TowerDefense_BuffCreep								// Type of bot to spawn.
					Skill Normal 								// Skill level of bot. options are Easy, Normal, Hard, Expert in ascending difficulty.
				}
		}

		WaveSpawn
		{
			Name w1s3
			WaitForAllSpawned w1s2
			Where spawnbot										// Entity at which to spawn.
			TotalCount 12										// The total number of individual bots that will spawn.
			MaxActive 6									// The maximum number of bots, from this WaveSpawn, that can be alive in the world at any moment.
			SpawnCount 2										// Defines the number of bots to spawn at a time as a group. 
	
			WaitBeforeStarting 5								// Amount of time to wait before spawning the first bot.
			WaitBetweenSpawns 3									// Amount of time to wait between spawning each group (defined by the spawncount) of bots.
			
			TotalCurrency 75									// Amount of money dropped by all of the bots in the WaveSpawn. Money is divided equally between each bot.
				
				TFBot
				{
					Template IDG_TowerDefense_BackupCreep								// Type of bot to spawn.
					Skill Normal 								// Skill level of bot. options are Easy, Normal, Hard, Expert in ascending difficulty.
				}
		}

		WaveSpawn
		{
			Name w1s3
			WaitForAllSpawned w1s2
			Where spawnbot										// Entity at which to spawn.
			TotalCount 8										// The total number of individual bots that will spawn.
			MaxActive 2									// The maximum number of bots, from this WaveSpawn, that can be alive in the world at any moment.
			SpawnCount 1										// Defines the number of bots to spawn at a time as a group. 
	
			WaitBeforeStarting 10								// Amount of time to wait before spawning the first bot.
			WaitBetweenSpawns 3									// Amount of time to wait between spawning each group (defined by the spawncount) of bots.
			
			TotalCurrency 75									// Amount of money dropped by all of the bots in the WaveSpawn. Money is divided equally between each bot.
				
				TFBot
				{
					Template IDG_TowerDefense_PusherConchSoldier								// Type of bot to spawn.
					Skill Normal 								// Skill level of bot. options are Easy, Normal, Hard, Expert in ascending difficulty.
				}
		}

		WaveSpawn
		{
			WaitForAllDead w1s2
			Where spawnbot										// Entity at which to spawn.
			TotalCount 2										// The total number of individual bots that will spawn.
			MaxActive 2										// The maximum number of bots, from this WaveSpawn, that can be alive in the world at any moment.
			SpawnCount 1										// Defines the number of bots to spawn at a time as a group. 
	
			WaitBeforeStarting 40								// Amount of time to wait before spawning the first bot.
			WaitBetweenSpawns 25								// Amount of time to wait between spawning each group (defined by the spawncount) of bots.
			
			TotalCurrency 75									// Amount of money dropped by all of the bots in the WaveSpawn. Money is divided equally between each bot.
				
				TFBot
				{
					Template T_TFBot_Giant_Soldier_SlowBarrage								// Type of bot to spawn.
					Skill Expert 								// Skill level of bot. options are Easy, Normal, Hard, Expert in ascending difficulty.
				}
		}
	}

//WAVE 3//
	Wave
	{
		StartWaveOutput											// Output which occurs at moment the wave begins.
		{
			Target wave_start_relay_nobombcredits								// Name of the entity in the map to target.
			Action Trigger										// Input to give the targeted entity.
		}
		DoneOutput												// Output which occurrs at moment the wave is completed.
		{
			Target wave_finished_relay_30credits							// Name of the entity in the map to target.
			Action trigger										// Input to give the targeted entity.
		}

		//Checkpoint No											// Sets a checkpoint at the end of this wave.


		WaveSpawn //this is how you setup a timer as a bot
		{
			Name startupwave
			Where spawnbot_timer //IMPORTANT
			TotalCount 1
			MaxActive 1
			SpawnCount 1
	
			Support LIMITED //I'd say you should use this, but make sure it says LIMITED or else the bot will keep respawning

			WaitBeforeStarting 0
			WaitBetweenSpawns 0
			
			TotalCurrency 40
				
				TFBot
				{
					Template IDG_Timer //use this
					Health 10000 //timer loses 200 each second, but you can set to whatever, more=more time
					
				}
		}

		WaveSpawn
		{
			Name w1s1
			WaitForAllDead startupwave
			Where spawnbot										// Entity at which to spawn.
			TotalCount 15										// The total number of individual bots that will spawn.
			MaxActive 10									// The maximum number of bots, from this WaveSpawn, that can be alive in the world at any moment.
			SpawnCount 1										// Defines the number of bots to spawn at a time as a group. 
	
			WaitBeforeStarting 0								// Amount of time to wait before spawning the first bot.
			WaitBetweenSpawns 1									// Amount of time to wait between spawning each group (defined by the spawncount) of bots.
			
			TotalCurrency 75									// Amount of money dropped by all of the bots in the WaveSpawn. Money is divided equally between each bot.
				
				TFBot
				{
					Template IDG_TowerDefense_BackupCreep								// Type of bot to spawn.
					Skill Normal 								// Skill level of bot. options are Easy, Normal, Hard, Expert in ascending difficulty.
				}
		}

		WaveSpawn
		{
			Name w1s1
			WaitForAllDead startupwave
			Where spawnbot_specialbomb										// Entity at which to spawn.
			TotalCount 5										// The total number of individual bots that will spawn.
			MaxActive 5										// The maximum number of bots, from this WaveSpawn, that can be alive in the world at any moment.
			SpawnCount 1										// Defines the number of bots to spawn at a time as a group. 
	
			WaitBeforeStarting 6								// Amount of time to wait before spawning the first bot.
			WaitBetweenSpawns 1									// Amount of time to wait between spawning each group (defined by the spawncount) of bots.
			
			TotalCurrency 75									// Amount of money dropped by all of the bots in the WaveSpawn. Money is divided equally between each bot.
				
				TFBot
				{
					Template IDG_TowerDefense_ConchCreep								// Type of bot to spawn.
					Skill Normal 								// Skill level of bot. options are Easy, Normal, Hard, Expert in ascending difficulty.
					Tag thrillerbomb
				}
		}

		WaveSpawn
		{
			WaitForAllSpawned w1s1
			Where spawnbot										// Entity at which to spawn.
			TotalCount 8										// The total number of individual bots that will spawn.
			MaxActive 8									// The maximum number of bots, from this WaveSpawn, that can be alive in the world at any moment.
			SpawnCount 2										// Defines the number of bots to spawn at a time as a group. 
	
			Support 1

			WaitBeforeStarting 0								// Amount of time to wait before spawning the first bot.
			WaitBetweenSpawns 6									// Amount of time to wait between spawning each group (defined by the spawncount) of bots.
			
			TotalCurrency 75									// Amount of money dropped by all of the bots in the WaveSpawn. Money is divided equally between each bot.
				
				TFBot
				{
					Template IDG_TowerDefense_Creep								// Type of bot to spawn.
					Health 800
					Skill Easy 								// Skill level of bot. options are Easy, Normal, Hard, Expert in ascending difficulty.
				}
		}

		WaveSpawn
		{
			WaitForAllSpawned w1s1
			Where spawnbot										// Entity at which to spawn.
			TotalCount 2										// The total number of individual bots that will spawn.
			MaxActive 1									// The maximum number of bots, from this WaveSpawn, that can be alive in the world at any moment.
			SpawnCount 1										// Defines the number of bots to spawn at a time as a group. 
	
			Support 1

			WaitBeforeStarting 60								// Amount of time to wait before spawning the first bot.
			WaitBetweenSpawns 25									// Amount of time to wait between spawning each group (defined by the spawncount) of bots.
			
			TotalCurrency 75									// Amount of money dropped by all of the bots in the WaveSpawn. Money is divided equally between each bot.
				
				TFBot
				{
					Template IDG_TowerDefense_PusherHeavy								// Type of bot to spawn.
					Skill Easy 								// Skill level of bot. options are Easy, Normal, Hard, Expert in ascending difficulty.
				}
		}

		WaveSpawn
		{
			Name w1s2
			WaitForAllSpawned w1s1
			Where spawnbot_specialbomb										// Entity at which to spawn.
			TotalCount 6										// The total number of individual bots that will spawn.
			MaxActive 2									// The maximum number of bots, from this WaveSpawn, that can be alive in the world at any moment.
			SpawnCount 1										// Defines the number of bots to spawn at a time as a group. 

			WaitBeforeStarting 0								// Amount of time to wait before spawning the first bot.
			WaitBetweenSpawns 20									// Amount of time to wait between spawning each group (defined by the spawncount) of bots.
			
			TotalCurrency 75									// Amount of money dropped by all of the bots in the WaveSpawn. Money is divided equally between each bot.
				
				TFBot
				{
					Template IDG_TowerDefense_BuffCreep								// Type of bot to spawn.
					tag shieldbomb
					ClassIcon idg_bomb_shield
					Skill Normal
				}
		}

		WaveSpawn
		{
			Name w1s3
			WaitForAllSpawned w1s1
			Where spawnbot										// Entity at which to spawn.
			TotalCount 30										// The total number of individual bots that will spawn.
			MaxActive 9									// The maximum number of bots, from this WaveSpawn, that can be alive in the world at any moment.
			SpawnCount 3										// Defines the number of bots to spawn at a time as a group. 

			WaitBeforeStarting 0								// Amount of time to wait before spawning the first bot.
			WaitBetweenSpawns 18									// Amount of time to wait between spawning each group (defined by the spawncount) of bots.
			
			TotalCurrency 75									// Amount of money dropped by all of the bots in the WaveSpawn. Money is divided equally between each bot.
				
				Squad
				{
				TFBot
				{
					Template IDG_TowerDefense_LethalHeavy							// Type of bot to spawn.
				}
				TFBot
				{
					Template IDG_TowerDefense_ConchCreep
				}
				TFBot
				{
					Template IDG_TowerDefense_InstaDeath_Pyro
				}
			}
		}

		WaveSpawn
		{
			Name w1s4
			WaitForAllSpawned w1s2
			Where spawnbot_specialbomb										// Entity at which to spawn.
			TotalCount 1										// The total number of individual bots that will spawn.
			MaxActive 1									// The maximum number of bots, from this WaveSpawn, that can be alive in the world at any moment.
			SpawnCount 1										// Defines the number of bots to spawn at a time as a group. 

			WaitBeforeStarting 20								// Amount of time to wait before spawning the first bot.
			WaitBetweenSpawns 20									// Amount of time to wait between spawning each group (defined by the spawncount) of bots.
			
			TotalCurrency 75									// Amount of money dropped by all of the bots in the WaveSpawn. Money is divided equally between each bot.
				
				TFBot
				{
					Template T_TFBot_Chief_Gauntlet								// Type of bot to spawn.
					Health 100000
				CharacterAttributes
				{
				"move speed bonus"	0.35
				"health regen"	250
				"damage force reduction" 0.3
				"airblast vulnerability multiplier" 0.3
				"override footstep sound set" 2
				"airblast vertical vulnerability multiplier" 0.1
				"rage giving scale" 0.1
				}
				}
		}

		WaveSpawn
		{
			WaitForAllSpawned w1s4
			Where spawnbot										// Entity at which to spawn.
			TotalCount 5										// The total number of individual bots that will spawn.
			MaxActive 5									// The maximum number of bots, from this WaveSpawn, that can be alive in the world at any moment.
			SpawnCount 1										// Defines the number of bots to spawn at a time as a group. 
	
			Support 1

			WaitBeforeStarting 10								// Amount of time to wait before spawning the first bot.
			WaitBetweenSpawns 6									// Amount of time to wait between spawning each group (defined by the spawncount) of bots.
			
			TotalCurrency 75									// Amount of money dropped by all of the bots in the WaveSpawn. Money is divided equally between each bot.
				
				TFBot
				{
					Template IDG_TowerDefense_Rocket_Creep								// Type of bot to spawn.
					Skill Easy 								// Skill level of bot. options are Easy, Normal, Hard, Expert in ascending difficulty.
				}
		}

	}

}