#base robot_standard.pop #base robot_giant.pop WaveSchedule { StartingCurrency 20000 RespawnWaveTime 6 CanBotsAttackWhileInSpawnRoom No AddSentryBusterWhenDamageDealtExceeds 0 AddSentryBusterWhenKillCountExceeds 0 Mission { Objective DestroySentries InitialCooldown 1 Where spawnbot_buster_oil BeginAtWave 6 RunForThisManyWaves 1 CooldownTime 0 TFBot { Template T_TFBot_SentryBuster } } PrecacheModel "models/props_soho/bus001.mdl" PointTemplates { Interface //Populator interface { NoFixup 1 point_populator_interface { "targetname" "pop_interface" } info_target { "targetname" "parent_target" "origin" "0 400 0" } logic_relay { "targetname" "pipe_parent_start" "OnTrigger" "pipe_parent_timer,Enable,,0,-1" "OnTrigger" "pop_interface,ChangeBotAttributes,Default,0,-1" "OnTrigger" "tf_projectile_pipe,SetParent,parent_target,0.85,-1" "OnTrigger" "pop_interface,ChangeBotAttributes,Reload,1.5,-1" } logic_timer { "targetname" "pipe_parent_timer" "RefireTime" "6" "spawnflags" "0" "UseRandomTime" "0" "StartDisabled" "1" "OnTimer" "pop_interface,ChangeBotAttributes,Default,0,-1" "OnTimer" "tf_projectile_pipe,SetParent,parent_target,0.85,-1" "OnTimer" "pop_interface,ChangeBotAttributes,Reload,1.5,-1" } } ShortRockets { NoFixup 1 trigger_multiple { "targetname" "rocket_kill" "filtername" "rocket_kill_filter" "spawnflags" "64" "origin" "2464 448 0" "mins" "-4000 -2048 -1280" "maxs" "4000 2048 1280" "OnStartTouch" "!activator,Kill,,1,-1" } filter_multi { "targetname" "rocket_kill_filter" "FilterType" "0" "Filter01" "rocket_include" "Filter02" "blue_team_filter" } filter_activator_class { "targetname" "rocket_include" "filterclass" "tf_projectile_rocket" "Negated" "0" } filter_activator_tfteam { "targetname" "blue_team_filter" "TeamNum" "3" "Negated" "0" } } TankTeleport { NoFixup 1 info_player_teamspawn { "targetname" "spawnbot_tank" "angles" "0 0 0" "origin" "-352 1824 -496" "StartDisabled" "0" "spawnflags" "511" "TeamNum" "3" } trigger_teleport { "targetname" "tank_teleport" "origin" "-352 1824 -496" "spawnflags" "1" "target" "bus_explode" "mins" "-50 -50 -50" "maxs" "50 50 50" } logic_relay { "targetname" "tankbus_end_relay" "OnTrigger" "tank_destruction,AddOutput,targetname bus_explode,0,-1" } } ScareCube { NoFixup 1 trigger_multiple { "targetname" "scarecube_parent" "filtername" "horseman_filter" "origin" "" //Origin should be the same as the spawnbot the boss will spawn from "StartDisabled" "0" "spawnflags" "1" "mins" "-100 -100 -100" //Alternatively, you can just make it really big so that it covers all possible spawnpoints "maxs" "100 100 100" "OnStartTouch" "boss_spook_trigger,SetParent,!activator,0,-1" //"!activator" is the entity that triggered this output chain, in this case it would be the boss "OnStartTouch" "boss_spook_trigger,SetParentAttachment,head,0.01,-1" //SetParentAttachment attaches the child to an attachment point and forces it to teleport there. It's just here so that you don't have to bother about making the origin of the scarecube match up } filter_tf_bot_has_tag //This will only allow bots with the tag "horseman" to be detected by the trigger multiple, so give the boss "Tag horseman" { "targetname" "horseman_filter" "Negated" "Allow entities that match criteria" "require_all_tags" "1" "tags" "horseman" } } TankFire { NoFixup 1 logic_relay { "targetname" "tankfire_start_relay" "OnTrigger" "fire_ring,SetParent,tank_fire,0.05,-1" "OnTrigger" "fire_hurt,SetParent,tank_fire,0.05,-1" "OnTrigger" "fire_timer,SetParent,tank_fire,0.05,-1" "OnTrigger" "fire_timer,Enable,,0,-1" "OnTrigger" "fire_hurt,Enable,,0,-1" } logic_timer { "targetname" "fire_timer" "RefireTime" "0.5" "spawnflags" "0" "UseRandomTime" "0" "StartDisabled" "1" "OnTimer" "fire_ring,Start,,0,-1" "OnTimer" "fire_ring,Stop,,0.1,-1" "OnTimer" "fire_hurt,Enable,,0,-1" "OnTimer" "fire_hurt,Disable,,0.1,-1" } info_particle_system { "targetname" "fire_ring" "effect_name" "heavy_ring_of_fire" "flag_as_weather" "0" "start_active" "0" "origin" "-352 1824 -552" } trigger_ignite { "targetname" "fire_hurt" "filtername" "tankfire_filter" "burn_duration" "8" "damage_percent_per_second" "72" "origin" "-352 1824 -552" "spawnflags" "1" "StartDisabled" "1" "mins" "-145 -145 -24" "maxs" "145 145 48" } filter_activator_tfteam { "targetname" "tankfire_filter" "TeamNum" "2" "Negated" "0" } } Oil { NoFixup 1 env_entity_maker { "targetname" "oil_remove_spawn" "EntityTemplate" "OilRemove" "spawnflags" "0" } trigger_push { "targetname" "oil_push" "filtername" "oil_filter" "speed" "1000" "pushdir" "270 0 0" "spawnflags" "1" "origin" "2464 448 0" "mins" "-4000 -2048 -1280" "maxs" "4000 2048 1280" } trigger_multiple { "targetname" "oil_launch" "filtername" "oil_filter" "spawnflags" "1" "origin" "2464 448 0" "mins" "-4000 -2048 -1280" "maxs" "4000 2048 1280" "OnTrigger" "oil_remove_spawn,ForceSpawnAtEntityOrigin,!activator,3,-1" } filter_multi { "targetname" "oil_filter" "FilterType" "0" "Filter01" "jarate_filter" "Filter02" "red_filter" } filter_tf_condition { "targetname" "jarate_filter" "condition" "24" "Negated" "0" } filter_activator_tfteam { "targetname" "red_filter" "TeamNum" "2" "Negated" "0" } } OilRemove { NoFixup 1 trigger_remove_tf_player_condition { "spawnflags" "1" "mins" "-1 -1 -1" "maxs" "1 1 1" "condition" "24" "OnStartTouch" "!self,Kill,,0.01,-1" } } TankBuff { NoFixup 1 trigger_add_tf_player_condition { "targetname" "buff_trigger" "filtername" "buff_trigger_filter" "spawnflags" "1" "condition" "16" "duration" "1" "mins" "-400 -400 -25" "maxs" "400 400 250" } logic_timer { "targetname" "buff_trigger_timer" "RefireTime" "0.5" "spawnflags" "0" "UseRandomTime" "0" "OnTimer" "buff_trigger,Toggle,,0,-1" "OnTimer" "buff_trigger,Toggle,,0.01,-1" } filter_activator_tfteam { "targetname" "buff_trigger_filter" "TeamNum" "3" "Negated" "0" } } Earthquake { NoFixup 1 trigger_multiple { "targetname" "breakleg_trigger" "filtername" "breakleg_filter" "spawnflags" "1" "wait" "0.01" "origin" "0 0 0" "StartDisabled" "1" "mins" "-400 -400 0" "maxs" "400 400 75" "OnStartTouch" "!activator,AddOutput,basevelocity 0 0 1000,0,-1" "OnStartTouch" "!activator,AddOutput,basevelocity 0 0 -4000,0.01,-1" // "OnTrigger" "!activator,AddOutput,targetname myleg,0,-1" // "OnTrigger" "!activator,AddOutput,targetname itsfinenow,10,-1" // "OnTrigger" "!self,Disable,,10,-1" // "OnTrigger" "!self,Enable,,10.05,-1" } env_shake { "targetname" "quake" "spawnflags" "4" "radius" "800" "frequency" "200" "duration" "3" "amplitude" "12" "origin" "0 0 37.5" } logic_timer { "targetname" "shake_timer" "RefireTime" "1" "spawnflags" "0" "UseRandomTime" "0" "OnTimer" "quake,StartShake,,0,-1" } logic_timer { "targetname" "breakleg_timer" "RefireTime" "10" "spawnflags" "0" "UseRandomTime" "0" "OnTimer" "breakleg_trigger,Enable,,0,-1" "OnTimer" "breakleg_trigger,Disable,,0.5,-1" "OnTimer" "quake_particle,Start,,0,-1" "OnTimer" "quake_particle,Stop,,3,-1" "OnTimer" "sound_quake,PlaySound,,0,-1" } info_particle_system { "targetname" "quake_particle" "effect_name" "hammer_impact_button" "flag_as_weather" "0" "start_active" "0" } ambient_generic { "targetname" "sound_quake" "message" "ambient/explosions/explode_1.wav" "health" "10" "spawnflags" "32" "origin" "0 0 0" } filter_multi { "targetname" "breakleg_filter" "FilterType" "0" "Filter01" "breakleg_wait_filter" "Filter02" "red_filter" } filter_activator_name { "targetname" "breakleg_wait_filter" "filtername" "myleg" "Negated" "1" } filter_activator_tfteam { "targetname" "red_filter" "TeamNum" "2" "Negated" "0" } } TankShield { NoFixup 1 logic_relay { "targetname" "tank_shield_relay" "OnSpawn" "tank_shield,SetModel,models/props_mvm/mvm_player_shield2.mdl,0,-1" "OnSpawn" "tank_shield,skin,1,0,-1" "OnSpawn" "tank_shield,SetTeam,3,0,-1" } prop_dynamic { "targetname" "tank_shield_prop" "model" "models/props_mvm/mvm_player_shield2.mdl" "solid" "6" "skin" "1" "origin" "115 0 0" } prop_dynamic { "targetname" "tank_shield_prop" "model" "models/props_mvm/mvm_player_shield2.mdl" "solid" "6" "skin" "1" "origin" "-115 0 0" "angles" "0 180 0" } entity_medigun_shield { "targetname" "tank_shield" "TeamNum" "3" } } TankNoclip { NoFixup 1 logic_relay { "targetname" "boss_noclip_relay" "OnTrigger" "tank_boss,AddOutput,solid 0,3,-1" } } Sawblade { NoFixup 1 prop_dynamic { "model" "models/props_forest/saw_blade_large.mdl" "solid" "0" "modelscale" "0.3" } } SawbladeLogic { NoFixup 1 trigger_hurt { "targetname" "sawblade_hurt" "filtername" "red_filter" "damage" "5000" "damagetype" "65536" "spawnflags" "1" "origin" "0 0 0" "mins" "-100 -100 0" "maxs" "100 100 90" "OnHurtPlayer" "saw_hit,PlaySound,,0,-1" "OnHurtPlayer" "saw_blood,Start,,0,-1" "OnHurtPlayer" "saw_blood,Stop,,0.1,-1" } ambient_generic { "targetname" "saw_hit" "message" "ambient/sawblade_impact1.wav" "health" "10" "spawnflags" "32" "origin" "0 0 0" } info_particle_system { "targetname" "saw_blood" "effect_name" "env_sawblood" "origin" "0 50 0" } filter_activator_tfteam { "targetname" "red_filter" "TeamNum" "2" "Negated" "0" } } Train { NoFixup 1 prop_dynamic { "targetname" "train_back" "model" "models/props_vehicles/train_enginecar.mdl" "solid" "0" "modelscale" "0.4" } } TrainProjectile { NoFixup 1 prop_physics_multiplayer { "targetname" "train_throw" "model" "models/props_vehicles/train_enginecar.mdl" "modelscale" "0.4" "angles" "0 0 0" "solid" "6" "damagetoenablemotion" "0" "Damagetype" "0" "disablereceiveshadows" "0" "disableshadows" "0" "forcetoenablemotion" "0" "inertiaScale" "1.0" "massScale" "1" "minhealthdmg" "0" "nodamageforces" "0" "PerformanceMode" "0" "physdamagescale" "0.1" "physicsmode" "1" "pressuredelay" "0" "spawnflags" "8192" } } LaserShow { NoFixup 1 env_laser { "targetname" "laser1" "origin" "60 20 0" "LaserTarget" "laser_target1" "damage" "100" "dissolvetype" "0" "framestart" "0" "NoiseAmplitude" "0" "renderamt" "255" "rendercolor" "255 255 255" "renderfx" "0" "spawnflags" "1" "texture" "sprites/laserbeam.spr" "TextureScroll" "35" "width" "4" } path_track { "targetname" "laser_target1" "origin" "500 20 0" } } RocketLogic { NoFixup 1 logic_timer { "targetname" "rocket_fire_timer" "RefireTime" "1" "spawnflags" "0" "UseRandomTime" "0" "OnTimer" "rocket_fire,FireMultiple,3,0,-1" } trigger_multiple { "targetname" "rocket_spawn" "filtername" "rocket_spawn_filter" "spawnflags" "64" "origin" "2464 448 0" "mins" "-4000 -2048 -1280" "maxs" "4000 2048 1280" "OnStartTouch" "rocket_rocket_spawn,ForceSpawnAtEntityOrigin,!activator,0,-1" } filter_multi { "targetname" "rocket_spawn_filter" "FilterType" "0" "Filter01" "rocket_include" "Filter02" "blue_team_filter" } filter_activator_class { "targetname" "rocket_include" "filterclass" "tf_projectile_rocket" "Negated" "0" } filter_activator_tfteam { "targetname" "blue_team_filter" "TeamNum" "3" "Negated" "0" } env_entity_maker { "targetname" "rocket_rocket_spawn" "EntityTemplate" "RocketRocket" "spawnflags" "0" } } RocketRocket { NoFixup 1 tf_point_weapon_mimic { "targetname" "rocket_fire" "angles" "0 0 0" "Crits" "0" "WeaponType" "0" "Damage" "90" "SplashRadius" "146" "SpreadAngle" "360" "SpeedMax" "550" "SpeedMin" "550" "ModelScale" "1" } } } ExtraSpawnPoint { Name "spawnbot_buster_oil" X "73.581108" Y "1688.763184" Z "-145.068283" TeamNum 3 } SpawnTemplate "Interface" SpawnTemplate "TankTeleport" SpawnTemplate "TankFire" Wave { StartWaveOutput { Target wave_start_relay Action Trigger } DoneOutput { Target wave_finished_relay Action trigger } WaitWhenDone 65 Checkpoint Yes WaveSpawn { Where spawnbot Name "start" SpawnCount 1 MaxActive 1 TotalCount 1 StartWaveOutput { Target "pipe_parent_start" Action Trigger } TFBot { Class Demoman Name "Giant Burst Fire Demo" ClassIcon demo_burst_giant Health 3300 Skill Expert WeaponRestrictions PrimaryOnly Attributes MiniBoss Attributes HoldFireUntilFullReload EventChangeAttributes { Default { Skill Expert WeaponRestrictions PrimaryOnly Attributes MiniBoss Attributes HoldFireUntilFullReload Attributes AlwaysFireWeapon ItemAttributes { ItemName "TF_WEAPON_GRENADELAUNCHER" "faster reload rate" 0.01 //35% faster reload "fire rate bonus" 0.05 "clip size bonus" 6 "projectile spread angle penalty" 5 "fuse bonus" 2 } CharacterAttributes { "move speed bonus" 0.5 "damage force reduction" 0.4 "airblast vulnerability multiplier" 0.4 "override footstep sound set" 4 } } Reload { Skill Expert WeaponRestrictions PrimaryOnly Attributes MiniBoss Attributes HoldFireUntilFullReload Attributes SuppressFire ItemAttributes { ItemName "TF_WEAPON_GRENADELAUNCHER" "faster reload rate" 0.01 //35% faster reload "fire rate bonus" 0.05 "clip size bonus" 6 "projectile spread angle penalty" 5 "fuse bonus" 2 } CharacterAttributes { "move speed bonus" 0.5 "damage force reduction" 0.4 "airblast vulnerability multiplier" 0.4 "override footstep sound set" 4 } } } } } } Wave { StartWaveOutput { Target wave_start_relay Action Trigger } DoneOutput { Target wave_finished_relay Action trigger } WaitWhenDone 65 Checkpoint Yes SpawnTemplate "ShortRockets" WaveSpawn { Where spawnbot Name "start" SpawnCount 1 MaxActive 1 TotalCount 1 TFBot { Template T_TFBot_Giant_Heavyweapons Skill Normal HomingRockets { IgnoreDisguisedSpies 1 IgnoreStealthedSpies 1 RocketSpeed 1 TurnPower 1080 MaxAimError 360 } ItemAttributes { ItemName "tf_weapon_minigun" "override projectile type" 2 "damage bonus" 3.33 } } } } Wave { StartWaveOutput { Target wave_start_relay Action Trigger } DoneOutput { Target wave_finished_relay Action trigger } WaitWhenDone 65 Checkpoint Yes WaveSpawn { TotalCount 1 Name "tank_bus" FirstSpawnOutput { Target boss_spawn_relay Action Trigger } Tank { Name "tank_bus" // Model "models/props_soho/bus001.mdl" // Skin 1 // DisableTracks 1 // DisableSmokestack 1 Health 500 OnKilledOutput { Target boss_dead_relay Action Trigger } OnKilledOutput { Target tankbus_end_relay Action Trigger } OnBombDroppedOutput { Target boss_deploy_relay Action Trigger } } } WaveSpawn { Where spawnbot_tank WaitForAllDead "tank_bus" TFBot { Class Scout } } } Wave { StartWaveOutput { Target wave_start_relay Action Trigger } DoneOutput { Target wave_finished_relay Action trigger } WaitWhenDone 65 Checkpoint Yes WaveSpawn { TotalCount 1 Name "tank_fire" FirstSpawnOutput { Target boss_spawn_relay Action Trigger } FirstSpawnOutput { Target tankfire_start_relay Action Trigger } Tank { Name "tank_fire" Health 100 OnKilledOutput { Target boss_dead_relay Action Trigger } OnBombDroppedOutput { Target boss_deploy_relay Action Trigger } } } WaveSpawn { Where spawnbot SpawnCount 1 TotalCount 1 WaitForAllDead "tank_fire" TFBot { Class Scout } } } Wave { StartWaveOutput { Target wave_start_relay Action Trigger } DoneOutput { Target wave_finished_relay Action trigger } WaitWhenDone 65 Checkpoint Yes WaveSpawn { Where spawnbot SpawnCount 1 TotalCount 1 TFBot { Template T_TFBot_Giant_Soldier ItemAttributes { ItemName "TF_WEAPON_ROCKETLAUNCHER" "custom projectile model" "models/weapons/w_models/w_drg_ball.mdl" "explosion particle" "drg_cow_explosioncore_normal_blue" "projectile trail particle" "projectile_fireball" } } } } Wave { StartWaveOutput { Target wave_start_relay Action Trigger } DoneOutput { Target wave_finished_relay Action trigger } WaitWhenDone 65 Checkpoint Yes SpawnTemplate "Oil" WaveSpawn { Where spawnbot SpawnCount 1 TotalCount 1 TFBot { Class Sniper Skill Expert WeaponRestrictions SecondaryOnly Attributes AlwaysFireWeapon Item "jarate" ItemAttributes { ItemName "jarate" "effect bar recharge rate increased" 0.1 } } } } Wave { StartWaveOutput { Target wave_start_relay Action Trigger } DoneOutput { Target wave_finished_relay Action trigger } WaitWhenDone 65 Checkpoint Yes WaveSpawn { TotalCount 1 Name "tank_buff" FirstSpawnOutput { Target boss_spawn_relay Action Trigger } Tank { Name "tank_buff" Speed 75 Health 500 SpawnTemplate "TankBuff" OnKilledOutput { Target boss_dead_relay Action Trigger } OnBombDroppedOutput { Target boss_deploy_relay Action Trigger } } } } Wave { StartWaveOutput { Target wave_start_relay Action Trigger } DoneOutput { Target wave_finished_relay Action trigger } WaitWhenDone 65 Checkpoint Yes WaveSpawn { Where spawnbot Name "start" SpawnCount 1 TotalCount 1 TFBot { Template T_TFBot_Giant_Heavyweapons Scale 1.85 Health 1 Attributes SuppressFire FireInput { Target "crush" Action "AddOutput" Param "targetname notdie" Delay 0 Cooldown 0 Repeats 1 } SpawnTemplate { Name "Earthquake" } } } } Wave { StartWaveOutput { Target wave_start_relay Action Trigger } DoneOutput { Target wave_finished_relay Action trigger } WaitWhenDone 65 Checkpoint Yes PlayerAttributes //Add attributes to players when the wave is active { "mult smack time" 4 "melee attack rate bonus" 0.6 } WaveSpawn { Where spawnbot Name "start" SpawnCount 1 TotalCount 1 TFBot { Template T_TFBot_Giant_Heavyweapons Name "Fuck you" Attributes SuppressFire WeaponRestrictions SecondaryOnly // SpawnTemplate "SawbladeLogic" ItemAttributes { ItemName "tf_weapon_fists" "is_passive_weapon" 1 } ItemAttributes { ItemName "tf_weapon_shotgun_hwg" "is invisible" 1 } FireInput { Target "train_back" Action "Disable" Delay 0 Cooldown 5 Repeats 0 } FireInput { Target "train_back" Action "Enable" Delay 2 Cooldown 5 Repeats 0 } FireInput { Target "train_throw" Action "Kill" Delay 2 Cooldown 5 Repeats 0 } FireWeapon //Periodically fires weapon { Delay 0 Cooldown 5 Repeats 0 IfSeeTarget 1 Duration 0.1 Type "Primary" } ShootTemplate //Shoot defined point template. Template is spawned at bot position in looking direction, forward velocity being applied to spawned entities { Name TrainProjectile //Name of the template Speed 1500 //Velocity of the spawned objects (Default: 1000) Offset "0 0 0" //Offset from the bot shooting position (Default: 0 0 0) Angles "0 0 0" //Shooting angle offset (Default: 0 0 0) OverrideShoot 1 //Stop default projectile from being spawned (Default: 0) Spread 0 } SpawnTemplate { Name "Train" Bone "bip_spine_2" Angles "0 270 0" } } } } Wave { StartWaveOutput { Target wave_start_relay Action Trigger } DoneOutput { Target wave_finished_relay Action trigger } WaitWhenDone 65 Checkpoint Yes WaveSpawn { Where spawnbot SpawnCount 1 TotalCount 1 TFBot { Template T_TFBot_Giant_Soldier Name "Fuck you" SpawnTemplate "RocketLogic" ItemAttributes { ItemName "tf_weapon_rocketlauncher" "fire rate bonus" 10 "projectile speed increased" 0.5 } } } } Wave { StartWaveOutput { Target wave_start_relay Action Trigger } DoneOutput { Target wave_finished_relay Action trigger } WaitWhenDone 65 Checkpoint Yes WaveSpawn { Where spawnbot SpawnCount 1 TotalCount 1 TFBot { Class Scout } } } }