#base robot_standard.pop #base robot_giant.pop #base robot_standard_red.pop #base robot_giant_red.pop engineer_gaming { StartingCurrency 1200 CanBotsAttackWhileInSpawnRoom yes RespawnWaveTime 666 RespawnWaveTimeBlue 666 FixedRespawnWaveTimeBlue 1 AddSentryBusterWhenDamageDealtExceeds 1000000 AddSentryBusterWhenKillCountExceeds 1000000 // Essential stuff ReverseWinConditions 1 AllowJoinTeamBlueMax 6 AllowJoinTeamBlue 1 HumansMustJoinTeam Blue SetCreditTeam 3 SniperAllowHeadshots 1 NoRedSniperBotHeadshots 1 BluHumanInfiniteAmmo 0 //Enable infinite ammo for blu humans (default: 1) BluHumanInfiniteCloak 0 //Enable infinite cloak for blu humans (default: 1) BluHumanFlagCapture 0 BluHumanFlagPickup 0 NoBluHumanFootsteps 1 ForceHoliday 2 // BotsAreHumans 1 // BotHumansHaveEyeGlow 1 NoReanimators 1 NoCritPumpkin 1 NoThrillerTaunt 1 WaveStartCountdown 5 AllowBotExtraSlots 1 // Allows you to set RobotLimit up to 57 bots instead of 26. Experimental. Must be placed before RobotLimit. Bots will prefer normal slots by default unless the TFBot has the PreferExtraSlots 1 key. Map reload recommended after change (default: 0) ExtraBotSlotsNoDeathcam 0 // If bots in extra slots kill a player, the bot name in deathcam with display as ERRORNAME. If you don't like that you can turn deathcam off (default: 0) RobotLimit 57 NoMvMDeathTune 1 StandableHeads 1 FixSetCustomModelInput 1 FastNPCUpdate 1 NoRomevisionCosmetics 1 FlagCarrierMovementPenalty 1 SendBotsToSpectatorImmediately 1 NoMissionInfo 1 HHHNoControlPointLogic 1 HHHNonSolidToPlayers 1 HHHHealthPerPlayer 0 HHHChaseRange 9999 HHHQuitRange 10000 HHHHealthBase 2500 HHHChaseDuration 9999 LuaScriptFile "scripts/buttonuse2.lua" // yes, brain allowed me to use this DisableSound "MVM.SentryBusterIntro" DisableSound "music.mvm_lost_wave" DisableSound "heavy_mvm_giant_robot01" DisableSound "heavy_mvm_giant_robot02" DisableSound "heavy_mvm_giant_robot03" DisableSound "heavy_mvm_giant_robot04" DisableSound "heavy_mvm_sentry_buster02" DisableSound "engineer_mvm_giant_robot01" DisableSound "engineer_mvm_giant_robot02" DisableSound "engineer_mvm_giant_robot03" DisableSound "engineer_mvm_sentry_buster02" DisableSound "soldier_mvm_giant_robot01" DisableSound "soldier_mvm_giant_robot02" DisableSound "soldier_mvm_giant_robot03" DisableSound "soldier_mvm_giant_robot04" DisableSound "soldier_mvm_sentry_buster02" DisableSound "medic_mvm_giant_robot01" DisableSound "medic_mvm_giant_robot02" DisableSound "medic_mvm_giant_robot03" DisableSound "medic_mvm_sentry_buster02" DisableSound "music.mvm_end_last_wave" DisableSound "music.mvm_end_mid_wave" DisableSound "music.mvm_end_tank_wave" DisableSound "music.mvm_end_wave" DisableSound "music.mvm_lost_wave" DisableSound "music.mvm_start_last_wave" DisableSound "music.mvm_start_mid_wave" DisableSound "music.mvm_start_tank_wave" DisableSound "music.mvm_start_wave" DisableSound "Announcer.MVM_Get_To_Upgrade" DisableSound "Announcer.MVM_Spy_Alert" DisableSound "Announcer.mvm_spybot_death" DisableSound "Announcer.mvm_spybot_death_all" DisableSound "Announcer.MVM_First_Wave_Start" DisableSound "Announcer.MVM_Wave_Start" DisableSound "Announcer.MVM_Wave_End" DisableSound "Announcer.MVM_Wave_Lose" DisableSound "Announcer.MVM_Final_Wave_Start" DisableSound "Announcer.MVM_Final_Wave_End" DisableSound "Announcer.MVM_Robots_Planted" DisableSound "Announcer.MVM_Bomb_Alert_Entered" DisableSound "Announcer.MVM_Bomb_Alert_Near_Hatch" DisableSound "Announcer.MVM_Bomb_Alert_Deploying" DisableSound "Announcer.MVM_General_Wave_Start" DisableSound "Announcer.MVM_Game_Over_Loss" DisableSound "Announcer.MVM_Tank_Planted" DisableSound "Announcer.MVM_Tank_Alert_Spawn" DisableSound "Announcer.MVM_Tank_Alert_Another" DisableSound "Announcer.MVM_Tank_Alert_Multiple" DisableSound "Announcer.MVM_Tank_Alert_Halfway" DisableSound "Announcer.MVM_Tank_Alert_Halfway_Multiple" DisableSound "Announcer.MVM_Tank_Alert_Near_Hatch" DisableSound "Announcer.MVM_Tank_Alert_Deploying" PrecacheModel "models/kirillian/infected/coomer_v3.mdl" PrecacheModel "models/kirillian/infected/spyro_v3.mdl" PrecacheModel "models/kirillian/infected/hank_v3_1.mdl" PrecacheModel "models/kirillian/infected/scunter_v3.mdl" PrecacheModel "models/kirillian/infected/wanker_v3.mdl" PrecacheModel "models/kirillian/infected/hoomer_v3_1.mdl" PrecacheModel "models/kirillian/infected/sock_v3.mdl" OverrideSounds { "MVM.GiantHeavyExplodes" "misc/null.wav" "MVM.GiantCommonExplodes" "misc/null.wav" "Building_Sentrygun.Alert" "misc/null.wav" "Weapon_General.CritPower" "misc/null.wav" "Regenerate.Touch" "misc/null.wav" } ItemWhitelist //Only allows to use specified weapons below { Classname "tf_wearable" Classname "tf_weapon_parachute" Classname "tf_weapon_spellbook" Classname "saxxy" Classname "tf_weapon_lunchbox" Classname "tf_weapon_lunchbox_drink" ClassName "tf_weapon_jar" Classname "tf_weapon_jar_milk" Classname "tf_weapon_jar_gas" Classname "tf_weapon_cleaver" Classname "tf_weapon_bat" Classname "tf_weapon_bat_wood" Classname "tf_weapon_bat_fish" Classname "tf_weapon_bat_giftwrap" Classname "tf_weapon_fireaxe" Classname "tf_weapon_breakable_sign" ClassName "tf_weapon_flamethrower" ClassName "tf_weapon_rocketlauncher_fireball" ClassName "tf_weapon_jar_gas" ClassName "tf_weapon_flaregun" ClassName "tf_weapon_flaregun_revenge" Name "The Detonator" Classname "tf_weapon_buff_item" Classname "tf_weapon_shovel" Classname "tf_weapon_katana" ClassName "tf_wearable_demoshield" ClassName "tf_weapon_sword" ItemName "tf_weapon_shotgun_hwg" Name "The Family Business" ClassName "tf_weapon_fists" ClassName "tf_weapon_shotgun_primary" ItemName "tf_weapon_shotgun_primary" ClassName "tf_weapon_handgun_scout_primary" Name "The Shortstop" ItemName "Panic Attack Shotgun" //yes you can equip an unupgradeable stock PA on pyro/soldier/heavy but who cares ItemName "tf_weapon_pistol" //yes scout can equip stock pistol but who cares ClassName "tf_weapon_shotgun_building_rescue" ClassName "tf_weapon_drg_pomson" ClassName "tf_weapon_sentry_revenge" ClassName "tf_weapon_mechanical_arm" ClassName "tf_weapon_laser_pointer" ClassName "tf_weapon_wrench" ClassName "tf_weapon_robot_arm" ClassName "tf_weapon_pda_engineer_build" ClassName "tf_weapon_pda_engineer_destroy" ClassName "tf_weapon_syringegun_medic" ClassName "tf_weapon_crossbow" ClassName "tf_weapon_medigun" ClassName "tf_weapon_bonesaw" ClassName "tf_weapon_club" ClassName "tf_weapon_builder" ClassName "tf_weapon_invis" ClassName "tf_weapon_pda_spy" ClassName "tf_weapon_revolver" ClassName "tf_weapon_knife" ItemSlot "11" ItemSlot "12" ItemSlot "13" ItemSlot "14" ItemSlot "15" ItemSlot "16" ItemSlot "17" ItemSlot "18" } DisallowUpgrade "generate rage on heal" PlayerAttributes { "min respawn time" 9999 //no respawn, works on scout "always allow taunt" 1 //very good feature should be in default tf2 "crit mod disabled" 0 //no random crits "override footstep sound set" 0 //no robot steps Engineer { "mvm sentry ammo" 0.5 //experimental sentry "engy sentry fire rate increased" 5 //experimental sentry "mult teleporter recharge rate" 0.25 //make level 1 tele usable "building max level" 1 //make dispenser not meta or essential "mod teleporter speed boost" 1 //give tele a little something "engineer sentry build rate multiplier" 2 "engineer teleporter build rate multiplier" 2 "hidden secondary max ammo penalty" 0.18 //nerf dumb 200 ammo to scout's 36 } } PointTemplates { corelogic //all the things we want to automatically run when the popfile reloads. Use this the most to avoid spaghetti { NoFixup 1 logic_auto { "origin" "0 0 0" "targetname" "mainrelay" "OnMapSpawn" "spawnbot_mission_sniper,Setteam,2,0,-1" "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 "OnMapSpawn" "eyeball_boss,Kill,,0,-1" "OnMapSpawn" "wave_start_relay*,AddOutput,OnTrigger spawnbarrier*:Disable::0:-1,0,-1" "OnMapSpawn" "wave_finished_relay,AddOutput,OnTrigger spawnbarrier*:Enable::0:-1,0,-1" //resupply "OnMapSpawn" "wave_start_relay*,AddOutput,OnTrigger func_regenerate:Disable:0:-1" "OnMapSpawn" "wave_finished_relay,AddOutput,OnTrigger func_regenerate:Enable:0:-1" "OnMapSpawn" "wave_finished_relay,AddOutput,OnTrigger teleportblubacktospawn:Enable::0:-1,0,-1" "OnMapSpawn" "wave_finished_relay,AddOutput,OnTrigger teleportblubacktospawn:Disable::0.1:-1,0,-1" "OnMapSpawn" "wave_finished_relay,AddOutput,OnTrigger tele_disable_relay,Trigger::0:-1,0,-1" "OnMapSpawn" "func_nav_prefer,Kill,,0,-1" "OnMapSpawn" "func_nav_avoid,Kill,,0,-1" "OnMapSpawn" "capturezone_blue,Disable,,0,-1" "OnMapSpawn" "capturezone_blue,$RemoveOutput,OnCapture,0,-1" //replace bomb deploy logic with one that doesn't end the round } trigger_teleport { "origin" "0 0 0" "mins" "-10000 -10000 -10000" "maxs" "10000 10000 10000" "spawnflags" "1" "StartDisabled" "1" "filtername" "filter_blue" "target" "spawnbot" "targetname" "teleportblubacktospawn" } 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 "OnTrigger" "failuresound,PlaySound,,0,-1" //map dependent } game_round_win //do not interact with this { "origin" "0 0 0" "TeamNum" "2" "targetname" "bots_win_red" "switch_teams" "0" "force_map_reset" "1" "classname" "game_round_win" } ambient_generic { "targetname" "failuresound" "health" "10" "message" "vo/announcer_failure.mp3" "pitch" "100" "pitchstart" "100" "radius" "20000" "spawnflags" "49" "origin" "0 0 0" } tf_point_nav_interface { "targetname" "nav_refresh" } func_regenerate { "targetname" "regenerate" "associatedmodel" "locker_model" "TeamNum" "3" "mins" "-10000 -10000 -10000" "maxs" "10000 10000 10000" "origin" "0 0 0" } prop_dynamic { "targetname" "locker_model" "model" "models/props_gameplay/resupply_locker.mdl" "solid" "0" "rendermode" "10" "renderfx" "6" "angles" "0 0 0" "origin" "0 0 0" "disablebonefollowers" "1" "disableshadows" "1" } trigger_brush { "origin" "0 0 0" "targetname" "game_playerdie" "StartDisabled" "0" "OnUse" "item_powerup_rune,Kill,0,-1" } logic_relay { "targetname" "hudbgone" "OnTrigger" "player*,SetHUDVisibility,0,0,-1" } logic_relay { "targetname" "hudcome" "OnTrigger" "player*,SetHUDVisibility,1,0,-1" } } PlayersLeftLogic { NoFixup 1 math_counter { "targetname" "playersLeftAlive" "startvalue" 0 "outValue" "playersLeftFormat,$SetKey$Case01,,0,-1" // Comment out or remove these 2 lines, the logic_case and the game_text "outValue" "playersLeftFormat,$Format,,0.2,-1" // to remove the remaining players display "outValue" "playersLeftCheck,SetValueCompare,,0,-1" } logic_compare { "targetname" "playersLeftCheck" "initialValue" 0 "CompareValue" 0 //Swap this value to a target number (i.e 1 for last man standing) "OnEqualTo" "[relayname],Trigger,,0,-1" } logic_case { "targetname" "playersLeftFormat" "case16" "Players Alive: %" //formatting string "case01" "h" //Will be the number of players currently alive //"case02" "6" //Uncomment to give another param to show total team size, could be made dynamic but prob best left "ondefault" "playersLeftDisplay,$SetKey$Message,,0,-1" "ondefault" "playersLeftDisplay,Display,,0.2,-1" } game_text { "targetname" "playersLeftDisplay" "channel" "3" //Swap if causing conflicts with other game_text entities "color" "255 255 255" "color2" "255 255 255" "effect" "0" "fadein" "0" "fadeout" "1" "fxtime" "0.25" "holdtime" "9999" //stupid long hold time, text still gets updated if something overwrites it on its corrosponding channel "message" "FunnyHahaPlaceholderText" "spawnflags" "1" "x" "0.85" "y" "0.1" } } PlayerTracker { NoFixup 1 OnSpawnOutput { Target "playersLeftAlive" Action "add" Param "1" } logic_relay { "$OnKilled" "playersLeftAlive,Subtract,1,0,0" } } Barriers { NoFixup 1 prop_dynamic { "angles" "0 0 0" "fademindist" "-1" "fadescale" "1" "MaxAnimTime" "10" "MinAnimTime" "5" "model" "models/props_urban/urban_shipping_container02.mdl" "modelscale" "1.0" "renderamt" "255" "rendercolor" "255 255 255" "skin" "1" "solid" "0" "targetname" "spawnbarrierA" "origin" "-352 3572 148.225" } func_forcefield { "disablereceiveshadows" "0" "origin" "-352 3576 429.99" "renderamt" "255" "rendercolor" "255 255 255" "renderfx" "0" "rendermode" "10" "TeamNum" "2" "targetname" "spawnbarrierA1" "mins" "-208 -64 -524" "maxs" "208 64 524" "StartDisabled" "0" } prop_dynamic { "angles" "0 0 0" "fademindist" "-1" "fadescale" "1" "MaxAnimTime" "10" "MinAnimTime" "5" "model" "models/props_urban/urban_shipping_container02.mdl" "modelscale" "1.0" "renderamt" "255" "rendercolor" "255 255 255" "skin" "1" "solid" "0" "targetname" "spawnbarrierB" "origin" "-868 3632 128" } func_forcefield { "disablereceiveshadows" "0" "origin" "-932 3640 463.88" "renderamt" "255" "rendercolor" "255 255 255" "renderfx" "0" "rendermode" "10" "TeamNum" "2" "targetname" "spawnbarrierB1" "mins" "-380 -72 -524" "maxs" "380 72 524" "StartDisabled" "0" } prop_dynamic { "angles" "0 0 0" "fademindist" "-1" "fadescale" "1" "MaxAnimTime" "10" "MinAnimTime" "5" "model" "models/props_urban/urban_shipping_container02.mdl" "modelscale" "1.0" "renderamt" "255" "rendercolor" "255 255 255" "skin" "1" "solid" "0" "targetname" "spawnbarrierC" "origin" "-1973.77 3541.33 0" } func_forcefield { "disablereceiveshadows" "0" "origin" "-2048 3540 367.88" "renderamt" "255" "rendercolor" "255 255 255" "renderfx" "0" "rendermode" "10" "TeamNum" "2" "targetname" "spawnbarrierC1" "mins" "-160 -244 -368" "maxs" "160 244 368" "StartDisabled" "0" } } UpgradeStationAlt { OnSpawnOutput { Target "shop_pivot" Action "$SetLocalAngles" Param "0 180 0" //Use this to rotate the shop, preserves model orientations Delay 0.1 } info_target { "targetname" "shop_pivot" "angles" "0 0 0" } env_sprite //sprite to show its a upgrade station { "disablereceiveshadows" "0" "framerate" "1" "GlowProxySize" "1" "model" "sprites/upgrades_blue.vmt" //if you want a red upgrade station use "upgrades_red.vmt" instead "scale" "0.25" "spawnflags" "1" "targetname" "shop_particle" "origin" "10 -1 71" } func_upgradestation { "mins" "-100 -100 0" "maxs" "100 100 200" "solid" "0" "targetname" "shop_upgrade" } func_door //very bad way of doing collisions { "mins" "-60 -60 0" "maxs" "60 60 48" "targetname" "shop_collision" } //All props below can be changed/removed to suit whatever you need. prop_dynamic { "classname" "prop_dynamic" "angles" "0 0 0" "parentname" "shop_pivot" "disableshadows" "1" "model" "models/props_spytech/work_table001.mdl" "targetname" "shop_desk" "origin" "0 0 0" } prop_dynamic { "classname" "prop_dynamic" "angles" "0 255 90" "parentname" "shop_pivot" "disableshadows" "1" "model" "models/weapons/w_models/w_shotgun.mdl" "targetname" "shop_wep_4" "origin" "-5.8437 45.0474 39" } prop_dynamic { "classname" "prop_dynamic" "angles" "0 90 -90" "parentname" "shop_pivot" "disableshadows" "1" "model" "models/weapons/w_models/w_revolver.mdl" "targetname" "shop_wep_3" "origin" "19 -38 39" } prop_dynamic { "classname" "prop_dynamic" "angles" "0 0 0" "parentname" "shop_pivot" "disableshadows" "1" "skin" "1" "model" "models/weapons/w_models/w_toolbox.mdl" "targetname" "shop_wep_2" "origin" "-13 -7 38" } prop_dynamic { "classname" "prop_dynamic" "angles" "0 270 90" "parentname" "shop_pivot" "disableshadows" "1" "skin" "1" "model" "models/workshop/weapons/c_models/c_spikewrench/c_spikewrench.mdl" "targetname" "shop_wep_1" "origin" "3 -35 39" } } Hoomer_PT { KeepAlive 1 // NoFixup 1 OnParentKilledOutput { Target boomer_death_relay Action Trigger } ambient_generic { "targetname" "vomit" "message" "zombiefortress/boomer/voice/vomit/male_boomer_vomit_01.wav" "health" "10" "pitch" "80" "radius" "1200" "spawnflags" "48" } info_particle_system { "targetname" "boomerexplode1" "origin" "0 0 0" "effect_name" "eb_death_gas" } info_particle_system { "targetname" "boomerexplode2" "origin" "0 0 0" "effect_name" "eb_death_goop" } trigger_add_tf_player_condition { "targetname" "boomer_cover_enemies" "mins" "-256 -256 -256" "maxs" "256 256 256" "startdisabled" "1" "filtername" "filter_blue" "condition" "24" "duration" "5" "spawnflags" "1" } logic_relay { "targetname" "boomer_death_relay" "OnTrigger" "boomerexplode1,Start,,0,-1" "OnTrigger" "boomerexplode2,Start,,0,-1" "OnTrigger" "boomer_cover_enemies,Enable,,0,-1" "OnTrigger" "boomer_cover_enemies,Disable,,0.05,-1" } } Smoker_PT { KeepAlive 1 NoFixup 1 OnParentKilledOutput { Target smokerexplode Action Start } info_particle_system { "targetname" "smokerexplode" "origin" "0 0 0" "effect_name" "pumpkin_explode" } } fog { NoFixup 1 env_fog_controller { "farz" "-1" "fogblend" "1" "fogcolor" "24 25 36" "fogcolor2" "18 20 24" "fogdir" "1 0 0" "fogenable" "1" "fogend" "512" "foglerptime" "2" "fogmaxdensity" "1" "fogstart" "1" "spawnflags" "1" "targetname" "mist" } trigger_multiple { "targetname" "fog_system" "origin" "-181 234 -118" "mins" "-9999 -9999 -9999" "maxs" "9999 9999 9999" "StartDisabled" "1" "spawnflags" "1" "OnStartTouch" "!activator,SetFogController,mist,0.01,-1" } } } SpawnTemplate "corelogic" SpawnTemplate "Barriers" SpawnTemplate "PlayersLeftLogic" PlayerSpawnTemplate "PlayerTracker" SpawnTemplate "fog" SpawnTemplate { Name UpgradeStationAlt Origin "-856.057 4772 -126.74" Angles "0 0 0" } SpawnTemplate { Name UpgradeStationAlt Origin "-2607.952 3336.569 0" Angles "0 270 0" } SpawnTemplate { Name UpgradeStationAlt Origin "552 4836 -128.119" Angles "0 0 0" } ExtraSpawnPoint { Name "spawnbot_house" TeamNum 2 X "192" Y "2064" Z "-114.993" } ExtraSpawnPoint { Name "spawnbot_top" TeamNum 2 X "-1032" Y "1668" Z "269.007" } ExtraSpawnPoint { Name "spawnbot_mid1" TeamNum 2 X "-548" Y "1016" Z "13.0069" } ExtraSpawnPoint { Name "spawnbot_mid2" TeamNum 2 X "1380" Y "968" Z "-50.993" } ExtraSpawnPoint { Name "spawnbot_mid3" TeamNum 2 X "1140" Y "-320" Z "-50.993" } ExtraSpawnPoint { Name "spawnbot_mid4" TeamNum 2 X "980" Y " -748" Z "77.0069" } ExtraSpawnPoint { Name "spawnbot_mid5" TeamNum 2 X "696" Y "-1572" Z "13.007" } ExtraSpawnPoint { Name "spawnbot_mid_left1" TeamNum 2 X "-1316" Y "-40" Z "141.007" } ExtraSpawnPoint { Name "spawnbot_mid_left2" TeamNum 2 X "-948" Y "-376" Z "77.0069" } ExtraSpawnPoint { Name "spawnbot_truck" TeamNum 2 X "-348" Y "-92" Z "-114.993" } ExtraSpawnPoint { Name "bluplayerspawn" TeamNum 3 StartDisabled 1 X "653" Y "-3030" Z "65" } ExtraSpawnPoint { Name "bluplayerspawn" TeamNum 3 StartDisabled 1 X "700" Y "-2984" Z "65" } ExtraSpawnPoint { Name "bluplayerspawn" TeamNum 3 StartDisabled 1 X "745" Y "-2940" Z "65" } ExtraSpawnPoint { Name "bluplayerspawn" TeamNum 3 StartDisabled 1 X "700" Y "-3076" Z "65" } ExtraSpawnPoint { Name "bluplayerspawn" TeamNum 3 StartDisabled 1 X "745" Y "-3030" Z "65" } ExtraSpawnPoint { Name "bluplayerspawn" TeamNum 3 StartDisabled 1 X "791" Y "-2984" Z "65" } Templates { T_TFBot_Zombie_Special_Crusher { Name "Crusher" Class Demoman ClassIcon heavy_zombie_arm2_lite Scale 1.25 Health 600 Attributes MiniBoss Attributes DisableDodge Skill Expert MaxVisionRange 500 WeaponRestrictions MeleeOnly AddCond { Name "TF_COND_REPROGRAMMED" } Action Mobber NoIdleSound 1 StripItemSlot 0 PainSound "physics/body/body_medium_break2.wav" DeathSound "zombiefortress/charger/voice/die/charger_die_01.wav" UseCustomModel "models/kirillian/infected/coomer_v3.mdl" Item "The Chargin' Targe" ItemAttributes { ItemName "The Chargin' Targe" "attack not cancel charge" 1 "is invisible" 1 "damage causes airblast" 1 "custom kill icon" "fists" } ItemAttributes { ItemName "TF_WEAPON_BOTTLE" "is invisible" 1 "fire rate penalty" 1.5 "damage bonus" 1.5 "custom kill icon" "fists" "custom hit sound" "player/taunt_chest_thump_alt.wav" } CharacterAttributes { "damage force reduction" 0 "airblast vulnerability multiplier" 0 "airblast vertical vulnerability multiplier" 0 "override footstep sound set" 0 "voice pitch scale" 0 "health from packs decreased" 0.01 "crit mod disabled" 0 "charge time increased" 2 "charge impact damage increased" 1.3 } Sequence { Delay 0 Cooldown 12 Repeats 0 Name "Charger_Charge" } Sequence { Delay 2 Cooldown 12 Repeats 0 Name "run_MELEE" } } T_TFBot_Zombie_Special_Electric { Name "Zapper" Class Medic ClassIcon zap_lite Scale 1.25 Health 450 Attributes MiniBoss Attributes DisableDodge Skill Expert MaxVisionRange 500 WeaponRestrictions PrimaryOnly AddCond { Name "TF_COND_REPROGRAMMED" } Action Mobber NoIdleSound 1 StripItemSlot 1 UseMeleeThreatPrioritization 1 DeathSound "ambient/energy/zap9.wav" Item "The Trepanabotomizer" Item "Emerald Jarate" Item "Zombie Medic" ItemAttributes { ItemName "TF_WEAPON_SYRINGEGUN_MEDIC" "is invisible" 1 "custom weapon fire sound" "Weapon_BarretsArm.Zap" "override projectile type" 13 "set item tint rgb" 15185211 "crit vs wet players" 1 "damage penalty" 0.5 "clip size penalty" 0.25 "reload time increased" 5 } ItemAttributes { ItemName "TF_WEAPON_BONESAW" "is_passive_weapon" 1 "is invisible" 1 "custom kill icon" "unarmed_combat" } CharacterAttributes { "move speed bonus" 0.7 "damage force reduction" 0 "airblast vulnerability multiplier" 0 "airblast vertical vulnerability multiplier" 0 "override footstep sound set" 0 "voice pitch scale" 0 "crit mod disabled" 0 "attach particle effect" 3044 } } T_TFBot_Red_Engineer_Uber { Name "Uber Engineer" Class Medic ClassIcon medic_uber Attributes SpawnWithFullCharge Attributes DisableDodge Skill Expert AddCond { Name "TF_COND_REPROGRAMMED" } UseCustomModel "models/player/engineer.mdl" DeathSound "vo/engineer_paincrticialdeath03.mp3" UseHumanAnimations 1 Item "The Crusader's Crossbow" ItemAttributes { ItemName "TF_WEAPON_MEDIGUN" "ubercharge rate bonus" 5 "uber duration bonus" -3 } CharacterAttributes { "voice pitch scale" 0 "gesture speed increase" 1.5 "patient overheal penalty" 0 "overheal penalty" 0 "bot medic uber deploy delay duration" 0.75 } } T_TFBot_Red_Giant_Engineer_Wrench_Fat { Name "Giant Wrench Engineer" Class Heavyweapons ClassIcon engineer_giant Health 3000 Attributes MiniBoss Attributes DisableDodge Skill Expert WeaponRestrictions MeleeOnly AddCond { Name "TF_COND_REPROGRAMMED" } Action Mobber NoIdleSound 1 DeathSound "vo/engineer_paincrticialdeath02.mp3" UseCustomModel "models/player/engineer.mdl" UseHumanAnimations 1 StripItemSlot 0 Item "The Persian Persuader" Item "The Borscht Belt" ItemAttributes { ItemName "The Persian Persuader" "custom item model" "models/weapons/c_models/c_wrench/c_wrench.mdl" "damage bonus" 1.54 "damage causes airblast" 1 "is_a_sword" 0 "melee range multiplier" 0.85 "melee bounds multiplier" 0.85 "hand scale" 1.25 "custom kill icon" "wrench" "custom hit sound" "physics/body/body_medium_break2.wav" } CharacterAttributes { "move speed bonus" 0.5 "voice pitch scale" 0 "health from packs decreased" 0.01 "damage force reduction" 0 "airblast vulnerability multiplier" 0 "override footstep sound set" 7 } ItemModel { ItemName "The Borscht Belt" Model "models/workshop/player/items/engineer/short2014_engineer_nerd_chin/short2014_engineer_nerd_chin.mdl" } } EngiModel { UseCustomModel "models/player/engineer.mdl" UseHumanAnimations 1 DeathSound "vo/engineer_paincrticialdeath01.mp3" CharacterAttributes { "voice pitch scale" 0 } } EngiModelGiant { NoIdleSound 1 UseCustomModel "models/player/engineer.mdl" UseHumanAnimations 1 DeathSound "vo/engineer_paincrticialdeath02.mp3" CharacterAttributes { "voice pitch scale" 0 } } EngiModelZombie { Name "Zombie Engineer" UseCustomModel "models/player/engineer.mdl" UseHumanAnimations 1 DeathSound "vo/engineer_paincrticialdeath01.mp3" Skin 23 Item "Zombie Engineer" CharacterAttributes { "voice pitch scale" 0 } } } CustomWeapon { Name "SPAS-12" OriginalItemName "TF_WEAPON_SHOTGUN_SOLDIER" "cannot be upgraded" 1 "can headshot" 1 "dmg pierces resists absorbs" 1 "revolver use hit locations" 1 "weapon spread bonus" 0.5 "mark for death" 1 "crit kill will gib" 1 "custom weapon fire sound" "weapons\shotgun\shotgun_fire6.wav" "custom item model" "models\weapons\c_models\c_rapidfire\c_rapidfire_1.mdl" } CustomWeapon { Name "Dustbowl Eagle" OriginalItemName "TF_WEAPON_PISTOL" "can headshot" 1 "damage bonus" 3 "mult crit dmg" 0.48 "fire rate penalty" 2 "clip size penalty" 0.5 "weapon spread bonus" 0.5 "revolver use hit locations" 1 "custom weapon fire sound" "=80|denominator/de_shot1.wav" "custom impact sound" "=65|denominator/hs.wav" "custom item model" "models\workshop\weapons\c_models\c_winger_distol\c_winger_distol.mdl" } Wave // Wave 1 { WaitWhenDone 65 Checkpoint Yes Sound "Announcer.IncomingMob" StartWaveOutput { Target wave_start_relay_classic Action Trigger } DoneOutput { Target wave_finished_relay Action Trigger } InitWaveOutput { Target holograms_3way_relay Action Trigger } BlueTeamWipeCausesWaveLoss 1 WaveSpawn { Name a1_1 TotalCurrency 0 TotalCount 15 MaxActive 5 SpawnCount 5 Where spawnbot_house WaitBeforeStarting 1 WaitBetweenSpawns 2 TFBot { Template T_TFBot_Red_Scout Name Engineer Skill Normal Attributes DisableDodge WeaponRestrictions PrimaryOnly AddTemplate EngiModel } } WaveSpawn { Name "a1_2" Where spawnbot_house Where spawnbot_top TotalCount 10 MaxActive 5 SpawnCount 5 WaitBeforeStarting 15 WaitBetweenSpawns 2 TotalCurrency 0 TFBot { Template T_TFBot_Red_Demoman_Knight Attributes DisableDodge Name "Engiknight" AddTemplate EngiModel } } WaveSpawn { Name "a1_3" WaitForAllSpawned "a1_1" Where spawnbot_top TotalCount 2 MaxActive 2 SpawnCount 1 WaitBeforeStarting 10 WaitBetweenSpawns 10 TotalCurrency 200 TFBot { Template T_TFBot_Red_Giant_Soldier_RocketShotgun Attributes DisableDodge Name "Giant Black Box Engineer" AddTemplate EngiModel } } WaveSpawn { Name "a1_4" WaitForAllSpawned "a1_2" Where spawnbot_top Where spawnbot_mid1 TotalCount 24 MaxActive 6 SpawnCount 2 WaitBeforeStarting 10 WaitBetweenSpawns 0 TotalCurrency 0 Squad { TFBot { Template T_TFBot_Red_Heavyweapons_Fist Name "Texan Gauntlet" Attributes DisableDodge AddTemplate EngiModelGiant } TFBot { Template T_TFBot_Red_Engineer_Uber } } } WaveSpawn { Name "a1_5" WaitForAllDead "a1_3" Where spawnbot_mid1 TotalCount 4 MaxActive 2 SpawnCount 1 WaitBeforeStarting 0 WaitBetweenSpawns 5 TotalCurrency 200 TFBot { Template T_TFBot_Red_Giant_Engineer_Wrench_Fat } } } }