#base robot_standard.pop #base robot_giant.pop WaveSchedule { StartingCurrency 0 RespawnWaveTime 999 CanBotsAttackWhileInSpawnRoom Yes ////////////////////////////////////////////////////////////////// GAME RULES ////////////////////////////////////////////////////////////////// EventPopFile Halloween HumansMustJoinTeam blue NoReanimators 1 SendBotsToSpectatorImmediately 1 RobotLimit 28 MaxTotalPlayers 4 StandableHeads 1 NoRomevisionCosmetics 1 ReverseWinConditions 1 BluHumanFlagPickup 1 BluHumanFlagCapture 1 FixedRespawnWaveTimeBlue 9999 ItemWhitelist { Classname "tf_weapon_shotgun" Name "TF_WEAPON_SHOTGUN_HWG" Name "TF_WEAPON_SHOTGUN_SOLDIER" Name "TF_WEAPON_SHOTGUN_PYRO" Name "TF_WEAPON_SHOVEL" Name "TF_WEAPON_FISTS" Name "TF_WEAPON_FIREAXE" Name "TF_WEAPON_WRENCH" Name "Frying Pan" Name "Gold Frying Pan" } ClassLimit //Limits the number of specified classes { Heavyweapons 1 Soldier 1 Pyro 1 Engineer 1 Medic 0 Sniper 0 Scout 0 Demoman 0 Spy 0 } ItemAttributes { ItemName "TF_WEAPON_SHOTGUN_PRIMARY" "fire rate bonus" 0.8 "max health additive bonus" 75 } ItemAttributes { ItemName "TF_WEAPON_SHOTGUN_HWG" "fire rate bonus" 0.8 "max health additive bonus" -100 } ItemAttributes { ItemName "TF_WEAPON_SHOTGUN_SOLDIER" "fire rate bonus" 0.8 } ItemAttributes { ItemName "TF_WEAPON_SHOTGUN_PYRO" "fire rate bonus" 0.8 "max health additive bonus" 25 } PlayerAttributes { "melee cleave attack" 1 "faster reload rate" 0.6 "projectile penetration heavy" 1 "crit mod disabled" 0 "melee range multiplier" 1.3 "melee bounds multiplier" 1.4 "weapon spread bonus" 1.25 Heavyweapons { "move speed bonus" 1.043478260869565 } Pyro { "move speed bonus" 0.8 } Engineer { "move speed bonus" 0.8 } } PlayerAddCond //Give players outlines { Index 114 } PrecacheSound "megamob.mp3" PrecacheSound "hordestart.mp3" ////////////////////////////////////////////////////////////////// POINT TEMPLATES ////////////////////////////////////////////////////////////////// PointTemplates { /////////////////////////// Mission Logic /////////////////////////// EntKill //genocide { NoFixup 1 logic_relay { "OnSpawn" "item_healthkit_small,Kill,,0,-1" "OnSpawn" "item_healthkit_medium,Kill,,0,-1" "OnSpawn" "item_healthkit_large,Kill,,0,-1" "OnSpawn" "item_ammopack_small,Kill,,0,-1" "OnSpawn" "item_ammopack_medium,Kill,,0,-1" "OnSpawn" "item_ammopack_full,Kill,,0,-1" "OnSpawn" "bot_stun_reprogram,Kill,,0,-1" //Disable gate cap stun "OnSpawn" "gate1_alarm,Kill,,0,-1" //Disable gate A alarm } } Debug { NoFixup 1 game_text_tf { "background" "3" "display_to_team" "3" "message" "Entity Spawned" "targetname" "entitycheck" } game_text_tf { "background" "3" "display_to_team" "3" "message" "Touching Entity" "targetname" "entitytouchcheck" } } NavInterface { NoFixup 1 tf_point_nav_interface { "targetname" "nav_interface" } } SpawnLogic { NoFixup 1 logic_relay { "targetname" "elevator_relay" "OnSpawn" "elevator_trigger,Disable,,0,-1" "OnSpawn" "elevator_detect,Disable,,0,-1" "OnTrigger" "elevator_trigger,Enable,,0,-1" "OnTrigger" "elevator_detect,Enable,,0,-1" } info_teleport_destination { "targetname" "elevator_tele_dest" "origin" "2100 -473 -155" "angles" "0 270 0" } trigger_teleport //Teleport bomb OOB { "target" "elevator_tele_bomb_dest" "targetname" "elevator_tele_bomb" "filtername" "filter_bomb_carrier" "spawnflags" "1" "origin" "2100 -473 -155" "solid" "2" "mins" "-100 -100 -100" "maxs" "100 100 100" } info_teleport_destination { "targetname" "elevator_tele_bomb_dest" "origin" "616 2392 -50" "angles" "0 270 0" } filter_tf_bot_has_tag { "targetname" "filter_bomb_carrier" "tags" "bomb_carrier" "Negated" "0" } func_regenerate //Resupply function { "origin" "2100 -473 -155" "mins" "-16 -16 -36" "maxs" "16 16 36" } prop_dynamic { "targetname" "spawn_barrier" "origin" "2196 -590 -136" "model" "models/props_gameplay/security_fence512.mdl" "solid" "6" } } Teleport //Teleports player to spawnbot_elevator { NoFixup 1 trigger_teleport { "target" "spawnbot_elevator" "targetname" "elevator_tele" "spawnflags" "1" "solid" "2" "mins" "-36 -36 -36" "maxs" "36 36 36" } } Sounds //Various sounds { NoFixup 1 ambient_generic { "targetname" "incoming_horde" "message" "megamob.mp3" "health" "10" "spawnflags" "33" "origin" "-1100 -240 100" } ambient_generic { "targetname" "horde_start" "message" "hordestart.mp3" "health" "10" "spawnflags" "33" "origin" "-1100 -240 100" } //////////////////////////// PART 1 MUSIC //////////////////////////// logic_relay { "targetname" "part1mobmusicstart" "OnTrigger" "horde_start,PlaySound,,0,-1" } } /////////////////////////// Props /////////////////////////// Fence { NoFixup 1 prop_dynamic { "model" "models/props_gameplay/security_fence512.mdl" "solid" "6" } } Crate { NoFixup 1 prop_dynamic { "model" "models/props_lakeside/wood_crate_01.mdl" "solid" "6" } } Metal { NoFixup 1 prop_dynamic { "model" "models/props_2fort/corrugated_metal007.mdl" "solid" "6" } } Truck { NoFixup 1 prop_dynamic { "model" "models/props_hydro/dumptruck.mdl" "solid" "6" } } /////////////////////////// WAVE 1 LOGIC /////////////////////////// CapPointPart1 //Part 1 capture point logic { NoFixup 1 trigger_multiple { "targetname" "wave1_gate_detect" "origin" "455 798 64" "mins" "-127 -222 -128" "maxs" "127 222 128" "spawnflags" "1" "StartDisabled" "0" "OnStartTouch" "gate1_door_trigger,Enable,,0,-1" "OnStartTouch" "text_horde_part1,Display,,0,1" "OnStartTouch" "incoming_horde,PlaySound,,2,1" "OnStartTouch" "megamob1,Enable,,2,1" } logic_relay { "OnSpawn" "gate1_door_trigger,AddOutput,area_time_to_cap 30,,0,-1" //Increase gate cap time to 30 sec "OnSpawn" "garage_cap_wait,Disable,,0,-1" //Disable gate focus "OnSpawn" "filter_blue_bombhat,AddOutput,tags zombie,0,-1" "OnSpawn" "filter_blue_bombhat,AddOutput,Negated 1,0,-1" "OnSpawn" "garage_cap,AddOutput,OnCapTeam2 bots_win:RoundWin::20:-1,0,-1" //Causes win when capped after 20 sec "OnSpawn" "garage_cap,AddOutput,OnCapTeam2 pop_interface:UnpauseBotSpawning::0.01:-1,0,-1" //Keeps bots spawning after capping "OnSpawn" "garage_cap,AddOutput,OnCapTeam2 megamob1:Disable::16:-1,0,-1" //Disable megamob spawn after winning } } MessagesPart1 //Part 1 message popups { NoFixup 1 game_text_tf { "background" "3" "display_to_team" "3" "message" "Capture Gate A to win." "targetname" "text_objective_part1" } game_text_tf { "background" "3" "display_to_team" "3" "message" "Here they come..." "targetname" "text_horde_part1" } OnSpawnOutput { Target "text_objective_part1" Action Display } } SpawnsPart1 //Part 1 zombie spawn point { NoFixup 1 info_player_teamspawn { "angles" "0 180 0" "origin" "-1016 120 -107" "spawnflags" "511" "StartDisabled" "1" "targetname" "megamob1" "TeamNum" "3" } info_player_teamspawn { "angles" "0 180 0" "origin" "-916 120 -90" "spawnflags" "511" "StartDisabled" "1" "targetname" "megamob1" "TeamNum" "3" } info_player_teamspawn { "angles" "0 0 0" "origin" "-779 1271 -91" "spawnflags" "511" "StartDisabled" "1" "targetname" "megamob1" "TeamNum" "3" } info_player_teamspawn { "angles" "0 0 0" "origin" "-779 1371 -91" "spawnflags" "511" "StartDisabled" "1" "targetname" "megamob1" "TeamNum" "3" } info_player_teamspawn { "angles" "0 0 0" "origin" "1725 555 -150" "spawnflags" "8" "targetname" "charger1" "StartDisabled" "1" "TeamNum" "3" } } } ////////////////////////////////////////////////////////////////// INITIALISATION ////////////////////////////////////////////////////////////////// SpawnTemplate "EntKill" SpawnTemplate "Debug" SpawnTemplate "Sounds" //Sounds SpawnTemplate "CapPointPart1" SpawnTemplate "SpawnsPart1" //Part 1 zombie spawners SpawnTemplate "SpawnLogic" SpawnTemplate "NavInterface" SpawnTemplate //Tele from spawnbot { Name "Teleport" Origin "3901 450 80" } SpawnTemplate //Tele from spawnbot { Name "Teleport" Origin "3817 509 80" } SpawnTemplate //Tele from spawnbot { Name "Teleport" Origin "3979 507 80" } SpawnTemplate //Tele from spawnbot { Name "Teleport" Origin "3899 562 80" } SpawnTemplate //Tele from spawnbot_support { Name "Teleport" Origin "2239 -31 -62" } SpawnTemplate //Tele from spawnbot_upper { Name "Teleport" Origin "3190 -773 -50" } ////////////////////////////////// Obstacles //////////////////////////// SpawnTemplate { Name "Fence" Origin "1890 -626 -100" Angles "0 90 0" } SpawnTemplate { Name "Fence" Origin "2286 3 -100" Angles "0 90 0" } SpawnTemplate { Name "Fence" Origin "150 -488 -10" Angles "0 154 0" } SpawnTemplate { Name "Fence" Origin "-306 -264 -10" Angles "0 154 0" } SpawnTemplate { Name "Crate" Origin "-217 -179 -124" } SpawnTemplate { Name "Crate" Origin "-224 -47 -124" } SpawnTemplate { Name "Metal" Origin "-129 196 -11" } SpawnTemplate { Name "Metal" Origin "-129 260 -11" } SpawnTemplate { Name "Metal" Origin "-129 324 -11" } SpawnTemplate { Name "Metal" Origin "-128 320 165" } SpawnTemplate { Name "Metal" Origin "-128 384 165" } SpawnTemplate { Name "Metal" Origin "-128 448 165" } SpawnTemplate { Name "Metal" Origin "-128 512 165" } SpawnTemplate { Name "Truck" Angles "-3.06668 288.862 0.90446" Origin "-368 650 -128" } SpawnTemplate { Name "Crate" Angles "3.30674 323.127 4.39738" Origin "-363 915 -130" } ////////////////////////////////////////////////////////////////// BOT TEMPLATES ////////////////////////////////////////////////////////////////// Templates { T_TFBot_Scout_Bomb { Class Scout Tag bomb_carrier Health 1 CharacterAttributes { "health regen" -1 "move speed bonus" 0 "increased jump height" 0 } } T_TFBot_Scout_Zombie { Class Scout Tag zombie Health 25 WeaponRestrictions MeleeOnly CharacterAttributes { "move speed bonus" 0.6 "damage bonus" 0.02 } } T_TFBot_Demo_Charger { Class Demoman Tag zombie Tag special Skill Expert Health 600 Item "the splendid screen" Scale 1.25 Action Mobber AddCond { Index 43 Duration 99999 } DamageAppliesCond { Index 71 Duration 3 } WeaponRestrictions MeleeOnly ItemAttributes { ItemName "the splendid screen" "charge recharge rate increased" 2 "mult charge turn control" 0.25 "attack not cancel charge" 1 } ItemAttributes { ItemName "TF_WEAPON_BOTTLE" "fire rate bonus" 2 "damage bonus" 0.25 } CharacterAttributes { "hand scale" 1.5 "dmg from melee increased" 5 } } T_TFBot_Scout_Zombie_Megamob { Class Scout Name "Infected" Skill Hard Tag zombie Tag megamob Action Mobber Health 25 WeaponRestrictions MeleeOnly AddCond { Name "TF_COND_SPEED_BOOST" Duration 3 } AddCond { Index 43 Duration 99999 } CharacterAttributes { "crit mod disabled" 0 "move speed bonus" 0.66 "damage bonus" 0.06 "increased jump height" 1.5 "increased air control" 2 } } T_TFBot_Soldier_Zombie_Megamob { Class Soldier Name "Infected" Skill Hard Tag zombie Tag megamob Action Mobber Health 35 WeaponRestrictions MeleeOnly AddCond { Name "TF_COND_SPEED_BOOST" Duration 3 } AddCond { Index 43 Duration 99999 } CharacterAttributes { "crit mod disabled" 0 "move speed bonus" 1 "damage bonus" 0.06 "increased jump height" 1.5 "increased air control" 2 } } T_TFBot_Heavy_Zombie_Megamob { Class Heavyweapons Name "Infected" Skill Hard Tag zombie Tag megamob Action Mobber Health 50 WeaponRestrictions MeleeOnly AddCond { Name "TF_COND_SPEED_BOOST" Duration 3 } AddCond { Index 43 Duration 99999 } CharacterAttributes { "crit mod disabled" 0 "move speed bonus" 0.97 "damage bonus" 0.06 "increased jump height" 1.5 "increased air control" 2 } } } Wave { StartWaveOutput { Target wave_start_relay Action Trigger } DoneOutput { Target wave_finished_relay Action trigger } WaitWhenDone 65 Checkpoint Yes Explanation //Dispayed once the wave is initialized { Line "{red}NO RESPAWNS" Line "{red}Team wipe results in loss" Line "{white}Max 4 players" Line "{green}Allowed weapons: Stock shotgun, melee, pans" Line "{green}Available classes: Soldier, Pyro, Heavy, Engineer" } BlueTeamWipeCausesWaveLoss 1 SpawnTemplate "MessagesPart1" WaveSpawn { Where "spawnbot" TotalCount 1 SpawnCount 1 WaitBeforeStarting 3 TotalCurrency 100 TFBot { Template T_TFBot_Scout_Bomb FireInput {Target "elevator_relay" Action "Trigger" Delay 0 Cooldown 0 Repeats 1} FireInput {Target "nav_interface" Action "RecomputeBlockers" Delay 0 Cooldown 0 Repeats 1} FireInput {Target "spawn_barrier" Action "Kill" Delay 0 Cooldown 0 Repeats 1} } } WaveSpawn { Where "charger1" TotalCount 1 SpawnCount 1 WaitBeforeStarting 3 TFBot { Template T_TFBot_Demo_Charger } } WaveSpawn { Where "megamob1" TotalCount 500 SpawnCount 4 WaitBetweenSpawns 1 MaxActive 24 Support 1 RandomChoice { TFBot { Template T_TFBot_Scout_Zombie_Megamob } TFBot { Template T_TFBot_Soldier_Zombie_Megamob } TFBot { Template T_TFBot_Heavy_Zombie_Megamob } } } } }