#base robot_standard.pop #base robot_giant.pop Templates { T_TFBot_Giant_Soldier_Burst_Charged { ClassIcon soldier_crit Health 3800 Name "Giant Charged Burst Soldier" Class Soldier Skill Hard Attributes AlwaysCrit Attributes HoldFireUntilFullReload Attributes DisableDodge Attributes MiniBoss Item "the original" Item "the gunboats" Item "the grenadier's softcap" ItemAttributes { ItemName "the original" "fire rate bonus" .15 "Projectile speed increased" .5 "faster reload rate" 1.3 } CharacterAttributes { "move speed bonus" .5 "override footstep sound set" 3 "airblast vulnerability multiplier" .1 "airblast vertical vulnerability multiplier" .5 "damage force reduction" .5 } } } WaveSchedule { StartingCurrency 0 RespawnWaveTimeBlue 3 FixedRespawnWaveTimeBlue 3 CanBotsAttackWhileInSpawnRoom Yes RespawnWaveTimeBlue 1 //replaces the normal respawn kv's NoReanimators 1 SniperAllowHeadshots 1 SentryBusterFriendlyFire 1 NoSapUnownedBuildings 1 SendBotsToSpectatorImmediately 1 RobotLimit 25 BotPushaway 0 BotsAreHumans 0 MaxTotalPlayers 6 DisplayRobotDeathNotice 0 FixedBuybacks 1 BuybacksPerWave 0 StealthDamageReduction 0.1 MedigunShieldDamage 0.8 WaveStartCountdown 5 ReverseWinConditions 1 BluHumanFlagCapture 0 BluHumanFlagPickup 1 AllowJoinTeamBlueMax 6 AllowJoinTeamBlue 1 HumansMustJoinTeam blue BluPlayersAreRobots 1 SetCreditTeam 3 FlagCarrierMovementPenalty 0.75 BluHumanInfiniteAmmo 1 BluHumanInfiniteCloak 1 PlayerMiniBossMinRespawnTime 15 BotsRandomCrit 1 NoRomevisionCosmetics 1 //ew rom cosmetics SniperHideLasers 1 //ew eye cancer TextPrintTime 0 BotTeleportUberDuration 1 BluHumanTeleportOnSpawn 1 BotPushaway 0 DisallowUpgrade "maxammo primary increased" DisallowUpgrade "maxammo secondary increased" DisallowUpgrade "maxammo metal increased" DisallowUpgrade "metal regen" ClassLimit { Engineer 1 } PrecacheModel "models/props_mvm/mvm_upgrade_blu_center.mdl" PrecacheModel "models/props_mvm/mvm_upgrade_blu_tools.mdl" PrecacheModel "models/props_mvm/mvm_upgrade_blu.mdl" PrecacheModel "models/props_mvm/reversemvm_redbot_wall.mdl" PlayerAttributes // Player attributes appied for the whole mission { "cancel falling damage" 1 "always allow taunt" 1 "allow bunny hop" 1 "penetrate teammates" 1 Engineer { "max health additive bonus" 150 "upgrade rate decrease" 2.25 "mult dispenser rate" 4 "engy dispenser radius increased" 2 "mult teleporter recharge rate" .01 "engineer teleporter build rate multiplier" 3 } } PointTemplates { corelogic //all the things we want to automatically run when the popfile loads. { NoFixup 1 logic_auto { "origin" "0 0 0" "targetname" "mainrelay" //you probably won't risk crashes on simpler mvm maps, but the further away from the edict limit you can be the better "OnMapSpawn" "item_ammopack*,Kill,,0,-1" //might want to comment this out if players have limited ammo "OnMapSpawn" "Barricade*,Kill,,0,-1" //rottenburg specific, deletes front tank barricade //not really necessary on rottenburg, but removing random decorations on more complex maps may keep you under the edict limit and avoid crashes. "OnMapSpawn" "move_rope,Kill,,0,-1" "OnMapSpawn" "keyframe_rope,Kill,,0,-1" //"OnMapSpawn" "filter_redteam,Kill,,0,-1" //red team filters might cause problems, deleting them might cause more problems //"OnMapSpawn" "trigger_push,Disable,,0,-1" //some maps use trigger_pushes intended to un-stick bots //Gatebot related: //"OnMapSpawn" "bot_stun_*,Kill,,0,-1" //some gates may stun players //"OnMapSpawn" "filter_blue_bombhat,Kill,,0,-1" //gatebot maps will need their capture filter deleted for players to cap, name is map dependent but usually its this //"OnMapSpawn" "gate1_alarm*,Kill,,0,-1" //spammed by both teams if we kill the capture filter, very annoying. //AddOutput can be used to connect our own home-brewed point templates to existing map logic: "OnMapSpawn" "wave_start_relay*,AddOutput,OnTrigger spawnbarrier*:Disable:0:-1" "OnMapSpawn" "wave_finished_relay,AddOutput,OnTrigger spawnbarrier*:Enable:0:-1" //What we're doing: //"wave_start_relay*,AddOutput, //wave_start_relay_classic/endurance is the targetname for a logic_relay that is triggered on wave start, logic_relays (along with most other ents) accept AddOutput as an input. // * will trigger our relay alongside any others with wave_start_relay in the name, this only works for suffixes (*_start_relay* will not work). //OnTrigger spawnbarrier*:Disable:0:-1" //When wave_start_relay_classic or _endurance triggers, it will trigger Disable on 'spawnbarrierA' and 'spawnbarrierA1' with a 0 second delay, -1 means this relay can be triggered an infinite amount of times. //We can also use AddOutput to change an ent rather than just latch onto it: "OnMapSpawn" "hint,AddOutput,display_text test,10,-1" //change annotation text to test 10s after map spawn "OnMapSpawn" "wave_start_relay_classic,AddOutput,OnTrigger hint:Show:0:-1" } logic_relay //trigger this to kill all players and buildings { "targetname" "kill_relay" "OnTrigger" "obj_dispenser,RemoveHealth,5000,0,-1" "OnTrigger" "obj_sentrygun,RemoveHealth,5000,0,-1" "OnTrigger" "obj_teleporter,RemoveHealth,5000,0,-1" "OnTrigger" "player,SetHealth,-10000,0,-1" } logic_relay //trigger this to lose { "origin" "0 0 0" "targetname" "redwin_relay" "OnTrigger" "bots_win_red,RoundWin,,0,-1" "OnTrigger" "pit_explosion_wav,PlaySound,,0,-1" //map dependent } trigger_multiple //Forces thirdperson while deploying bomb { "targetname" "thirdperson" "StartDisabled" "1" "spawnflags" "3" "origin" "1542.488770 739.029175 -143.968689" "maxs" "50 50 50" "mins" "-50 -50 -50" "filtername" "filter_blue" "OnStartTouch" "!activator,setforcedtauntcam,1,0.1,-1" //!activator is any entity currently inside of the trigger_multiple "OnStartTouch" "!activator,SetHUDVisibility,0,0.1,-1" "OnStartTouch" "!activator,DisableDamageForces,,0,-1" //doesn't work? "OnEndTouch" "!activator,setforcedtauntcam,0,0,-1" "OnEndTouch" "!activator,SetHUDVisibility,1,0,-1" "OnEndTouch" "!activator,EnableDamageForces,,0,-1" } func_nav_prerequisite //tells bots with a tag to defend this area, like telling gatebots to stay at the gate { "targetname" "towernav" "mins" "-1000 -1000 -1000" "maxs" "1000 1000 1000" "Entity" "towerspawn" "filtername" "filter_tower" "origin" "1542.488770 739.029175 -143.968689" "spawnflags" "1" "start_disabled" "0" "StartDisabled" "0" "Task" "2" "Value" "-1" } filter_tf_bot_has_tag //our tag { "Negated" "0" "require_all_tags" "1" "tags" "bot_tower" "targetname" "filter_tower" } func_nav_prerequisite //repeated for hatch { "targetname" "hatchnav" "mins" "-100 -100 -100" "maxs" "100 100 100" "Entity" "hatchspawn" "filtername" "filter_hatch" "origin" "1542.488770 739.029175 -143.968689" "spawnflags" "1" "start_disabled" "0" "StartDisabled" "0" "Task" "2" "Value" "-1" } filter_tf_bot_has_tag { "Negated" "0" "require_all_tags" "1" "tags" "bot_hatch" "targetname" "filter_hatch" } game_round_win //use redwin_relay instead { "origin" "0 0 0" "TeamNum" "2" "targetname" "bots_win_red" "switch_teams" "0" "force_map_reset" "1" "classname" "game_round_win" } } annotations { NoFixup 1 training_annotation { "targetname" "hint" "display_text" "This is an annotation! Use these to convey important information to players" "lifetime" "10" "origin" "2926.356201 -3175.968750 -61.9686" } } barriers //spawn blocker { NoFixup 1 func_forcefield { "disablereceiveshadows" "0" "origin" "0 0 0" "renderamt" "255" "rendercolor" "255 255 255" "renderfx" "0" "rendermode" "10" "TeamNum" "2" "targetname" "spawnbarrierA1" "parentname" "spawnbarrierA" "mins" "-300 -100 -300" "maxs" "300 100 1100" "StartDisabled" "0" } prop_dynamic //prop for show { "targetname" "spawnbarrierA" "angles" "0 0 0" "DisableBoneFollowers" "1" "disablereceiveshadows" "1" "model" "models/props_vehicles/train_flatcar_container.mdl" "disableshadows" "1" "ExplodeDamage" "0" "ExplodeRadius" "0" "fademaxdist" "0" "fademindist" "-1" "fadescale" "1" "MaxAnimTime" "10" "maxdxlevel" "0" "MinAnimTime" "5" "mindxlevel" "0" "modelscale" "1.5" "PerformanceMode" "0" "pressuredelay" "0" "RandomAnimation" "0" "renderamt" "0" "renderfx" "16" //hologram effect, see renderfx section on the developer wiki for more "rendermode" "0" "SetBodyGroup" "0" "skin" "0" //set to 1 for red traincar, many props separate different variants through skins "CollisionGroup" "0" "solid" "0" "spawnflags" "0" "StartDisabled" "0" "origin" "0 0 0" } } barriers2 //tunnel blocker { NoFixup 1 func_forcefield //what actually blocks players { "disablereceiveshadows" "0" "origin" "0 0 0" "renderamt" "255" "rendercolor" "255 255 255" "renderfx" "0" "rendermode" "10" "TeamNum" "2" "targetname" "barrierB1" "parentname" "barrierB" "mins" "-100 -100 -100" "maxs" "300 200 100" "StartDisabled" "0" } prop_dynamic //prop for show { "targetname" "barrierB" "angles" "0 0 0" "DisableBoneFollowers" "1" "disablereceiveshadows" "1" "model" "models/props_vehicles/train_flatcar_container.mdl" "disableshadows" "1" "ExplodeDamage" "0" "ExplodeRadius" "0" "fademaxdist" "0" "fademindist" "-1" "fadescale" "1" "MaxAnimTime" "10" "maxdxlevel" "0" "MinAnimTime" "5" "mindxlevel" "0" "modelscale" "1.5" "PerformanceMode" "0" "pressuredelay" "0" "RandomAnimation" "0" "renderamt" "0" "renderfx" "16" //hologram "rendermode" "0" "SetBodyGroup" "0" "skin" "0" "CollisionGroup" "0" "solid" "0" "spawnflags" "0" "StartDisabled" "0" "origin" "0 0 0" } } station { NoFixup 1 func_upgradestation { "mins" "-105 -100 0" "maxs" "105 100 242" "solid" "0" } prop_dynamic { "targetname" "upgradestation" "angles" "0 0 0" "DisableBoneFollowers" "0" "disablereceiveshadows" "0" "disableshadows" "1" "ExplodeDamage" "0" "ExplodeRadius" "0" "fademaxdist" "0" "fademindist" "-1" "fadescale" "1" "MaxAnimTime" "10" "maxdxlevel" "0" "MinAnimTime" "5" "mindxlevel" "0" "model" "models\props_mvm\mvm_upgrade_blu_center.mdl" "modelscale" "1" "PerformanceMode" "0" "pressuredelay" "0" "RandomAnimation" "0" "renderamt" "255" "renderfx" "0" "rendermode" "0" "SetBodyGroup" "0" "skin" "0" "solid" "0" "spawnflags" "0" "origin" "0 0 0" } prop_dynamic { "targetname" "upgradestation1" "angles" "0 0 0" "DisableBoneFollowers" "0" "disablereceiveshadows" "0" "disableshadows" "1" "ExplodeDamage" "0" "ExplodeRadius" "0" "fademaxdist" "0" "fademindist" "-1" "fadescale" "1" "MaxAnimTime" "10" "maxdxlevel" "0" "MinAnimTime" "5" "mindxlevel" "0" "model" "models\props_mvm\mvm_upgrade_blu_tools.mdl" "modelscale" "1" "PerformanceMode" "0" "pressuredelay" "0" "RandomAnimation" "0" "renderamt" "255" "renderfx" "0" "rendermode" "0" "SetBodyGroup" "0" "skin" "0" "solid" "0" "spawnflags" "0" "origin" "0 0 0" } func_upgradestation { "mins" "-100 -100 0" "maxs" "90 60 100" "parentname" "upgradestation" } prop_dynamic { "targetname" "shopcollision" "angles" "0 -90 0" "DisableBoneFollowers" "1" "disablereceiveshadows" "1" "model" "models/props_vehicles/train_flatcar_container.mdl" "disableshadows" "1" "ExplodeDamage" "0" "ExplodeRadius" "0" "fademaxdist" "0" "fademindist" "-1" "fadescale" "1" "MaxAnimTime" "10" "maxdxlevel" "0" "MinAnimTime" "5" "mindxlevel" "0" "modelscale" "1" "PerformanceMode" "0" "pressuredelay" "0" "RandomAnimation" "0" "renderamt" "0" "renderfx" "0" "rendermode" "10" "SetBodyGroup" "0" "skin" "0" "CollisionGroup" "5" "solid" "6" "spawnflags" "0" "StartDisabled" "0" "origin" "0 0 0" } } blocker //giant building for blocking stuff { NoFixup 1 prop_dynamic { "id" "3" "targetname" "barrierinvis" "classname" "prop_dynamic" "angles" "0 0 0" "DisableBoneFollowers" "0" "disablereceiveshadows" "0" "disableshadows" "1" "ExplodeDamage" "0" "ExplodeRadius" "0" "fademaxdist" "0" "fademindist" "-1" "fadescale" "1" "MaxAnimTime" "10" "maxdxlevel" "0" "MinAnimTime" "5" "mindxlevel" "0" "model" "models\props_buildings\building_002a.mdl" "modelscale" "1" "PerformanceMode" "0" "pressuredelay" "0" "RandomAnimation" "0" "renderamt" "255" "renderfx" "0" "rendermode" "0" // "rendermode" "10" un-comment this and comment rendermode 0 to make it invisible "SetBodyGroup" "0" "skin" "0" "solid" "6" "spawnflags" "0" "origin" "0 0 0" } } } SpawnTemplate "corelogic" SpawnTemplate "annotations" SpawnTemplate //specify origin/angles here for templates we use multiple times { Name "station" "origin" "2924.840088 -3275.968750 -161.96868" "angles" "0 90 0" } SpawnTemplate { Name "station" "origin" "1325.108643 -3090.374756 -50.714088" "angles" "0 -190 0" } SpawnTemplate { Name "barriers" //use these if your map has no spawn door "origin" "2724.365479 -2303.941650 -143.139458" "angles" "0 90 0" } SpawnTemplate { Name "barriers" "origin" "381.125824 -2462.805176 -125.37920" "angles" "0 0 0" } SpawnTemplate { Name "barriers2" "origin" "1526.642578 -19.171825 -425.004791" "angles" "0 0 0" } SpawnTemplate { Name "barriers2" "origin" "1726.642578 -19.171825 -425.004791" "angles" "0 0 0" } ExtraSpawnPoint { Name "tunnelspawn" TeamNum 2 //2 for red 3 for blu X "1530" Y "199" Z "-340" } ExtraSpawnPoint { Name "towerspawn" TeamNum 2 X "1534.326782" Y "770.423157" Z "-143.968689" } ExtraSpawnPoint //use RandomSpawn 1 in your WaveSpawn to split spawning evenly across spawns with the same name { Name "towerspawn" TeamNum 2 X "1535.212036" Y "1306.657837" Z "-143.968689" } ExtraSpawnPoint { Name "hatchspawn" TeamNum 2 X "-1377.705200" Y "1534.423157" Z "-90.968689" } ExtraSpawnPoint { Name "RedSpawn_giant" //giants can't fit out of bot spawn TeamNum 2 X "-1231" Y "2213.423157" Z "-60.968689" } ExtraTankPath //Adds tank path to follow { Name "tankpath1" //name of the starting path node prefix. First tank node would be tankpath1_1 Node "1514.066284 305.011200 -354.974762" // note XYZ coordinates. First node is the starting point Node "1521.085693 -1548.762329 -535.97607" Node "2456.468750 -1615.824707 -589.37457" } Wave { StartWaveOutput { Target wave_start_relay Action Trigger } DoneOutput { Target wave_finished_relay Action Trigger } Explanation { Line "{blue}Complete the mission objective to be able to deploy the bomb." Line "{blue}You have 6 minutes to deploy the bomb!" Line "{yellow}Engineers have the Teleport-in Exit, so dont place it too close to walls." } SentryGun { Position { X "-1341" Y "1124" Z "-169" Pitch "0.00" Yaw "115" Roll "0.00" } TeamNum 2 Health 100 Ismini 1 Skin 2 Bodygroup 1 } WaveSpawn { Name 1w1 TotalCurrency 0 TotalCount 24 MaxActive 8 SpawnCount 3 WaitBeforeStarting 0 WaitBetweenSpawns 2 Where spawnbot TFBot { ClassIcon scout Name Scout Class Scout Skill Normal Action Mobber AddCond { Name "TF_COND_REPROGRAMMED" } CharacterAttributes { "force distribute currency on death" 1 "crit mod disabled" 0 } } } WaveSpawn { Name 1w1 TotalCurrency 0 TotalCount 22 MaxActive 6 SpawnCount 3 WaitBeforeStarting 0 WaitBetweenSpawns 6 Where spawnbot TFBot { ClassIcon heavy Name Heavy Class HeavyWeapons Skill Hard Attributes DisableDodge Action Mobber AddCond { Name "TF_COND_REPROGRAMMED" } CharacterAttributes { "force distribute currency on death" 1 "crit mod disabled" 0 } } } WaveSpawn { Name 1w1 TotalCurrency 0 TotalCount 10 MaxActive 10 SpawnCount 5 WaitBeforeStarting 6 WaitBetweenSpawns 11 Where spawnbot TFBot { Template T_TFBot_Heavyweapons_Fist Attributes DisableDodge Action Mobber AddCond { Name "TF_COND_REPROGRAMMED" } CharacterAttributes { "force distribute currency on death" 1 "crit mod disabled" 0 } } } WaveSpawn { Name 1w1 TotalCurrency 0 TotalCount 2 MaxActive 10 WaitBeforeStarting 11 Where spawnbot Squad { TFBot { Template T_TFBot_Giant_Soldier_Burst_Charged Action Mobber AddCond { Name "TF_COND_REPROGRAMMED" } CharacterAttributes { "force distribute currency on death" 1 "crit mod disabled" 0 } } TFBot { ClassIcon vex_medic_vacbullet Name "Bullet Vaccinator Medic" Class Medic Skill Normal WeaponRestrictions SecondaryOnly Attributes SpawnWithFullCharge Attributes DisableDodge Attributes VaccinatorBullets Item "the vaccinator" CharacterAttributes { "medigun bullet resist passive" .75 "heal rate bonus" 2 "ubercharge rate bonus" 100 "medigun bullet resist deployed" .75 "bot medic uber health threshold" 9000 "force distribute currency on death" 1 "crit mod disabled" 0 } Action Mobber AddCond { Name "TF_COND_REPROGRAMMED" } } } } WaveSpawn { Name 1w2 WaitForAllDead 1w1 TotalCurrency 0 TotalCount 24 MaxActive 8 SpawnCount 2 WaitBeforeStarting 5 WaitBetweenSpawns 4 Where spawnbot TFBot { ClassIcon soldier Name Soldier Class Soldier Action Mobber AddCond { Name "TF_COND_REPROGRAMMED" } CharacterAttributes { "force distribute currency on death" 1 "crit mod disabled" 0 } } } WaveSpawn { Name 1w2 WaitForAllDead 1w1 TotalCurrency 0 TotalCount 8 MaxActive 8 SpawnCount 2 WaitBeforeStarting 5 WaitBetweenSpawns 7 Where spawnbot Squad { TFBot { ClassIcon demo_burst Health 650 Name "Minefield Demo" Scale 1.3 Class Demoman Skill Hard WeaponRestrictions PrimaryOnly Attributes HoldFireUntilFullReload Attributes DisableDodge Item "the iron bomber" Item "scotch bonnet" ItemAttributes { ItemName "the iron bomber" "damage penalty" .25 "grenade damage reduction on world contact" 5 "fire rate bonus" .001 "faster reload rate" 1.4 "clip size bonus" 1.5 "projectile spread angle penalty" 3 "fuse bonus" 1.9 "Blast radius decreased" 1 "dmg bonus vs buildings" 2 "Projectile speed decreased" .9 } Action Mobber AddCond { Name "TF_COND_REPROGRAMMED" } CharacterAttributes { "force distribute currency on death" 1 "crit mod disabled" 0 } } TFBot { Name "VAC MEDIC" Template T_TFBot_Sniper_Huntsman Action Mobber AddCond { Name "TF_COND_REPROGRAMMED" } CharacterAttributes { "force distribute currency on death" 1 "crit mod disabled" 0 } } } } WaveSpawn { Name 1w2 WaitForAllDead 1w1 TotalCurrency 0 TotalCount 2 MaxActive 2 SpawnCount 1 WaitBetweenSpawns 8 Where spawnbot TFBot { Template T_TFBot_Giant_Demo_Burst Attributes DisableDodge CharacterAttributes { "airblast vulnerability multiplier" .1 "airblast vertical vulnerability multiplier" .5 "force distribute currency on death" 1 "crit mod disabled" 0 } Action Mobber AddCond { Name "TF_COND_REPROGRAMMED" } } } WaveSpawn { Name 1w3 WaitForAllDead 1w2 TotalCurrency 0 TotalCount 12 MaxActive 8 SpawnCount 4 WaitBeforeStarting 5 WaitBetweenSpawns 9 Where spawnbot TFBot { Template T_TFBot_Heavyweapons_Fist Attributes DisableDodge Action Mobber AddCond { Name "TF_COND_REPROGRAMMED" } CharacterAttributes { "force distribute currency on death" 1 "crit mod disabled" 0 } } } WaveSpawn { Name 1w3 WaitForAllDead 1w2 TotalCurrency 0 TotalCount 32 MaxActive 8 SpawnCount 8 WaitBeforeStarting 2 WaitBetweenSpawns 11 Where spawnbot TFBot { Template T_TFBot_Scout_Sandman_FastCharge Action Mobber AddCond { Name "TF_COND_REPROGRAMMED" } CharacterAttributes { "force distribute currency on death" 1 "crit mod disabled" 0 } } } WaveSpawn { Name 1w3 WaitForAllDead 1w2 TotalCount 4 MaxActive 4 SpawnCount 2 WaitBeforeStarting 9 WaitBetweenSpawns 13 Where spawnbot TFBot { Skill Expert Template T_TFBot_Giant_Boxing_Heavy Attributes DisableDodge CharacterAttributes { "move speed bonus" .7 "airblast vulnerability multiplier" .1 "airblast vertical vulnerability multiplier" .1 "force distribute currency on death" 1 "crit mod disabled" 0 } Action Mobber AddCond { Name "TF_COND_REPROGRAMMED" } } } WaveSpawn { Name 1w3 WaitForAllDead 1w2 TotalCurrency 0 TotalCount 5 MaxActive 5 SpawnCount 1 WaitBeforeStarting 12 WaitBetweenSpawns 2 Where spawnbot TFBot { Template T_TFBot_Demoman_Samurai Attributes DisableDodge Action Mobber AddCond { Name "TF_COND_REPROGRAMMED" } CharacterAttributes { "force distribute currency on death" 1 "crit mod disabled" 0 } } } WaveSpawn { Name 1w4 WaitForAllSpawned 1w3 TotalCurrency 0 TotalCount 9 MaxActive 9 SpawnCount 3 WaitBeforeStarting 5 WaitBetweenSpawns 13 Where spawnbot Squad { TFBot { ClassIcon sniper_bow_multi Health 1200 Name "Rapid Fire Bowman" Scale 1.5 Class Sniper Skill Expert WeaponRestrictions PrimaryOnly Attributes AlwaysCrit Attributes DisableDodge Item "the huntsman" CharacterAttributes { "fire rate bonus" .6 "move speed bonus" .85 "head scale" .85 "airblast vulnerability multiplier" .5 "airblast vertical vulnerability multiplier" .5 "damage force reduction" 1 "force distribute currency on death" 1 "crit mod disabled" 0 } Action Mobber AddCond { Name "TF_COND_REPROGRAMMED" } } TFBot { Name MMMED Template T_TFBot_Sniper Action Mobber AddCond { Name "TF_COND_REPROGRAMMED" } CharacterAttributes { "force distribute currency on death" 1 "crit mod disabled" 0 } } TFBot { Name MMMED Template T_TFBot_Sniper Action Mobber AddCond { Name "TF_COND_REPROGRAMMED" } CharacterAttributes { "force distribute currency on death" 1 "crit mod disabled" 0 } } } } WaveSpawn { WaitForAllSpawned 1w3 TotalCurrency 0 TotalCount 22 MaxActive 6 SpawnCount 2 WaitBeforeStarting 8 WaitBetweenSpawns 2 Where spawnbot TFBot { Name "Scout" Skill Hard Template T_TFBot_Scout_Scattergun_SlowFire Attributes DisableDodge Action Mobber AddCond { Name "TF_COND_REPROGRAMMED" } CharacterAttributes { "force distribute currency on death" 1 "crit mod disabled" 0 } } } WaveSpawn { WaitForAllSpawned 1w3 TotalCurrency 0 TotalCount 6 WaitBeforeStarting 16 Where spawnbot Squad { TFBot { Template T_TFBot_Giant_Soldier_Extended_Battalion Attributes DisableDodge CharacterAttributes { "airblast vulnerability multiplier" .1 "increase buff duration" 99 "airblast vertical vulnerability multiplier" .1 "force distribute currency on death" 1 "crit mod disabled" 0 } Action Mobber AddCond { Name "TF_COND_REPROGRAMMED" } } TFBot { Template T_TFBot_Sniper Action Mobber AddCond { Name "TF_COND_REPROGRAMMED" } CharacterAttributes { "force distribute currency on death" 1 "crit mod disabled" 0 } } TFBot { Template T_TFBot_Sniper Action Mobber AddCond { Name "TF_COND_REPROGRAMMED" } CharacterAttributes { "force distribute currency on death" 1 "crit mod disabled" 0 } } TFBot { Template T_TFBot_Sniper Action Mobber AddCond { Name "TF_COND_REPROGRAMMED" } CharacterAttributes { "force distribute currency on death" 1 "crit mod disabled" 0 } } TFBot { Name "MINE DEMO" Template T_TFBot_Scout_Sandman Action Mobber AddCond { Name "TF_COND_REPROGRAMMED" } CharacterAttributes { "force distribute currency on death" 1 "crit mod disabled" 0 } } TFBot { Name "MINE DEMIÃ’" Template T_TFBot_Scout_Sandman Action Mobber AddCond { Name "TF_COND_REPROGRAMMED" } CharacterAttributes { "force distribute currency on death" 1 "crit mod disabled" 0 } } } } WaveSpawn { WaitForAllSpawned 1w3 TotalCurrency 0 TotalCount 2000 MaxActive 4 SpawnCount 2 WaitBeforeStarting 15 WaitBetweenSpawns 5 Where spawnbot RandomChoice { TFBot { Skill Hard Template T_TFBot_Heavyweapons_Heavyweight_Champ_Fast Attributes DisableDodge Action Mobber AddCond { Name "TF_COND_REPROGRAMMED" } CharacterAttributes { "force distribute currency on death" 1 "crit mod disabled" 0 } } TFBot { Name "Bonk Scout" Template T_TFBot_Scout_Bonk Attributes DisableDodge Action Mobber AddCond { Name "TF_COND_REPROGRAMMED" } CharacterAttributes { "force distribute currency on death" 1 "crit mod disabled" 0 } } TFBot { Template T_TFBot_Scout_Sandman_FastCharge Attributes DisableDodge Action Mobber AddCond { Name "TF_COND_REPROGRAMMED" } CharacterAttributes { "force distribute currency on death" 1 "crit mod disabled" 0 } } } } WaveSpawn { WaitForAllDead 1w2 TotalCurrency 0 TotalCount 9999 MaxActive 3 SpawnCount 3 WaitBeforeStarting 1 WaitBetweenSpawns 10 Where spawnbot TFBot { Skill Hard Template T_TFBot_Heavyweapons_Heavyweight_Champ_Fast Attributes DisableDodge Action Mobber AddCond { Name "TF_COND_REPROGRAMMED" } CharacterAttributes { "force distribute currency on death" 1 "crit mod disabled" 0 } } } WaveSpawn { TotalCurrency 0 TotalCount 1000 MaxActive 1 SpawnCount 1 WaitBeforeStarting 9999 WaitBetweenSpawns 9999 Support 1 Where spawnbot TFBot { Name "RED Support" ClassIcon red2_lite Class scout } } WaveSpawn { TotalCurrency 0 TotalCount 1000 MaxActive 1 SpawnCount 1 WaitBetweenSpawns 25 Support 1 Where spawnbot TFBot { ClassIcon sniper_bow_homing Name "Homing Bowman" Class Sniper Skill Expert WeaponRestrictions PrimaryOnly Attributes AlwaysCrit Attributes DisableDodge Item "the huntsman" HomingRockets { IgnoreDisguisedSpies 1 IgnoreStealthedSpies 1 RocketSpeed 0.5 // Multiplier of rocket speed. 1 for default speed TurnPower 340 //How fast should the rocket rotate to face the target MaxAimError 360 //Max angle between rocket and the target } ItemAttributes { ItemName "the huntsman" "fire rate penalty" 4 "faster reload rate" .1 "damage bonus" 1.25 "projectile penetration" 1 } } } WaveSpawn { WaitForAllDead 1w1 TotalCurrency 0 TotalCount 1000 MaxActive 1 SpawnCount 1 WaitBeforeStarting 5 WaitBetweenSpawns 25 Support 1 Where spawnbot TFBot { ClassIcon heavy_brass Name "Crit Brassbeast Heavy" Class HeavyWeapons Skill Expert WeaponRestrictions PrimaryOnly Attributes AlwaysCrit Attributes DisableDodge Item "the brass beast" Item "the eliminators safeguard" ItemAttributes { ItemName "the brass beast" "weapon spread bonus" .5 "minigun spinup time increased" 4 "Projectile speed decreased" .1 "ragdolls plasma effect" 1 } } } } }