//By StardustSpy #base robot_standard.pop #base robot_giant.pop #base robot_stardust.pop WaveSchedule { StartingCurrency 5000 CanBotsAttackWhileInSpawnRoom no RespawnWaveTime 5 NoRomevisionCosmetics 1 // FixedRespawnWaveTime 1 AddSentryBusterWhenDamageDealtExceeds 2000 AddSentryBusterWhenKillCountExceeds 15 // Advanced 1 // EventPopfile Halloween ReverseWinConditions 1 AllowJoinTeamBlue 1 HumansMustJoinTeam Blue SetCreditTeam 3 SniperAllowHeadshots 1 SendBotsToSpectatorImmediately 1 FixedRespawnWaveTimeBlue 1 RespawnWaveTimeBlue 5 BluHumanFlagCapture 1 MaxSpectators 0 BluHumanFlagPickup 1 BluPlayersAreRobots 1 RemoveBluVelocityLimit 1 NoBluHumanFootsteps 1 FixedBuybacks 1 BuybacksPerWave 0 SniperHideLasers 1 MedigunShieldDamage 1 BluHumanInfiniteAmmo 1 RestoreNegativeDamageHealing 1 HealOnKillOverhealMelee 0 FlagCarrierMovementPenalty 1 NoRedBotsRandomCrit 1 FixSetCustomModelInput 1 FixHuntsmanDamageBonus 1 StuckTimeMultiplier 3 ForceRedMoney 1 //AllowBotExtraSlots 1 RobotLimit 26 //ExtraBotSlotsNoDeathcam 0 ConchHealthOnHit 0.20 EnemyTeamForReverse Red NoRedSniperBotHeadshots 1 CustomNavFile "mvm_powerplant_rc1_rev2.nav" DisallowUpgrade "critboost" DisallowUpgrade "ubercharge" DisallowUpgrade "uber duration bonus" DisallowUpgrade "maxammo primary increased" //players have infinite ammo DisallowUpgrade "maxammo secondary increased" //players have infinite ammo DisallowUpgrade "maxammo metal increased" //players have infinite ammo DisallowUpgrade "metal regen" //players have infinite ammo DisallowUpgrade "overheal expert" //overpowered for giant reverse DisallowUpgrade "canteen specialist" //canteens are off PrecacheModel "models\props_mvm\mvm_upgrade_blu.mdl" PrecacheModel "models\props_mvm\mvm_upgrade_blu_sign.mdl" PrecacheModel "models\props_mvm\reversemvm_redwall_112x152.mdl" PrecacheModel "models\bots\saxtron\bot_saxtron_v2.mdl" PrecacheModel "models\bots\demo\red_sentry_buster_v2.mdl" PrecacheModel "models\bots\heavy_boss\bot_heavy_boss_gibby.mdl" Templates { //scout T_TFGateBot_Scout_Sandman { Name "Sandman Scout" Class Scout ClassIcon scout_stun Health 130 Item "The Sandman" Action Mobber EventChangeAttributes { Default { Skill Expert MaxVisionRange 900 WeaponRestrictions MeleeOnly Attributes IgnoreFlag BehaviorModifiers Push Tag bot_gatebot Item "MvM GateBot Light Scout" InterruptAction { Target "-680 928 -36" Delay 0.01 Repeats 0 Duration 9999 } ItemAttributes { ItemName "The Sandman" "effect bar recharge rate increased" 0.65 "increase player capture value" -1 } } RevertGateBotsBehavior { Skill Hard MaxVisionRange 600 WeaponRestrictions MeleeOnly Item "MvM GateBot Light Scout" ItemAttributes { ItemName "MvM GateBot Light Scout" "item style override" 1 } InterruptAction // Stop current bot ai and force the bot to move to a location { AimTarget "RandomEnemy" KillAimTarget 1 AlwaysLook 1 Distance 150 } ItemAttributes { ItemName "The Sandman" "effect bar recharge rate increased" 0.65 } } } } T_TFGateBot_Giant_Scout { Name "Giant Scout" Class Scout ClassIcon scout_giant Health 1600 Attributes MiniBoss Scale 1.7 Item "Upgradeable TF_WEAPON_SCATTERGUN" Action Passive EventChangeAttributes { Default { Skill Expert MaxVisionRange 1200 WeaponRestrictions PrimaryOnly InterruptAction { Target "-680 928 -36" Delay 0.01 Repeats 0 Duration 9999 StopCurrentInterruptAction 1 } Tag bot_gatebot Item "MvM GateBot Light Scout" ItemAttributes { Itemname "Upgradeable TF_WEAPON_SCATTERGUN" "damage bonus" 1.5 } CharacterAttributes { "damage force reduction" 0.3 "airblast vulnerability multiplier" 0.3 "override footstep sound set" 3 "voice pitch scale" 0 } } RevertGateBotsBehavior { Skill Expert //Action Mobber MaxVisionRange 800 WeaponRestrictions PrimaryOnly Item "MvM GateBot Light Scout" InterruptAction { Target "RandomEnemy" Delay 0.01 Repeats 0 Duration 9999 AlwaysLook 1 StopCurrentInterruptAction 1 } ItemAttributes { ItemName "MvM GateBot Light Scout" "item style override" 1 } ItemAttributes { Itemname "Upgradeable TF_WEAPON_SCATTERGUN" "damage bonus" 1.5 } CharacterAttributes { "damage force reduction" 0.3 "airblast vulnerability multiplier" 0.3 "override footstep sound set" 3 "voice pitch scale" 0 } } } } //soldier T_TFGateBot_DirectHit { Name "Direct Hit Soldier" Class Soldier ClassIcon soldier_directhit_lite Health 200 Item "The Direct Hit" Attributes DisableDodge Action Passive EventChangeAttributes { Default { Skill Expert MaxVisionRange 1200 WeaponRestrictions PrimaryOnly InterruptAction { Target "-680 928 -36" Delay 0.01 Repeats 0 Duration 9999 StopCurrentInterruptAction 1 } Tag bot_gatebot Item "MvM GateBot Light Soldier" } RevertGateBotsBehavior { Skill Hard //Action Mobber MaxVisionRange 800 WeaponRestrictions PrimaryOnly Item "MvM GateBot Light Soldier" InterruptAction { Target "RandomEnemy" Delay 0.01 Repeats 0 Duration 9999 AlwaysLook 1 StopCurrentInterruptAction 1 } ItemAttributes { ItemName "MvM GateBot Light Soldier" "item style override" 1 } } } } T_TFGateBot_Pyro_Melee { Name "Pyro" Class Pyro ClassIcon pyro_jug_volcanofrag Item "Sharpened Volcano Fragment" Attributes DisableDodge Action Passive EventChangeAttributes { Default { Skill Expert MaxVisionRange 1200 WeaponRestrictions MeleeOnly InterruptAction { Target "-680 928 -36" Delay 0.01 Repeats 0 Duration 9999 StopCurrentInterruptAction 1 } Tag bot_gatebot Item "MvM GateBot Light Pyro" } RevertGateBotsBehavior { Skill Hard //Action Mobber MaxVisionRange 800 WeaponRestrictions MeleeOnly Item "MvM GateBot Light Pyro" InterruptAction { Target "RandomEnemy" Delay 0.01 Repeats 0 Duration 9999 AlwaysLook 1 StopCurrentInterruptAction 1 } ItemAttributes { ItemName "MvM GateBot Light Pyro" "item style override" 1 } } } } T_TFGateBot_Giant_Spammer_Soldier { Name "Giant Spammer Soldier" Class Soldier ClassIcon soldier_spammer Health 4000 Attributes MiniBoss Scale 1.7 Item "Upgradeable TF_WEAPON_ROCKETLAUNCHER" Action Passive EventChangeAttributes { Default { Skill Expert MaxVisionRange 1200 WeaponRestrictions PrimaryOnly InterruptAction { Target "-680 928 -36" Delay 0.01 Repeats 0 Duration 9999 StopCurrentInterruptAction 1 } Tag bot_gatebot Item "MvM GateBot Light Soldier" ItemAttributes { Itemname "Upgradeable TF_WEAPON_ROCKETLAUNCHER" "mod no reload DISPLAY ONLY" 1 "reload time increased hidden" -0.8 "fire rate bonus" 0.5 } CharacterAttributes { "move speed bonus" 0.5 "damage force reduction" 0.3 "airblast vulnerability multiplier" 0.3 "override footstep sound set" 3 "voice pitch scale" 0 } } RevertGateBotsBehavior { Skill Expert //Action Mobber MaxVisionRange 800 WeaponRestrictions PrimaryOnly Item "MvM GateBot Light Soldier" InterruptAction { Target "RandomEnemy" Delay 0.01 Repeats 0 Duration 9999 AlwaysLook 1 StopCurrentInterruptAction 1 } ItemAttributes { ItemName "MvM GateBot Light Soldier" "item style override" 1 } ItemAttributes { Itemname "Upgradeable TF_WEAPON_ROCKETLAUNCHER" "mod no reload DISPLAY ONLY" 1 "reload time increased hidden" -0.8 "fire rate bonus" 0.5 } CharacterAttributes { "move speed bonus" 0.5 "damage force reduction" 0.3 "airblast vulnerability multiplier" 0.3 "override footstep sound set" 3 "voice pitch scale" 0 } } } } T_TFBot_Giant_Soldier_Bison_BigLaser { Name "Big Laser Bison Soldier" Class Soldier ClassIcon soldier_bison Scale 1.75 Health 4000 Attributes MiniBoss Attributes HoldFireUntilFullReload Skill Expert MaxVisionRange 1500 WeaponRestrictions SecondaryOnly Tag bot_giant Item "The righteous Bison" Item "Lord Cockswain's Pith Helmet" Action Passive ItemAttributes { ItemName "The righteous Bison" "clip size upgrade atomic" 23 "fire rate bonus" 0.1 "faster reload rate" 0.1 } CharacterAttributes { "move speed bonus" 0.5 "damage force reduction" 0.3 "airblast vulnerability multiplier" 0.3 "override footstep sound set" 3 } } //demo T_TFGateBot_DemoKnight { Name "Demoknight" Class Demoman Action Passive EventChangeAttributes { Default { Skill Expert MaxVisionRange 900 WeaponRestrictions MeleeOnly Tag bot_gatebot Item "MvM GateBot Light Demo" Item "The Eyelander" Item "The Chargin' Targe" InterruptAction { Target "-680 928 -36" Delay 0.01 Repeats 0 Duration 9999 StopCurrentInterruptAction 1 } } RevertGateBotsBehavior { Skill Expert MaxVisionRange 600 WeaponRestrictions MeleeOnly Item "MvM GateBot Light Demo" Item "The Eyelander" Item "The Chargin' Targe" ItemAttributes { ItemName "MvM GateBot Light Demo" "item style override" 1 } InterruptAction { Target "RandomEnemy" Delay 0.01 Repeats 0 Duration 9999 AlwaysLook 1 StopCurrentInterruptAction 1 } } } } //heavy T_TFGateBot_Heavyweapons { Name "Heavyweapons" Class Heavyweapons Action Passive EventChangeAttributes { Default { Skill Expert MaxVisionRange 900 WeaponRestrictions PrimaryOnly Tag bot_gatebot Item "MvM GateBot Light Heavy" InterruptAction { Target "-680 928 -36" Delay 0.01 Repeats 0 Duration 9999 StopCurrentInterruptAction 1 } } RevertGateBotsBehavior { Skill Normal MaxVisionRange 600 WeaponRestrictions PrimaryOnly Item "MvM GateBot Light Heavy" ItemAttributes { ItemName "MvM GateBot Light Heavy" "item style override" 1 } InterruptAction { Target "RandomEnemy" Delay 0.01 Repeats 0 Duration 9999 AlwaysLook 1 StopCurrentInterruptAction 1 } } } } T_TFGateBot_Heavyweapons_Heavyweight_Champ { Name "Heavyweight Champ" Class Heavyweapons ClassIcon heavy_champ_red Item "the killing gloves of boxing" Item "Pugilist's Protector" Action Passive EventChangeAttributes { Default { Skill Expert MaxVisionRange 500 WeaponRestrictions MeleeOnly Tag bot_gatebot Item "MvM GateBot Light Heavy" InterruptAction { Target "-680 928 -36" Delay 0.01 Repeats 0 Duration 9999 StopCurrentInterruptAction 1 } } RevertGateBotsBehavior { Skill Hard MaxVisionRange 500 WeaponRestrictions MeleeOnly Item "MvM GateBot Light Heavy" ItemAttributes { ItemName "MvM GateBot Light Heavy" "item style override" 1 } InterruptAction { Target "RandomEnemy" Delay 0.01 Repeats 0 Duration 9999 AlwaysLook 1 StopCurrentInterruptAction 1 } } } } T_TFGateBot_Giant_Shotgun_Heavy { Name "Giant Shotgun Heavy" Class Heavyweapons ClassIcon heavy_shotgun_red Health 5000 Attributes Miniboss Scale 1.7 Action Passive EventChangeAttributes { Default { Skill Expert MaxVisionRange 1200 WeaponRestrictions SecondaryOnly Tag bot_gatebot Item "MvM GateBot Light Heavy" InterruptAction { Target "-680 928 -36" Delay 0.01 Repeats 0 Duration 9999 StopCurrentInterruptAction 1 } ItemAttributes { ItemName "Tf_weapon_shotgun_hwg" "fire rate bonus" 2.5 "bullets per shot bonus" 10 "damage penalty" 0.5 "faster reload rate" 0.1 "attack projectiles" 1 } CharacterAttributes { "move speed bonus" 0.7 "damage force reduction" 0.3 "airblast vulnerability multiplier" 0.3 "override footstep sound set" 2 "voice pitch scale" 0 } } RevertGateBotsBehavior { Skill Expert MaxVisionRange 800 WeaponRestrictions SecondaryOnly Item "MvM GateBot Light Heavy" ItemAttributes { ItemName "MvM GateBot Light Heavy" "item style override" 1 } InterruptAction { Target "RandomEnemy" Delay 0.01 Repeats 0 Duration 9999 AlwaysLook 1 StopCurrentInterruptAction 1 } ItemAttributes { ItemName "Tf_weapon_shotgun_hwg" "fire rate bonus" 2.5 "bullets per shot bonus" 10 "damage penalty" 0.5 "faster reload rate" 0.1 "attack projectiles" 1 } CharacterAttributes { "move speed bonus" 0.7 "damage force reduction" 0.3 "airblast vulnerability multiplier" 0.3 "override footstep sound set" 2 "voice pitch scale" 0 } } } } //engineer T_TFBot_Giant_Engineer_Ranger { Name "Giant Homing Ranger Engineer" Class Engineer ClassIcon engineer_ranger_nys Scale 1.7 Health 3000 Attributes MiniBoss Attributes HoldFireUntilFullReload Attributes AlwaysCrit Skill Expert MaxVisionRange 1000 WeaponRestrictions PrimaryOnly Tag bot_giant Item "The Rescue Ranger" Item "Wavefinder" RocketCustomParticle "eyeboss_projectile" AddCond { Name "TF_COND_SODAPOPPER_HYPE" Delay 1 Duration 999999 } Tag bot_giant HomingRockets { IgnoreDisguisedSpies 1 IgnoreStealthedSpies 1 AimTime 4 TurnPower 105 MaxAimError 65 } ItemAttributes { ItemName "The Rescue Ranger" "projectile speed decreased" 0.3 "mod projectile heat seek power" 75 "mod projectile heat aim error" 30 "projectile trail particle" "eyeboss_projectile" } CharacterAttributes { "move speed bonus" 0.5 "damage force reduction" 0.4 "airblast vulnerability multiplier" 0.4 "override footstep sound set" 7 "damage force reduction" 0 "voice pitch scale" 0 } } } ExtraSpawnPoint { Name "spawnbot_secret_tree" Teamnum 2 X "-443" Y "1259" Z "83" } ExtraSpawnPoint { Name "spawnbot_front_gate" Teamnum 2 X "-1508.4" Y "1548.9" Z "289.8" } ExtraSpawnPoint { Name "spawnbot_left_building" Teamnum 2 X "-163" Y "730" Z "-31" } ExtraSpawnPoint { Name "spawnbot_blockoff_mid" Teamnum 2 X "-661" Y "-390" Z "256" } ExtraSpawnPoint { Name "spawnbot_blockoff_hallway" Teamnum 2 X "188" Y "-1116" Z "320" } ExtraSpawnPoint { Name "spawnbot_midsection" Teamnum 2 X "-826" Y "-1170" Z "320" } ExtraSpawnPoint { Name "spawnbot_warningsign_hallway" Teamnum 2 X "-1865" Y "-688" Z "256" } ExtraSpawnPoint { Name "spawnbot_nearhatch_cone" Teamnum 2 X "-1618.95" Y "-2135" Z "384" } ExtraSpawnPoint { Name "spawnbot_left_behindbuilding" Teamnum 2 X "457" Y "-395" Z "208" } ExtraSpawnPoint { Name "spawnbot_redkegs" Teamnum 2 X "-1963" Y "293" Z "256" } ExtraSpawnPoint { Name "spawnbot_smallhouse" Teamnum 2 X "-1285" Y "502" Z "176" } ExtraSpawnPoint { Name "spawnbot_spawn_hatch1" Teamnum 2 X "-248.8" Y "-2501" Z "515" } ExtraSpawnPoint { Name "air_boss" Teamnum 2 X "-701" Y "989" Z "336" } PointTemplates { core_logic { NoFixup 1 //respawn room visuals logic_auto { "targetname" "auto" "OnMapSpawn" "sentry_nest*,SetTeam,2,0,-1" "OnMapSpawn" "func_tfbot_hint*,SetTeam,2,0,-1" "OnMapSpawn" "func_respawnroomvisualizer*,SetTeam,2,0,-1" "OnMapSpawn" "wave_start*,AddOutput,OnTrigger func_respawnroomvisualizer*:Disable::0:-1,0,-1" "OnMapSpawn" "wave_start*,AddOutput,OnTrigger capturezone_blue*:Disable::0:-1,0,-1" //"OnMapSpawn" "wave_start*,AddOutput,OnTrigger intel*:Disable::0:-1,0,-1" "OnMapSpawn" "wave_start*,AddOutput,OnTrigger func_flagdetectionzone*:Disable::0:-1,0,-1" "OnMapSpawn" "wave_finish*,AddOutput,OnTrigger func_respawnroomvisualizer*:Enable::0:-1,0,-1" } OnSpawnOutput { Target hold* Action Enable } func_nav_prerequisite { "origin" "-734 819 59.5" "targetname" "hold_front_lower" "mins" "-265 -306 -200" "maxs" "265 306 200" "Entity" "hold_front_lower" "filtername" "filter_frontbots_entrance" "spawnflags" "1" "start_disabled" "1" "StartDisabled" "1" // guh "Task" "2" "Value" "444" } filter_tf_bot_has_tag { "Negated" "0" "require_all_tags" "1" "tags" "bot_is_holdentrance" "targetname" "filter_frontbots_entrance" } func_nav_prerequisite { "origin" "-1358.75 114.18 256.11" "targetname" "hold_front_upper_left" "mins" "-225 -150 -111" "maxs" "225 150 111" "Entity" "hold_front_upper_left" "filtername" "filter_frontbots_left" "spawnflags" "1" "start_disabled" "1" "StartDisabled" "1" // guh "Task" "2" "Value" "444" } filter_tf_bot_has_tag { "Negated" "0" "require_all_tags" "1" "tags" "bot_is_left" "targetname" "filter_frontbots_left" } func_nav_prerequisite { "origin" "-1704.76 688.22 295.77" "targetname" "hold_front_upper_gate" "mins" "-225 -150 -111" "maxs" "225 150 111" "Entity" "hold_front_upper_gate" "filtername" "filter_frontbots_gate" "spawnflags" "1" "start_disabled" "1" "StartDisabled" "1" // guh "Task" "2" "Value" "444" } filter_tf_bot_has_tag { "Negated" "0" "require_all_tags" "1" "tags" "bot_is_gate" "targetname" "filter_frontbots_gate" } func_nav_prerequisite { "origin" "-95 -228.5 155.25" "targetname" "hold_front_pushback" "mins" "-225 -150 -111" "maxs" "225 150 111" "Entity" "hold_front_pushback" "filtername" "filter_frontbots_pushback" "spawnflags" "1" "start_disabled" "1" "StartDisabled" "1" // guh "Task" "2" "Value" "444" } filter_tf_bot_has_tag { "Negated" "0" "require_all_tags" "1" "tags" "bot_is_pushback" "targetname" "filter_frontbots_pushback" } func_nav_prerequisite { "origin" "-845.26 -1648.76 263.77" "targetname" "hold_hallway" "mins" "-225 -150 -111" "maxs" "225 150 111" "Entity" "hold_hallway" "filtername" "filter_hallway" "spawnflags" "1" "start_disabled" "1" "StartDisabled" "1" // guh "Task" "2" "Value" "444" } filter_tf_bot_has_tag { "Negated" "0" "require_all_tags" "1" "tags" "bot_is_hallway" "targetname" "filter_hallway" } func_nav_prerequisite { "origin" "-586.51 -2443.5 435.64" "targetname" "hold_hatch" "mins" "-450 -280 -111" "maxs" "450 280 111" "Entity" "hold_hatch" "filtername" "filter_hatch" "spawnflags" "1" "start_disabled" "1" "StartDisabled" "1" // guh "Task" "2" "Value" "444" } filter_tf_bot_has_tag { "Negated" "0" "require_all_tags" "1" "tags" "bot_is_hatch" "targetname" "filter_hatch" } } HologramSpawnpoints { NoFixup 1 prop_dynamic { "angles" "0 0 0" "model" "models/props_mvm/robot_spawnpoint.mdl" "modelscale" "1.0" "skin" "0" "solid" "0" "spawnflags" "0" "targetname" "front_gate" "origin" "-1549 1568 177" } prop_dynamic { "angles" "0 0 0" "model" "models/props_mvm/robot_spawnpoint.mdl" "modelscale" "1.0" "skin" "0" "solid" "0" "spawnflags" "0" "targetname" "left_building" "origin" "-163 730 -31" } prop_dynamic { "model" "models/props_mvm/robot_spawnpoint.mdl" "modelscale" "1.0" "skin" "0" "solid" "6" "spawnflags" "0" "targetname" "blockedoff_mid" "origin" "-661 -390 256" } prop_dynamic { "model" "models/props_mvm/robot_spawnpoint.mdl" "modelscale" "1.0" "skin" "0" "solid" "0" "spawnflags" "0" "targetname" "blockoff_hallway" "origin" "188 -1116 320" } prop_dynamic { "model" "models/props_mvm/robot_spawnpoint.mdl" "modelscale" "1.0" "skin" "0" "solid" "0" "spawnflags" "0" "targetname" "spawn_leftenter" "origin" "457 -395 208" } prop_dynamic { "model" "models/props_mvm/robot_spawnpoint.mdl" "modelscale" "1.0" "skin" "0" "solid" "0" "spawnflags" "0" "targetname" "midsection" "origin" "-826 -1170 320" } prop_dynamic { "model" "models/props_mvm/robot_spawnpoint.mdl" "modelscale" "1.0" "skin" "0" "solid" "0" "spawnflags" "0" "targetname" "warningsign_hallway" "origin" "-1865 -688 256" } prop_dynamic { "model" "models/props_mvm/robot_spawnpoint.mdl" "modelscale" "1.0" "skin" "0" "solid" "0" "spawnflags" "0" "targetname" "nearhatch_cone" "origin" "-1618.95 -2135.51 384.045" } prop_dynamic { "model" "models/props_mvm/robot_spawnpoint.mdl" "modelscale" "1.0" "skin" "0" "solid" "0" "spawnflags" "0" "targetname" "spawn_hatch1" "origin" "-261 -2498 384" } prop_dynamic { "model" "models/props_mvm/robot_spawnpoint.mdl" "modelscale" "1.0" "skin" "0" "solid" "0" "spawnflags" "0" "targetname" "spawn_redkegs" "origin" "-1963 293 256" } prop_dynamic { "model" "models/props_mvm/robot_spawnpoint.mdl" "modelscale" "1.0" "skin" "0" "solid" "0" "spawnflags" "0" "targetname" "spawn_smallhouse" "origin" "-1285 502 176" } } UpgradeStation { prop_dynamic { "angles" "0 210 0" "model" "models\props_mvm\mvm_upgrade_blu.mdl" "modelscale" "1.0" "rendercolor" "255 255 255" "solid" "0" "targetname" "upgradestation" "origin" "-20 3370 152" } func_upgradestation { "mins" "-216 -237 -83" "maxs" "216 237 83" "origin" "-61.0 3490 280" "parentname" "upgradestation" } prop_dynamic { "angles" "0 0 0" "model" "models\props_mvm\mvm_upgrade_blu.mdl" "modelscale" "1.0" "rendercolor" "255 255 255" "solid" "0" "targetname" "upgradestation2" "origin" "-1777 2673 154" } func_upgradestation { "mins" "-190 -237 -83" "maxs" "190 237 83" "origin" "-1777 2673 154" "parentname" "upgradestation2" } //shoved into the ground guy prop_dynamic { "angles" "-30 150 0" "DefaultAnim" "stand_loser" "model" "models/bots/engineer/bot_engineer.mdl" "skin" "1" "solid" "0" "spawnflags" "0" "targetname" "help_me_im_stuck" "origin" "695 2112 -87" } prop_dynamic { "angles" "0 105 0" "model" "models/props_vehicles/mining_cart_supplies002.mdl" "modelscale" "0.5" "skin" "0" "solid" "0" "spawnflags" "0" "targetname" "minecart" "origin" "676 2082 -69" } prop_dynamic { "angles" "0 195 0" "model" "models/props_mvm/mvm_upgrade_blu_sign.mdl" "modelscale" "0.35" "skin" "0" "solid" "0" "DefaultAnim" "idle" "spawnflags" "0" "targetname" "sign" "origin" "656 2074 -44" } func_upgradestation { "mins" "-100 -74 -57" "maxs" "100 74 57" "origin" "663 2134 47" "parentname" "help_me_im_stuck" } } ForceFields { NoFixup 1 func_forcefield { "origin" "-1.5 -1121 390" "teamnum" "2" "targetname" "hallway_forcefield" "mins" "-15 -82 -70" "maxs" "15 82 70" } func_forcefield { "origin" "184 -1343 390" "teamnum" "2" "targetname" "hallway_forcefield2" "mins" "-83 -15 -70" "maxs" "83 15 70" } func_nobuild { "AllowDispenser" "0" "AllowSentry" "0" "AllowTeleporters" "0" "DestroyBuildings" "0" "StartDisabled" "0" "targetname" "nobuild" "TeamNum" "0" "origin" "138 -1203 409" "mins" "-175 -170 -70" "maxs" "175 170 70" } prop_dynamic { "angles" "0 180 0" "DisableBoneFollowers" "0" "model" "models\props_mvm\reversemvm_redwall_112x152.mdl" "modelscale" "1.2" "solid" "0" "spawnflags" "0" "targetname" "wall2" "origin" "193 -1333.4 370" } prop_dynamic { "angles" "0 90 0" "model" "models\props_mvm\reversemvm_redwall_112x152.mdl" "modelscale" "1.2" "skin" "0" "solid" "0" "spawnflags" "0" "targetname" "wall1" "origin" "-1 -1121 376" } prop_dynamic { "angles" "0 180 0" "model" "models/props_mvm/reversemvm_redwall_112x152.mdl" "modelscale" "1.3" "solid" "0" "spawnflags" "0" "targetname" "wall3" "origin" "-638 -546 289" } prop_dynamic { "angles" "0 60 0" "model" "models/props_mvm/reversemvm_redwall_112x152.mdl" "modelscale" "1.3" "skin" "0" "solid" "0" "spawnflags" "0" "targetname" "wall4" "origin" "-896.251 -353.193 294" } func_forcefield { "origin" "-858 -373 318" "teamnum" "2" "targetname" "ff2" "mins" "-42 -48 -56" "maxs" "42 48 56" } func_forcefield { "origin" "-639 -532 315" "teamnum" "2" "targetname" "ff3" "mins" "-70 -15 -60" "maxs" "70 15 60" } func_nobuild { "AllowDispenser" "0" "AllowSentry" "0" "AllowTeleporters" "0" "DestroyBuildings" "0" "StartDisabled" "0" "targetname" "nobuild" "TeamNum" "0" "origin" "-714 -387 315" "mins" "-175 -170 -70" "maxs" "175 170 70" } } textualtimer { OnSpawnOutput { Param 8 Target minutehand Action SetValue } OnSpawnOutput { Param 0 Target secondhand Action SetValue } OnSpawnOutput { Target realtimer action trigger } logic_relay { "targetname" "loserelay" "startdisabled" "1" "ontrigger" "bots_win_red,RoundWin,,2,-1" "ontrigger" "realtimer,cancelpending,,2,-1" "onspawn" "wave_start*,addoutput,ontrigger realtimer:trigger::0:-1,0,-1" "onspawn" "wave_finish*,addoutput,ontrigger realtimer:cancelpending::0:-1,0,-1" "onspawn" "wave_finish*,addoutput,ontrigger loserelay:cancelpending::0:-1,0,-1" } NoFixup 1 math_counter { "targetname" "minutehand" "max" "9999" "outvalue" "timerformat,$setkey$case01,,0,-1" "onhitmin" "loserelay,enable,,1,-1" } math_counter { "targetname" "secondhand" "max" "60" "outvalue" "timerformat,$setkey$case02,,0,-1" "outvalue" "zerocompare,setvaluecompare,,0,-1" "onhitmin" "loserelay,trigger,,0,-1" "onhitmin" "!self,setvalue,60,1,-1" "onhitmin" "minutehand,subtract,1,1,-1" } logic_compare { "targetname" "zerocompare" "comparevalue" "9" "onequalto" "timerformat,$setkey$case16,%:0%,0,-1" "ongreaterthan" "timerformat,$setkey$case16,%:%,0,-1" } logic_case { "targetname" "timerformat" "case16" "%:%" "ondefault" "timertext,$setkey$message,,0,-1" "ondefault" "timertext,display,0,0,-1" } game_text { "targetname" "timertext" "color" "65 155 255" "holdtime" "1" "spawnflags" "1" "channel" "2" "x" "0.2" "y" "-0.65" } logic_relay { "targetname" "realtimer" "spawnflags" "2" "ontrigger" "timerformat,$format,,0.01,-1" "ontrigger" "secondhand,subtract,1,0,-1" "ontrigger" "!self,trigger,,1,-1" } game_round_win { "teamnum" "2" "targetname" "bots_win_red" "force_map_reset" "1" } } tankred_win { logic_relay //trigger this to lose { "origin" "0 0 0" "targetname" "redwin_relay" "OnTrigger" "bots_win_red,RoundWin,,0,-1" } 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" } } wave1_objective { NoFixup 1 Item_teamflag { "angles" "0 270 0" "flag_icon" "../hud/objectives_flagpanel_carried" "flag_model" "models/props_td/atom_bomb.mdl" "flag_paper" "player_intel_papertrail" "flag_trail" "flagtrail" "GameType" "1" "NeutralType" "1" "ReturnBetweenWaves" "1" "ReturnTime" "60000" "ScoringType" "0" "StartDisabled" "1" "targetname" "grab_this" "TeamNum" "3" "trail_effect" "1" "origin" "-574 -2487 397" "OnPickup1" "!activator,$AddCond,65,0,-1" "OnPickup1" "!self,ForceReset,,40,-1" "OnPickup1" "!activator,$AddPlayerAttribute,move speed bonus|1.5,0,-1" "OnDrop1" "!self,ForceReset,,0,-1" "OnDrop1" "!activator,$RemoveCond,65,0,-1" "OnDrop1" "!activator,$RemovePlayerAttribute,move speed bonus,0,-1" } OnSpawnOutput { Target glownow2 Action SetGlowColor Param "88 136 162" } tf_glow { "GlowColor" "0 0 0 1" "Mode" "0" "startdisabled" "0" "target" "grab_this" "targetname" "glownow2" "origin" "-4 40 4" } training_annotation { "display_text" "BOMB ENABLED! +2 Minutes! Pick it up and bring it to Robo-Hale!" "lifetime" "5" "offset" "0" "targetname" "bomb_has_enabled" "origin" "-574 -2487 397" } trigger_push { "filtername" "filter_objective_w1" "origin" "-920 2176 -86" "pushdir" "0 0 0" "spawnflags" "1" "speed" "0.01" "StartDisabled" "0" "targetname" "is_holding_flag" "mins" "-100 -100 -100" "maxs" "100 100 100" "OnStartTouch" "bots_win,RoundWin,,0,-1" } training_annotation { "display_text" "Bring the bomb to me once you pick it up!" "lifetime" "5" "offset" "0" "targetname" "bring_me" "origin" "-926 2155 -167" } OnSpawnOutput { Target bring_me Action Show Delay 10 } filter_tf_condition { "condition" "65" "Negated" "0" "targetname" "filter_objective_w1" "origin" "-1093 2153 -161.11" } prop_dynamic { "angles" "0 255 0" "DefaultAnim" "taunt03" "model" "models/bots/saxtron/bot_saxtron_v2.mdl" "skin" "0" "solid" "0" "spawnflags" "0" "targetname" "robohale" "origin" "-926 2155 -167" } OnSpawnOutput { Target glownow Action SetGlowColor Param "88 136 162" } tf_glow { "GlowColor" "0 0 0 1" "Mode" "0" "startdisabled" "0" "target" "robohale" "targetname" "glownow" "origin" "-4 40 4" } } objective_w2 { OnSpawnOutput { Target control_point_wave2 Action SetTeam Param 0 } OnSpawnOutput { Target spawnbot_* Action Disable } OnSpawnOutput { Target cap_point Action Show } training_annotation { "display_text" "Capture the point to begin the wave!" "lifetime" "5" "offset" "0" "targetname" "cap_point" "origin" "-680 928 -36" } training_annotation { "display_text" "Bots spawn in 5..." "lifetime" "1" "offset" "0" "targetname" "5" "origin" "-680 928 -36" } training_annotation { "display_text" "Bots spawn in 4..." "lifetime" "1" "offset" "0" "targetname" "4" "origin" "-680 928 -36" } training_annotation { "display_text" "Bots spawn in 3..." "lifetime" "1" "offset" "0" "targetname" "3" "origin" "-680 928 -36" } training_annotation { "display_text" "Bots spawn in 2..." "lifetime" "1" "offset" "0" "targetname" "2" "origin" "-680 928 -36" } training_annotation { "display_text" "Bots spawn in 1..." "lifetime" "1" "offset" "0" "targetname" "1" "origin" "-680 928 -36" } NoFixup 1 trigger_capture_area { "area_cap_point" "control_point_wave2" "area_time_to_cap" "5" // is multiplied by 2 "StartDisabled" "0" "targetname" "capturepoint_w2" "team_cancap_2" "1" "team_cancap_3" "1" "spawnflags" "1" "origin" "-680 928 -36" "team_numcap_2" "1" // dont change cuz giants "team_numcap_3" "1" // dont change cuz giants "team_startcap_2" "1" // dont change cuz giants "team_startcap_3" "1" // dont change cuz giants "OnCapTeam2" "5,Show,,3,1" "OnCapTeam2" "4,Show,,4,1" "OnCapTeam2" "3,Show,,5,1" "OnCapTeam2" "2,Show,,6,1" "OnCapTeam2" "1,Show,,7,1" "OnCapTeam2" "spawnbot_*,Enable,,8,-1" "OnCapTeam1" "capturepoint_prop_wave2,Skin,1,0,-1" "OnCapTeam2" "capturepoint_prop_wave2,Skin,2,0,-1" "OnCapTeam1" "realtimer,Trigger,,0,-1" // red cap = start timer "OnCapTeam2" "realtimer,$cancelpending,,0,-1" // blu cap = stop timer //"OnCapTeam1" "pop_interface,ChangeBotAttributes,RevertGateBotsBehavior,0.01,-1" // red caps: become weaker "OnCapTeam1" "player,$ChangeAttributes,RevertGateBotsBehavior,0.01,-1" // red caps: become weaker "OnCapTeam1" "pop_interface,ChangeDefaultEventAttributes,RevertGateBotsBehavior,0.02,-1" // red caps: become weaker //"OnCapTeam2" "pop_interface,ChangeBotAttributes,Default,0.01,-1" // blu caps: become stronger "OnCapTeam2" "player,$ChangeAttributes,Default,0.01,-1" // blu caps: become stronger "OnCapTeam2" "pop_interface,ChangeDefaultEventAttributes,Default,0.02,-1" // red caps: become stronger "mins" "-128 -128 -128" "maxs" "128 128 128" } point_populator_interface { "targetname" "pop_interface" } OnSpawnOutput // stops round from being auto-won { Target control_point_master_wave2 Action RoundSpawn } OnSpawnOutput { Target control_point_wave2 Action SetUnlockTime Param 7 } OnSpawnOutput //very important to keep this output otherwise the control point will not function { Target capturepoint_w2 Action SetControlPoint Param control_point_wave2 Delay 7 } team_control_point_master { "cpm_restrict_team_cap_win" "1" "custom_position_x" "0.3" "custom_position_y" "-1" "partial_cap_points_rate" "0" "play_all_rounds" "0" "score_style" "0" "switch_teams" "0" "targetname" "control_point_master_wave2" "team_base_icon_2" "sprites/obj_icons/icon_base_red" "team_base_icon_3" "sprites/obj_icons/icon_base_blu" "origin" "-680 928 -36" } team_control_point { "angles" "0 0 0" "point_default_owner" "0" "point_group" "0" "point_index" "0" "point_printname" "the Point!" "point_start_locked" "0" "point_warn_on_cap" "2" "point_warn_sound" "ControlPoint.CaptureWarn" //"mvm_cpoint_klaxon.wav" "random_owner_on_restart" "0" "spawnflags" "0" "targetname" "control_point_wave2" "team_bodygroup_0" "3" "team_bodygroup_2" "1" "team_bodygroup_3" "1" "team_capsound_0" "sound\mvm\mvm_revive.wav" "team_capsound_2" "sound\ui\duel_challenge_rejected_with_restriction.wav" "team_capsound_3" "sound\ui\duel_challenge_accepted_with_restriction.wav" "team_icon_0" "sprites/obj_icons/icon_obj_neutral" "team_icon_2" "sprites/obj_icons/icon_obj_red" "team_icon_3" "sprites/obj_icons/icon_obj_blu_mannhattan" "team_model_0" "models/effects/cappoint_hologram.mdl" "team_model_2" "models/effects/cappoint_hologram.mdl" "team_model_3" "models/effects/cappoint_hologram.mdl" "team_timedpoints_2" "0" "team_timedpoints_3" "0" "origin" "-680 928 -36" } prop_dynamic { "angles" "0 0 0" "model" "models/props_gameplay/cap_point_base.mdl" "modelscale" "1.0" "skin" "0" "solid" "6" "spawnflags" "0" "targetname" "capturepoint_prop_wave2" "origin" "-680 928 -36" } } textualtimer_w2 // by lite { NoFixup 1 OnSpawnOutput { Param 1 Target minutehand Action SetValue } OnSpawnOutput { Param 0 Target secondhand Action SetValue } OnSpawnOutput { Target realtimer Action $cancelpending // to let players capture the point before the start of the wave } logic_relay { "targetname" "loserelay" "startdisabled" "1" "ontrigger" "bots_win_red,RoundWin,,2,-1" "ontrigger" "realtimer,cancelpending,,2,-1" "onspawn" "wave_start*,addoutput,ontrigger realtimer:trigger::0:-1,0,-1" "onspawn" "wave_finish*,addoutput,ontrigger realtimer:cancelpending::0:-1,0,-1" "onspawn" "wave_finish*,addoutput,ontrigger loserelay:cancelpending::0:-1,0,-1" } NoFixup 1 math_counter { "targetname" "minutehand" "max" "9999" "outvalue" "timerformat,$setkey$case01,,0,-1" "onhitmin" "loserelay,enable,,1,-1" } math_counter { "targetname" "secondhand" "max" "60" "outvalue" "timerformat,$setkey$case02,,0,-1" "outvalue" "zerocompare,setvaluecompare,,0,-1" "onhitmin" "loserelay,trigger,,0,-1" "onhitmin" "!self,setvalue,60,1,-1" "onhitmin" "minutehand,subtract,1,1,-1" } logic_compare { "targetname" "zerocompare" "comparevalue" "9" "onequalto" "timerformat,$setkey$case16,%:0%,0,-1" "ongreaterthan" "timerformat,$setkey$case16,%:%,0,-1" } logic_case { "targetname" "timerformat" "case16" "%:%" "ondefault" "timertext,$setkey$message,,0,-1" "ondefault" "timertext,display,0,0,-1" } game_text { "targetname" "timertext" "color" "211 27 0" "holdtime" "2" "spawnflags" "1" "channel" "2" "x" "0.2" "y" "-0.65" } logic_relay { "targetname" "realtimer" "spawnflags" "2" "ontrigger" "timerformat,$format,,0.01,-1" "ontrigger" "secondhand,subtract,1,0,-1" "ontrigger" "!self,trigger,,1,-1" } game_round_win { "teamnum" "2" "targetname" "bots_win_red" "force_map_reset" "1" } //stop timer on spawn + disable all bot spawns } objective_w3 { NoFixup 1 math_counter // display this to players { "max" "100" "min" "0" "startvalue" "0" "targetname" "KillCount" "OnHitMax" "KillCompare,Compare,,0,-1" "OnHitMax" "bots_win,RoundWin,,0,-1" "outvalue" "GetKills,$setkey$case01,,0,-1" "OutValue" "compare_score_w1,SetValueCompare,,0,-1" "origin" "201 -4221 -371.053" } logic_compare { "CompareValue" "100" "InitialValue" "0" "targetname" "KillCompare" //"OnEqualTo" "win_bots,RoundWin,,0,-1" "OnGetValue" "KillCompare,GetValue,,0,-1" "origin" "165 -4235 -369.558" } logic_case { "targetname" "GetKills" "Case16" "Trinity Kills: %/100" // set to 100 "OnDefault" "KillText,$setkey$message,,0,-1" "OnDefault" "KillText,display,0,0,-1" } game_text { "targetname" "KillText" "color" "65 225 65" "holdtime" "2" "spawnflags" "1" "channel" "4" "x" "0.4" "y" "-0.65" } OnSpawnOutput { Target KillRelay Action Trigger } logic_relay { "targetname" "KillRelay" "spawnflags" "2" "OnTrigger" "KillCompare,GetValue,GetKills|$SetKey$case01,0.01,-1" "OnTrigger" "GetKills,$format,,0.02,-1" "OnTrigger" "!self,trigger,,1,-1" "OnTrigger" "KillCompare,GetValueCompare,,0.03,-1" } } spammer_fix { OnSpawnOutput { Target !activator Action $Regenerate } } // flamer_fix // { // OnSpawnOutput // { // Target "!activator" // Action "$AddPlayerAttribute" // Param "max health additive penalty|-500" // } // } // widow // { // OnSpawnOutput // { // Target "!activator" // Action "$AddPlayerAttribute" // Param "hidden maxhealth non buffed|-50" // } // } shortstop { OnSpawnOutput { Target "!activator" Action "$AddPlayerAttribute" Param "max health additive bonus|900" } } NoCheeseStrats { //fixes players abusing aggro NoFixup 1 OnSpawnOutput { Target "check_blu_relay" Action "Trigger" } filter_tf_condition { "condition" "51" "Negated" "0" "targetname" "damage_penalty_check" "OnPass" "!activator,$AddPlayerAttribute,ignored by bots|1,0.1,-1" "OnPass" "!activator,$AddPlayerAttribute,ignored by enemy sentries|1,0.1,-1" "OnPass" "!activator,$AddPlayerAttribute,special item description|Ignored by enemy bots,0.1,-1" //"OnPass" "player,$displaytextchat,pass,0.05,-1" "OnFail" "!activator,$RemovePlayerAttribute,ignored by bots,0.1,-1" "OnFail" "!activator,$RemovePlayerAttribute,ignored by enemy sentries,0.1,-1" "OnFail" "!activator,$RemovePlayerAttribute,special item description,0.1,-1" //"OnFail" "player,$displaytextchat,fail,0.05,-1" } logic_relay { "targetname" "check_blu_relay" "spawnflags" "2" "OnTrigger" "damage_penalty_check,TestActivator,!activator,0,-1" "OnTrigger" "!self,Trigger,,0.05,-1" //"OnTrigger" "player,$displaytextchat,added ignore,0.05,-1" } } GiantMedic { NoFixup 1 OnSpawnOutput { Target gmed_relay Action Trigger } logic_relay { "targetname" "gmed_relay" "spawnflags" "2" "OnTrigger" "!activator,$addplayerattribute,move speed penalty|0.5,0.1,-1" "OnTrigger" "!activator,$addplayerattribute,is miniboss|1,0.1,-1" "OnTrigger" "!activator,$addplayerattribute,min respawn time|14,0.1,-1" "OnTrigger" "!activator,$addplayerattribute,damage force reduction|0.5,0.1-1" "OnTrigger" "!activator,$addplayerattribute,airblast vulnerability multiplier|0.5,0.1,-1" "OnTrigger" "!activator,$addplayerattribute,mult_patient_overheal_penalty_active|0,0.1,-1" //"OnTrigger" "!activator,$addplayerattribute,provide on active|1,0.1,-1" "OnTrigger" "!activator,$addplayerattribute,cannot upgrade|1,0.1,-1" "OnTrigger" "!activator,$addplayerattribute,health from packs decreased|0.5,0.1,-1" "OnTrigger" "!activator,$addplayerattribute,max health additive bonus|4350,0.1,-1" "OnTrigger" "NoResist,Trigger,,0.1,-1" } logic_relay { "targetname" "NoResist" "spawnflags" "2" "OnTrigger" "!activator,$GetPlayerAttribute,dmg taken from fire reduced|!activator|$SetVar$FireRes|1,0,-1" "OnTrigger" "!activator,$AddPlayerAttribute,$$='dmg taken from fire increased|'..1/!activator.FireRes,0,-1" "OnTrigger" "!activator,$GetPlayerAttribute,dmg taken from blast reduced|!activator|$SetVar$BlastRes|1,0,-1" "OnTrigger" "!activator,$AddPlayerAttribute,$$='dmg taken from blast increased|'..1/!activator.BlastRes,0,-1" "OnTrigger" "!activator,$GetPlayerAttribute,dmg taken from bullets reduced|!activator|$SetVar$BulletRes|1,0,-1" "OnTrigger" "!activator,$AddPlayerAttribute,$$='dmg taken from bullets increased|'..1/!activator.BulletRes,0,-1" "OnTrigger" "!activator,$GetPlayerAttribute,dmg taken from crit reduced|!activator|$SetVar$CritRes|1,0,-1" "OnTrigger" "!activator,$AddPlayerAttribute,$$='dmg taken from crit increased|'..1/!activator.CritRes,0,-1" } } GiantMedic_UberDetector { NoFixup 1 filter_tf_condition { "condition" "28" "Negated" "0" "targetname" "is_ubercharged" "origin" "35 -8 283" "OnPass" "!activator,$additemattribute,heal rate bonus|200|1,0,-1" "OnFail" "!activator,$removeitemattribute,heal rate bonus|1,0,-1" } logic_relay { "targetname" "uber_checker" "spawnflags" "2" "OnTrigger" "is_ubercharged,TestActivator,!activator,0,-1" "OnTrigger" "!self,Trigger,,0.5,-1" } OnSpawnOutput { Target uber_checker Action Trigger } } CrossbowCustom { NoFixup 1 OnSpawnOutput { Target cross_relay Action Trigger } logic_relay { "targetname" "cross_relay" "spawnflags" "2" "OnTrigger" "!activator,$addplayerattribute,move speed penalty|0.75,0,-1" //"OnTrigger" "!activator,$addplayerattribute,provide on active|1,0,-1" "OnTrigger" "!activator,$addplayerattribute,model scale|1.5,0,-1" "OnTrigger" "!activator,$addplayerattribute,SET BONUS: max health additive bonus|1850,0,-1" "OnTrigger" "gmed_relay,$CancelPending,,0,-1" "OnTrigger" "!activator,$weaponstripslot,1,0.1,-1" } } minigun_overheat // with help from lite { NoFixup 1 OnSpawnOutput { Target Firing_Check //Triggers the looping relay below Action Trigger } logic_relay { "targetname" "Firing_Check" // checks a bunch of important things "spawnflags" "2" "ontrigger" "filter_spun,$testentity,@c@!activator,0,-1" // TF2 weapons are considered "children" of players, this checks for what weapon it is spawned on //ALERT! Please check https://sigwiki.potato.tf/index.php/Entity_Properties if you wish to check for how other weapons fire. This is a minigun exclusive thing! //Some weapons may not have a concise way of checking when they fire. "ontrigger" "Heat_Format,$format,,0.01,-1" // causes the text to appear on screen "ontrigger" "!self,trigger,,0.1,-1" } $filter_sendprop { "targetname" "filter_spun" // filters if the user is firing the weapon. If yes, add heat "$name" "m_iWeaponState" "$value" "2" "$compare" "equal" "onpass" "heat_count,add,2,0,-1" } $filter_sendprop { "targetname" "filter_spun" // filters if the user is firing the weapon. If no, remove heat "$name" "m_iWeaponState" "$value" "2" "$compare" "greater than" "onpass" "heat_count,subtract,2,1.5,-1" } OnSpawnOutput { Target heat_count Action SetValue Param 0 } math_counter { "targetname" "heat_count" "max" "250" // You can increase the value to increase how long the user can fire for, and vice versa! //Change every other instance of 250 to whatever number you choose. "onhitmax" "overheated,Trigger,,0,-1" // when 250 (or whatever the max is) is hit, causes the relay below to trigger "onhitmax" "Heat_Format,$setkey$case16,Overheat: %/250,2,-1" // causes the text to updated with values when the max is hit "onhitmin" "!activator,$RemoveItemAttribute,no_attack|0,0,-1" // When the counter hits 0, removes this attribute. no_attack will disallow the user from spinning their minigun. "onhitmin" "!activator,$RemoveItemAttribute,provide on active|0,0,-1" // When the counter hits 0, removes this attribute. no_attack will disallow the user from spinning their minigun. "onhitmin" "cooldown,$CancelPending,,0,-1" // When 0 is hit, cancels any inputs the relay below will fire. Stops the user from being unable to fire permantly. "outvalue" "Compare_Heat,setvaluecompare,,0,-1" // Compares the value, which allows for real time number updates "outvalue" "Heat_Format,$setkey$case01,,0,-1" "onhitmax" "overheat1,playsound,!activator,0,-1" // Plays the below ambient_generics to indicate that the user has overheated and cannot fire. "onhitmax" "overheat1,stopsound,!activator,5,-1" "onhitmin" "overheat2,playsound,!activator,0,-1" // Plays the below ambient_generics to indicate that the user can fire their weapon again. "onhitmin" "overheat2,stopsound,!activator,5,-1" } ambient_generic { "targetname" "overheat1" "message" "weapons\bumper_car_decelerate.wav" "health" "10" "pitch" "100" "radius" "5000" "spawnflags" "16" "sourceentityname" "!parent" } ambient_generic { "targetname" "overheat1" "message" "weapons\bumper_car_decelerate.wav" "health" "10" "pitch" "100" "radius" "5000" "spawnflags" "16" "sourceentityname" "!parent" } ambient_generic { "targetname" "overheat2" "message" "weapons\bumper_car_accelerate.wav" "health" "10" "pitch" "100" "radius" "5000" "spawnflags" "16" "sourceentityname" "!parent" } ambient_generic { "targetname" "overheat2" "message" "weapons\bumper_car_accelerate.wav" "health" "10" "pitch" "100" "radius" "5000" "spawnflags" "16" "sourceentityname" "!parent" } logic_relay { "targetname" "overheated" // gets triggered by math_counter when it hits the max "spawnflags" "2" "OnTrigger" "cooldown,Trigger,,3,-1" //Triggers after 3 seconds "OnTrigger" "!activator,$AddItemAttribute,no_attack|1|0,0,-1" // Adds "no_attack" to the minigun this is spawned on "OnTrigger" "!activator,$AddItemAttribute,provide on active|1|0,0,-1" // Adds "no_attack" to the minigun this is spawned on } logic_relay { "targetname" "cooldown" // when the minigun is fully overheated, this reduces overheat by 75 until the overheat hits 0. //Gets automatically canceled when 0 is hit. "spawnflags" "2" "OnTrigger" "heat_count,subtract,75,,-1" "OnTrigger" "!self,Trigger,,1,-1" } logic_compare { "targetname" "Compare_Heat" // compares things to display to the player "comparevalue" "0" "onequalto" "Heat_Format,$setkey$case16,Overheat: %/250,0,-1" "ongreaterthan" "Heat_Format,$setkey$case16,Overheat: %/250,-1" } logic_case { "targetname" "Heat_Format" // displays stuff to the player "case16" "Overheat: %/250" "ondefault" "Heat_Text,$setkey$message,,0,-1" "ondefault" "Heat_Text,display,0,0,-1" } game_text { "targetname" "Heat_Text" // what gets displayed. "color" "209 99 7" "holdtime" "2" "spawnflags" "0" "channel" "2" // If this channel is used, change it to 1,3,4 or 5. 1 or 5 may not be available for reverse! "x" "0.45" "y" "-0.70" } } SentryKnight { OnSpawnOutput { Target sentry_headknight Action SetBuilder Param !activator } OnParentKilledOutput { Target sentry_headknight Action Kill } obj_sentrygun { "angles" "0 0 0" "defaultupgrade" "2" "spawnflags" "10" "targetname" "sentry_headknight" "TeamNum" "2" "origin" "-3 -2 97" } } ReserveShooter { filter_tf_condition { "condition" "80" "Negated" "0" "targetname" "filter_para" "origin" "-1093 2153 -161.11" "OnPass" "!activator,$RemoveCond,81,0,-1" // sometimes will give player rocket jump cond which makes weapon inconsistent "OnPass" "!activator,$AddItemAttribute,fire rate bonus hidden|0.2|0,0,-1" "OnPass" "!activator,$AddItemAttribute,reload time increased hidden|0.3|0,0,-1" "OnPass" "!activator,$AddItemAttribute,damage bonus|1.5|0,0,-1" "OnPass" "!activator,$AddItemAttribute,rocket specialist|1|0,0,-1" "OnPass" "!activator,$AddItemAttribute,Blast radius decreased|0.55|0,0,-1" //"OnPass" "!activator,$AddItemAttribute,always crit|1|1,0,-1" "OnFail" "!activator,$RemoveItemAttribute,fire rate bonus hidden|0,0,-1" "OnFail" "!activator,$RemoveItemAttribute,reload time increased hidden|0,0,-1" "OnFail" "!activator,$RemoveItemAttribute,Blast radius decreased|0,0,-1" "OnFail" "!activator,$RemoveItemAttribute,rocket specialist|0,0,-1" "OnFail" "!activator,$RemoveItemAttribute,damage bonus|0,0,-1" //"OnFail" "!activator,$RemoveItemAttribute,always crit|1,0,-1" } logic_relay { "targetname" "para_checker" "spawnflags" "2" "OnTrigger" "filter_para,TestActivator,!activator,0,-1" "OnTrigger" "!self,Trigger,,0.5,-1" } OnSpawnOutput { Target para_checker Action Trigger } } AutoApply_Attributes { NoFixup 1 trigger_add_tf_player_condition { "condition" "121" "duration" "-1" "origin" "1443 948 781.11" "spawnflags" "1" "StartDisabled" "0" "targetname" "add_reversestuff" "mins" "-9999 -9999 -9999" "maxs" "9999 9999 9999" "OnStartTouch" "team_check,Testactivator,!activator,0,-1" // "OnStartTouch" "red_bot,Testactivator,!activator,0,-1" // "OnStartTouch" "FILTER_is_blu_ally,Testactivator,!activator,0,-1" // "OnStartTouch" "FILTER_is_sniper_check,Testactivator,!activator,0,-1" } filter_tf_condition { "condition" "43" "Negated" "0" "targetname" "team_check" "OnPass" "red_giant,Testactivator,!activator,0,-1" "OnPass" "red_bot,Testactivator,!activator,0,-1" } $filter_sendprop { "$name" "m_bIsMiniBoss" "$value" "1" "$compare" "equal" "targetname" "red_giant" "OnPass" "!activator,$addplayerattribute,voice pitch scale|0,0,-1" "OnPass" "!activator,$addplayerattribute,damage force reduction|0,0,-1" "OnPass" "!activator,$addplayerattribute,cannot pick up intelligence|1,0,-1" "OnPass" "!activator,$addplayerattribute,mult dmg vs giants|2,0,-1" //"OnFail" "!activator,$addplayerattribute,airblast disabled|1,0,-1" } $filter_sendprop { "$name" "m_bIsMiniBoss" "$value" "0" "$compare" "equal" "targetname" "red_bot" "OnPass" "!activator,$addplayerattribute,cannot pick up intelligence|1,0,-1" } // $filter_sendprop // { // "$name" "m_bIsABot" // "$value" "1" // "$compare" "equal" // "targetname" "red_bot" // "OnPass" "!activator,$addcond,43,0,-1" // } // filter_tf_bot_has_tag // { // "Negated" "1" // "require_all_tags" "1" // "tags" "is_blu" // "targetname" "FILTER_is_blu_ally" // "origin" "1838 -1512 -66" // "OnFail" "!activator,$removecond,43,0.1,-1" // } // filter_tf_bot_has_tag // { // "Negated" "1" // "require_all_tags" "1" // "tags" "bot_sniper" // "targetname" "FILTER_is_sniper_check" // "origin" "1838 -1512 -66" // "OnPass" "!activator,$botcommand,switch_action sniper,0.1,-1" // } } } PlayerSpawnTemplate { Name spammer_fix } PlayerSpawnTemplate { Name NoCheeseStrats } PlayerItemEquipSpawnTemplate { Name shortstop Itemname "The Shortstop" } PlayerItemEquipSpawnTemplate { Name minigun_overheat Classname "tf_weapon_minigun" } SpawnTemplate core_logic SpawnTemplate UpgradeStation SpawnTemplate ForceFields SpawnTemplate AutoApply_Attributes SpawnTemplate HologramSpawnpoints /////////////////////balancing //////////////////////////////// ItemBlacklist // numerator { Name "Kritz Or Treat Canteen" Name "Default Power Up Canteen (MvM)" Name "Power Up Canteen (MvM)" Name "Battery Canteens" Name "Zombie Scout" Name "Zombie Pyro" Name "Zombie Soldier" Name "Zombie Heavy" Name "Zombie Demo" Name "Zombie Engineer" Name "Zombie Medic" Name "Zombie Spy" Name "Zombie Sniper" Name "The Reserve Shooter" //multiclass Name "Panic Attack Shotgun" //multiclass Classname "saxxy" //multiclass //Name "Upgradeable TF_WEAPON_SHOTGUN_PRIMARY" //multiclass //ClassName "Upgradeable TF_WEAPON_SHOTGUN_SOLDIER" //multiclass ClassName "TF_WEAPON_SHOTGUN_PYRO" //cactusfix ClassName "TF_WEAPON_SHOTGUN_SOLDIER" //cactusfix Name "TF_WEAPON_SHOTGUN_HWG" //cactusfix Name "The B.A.S.E. Jumper" //multiclass Name "The Flying Guillotine" //scout ClassName "tf_weapon_pistol_scout" //scout ClassName "tf_weapon_handgun_scout_secondary" //scout ClassName "tf_weapon_jar_milk" //scout ClassName "tf_weapon_lunchbox_drink" //scout Name "Rocket Jumper" //soldier Name "The Gunboats" //soldier Name "The Mantreads" //soldier Name "TF_WEAPON_SHOTGUN_SOLDIER" //soldier Name "The Righteous Bison" //soldier ClassName "tf_weapon_shovel" //soldier ClassName "tf_weapon_katana" //soldier Name "TF_WEAPON_SHOTGUN_PYRO" //pyro Name "The Scorch Shot" //pyro Name "The Thermal Thruster" //pyro Name "The Flare Gun" //pyro Classname "tf_weapon_breakable_sign" //pyro ClassName "tf_weapon_flaregun_revenge" //pyro ClassName "tf_weapon_fireaxe" //pyro ClassName "tf_weapon_slap" //pyro Name "The Bootlegger" //demo Name "Ali Baba's Wee Booties" //demo ClassName "TF_WEAPON_PIPEBOMBLAUNCHER" //demo ClassName "Upgradeable TF_WEAPON_PIPEBOMBLAUNCHER" //demo ClassName "TF_WEAPON_BOTTLE" //demo ClassName "Upgradeable TF_WEAPON_BOTTLE" //demo ClassName "TF_WEAPON_STICKBOMB" //demo ClassName "tf_weapon_lunchbox" //hvy ClassName "tf_weapon_fists" //hvy ClassName "Upgradeable tf_weapon_fists" //hvy ClassName "tf_weapon_gloves" //hvy } //SCOUT ItemAttributes // jump scout { Itemname "The Soda Popper" //"hype on damage" 0 "damage bonus" 1.5 } ItemAttributes // burst scout, semi-like giant fan { SimilarToItem "The Force-a-Nature" "reload time increased" 2 "bullets per shot bonus" 3 "damage penalty" 1 "scattergun knockback mult" -1 "special item description" "No Knockback" } ItemAttributes // bulk scout { Itemname "The Shortstop" "damage bonus" 2 "alt-fire disabled" 1 //+900 health via pt "special item description" "No Shove. +900 Health on wearer" } ItemAttributes // crit scout { Itemname "The Back Scatter" "crit from behind" 1 "damage bonus" 1.5 "mult crit dmg" 2.5 "spread penalty" 1 } ItemAttributes // v1 { Itemname "Baby Face's Blaster" "damage bonus" 2 "lose hype on take damage" 0 "move speed penalty" 1.2 "weapon spread bonus" 0.6 "no double jump" 1 } ItemAttributes // just scout { SimilarToItem "TF_WEAPON_SCATTERGUN" "damage bonus" 2.5 } ItemAttributes { SimilarToItem "TF_WEAPON_BAT" "move speed bonus" 1.3 "no_jump" 1 "provide on active" 1 "set BONUS: max health additive bonus" -400 "special item description" "No jumping while active." } ItemAttributes { SimilarToItem "The Holy Mackerel" "move speed bonus" 1.3 "no_jump" 1 "provide on active" 1 "set BONUS: max health additive bonus" -400 "special item description" "No jumping while active." } ItemAttributes { SimilarToItem "The Sandman" "effect bar recharge rate increased" 0.1 "max health additive penalty" 0 "dmg penalty vs players" 3 "damage bonus hidden" 0.25 "always crit" 1 } ItemAttributes // nerf { Itemname "The Fan O'War" "move speed penalty" 0.75 } ItemAttributes // go fuck yourself { Itemname "Sun-on-a-Stick" "damage bonus vs burning" 3 // ehhh fuck you remain obsolete "Set DamageType Ignite" 1 } ItemAttributes // life leecher { Itemname "The Boston Basher" "heal on hit for rapidfire" 50 "restore health on kill" 5 "special item description" "Bleeding effect also triggers heal on hit effect." } //soldier ItemAttributes { SimilarToItem "tf_weapon_rocketlauncher" // spammer "fire rate bonus" 0.5 "mod max primary clip override" -1 "mod no reload display only" 1 "projectile speed decreased" 0.65 } ItemAttributes { itemName "The Beggar's Bazooka" // small burst "damage bonus" 2 "fire rate bonus hidden" 0.2 "clip size upgrade atomic" 1 } ItemAttributes { Itemname "The Direct Hit" // spammer "fire rate bonus" 0.5 "mod max primary clip override" -1 "mod no reload display only" 1 "projectile speed decreased" 0.65 } ItemAttributes { ItemName "The Original" // high giant dmg "fire rate penalty" 2 "damage bonus" 1.25 "always crit" 1 "Projectile speed decreased" 0.5 "mod max primary clip override" -1 } ItemAttributes { ItemName "The Black Box" "fire rate bonus" -1 "clip size upgrade atomic" 0 "blast radius increased" 1.25 "reload time increased" 1.3 "projectile spread angle penalty" 2 "health on radius damage" 550 "self dmg push force decreased" 0.5 } ItemAttributes { Itemname "The Liberty Launcher" // banner soldier launcher "damage penalty" 1 "increase buff duration" 2 "blast radius decreased" 0.65 } ItemAttributes { Itemname "The Cow Mangler 5000" // big laser "override projectile type" 13 "energy weapon penetration" 1 "fire rate bonus" 0.1 "dmg penalty vs players" 0.2 "mult dmg vs giants" 2 "projectile lifetime" 0.5 } ItemAttributes { Itemname "The Air Strike" //"damage bonus" 1.5 "parachute attribute" 2 "self dmg push force increased" 18 "parachute redeploy" 1 "cannot pick up intelligence" 1 "clip size bonus" 1.5 "reload time increased" 1.3 "fire rate penalty" 1.2 //"rocket specialist" 1 "blast radius decreased" 1 "special item description" "Enables the ability to deploy a Parachute." "special item description 2" "Rocket jumping grants increased damage, reload speed, firing speed, rocket specialist and decreased blast radius." } PlayerItemEquipSpawnTemplate { Name ReserveShooter Itemname "The Air Strike" } ItemAttributes { Itemname "the battalion's backup" "max health additive bonus" 0 } ItemAttributes { Itemname "the concheror" "health regen" 0 } //pyro //Either good AOE or high single damage ItemAttributes { SimilarToItem "tf_weapon_flamethrower" "damage bonus" 2 "lunchbox adds minicrits" 2 "weapon burn time reduced" 0.5 } ItemAttributes { Itemname "The Dragon's Fury" "damage bonus" 2 } ItemAttributes { Itemname "The degreaser" "damage bonus" 2 "lunchbox adds minicrits" 2 "minicritboost on kill" 3 "speed_boost_on_kill" 3 "max health additive penalty" -500 } ItemAttributes { SimilarToItem "The backburner" "damage bonus" 2 "lunchbox adds minicrits" 2 "max health additive penalty" -500 } ItemAttributes { Itemname "The Phlogistinator" "damage bonus" 1.5 } ItemAttributes { SimilarToItem "the flare gun" "fire rate bonus" 0.2 } ItemAttributes { Itemname "the detonator" "damage bonus" 2 "weapon burn time increased" 2 "weapon burn dmg increased" 2 "self dmg push force increased" 8 "damage penalty" 1 } ItemAttributes { Itemname "the gas passer" "explode_on_ignite" 1 "dmg penalty vs players" 0.47 "item_meter_damage_for_full_charge" 3000 } ItemAttributes { Itemname "the thermal thruster" "single wep deploy time decreased" 0.5 // gives +500 health globally "max health additive bonus" 500 } //demo ItemAttributes { SimilarToItem "ali baba's wee booties" "max health additive bonus" 400 "deploy time decreased" 0.2 "move speed bonus shield required" 1.3 } ItemAttributes { SimilarToItem "tf_weapon_grenadelauncher" "fire rate bonus" 0.2 "faster reload rate" 0.3 "clip size bonus" 3.0 "Projectile speed increased" 1.5 } ItemAttributes { Itemname "The Iron Bomber" "fire rate bonus" 0.2 "faster reload rate" 0.3 "clip size bonus" 3.0 "Projectile speed increased" 1.5 } ItemAttributes { Itemname "the loch-n-load" "damage bonus" 2 "fire rate bonus" 0.2 "dmg pierces resists absorbs" 1 } ItemAttributes { Itemname "The Loose Cannon" "grenade explode on impact" 1 "grenade launcher mortar mode" 0 "damage bonus" 1.5 "blast dmg to self increased" 6 "override projectile type" 3 "Blast radius increased" 2 "fire rate penalty" 4 "mod max primary clip override" -1 "mod no reload display only" 1 "dmg falloff decreased" 0.5 "mult dmg vs giants" 2.5 "explosion particle" hightower_explosion "custom projectile model" "models\props_trainyard\cart_bomb_separate.mdl" "custom impact sound" "misc/doomsday_missile_explosion.wav" } ItemAttributes { SimilarToItem "The Eyelander" "damage bonus" 2 "critboost on kill" 5 "mult dmg vs giants" 3 "max health additive penalty" 0 "charge time increased" 2 } ItemAttributes { SimilarToItem "tf_weapon_bottle" "move speed bonus" 1.6 "always crit" 1 "damage penalty" 0.6 } ItemAttributes { Classname "tf_wearable_demoshield" "dmg taken from bullets reduced" 0.8 } ItemAttributes { Itemname "the scottish handshake" "move speed bonus" 1.6 "always crit" 1 "damage penalty" 0.6 } //heavy //highest single target damage and best on defense situations such as wave 2 ItemAttributes { SimilarToItem "tf_weapon_minigun" "damage bonus" 1.5 } ItemAttributes { Itemname "The Brass Beast" "damage bonus" 1.7 "max health additive bonus" 1000 "spunup_damage_resistance" 1 } ItemAttributes { SimilarToItem "The Huo Long Heatmaker" "damage bonus" 1.15 "damage bonus vs burning" 1.65 "damage penalty" 1 } // ItemAttributes // { // Itemname "Natascha" // chain kills // "damage penalty" 1 // "damage bonus" 1.25 // "max health additive bonus" 1000 // "spunup_damage_resistance" 1 // "minicritboost on kill" 3 // } ItemAttributes { Itemname "Tomislav" "damage bonus" 1.35 "move speed bonus" 1.15 } ItemAttributes { SimilarToItem "The Robo-Sandvich" "lunchbox healing decreased" 20 "special item description" "On consume: Heals for 6000 health." } ItemAttributes { Itemname "The Second Banana" "lunchbox healing decreased" 10 "special item description" "On consume: Heals for 3000 health." } ItemAttributes { Itemname "The Buffalo Steak Sandvich" "effect add attributes" "move speed bonus|1.3" // "effect cond override" 19 // "mult effect duration" 0.5 // "mult_item_meter_charge_rate" 2 //"special item description" "Removed melee restriction and +30% move speed while effect is active." "special item description" "+30% move speed while effect is active." // "special item description 2" "increased recharge duration" } ItemAttributes // gshotgun { SimilarToItem "upgradeable tf_weapon_shotgun_primary" "move speed bonus" 1.2 "fire rate penalty" 2.5 "bullets per shot bonus" 10 "damage penalty" 0.5 "mod max primary clip override" -1 } ItemAttributes { Itemname "the killing gloves of boxing" "damage bonus" 3 "switch from wep deploy time decreased" 0.5 } ItemAttributes { Itemname "fists of steel" "damage bonus" 1.5 "damage causes airblast" 1 } //engi ItemAttributes { Itemname "the widowmaker" "max health additive penalty" -50 } ItemAttributes { Itemname "The Short Circuit" "fire rate penalty" 3 "max health additive penalty" -75 } ItemAttributes { Itemname "The Pomson 6000" // explosive engi "override projectile type" 12 "damage bonus hidden" 4 "mod projectile heat seek power" 360 "mod projectile heat aim error" 180 "mod projectile heat follow crosshair" 1 "projectile speed decreased" 0.65 "projectile acceleration" 750 "projectile acceleration start time" 4 "damage bonus bullet vs sentry target" 3 } // ItemAttributes // { // Itemname "The Frontier Justice" // "faster reload rate" 0.1 // "fire rate bonus" 2.5 // "bullets per shot bonus" 3 // "damage penalty" 0.33 // "mult crit dmg" 3 // } ItemAttributes { Itemname "The Gunslinger" "engy sentry damage bonus" 3 "engy disposable sentries" 2 "max health additive BONUS" 700 "damage all connected" 1 } //medic ItemAttributes { SimilarToItem "The Ubersaw" "add uber charge on hit" 0.1 } ItemReplacement // Replace Items { "Gloves of Running Urgently MvM" { Name "Gloves of Running Urgently" } "Gloves of Running Urgently MvM" { Name "Festive Gloves of Running Urgently" } "Gloves of Running Urgently MvM" { Name "tf_weapon_fists" } "Gloves of Running Urgently MvM" { Name "upgradeable tf_weapon_fists" } "The Robo-Sandvich" // it makes more sense { Name "The Sandvich" } "The Robo-Sandvich" // it makes more sense { Name "Festive Sandvich" } } PlayerAttributes { "mod see enemy health" 1 "patient overheal penalty" 0 //"provide on active" 1 "cancel falling damage" 1 "special item description" "Some classes cannot jump or duck." Scout { "model scale" 1.75 "is miniboss" 1 "hidden maxhealth non buffed" 1475 "mult_patient_overheal_penalty_active" 0 "voice pitch scale" 0.9 "cannot upgrade" 1 "health from packs decreased" 0.5 "damage force reduction" 0.7 "airblast vulnerability multiplier" 0.7 } Soldier { "is miniboss" 1 "model scale" 1.75 "min respawn time" 16 "damage force reduction" 0.4 "airblast vulnerability multiplier" 0.4 "max health additive bonus" 3800 "mult_patient_overheal_penalty_active" 0 "cannot upgrade" 1 "health from packs decreased" 0.5 "move speed penalty" 0.5 "no_duck" 1 //"no_jump" 1 } Pyro { "model scale" 1.35 "max health additive bonus" 2325 "mult_patient_overheal_penalty_active" 0 "health from packs decreased" 0.5 "min respawn time" 16 "cannot upgrade" 1 "damage force reduction" 0.7 "airblast vulnerability multiplier" 0.7 "move speed penalty" 0.75 "no_duck" 1 } Demoman { "is miniboss" 1 "model scale" 1.75 "min respawn time" 16 "damage force reduction" 0.5 "airblast vulnerability multiplier" 0.5 "max health additive bonus" 3125 "mult_patient_overheal_penalty_active" 0 "health from packs decreased" 0.5 "move speed penalty" 0.5 "cannot upgrade" 1 "no_duck" 1 } Heavyweapons { "is miniboss" 1 "min respawn time" 16 "model scale" 1.75 "damage force reduction" 0.3 "airblast vulnerability multiplier" 0.3 "max health additive bonus" 4700 "mult_patient_overheal_penalty_active" 0 "health from packs decreased" 0.5 "move speed penalty" 0.5 "cannot upgrade" 1 "mod minigun can holster while spinning" 1 "no_duck" 1 "no_jump" 1 } Medic { "is miniboss" 1 "min respawn time" 16 "model scale" 1.75 "damage force reduction" 0.6 "airblast vulnerability multiplier" 0.6 "max health additive bonus" 4350 "mult_patient_overheal_penalty_active" 0 "health from packs decreased" 0.5 "move speed penalty" 0.5 "cannot upgrade" 1 } Engineer { "max health additive bonus" 175 "Construction rate increased" 2 "dmg taken from crit reduced" 0.1 } Spy { "cannot pick up intelligence" 1 "dmg taken from crit reduced" 0.1 } Sniper { "dmg taken from crit reduced" 0.1 } } ClassLimit // no stacking giants!!! { Heavyweapons 1 Soldier 2 Demoman 2 Pyro 2 Medic 1 Spy 0 // disabled for now Scout 2 Sniper 2 Engineer 2 } // Mission // buster // { // Where spawnbot_spawn_hatch1 // Objective DestroySentries // BeginAtWave 1 // RunForThisManyWaves 9999 // DesiredCount 1 // InitialCooldown 0 // CooldownTime 60 // TargetBluSentries 1 // SuppressSentryBusterModel 1 // TFBot // { // Template T_TFBot_SentryBuster_Fix // UseCustomModel "models\bots\demo\red_sentry_buster_v2.mdl" // ClassIcon sentry_buster_red // AddCond // { // Index 43 // } // } // } // Mission // Spies // { // Where spawnplayer // Objective Spy // BeginAtWave 3 // RunForThisManyWaves 1 // DesiredCount 4 // InitialCooldown 15 // CooldownTime 85 // TFBot // { // Template T_TFBot_Spy // ClassIcon spy_red // AddCond // { // Index 43 // } // ItemAttributes // { // Itemname "TF_WEAPON_KNIFE" // "armor piercing" 100 // "fire rate bonus" 0.6 // } // } // } Wave // Wave 1 { StartWaveOutput { Target wave_start_relay Action Trigger } DoneOutput { Target wave_finished_relay Action Trigger } InitWaveOutput { Target holograms_3way_relay Action Trigger } // SpawnTemplate wave1_objective SpawnTemplate textualtimer // Explanation // { // Line "{Green}!!! INCOMING TRANSMISSION !!!" // Line "{B5B5B5}G. Mann: Each wave you will be tasked with {yellow}completing different objectives..." // Line "{B5B5B5}G. Mann: I have created {yellow}special weapons {B5B5B5}for all of you." // Line "{B5B5B5}G. Mann: The enemy {yellow}holds a bomb! {B5B5B5}We will use it against them. Now {yellow}go get it." // Line "{Green}Transmission End..." // } WaveSpawn { Name "a1" Where spawnbot_redkegs TotalCount 6 MaxActive 2 SpawnCount 2 WaitBeforeStarting 0 WaitBetweenSpawns 0 TotalCurrency 100 TFBot { Template T_TFBot_Giant_Soldier Attributes AlwaysCrit Action Mobber Tag bot_is_left Attributes DisableDodge AddCond { Index 43 } AddCond { Index 57 Duration 1.5 } } } WaveSpawn { Name "a1" Where spawnbot_front_gate Where spawnbot_left_building TotalCount 45 MaxActive 15 SpawnCount 15 WaitBeforeStarting 0 WaitBetweenSpawns 0 RandomSpawn 1 TotalCurrency 100 RandomChoice { TFBot { Template T_TFBot_Sniper_Huntsman Action Mobber Tag bot_is_holdentrance Attributes DisableDodge AddCond { Index 43 } AddCond { Index 57 Duration 1.5 } } TFBot { Template T_TFBot_Sniper_Huntsman Action FetchFlag Attributes DisableDodge AddCond { Index 43 } AddCond { Index 57 Duration 1.5 } } } } } }