// mvm_yucatan_rc4 // Reverse MvM mission by Space Jockey // Goal: make something better than Shifting Gears // Credits: // Snowbat - for making the map // Yuugi - providing me with the custom upgrades format // Hell-met - inspiration for bot types and mission in general // Braindawg - some reverse logic, including the hudhints also func_button lua // StarDustSpy - giant mission stuff // Bazooks - hologram walls // Royal - helicopter bot logic and scripting // Frontline - helicopter model // Washy - reverse objectives logic // Lite - textual timer // Eve - player res logic // Sntr - general inspiration #base robot_standard.pop #base robot_giant.pop #base robot_standard_red.pop #base robot_giant_red.pop #base robot_spacejockey.pop #base rotating_shield.pop WaveSchedule { StartingCurrency 1350 CanBotsAttackWhileInSpawnRoom yes RespawnWaveTime 1 RespawnWaveTimeBlue 1 FixedRespawnWaveTimeBlue 1 PlayerMiniBossMinRespawnTime 30 AddSentryBusterWhenDamageDealtExceeds 0 AddSentryBusterWhenKillCountExceeds 0 // Essential stuff ReverseWinConditions 1 AllowJoinTeamBlueMax 6 AllowJoinTeamBlue 1 HumansMustJoinTeam Blue SetCreditTeam 3 SniperAllowHeadshots 1 // Optional stuff EnemyTeamForReverse Red ForceHoliday 2 NoHolidayPickups 1 NoThrillerTaunt 1 [SIGSEGV] NoCritPumpkin 1 MedigunShieldDamage 1 NoRomevisionCosmetics 1 ImprovedAirblast 1 SendBotsToSpectatorImmediately 1 //keeps the populator less clogged, bot projectiles vanish on death + causes weird killcams 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 1 // 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 55 BluHumanInfiniteAmmo 1 FlagCarrierMovementPenalty 1 // (default: 0.5) BluHumanFlagCapture 1 BluHumanFlagPickup 1 BluPlayersAreRobots 1 MaxSpeedLimit 521 WaveStartCountdown 5 NoMissionInfo 1 //misleading and not very useful for this mission TextPrintTime 0 RemoveBluVelocityLimit 1 NoRedBotsRandomCrit 1 // no random crits BluHumanSpawnNoShoot 0 ForceRedMoney 1 ExtendedUpgradesOnly 1 RestoreNegativeDamageHealing 1 RestoreNegativeDamageOverheal 0 CustomNavFile "mvm_yucatan_rc4_rev" FixSetCustomModelInput 1 BodyPartScaleSpeed 2000 StuckTimeMultiplier 3.5 LuaScriptFile "scripts/yucatan_rev.lua" PrecacheModel "models/bots/boss_bot/boss_blimp.mdl" PrecacheModel "models/props_mvm/reversemvm_redwall_512x320.mdl" PrecacheModel "models/props_mvm/reversemvm_redwall_696x337.mdl" PrecacheModel "models/buildables/sentry2_uber.mdl" PrecacheModel "models/props_frontline/generator.mdl" PrecacheModel "models/weapons/c_models/c_brick/c_brick.mdl" PrecacheModel "models/weapons/c_models/c_mjolnir/c_mjolnir.mdl" PrecacheModel "models/weapons/c_models/c_baikal_boar/c_baikal_boar.mdl" PrecacheModel "models/props_movies/camper/camper.mdl" PrecacheModel "models/bots/heavy_boss/bot_heavy_boss_gibby.mdl" PrecacheModel "models/bots/demo_boss/bot_demo_boss_gibby.mdl" PrecacheModel "models/bots/soldier/bot_soldier_gibby.mdl" PrecacheModel "models/bots/demo/bot_demo_gibby.mdl" PrecacheModel "models/bots/pyro/bot_pyro_gibby.mdl" PrecacheModel "models/bots/heavy/bot_heavy_gibby.mdl" PrecacheSound "yuca/solid_state_scouter.mp3" 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_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_Final_Wave_Start" DisableSound "Announcer.MVM_Final_Wave_End" DisableSound "Announcer.MVM_Robots_Planted" DisableSound "Announcer.MVM_All_Dead" DisableSound "Announcer.MVM_Bomb_Alert_Entered" DisableSound "Announcer.MVM_Bomb_Alert_Near_Hatch" DisableSound "Announcer.MVM_Bomb_Alert_Deploying" DisableSound "Announcer.MVM_Sentry_Buster_Alert" DisableSound "Announcer.MVM_Sentry_Buster_Alert_Another" 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" DisableSound "heavy_mvm_giant_robot01" DisableSound "heavy_mvm_giant_robot02" DisableSound "heavy_mvm_giant_robot03" DisableSound "heavy_mvm_giant_robot04" DisableSound "engineer_mvm_giant_robot01" DisableSound "engineer_mvm_giant_robot02" DisableSound "engineer_mvm_giant_robot03" DisableSound "soldier_mvm_giant_robot01" DisableSound "soldier_mvm_giant_robot02" DisableSound "soldier_mvm_giant_robot03" DisableSound "soldier_mvm_giant_robot04" DisableSound "medic_mvm_giant_robot01" DisableSound "medic_mvm_giant_robot02" DisableSound "medic_mvm_giant_robot03" OverrideSounds { "MVM.BombWarning" "common/null.wav" "MVM.GiantCommonExplodes" "ambient/explosions/explode_3.wav" "MVM.GiantHeavyExplodes" "ambient/explosions/explode_3.wav" "MVM.GiantHeavyLoop" "empty.wav" "MVM.GiantScoutLoop" "empty.wav" "MVM.GiantSoldierLoop" "empty.wav" "MVM.GiantDemomanLoop" "empty.wav" "MVM.GiantPyroLoop" "empty.wav" "Announcer.MVM_Spy_Alert" "common/null.wav" "Regenerate.Touch" "common/null.wav" "Announcer.MVM_All_Dead" "common/null.wav" } CustomWeapon { "The Deflector" { OriginalItemName "Deflector" "attack projectiles" 2 "damage bonus" 1.3 } "Robo-GRU" { OriginalItemName "Gloves of Running Urgently MvM" "special item description" "Self-marking GRU" } "Thumper" { OriginalItemName "Upgradeable TF_WEAPON_SHOTGUN_PRIMARY" "custom item model" "models/weapons/c_models/c_rapidfire/c_rapidfire_1.mdl" "damage bonus" 2.1 "clip size bonus" 1.3 "weapon spread bonus" 0.7 "fire rate penalty" 1.2 "bullets per shot bonus" 0.5 "Reload time increased" 1.13 "single wep deploy time increased" 1.15 } "W.A.S.P. Launcher" { OriginalItemName "The Liberty Launcher" "custom item model" "models/weapons/c_models/c_wasp_launcher/c_wasp_launcher_1.mdl" "special item description" "Rockets travel in an arc" "damage penalty" 1 "clip size bonus" 1 "projectile speed increased" 1 "projectile gravity" 750 "clip size penalty" 0.25 "blast radius increased" 1.25 "custom weapon fire sound" "=80|weapons/rpg/rocketfire1.wav" "custom impact sound" "=80|weapons/explode5.wav" } "Brick" { OriginalItemName "Mad Milk" "custom item model" "models/weapons/c_models/c_brick/c_brick.mdl" "override projectile type extra" "brick" "effect bar recharge rate increased" 0.01 "dmg penalty vs players" 2 } "Hunting Crossbow" { OriginalItemName "The Crusader's Crossbow" "custom item model" "models/workshop/weapons/c_models/c_uberdosis/c_crusaders_crossbow.mdl" "custom weapon fire sound" "weapons/crossbow/fire1.wav" "custom weapon reload sound" "weapons/crossbow/reload1.wav" "custom impact sound" "weapons/crossbow/hit1.wav" "maxammo primary reduced" 1 "damage bonus" 2 "faster reload rate" 0.9 "sniper no headshots" 0 "can headshot" 1 } // "Ant'eh'gen" // { // OriginalItemName "Jarate" // "special item description" "Throw a jar of ants at enemies to make them bleed! Because ants are biting them. Angry ants." // "override projectile type" 3 // "custom projectile model" "models/weapons/c_models/urinejar.mdl" // "grenade explode on impact" 1 // "explosion particle" "peejar_impact" // "custom impact sound" "weapons/jar_explode.wav" // "damage bonus hidden" 0.01 // "dmg penalty vs players" 1.5 // "dmg bonus vs buildings" 0 // "blast radius increased" 2.5 // "no self blast dmg" 2 // "bleeding duration" 10 // } "Tokamak" // my weapon { OriginalItemName "Tomislav" "special item description" "Shoots energy orbs instead of bullets" "custom item model" "models/workshop/weapons/c_models/c_tokamak/c_tomislav.mdl" "custom wind up sound" "=70|tokamak_wind_up.wav" "custom wind down sound" "=70|tokamak_wind_down.wav" "fire rate penalty" 2.5 "override projectile type" 13 "energy weapon penetration" 1 "dmg pierces resists absorbs" 1 "dmg penalty vs players" 0.8 "ragdolls plasma effect" 1 "centerfire projectile" 1 "projectile spread angle penalty" 3 "dmg penalty vs buildings" 0.2 "mult dmg vs tanks" 2 } "Iron Maul" { OriginalItemName "Upgradeable TF_WEAPON_WRENCH" "special item description" "Deploys buildings instantly but buildings only upgrade to level 1" "fire rate penalty" 1.5 "damage bonus" 2 "single wep deploy time increased" 2 "Construction rate increased" 9999 "upgrade rate decrease" 0 "building max level" 1 "melee cleave attack" 1 "melee range multiplier" 1.15 "melee bounds multiplier" 1.15 "custom item model" "models/workshop/weapons/c_models/c_rfa_hammer/c_rfa_hammer.mdl" "custom kill icon" "the_maul" } "Mjolnir" { OriginalItemName "TF_WEAPON_PISTOL" "custom item model" "models/weapons/c_models/c_mjolnir/c_mjolnir.mdl" "special item description" "Whoever holds this hammer, if he be worthy, shall possess the power of Thor." "single wep deploy time increased" 2 "custom weapon fire sound" "Weapon_BatSaber.HitWorld" "custom hit sound" "=125|ambient/energy/weld2.wav" "attach particle effect" 3045 "fire rate bonus hidden" 10 "mod max primary clip override" -1 "override projectile type" 2 "projectile lifetime" 0.5 "projectile speed increased" 4 "blast radius increased" 2.5 "explosion particle" "drg_wrenchmotron_teleport" "centerfire projectile" 1 "no self blast dmg" 2 "Set DamageType Ignite" 1 "damage bonus hidden" 6 "dmg pierces resists absorbs" 1 "custom projectile model" "models/empty.mdl" "custom kill icon" "skull_tf" "mult dmg vs giants" 4 "mult dmg vs tanks" 8 "ragdolls plasma effect" 1 "dmg falloff decreased" 1.25 } "Gamma Gazer" { OriginalItemName "The C.A.P.P.E.R" "custom item model" "models/weapons/c_models/c_gamma_gazer/c_gamma_gazer_1.mdl" "damage bonus" 3 "mult crit dmg" 0.48 "fire rate penalty" 2 "clip size penalty" 0.5 "weapon spread bonus" 0.5 "engineer rage on dmg" 1 } "Amplifier PDA" { OriginalItemName "Upgradeable TF_WEAPON_PDA_ENGINEER_BUILD" "has pipboy build interface" 1 "building max level" 1 "mult dispenser rate" 0.1 "building cost reduction" 0.7 "build rate bonus" 0.75 } "Hellbent Axe" { OriginalItemName "The Eyelander" "custom item model" "models/workshop/weapons/c_models/c_rift_fire_axe/c_rift_fire_axe.mdl" "set damagetype ignite" 1 "crit vs burning players" 1 "custom kill icon" "lava_axe" "fire rate penalty" 1.25 } "Firedome" { OriginalItemName "Activated Campaign 3 Pass" "custom item model" "models/empty.mdl" } "Baikal Boar" { OriginalItemName "Tomislav" "custom item model" "models/weapons/c_models/c_baikal_boar/c_baikal_boar.mdl" "explosive bullets" 74 "explosion particle" "rd_robot_explosion_smoke_linger" "fire rate penalty" 6.2 "damage bonus" 2.5 "weapon spread bonus" 0.2 "max health additive penalty" -500 } "Cane" { OriginalItemName "Necro Smasher" "custom item model" "models/workshop/weapons/c_models/c_candy_cane/c_candy_cane.mdl" "custom kill icon" "candy_cane" "damage bonus" 0.538 "fire rate bonus" 0.625 } "Tie" { OriginalItemName "Manndatory Attire" "item style override" 2 } } ExtraLoadoutItems { AllowEquipOutsideSpawn 1 Soldier { Primary "W.A.S.P. Launcher" } Demoman { Melee "Hellbent Axe" } Heavyweapons { Primary "The Deflector" Primary "Tokamak" Primary "Firedome" Primary "Baikal Boar" // Primary "Test1" } Engineer { Secondary "Mjolnir" Secondary "Gamma Gazer" Secondary "Pretty Boy's Pocket Pistol" Melee "Iron Maul" } Sniper { Primary "Hunting Crossbow" } } PlayerAttributes { "crit mod disabled" 0 //Giants shouldn't be allowed to have Random Crits "ammo regen" 1 // running to get ammo isn't fun as a giant "metal regen" 200 // if players get infinite ammo engi should get infinite metal. Widowmaker and SC are addressed later "min respawn time" 7777 Scout { "model scale" 1.75 "hidden maxhealth non buffed" 1475 // standard health value for Giant Scouts. If you don't like Scout being a direct upgrade to regular Scout, reduce this value. "mult_patient_overheal_penalty_active" 0 // disallows overheal "voice pitch scale" 0.75 // "cannot upgrade" 1 "health from packs decreased" 0.5 // being able to instantly regen over 1000 health instantly is very OP considering how most mvm maps are designed "is miniboss" 1 // required for mostly Spy bots and some other quirks "cancel falling damage" 1 "damage bonus" 1.5 } Soldier { "is miniboss" 1 "model scale" 1.75 //around buybacks to respawn, akin to Arctic Arrangement, because it's no fun waiting when you run out of cash. "damage force reduction" 0.4 "airblast vulnerability multiplier" 0.4 "voice pitch scale" 0.75 "hidden maxhealth non buffed" 3800 // 4000 health is good enough for standard giant soldier "mult_patient_overheal_penalty_active" 0 "health from packs decreased" 0.5 // "cannot upgrade" 1 // upgradable giants is a balancing nightmare "move speed penalty" 0.675 "cancel falling damage" 1 } Pyro { "is miniboss" 1 "model scale" 1.75 "damage force reduction" 0.6 "airblast vulnerability multiplier" 0.6 "voice pitch scale" 0.75 "hidden maxhealth non buffed" 3125 "mult_patient_overheal_penalty_active" 0 "health from packs decreased" 0.5 // "cannot upgrade" 1 "move speed penalty" 0.675 "damage bonus" 1.5 // not much can be done with pyro due to hard coded stuff so he gets a global damage bonus // "weapon burn dmg increased" 2 // same for dmg bonus "cancel falling damage" 1 } Demoman { "is miniboss" 1 "model scale" 1.75 "move speed penalty" 0.675 "damage force reduction" 0.5 "airblast vulnerability multiplier" 0.5 "voice pitch scale" 0.75 "hidden maxhealth non buffed" 3125 "mult_patient_overheal_penalty_active" 0 "health from packs decreased" 0.5 // "cannot upgrade" 1 "cancel falling damage" 1 } Heavyweapons { "is miniboss" 1 "model scale" 1.75 "move speed penalty" 0.675 "damage force reduction" 0.3 "airblast vulnerability multiplier" 0.3 "voice pitch scale" 0.75 "hidden maxhealth non buffed" 4700 "mult_patient_overheal_penalty_active" 0 "health from packs decreased" 0.5 // "cannot upgrade" 1 "cancel falling damage" 1 } //Medic is a weird case. //Though he is seen as a giant, Giant Medic's are not designed to heal a squad of robots, they are designed to heal one target. //If you give them Giant Medic levels of healing rate to players, nobody would ever die and the mission would be impossible to fail //So you are better off just giving regular Medic weapons like Big-Heal quick-fix (max heal rate bonus should be 6, AKA 500% faster healing) //and quick-uber stock medigun //You can decide how you balance Medic, but this is what is most common. Medic { "medic machinery beam" 10 // allows the ability to heal engineer buildings "is miniboss" 1 "model scale" 1.75 "move speed penalty" 0.675 "deploy time increased" 2 "damage force reduction" 0.5 "airblast vulnerability multiplier" 0.5 "voice pitch scale" 0.75 "hidden maxhealth non buffed" 2350 "mult_patient_overheal_penalty_active" 0 "health from packs decreased" 0.5 // "cannot upgrade" 1 "cancel falling damage" 1 } Engineer { "max health additive bonus" 150 // it's standard to give Engineer increased health so that he can survive better //Not only because Valve increased the health of their Engineer bots but also so they can have a better chance at either //running away if their nest is destroyed or getting a building down because they survived with that slight extra health "Construction rate increased" 2 // Engineers losing Building canteens hurts a lot, this should help compensate that. "mult teleporter recharge rate" 0.5 "dmg taken from crit reduced" 0.1 } Spy // REVERSE ONLY { // "cannot pick up intelligence" 1 // Spy will die instantly if he picks up the bomb while trying to go for a backstab. "dmg taken from crit reduced" 0.1 } } ClassLimit // no stacking giants!!! { Heavyweapons 2 Soldier 2 Demoman 2 Pyro 2 Medic 2 Engineer 2 Sniper 2 Spy 2 } PlayerItemEquipSpawnTemplate { Name NoKnifeBombPickup Class Spy } ItemWhitelist //Only allows to use specified weapons below { ClassName "tf_wearable" //also allows mantreads, gunboats, dds, and cozy camper ClassName "tf_weapon_scattergun" ClassName "tf_weapon_soda_popper" // ClassName "tf_weapon_handgun_scout_primary" //shortstop, disabled for now due to refund exploits ClassName "tf_weapon_handgun_scout_secondary" //winger/bpbb ClassName "tf_weapon_lunchbox_drink" //bonk/cola ClassName "tf_weapon_cleaver" //flying guillotine bc why not ClassName "tf_weapon_bat" ClassName "tf_weapon_jar_milk" // mad milk ClassName "tf_weapon_bat_wood" //sandman ClassName "tf_weapon_rocketlauncher" ClassName "tf_weapon_rocketlauncher_directhit" ClassName "tf_weapon_rocketlauncher_airstrike" ClassName "tf_weapon_particle_cannon" ItemName "Festive Black Box" ClassName "tf_weapon_buff_item" ClassName "tf_weapon_raygun" // bison bc why not ItemName "The Disciplinary Action" // only viable melees for giant soldiers ItemName "The Escape Plan" ItemName "The Equalizer" ClassName "tf_weapon_flamethrower" ClassName "tf_weapon_rocketlauncher_fireball" //DF ClassName "tf_weapon_jar_gas" ClassName "tf_weapon_flaregun" ClassName "tf_weapon_flaregun_revenge" //manmelter ItemName "The Powerjack" ClassName "tf_weapon_grenadelauncher" ClassName "tf_weapon_cannon" ClassName "tf_wearable_demoshield" ClassName "tf_weapon_sword" ClassName "tf_weapon_katana" ClassName "tf_weapon_bottle" ClassName "tf_weapon_minigun" ItemName "tf_weapon_shotgun_hwg" ItemName "The Family Business" ItemName "Fists of Steel" ClassName "tf_weapon_lunchbox" // sandwich ItemName "The Killing Gloves of Boxing" ItemName "Gloves of Running Urgently" ItemName "Gloves of Running Urgently MvM" ItemName "Festive Gloves of Running Urgently" ItemName "Warrior's Spirit" ClassName "tf_weapon_shotgun_primary" ItemName "tf_weapon_shotgun_primary" // ItemName "Panic Attack Shotgun" //multiclass shotguns r cringe ClassName "tf_weapon_shotgun_building_rescue" //RR ClassName "tf_weapon_drg_pomson" ClassName "tf_weapon_sentry_revenge" //FJ ItemName "TF_WEAPON_PISTOL" ClassName "tf_weapon_mechanical_arm" //short circuit ClassName "tf_weapon_laser_pointer" //wrangler ClassName "tf_weapon_wrench" ClassName "tf_weapon_robot_arm" //gunslinger 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_sniperrifle" ClassName "tf_weapon_sniperrifle_decap" ClassName "tf_weapon_compound_bow" ClassName "tf_wearable_razorback" ClassName "tf_weapon_jar" ClassName "tf_weapon_smg" ClassName "tf_weapon_club" ClassName "tf_weapon_builder" //sapper ClassName "tf_weapon_invis" ClassName "tf_weapon_pda_spy" //disguise kit ClassName "tf_weapon_revolver" ClassName "tf_weapon_knife" ItemSlot "11" //taunt slots ItemSlot "12" ItemSlot "13" ItemSlot "14" ItemSlot "15" ItemSlot "16" ItemSlot "17" ItemSlot "18" } //multiclass ItemAttributes { Itemname "The Half-zatoichi" // oppresive if left unchanged "restore health on kill" 0 "heal on kill" 750 // "critboost on kill" 3 "hidden maxhealth non buffed" -300 "honorbound" 0 } //SCOUT ItemAttributes { Itemname "The Force-a-Nature" // FAN super scout "bullets per shot bonus" 2 "reload time increased" 1.7 "scattergun knockback mult" 6 //"damage penalty" 0.35 // sucks to have "weapon spread bonus" 0.4 } ItemAttributes { Itemname "Festive Force-a-Nature" // FAN super scout "bullets per shot bonus" 2 "reload time increased" 1.7 "scattergun knockback mult" 6 //"damage penalty" 0.35 // sucks to have "weapon spread bonus" 0.4 } ItemAttributes { SimilarToItem "TF_WEAPON_SCATTERGUN" // accounts for all scattergun reskins but also doesn't interfere with the Back Scatter and the BFB "damage bonus" 2 } ItemAttributes { Itemname "The Sandman" "effect bar recharge rate increased" 0.15 "max health additive penalty" 0 } //Pyro //Not much can be done with pyro due to hard coded stuff :/ ItemAttributes { Itemname "TF_WEAPON_FLAMETHROWER" "damage bonus" 2 "lunchbox adds minicrits" 2 "extinguish restores health" 300 } ItemAttributes { Itemname "Upgradeable TF_WEAPON_FLAMETHROWER" "damage bonus" 2 "lunchbox adds minicrits" 2 "extinguish restores health" 300 } ItemAttributes { Itemname "The Rainblower" "damage bonus" 2 "lunchbox adds minicrits" 2 "extinguish restores health" 300 } ItemAttributes { Itemname "The Nostromo Napalmer" "damage bonus" 2 "lunchbox adds minicrits" 2 "extinguish restores health" 300 } ItemAttributes { ItemName "The Backburner" "damage bonus" 2 "lunchbox adds minicrits" 2 "extinguish restores health" 300 } ItemAttributes { ItemName "Festive Backburner 2014" "damage bonus" 2 "lunchbox adds minicrits" 2 "extinguish restores health" 300 } ItemAttributes { ItemName "The Dragon's Fury" "damage bonus" 1.5 "energy weapon no deflect" 1 "extinguish restores health" 300 "airblast_destroy_projectile" 1 } ItemAttributes { ItemName "The Phlogistinator" "damage bonus" 2 "max health additive penalty" -300 } ItemAttributes { ItemName "The Flare Gun" "fire rate bonus" 0.3 } ItemAttributes { ItemName "Festive Flare Gun" "fire rate bonus" 0.3 } ItemAttributes { ItemName "The detonator" "fire rate bonus" 0.3 "weapon burn dmg increased" 1.5 } //soldier // ItemAttributes // { // SimilarToItem "TF_WEAPON_ROCKETLAUNCHER" // affects only stock Rocket Launcher and reskins/warpaints (but not the Original) // "mod max primary clip override" -1 // "maxammo primary increased" 5 // "mod no reload display only" 1 // "fire rate bonus" 0.5 // "Projectile speed decreased" 0.65 // } // ItemAttributes // Rapid Fire Soldier // { // ClassName "tf_weapon_particle_cannon" // //"custom weapon fire sound" "=80|MVM.GiantSoldierRocketShoot" // "mod no reload DISPLAY ONLY" 1 // "faster reload rate" 0.0025 // "fire rate bonus" 0.5 // "Projectile speed decreased" 0.65 // } ItemAttributes { Itemname "The Beggar's Bazooka" // Burst Fire Soldier //Given to the beggars since it's kind of the burst fire rocket launcher "can overload" 0 "auto fires full clip" 0 "blast radius decreased" 1 //If you don't want to use Beggars, copy the stats below "faster reload rate" 0.6 "fire rate bonus" 0.1 "clip size upgrade atomic" 5.0 "Projectile speed increased" 0.65 } ItemAttributes { Itemname "The Black Box" //"damage bonus" 0.45 // No need to decrease damage when it's by default the rocket launcher with the weakeast damage output. "fire rate bonus hidden" 0.001 "reload time increased" 1.6 "blast radius increased" 1.25 "projectile spread angle penalty" 4 "heal on hit for rapidfire" 650 // is low enough to make spamming rockets not a great idea } ItemAttributes { ItemName "Festive Black Box" //"damage bonus" 0.45 // No need to decrease damage when it's by default the rocket launcher with the weakeast damage output. "fire rate bonus hidden" 0.001 "reload time increased" 1.6 "blast radius increased" 1.25 "projectile spread angle penalty" 4 "heal on hit for rapidfire" 650 // is low enough to make spamming rockets not a great idea } // ItemAttributes // { // Itemname "The Original" // "always crit" 1 // "damage bonus" 2 // having always crits on soldier isn't enough to justify its own weapon // "fire rate penalty" 2 // "blast radius increased" 2 // trades off dps for high AOE damage // "mod max primary clip override" -1 // "mod no reload display only" 1 // "maxammo primary increased" 5 // "Projectile speed decreased" 0.5 // } ItemAttributes // Remove stupid ugly +20 hp { ItemName "The Battalion's Backup" "max health additive bonus" 0 } ItemAttributes { ItemName "The Righteous Bison" "damage bonus" 2 "fire rate bonus" 0.6 "reload time decreased" 0.5 } //demo ItemAttributes { ItemName "Ali Baba's Wee Booties" "max health additive bonus" 300 "charge time increased" 1.5 } ItemAttributes { ItemName "The Bootlegger" "max health additive bonus" 300 "charge time increased" 1.5 } ItemAttributes { SimilarToItem "TF_WEAPON_GRENADELAUNCHER" // spammer demo "faster reload rate" -0.8 "fire rate bonus" 0.5 } // ItemAttributes // { // Itemname "The Iron Bomber" // burst fire demo // "fire rate bonus" 0.05 // "clip size upgrade atomic" 8 // "faster reload rate" 0.45 // "projectile spread angle penalty" 2 // } ItemAttributes // castle crush loose cannon, is basically the Original for demo //Shoutout to Sntr he made a good player nuker demo weapon { ItemName "The Loose Cannon" "grenade explode on impact" 1 "grenade launcher mortar mode" 0 "damage bonus" 2 "blast dmg to self increased" 6 "override projectile type" 3 "Blast radius increased" 2 "fire rate penalty" 2 "clip size penalty" 0.25 "dmg falloff decreased" 0.5 "explosion particle" "hightower_explosion" "custom projectile model" "models/props_trainyard/cart_bomb_separate.mdl" "custom impact sound" "misc/doomsday_missile_explosion.wav" } //Demoknight can be difficult to tackle. //Being melee based is a real cost in a situation like this where you have soldiers constantly slamming 540 damage crit rockets everywhere //and heavies with +50% damage //Give him tons of bonuses, such as being fast and tanky, so he feels more viable ItemAttributes { SimilarToItem "The Eyelander" // also covers nessies and headtaker // "critboost on kill" 3 "damage bonus" 2.5 "dmg taken from bullets reduced" 0.75 "max health additive penalty" 0 // annoying //If you dislike hybrid knights getting free speed boosts with grenade launchers, uncomment the below stats //"special item description" "Cannot switch from weapon." //"provide on active" 1 //"disable weapon switch" 1 } ItemAttributes { Classname tf_wearable_demoshield "attack not cancel charge" 1 } //heavy ItemAttributes { Itemname "The killing gloves of boxing" "damage bonus" 1.4 "fire rate penalty" 1 } ItemAttributes { ItemName "Fists of Steel" "provide on active" 1 "mod weapon blocks healing" 1 "fire rate bonus" 0.6 "damage bonus" 5 "health from packs decreased" 0.5 "override footstep sound set" 5 "single wep deploy time increased" 3 } ItemAttributes { ItemName "Festive Gloves of Running Urgently" "provide on active" 1 "mod_maxhealth_drain_rate" 0 "self mark for death" 3 "damage penalty" 0.75 "move speed bonus" 1.3 } ItemAttributes // lunchbox { ItemName "The Sandvich" "lunchbox healing decreased" 10 } ItemAttributes { ItemName "The Robo-Sandvich" "lunchbox healing decreased" 10 } ItemAttributes { ItemName "The Second Banana" "lunchbox healing decreased" 4 } ItemAttributes { ItemName "The Dalokohs Bar" "lunchbox healing decreased" 4 } //engineer ItemAttributes { Itemname "The Widowmaker" //Infinite metal would make this have no downsides as a non-giant weapon "damage penalty" 0.8 } ItemAttributes { Itemname "The Short Circuit" //Infinite metal would make this have no downsides as a non-giant weapon "fire rate penalty" 2.5 } ItemAttributes { ItemName "The Gunslinger" "build rate bonus" 0.2 "upgrade rate decrease" 0.5 } ItemAttributes { ClassName "tf_weapon_laser_pointer" "max health additive penalty" -25 } //medic ItemAttributes { SimilarToItem "TF_WEAPON_MEDIGUN" "ubercharge rate bonus" 5 "uber duration bonus" -3 } ItemAttributes { Itemname "The Quick-fix" "heal rate bonus" 6 // "ubercharge rate bonus" 0.01 // "alt-fire disabled" 1 // "uber duration bonus" -7.99 } // sniper ItemAttributes { ItemName "The Fortified Compound" "model scale" 1.5 "max health additive bonus" 1075 "move speed penalty" 0.85 "fire rate bonus" 0.6 "head scale" 0.7 "cancel falling damage" 1 } // spy ItemAttributes { ItemName "TF_WEAPON_INVIS" "max health additive bonus" 50 // hp buff to offset dr } ItemAttributes { ItemName "Upgradeable TF_WEAPON_INVIS" "max health additive bonus" 50 // hp buff to offset dr } ItemAttributes { ItemName "TTG Watch" "max health additive bonus" 50 // hp buff to offset dr } ItemAttributes { ItemName "The Quackenbirdt" "max health additive bonus" 50 // hp buff to offset dr } ItemAttributes { ItemName "The Cloak and Dagger" "max health additive bonus" 50 // hp buff to offset dr } ItemAttributes { ItemName "The Enforcer" "dmg pierces resists absorbs" 0 "damage bonus while disguised" 1 "bullets per shot bonus" 6 "fire rate penalty" 2 "spread penalty" 3 } ItemAttributes { ItemName "The Ambassador" "crit_dmg_falloff" 0 } ItemAttributes { ItemName "Festive Ambassador" "crit_dmg_falloff" 0 } ExtendedUpgrades { MaxUpgradesTier // For tiered upgrades: Specify how many upgrades can be bought per tier. (1 by default) { 1 1 // Max 2 upgrades on tier 1 } // Normal upgrade { Name "+25% Blast Resistance" Attribute "dmg taken from blast reduced" Cap 0.25 // Maximum amount of the attribute Increment -0.25 // Attribute increment value per level Cost 300 PlayerUpgrade 1 // Makes this appear on the player section. AllowPlayerClass Engineer AllowPlayerClass Sniper AllowPlayerClass Spy } upgrade { Name "+25% Bullet Resistance" Attribute "dmg taken from bullets reduced" Cap 0.25 // Maximum amount of the attribute Increment -0.25 // Attribute increment value per level Cost 300 PlayerUpgrade 1 // Makes this appear on the player section. AllowPlayerClass Engineer AllowPlayerClass Sniper AllowPlayerClass Spy } upgrade { Name "+25% Fire Resistance" Attribute "dmg taken from fire reduced" Cap 0.25 // Maximum amount of the attribute Increment -0.25 // Attribute increment value per level Cost 150 PlayerUpgrade 1 // Makes this appear on the player section. AllowPlayerClass Engineer AllowPlayerClass Sniper AllowPlayerClass Spy } upgrade { Name "+30% movement speed" Attribute "move speed bonus" Cap 1.6 // Maximum amount of the attribute Increment 0.2 // Attribute increment value per level Cost 200 PlayerUpgrade 1 // Makes this appear on the player section. AllowPlayerClass Engineer AllowPlayerClass Sniper AllowPlayerClass Spy } upgrade { Name "+5 health regen" Attribute "health regen" Cap 20 // Maximum amount of the attribute Increment 5 // Attribute increment value per level Cost 200 PlayerUpgrade 1 // Makes this appear on the player section. AllowPlayerClass Engineer AllowPlayerClass Sniper AllowPlayerClass Spy } upgrade // giant { Name "+20 health regen" Attribute "health regen" Cap 100 // Maximum amount of the attribute Increment 20 // Attribute increment value per level Cost 200 PlayerUpgrade 1 // Makes this appear on the player section. AllowPlayerClass Scout AllowPlayerClass Soldier AllowPlayerClass Pyro AllowPlayerClass Demoman AllowPlayerClass Heavyweapons AllowPlayerClass Medic } upgrade // Jump Height { Name "+20% Jump Height" Attribute "increased jump height" cap 1.6 Increment 0.2 Cost 100 PlayerUpgrade 1 AllowPlayerClass Engineer AllowPlayerClass Sniper AllowPlayerClass Spy } upgrade // Health on Kill (Giant) { Name "+125 Health on Kill" Attribute "heal on kill" Cap 500 Increment 125 Cost 250 AllowPlayerClass Scout AllowPlayerClass Soldier AllowPlayerClass Pyro AllowPlayerClass Demoman AllowPlayerClass HeavyWeapons AllowPlayerClass Medic AllowedWeapons { Slot "Primary" Slot "Secondary" Slot "Melee" } DisallowedWeapons { // Scout ItemName "Mad Milk" ItemName "Mutated Milk" ItemName "Bonk! Atomic Punch" ItemName "Crit-a-Cola" ItemName "The Flying Guillotine" // Soldier ItemName "Rocket Jumper" ItemName "The Buff Banner" ItemName "The Battalion's Backup" ItemName "The Concheror" ItemName "The B.A.S.E. Jumper" ItemName "The Mantreads" ItemName "The Gunboats" // Pyro ItemName "The Gas Passer" ItemName "The Thermal Thruster" // Demoman ItemName "Ali Baba's Wee Booties" ItemName "The Bootlegger" ItemName "The Chargin' Targe" ItemName "The Splendid Screen" ItemName "The Tide Turner" // Heavy ItemName "The Sandvich" ItemName "Festive Sandvich" ItemName "The Buffalo Steak Sandvich" ItemName "The Dalokohs Bar" ItemName "Sandvich Promo Package" ItemName "The Second Banana" ItemName "Firedome" } } upgrade // Building Health { Name "+100% Building Health" Attribute "engy building health bonus" Cap 6 // having more building health helps engy more against giants to even the playing field Increment 1 Cost 300 AllowPlayerClass Engineer AllowedWeapons { Slot "PDA" } } upgrade // Reload speed Primary { Name "+20% Reload Speed" Attribute "faster reload rate" Cap 0.4 Increment -0.2 Cost 250 AllowPlayerClass Scout //AllowPlayerClass Demoman AllowPlayerClass Engineer AllowPlayerClass Sniper AllowedWeapons { slot "Primary" } DisallowedWeapons { ItemName "The Soda Popper" ItemName "The Force-a-Nature" ItemName "Festive Force-a-Nature" ItemName "The Shortstop" ItemName "The Widowmaker" } } upgrade // Faster firing speed Primary { Name "+10% Firing Speed" Attribute "Fire Rate Bonus" Cap 0.6 Increment -0.1 Cost 200 AllowPlayerClass Scout //AllowPlayerClass Engineer AllowedWeapons { Slot "Primary" } DisallowedWeapons { ItemName "The Soda Popper" ItemName "The Force-a-Nature" ItemName "Festive Force-a-Nature" } } upgrade // Faster firing speed Primary Engineer { Name "+10% Firing Speed" Attribute "Fire Rate Bonus" Cap 0.6 Increment -0.1 Cost 100 //AllowPlayerClass Scout AllowPlayerClass Engineer AllowedWeapons { Slot "Primary" } } upgrade // Damage Upgrade Engi and Sniper Only { Name "+25% Damage Bonus" Attribute "damage bonus" Cap 2 Increment 0.25 Cost 0 AllowPlayerClass Engineer AllowPlayerClass Sniper AllowedWeapons { Slot "Primary" } DisallowedWeapons { ItemName "The Pomson 6000" } } upgrade // Melee Attack Speed { Name "+10% Attack Speed" Attribute "melee attack rate bonus" cap 0.6 Increment -0.1 cost 200 AllowedWeapons { slot "Melee" } } upgrade // Health on Kill (Regular) { Name "+25 Health on Kill" Attribute "heal on kill" Cap 100 Increment 25 Cost 200 AllowPlayerClass Sniper AllowPlayerClass Medic AllowPlayerClass Sniper AllowedWeapons { Slot "Primary" } } upgrade // Health on Kill Engineer Primary (Regular) { Name "+25 Health on Kill" Attribute "heal on kill" Cap 100 Increment 25 Cost 100 AllowPlayerClass Engineer AllowedWeapons { Slot "Primary" } } upgrade // Health on Kill Engineer and Spy (Regular) { Name "+25 Health on Kill" Attribute "heal on kill" Cap 100 Increment 25 Cost 200 AllowPlayerClass Engineer AllowPlayerClass Spy AllowedWeapons { Slot "Melee" } } upgrade // Health on Kill Secondary (Regular) { Name "+25 Health on Kill" Attribute "heal on kill" Cap 100 Increment 25 Cost 100 AllowPlayerClass Engineer AllowPlayerClass Sniper AllowedWeapons { Slot "Secondary" //Slot "Melee" } DisallowedWeapons { // Engineer ItemName "The Wrangler" ItemName "Festive Wrangler" ItemName "The Giger Counter" // Sniper ItemName "Jarate" ItemName "The Self-Aware Beauty Mark" ItemName "The Razorback" ItemName "The Cozy Camper" ItemName "Darwin's Danger Shield" } } upgrade // Health on Kill Melee Sniper (Regular) { Name "+25 Health on Kill" Attribute "heal on kill" Cap 100 Increment 25 Cost 100 AllowPlayerClass Sniper AllowedWeapons { Slot "Melee" } } upgrade // Projectile Penetration { Name "Projectile Penetration" Attribute "Projectile Penetration" Cap 1 Increment 1 Cost 200 AllowPlayerClass Engineer AllowedWeapons { Slot "Primary" } DisallowedWeapons { ItemName "The Pomson 6000" } } upgrade // Damage Upgrade pomson { Name "+25% Damage Bonus" Attribute "dmg penalty vs players" Cap 2 Increment 0.25 Cost 0 AllowPlayerClass Engineer AllowedWeapons { ItemName "The Pomson 6000" // Energy weapons are wack } } upgrade // Projectile Penetration Secondary { Name "Projectile Penetration" Attribute "Projectile Penetration" Cap 1 Increment 1 Cost 200 AllowPlayerClass Scout AllowPlayerClass Engineer AllowPlayerClass Sniper AllowPlayerClass Spy AllowedWeapons { Slot "Secondary" } DisallowedWeapons { // Scout ItemName "Mad Milk" ItemName "Mutated Milk" ItemName "Bonk! Atomic Punch" ItemName "Crit-a-Cola" ItemName "The Flying Guillotine" // Engineer ItemName "The Wrangler" ItemName "Festive Wrangler" ItemName "The Giger Counter" ItemName "Mjolnir" // Sniper ItemName "Jarate" ItemName "The Self-Aware Beauty Mark" ItemName "The Razorback" ItemName "The Cozy Camper" ItemName "Darwin's Danger Shield" } } upgrade // Clip size bonus Primary { Name "+50 Clip Size" Attribute "clip size bonus upgrade" Cap 3 Increment 0.5 Cost 200 AllowPlayerClass Engineer AllowPlayerClass Medic AllowedWeapons { Slot "Primary" } DisallowedWeapons { ItemName "The Crusader's Crossbow" ItemName "The Widowmaker" } } upgrade // Damage Upgrade Demoman Only { Name "+20% Damage Bonus" Attribute "damage bonus" Cap 1.8 Increment 0.2 Cost 0 //500 AllowPlayerClass Demoman AllowedWeapons { Slot "Primary" Slot "Secondary" } DisallowedWeapons { ItemName "Ali Baba's Wee Booties" ItemName "The Bootlegger" ItemName "The Chargin' Targe" ItemName "The Splendid Screen" ItemName "The Tide Turner" } } upgrade // Projectile Penetration { Name "Projectile Penetration" Attribute "Projectile Penetration" Cap 1 Increment 1 Cost 0 AllowPlayerClass Scout //AllowPlayerClass Engineer //AllowPlayerClass Sniper AllowedWeapons { Slot "Primary" } } upgrade // Afterburn damage { Name "+25% Afterburn Damage Bonus" Attribute "weapon burn dmg increased" cap 2 Increment 0.25 Cost 250 AllowPlayerClass Pyro AllowedWeapons { Slot "Primary" //slot "Secondary" } } upgrade // Afterburn damage Secondary Only { Name "+25% Afterburn Damage Bonus" Attribute "weapon burn dmg increased" cap 2 Increment 0.25 Cost 250 AllowPlayerClass Pyro AllowedWeapons { ItemName "The Flare Gun" ItemName "The Detonator" ItemName "The Scorch Shot" ItemName "The Manmelter" ItemName "Split-Fire Flare Gun" } } airblast // Airblast Force { Name "+25% Airblast Force" Attribute "airblast pushback scale" cap 2 Increment 0.25 Cost 250 AllowPlayerClass Pyro AllowedWeapons { slot "Primary" } DisallowedWeapons { ItemName "The Phlogistinator" // Lmao can't airblast anyways } DisallowedUpgrade { upgrade deflect level 1 } } upgrade // Armor Penetration { Name "+25% Armor Penetration" Attribute "armor piercing" Cap 100 Increment 25 Cost 0 AllowPlayerClass Spy AllowedWeapons { Slot "Melee" } } cleave // Melee Attack Cleave { Name "Melee Cleave Attack" Attribute "melee cleave attack" Cap 1 Increment 1 Cost 600 AllowPlayerClass Soldier AllowPlayerClass Demoman AllowPlayerClass Heavyweapons AllowedWeapons { ItemName "The Equalizer" ItemName "The Half-Zatoichi" ItemName "The Eyelander" ItemName "The Scotsman's Skullcutter" ItemName "The Claidheamohmor" ItemName "The Persian Persuader" ItemName "Nessie's Nine Iron" ItemName "Festive Eyelander" ItemName "The Horseless Headless Horseman's Headtaker" ItemName "Fists of Steel" ItemName "The Killing Gloves of Boxing" } } meleedmg // Melee Damage bonus Swords only { Name "+25% Damage bonus" Attribute "damage bonus" Cap 2 Increment 0.25 Cost 0 AllowPlayerClass Soldier AllowPlayerClass Demoman AllowedWeapons // Restricts upgrade to specified weapons { ItemName "The Half-Zatoichi" ItemName "The Eyelander" ItemName "The Scotsman's Skullcutter" ItemName "The Claidheamohmor" ItemName "The Persian Persuader" ItemName "Nessie's Nine Iron" ItemName "Festive Eyelander" ItemName "The Horseless Headless Horseman's Headtaker" ItemName "The Ullapool Caber" } } recharge // Recharge rate { Name "+15% Recharge Rate" Attribute "effect bar recharge rate increased" Cap 0.4 Increment -0.15 Cost 250 AllowedWeapons { // Scout ItemName "Mad Milk" ItemName "Mutated Milk" ItemName "Bonk! Atomic Punch" ItemName "Crit-a-Cola" ItemName "The Flying Guillotine" // Heavy ItemName "The Sandvich" ItemName "The Robo-Sandvich" ItemName "The Buffalo Steak Sandvich" ItemName "The Second Banana" ItemName "The Dalokohs Bar" ItemName "Fishcake" // Sniper ItemName "Jarate" ItemName "The Self-Aware Beauty Mark" ItemName "The Razorback" } } HealOnHit // heal on hit heavy minigun { Name "+10 Health on hit" Attribute "heal on hit for rapidfire" Cap 50 Increment 10 Cost 200 AllowPlayerClass Heavyweapons AllowedWeapons { Slot "Primary" } DisallowedWeapons { Itemname "Firedome" } } heavy_firerate { Name "+10% Firing Speed" Description "Cannot upgrade damage." Attribute "fire rate bonus" Cap 0.6 Increment -0.10 Cost 350 AllowPlayerClass HeavyWeapons AllowedWeapons { Slot "Primary" } DisallowedWeapons { ItemName "The Brass Beast" ItemName "Firedome" ItemName "The Huo Long Heatmaker" } DisallowedUpgrade { upgrade heavydmg_bonus level 1 } } heavydmg_bonus { Name "+25% Damage bonus" Attribute "damage bonus" Cap 1.5 Increment 0.25 Cost 0 AllowPlayerClass HeavyWeapons AllowedWeapons { Slot "Primary" } DisallowedWeapons { ItemName "The Brass Beast" ItemName "Tokamak" ItemName "Firedome" ItemName "Baikal Boar" ItemName "The Huo Long Heatmaker" } DisallowedUpgrade { upgrade heavy_firerate level 1 } } heavybrass_firerate { Name "+10% Firing Speed" Description "Disables +25% Damage bonus on your Primary!" Attribute "fire rate bonus" Cap 0.6 Increment -0.10 Cost 350 AllowedWeapons { ItemName "The Brass Beast" } DisallowedUpgrade { upgrade heavybrass_dmg level 1 } } critboost // Crit on Kill, Demo, Soldier and Spy Only { Name "+2s Crits on Kill" Attribute "critboost on kill" Cap 4 Increment 2 Cost 350 AllowPlayerClass Demoman AllowPlayerClass Soldier AllowPlayerClass Spy AllowedWeapons { Slot "Melee" } DisallowedUpgrade { upgrade speedboost level 1 } DisallowedWeapons { ItemName "Hellbent Axe" ItemName "The Disciplinary Action" ItemName "The Escape Plan" ItemName "The Equalizer" } } critboostsniper // Crit on Kill, Sniper Only { Name "+2s Crits on Kill" Attribute "critboost on kill" Cap 4 Increment 2 Cost 250 AllowPlayerClass Sniper AllowedWeapons { Slot "Melee" } } speedboost // Speedboost on Kill, Demo Only { Name "+2s Speed Boost on Kill" Attribute "speed_boost_on_kill" Cap 4 Increment 2 Cost 350 AllowPlayerClass Demoman AllowedWeapons { Slot "Melee" } DisallowedUpgrade { Upgrade "critboost" Level 1 } } DispenserRange { Name "+100% dispenser range" Attribute "engy dispenser radius increased" Increment 1 Cap 11 Cost 100 AllowPlayerClass Engineer AllowedWeapons { Classname tf_weapon_pda_engineer_build } } DispenserHeal { Name "+100% dispenser health regen" Attribute "mult dispenser rate" Increment 1 Cap 11 Cost 100 AllowPlayerClass Engineer AllowedWeapons { Classname tf_weapon_pda_engineer_build } } SentryFireSpeed { Name "+10% Sentry Firing Speed" Attribute "engy sentry fire rate increased" Cap 0.8 Increment -0.1 Cost 350 AllowPlayerClass Engineer AllowedWeapons { Classname tf_weapon_pda_engineer_build } } TeleBoost { Name "Teleporter speed boost" Attribute "mod teleporter speed boost" Increment 1 Cap 1 Cost 200 AllowPlayerClass Engineer AllowedWeapons { Classname tf_weapon_pda_engineer_build } } SniperCharge { Name "+25% charge rate" Attribute "SRifle Charge rate increased" Increment 0.25 Cap 2 Cost 100 AllowedWeapons { Classname tf_weapon_sniperrifle Classname tf_weapon_sniperrifle_classic Classname tf_weapon_sniperrifle_decap } } SniperDmgBonus { Name "+25% headshot damage" Attribute "headshot damage increase" Increment 0.25 Cap 2 Cost 0 AllowedWeapons { Classname tf_weapon_sniperrifle Classname tf_weapon_sniperrifle_classic Classname tf_weapon_sniperrifle_decap Classname tf_weapon_compound_bow ItemName "The Ambassador" } } SniperEH { Name "Explosive headshot" Attribute "explosive sniper shot" Increment 1 Cap 3 Cost 0 AllowedWeapons { Classname tf_weapon_sniperrifle Classname tf_weapon_sniperrifle_classic Classname tf_weapon_sniperrifle_decap ItemName "The Ambassador" } } Bleed // 5s Bleed on target { Name "+5s Bleed on Target" Attribute "bleeding duration" Cap 15 Increment 5 Cost 200 AllowPlayerClass Sniper AllowedWeapons { ItemName "The Huntsman" ItemName "The Fortified Compound" ItemName "Festive Huntsman" } } BleedDmg { Name "25% bleeding damage" Attribute "mult bleeding dmg" Cap 2 Increment 0.25 Cost 300 AllowedWeapons { ItemName "The Tribalman's Shiv" ItemName "The Southern Hospitality" ItemName "The Boston Basher" ItemName "Three-Rune Blade" ItemName "The Flying Guillotine" ItemName "The Wrap Assassin" } } BleedDmgHuntsman { Name "25% bleeding damage" Attribute "mult bleeding dmg" Cap 2 Increment 0.25 Cost 300 AllowedWeapons { ItemName "The Huntsman" ItemName "The Fortified Compound" ItemName "Festive Huntsman" } RequiredUpgrade { Upgrade "Bleed" // Name of the upgrade, as specified in the outer block Level 1 // Minimum level after which the upgrade becomes enabled (Default: 1) } } MedicClipsize_Crossbow { Name "+1 clip size" Attribute "clip size upgrade atomic" Increment 1 Cap 4 Cost 0 AllowedWeapons { Classname tf_weapon_crossbow } } Milkbolt { Name "Secondary fire: Milk Bolt" Attribute "fires milk bolt" Increment 5 Cap 5 Cost 300 AllowedWeapons { Classname tf_weapon_crossbow } } MadMilkSyringes { Name "Mad Milk Syringes" Attribute "mad milk syringes" Cap 1 Increment 1 Cost 200 AllowPlayerClass Medic AllowedWeapons { Slot "Primary" } DisallowedWeapons { ItemName "The Crusader's Crossbow" } } rocketspecialist // Rocket Specialist { Name "Rocket Specialist" Attribute "rocket specialist" Cap 4 Increment 1 Cost 300 AllowPlayerClass Soldier AllowedWeapons { Slot "Primary" } DisallowedWeapons { ItemName "The Liberty Launcher" ItemName "The Air Strike" ItemName "W.A.S.P Launcher" } DisallowedUpgrade { upgrade homingprojectile level 1 } } rocketspecialist_airstrike // Rocket Specialist { Name "Rocket Specialist" Attribute "rocket specialist" Cap 4 Increment 1 Cost 300 AllowPlayerClass Soldier AllowedWeapons { ItemName "The Air Strike" } DisallowedUpgrade { upgrade homingprojectile_airstrike level 1 } } homingprojectile_airstrike // Homing Module Air Strike { Name "Homing Projectile Module" Attribute "damage penalty" Description "Installs Homing Projectile Module to your Primary" Cap 0.75 Increment -0.10 Cost 650 AllowPlayerClass Soldier AllowedWeapons { ItemName "The Air Strike" } SecondaryAttributes { //"projectile speed decreased" -0.35 //"damage penalty" -0.20 "Blast radius decreased" -0.1 "mod projectile heat seek power" 90 "mod projectile heat aim error" 45 "mod projectile heat aim time" 2 "projectile spread angle penalty" 3 } DisallowedUpgrade { upgrade rocketspecialist_airstrike level 1 } } rocketspecialist_liberty // Rocket Specialist { Name "Rocket Specialist" Attribute "rocket specialist" Cap 4 Increment 1 Cost 300 AllowPlayerClass Soldier AllowedWeapons { ItemName "The Liberty Launcher" } DisallowedUpgrade { upgrade homingprojectile_liberty level 1 } } upgrade // +1s charge duration { Name "+1s Charge Duration" Attribute "charge time increased" Cap 3 Increment 1 Cost 200 AllowedWeapons { ItemName "The Chargin' Targe" ItemName "The Splendid Screen" ItemName "The Tide Turner" } } upgrade // charge rehcarge { Name "+100% Charge Recharge" Attribute "charge recharge rate increased" Cap 5 Increment 1 Cost 150 AllowedWeapons { ItemName "The Chargin' Targe" ItemName "The Splendid Screen" ItemName "The Tide Turner" } } // Special upgrades // // Multiclass headshotsecondary { Name "Upgrade: Crit on Headshot" Attribute "can headshot" Cap 1 Increment 1 Cost 0 AllowPlayerClass Scout AllowPlayerClass Engineer AllowedWeapons { Slot "Secondary" } DisallowedWeapons { // scout ItemName "Mad Milk" ItemName "Mutated Milk" ItemName "Bonk! Atomic Punch" ItemName "Crit-a-Cola" ItemName "The Flying Guillotine" // engineer ItemName "The Wrangler" ItemName "The Giger Counter" ItemName "The Short Circuit" ItemName "Mjolnir" } } // Scout Sandman { Name "Rework: Jumping Sandman Module" Attribute "air dash count" // The attribute name Cap 2 // Maximum amount of the attribute Increment 2 // Attribute increment value per level Cost 0 Tier 1 AllowedWeapons { ItemName "The Sandman" } SecondaryAttributes { "max health additive penalty" -300 "effect bar recharge rate increased" 0.1 "increased jump height" 2 "cancel falling damage" 1 "head scale" 1.5 "no_duck" 1 "damage penalty" 0.5 "override footstep sound set" 5 } } MeleeAirblast { Name "Unstable Mod: Deflection Rounds" Attribute "melee airblast" Description "Melee attacks reflect projectiles, 200% slower fire rate" Cap 2 Increment 2 Cost 0 AllowPlayerClass Scout Tier 1 AllowedWeapons { Slot "Melee" } SecondaryAttributes { "fire rate bonus hidden" 3 } } ExplosiveBullets { Name "Unstable Mod: Blast Module" Attribute "explosive bullets" Description "Fires exploding bullets that deal increased damage but slows your fire rate" Cap 100 Increment 100 Cost 0 AllowPlayerClass Scout Tier 1 AllowedWeapons { Slot "Primary" } SecondaryAttributes { "damage bonus hidden" 2.25 "fire rate bonus hidden" 2.5 "explosion particle" "rd_robot_explosion_smoke_linger" } } SuperScout // Super Scout Module { Name "Stable Mod: Super Speed" Description "Only provides faster movement speed on when melee is active!" Attribute "move speed bonus" Cap 2 Increment 1 Tier 1 Cost 0 AllowedWeapons { ItemName "The Holy Mackerel" ItemName "Festive Holy Mackerel" } SecondaryAttributes { "provide on active" 1 "max health additive penalty" -400 //"move speed bonus" 2 } } Cleaver { Name "Stable Mod: Thirst for blood" Description "On Kill: 7 seconds of minicrits and 20% health restored on kill" Attribute "minicritboost on kill" Cap 7 Increment 7 Tier 1 Cost 0 AllowedWeapons { ItemName "The Flying Guillotine" } SecondaryAttributes { "restore health on kill" 20 } } TankBat { Name "Stable Mod: Tank Basher" Description "Deal bonus damage to tanks, but move slower when active" Attribute "mult dmg vs tanks" Cap 2 Increment 1 Cost 0 AllowedWeapons { ClassName "tf_weapon_bat" ClassName "tf_weapon_bat_wood" } SecondaryAttributes { "provide on active" 1 "move speed penalty" -0.15 } } // Soldier RapidFire // Rapid Fire Module { Name "Rework: Rapid Fire Module" Attribute "maxammo primary increased" Cap 5 Increment 5 Cost 0 AllowPlayerClass Soldier Tier 1 AllowedWeapons { Slot "Primary" } SecondaryAttributes { "mod max primary clip override" -1 "fire rate penalty" 0.5 "Projectile speed decreased" -0.35 } DisallowedWeapons { ItemName "The Beggar's Bazooka" ItemName "The Black Box" ItemName "The Cow Mangler 5000" } OnApply // Output fired when the upgrade is being applied (the upgrade being bought, the player changing classes or weapons). Format: target,action,parameter,delay { Output "!activator,$Regenerate,,0,-1" // in case someone bought the upgrade mid-wave } } LaserWeapons { Name "Rework: Laser Gatling" Description "Fires lasers at a high rate; -30% slower move speed when active and 60% damage penalty" Attribute "override projectile type" Cap 13 Increment 13 Cost 0 AllowPlayerClass Soldier Tier 1 AllowedWeapons { ItemName "The Cow Mangler 5000" } SecondaryAttributes { "fire rate bonus" -0.95 "faster reload rate" -0.99 "ragdolls become ash" 1 "projectile penetration" 1 "damage penalty" -0.6 "provide on active" 1 "move speed penalty" -0.3 "projectile range decreased" -0.5 } } CritModule { Name "Rework: Charged Module" Attribute "always crit" Cap 1 Increment 1 Cost 0 AllowPlayerClass Soldier Tier 1 AllowedWeapons { Slot "Primary" } DisallowedWeapons { ItemName "The Beggar's Bazooka" ItemName "The Cow Mangler 5000" ItemName "W.A.S.P. Launcher" ItemName "The Black Box" } SecondaryAttributes { "damage bonus" 2 // having always crits on soldier isn't enough to justify its own weapon "fire rate penalty" 2 "blast radius increased" 2 // trades off dps for high AOE damage "mod max primary clip override" -1 "mod no reload display only" 1 "maxammo primary increased" 5 "Projectile speed decreased" 0.5 } OnApply // Output fired when the upgrade is being applied (the upgrade being bought, the player changing classes or weapons). Format: target,action,parameter,delay { Output "!activator,$Regenerate,,0,-1" // in case someone bought the upgrade mid-wave } } Shrapnel { Name "Stable Mod: Shrapnel Rockets" Description "Rockets explode into shrapnel that causes bleeding and ticks faster." Attribute "bleeding duration" Cap 1 Increment 1 Cost 0 AllowPlayerClass Soldier Tier 1 AllowedWeapons { Slot "Primary" } DisallowedWeapons { ItemName "The Cow Mangler 5000" } SecondaryAttributes { "mult bleeding dmg" 1 "mult bleeding delay" -0.75 } } // Pyro SuctionPrototype { Name "Unstable Mod: Flame Magnet" Attribute "airblast disabled" Description "Creates long flames that pull you towars enemies, but you can't airblast" Cap 1 Increment 1 Cost 0 Tier 1 AllowPlayerClass Pyro AllowedWeapons { Slot "Primary" } DisallowedWeapons { ItemName "The Phlogistinator" } SecondaryAttributes //Secondary attributes applied when upgrade is applied, for each upgrade level { "flame_gravity" 1 "flame_drag" 0.1 "flame_up_speed" -350 "flame_speed" 3600 "flame_spread_degree" 1 "flame_lifetime" 0.25 "apply look velocity on damage" -150 "apply z velocity on damage" -150 "firing forward pull" 520 } } AirBlastPower { Name "Stable Mod: Plutonium Airblast" Attribute "minicrits become crits" Description "Reflected projectiles have a bigger explosion radius, deal crits and absorb resistances; slower airblast rate" Cap 1 Increment 1 Cost 0 AllowPlayerClass Pyro Tier 1 AllowedWeapons { Slot "Primary" } DisallowedWeapons { ItemName "The Phlogistinator" } SecondaryAttributes { "airblast_pushback_disabled" 1 "dmg pierces resists absorbs" 1 "mult airblast refire time" 2.5 "deflection size multiplier" 1 "rocket specialist" 4 "Blast radius increased" 3.5 "use large smoke explosion" 1 } } EOI { Name "Unstable Mod: Explode on Ignite" Attribute "explode_on_ignite" Description "Ignited enemies explode, but you need 5500 damage to activate gas and -100 health penalty" Cap 1 Increment 1 Cost 0 AllowPlayerClass Pyro Tier 1 AllowedWeapons { ItemName "The Gas Passer" } SecondaryAttributes { "item_meter_damage_for_full_charge" 5500 "deploy time increased" 3 "max health additive penalty" -100 } } // Demo Mines { Name "Unstable Mod: Minefield" Attribute "grenade not explode on impact" Description "Uses Beggar's Bazooka attribs, grenades have a 5 second fuse time and deal more indirect damage." Cap 1 Increment 1 Cost 0 Tier 1 AllowPlayerClass Demoman AllowedWeapons { ItemName "The Iron Bomber" } SecondaryAttributes { "grenade damage reduction on world contact" 15 "fire rate bonus" -0.9 "faster reload rate" -0.35 "damage bonus HIDDEN" -0.95 "auto fires full clip" 1 "auto fires when full" 1 "clip size upgrade atomic" 4 "rocket jump damage reduction" -0.9 "fuse bonus" 2 "projectile spread angle penalty" 5 "damage causes airblast" 1 "projectile speed decreased" -0.45 } } NeonModule { Name "Upgrade: Electrified Sword" Attribute "crit vs wet players" Description "100% critical hit chance vs wet players" Cap 1 Increment 1 Cost 0 AllowPlayerClass Demoman Tier 1 AllowedWeapons { Slot "Melee" } DisallowedUpgrade { Upgrade critboost Level 1 } DisallowedWeapons { ItemName "Hellbent Axe" ItemName "TF_WEAPON_BOTTLE" ItemName "Upgradeable TF_WEAPON_BOTTLE" ItemName "The Scottish Handshake" } SecondaryAttributes { "ragdolls plasma effect" 1 } } Bottle { Name "Unstable Mod: Bar Fighter" Attribute "hit self on miss" Description "Increases fire rate by 40%, heals 40% of health on kill, and applies jarate for 3 seconds, but you can hit yourself on miss" Cap 1 Increment 1 Cost 0 AllowPlayerClass Demoman Tier 1 AllowedWeapons { ItemName "TF_WEAPON_BOTTLE" ItemName "Upgradeable TF_WEAPON_BOTTLE" ItemName "The Scottish Handshake" } SecondaryAttributes { "add cond on hit" 24 "add cond on hit duration" 3 "fire rate bonus" -0.4 "restore health on kill" 40 } } // Heavy fireworks { Name "Rework: Flare Gatling" Description "Replaces Bullets with flares. Huo-Long Heater Only" Attribute "override projectile type" Cap 6 Increment 6 Cost 0 Tier 1 AllowedWeapons { ItemName "The Huo Long Heatmaker" } SecondaryAttributes { "damage bonus hidden" 6 "fire rate bonus hidden" 2.5 "set damagetype ignite" 1 "crit vs burning players" 1 "lunchbox adds minicrits" 1 } } Berserk { Name "Stable Mod: Berserker" Description "Fire rate and move speed increase based on current health, and you heal 100 health on hit" Attribute "fire rate bonus with reduced health" Cap 0.7 Increment -0.3 Cost 0 Tier 1 AllowedWeapons { ItemName "Warrior's Spirit" } SecondaryAttributes { "move speed as health decreases" 0.5 "heal on hit for rapidfire" 100 } } heavyshotgun1 { Name "Rework: Giant Heavy Shotgun" Attribute "fire rate penalty" Cap 2.5 Increment 1.5 Cost 0 AllowPlayerClass Heavyweapons Tier 1 AllowedWeapons { Name "TF_WEAPON_SHOTGUN_HWG" Name "The Family Business" } SecondaryAttributes { "provide on active" 1 "bullets per shot bonus" 9 "damage penalty" -0.5 "faster reload rate" -0.8 "attack projectiles" 1 "move speed bonus" 0.2 } } heavyshotgun2 { Name "Rework: Sub-Sandwich" Description "+100% damage is returned as health; blocks healing when in use, -25% slower firing speed and 10% slower reload time" Attribute "damage returns as health" Cap 1 Increment 1 Cost 0 Tier 1 AllowPlayerClass Heavyweapons AllowedWeapons { Name "TF_WEAPON_SHOTGUN_HWG" Name "The Family Business" } SecondaryAttributes { "provide on active" 1 // "health regen" 100 "fire rate penalty" 0.25 "reload time increased" 0.1 "mod weapon blocks healing" 1 } } // Engie PDA1 { Name "Stable Mod: Artillery Sentries" Description "Sentry fires rockets 75% faster, but bullets fire 400% slower" Attribute "mult firerocket rate" Cap 0.25 Increment -0.75 Cost 0 Tier 1 AllowPlayerClass Engineer SecondaryAttributes { "engy sentry fire rate increased" 5 "rocket specialist" 4 } } ShotgunMoney { Name "Upgrade: Cash Cowboy" Description "Gain Cash Magnet and cash healing" Attribute "mult credit collect range" Cap 2 Increment 1 Cost 0 Tier 1 AllowPlayerClass Engineer AllowedWeapons { Name "TF_WEAPON_SHOTGUN_PRIMARY" Name "Upgradeable TF_WEAPON_SHOTGUN_PRIMARY" Name "The Frontier Justice" Name "The Pomson 6000" Name "The Widowmaker" } SecondaryAttributes { "health from credits" 50 } } CircuitStun { Name "Unstable Mod: Droid Disabler" Description "Short Circuit Stuns enemies for 3 seconds. -70% damage penalty" Attribute "stun on damage" Cap 100 Increment 100 Cost 0 Tier 1 AllowPlayerClass Engineer AllowedWeapons { ItemName "The Short Circuit" } SecondaryAttributes { "damage penalty" -0.7 } } // Medic ShieldGenerator { Name "Stable Mod: Projectile Shield" Attribute "generate rage on heal" Cap 2 Increment 2 Cost 0 Tier 1 AllowedWeapons { ItemName "The Quick-Fix" } SecondaryAttributes { "increase buff duration" 3 "ubercharge rate bonus" -0.1 "ubercharge rate penalty" -0.99 "uber duration bonus" -8 "overheal penalty" -0.5 "dmg penalty vs players" -0.5 // Fuck you } } BigHeal // Quickfix { Name "Stable Mod: BigHeal" Attribute "heal rate bonus" Cap 20 Increment 10 Cost 0 Tier 1 AllowedWeapons { ItemName "The Quick-Fix" } SecondaryAttributes { "ubercharge rate bonus" -0.1 "ubercharge rate penalty" -0.99 "uber duration bonus" -8 "overheal penalty" -0.5 } DisallowedUpgrade { upgrade ShieldGenerator level 1 } } LongUber { Name "Stable Mod: Überstunden" Attribute "uber duration bonus" Cap 6 Increment 6 Cost 0 AllowPlayerClass Medic Tier 1 AllowedWeapons { Slot "Secondary" } SecondaryAttributes { "ubercharge rate bonus" -0.5 "heal rate bonus" 2 } DisallowedWeapons { ItemName "The Kritzkrieg" ItemName "The Quick-Fix" ItemName "The Vaccinator" } } QuickUber // Stock { Name "Stable Mod: Quick Uber" Attribute "ubercharge rate bonus" Cap 5 Increment 4 Cost 0 AllowPlayerClass Medic Tier 1 AllowedWeapons { Slot "Secondary" } SecondaryAttributes { "uber duration bonus" -3 "heal rate penalty" -0.9 } DisallowedWeapons { ItemName "The Kritzkrieg" ItemName "The Quick-Fix" ItemName "The Vaccinator" } } // Sniper LaserSMG { Name "Rework: Plasma Gunner" Attribute "dmg pierces resists absorbs" Description "Fires plasma projectiles that pierce resistances" Increment 1 Cap 1 Cost 0 AllowPlayerClass Sniper Tier 1 AllowedWeapons { Slot "Secondary" } DisallowedWeapons { ItemName "Jarate" ItemName "The Self-Aware Beauty Mark" ItemName "The Razorback" ItemName "The Cozy Camper" ItemName "Darwin's Danger Shield" } SecondaryAttributes { "override projectile type" 13 "ragdolls plasma effect" 1 "custom weapon fire sound" "Weapon_Bison.Single" "fire rate bonus hidden" 4 "reload time increased hidden" 2 } } Ants { Name "Rework: Jar of Ants" Description "Replaces Jarate with ants, which bleed enemies on hit" Attribute "override projectile type" Increment 3 Cap 3 Cost 0 Tier 1 AllowedWeapons { ItemName "Jarate" ItemName "The Self-Aware Beauty Mark" ItemName "Festive Jarate" } SecondaryAttributes { "custom projectile model" "models/weapons/c_models/urinejar.mdl" "grenade explode on impact" 1 "explosion particle" "peejar_impact" "custom impact sound" "weapons/jar_explode.wav" "damage bonus hidden" 0.01 "dmg penalty vs players" 1 "dmg bonus vs buildings" 0 "blast radius increased" 2.5 "no self blast dmg" 2 "bleeding duration" 10 "attach particle effect" 151 } } HotKnife { Name "Stable Mod: 1000 Degree Knife" Attribute "set damagetype ignite" Description "Ignite enemies on hit and 50% damage bonus vs burning enemies, but -50% damage vs non-burning enemies" Increment 1 Cap 1 Cost 0 AllowPlayerClass Sniper Tier 1 AllowedWeapons { Slot "Melee" } DisallowedWeapons { ItemName "The Tribalman's Shiv" } SecondaryAttributes { "attach particle effect" 13 "damage bonus vs burning" 0.5 "dmg penalty vs nonburning" -0.5 } } KnifeMastery { Name "Stable Mod: Australian Swordmastery" Description "Increases melee range by +100% and damage by 25%, but decreased holster and deploy time by 75%." Attribute "melee range multiplier" Increment 1.5 Cap 2.5 Cost 0 AllowPlayerClass Sniper Tier 1 AllowedWeapons { Slot "Melee" } SecondaryAttributes { "single wep holster time increased" 0.75 "single wep deploy time increased" 0.75 "damage bonus" 0.25 "decapitate type" 1 } } // Spy Revolver1 { Name "Stable Mod: French Connection" Description "Damage connect all who are healed by a medigun, +25% slower firing speed" Attribute "damage all connected" Increment 1 Cap 1 Cost 0 AllowPlayerClass Spy Tier 1 AllowedWeapons { Classname "TF_WEAPON_REVOLVER" } SecondaryAttributes { "fire rate bonus hidden" 0.25 } } Kunai { Name "Unstable Mod: Ninja's Code" Description "Overheal decay is now disabled, weapon is now honorbound" Attribute "honorbound" Increment 1 Cap 1 Cost 0 Tier 1 AllowedWeapons { ItemName "Conniver's Kunai" } SecondaryAttributes { "overheal bonus" 2 "overheal decay disabled" 1 } } Revolver1 { Name "Unstable Mod: Secretive Service" Description "Keep your disguse on attack with revolver; -20% damage done and 20% slower firing speed" Attribute "keep disguise on attack" Increment 1 Cap 1 Cost 0 AllowPlayerClass Spy Tier 1 AllowedWeapons { Classname TF_WEAPON_REVOLVER } SecondaryAttributes { "damage penalty" -0.2 "fire rate penalty" 0.2 } } Revolver2 { Name "Rework: Tranquilizer Gun" Description "Fires tranquilizer darts that mark enemies for death, slow movement speed by -25% and disable buildings on hit for 5 seconds" Attribute "mark for death" Increment 1 Cap 1 Cost 0 AllowPlayerClass Spy Tier 1 AllowedWeapons { Classname TF_WEAPON_REVOLVER } SecondaryAttributes { "override projectile type" 5 "add attributes on hit" "move speed penalty|0.75|5|" "disable buildings on hit" 5 } } SpyWatchBattalion { Name "Rework: Le Résisteur" Description "Cloaking gives you the Battalion's Backup effect" Attribute "effect cond override" Increment 26 Cap 26 Cost 0 AllowPlayerClass Spy Tier 1 SecondaryAttributes { "mult cloak meter consume rate" 2.25 } AllowedWeapons { Classname TF_WEAPON_INVIS } } } PointTemplates { corelogic { NoFixup 1 logic_auto { "origin" "0 0 0" "targetname" "mainrelay" "OnMapSpawn" "item_ammopack*,Kill,,0,-1" "OnMapSpawn" "nest_a1_c,Disable,,0,-1" "OnMapSpawn" "nest_a1_a,Disable,,0,-1" "OnMapSpawn" "move_rope,Kill,,0,-1" "OnMapSpawn" "keyframe_rope,Kill,,0,-1" // remove nuke easteregg things "OnMapSpawn" "dr_nuke*,Kill,,0,-1" "OnMapSpawn" "hrt_secret,Kill,,0,-1" "OnMapSpawn" "rel_secret,Kill,,0,-1" "OnMapSpawn" "trgm_geiger,Kill,,0,-1" "OnMapSpawn" "trg_nuke,Kill,,0,-1" "OnMapSpawn" "trg_time,Kill,,0,-1" "OnMapSpawn" "wav_torgue,Kill,,0,-1" // "OnMapSpawn" "trigger_once,Kill,,0,-1" "OnMapSpawn" "trigger_hurt,Disable,,0,-1" "OnMapSpawn" "btn_secret*,Kill,,0,-1" "OnMapSpawn" "wav_chime,Kill,,0,-1" "OnMapSpawn" "wave_start_relay*,AddOutput,OnTrigger spawnbarrier*:Disable:0:-1" "OnMapSpawn" "wave_finished_relay,AddOutput,OnTrigger spawnbarrier*:Enable:0:-1" "OnMapSpawn" "wave_start_relay,AddOutput,OnTrigger func_regenerate:Disable:0:-1" "OnMapSpawn" "wave_finished_relay,AddOutput,OnTrigger func_regenerate:Enable:0:-1" //"OnMapSpawn" "wave_start*,AddOutput,OnTrigger func_flagdetectionzone:Disable:0:-1,0,-1" //disables the hatch alarm on wave start "OnMapSpawn" "wave_start*,AddOutput,OnTrigger capturezone_blue:Disable:0:-1,0,-1" //disables the func_capturezone of the hatch on wave start "OnMapSpawn" "wave_start_*,AddOutput,OnTrigger wipeTeam:Enable:0:-1" "OnMapSpawn" "wave_finished_relay,AddOutput,OnTrigger wipeTeam:Disable:0:-1" "OnMapSpawn" "fix_viewcontrol,Trigger,,0,-1" } logic_relay { "targetname" "wave4_init" "OnTrigger" "item_teamflag,Disable,,0,-1" "OnTrigger" "hudhint,$setkey$message,OBJECTIVE: Push the van to the end of the map!,0,-1" "OnTrigger" "spawnbot_station,,Disable,,0,-1" "OnTrigger" "spawnbot_top_front_building,,Disable,,0,-1" "OnTrigger" "spawnbot_ruins*,Disable,,0,-1" "OnTrigger" "spawnbot_pyramid,Disable,,0,-1" "OnTrigger" "spawnbot_belowbridge,Disable,,0,-1" } NoFixup 1 logic_relay //trigger this to kill all players and buildings { "targetname" "kill_relay" "OnTrigger" "obj_dispenser,RemoveHealth,5000,0,-1" "OnTrigger" "obj_sentrygun,RemoveHealth,5000,0,-1" "OnTrigger" "obj_teleporter,RemoveHealth,5000,0,-1" "OnTrigger" "player,SetHealth,-10000,0,-1" } NoFixup 1 logic_relay //trigger this to lose { "origin" "0 0 0" "targetname" "redwin_relay" "OnTrigger" "bots_win_red,RoundWin,,0,-1" "OnTrigger" "pit_explosion_wav,PlaySound,,0,-1" //map dependent "OnTrigger" "failuresound,PlaySound,,0,-1" //map dependent } NoFixup 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" } ambient_generic { "targetname" "failuresound" "health" "10" "message" "vo/announcer_you_failed.mp3" "pitch" "100" "pitchstart" "100" "radius" "20000" "spawnflags" "49" "origin" "0 0 0" } func_regenerate { "targetname" "regenerate" "associatedmodel" "locker_model" "TeamNum" "3" "mins" "-20000 -20000 -20000" "maxs" "20000 20000 20000" "origin" "0 0 0" } prop_dynamic { "targetname" "locker_model" //need a locker model to stop server console spam "model" "models/props_gameplay/resupply_locker.mdl" "solid" "0" "angles" "0 0 0" "rendermode" "10" "origin" "0 0 0" "disableshadows" "1" } prop_dynamic { "angles" "0 180 0" "fademindist" "-1" "fadescale" "1" "MaxAnimTime" "10" "MinAnimTime" "5" "model" "models/props_mvm/mine_rock_full.mdl" "modelscale" "1.0" "renderamt" "255" "rendercolor" "255 255 255" "skin" "0" "solid" "6" "targetname" "rocks1" "origin" "-64.0006 7360 728" } prop_dynamic { "angles" "0 180 0" "fademindist" "-1" "fadescale" "1" "MaxAnimTime" "10" "MinAnimTime" "5" "model" "models/props_mvm/mine_rock_full.mdl" "modelscale" "1.0" "renderamt" "255" "rendercolor" "255 255 255" "skin" "0" "solid" "6" "targetname" "rocks2" "origin" "-88.0006 6784 728" } logic_relay { "targetname" "wave5_relay" // "OnTrigger" "barrier1_disable,Trigger,,0,-1" "OnTrigger" "barrier2_disable,Trigger,,0,-1" "OnTrigger" "item_teamflag,Disable,,0,-1" // "OnTrigger" "hatchshield,Disable,,0,-1" // "OnTrigger" "hatch_forcefield,Disable,,0,-1" } logic_relay { "targetname" "wave6_relay" "OnTrigger" "item_teamflag,Disable,,0,-1" "OnTrigger" "hatchshield,Disable,,0,-1" "OnTrigger" "hatch_forcefield,Disable,,0,-1" "OnTrigger" "barrier2_disable,Trigger,,0,-1" "OnTrigger" "spawnbot_tunnel1,Disable,,0,-1" "OnTrigger" "spawnbot_tunnel2,Disable,,0,-1" "OnTrigger" "spawnbot_station,Disable,,0,-1" "OnTrigger" "spawnbot_front_backarea,Disable,,0,-1" "OnTrigger" "spawnbot_pyramid,Disable,,0,-1" "OnTrigger" "spawnbot_ruins*,Disable,,0,-1" "OnTrigger" "pause_timer,Trigger,,0,-1" "OnTrigger" "msg*,Enable,,0,-1" "OnTrigger" "plate*,Enable,,0,-1" "OnTrigger" "holokey*,Enable,,0,-1" "OnTrigger" "challenge_buttion*,Enable,,0,-1" } trigger_brush { "targetname" "game_playerdie" "OnUse" "item_powerup_rune,Kill,,0,-1" } trigger_add_tf_player_condition { "condition" "32" "duration" "-1" "effects" "0" "filtername" "filter_blueteam" "origin" "48 6344 772" "spawnflags" "1" "mins" "-1256 -1160 -356" "maxs" "1256 1160 356" "StartDisabled" "0" "targetname" "booster" } prop_dynamic { "angles" "0 0 0" "fademindist" "-1" "fadescale" "1" "MaxAnimTime" "10" "MinAnimTime" "5" "model" "models/props_gameplay/security_fence_section01.mdl" "modelscale" "1.0" "renderamt" "255" "rendercolor" "255 255 255" "skin" "0" "solid" "6" "origin" "-150 1467 58" } logic_relay //objective display { "targetname" "hudhintloop" "OnTrigger" "hudhint,ShowHudHint,,0,-1" "OnTrigger" "hudhint,HideHudHint,,10,-1" "OnTrigger" "hudhintloop2,Trigger,,10.01,-1" } logic_relay { "targetname" "hudhintloop2" "OnTrigger" "hudhintloop,Trigger,,0,-1" "OnSpawn" "wave_start_relay,AddOutput,OnTrigger hudhintloop:Trigger:1:-1,1,-1" "OnSpawn" "wave_finished_relay,AddOutput,OnTrigger hudhintloop:CancelPending:0:-1,0,-1" } logic_relay { "targetname" "fix_viewcontrol" "OnTrigger" "point_viewcontrol,$DisableAll,,0,-1" "OnTrigger" "fix_viewcontrol2,Trigger,,0,-1" } logic_relay { "targetname" "fix_viewcontrol2" "OnTrigger" "fix_viewcontrol,Trigger,,2,-1" } env_hudhint { "targetname" "hudhint" "message" "OBJECTIVE: Destroy RED Robots and deploy the bomb" "spawnflags" "1" } point_populator_interface { "targetname" "pop_interface" } } Spawn_Abuse_Fix { // NoFixup 1 filter_tf_condition { "condition" "51" "Negated" "0" "targetname" "damage_penalty_check" "OnPass" "!activator,$AddPlayerAttribute,dmg penalty vs players|0.5,0.1,-1" "OnPass" "!activator,$AddPlayerAttribute,no crit boost|1,0.1,-1" "OnPass" "!activator,$AddPlayerAttribute,mult dmg vs tanks|1.5,0.1,-1" "OnFail" "!activator,$RemovePlayerAttribute,no crit boost,0.1,-1" "OnFail" "!activator,$RemovePlayerAttribute,dmg penalty vs players,0.1,-1" "OnFail" "!activator,$RemovePlayerAttribute,mult dmg vs tanks,0.1,-1" } trigger_multiple { "targetname" "check_blu_trigger" "origin" "0 0 0" "mins" "-10000 -10000 -10000" "maxs" "10000 10000 10000" "spawnflags" "1" "OnStartTouch" "damage_penalty_check,TestActivator,,0,-1" } } //Players left template PlayersLeftLogic { NoFixup 1 math_counter { "targetname" "playersLeftAlive" "startvalue" "0" "outValue" "playersLeftFormat,$SetKey$Case01,,0,-1" "outValue" "playersLeftFormat,$Format,,0.2,-1" "outValue" "wipeCheck,SetValueCompare,,0,-1" } logic_compare { "targetname" "wipeCheck" "initialValue" "0" "CompareValue" "0" "OnEqualTo" "blualive_safety_timer,Enable,,0,-1" "OnEqualTo" "blualive_safety_timer2,Trigger,,0,-1" "OnNotEqualTo" "blualive_safety_timer,Disable,,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" "color" "255 255 255" "color2" "255 255 255" "effect" "0" "fadein" "0" "fadeout" "1" "fxtime" "0.25" "holdtime" "9999" "message" "FunnyHahaPlaceholderText" "spawnflags" "1" "x" "0.85" "y" "0.1" } logic_relay { "targetname" "wipeTeam" "StartDisabled" "1" "OnTrigger" "redwin_relay,Trigger,,0,-1" "OnTrigger" "wipe_fade,Fade,,0,-1" } logic_relay //relay loops are less resource intensive than logic_timers according to https://developer.valvesoftware.com/wiki/Logic_timer { "targetname" "blualive_safety_timer" "startdisabled" "1" "OnTrigger" "wipeTeam,Trigger,,0,-1" "OnTrigger" "!self,Disable,,0.01,-1" } logic_relay { "targetname" "blualive_safety_timer2" "OnTrigger" "blualive_safety_timer,Trigger,,5,-1" } env_fade { "targetname" "wipe_fade" "duration" "1" "holdtime" "10" "renderamt" "100" "rendercolor" "164 0 0" "spawnflags" "0" } } PlayerTracker { NoFixup 1 OnSpawnOutput { Target "playersLeftAlive" Action "add" Param "1" } logic_relay { "$OnKilled" "playersLeftAlive,Subtract,1,0,0" } } //Player Res Template PlayerResInput { NoFixup 1 OnSpawnOutput { Target "playerResInWave" Action Test } logic_branch { "startvalue" "0" // used to detect if wave is started or not "targetname" "playerResInWave" "onTrue" "player,$SetVar$inWave,1,0,-1" "onFalse" "player,$SetVar$inWave,0,0,-1" } math_counter { "startvalue" "0" // value to change "targetname" "playerResVal1" "onGetValue" "player,$SetVar$hasRes,,0,-1" } math_counter { "startvalue" "1" // value to change "targetname" "playerResVal2" "onGetValue" "player,$SetVar$hasRes,,0,-1" } math_counter { "startvalue" "2" // value to change "targetname" "playerResVal3" "onGetValue" "player,$SetVar$hasRes,,0,-1" } math_counter { "startvalue" "5" // value to change "targetname" "playerResVal5" "onGetValue" "player,$SetVar$hasRes,,0,-1" } } PlayerRes { Keepalive 1 OnParentKilledOutput { Target "playerResConfirm" Action InValue Param "$$=''..?(int(!activator.hasRes) > 0, ?(int(!activator.inWave) < 1,string('99'),string('1')),?(int(!activator.inWave) < 1,string('99'),string('0')))" } logic_case { "targetname" "playerResConfirm" "case01" "1" "case02" "0" "case03" "99" "OnCase01" "!activator,$ForceRespawnDead,,2,-1" "OnCase01" "!activator,$SetVar$hasRes,$$=(int(!activator.hasRes) - 1),2,-1" // formatting string for if you have lifes "OnCase01" "player,$DisplayTextChat,$$=''.. '{f5c542}' .. string(!activator.m_szNetname) .. string(' {ffffff} has been revived, they have {f5c542}') .. string(!activator.hasRes) .. string('{ffffff} more lives left.'),2,-1" "OnCase01" "revivefx,PlaySound,,2.05,-1" "OnCase01" "revivefx,PlaySound,,2.05,-1" "OnCase01" "revivefx,kill,,3,-1" "OnCase01" "!self,kill,,3,-1" // formatting string for if no lifes "OnCase02" "player,$DisplayTextChat,$$=''.. '{f5c542}' .. string(!activator.m_szNetname) .. string(' {ffffff} has {ff2b2b} no more lives {ffffff}, they will be able to respawn at wave end.'),0,-1" "OnCase02" "!self,kill,,3,-1" "OnCase02" "revivefx,kill,,3,-1" "OnCase03" "!activator,$ForceRespawnDead,,2,-1" "OnCase03" "!self,kill,,0,-1" "OnCase03" "revivefx,kill,,0,-1" } ambient_generic { "targetname" "revivefx" "origin" "0 0 0" "volstart" "10" "spawnflags" "17" "radius" "999999" "preset" "0" "pitchstart" "125" "pitch" "125" "message" "#mvm/mvm_revive.wav" //to change respawn sound (plays globally) "lfotype" "0" "lforate" "0" "lfomodvol" "0" "lfomodpitch" "0" "health" "7.5" "fadeoutsecs" "0" "fadeinsecs" "0" "cspinup" "0" } } barriers //spawn blocker { NoFixup 1 func_forcefield { "disablereceiveshadows" "0" "origin" "256 5320 759" "renderamt" "255" "rendercolor" "255 255 255" "renderfx" "0" "rendermode" "10" "TeamNum" "2" "targetname" "spawnbarrierA" "mins" "-1424 -24 -369" "maxs" "1424 24 369" "StartDisabled" "0" } NoFixup 1 prop_dynamic //prop for show { "targetname" "spawnbarrierA1" "angles" "0 90 0" "DisableBoneFollowers" "1" "disablereceiveshadows" "1" "model" "models/props_forest/cliff_wall_05.mdl" "disableshadows" "1" "ExplodeDamage" "0" "ExplodeRadius" "0" "fademaxdist" "0" "fademindist" "-1" "fadescale" "1" "MaxAnimTime" "10" "maxdxlevel" "0" "MinAnimTime" "5" "mindxlevel" "0" "modelscale" "1.0" "PerformanceMode" "0" "pressuredelay" "0" "RandomAnimation" "0" "renderamt" "0" "renderfx" "0" "rendermode" "0" "SetBodyGroup" "0" "skin" "0" //set to 1 for red traincar, many props separate different variants this way "CollisionGroup" "0" "solid" "0" "spawnflags" "0" "StartDisabled" "0" "origin" "-702.761 5240 656" } prop_dynamic //prop for show { "targetname" "spawnbarrierA2" "angles" "0 90 0" "DisableBoneFollowers" "1" "disablereceiveshadows" "1" "model" "models/props_forest/cliff_wall_05.mdl" "disableshadows" "1" "ExplodeDamage" "0" "ExplodeRadius" "0" "fademaxdist" "0" "fademindist" "-1" "fadescale" "1" "MaxAnimTime" "10" "maxdxlevel" "0" "MinAnimTime" "5" "mindxlevel" "0" "modelscale" "1.0" "PerformanceMode" "0" "pressuredelay" "0" "RandomAnimation" "0" "renderamt" "0" "renderfx" "0" "rendermode" "0" "SetBodyGroup" "0" "skin" "0" //set to 1 for red traincar, many props separate different variants this way "CollisionGroup" "0" "solid" "0" "spawnflags" "0" "StartDisabled" "0" "origin" "712 5240 656" } func_forcefield { "disablereceiveshadows" "0" "origin" "-1216.5 4304 512" "renderamt" "255" "rendercolor" "255 255 255" "renderfx" "0" "rendermode" "10" "TeamNum" "2" "targetname" "spawnbarrierB" "mins" "-7.5 -96 -96" "maxs" "7.5 96 96" "StartDisabled" "0" } prop_dynamic //prop for show { "targetname" "spawnbarrierB1" "angles" "0 90 0" "DisableBoneFollowers" "1" "disablereceiveshadows" "1" "model" "models/props_doomsday/dd_woodfence_256.mdl" "disableshadows" "1" "ExplodeDamage" "0" "ExplodeRadius" "0" "fademaxdist" "0" "fademindist" "-1" "fadescale" "1" "MaxAnimTime" "10" "maxdxlevel" "0" "MinAnimTime" "5" "mindxlevel" "0" "modelscale" "1.0" "PerformanceMode" "0" "pressuredelay" "0" "RandomAnimation" "0" "renderamt" "0" "renderfx" "0" "rendermode" "0" "SetBodyGroup" "0" "skin" "0" //set to 1 for red traincar, many props separate different variants this way "CollisionGroup" "0" "solid" "0" "spawnflags" "0" "StartDisabled" "0" "origin" "-1216 4392 480" } } station //all-in-one upgrade station template { func_upgradestation { "mins" "-105 -100 0" "maxs" "105 100 242" "solid" "0" } NoFixup 1 prop_dynamic { "targetname" "upgradestation" "angles" "0 0 0" "DisableBoneFollowers" "0" "disablereceiveshadows" "0" "disableshadows" "1" "ExplodeDamage" "0" "ExplodeRadius" "0" "fademaxdist" "0" "fademindist" "-1" "fadescale" "1" "MaxAnimTime" "10" "maxdxlevel" "0" "MinAnimTime" "5" "mindxlevel" "0" "model" "models/props_mvm/mvm_upgrade_blu.mdl" "modelscale" "1" "PerformanceMode" "0" "pressuredelay" "0" "RandomAnimation" "0" "renderamt" "255" "renderfx" "0" "rendermode" "0" "SetBodyGroup" "0" "skin" "0" "solid" "0" "spawnflags" "0" "origin" "0 0 0" } func_upgradestation { "mins" "-100 -100 0" "maxs" "90 60 100" "parentname" "upgradestation" } NoFixup 1 // prop_dynamic // { // "targetname" "shopcollision" // "angles" "0 -90 0" // "DisableBoneFollowers" "1" // "disablereceiveshadows" "1" // "model" "models/props_vehicles/train_flatcar_container.mdl" // "disableshadows" "1" // "ExplodeDamage" "0" // "ExplodeRadius" "0" // "fademaxdist" "0" // "fademindist" "-1" // "fadescale" "1" // "MaxAnimTime" "10" // "maxdxlevel" "0" // "MinAnimTime" "5" // "mindxlevel" "0" // "modelscale" "1" // "PerformanceMode" "0" // "pressuredelay" "0" // "RandomAnimation" "0" // "renderamt" "0" // "renderfx" "0" // "rendermode" "10" // "SetBodyGroup" "0" // "skin" "0" // "CollisionGroup" "5" // "solid" "6" // "spawnflags" "0" // "StartDisabled" "0" // "origin" "0 0 0" // } } Blockers { NoFixup 1 func_forcefield { "disablereceiveshadows" "0" "origin" "328 2687 198.5" "renderamt" "255" "rendercolor" "255 255 255" "renderfx" "0" "rendermode" "10" "TeamNum" "2" "targetname" "barrier1a" "mins" "-144 -20 -134.5" "maxs" "144 20 134.5" "StartDisabled" "0" } func_nobuild { "AllowDispenser" "0" "AllowSentry" "0" "AllowTeleporters" "0" "effects" "0" "StartDisabled" "0" "origin" "192 2728 200" "mins" "-968 -112 -272" "maxs" "968 112 272" "targetname" "barrier1_nobuild" } prop_dynamic { "angles" "0 0 0" "disablereceiveshadows" "0" "disableshadows" "1" "fademindist" "-1" "fadescale" "1" "MaxAnimTime" "10" "MinAnimTime" "5" "model" "models/props_mvm/reversemvm_redwall_512x320.mdl" "modelscale" "1.0" "renderamt" "255" "rendercolor" "255 64 64" "skin" "1" "solid" "0" "targetname" "barrier1a_wall" "origin" "324 2712 224" } func_forcefield { "disablereceiveshadows" "0" "origin" "-616 2687 200" "renderamt" "255" "rendercolor" "255 255 255" "renderfx" "0" "rendermode" "10" "TeamNum" "2" "targetname" "barrier1b" "mins" "-144 -20 -134.5" "maxs" "144 20 134.5" "StartDisabled" "0" } func_forcefield { "disablereceiveshadows" "0" "effects" "0" "origin" "-149 2339 400" "renderamt" "255" "rendercolor" "255 255 255" "renderfx" "0" "rendermode" "0" "StartDisabled" "0" "mins" "-41 -16 -66" "maxs" "41 16 66" "targetname" "blocker3" "TeamNum" "2" } prop_dynamic { "angles" "0 0 0" "disablereceiveshadows" "0" "disableshadows" "1" "fademindist" "-1" "fadescale" "1" "MaxAnimTime" "10" "MinAnimTime" "5" "model" "models/props_mvm/reversemvm_redwall_512x320.mdl" "modelscale" "1.0" "renderamt" "255" "rendercolor" "255 64 64" "skin" "1" "solid" "0" "targetname" "barrier1b_wall" "origin" "-608 2712 224" } logic_relay { "targetname" "barrier1_disable" "OnTrigger" "barrier1a,Disable,,0,-1" "OnTrigger" "barrier1a_wall,Disable,,0.1,-1" "OnTrigger" "barrier1b,Disable,,0,-1" "OnTrigger" "barrier1b_wall,Disable,,0.1,-1" "OnTrigger" "barrier1_nobuild,Disable,,0,-1" "OnTrigger" "blocker3,Disable,,0,-1" "OnTrigger" "annotation_stage_one,Show,,0,-1" } func_forcefield { "disablereceiveshadows" "0" "origin" "300 -1188 392" "renderamt" "255" "rendercolor" "255 255 255" "renderfx" "0" "rendermode" "10" "TeamNum" "2" "targetname" "barrier2" "mins" "-1756 -4 -505.5" "maxs" "1756 4 505.5" "StartDisabled" "0" } func_nobuild { "AllowDispenser" "0" "AllowSentry" "0" "AllowTeleporters" "0" "effects" "0" "StartDisabled" "0" "origin" "284 -1184 392" "mins" "-1788 -136 -505.5" "maxs" "1768 136 505.5" "targetname" "barrier2_nobuild" } prop_dynamic { "angles" "0 0 0" "disablereceiveshadows" "0" "disableshadows" "1" "fademindist" "-1" "fadescale" "1" "MaxAnimTime" "10" "MinAnimTime" "5" "model" "models/props_mvm/reversemvm_redwall_696x337.mdl" "modelscale" "3.0" "renderamt" "255" "rendercolor" "255 64 64" "skin" "1" "solid" "0" "targetname" "barrier2_wall" "origin" "-180 -1264 392" } logic_relay { "targetname" "barrier2_disable" "OnTrigger" "barrier2,Disable,,0,-1" "OnTrigger" "barrier2_wall,Disable,,0,-1" "OnTrigger" "barrier2_nobuild,Disable,,0,-1" } } enemyspawner { NoFixup 1 prop_dynamic { "targetname" "spawnprop1" "classname" "prop_dynamic" "model" "models/props_mvm/robot_spawnpoint.mdl" "DefaultAnim" "idle" "disableshadows" "1" "DisableBoneFollowers" "1" "solid" "0" "spawnflags" "0" } prop_dynamic { "targetname" "spawnprop2" "classname" "prop_dynamic" "model" "models\buildables\teleporter_light.mdl" "DefaultAnim" "running" "rendercolor" "0 0 0" "disableshadows" "1" "DisableBoneFollowers" "1" "solid" "0" "spawnflags" "0" } } timerloss { // NoFixup 1 OnParentKilledOutput { Target timer_loss_relay* Action Trigger Delay 0.001 } } Nuke { NoFixup 1 ambient_generic { "origin" "-2953.718750 1027.582886 -79.814919" "volstart" "0" "targetname" "wav_nuke_ambient" "spinup" "0" "spindown" "0" "spawnflags" "33" "radius" "99999" "preset" "0" "pitchstart" "100" "pitch" "100" "message" "ambient/atmosphere/cave_outdoor1.wav" "lfotype" "0" "lforate" "0" "lfomodvol" "0" "lfomodpitch" "0" "health" "10" "fadeoutsecs" "0" "fadeinsecs" "0" "cspinup" "0" } ambient_generic { "origin" "-2953.718750 1027.582886 -79.814919" "volstart" "0" "targetname" "wav_nuke" "spinup" "0" "spindown" "0" "spawnflags" "33" "radius" "99999" "preset" "0" "pitchstart" "100" "pitch" "100" "message" "items/cart_explode.wav" "lfotype" "0" "lforate" "0" "lfomodvol" "0" "lfomodpitch" "0" "health" "10" "fadeoutsecs" "0" "fadeinsecs" "0" "cspinup" "0" } ambient_generic { "origin" "-2953.718750 1027.582886 -79.814919" "volstart" "0" "targetname" "missile" "spinup" "0" "spindown" "0" "spawnflags" "33" "radius" "99999" "preset" "0" "pitchstart" "100" "pitch" "100" "message" "misc/doomsday_missile_launch.wav" "lfotype" "0" "lforate" "0" "lfomodvol" "0" "lfomodpitch" "0" "health" "10" "fadeoutsecs" "0" "fadeinsecs" "0" "cspinup" "0" } env_fade { "targetname" "fade1" "spawnflags" "0" "rendercolor" "254 237 197" "renderamt" "50" "holdtime" "5" "duration" "0.5" } env_fade { "targetname" "fade2" "spawnflags" "0" "rendercolor" "254 237 197" "renderamt" "50" "holdtime" "5" "duration" "0.5" } env_viewpunch { "punchangle" "-90 0 0" "radius" "9999" "spawnflags" "3" "targetname" "punch" "origin" "-1751.165161 481.067780 -130.486755" } env_shake { "targetname" "shakeit" "spawnflags" "1" "radius" "5000" "frequency" "50" "duration" "3" "amplitude" "16" } info_particle_system { "origin" "-461 8239 757" "targetname" "nuke_particle" "start_active" "0" "flag_as_weather" "0" "effect_name" "dooms_nuke_ring" "angles" "0 0 0" } info_particle_system { "origin" "-461 8239 757" "targetname" "nuke_particle" "start_active" "0" "flag_as_weather" "0" "effect_name" "base_destroyed_smoke_doomsday" "angles" "0 0 0" } info_particle_system { "origin" "-461 8239 757" "targetname" "nuke_flash" "start_active" "0" "flag_as_weather" "0" "effect_name" "flash_doomsday" "angles" "0 0 0" } info_particle_system { "origin" "-461 8239 757" "targetname" "boom" "start_active" "0" "flag_as_weather" "0" "effect_name" "cinefx_goldrush" "angles" "0 0 0" } point_viewcontrol { "targetname" "explosion_cutscene" "acceleration" "0" "deceleration" "0" "interpolatepositiontoplayer" "0" "spawnflags" "0" "speed" "0" "wait" "10" "origin" "-425 6451 1008" "angles" "11 92 0" } trigger_hurt { "targetname" "ded" "origin" "0 0 0" "angles" "-45 -90 0" "mins" "-8000 -8000 -1000" "maxs" "8000 8000 1000" "nodmgforce" "0" "damagetype" "1048576" "damagemodel" "0" "damagecap" "0" "damage" "999999999" "StartDisabled" "1" "spawnflags" "1" } logic_relay { "targetname" "nuke_launch" "OnTrigger" "blualive_safety_timer,CancelPending,,0,-1" "OnTrigger" "fade1,Fade,,0,-1" "OnTrigger" "missile,PlaySound,,0,-1" "OnTrigger" "punch,ViewPunch,,0,-1" "OnTrigger" "player,igniteplayer,,0,1" "OnTrigger" "nuke_flash,Start,,0,-1" "OnTrigger" "shakeit,StartShake,,0,-1" "OnTrigger" "boom,Start,,0.25,-1" "OnTrigger" "ded,Enable,,0.25,-1" "OnTrigger" "obj_dispenser,RemoveHealth,5000,0.25,-1" "OnTrigger" "obj_sentrygun,RemoveHealth,5000,0.25,-1" "OnTrigger" "obj_teleporter,RemoveHealth,5000,0.25,-1" "OnTrigger" "explosion_prop,SetAnimation,boom,0.25,-1" "OnTrigger" "fix_viewcontrol*,CancelPending,,0,-1" "OnTrigger" "explosion_cutscene,$EnableAll,,0.5,-1" "OnTrigger" "wav_nuke,PlaySound,,0,-1" "OnTrigger" "fade2,Fade,,1,-1" "OnTrigger" "nuke_particle,Start,,1,-1" "OnTrigger" "wav_nuke_ambient,PlaySound,,1.5,-1" } } textualtimer // thanks lite { OnSpawnOutput { Param 9 // change the value for minutes Target minutehand Action SetValue } OnSpawnOutput { Param 60 // change the value for seconds Target secondhand Action SetValue } logic_relay { "targetname" "loserelay" "startdisabled" "1" "ontrigger" "rel_nuke_effects,Trigger,,0,-1" "ontrigger" "nuke_launch,Trigger,,1,-1" "ontrigger" "bots_win_red,RoundWin,,2.5,-1" "ontrigger" "realtimer,cancelpending,,2.5,-1" "onspawn" "wave_start_relay,addoutput,ontrigger realtimer:trigger::0:-1,0,-1" "onspawn" "wave_finished_relay,addoutput,ontrigger realtimer:cancelpending::0:-1,0,-1" "onspawn" "wave_finished_relay,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" "2" "spawnflags" "1" "x" "-1" "y" "0.2" } logic_relay { "targetname" "realtimer" "spawnflags" "2" "ontrigger" "timerformat,$format,,0.01,-1" "ontrigger" "secondhand,subtract,1,0,-1" "ontrigger" "!self,trigger,,1,-1" } logic_relay { "targetname" "timer_loss_relay" "spawnflags" "2" "ontrigger" "timerformat,$format,,0.01,-1" "ontrigger" "minutehand,subtract,1,1,-1" } logic_relay { "targetname" "red_tank_deploy_relay" "ontrigger" "loserelay,Enable,,0,-1" "ontrigger" "realtimer,CancelPending,,0,-1" "ontrigger" "nuke_launch,Trigger,,0,-1" "ontrigger" "bots_win_red,RoundWin,,0,-1" } logic_relay { "targetname" "8minutetimer" "ontrigger" "minutehand,SetValue,7,0,-1" "ontrigger" "secondhand,SetValue,60,0,-1" } logic_relay { "targetname" "7minutetimer" "ontrigger" "minutehand,SetValue,6,0,-1" "ontrigger" "secondhand,SetValue,60,0,-1" } logic_relay { "targetname" "5minute30timer" "ontrigger" "minutehand,SetValue,5,0,-1" "ontrigger" "secondhand,SetValue,30,0,-1" } logic_relay { "targetname" "pause_timer" "ontrigger" "realtimer,cancelpending,,0,-1" "ontrigger" "loserelay,cancelpending,,0,-1" } logic_relay { "targetname" "resume_timer" "ontrigger" "realtimer,trigger,,0,-1" } } SpawnSentry { NoFixUp 1 obj_sentrygun { "targetname" "turret2" "origin" "0 0 0" "teamnum" "2" "spawnflags" "10" "SolidToPlayer" "1" "defaultupgrade" "1" } OnSpawnOutput { Target "turret2" Action "sethealth" Param 1984 } OnSpawnOutput { Target "turret2" Action "$setmodeloverride" Param "models/buildables/sentry2_uber.mdl" } } Combo_Pyro { NoFixup 1 logic_relay { "targetname" "combo_primary_to_secondary" "spawnflags" "2" "OnTrigger" "!self,EnableRefire,,0,-1" "OnTrigger" "!activator,$RemoveItemAttribute,fire input on hit|0,0,-1" "OnTrigger" "!activator,$WeaponSwitchSlot,1,0,-1" "OnTrigger" "!activator,$AddPlayerAttribute,disable weapon switch|1,0.01,-1" "OnTrigger" "!activator,$RemovePlayerAttribute,disable weapon switch,0.6,-1" "OnTrigger" "!activator,$WeaponSwitchSlot,0,0.61,-1" "OnTrigger" "!activator,$AddItemAttribute,fire input on hit|combo_primary_to_secondary^Trigger^|0,0.62,-1" } logic_relay { "targetname" "combo_primary_to_secondary_longhold" "spawnflags" "2" "OnTrigger" "!self,EnableRefire,,0,-1" "OnTrigger" "!activator,$RemoveItemAttribute,fire input on hit|0,0,-1" "OnTrigger" "!activator,$WeaponSwitchSlot,1,0,-1" "OnTrigger" "!activator,$AddPlayerAttribute,disable weapon switch|1,0.01,-1" "OnTrigger" "!activator,$RemovePlayerAttribute,disable weapon switch,1.5,-1" "OnTrigger" "!activator,$WeaponSwitchSlot,0,1.51,-1" "OnTrigger" "!activator,$AddItemAttribute,fire input on hit|combo_primary_to_secondary_longhold^Trigger^|0,1.52,-1" } } Hatchblocker { NoFixup 1 func_forcefield { "targetname" "hatch_forcefield" "origin" "-136 -3720.01 96.01" "TeamNum" "2" // blu "renderamt" "255" "rendercolor" "255 255 255" "renderfx" "0" "rendermode" "0" "disablereceiveshadows" "0" "mins" "-136 -152 -56" "maxs" "136 152 56" } prop_dynamic { "angles" "0 0 0" "fademindist" "-1" "fadescale" "1" "MaxAnimTime" "10" "MinAnimTime" "5" "model" "models/props_mvm/hatch_shield.mdl" "modelscale" "1.0" "renderamt" "255" "rendercolor" "255 255 255" "skin" "0" "solid" "0" "spawnflags" "0" "targetname" "hatchshield" "origin" "-132 -3720 48" } training_annotation { "display_text" "Deploy the Bomb!" "lifetime" "5" "origin" "-132 -3720 48" "targetname" "annotation_deploy" } training_annotation { "display_text" "Deploy the Bomb!" "lifetime" "5" "origin" "-132 -3720 48" "targetname" "annotation_deploy" } logic_relay { "targetname" "unblockhatch" "OnTrigger" "hatchshield,SetAnimation,disable,0,-1" "OnTrigger" "hatchshield,Disable,,1,-1" "OnTrigger" "hatch_forcefield,Disable,,0,-1" "OnTrigger" "annotation_deploy,Show,,0,-1" } } BotPusher // fixes bots getting stuck in weird places { NoFixup 1 trigger_push { "alternateticksfix" "0" "origin" "608 6820 674.44" "pushdir" "0 0 0" "spawnflags" "1" "filtername" "filter_isbot" "mins" "-216 -268 -42" "maxs" "216 268 42" "speed" "500" "StartDisabled" "0" "targetname" "bot_pusher" } trigger_push { "alternateticksfix" "0" "origin" "364 5532 508" "pushdir" "0 0 0" "spawnflags" "1" "filtername" "filter_isbot" "mins" "-92 -132 -76" "maxs" "92 2132 76" "speed" "500" "StartDisabled" "0" "targetname" "bot_pusher" } trigger_push { "alternateticksfix" "0" "origin" "-996 6712 704" "pushdir" "0 0 0" "spawnflags" "1" "filtername" "filter_isbot" "mins" "-181 -120 -32" "maxs" "181 120 32" "speed" "500" "StartDisabled" "0" "targetname" "bot_pusher" } trigger_push { "alternateticksfix" "0" "origin" "-1192 1768 136" "pushdir" "0 90 0" "spawnflags" "1" "filtername" "filter_isbot" "mins" "-144 -16 -104" "maxs" "144 16 104" "speed" "500" "StartDisabled" "0" "targetname" "bot_pusher" } // trigger_push // { // "alternateticksfix" "0" // "origin" "160 6020 427" // "pushdir" "0 270 0" // "spawnflags" "1" // "filtername" "filter_isbot" // "mins" "-1296 -692 -307" // "maxs" "1296 692 307" // "speed" "500" // "StartDisabled" "0" // "targetname" "get_ur_ass_out_of_spawn" // } trigger_push { "alternateticksfix" "0" "origin" "-940 5008 419.5" "pushdir" "0 0 0" "spawnflags" "1" "filtername" "filter_isbot" "mins" "-260 -152 -12.5" "maxs" "260 152 12.5" "speed" "500" "StartDisabled" "0" "targetname" "get_ur_ass_out_of_spawn" } trigger_add_or_remove_tf_player_attributes { "add_or_remove" "0" "attribute_name" "cannot pick up intelligence" "duration" "999" "filtername" "filter_notbot" "mins" "-8000 -8000 -8000" "maxs" "8000 8000 8000" "origin" "0 0 0" "spawnflags" "1" "StartDisabled" "1" "value" "1.0" "targetname" "nobombpickup_players" } $filter_sendprop { "targetname" "filter_isbot" "$name" "m_bIsABot" "$value" "1" } $filter_sendprop { "targetname" "filter_notbot" "$name" "m_bIsABot" "$value" "0" } } tankreddrill { logic_relay { "onspawn" "!parent,addoutput,onuser4 @c@!self:fireuser1::0:-1,0,-1" } prop_dynamic { "targetname" "tank_drill" "model" "models/bots/boss_bot/tank_red_drill.mdl" "defaultanim" "drill_spin" "onuser1" "!self,setanimation,drill_deploy,0,-1" "onuser1" "!self,setdefaultanimation,drill_deploy_idle,0.1,-1" } trigger_brush { "targetname" "drill_trap" "origin" "182 0 86" "mins" "0 -25 -50" "maxs" "50 25 30" "onuser1" "!self,disable,,0,-1" } trigger_multiple { "targetname" "drill_hurt" "origin" "182 0 86" "mins" "-50 -40 -50" "maxs" "50 40 50" "spawnflags" "1" "filtername" "filter_blueteam" "ontrigger" "driller,SetSpeed,25,0,-1" "ontrigger" "!activator,bleedplayer,1,0,-1" "ontrigger" "!activator,$takedamage,25,0,-1" "ontrigger" "!activator,$takedamage,25,0.25,-1" "ontrigger" "!activator,$takedamage,25,0.50,-1" "ontrigger" "!activator,$takedamage,25,0.75,-1" "ontrigger" "drill,Pitch,100,0,-1" "ontrigger" "drill2,Pitch,100,0.25,-1" "ontrigger" "drill3,Pitch,100,0.50,-1" "ontrigger" "drill4,Pitch,100,0.75,-1" "onendtouch" "driller,SetSpeed,75,0,-1" "wait" "0.1" "onuser1" "!self,disable,,0,-1" } ambient_generic { "targetname" "drill" "message" "ambient/grinder/grinderbot_01.wav" "health" "10" "pitch" "100" "pitchstart" "100" "radius" "5000" "spawnflags" "17" "sourceentityname" "!parent" "onuser1" "!self,stopsound,,0,-1" } ambient_generic { "targetname" "drill2" "message" "ambient/grinder/grinderbot_02.wav" "health" "10" "pitch" "100" "pitchstart" "100" "radius" "5000" "spawnflags" "17" "sourceentityname" "!parent" "onuser1" "!self,stopsound,,0,-1" } ambient_generic { "targetname" "drill3" "message" "ambient/grinder/grinderbot_03.wav" "health" "10" "pitch" "100" "pitchstart" "100" "radius" "5000" "spawnflags" "17" "sourceentityname" "!parent" "onuser1" "!self,stopsound,,0,-1" } ambient_generic { "targetname" "drill4" "message" "mvm/physics/robo_impact_hard_05.wav" "health" "10" "pitch" "100" "pitchstart" "100" "radius" "5000" "spawnflags" "17" "sourceentityname" "!parent" "onuser1" "!self,stopsound,,0,-1" } ambient_generic { "targetname" "drill_sound" "message" "ambient/sawblade.wav" "health" "10" "pitch" "60" "pitchstart" "60" "radius" "5000" "sourceentityname" "!parent" "onuser1" "!self,stopsound,,0,-1" } ambient_generic { "targetname" "drill_sound" "message" "ambient/sawblade.wav" "health" "10" "pitch" "60" "pitchstart" "60" "radius" "5000" "sourceentityname" "!parent" "onuser1" "!self,stopsound,,0,-1" } } HealPacks { item_healthkit_full { "angles" "0 0 0" "AutoMaterialize" "1" "fademindist" "-1" "origin" "-1140 4320 56.2694" } item_healthkit_medium { "angles" "0 0 0" "AutoMaterialize" "1" "fademindist" "-1" "origin" "984 5200 56.245" } item_healthkit_medium { "angles" "0 0 0" "AutoMaterialize" "1" "fademindist" "-1" "origin" "-108 4028 66.1674" } } PowerCores { NoFixup 1 OnParentKilledOutput { Target "powercore" Action "$SetProp$m_bGlowEnabled" Delay 0.00 Param "1" } OnParentKilledOutput //kill players after the carrier was dead { Target "enable_powercore" Action Trigger Delay 0.00 Param 1 } logic_relay { "targetname" "enable_powercore" "OnTrigger" "powercore,Enable,0,0,-1" "OnTrigger" "pcoretrigger,Enable,0,0,-1" "OnTrigger" "!self,Kill,0,0,-1" //"OnTrigger" "!self,Kill,0,0,-1" } prop_dynamic { "angles" "0 0 0" "DefaultAnim" "spin" "fademindist" "-1" "fadescale" "1" "MaxAnimTime" "10" "MinAnimTime" "5" "model" "models/bots/bot_worker/bot_worker_powercore.mdl" "modelscale" "1.3" "renderamt" "255" "rendercolor" "255 255 255" "rendermode" "0" "StartDisabled" "1" "skin" "1" "solid" "0" "targetname" "powercore" } trigger_multiple { "filtername" "filter_blueteam" "mins" "-20 -20 -20" "maxs" "20 20 20" "spawnflags" "1" "StartDisabled" "1" "targetname" "pcoretrigger" "wait" "1" "OnStartTouchAll" "!self,Kill,,0.1,-1" "OnStartTouchAll" "powercore,Disable,,0,-1" "OnStartTouchAll" "player,$AddCurrency,500,0,-1" } } amplifier_test // logic by yaki - WIP { NoFixup 1 OnSpawnOutput { Target "dispenser_redeploy_branch" Action "SetValueTest" Param "$$=int(!activator.m_bBuilding)" } logic_branch { "targetname" "dispenser_redeploy_branch" "OnTrue" "!caller,Kill,,0,1" "OnFalse" "!caller,Kill,,0,1" "OnFalse" "rafmod_filter_obj_amp_building_built,Kill,,0,1" "OnFalse" "rafmod_obj_amp_rot,Kill,,0,1" "OnFalse" "rafmod_obj_amp_find_player,Kill,,0,1" "OnFalse" "rafmod_filter_obj_amp_has_metal,Kill,,0,1" "OnFalse" "rafmod_filter_obj_amp_can_dispense,Kill,,0,1" } OnSpawnOutput { Target "!activator" Action "Show" } OnSpawnOutput { Target "!activator" Action "SetModelScale" Param "1" } OnSpawnOutput { Target "!activator" Action "$SetModel" Param "models/buildables/amplifier_test/amplifier.mdl" } OnSpawnOutput { Target "amp_dispenser_relay" Action "Trigger" } logic_relay { "targetname" "amp_dispenser_relay" "spawnflags" "1" "OnTrigger" "!activator,$SetProp$m_bMiniBuilding,0,0,1" "OnTrigger" "!activator,$SetProp$m_iUpgradeMetal,99,0,1" //how much metal is in to upgrade "OnTrigger" "!activator,$SetProp$m_iUpgradeMetalRequired,100,0,1" //how much metal threshold required to upgrade to next level "OnTrigger" "!activator,$SetProp$m_iAmmoMetal,100,0,1" "OnTrigger" "!activator,$SetProp$m_iHighestUpgradeLevel,1,0,1" //denotes what level it's already at, akin to defaultupgrade "OnTrigger" "!activator,AddOutput,maxs 20 20 18,0,1" } OnSpawnOutput { Target "vgui_screen" Action "Kill" } $filter_sendprop { "targetname" "rafmod_filter_obj_amp_building_built" "$name" "m_bBuilding" "$value" "0" "$compare" "equal" } OnSpawnOutput { Target "rafmod_obj_amp_rot" Action "SetParent" Param "!activator" } OnSpawnOutput { Target "rafmod_obj_amp_rot" Action "SetParentAttachment" Param "heal_origin" Delay 0.01 } OnSpawnOutput { Target "rafmod_obj_amp_rot" Action "Open" } func_door { "targetname" "rafmod_obj_amp_rot" "mins" "-5 -5 -5" "maxs" "5 5 5" "movedir" "-90 0 0" "spawnflags" "4104" "speed" "0.1" "wait" "0.01" "OnFullyClosed" "!self,Open,,0,-1" } trigger_multiple { "filtername" "rafmod_filter_obj_amp_building_built" "parentname" "rafmod_obj_amp_rot" "mins" "-5 -5 -5" "maxs" "5 5 5" "spawnflags" "64" "wait" "0.01" //constant detection "OnTrigger" "!activator,$SetModel,models/buildables/amplifier_test/amplifier.mdl,0,1" //replaces model with amp "OnTrigger" "!activator,AddOutput,maxs 20 20 18,0.01,1" //bounding box size "OnTrigger" "!activator,SetModelScale,1,0.1,1" //bounding box size "OnTrigger" "!caller,Kill,,0,1" "OnTrigger" "rafmod_obj_amp_find_player,Enable,,0,1" } trigger_add_tf_player_condition { "targetname" "rafmod_obj_amp_find_player" "filtername" "rafmod_filter_player" "spawnflags" "1" "condition" "11" "duration" "-1" "StartDisabled" "1" "mins" "-300 -300 -300" "maxs" "300 300 300" } $filter_sendprop { "targetname" "rafmod_filter_obj_amp_has_metal" "$name" "m_iAmmoMetal" "$value" "0" "$compare" "equal" "Negated" "1" } } PowerCoreLarge { NoFixUp 1 item_teamflag { "angles" "0 180 0" "flag_icon" "../hud/objectives_flagpanel_carried" "flag_model" "models/props_moonbase/powersupply_flag.mdl" "flag_paper" "player_intel_papertrail" "flag_trail" "flagtrail" "GameType" "1" "NeutralType" "1" "ReturnBetweenWaves" "1" "ReturnTime" "600000" "skin" "1" "targetname" "powercore_flag" "TeamNum" "2" "trail_effect" "1" "OnDrop" "!self,SetTeam,3,0,-1" "OnDrop" "!self,Skin,1,0,-1" } } wave1_logic { NoFixup 1 OnSpawnOutput // doesn't work lol { Target "soldierprop" Action "$SetProp$m_bGlowEnabled" Delay 0 Param "1" } tf_glow // use as workaround { "targetname" "soldierglow" "GlowColor" "88 133 162 255" "Mode" "2" "target" "soldierprop" } // OnSpawnOutput // { // Target signchat0 // Action Show // } // training_annotation // { // "targetname" "signchat0" // "display_text" "Bring the batteries to the soldier!" // "lifetime" "4" // "origin" "1072 4696 64.0033" // } point_worldtext { "angles" "-0 0 0" "color" "23 38 233" "message" "Deliver the batteries here!" "targetname" "hint1" "textsize" "10" "origin" "1008 4760 91.527" } prop_dynamic { "angles" "0 180 0" "DefaultAnim" "PRIMARY_stun_middle" "disableshadows" "1" "fademindist" "-1" "fadescale" "1" "MaxAnimTime" "10" "MinAnimTime" "5" "model" "models/bots/soldier_boss/bot_soldier_boss.mdl" "modelscale" "1.75" "renderamt" "255" "rendercolor" "255 255 255" "skin" "1" "solid" "0" "targetname" "soldierprop" "origin" "1072 4696 64.0033" } prop_dynamic_ornament { "angles" "0 0 0" "fademindist" "-1" "fadescale" "1" "InitialOwner" "soldierprop" "MaxAnimTime" "10" "MinAnimTime" "5" "model" "models/workshop/player/items/soldier/hw2013_jupiter_jumpers/hw2013_jupiter_jumpers.mdl" "modelscale" "1.0" "renderamt" "255" "rendercolor" "255 255 255" "skin" "1" "targetname" "decor1" } prop_dynamic_ornament { "angles" "0 0 0" "fademindist" "-1" "fadescale" "1" "InitialOwner" "soldierprop" "MaxAnimTime" "10" "MinAnimTime" "5" "model" "models/workshop/player/items/soldier/hw2013_galactic_gauntlets/hw2013_galactic_gauntlets.mdl" "modelscale" "1.0" "renderamt" "255" "rendercolor" "255 255 255" "skin" "1" "targetname" "decor2" } prop_dynamic_ornament { "angles" "0 0 0" "fademindist" "-1" "fadescale" "1" "InitialOwner" "soldierprop" "MaxAnimTime" "10" "MinAnimTime" "5" "model" "models/workshop/player/items/soldier/hw2013_rocket_ranger/hw2013_rocket_ranger.mdl" "modelscale" "1.0" "renderamt" "255" "rendercolor" "255 255 255" "skin" "1" "targetname" "decor3" } prop_dynamic_ornament { "angles" "0 0 0" "fademindist" "-1" "fadescale" "1" "InitialOwner" "soldierprop" "MaxAnimTime" "10" "MinAnimTime" "5" "model" "models/workshop/weapons/c_models/c_battalion_buffpack/c_battalion_buffpack.mdl" "modelscale" "1.0" "renderamt" "255" "rendercolor" "255 255 255" "skin" "1" "targetname" "decor4" } prop_dynamic { "angles" "0 0 0" "fademindist" "-1" "fadescale" "1" "MaxAnimTime" "10" "MinAnimTime" "5" "model" "models/props_gameplay/cap_point_base.mdl" "modelscale" "1.0" "renderamt" "255" "rendercolor" "255 255 255" "skin" "2" "solid" "6" "targetname" "soldierbase" "origin" "1064 4700 56.0021" } filter_tf_bot_has_tag { "Negated" "Allow entities that match criteria" "require_all_tags" "1" "tags" "bomb_fella" "targetname" "filter_bombguy" } trigger_teleport { "filtername" "filter_bombguy" "origin" "133 7051.5 823.5" "spawnflags" "1" "StartDisabled" "1" "mins" "-1629 -500.5 -135.5" "maxs" "1629 500.5 135.5" "target" "teledest1" "targetname" "carrier_teleport" } info_teleport_destination { "angles" "0 180 0" "targetname" "teledest1" "origin" "1072 4696 64.0033" } math_counter { "startvalue" "0" "min" "0" "max" "5" "targetname" "count_parts" "OnHitMax" "carrier_teleport,Enable,,0,-1" "OnHitMax" "spawnbot_bombguy,Enable,,0,-1" "OnHitMax" "carrier_teleport,Disable,,0.1,-1" "OnHitMax" "soldierprop,Disable,,0,-1" "OnHitMax" "decor*,Disable,,0,-1" "OnHitMax" "parts_capturer,Disable,,0,-1" "OnHitMax" "bomb_singlemode,Enable,,0,-1" "OnHitMax" "powercore_flag*,Disable,,0,-1" "OnHitMax" "resume_timer,Trigger,,0,-1" "OnHitMax" "teledest1,SetParent,bomb_singlemode,0.1,-1" "OnHitMax" "capturezone_blue,Enable,,0,-1" "OnHitMax" "nobombpickup_players,Enable,,0,-1" "OnHitMax" "hint1,Disable,,0,-1" } func_capturezone { "targetname" "parts_capturer" //note that with a func_capturezone, if a TFBot AI captures the flag inside this, it will result in blu team winning even if there are no outputs "mins" "-92 -92 -92" //mins and maxs are keyvalues that determine the size/volume of the entity brush in hammer units, these are defined as two opposite corners so you can only create cubes and prisms, the numbers can be asymmetrical however mins must be lower than maxs, each number represents the hammer unit distance from the origin point in terms of "X Y Z" coordinates "maxs" "92 92 92" "TeamNum" "0" //changing this number affects which team can capture, 0 for neutral (both teams can cap), 1 for spectator (same as 0), 2 for red and 3 for blue "spawnflags" "1" "origin" "1072 4696 64.0033" ////////////////////////////////////////////editable outputs//////////////////////////////////////////// "OnCapture" "count_parts,Add,1,0,-1" "OnCapture" "player,$DisplayTextCenter,Power core successfully delivered,0,-1" "OnCapture" "power_deliver_success,PlaySound,,0,-1" } ambient_generic { "health" "10" "message" "weapons/sapper_removed.wav" "pitch" "100" "pitchstart" "100" "radius" "1250" "SourceEntityName" "soldierprop" "spawnflags" "48" "targetname" "power_deliver_success" "origin" "1032 4744 105.547" } logic_relay { "targetname" "wave1_init" "OnTrigger" "bomb_singlemode,Disable,,0,-1" "OnTrigger" "pause_timer,Trigger,,0,-1" } } NoKnifeBombPickup // spy stuff - royal { OnSpawnOutput { Target "setup" Action "Trigger" Delay 0 } OnSpawnOutput { Target "compare_loop" Action "Trigger" Delay 0.01 } logic_relay { "targetname" "setup" //m_hMyWeapons$ //in this case 1 is melee "OnTrigger" "@e@m_hMyWeapons$1@!activator,$GetEntIndex,compare_current_weapon|$SetVar$desiredEntIndex|-1,0,-1" } logic_relay { "targetname" "compare_loop" "spawnflags" "2" "OnTrigger" "@e@m_hActiveWeapon@!activator,$GetEntIndex,compare_current_weapon|$FireUser5|-1,0,-1" "OnTrigger" "!self,Trigger,,0.1,-1" } logic_relay { "targetname" "compare_current_weapon" "spawnflags" "2" "$OnUser5" "compare_current_weapon,$SetVar$inputHolder,,0,-1" //check if current weapon is desired slot "$OnUser5" "compare_result,InValue,$$=?(compare_current_weapon.desiredEntIndex == compare_current_weapon.inputHolder, 1, 0),0.01,-1" } logic_case { "targetname" "compare_result" "case01" "1" //true "case02" "0" //false //is not on slot "OnCase02" "!activator,$RemoveItemAttribute,cannot pick up intelligence|2,0,-1" //is on slot "OnCase01" "!activator,$AddItemAttribute,cannot pick up intelligence|1|2,0,-1" } } Engy_Dudebro_Logic //engineer stuff - royal { NoFixup 1 logic_relay { "targetname" "switch_to_sentry_mode" "spawnflags" "2" "OnTrigger" "!self,EnableRefire,,0,-1" "OnTrigger" "!activator,$WeaponSwitchSlot,5,0,-1" "OnTrigger" "!activator,$AddPlayerAttribute,disable weapon switch|1,0.01,-1" } logic_relay { "targetname" "switch_to_shotgun_mode" "spawnflags" "2" "OnTrigger" "!self,EnableRefire,,0,-1" "OnTrigger" "!activator,$RemovePlayerAttribute,disable weapon switch,0,-1" "OnTrigger" "!activator,$WeaponSwitchSlot,0,0.1,-1" } } musick { NoFixup 1 ambient_generic { "targetname" "w6_music1" "message" "#yuca/solid_state_scouter.mp3" "health" "10" "radius" "99999" "spawnflags" "49" } logic_relay { "targetname" "sss_beaton" "OnTrigger" "w6_music1,PlaySound,,0,-1" } logic_relay { "targetname" "sss_beatoff" "OnTrigger" "w6_music1,StopSound,,0,-1" } } autogun { NoFixUp 1 math_counter { "targetname" "autogun_counter" "startvalue" "5" "min" "0" "max" "5" "OnHitMin" "hatchshield,SetAnimation,disable,0,-1" "OnHitMin" "hatchshield,Disable,,1,-1" "OnHitMin" "hatch_forcefield,Disable,,0,-1" "OnHitMin" "item_teamflag,Enable,,0,-1" "OnHitMin" "boss_deploy_relay,Trigger,,1.5,-1" } logic_relay { "targetname" "autogun_relay1" "OnTrigger" "autogun_counter,Subtract,1,0,-1" "OnTrigger" "genbot1*,$Suicide,,0,-1" "OnSpawn" "autogun_counter,SetValueNoFire,5,0.01,-1" } logic_relay { "targetname" "autogun_relay2" "OnTrigger" "autogun_counter,Subtract,1,0,-1" "OnTrigger" "genbot2*,$Suicide,,0,-1" "OnSpawn" "autogun_counter,SetValueNoFire,5,0.01,-1" } logic_relay { "targetname" "autogun_relay3" "OnTrigger" "autogun_counter,Subtract,1,0,-1" "OnTrigger" "genbot3*,$Suicide,,0,-1" "OnSpawn" "autogun_counter,SetValueNoFire,5,0.01,-1" } logic_relay { "targetname" "autogun_relay4" "OnTrigger" "autogun_counter,Subtract,1,0,-1" "OnTrigger" "genbot4*,$Suicide,,0,-1" "OnSpawn" "autogun_counter,SetValueNoFire,5,0.01,-1" } logic_relay { "targetname" "autogun_relay5" "OnTrigger" "autogun_counter,Subtract,1,0,-1" "OnTrigger" "genbot5*,$Suicide,,0,-1" "OnSpawn" "autogun_counter,SetValueNoFire,5,0.01,-1" } } buff_defense { OnDestroyed { Target "defence_trigger" Action Disable } OnDestroyed { Target "genbot1" Action SetHealth Param "0" } trigger_add_tf_player_condition { "targetname" "defence_trigger" "filtername" "filter_redteam" "spawnflags" "1" "condition" "26" "duration" "1" "mins" "-300 -300 -300" "maxs" "300 300 300" } logic_timer { "targetname" "defence_trigger_timer" "RefireTime" "0.5" "spawnflags" "0" "UseRandomTime" "0" "OnTimer" "defence_trigger,Toggle,,0,-1" "OnTimer" "defence_trigger,Toggle,,0.01,-1" } logic_timer { "targetname" "particle_timer" "RefireTime" "2" "spawnflags" "0" "UseRandomTime" "0" "OnTimer" "buff_indicator,Start,,0,-1" "OnTimer" "buff_indicator,Stop,,1,-1" } info_particle_system { "targetname" "buff_indicator" "origin" "0 0 -8" "effect_name" "powerup_supernova_explode_red" } info_target { "targetname" "gen_target1" } RemoveIfKilled defence_trigger_timer RemoveIfKilled particle_timer } buff_mcrits { OnDestroyed { Target "crits_trigger" Action Disable } OnDestroyed { Target "genbot2" Action SetHealth Param "0" } trigger_add_tf_player_condition { "targetname" "crits_trigger" "filtername" "filter_redteam" "spawnflags" "1" "condition" "16" "duration" "1" "mins" "-300 -300 -300" "maxs" "300 300 300" } logic_timer { "targetname" "crits_trigger_timer" "RefireTime" "0.5" "spawnflags" "0" "UseRandomTime" "0" "OnTimer" "crits_trigger,Toggle,,0,-1" "OnTimer" "crits_trigger,Toggle,,0.01,-1" } logic_timer { "targetname" "particle_timer" "RefireTime" "2" "spawnflags" "0" "UseRandomTime" "0" "OnTimer" "buff_indicator,Start,,0,-1" "OnTimer" "buff_indicator,Stop,,1,-1" } info_particle_system { "targetname" "buff_indicator" "origin" "0 0 -8" "effect_name" "powerup_supernova_explode_red" } info_target { "targetname" "gen_target2" } RemoveIfKilled crits_trigger_timer RemoveIfKilled particle_timer } buff_healing { OnDestroyed { Target "healing_trigger" Action Disable } OnDestroyed { Target "genbot3" Action SetHealth Param "0" } trigger_add_tf_player_condition { "targetname" "healing_trigger" "filtername" "filter_redteam" "spawnflags" "1" "condition" "73" "duration" "1" "mins" "-300 -300 -300" "maxs" "300 300 300" } logic_timer { "targetname" "healing_trigger_timer" "RefireTime" "0.5" "spawnflags" "0" "UseRandomTime" "0" "OnTimer" "healing_trigger,Toggle,,0,-1" "OnTimer" "healing_trigger,Toggle,,0.01,-1" } logic_timer { "targetname" "particle_timer" "RefireTime" "2" "spawnflags" "0" "UseRandomTime" "0" "OnTimer" "buff_indicator,Start,,0,-1" "OnTimer" "buff_indicator,Stop,,1,-1" } info_particle_system { "targetname" "buff_indicator" "origin" "0 0 -8" "effect_name" "powerup_supernova_explode_red" } info_target { "targetname" "gen_target3" } RemoveIfKilled healing_trigger_timer RemoveIfKilled particle_timer } buff_king { OnDestroyed { Target "king_trigger" Action Disable } OnDestroyed { Target "genbot4" Action SetHealth Param "0" } trigger_add_tf_player_condition { "targetname" "king_trigger" "filtername" "filter_redteam" "spawnflags" "1" "condition" "109" "duration" "1" "mins" "-300 -300 -300" "maxs" "300 300 300" } logic_timer { "targetname" "king_trigger_timer" "RefireTime" "0.5" "spawnflags" "0" "UseRandomTime" "0" "OnTimer" "king_trigger,Toggle,,0,-1" "OnTimer" "king_trigger,Toggle,,0.01,-1" } logic_timer { "targetname" "particle_timer" "RefireTime" "2" "spawnflags" "0" "UseRandomTime" "0" "OnTimer" "buff_indicator,Start,,0,-1" "OnTimer" "buff_indicator,Stop,,1,-1" } info_particle_system { "targetname" "buff_indicator" "origin" "0 0 -8" "effect_name" "powerup_supernova_explode_red" } info_target { "targetname" "gen_target4" } RemoveIfKilled king_trigger_timer RemoveIfKilled particle_timer } buff_precise { OnDestroyed { Target "precise_trigger" Action Disable } OnDestroyed { Target "genbot5" Action SetHealth Param "0" } trigger_add_tf_player_condition { "targetname" "precise_trigger" "filtername" "filter_redteam" "spawnflags" "1" "condition" "96" "duration" "1" "mins" "-300 -300 -300" "maxs" "300 300 300" } logic_timer { "targetname" "precise_trigger_timer" "RefireTime" "0.5" "spawnflags" "0" "UseRandomTime" "0" "OnTimer" "precise_trigger,Toggle,,0,-1" "OnTimer" "precise_trigger,Toggle,,0.01,-1" } logic_timer { "targetname" "particle_timer" "RefireTime" "2" "spawnflags" "0" "UseRandomTime" "0" "OnTimer" "buff_indicator,Start,,0,-1" "OnTimer" "buff_indicator,Stop,,1,-1" } info_particle_system { "targetname" "buff_indicator" "origin" "0 0 -8" "effect_name" "powerup_supernova_explode_red" } info_target { "targetname" "gen_target5" } RemoveIfKilled precise_trigger_timer RemoveIfKilled particle_timer } givename1 { OnSpawnOutput { Target "!activator" Action AddOutput Param "targetname genbot1" Delay 0.00 } } givename2 { OnSpawnOutput { Target "!activator" Action AddOutput Param "targetname genbot2" Delay 0.00 } } givename3 { OnSpawnOutput { Target "!activator" Action AddOutput Param "targetname genbot3" Delay 0.00 } } givename4 { OnSpawnOutput { Target "!activator" Action AddOutput Param "targetname genbot4" Delay 0.00 } } givename5 { OnSpawnOutput { Target "!activator" Action AddOutput Param "targetname genbot5" Delay 0.00 } } SpawnTele { NoFixup 1 logic_relay // Start with this { "TargetName" "tele_thingy_enable" "OnTrigger" "tele_ambient_thingy,StopSound,,0,-1" "OnTrigger" "tele_thingy,Enable,,15,-1" "OnTrigger" "nobuildhere,Enable,15,-1" "OnTrigger" "tele_prop,SetAnimation,running,15,-1" "OnTrigger" "tele_ambient_thingy,PlaySound,,15,-1" "OnTrigger" "tele_active_thingy,PlaySound,,15,-1" "OnTrigger" "tele_start_thingy,Start,,15,-1" } logic_relay // Ends with this { "TargetName" "tele_thingy_disable" "OnTrigger" "tele_thingy,Disable,,0,-1" "OnTrigger" "tele_prop,SetAnimation,ref,0,-1" "OnTrigger" "tele_ambient_thingy,StopSound,,0,-1" "OnTrigger" "tele_start_thingy,Stop,,0,-1" } prop_dynamic // main area { "targetname" "tele_prop" "angles" "0 0 0" "DefaultAnim" "ref" "disableshadows" "1" "model" "models/buildables/teleporter_light.mdl" "modelscale" "1.0" "skin" "1" "solid" "0" } prop_dynamic // forward { "targetname" "tele_prop" "angles" "0 0 0" "DefaultAnim" "ref" "disableshadows" "1" "model" "models/buildables/teleporter_light.mdl" "modelscale" "1.0" "skin" "1" "solid" "0" } trigger_teleport { "targetname" "tele_thingy" "target" "teleport_here_thingy" "spawnflags" "1" "StartDisabled" "1" "mins" "-32 -32 -32" "maxs" "32 32 32" "OnStartTouchAll" "tele_deliver_thingy,PlaySound,,0,-1" "OnStartTouchAll" "tele_effect_thingy,Start,,0,-1" "OnEndTouchAll" "tele_effect_thingy,Stop,,0.1,-1" "OnStartTouch" "fade_thingy,Fade,,0,-1" // Causes the Fade effect on other players too } func_nobuild { "AllowDispenser" "0" "AllowSentry" "0" "AllowTeleporters" "0" "StartDisabled" "0" "targetname" "nobuildhere" "StartDisabled" "1" "TeamNum" "3" "mins" "-48 -48 -48" "maxs" "48 48 48" } env_fade { "targetname" "fade_thingy" "spawnflags" "5" "rendercolor" "200 200 200" "renderamt" "175" "holdtime" "0.5" "duration" "0.3" } // Entrance info_particle_system { "targetname" "tele_effect_thingy" "angles" "0 0 0" "effect_name" "teleported_blue" "flag_as_weather" "0" "start_active" "0" } info_particle_system { "targetname" "tele_effect_thingy" "angles" "0 0 0" "effect_name" "teleported_flash" "flag_as_weather" "0" "start_active" "0" } info_particle_system { "targetname" "tele_start_thingy" "angles" "0 0 0" "effect_name" "teleporter_blue_entrance_level3" "flag_as_weather" "0" "start_active" "0" } info_particle_system { "targetname" "tele_start_thingy" "angles" "0 0 0" "effect_name" "teleporter_blue_charged_level3" "flag_as_weather" "0" "start_active" "0" } info_particle_system { "targetname" "tele_start_thingy" "angles" "0 0 0" "effect_name" "teleporter_blue_entrance_disc" "flag_as_weather" "0" "start_active" "0" } // Sound ambient_generic { "targetname" "tele_deliver_thingy" "health" "10" "message" "MVM.Robot_Teleporter_Deliver" "pitch" "100" "pitchstart" "100" "radius" "1000" "spawnflags" "48" "sourceentityname" "tele_prop" } ambient_generic { "targetname" "tele_deliver_thingy" "health" "10" "message" "MVM.Robot_Teleporter_Deliver" "pitch" "100" "pitchstart" "100" "radius" "1000" "spawnflags" "48" "sourceentityname" "tele_prop" } ambient_generic { "targetname" "tele_active_thingy" "health" "10" "message" "mvm/mvm_tele_activate.wav" "pitch" "100" "pitchstart" "100" "radius" "99999" "spawnflags" "48" "sourceentityname" "tele_prop" } ambient_generic { "targetname" "tele_ambient_thingy" "health" "10" "message" "Building_Teleporter.SpinLevel3" "pitch" "100" "pitchstart" "100" "radius" "1250" "spawnflags" "16" "sourceentityname" "tele_prop" } ambient_generic { "targetname" "tele_ambient_thingy" "health" "10" "message" "Building_Teleporter.SpinLevel3" "pitch" "100" "pitchstart" "100" "radius" "1250" "spawnflags" "16" "sourceentityname" "tele_prop" } } wave3_logic { NoFixup 1 info_target { "targetname" "player_target1" "origin" "-1762 926 288" } info_target { "targetname" "player_target2" "origin" "-1449 1938 72" } info_target { "targetname" "player_target3" "origin" "-702 -983 288" } info_target { "targetname" "player_target4" "origin" "-131 -3729 -3" } logic_relay { "targetname" "wave3_relay" "OnTrigger" "barrier2_disable,Trigger,,0,-1" "OnTrigger" "item_teamflag,Disable,,0,-1" "OnTrigger" "hatchshield,Disable,,0,-1" "OnTrigger" "hatch_forcefield,Disable,,0,-1" } math_counter { "targetname" "player_counter" "startvalue" "8" "min" "0" "max" "8" "OnHitMin" "bots_win,RoundWin,,1,-1" } logic_relay { "targetname" "player_died_relay" "OnTrigger" "player_counter,Subtract,1,0,-1" "OnSpawn" "player_counter,SetValueNoFire,8,0.01,-1" "OnSpawn" "hudhint,$SetKey$message,OBJECTIVE: Defeat RED mercenaries to win the wave!,0,-1" } info_teleport_destination { "targetname" "teleport_here_thingy" "angles" "0 270 0" "origin" "-1100 6868 698.507" } } payload // inspired by Constant //to my knowledge, implementing the payload hud is currently impossible as the hud can only be instanced on map load, however the control point hud shows up and can still display the number of players pushing the payload { NoFixup 1 prop_dynamic { "classname" "prop_dynamic" "angles" "0 0 0" "DisableBoneFollowers" "0" "disablereceiveshadows" "0" "disableshadows" "1" "ExplodeDamage" "0" "ExplodeRadius" "0" "fademaxdist" "0" "fademindist" "-1" "fadescale" "0" "MaxAnimTime" "10" "MinAnimTime" "5" "model" "models/props_movies/camper/camper.mdl" //you can change the cart model if you know the file name. if you change it, there are four entities that may be misaligned which are the cart_dispenser, cart_flashinglight, cart_spark_left, and cart_spark_right, change the origins of these to "modelscale" "1.0" "parentname" "cart_tracktrain" "PerformanceMode" "0" "pressuredelay" "0" "RandomAnimation" "0" "renderamt" "255" "rendercolor" "255 255 255" "renderfx" "0" "rendermode" "0" "SetBodyGroup" "0" "skin" "0" "solid" "0" "spawnflags" "0" "StartDisabled" "0" "targetname" "van" "origin" "10 0 -10" } prop_dynamic { "angles" "0 0 0" "DefaultAnim" "kart_idle" "disableshadows" "1" "fademindist" "-1" "fadescale" "1" "MaxAnimTime" "10" "MinAnimTime" "5" "model" "models/player/sniper.mdl" "modelscale" "1.0" "parentname" "van" "renderamt" "255" "rendercolor" "255 255 255" "SetBodyGroup" "2" "skin" "1" "solid" "0" "targetname" "wanka" "origin" "14 11 21" } prop_dynamic_ornament { "angles" "0 0 0" "fademindist" "-1" "fadescale" "1" "InitialOwner" "wanka" "MaxAnimTime" "10" "MinAnimTime" "5" "model" "models/workshop/player/items/all_class/hiphunter_hat/hiphunter_hat_sniper.mdl" "modelscale" "1.0" "renderamt" "255" "rendercolor" "255 255 255" "skin" "1" } prop_dynamic { "angles" "0 0 0" "DefaultAnim" "spin" "disableshadows" "1" "fademindist" "-1" "fadescale" "1" "MaxAnimTime" "10" "MinAnimTime" "5" "model" "models/props_gameplay/mvm_gemergency_light.mdl" "modelscale" "1.25" "renderamt" "255" "rendercolor" "255 255 255" "skin" "3" "solid" "0" "targetname" "light" "origin" "-23 1 116" } prop_dynamic { "angles" "0 90 0" "fademindist" "-1" "fadescale" "1" "MaxAnimTime" "10" "MinAnimTime" "5" "model" "models/props_medical/street_sign002.mdl" "modelscale" "1.0" "parentname" "van" "renderamt" "255" "rendercolor" "255 255 255" "skin" "0" "solid" "0" "origin" "-18 49 103.446" } prop_dynamic { "angles" "0 -90 0" "fademindist" "-1" "fadescale" "1" "MaxAnimTime" "10" "MinAnimTime" "5" "model" "models/props_medical/street_sign002.mdl" "modelscale" "1.0" "parentname" "van" "renderamt" "255" "rendercolor" "255 255 255" "skin" "0" "solid" "0" "origin" "-18 -49 103.446" } func_tracktrain { "classname" "func_tracktrain" "bank" "0" "disablereceiveshadows" "0" "disableshadows" "0" "dmg" "10000" "height" "72" //change this number to adjust the height of the paylaod from the ground, if you want people to jump on the payload, it shoudld be 72 units from the ground (this does not always accurately reflect the value shown here) "ManualAccelSpeed" "70" "ManualDecelSpeed" "150" "ManualSpeedChanges" "1" "MoveSound" "Cart.Roll" "MoveSoundMaxPitch" "200" "MoveSoundMaxTime" "0" "MoveSoundMinPitch" "60" "MoveSoundMinTime" "0" "orientationtype" "1" "origin" "0 0 16" "renderamt" "255" "rendercolor" "255 255 255" "renderfx" "0" "rendermode" "0" "spawnflags" "514" "speed" "0" //this makes the cart stationary when it spawns "StartSound" "Cart.RollStart" "startspeed" "90" //change this number to adjust the maximum speed of the payload, actual speed is determined by logic_case "StopSound" "Cart.RollStop" "target" "tank_path_1" //change the FIXME to the name of the path_track node you want to spawn at, different maps will have different names, if you are using a custom tank path you can use the name of the path to make it spawn there "targetname" "cart_tracktrain" "velocitytype" "1" "volume" "10" "wheels" "20" "mins" "-36 -25 -54" "maxs" "52 25 14" } // phys_constraint //this is required, without this entity the model will be disjointed from the payload itself // { // "classname" "phys_constraint" // "angles" "0 270 0" // "attach1" "cart_tracktrain" // "attach2" "van" // "forcelimit" "0" // "spawnflags" "1" // "targetname" "cart_constraint" // "teleportfollowdistance" "0" // "torquelimit" "0" // "origin" "-38 72 -18" // } trigger_capture_area { "classname" "trigger_capture_area" "area_cap_point" "cart_point" "area_time_to_cap" "99999" //this is a very high number so that the control point cant be captured at any point, if it is capped, the payload will not move "parentname" "van" "StartDisabled" "0" "targetname" "cart_area" "team_cancap_2" "0" //this makes it so that red team cannot push the payload "team_cancap_3" "1" "team_numcap_2" "1" //you cant "finish" capturing a payload, so these keyvalues are ineffective "team_numcap_3" "1" "team_spawn_2" "0" "team_spawn_3" "0" "team_startcap_2" "1" //this also is ineffective, as the logic_case entity is used to affect the cart speed depending on how many blu players are on it "team_startcap_3" "1" "OnNumCappersChanged" "cart_remap,InValue,,0,-1" "OnNumCappersChanged" "cart_watcher,SetNumTrainCappers,,0,-1" "mins" "-128 -128 -128" //trigger_capture_area and dispenser_touch_trigger should have the same mins and maxs "maxs" "128 128 128" } dispenser_touch_trigger { "classname" "dispenser_touch_trigger" "parentname" "van" "targetname" "cart_dispenser_trigger" "mins" "-128 -128 -128" //trigger_capture_area and dispenser_touch_trigger should have the same mins and maxs "maxs" "128 128 128" } mapobj_cart_dispenser //spawning the payload in waveschedule will cause the dispenser to explode for some reason { "classname" "mapobj_cart_dispenser" "parentname" "van" "spawnflags" "12" "targetname" "cart_dispenser" "TeamNum" "3" "touch_trigger" "cart_dispenser_trigger" "origin" "-31 -12 56" } info_particle_system { "angles" "0 0 0" "effect_name" "unusual_steaming" "parentname" "van" "targetname" "broken" "origin" "47 27 48" } info_particle_system { "angles" "0 0 0" "effect_name" "unusual_steaming" "parentname" "van" "targetname" "broken" "origin" "80 19 48" } info_particle_system { "angles" "0 0 0" "effect_name" "unusual_steaming" "parentname" "van" "targetname" "broken" "origin" "54 -23 48" } info_particle_system { "angles" "0 0 0" "effect_name" "unusual_steaming" "parentname" "van" "targetname" "broken" "origin" "80 -18 48" } // info_particle_system // { // "classname" "info_particle_system" // "angles" "-80.7088 53.9446 -53.5839" // "cpoint1_parent" "0" // "cpoint2_parent" "0" // "cpoint3_parent" "0" // "cpoint4_parent" "0" // "cpoint5_parent" "0" // "cpoint6_parent" "0" // "cpoint7_parent" "0" // "effect_name" "cart_flashinglight" // "parentname" "cart_tracktrain" // "start_active" "0" // "targetname" "cart_particles" // "origin" "39 5 46" // } env_spark { "classname" "env_spark" "angles" "0 0 0" "Magnitude" "1" "MaxDelay" "0" "parentname" "van" "spawnflags" "0" "targetname" "cart_spark_left" "TrailLength" "2" "origin" "0.080101 14 -36" } env_spark { "classname" "env_spark" "angles" "0 0 0" "Magnitude" "1" "MaxDelay" "0" "parentname" "van" "spawnflags" "0" "targetname" "cart_spark_right" "TrailLength" "2" "origin" "0.080101 -14 -36" } // trigger_hurt // { // "classname" "trigger_hurt" // "damage" "2000000" //if the payload happens to collide with a tank, it will damage the tank for this number, can be set to a higher number to instantly destroy the tank // "damagecap" "20" // "damagemodel" "0" // "damagetype" "16" // "filtername" "cart_filter_noplayers" // "origin" "14.29 0 -20" // "parentname" "cart_tracktrain" // "spawnflags" "1096" // "StartDisabled" "0" // "targetname" "cart_hurt" // "mins" "-4 -24 -34" // "maxs" "4 24 34" // } team_control_point //this is a hidden control point that comes with the payload { //you must have atleast one control point on the map in order for the trigger_capture_area to work, otherwise the payload will not operate in any capacity "classname" "team_control_point" //the purpose of the placeholder control point is set here to enable the trigger_capture_area "angles" "0 0 0" "point_default_owner" "2" "point_group" "0" "point_index" "0" //if you want to have multiple payloads on the map at the same time, make sure to change the index so each control point has a unique index, again having more than eight unique control points will crash the server "point_printname" "payload" "point_start_locked" "0" "point_warn_on_cap" "2" "point_warn_sound" "ControlPoint.CaptureWarn" "random_owner_on_restart" "0" "spawnflags" "14" //this hides the model, disables sounds and disables shadows "StartDisabled" "0" "targetname" "cart_point" "team_bodygroup_0" "3" "team_bodygroup_2" "1" "team_bodygroup_3" "1" "team_icon_0" "sprites/obj_icons/icon_obj_neutral" "team_icon_2" "hud/leaderboard_class_van_lite" "team_icon_3" "hud/leaderboard_class_van_lite" "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_previouspoint_3_0" "cart_point" //this is required so the payload isnt "locked" "team_timedpoints_2" "0" "team_timedpoints_3" "0" "origin" "10 0 -42" } logic_case { "classname" "logic_case" "Case01" "0" //you can add more cases here to raise the maximum number of players that can affect the payload, by default max speed is reached at three players "Case02" "1" //these Case01, Case02, etc... keyvalues represents the outputs sent depending on how many players are pushing the payload at any given time "Case03" "2" "Case04" "3" "targetname" "cart_case" "OnCase01" "payloadtank,SetSpeed,0,0,-1" //change the first number here to adjust the speed per case as a percentage of "startspeed" defined in func_tracktrain, does not go below -1 or above 1, negative numbers roll backwards "OnCase02" "payloadtank,SetSpeed,55,0,-1" "OnCase03" "payloadtank,SetSpeed,77,0,-1" "OnCase04" "payloadtank,SetSpeed,100,0,-1" "OnCase01" "cart_tracktrain,SetSpeedDirAccel,0,0,-1" //change the first number here to adjust the speed per case as a percentage of "startspeed" defined in func_tracktrain, does not go below -1 or above 1, negative numbers roll backwards "OnCase02" "cart_tracktrain,SetSpeedDirAccel,0.55,0,-1" "OnCase03" "cart_tracktrain,SetSpeedDirAccel,0.77,0,-1" "OnCase04" "cart_tracktrain,SetSpeedDirAccel,1.0,0,-1" "OnCase01" "cart_spark_left,StopSpark,,0,-1" "OnCase01" "cart_spark_right,StopSpark,,0,-1" "OnCase02" "cart_spark_right,StopSpark,,0,-1" "OnCase02" "cart_spark_left,StopSpark,,0,-1" "OnCase03" "cart_spark_left,StopSpark,,0,-1" "OnCase03" "cart_spark_right,StopSpark,,0,-1" "OnCase04" "cart_spark_right,StopSpark,,0,-1" "OnCase04" "cart_spark_left,StopSpark,,0,-1" "OnCase01" "cart_particles,Stop,,0,-1" "OnCase02" "cart_particles,Start,,0,-1" "OnCase03" "cart_particles,Start,,0,-1" "OnCase04" "cart_particles,Start,,0,-1" "origin" "10 0 62" } math_remap { "classname" "math_remap" "in1" "0" //make sure you also change the numbers if you introduce more cases in logic_case, in1/out1 represent the minimum amount of players on the cart and out1/out2 represents the maximum "in2" "3" //if you want to raise the maximum amount of players on the cart, you would have to change the keyvalues here and add more cases to logic_case "out1" "0" "out2" "3" "spawnflags" "2" "targetname" "cart_remap" "OutValue" "cart_case,InValue,,0,-1" "origin" "-14 0 62" } filter_activator_class //this filter is used by the trigger_hurt entity to not affect players { "classname" "filter_activator_class" "filterclass" "player" "Negated" "1" "targetname" "cart_filter_noplayers" "origin" "-70 72 -18" } team_control_point_master //this entity is required to enable the control point { "classname" "team_control_point_master" "cpm_restrict_team_cap_win" "2" //probably ineffective "custom_position_x" "0.4" "custom_position_y" "-1" "partial_cap_points_rate" "0" "score_style" "1" "switch_teams" "1" "targetname" "cart_master" "team_base_icon_2" "sprites/obj_icons/icon_base_red" "team_base_icon_3" "sprites/obj_icons/icon_base_blu" "origin" "-62 -40 -10" } team_train_watcher { "classname" "team_train_watcher" "goal_node" "tank_path_1bb" //this should be the final path_track node of the desired track, FIXME by default as different maps will have different names "hud_min_speed_level_1" "1" "hud_min_speed_level_2" "60" "hud_min_speed_level_3" "80" "linked_cp_1" "cart_point" //placeholder control point set here to enable the trigger_capture_area "linked_pathtrack_1" "tank_path_1bb" //set this to the final path_track node, same as goal_node, to prevent the administrator from saying voice lines prematurely "speed_forward_modifier" "1" "start_node" "tank_path_1" //this should be the path_track node of where the payload spawns, FIXME by default as different maps will have different names "targetname" "cart_watcher" "train" "cart_tracktrain" "train_can_recede" "1" //set this to 0 to disable payload rolling backwards, 1 to enable "OnTrainStartRecede" "payloadtank,SetSpeed,-10,0,-1" "OnTrainStartRecede" "cart_tracktrain,SetSpeedDirAccel,-0.1,0,-1" "OnTrainStartRecede" "cart_spark_left,StartSpark,,0,-1" "OnTrainStartRecede" "cart_spark_right,StartSpark,,0,-1" "origin" "-62 -56 -10" } prop_dynamic { "angles" "0 0 0" "disableshadows" "1" "fademindist" "-1" "fadescale" "1" "MaxAnimTime" "10" "MinAnimTime" "5" "model" "models/buildables/sentry_shield.mdl" "modelscale" "1.75" "renderamt" "255" "rendercolor" "255 255 255" "skin" "1" "solid" "0" "StartDisabled" "1" "targetname" "payloadshield" "origin" "-36 -4 -28" } ambient_generic { "targetname" "shielddeployfx" "origin" "10 0 -42" "volstart" "10" "spinup" "0" "spindown" "0" "spawnflags" "48" "radius" "2000" "preset" "0" "pitchstart" "100" "pitch" "100" "message" "weapons/medi_shield_deploy.wav" "lfotype" "0" "lforate" "0" "lfomodvol" "0" "lfomodpitch" "0" "health" "10" "fadeoutsecs" "0" "fadeinsecs" "0" "cspinup" "0" "sourceentityname" "van" } ambient_generic { "targetname" "shielddownfx" "origin" "10 0 -42" "volstart" "10" "spinup" "0" "spindown" "0" "spawnflags" "48" "radius" "2000" "preset" "0" "pitchstart" "100" "pitch" "100" "message" "weapons/medi_shield_retract.wav" "lfotype" "0" "lforate" "0" "lfomodvol" "0" "lfomodpitch" "0" "health" "10" "fadeoutsecs" "0" "fadeinsecs" "0" "cspinup" "0" "sourceentityname" "van" } OnSpawnOutput //very important to keep these three outputs otherwise the payload will not function { Target cart_area Action SetControlPoint Param cart_point } OnSpawnOutput { Target cart_watcher Action RoundActivate } OnSpawnOutput { Target van Action SetParent Param "!activator" } OnSpawnOutput { Target "!activator" Action AddOutput Param "OnHealthBelow40Percent broken:Start::0:-1" } ////////////////////////////////////////////editable output section//////////////////////////////////////////// //note that editing outputs for the payload is very different, as you have to use OnSpawnOutput blocks, and use AddOutputs on specific path_track nodes in order to make things happen OnSpawnOutput { Target tank_path_1e Action AddOutput Param "OnPass !activator:SetSpeed:0:0:-1" } OnSpawnOutput { Target tank_path_1g Action AddOutput Param "OnPass spawnbot_top_front_building:Enable::0:-1" } OnSpawnOutput { Target tank_path_1g Action AddOutput Param "OnPass spawnbot_station:Enable::0:-1" } OnSpawnOutput { Target tank_path_1h Action AddOutput Param "OnPass barrier1_disable:Trigger::0:-1" } OnSpawnOutput { Target tank_path_1h Action AddOutput Param "OnPass checkpoint_base:Skin:2:0:-1" } OnSpawnOutput { Target tank_path_1j Action AddOutput Param "OnPass spawnbot_ruins_topdoor:Enable::0:-1" } OnSpawnOutput { Target tank_path_1n Action AddOutput Param "OnPass spawnbot_pyramid:Enable::0:-1" } OnSpawnOutput { Target tank_path_1r Action AddOutput Param "OnPass spawnbot_ruins_farleft:Enable::0:-1" } OnSpawnOutput { Target tank_path_1t Action AddOutput Param "OnPass spawnbot_belowbridge:Enable::0:-1" } OnSpawnOutput { Target tank_path_1aa Action AddOutput Param "OnPass barrier2_disable:Trigger::0:-1" } OnSpawnOutput { Target tank_path_1bb Action AddOutput Param "OnPass bots_win:RoundWin::0:-1" } } wave4_logic { NoFixup 1 logic_relay { "targetname" "heli_spawn_relay" "OnTrigger" "cart_area,Disable,,0,-1" "OnTrigger" "player,$displaytextcenter,Destroy the helicopter to continue pushing the for-now-invulnerable van!,0,-1" "OnTrigger" "hudhint,$setkey$message,OBJECTIVE: Destroy the helicopter!" "OnTrigger" "payloadtank,SetHealth,1000000,0,-1" "OnTrigger" "payloadshield,Enable,,0,-1" "OnTrigger" "shielddeployfx,PlaySound,,0,-1" } logic_relay { "targetname" "heli_killed_relay" "OnTrigger" "cart_area,Enable,,0,-1" "OnTrigger" "player,$displaytextcenter,The van is now reactivated and able to be damaged! Get pushing!,0,-1" "OnTrigger" "hudhint,$setkey$message,OBJECTIVE: Push the van to the end of the map!,0,-1" "OnTrigger" "payloadtank,SetHealth,30000,0,-1" "OnTrigger" "payloadshield,Disable,,0,-1" "OnTrigger" "shielddownfx,PlaySound,,0,-1" } prop_dynamic { "angles" "0 0 0" "fademindist" "-1" "fadescale" "1" "MaxAnimTime" "10" "MinAnimTime" "5" "model" "models/props_doomsday/cap_point_small.mdl" "modelscale" "1.0" "renderamt" "255" "rendercolor" "255 255 255" "skin" "1" "solid" "0" "targetname" "checkpoint_base" "origin" "-684 2568 64" } } wave6_logic { NoFixup 1 math_counter { "targetname" "player_counter2" "startvalue" "3" "min" "0" "max" "3" "OnHitMin" "barrier1_disable,Trigger,,0,-1" "OnHitMin" "pause_timer,Trigger,,0,-1" "OnHitMin" "spawnbot_pyramid,Enable,,0,-1" "OnHitMin" "spawnbot_ruins*,Enable,,0,-1" } logic_relay { "targetname" "player_died_relay2" "OnTrigger" "player_counter2,Subtract,1,0,-1" "OnSpawn" "player_counter2,SetValueNoFire,3,0.01,-1" } // first point prop_dynamic { "angles" "0 0 0" "fademindist" "-1" "fadescale" "1" "MaxAnimTime" "10" "MinAnimTime" "5" "model" "models/props_gameplay/cap_point_base.mdl" "modelscale" "1.0" "renderamt" "255" "rendercolor" "255 255 255" "skin" "1" "solid" "6" "spawnflags" "0" "targetname" "plate1" "origin" "-84 3584 272" } prop_dynamic { "angles" "-90 0 0" "disableshadows" "1" "fademindist" "-1" "fadescale" "1" "MaxAnimTime" "10" "MinAnimTime" "5" "model" "models/workshop/cases/invasion_case/invasion_key.mdl" "modelscale" "3.0" "parentname" "holokey1_rot" "renderamt" "255" "rendercolor" "255 255 255" "renderfx" "16" "skin" "0" "solid" "0" "targetname" "holokey1" "origin" "-84 3592 360" } func_rotating { "angles" "0 0 0" "disablereceiveshadows" "0" "disableshadows" "0" "dmg" "0" "fanfriction" "20" "maxspeed" "48" "message" "ambient/atmosphere/tone_alley.wav" "origin" "-88 3592 373.4" "renderamt" "255" "rendercolor" "255 255 255" "renderfx" "0" "rendermode" "0" "solidbsp" "0" "spawnflags" "65" "targetname" "holokey1_rot" "volume" "10" } func_button { "disablereceiveshadows" "0" "health" "0" "lip" "0" "locked_sentence" "0" "locked_sound" "0" "movedir" "90 0 0" "mins" "-56 -56 -56" "maxs" "56 56 0" "origin" "-84 3588 292" "renderamt" "255" "rendercolor" "255 255 255" "renderfx" "0" "rendermode" "10" "sounds" "0" "spawnflags" "17952" "speed" "555" "targetname" "challenge_button1" "unlocked_sentence" "0" "unlocked_sound" "0" "wait" "-1" "OnPressed" "spawnbot_tunnel1,Enable,,0,-1" "OnPressed" "spawnbot_tunnel2,Enable,,0,-1" "OnPressed" "spawnbot_station,Enable,,0,-1" "OnPressed" "spawnbot_front_backarea,Enable,,0,-1" "OnPressed" "holokey1_rot,DisableShadow,,0,-1" "OnPressed" "holokey1,Disable,,0,-1" "OnPressed" "msg1,Disable,,0,-1" "OnPressed" "resume_timer,Trigger,,0,-1" "OnPressed" "hudhint,$SetKey$message,Defeat all opponents within 5 minutes and 30 seconds,0,-1" } trigger_multiple { "filtername" "filter_blueteam" "origin" "-108 3600 399.88" "spawnflags" "1" "mins" "-128 -128 -128" "maxs" "128 128 128" "StartDisabled" "0" "targetname" "msg1" "wait" "1" "OnStartTouchAll" "!activator,$DisplayTextCenter,Press Action to start the challenge,0,-1" } } controlpoint { NoFixup 1 prop_dynamic { "model" "models/props_gameplay/cap_point_base.mdl" "targetname" "cap_base1" "solid" "6" "skin" "1" //set this number to 0 for neutral, 1 for red, 2 for blu "origin" "-84 3584 272" } trigger_capture_area { "classname" "trigger_capture_area" "area_cap_point" "cap_point1" "area_time_to_cap" "30" //multiply this number by 2 to get the capture duration in seconds, raising "team_numcap_3" and "team_numcap_2" will also increase the time taken by a factor of the value (e.g. raising it to 2 will multiply the duration by 2) "StartDisabled" "0" "targetname" "cap_area1" "team_cancap_2" "0" //setting this number to 0 disables red team from recapturing, 1 enables red team to recapture "team_cancap_3" "1" //1 enables blu team to cap "team_numcap_2" "1" //changing this number will change the number of red players required to stand on the point to finish capturing "team_numcap_3" "1" //changing this number will change the number of blu players required to stand on the point to finish capturing "team_spawn_2" "0" "team_spawn_3" "0" "team_startcap_2" "1" //changing this number will change the number of red players required to stand on the point to begin capturing "team_startcap_3" "1" //changing this number will change the number of blu players required to stand on the point to begin capturing "mins" "-128 -128 -128" "maxs" "128 128 128" "spawnflags" "1" "origin" "-84 3596 368" "OnCapTeam1" "cap_base1,Skin,1,0,-1" //set the first number to 0 for neutral, 1 for red, 2 for blu "OnCapTeam2" "cap_base1,Skin,2,0,-1" //set the first number to 0 for neutral, 1 for red, 2 for blu "OnCapTeam2" "minutehand*,add,1,0,-1" "OnCapTeam2" "barrier1_disable,Trigger,,0,-1" "OnCapTeam2" "pop_interface,ChangeBotAttributes,cap_point_2,0,-1" "OnCapTeam2" "pop_interface,ChangeDefaultEventAttributes,cap_point_2,0,-1" "OnCapTeam2" "spawnbot_pyramid,Enable,,0,-1" ////////////////////////////////////////////editable outputs//////////////////////////////////////////// OnStartTeam1,OnBreakTeam1,OnCapTeam1,OnStartTeam2,OnBreakTeam2.OnCapTeam2,OnStartCap,OnBreakCap,OnEndCap,OnNumCappersChanged,OnNumCappersChanged2 //add your outputs here using "OnCapTeam2" for blu team capture, or "OnCapTeam1" for red team capture } team_control_point { "classname" "team_control_point" "angles" "0 0 0" "point_default_owner" "2" //this is the team that the control point will spawn in, set this number to 0 for neutral, 2 for red, 3 for blu "point_group" "0" "point_index" "0" //if you plan on having multiple control points at once, you must give each one a unique "point_index", spawning more than 8 control points on the map will crash the server "point_printname" "Small Temple" //this is the name of the control point that will show up in the kill feed "point_start_locked" "0" "point_warn_on_cap" "0" "point_warn_sound" "ControlPoint.CaptureWarn" "random_owner_on_restart" "0" "spawnflags" "4" "targetname" "cap_point1" "team_bodygroup_0" "3" "team_bodygroup_2" "1" "team_bodygroup_3" "1" "team_icon_0" "sprites/obj_icons/icon_obj_neutral" //this is the image shown on the hud icon "team_icon_2" "sprites/obj_icons/icon_obj_red" "team_icon_3" "sprites/obj_icons/icon_obj_blu" "team_model_0" "models/effects/cappoint_hologram.mdl" //this is the model of the hologram that appears above the control point "team_model_2" "models/effects/cappoint_hologram.mdl" "team_model_3" "models/effects/cappoint_hologram.mdl" "team_previouspoint_3_0" "cap_point1" //if you want to create a sequence of control points similar to an attack/defense map, this keyvalue determines the order in which they can be captured //it represents the names of the previous control points that must be owned by blu team before this point can be unlocked, if this is the first control point on the map, it must refer to itself or else it will be locked //"team_previouspoint_3_1" "0" //"team_previouspoint_3_2" "0" //"team_previouspoint_2_0" "cap_point" //this allows red to recapture if "team_cancap_2" is set to 1 in the trigger_capture_area //"team_previouspoint_2_1" "0" //"team_previouspoint_2_2" "0" "team_timedpoints_2" "0" "team_timedpoints_3" "0" "origin" "-88 3584 280" } prop_dynamic { "model" "models/props_gameplay/cap_point_base.mdl" "targetname" "cap_base2" "solid" "6" "skin" "1" //set this number to 0 for neutral, 1 for red, 2 for blu "origin" "-136 2000 338" } trigger_capture_area { "classname" "trigger_capture_area" "area_cap_point" "cap_point2" "area_time_to_cap" "30" //multiply this number by 2 to get the capture duration in seconds, raising "team_numcap_3" and "team_numcap_2" will also increase the time taken by a factor of the value (e.g. raising it to 2 will multiply the duration by 2) "StartDisabled" "0" "targetname" "cap_area2" "team_cancap_2" "0" //setting this number to 0 disables red team from recapturing, 1 enables red team to recapture "team_cancap_3" "1" //1 enables blu team to cap "team_numcap_2" "1" //changing this number will change the number of red players required to stand on the point to finish capturing "team_numcap_3" "1" //changing this number will change the number of blu players required to stand on the point to finish capturing "team_spawn_2" "0" "team_spawn_3" "0" "team_startcap_2" "1" //changing this number will change the number of red players required to stand on the point to begin capturing "team_startcap_3" "1" //changing this number will change the number of blu players required to stand on the point to begin capturing "mins" "-128 -128 -128" "maxs" "128 128 128" "origin" "-132 1996 440" "spawnflags" "1" "OnCapTeam1" "cap_base2,Skin,1,0,-1" //set the first number to 0 for neutral, 1 for red, 2 for blu "OnCapTeam2" "cap_base2,Skin,2,0,-1" //set the first number to 0 for neutral, 1 for red, 2 for blu "OnCapTeam2" "minutehand*,add,1,0,-1" "OnCapTeam2" "pop_interface,ChangeBotAttributes,cap_point_3,0,-1" "OnCapTeam2" "pop_interface,ChangeDefaultEventAttributes,cap_point_3,0,-1" "OnCapTeam2" "spawnbot_ruins*,Enable,0,-1" ////////////////////////////////////////////editable outputs//////////////////////////////////////////// OnStartTeam1,OnBreakTeam1,OnCapTeam1,OnStartTeam2,OnBreakTeam2.OnCapTeam2,OnStartCap,OnBreakCap,OnEndCap,OnNumCappersChanged,OnNumCappersChanged2 //add your outputs here using "OnCapTeam2" for blu team capture, or "OnCapTeam1" for red team capture } team_control_point { "classname" "team_control_point" "angles" "0 0 0" "point_default_owner" "2" //this is the team that the control point will spawn in, set this number to 0 for neutral, 2 for red, 3 for blu "point_group" "0" "point_index" "1" //if you plan on having multiple control points at once, you must give each one a unique "point_index", spawning more than 8 control points on the map will crash the server "point_printname" "Bridge" //this is the name of the control point that will show up in the kill feed "point_start_locked" "0" "point_warn_on_cap" "0" "point_warn_sound" "ControlPoint.CaptureWarn" "random_owner_on_restart" "0" "spawnflags" "4" "targetname" "cap_point2" "team_bodygroup_0" "3" "team_bodygroup_2" "1" "team_bodygroup_3" "1" "team_icon_0" "sprites/obj_icons/icon_obj_neutral" //this is the image shown on the hud icon "team_icon_2" "sprites/obj_icons/icon_obj_red" "team_icon_3" "sprites/obj_icons/icon_obj_blu" "team_model_0" "models/effects/cappoint_hologram.mdl" //this is the model of the hologram that appears above the control point "team_model_2" "models/effects/cappoint_hologram.mdl" "team_model_3" "models/effects/cappoint_hologram.mdl" "team_previouspoint_3_0" "cap_point1" //if you want to create a sequence of control points similar to an attack/defense map, this keyvalue determines the order in which they can be captured //it represents the names of the previous control points that must be owned by blu team before this point can be unlocked, if this is the first control point on the map, it must refer to itself or else it will be locked //"team_previouspoint_3_1" "0" //"team_previouspoint_3_2" "0" //"team_previouspoint_2_0" "cap_point" //this allows red to recapture if "team_cancap_2" is set to 1 in the trigger_capture_area //"team_previouspoint_2_1" "0" //"team_previouspoint_2_2" "0" "team_timedpoints_2" "0" "team_timedpoints_3" "0" "origin" "-140 1992 342" } prop_dynamic { "model" "models/props_gameplay/cap_point_base.mdl" "targetname" "cap_base3" "solid" "6" "skin" "1" //set this number to 0 for neutral, 1 for red, 2 for blu "origin" "-1808 936 288" } trigger_capture_area { "classname" "trigger_capture_area" "area_cap_point" "cap_point3" "area_time_to_cap" "30" //multiply this number by 2 to get the capture duration in seconds, raising "team_numcap_3" and "team_numcap_2" will also increase the time taken by a factor of the value (e.g. raising it to 2 will multiply the duration by 2) "StartDisabled" "0" "targetname" "cap_area3" "team_cancap_2" "0" //setting this number to 0 disables red team from recapturing, 1 enables red team to recapture "team_cancap_3" "1" //1 enables blu team to cap "team_numcap_2" "1" //changing this number will change the number of red players required to stand on the point to finish capturing "team_numcap_3" "1" //changing this number will change the number of blu players required to stand on the point to finish capturing "team_spawn_2" "0" "team_spawn_3" "0" "team_startcap_2" "1" //changing this number will change the number of red players required to stand on the point to begin capturing "team_startcap_3" "1" //changing this number will change the number of blu players required to stand on the point to begin capturing "mins" "-128 -128 -128" "maxs" "128 128 128" "origin" "-1804 932 392" "spawnflags" "1" "OnCapTeam1" "cap_base3,Skin,1,0,-1" //set the first number to 0 for neutral, 1 for red, 2 for blu "OnCapTeam2" "cap_base3,Skin,2,0,-1" //set the first number to 0 for neutral, 1 for red, 2 for blu "OnCapTeam2" "minutehand*,add,1,0,-1" "OnCapTeam2" "barrier2_disable,Trigger,,0,-1" "OnCapTeam2" "pop_interface,ChangeBotAttributes,Default,0,-1" "OnCapTeam2" "pop_interface,ChangeDefaultEventAttributes,Default,0,-1" ////////////////////////////////////////////editable outputs//////////////////////////////////////////// OnStartTeam1,OnBreakTeam1,OnCapTeam1,OnStartTeam2,OnBreakTeam2.OnCapTeam2,OnStartCap,OnBreakCap,OnEndCap,OnNumCappersChanged,OnNumCappersChanged2 //add your outputs here using "OnCapTeam2" for blu team capture, or "OnCapTeam1" for red team capture } team_control_point { "classname" "team_control_point" "angles" "0 0 0" "point_default_owner" "2" //this is the team that the control point will spawn in, set this number to 0 for neutral, 2 for red, 3 for blu "point_group" "0" "point_index" "2" //if you plan on having multiple control points at once, you must give each one a unique "point_index", spawning more than 8 control points on the map will crash the server "point_printname" "Ruins" //this is the name of the control point that will show up in the kill feed "point_start_locked" "0" "point_warn_on_cap" "0" "point_warn_sound" "ControlPoint.CaptureWarn" "random_owner_on_restart" "0" "spawnflags" "4" "targetname" "cap_point3" "team_bodygroup_0" "3" "team_bodygroup_2" "1" "team_bodygroup_3" "1" "team_icon_0" "sprites/obj_icons/icon_obj_neutral" //this is the image shown on the hud icon "team_icon_2" "sprites/obj_icons/icon_obj_red" "team_icon_3" "sprites/obj_icons/icon_obj_blu" "team_model_0" "models/effects/cappoint_hologram.mdl" //this is the model of the hologram that appears above the control point "team_model_2" "models/effects/cappoint_hologram.mdl" "team_model_3" "models/effects/cappoint_hologram.mdl" "team_previouspoint_3_0" "cap_point2" //if you want to create a sequence of control points similar to an attack/defense map, this keyvalue determines the order in which they can be captured //it represents the names of the previous control points that must be owned by blu team before this point can be unlocked, if this is the first control point on the map, it must refer to itself or else it will be locked //"team_previouspoint_3_1" "0" //"team_previouspoint_3_2" "0" //"team_previouspoint_2_0" "cap_point" //this allows red to recapture if "team_cancap_2" is set to 1 in the trigger_capture_area //"team_previouspoint_2_1" "0" //"team_previouspoint_2_2" "0" "team_timedpoints_2" "0" "team_timedpoints_3" "0" "origin" "-1800 936 294" } prop_dynamic { "model" "models/props_gameplay/cap_square_320.mdl" // "models/props_gameplay/cap_point_base.mdl" "targetname" "cap_base4" "solid" "0" "skin" "1" //set this number to 0 for neutral, 1 for red, 2 for blu "origin" "-132 -3704 45" } trigger_capture_area { "classname" "trigger_capture_area" "area_cap_point" "cap_point4" "area_time_to_cap" "55" //multiply this number by 2 to get the capture duration in seconds, raising "team_numcap_3" and "team_numcap_2" will also increase the time taken by a factor of the value (e.g. raising it to 2 will multiply the duration by 2) "StartDisabled" "0" "targetname" "cap_area4" "team_cancap_2" "0" //setting this number to 0 disables red team from recapturing, 1 enables red team to recapture "team_cancap_3" "1" //1 enables blu team to cap "team_numcap_2" "1" //changing this number will change the number of red players required to stand on the point to finish capturing "team_numcap_3" "1" //changing this number will change the number of blu players required to stand on the point to finish capturing "team_spawn_2" "0" "team_spawn_3" "0" "team_startcap_2" "1" //changing this number will change the number of red players required to stand on the point to begin capturing "team_startcap_3" "1" //changing this number will change the number of blu players required to stand on the point to begin capturing "mins" "-128 -128 -128" "maxs" "128 128 128" "origin" "-136 -3728.01 96.01" "spawnflags" "1" "OnCapTeam2" "cap_base4,Skin,2,0,-1" //set the first number to 0 for neutral, 1 for red, 2 for blu "OnCapTeam2" "bots_win,RoundWin,,0,-1" ////////////////////////////////////////////editable outputs//////////////////////////////////////////// OnStartTeam1,OnBreakTeam1,OnCapTeam1,OnStartTeam2,OnBreakTeam2.OnCapTeam2,OnStartCap,OnBreakCap,OnEndCap,OnNumCappersChanged,OnNumCappersChanged2 //add your outputs here using "OnCapTeam2" for blu team capture, or "OnCapTeam1" for red team capture } team_control_point { "classname" "team_control_point" "angles" "0 0 0" "point_default_owner" "2" //this is the team that the control point will spawn in, set this number to 0 for neutral, 2 for red, 3 for blu "point_group" "0" "point_index" "3" //if you plan on having multiple control points at once, you must give each one a unique "point_index", spawning more than 8 control points on the map will crash the server "point_printname" "hatch" //this is the name of the control point that will show up in the kill feed "point_start_locked" "1" "point_warn_on_cap" "0" "point_warn_sound" "ControlPoint.CaptureWarn" "random_owner_on_restart" "0" "spawnflags" "6" "targetname" "cap_point4" "team_bodygroup_0" "3" "team_bodygroup_2" "1" "team_bodygroup_3" "1" "team_icon_0" "sprites/obj_icons/icon_obj_neutral" //this is the image shown on the hud icon "team_icon_2" "sprites/obj_icons/icon_obj_red" "team_icon_3" "sprites/obj_icons/icon_obj_blu" "team_model_0" "models/effects/cappoint_hologram.mdl" //this is the model of the hologram that appears above the control point "team_model_2" "models/effects/cappoint_hologram.mdl" "team_model_3" "models/effects/cappoint_hologram.mdl" "team_previouspoint_3_0" "cap_point3" //if you want to create a sequence of control points similar to an attack/defense map, this keyvalue determines the order in which they can be captured //it represents the names of the previous control points that must be owned by blu team before this point can be unlocked, if this is the first control point on the map, it must refer to itself or else it will be locked //"team_previouspoint_3_1" "0" //"team_previouspoint_3_2" "0" //"team_previouspoint_2_0" "cap_point" //this allows red to recapture if "team_cancap_2" is set to 1 in the trigger_capture_area //"team_previouspoint_2_1" "0" //"team_previouspoint_2_2" "0" "team_timedpoints_2" "0" "team_timedpoints_3" "0" "origin" "-136 844 66" } team_control_point_master { "classname" "team_control_point_master" "cpm_restrict_team_cap_win" "1" //this makes it so the wave does not end when all the points are owned by a team, set this to 0 for neither team (this will end the wave on capture), 1 to restrict both teams, 2 to restrict red team winning, and 3 to restrict blu team winning "custom_position_x" "0.3" //you can change the number here to move the control points on the hud if something is blocking it, accepted values are from 0 to 1 and is expressed as a percentage of the screen from left to right, 0.5 or "-1" will center the hud "custom_position_y" "-1" "partial_cap_points_rate" "0" //this keyvalue allows money to be gained by capturing points, setting it to a number above 0 will allow players who are capturing to receive money, a higher number results in higher revenue, decimals accepted "play_all_rounds" "0" "score_style" "0" "StartDisabled" "0" "switch_teams" "0" "targetname" "cap_master" "team_base_icon_2" "sprites/obj_icons/icon_base_red" "team_base_icon_3" "sprites/obj_icons/icon_base_blu" } OnSpawnOutput //very important to keep this output otherwise the control point will not function { Target cap_area1 Action SetControlPoint Param cap_point1 } OnSpawnOutput //very important to keep this output otherwise the control point will not function { Target cap_area2 Action SetControlPoint Param cap_point2 } OnSpawnOutput //very important to keep this output otherwise the control point will not function { Target cap_area3 Action SetControlPoint Param cap_point3 } OnSpawnOutput //very important to keep this output otherwise the control point will not function { Target cap_area4 Action SetControlPoint Param cap_point4 } OnSpawnOutput //this output is optional but it is kept here for debugging purposes, if you do not restrict a team from winning and the control point spawned is not neutral, it will automatically end the wave so make sure you set the restriction { Target cap_master Action RoundSpawn } logic_relay { "targetname" "unlock_last" "OnTrigger" "cap_point4,SetLocked,0,0,-1" } } wave2_logic { NoFixup 1 logic_relay { "targetname" "wave2_init" "OnTrigger" "hudhint,$SetKey$message,OBJECTIVE: Capture all points,0,-1" "OnTrigger" "item_teamflag,Disable,,0,-1" "OnTrigger" "pop_interface,ChangeBotAttributes,cap_point_1,0,-1" "OnTrigger" "pop_interface,ChangeDefaultEventAttributes,cap_point_1,0,-1" "OnTrigger" "spawnbot_pyramid,Disable,,0,-1" "OnTrigger" "spawnbot_ruins*,Disable,,0,-1" } training_annotation { "targetname" "hint_cap" "display_text" "The hatch can be captured!" "lifetime" "5" "origin" "-122 -3741 161" } logic_relay { "targetname" "enable_capture" "OnTrigger" "hatchshield,SetAnimation,disable,0,-1" "OnTrigger" "hatchshield,Disable,,1,-1" "OnTrigger" "hatch_forcefield,Disable,,0,-1" "OnTrigger" "hint_cap,Show,,1,-1" } } Helicopter_Base_Init { NoFixup 1 OnSpawnOutput { Target "!activator" Action "AddOutput" Param "targetname helicopter_bot" Delay 0 } OnSpawnOutput { Target "!activator" Action "AddOutput" Param "$OnUser5 helicopter_bot" Delay 0 } OnSpawnOutput { Target "!activator" Action "AddOutput" Param "$OnUser5 popscript:$helicopterAscend::0:-1" } OnSpawnOutput { Target "!activator" Action "AddOutput" Param "$OnUser6 update_positions:$FireUser5::0:-1" } OnParentKilledOutput { Target "!activator" Action "$RemoveOutput" Param "$OnUser5" Delay 0.1 } OnParentKilledOutput { Target "!activator" Action "$RemoveOutput" Param "$OnUser6" Delay 0.1 } // OnSpawnOutput // { // Target "update_positions" // Action "$SetVar$hitboxPosHolder" // Param "-100 0 430" // } // OnSpawnOutput // { // Target "update_positions" // Action "$SetVar$shooterPosHolder" // Param "0 0 420" // } logic_relay { "targetname" "update_positions" //"spawnflags" "2" "$OnUser5" "update_positions,$SetVar$addHolder,,-1,-1" "$OnUser5" "update_positions,$SetVar$hitboxPosX,$$=x(helicopterhitbox_position.m_vecOrigin),-1,-1" "$OnUser5" "update_positions,$SetVar$hitboxPosY,$$=y(helicopterhitbox_position.m_vecOrigin),-1,-1" "$OnUser5" "update_positions,$SetVar$hitboxPosZ,$$=z(helicopterhitbox_position.m_vecOrigin),-1,-1" "$OnUser5" "update_positions,$SetVar$shooterPosX,$$=x(helicoptershooter_position.m_vecOrigin),-1,-1" "$OnUser5" "update_positions,$SetVar$shooterPosY,$$=y(helicoptershooter_position.m_vecOrigin),-1,-1" "$OnUser5" "update_positions,$SetVar$shooterPosZ,$$=z(helicoptershooter_position.m_vecOrigin),-1,-1" "$OnUser5" "helicopterhitbox_position,$SetLocalOrigin,$$=update_positions.hitboxPosX..' '..update_positions.hitboxPosY..' '..(update_positions.hitboxPosZ + update_positions.addHolder) ,0.01,-1" "$OnUser5" "helicoptershooter_position,$SetLocalOrigin,$$=update_positions.shooterPosX..' '..update_positions.shooterPosY..' '..(update_positions.shooterPosZ + update_positions.addHolder) ,0.01,-1" } info_target { "targetname" "helicopterhitbox_position" "origin" "-100 0 430" } info_target { "targetname" "helicoptershooter_position" "origin" "0 0 420" } } Helicopter_Shooter_Init // by Royal { OnSpawnOutput { Target "!activator" Action "AddOutput" Param "targetname helicopter_bot_shoot" Delay 0 } OnSpawnOutput { Target "helicopter_relay" Action "FireUser1" Delay 0 } OnSpawnOutput { Target "stickies" Action "FireUser1" Delay 5 } OnSpawnOutput { Target "stickies" Action "SetOwner" Param "!activator" Delay 0 } logic_relay { "targetname" "helicopter_relay" "OnUser1" "!activator,$TeleportToEntity,helicoptershooter_position,0,-1" "OnUser1" "!self,FireUser1,,0.01,-1" } tf_point_weapon_mimic { "targetname" "stickies" "$preventshootparent" "1" "spawnflags" "1" "angles" "0 0 0" "origin" "0 0 0" "teamnum" "2" "Crits" "0" "Damage" "100" "ModelScale" "1" "ModelOverride" "models/weapons/w_models/w_stickybomb3.mdl" "SpeedMax" "1000" "SpeedMin" "100" "SplashRadius" "144" "SpreadAngle" "30" "WeaponType" "3" "OnUser1" "!self,FireMultiple,15,0,-1" "OnUser1" "!self,DetonateStickies,,3,-1" "OnUser1" "!self,FireUser1,,4,-1" } //model prop_dynamic { "targetname" "helicopter_model" "model" "models/props_frontline/helicopter_windows.mdl"//"models/combine_helicopter.mdl" "origin" "0 0 -100" "angles" "0 0 0" "DefaultAnim" "fly_idle" "modelscale" "1.5" "skin" "0" "solid" "0" } OnSpawnOutput { Target "helicopter_model" Action "$SetProp$m_bGlowEnabled" //doesn't work lol Delay 0.1 Param "1" } } Helicopter_Shooter_Init2 // by Royal { OnSpawnOutput { Target "!activator" Action "AddOutput" Param "targetname helicopter_bot_shoot2" Delay 0 } OnSpawnOutput { Target "helicopter_relay" Action "FireUser1" Delay 0 } logic_relay { "targetname" "helicopter_relay" "OnUser1" "!activator,$TeleportToEntity,helicoptershooter_position,0,-1" "OnUser1" "!self,FireUser1,,0.01,-1" } } Helicopter_Tank_Init // by Royal { OnSpawnOutput { Target "helicopter_relay" Action "FireUser1" Delay 0 } //no player collision resolve logic (thanks orin) OnSpawnOutput { Target "!activator" Action "Disable" Delay 1 } // OnSpawnOutput // { // Target "!activator" // Action $SetProp$m_nSolidType // Param 0 // } // OnSpawnOutput // { // Target "helicopter_pattern2_detect" // Action "Trigger" // Delay 0 // } OnParentKilledOutput { Target "helicopter_bot*" Action "$Suicide" Param "0" Delay 0 } OnParentKilledOutput { Target "helicopter_bot*" Action "AddOutput" Param "targetname " Delay 0.1 } logic_relay { "targetname" "helicopter_relay" "OnUser1" "!activator,$TeleportToEntity,helicopterhitbox_position,0,-1" "OnUser1" "!self,FireUser1,,0.01,-1" } // logic_relay // { // "targetname" "helicopter_pattern2_detect" // "spawnflags" "2" // "OnTrigger" "!activator,AddOutput,OnHealthBelow90Percent helicopter_pattern2_relay:Trigger:0:-1,0,-1" // } } Helicopter_Patterns { NoFixup 1 OnSpawnOutput { Target "pattern_switch" Action "Trigger" Delay 0 } logic_relay { "targetname" "pattern_switch" "spawnflags" "2" //pattern 2 after 4 seconds //"OnTrigger" "player,$DisplayTextChat,pattern 2,4,-1" "OnTrigger" "helicopter_bot_shoot,$ChangeAttributes,Pattern2,4,-1" //pattern 8 after 9 seconds //"OnTrigger" "player,$DisplayTextChat,pattern 3,9,-1" "OnTrigger" "helicopter_bot_shoot,$ChangeAttributes,Pattern3,9,-1" //pattern 4 after 13 seconds //"OnTrigger" "player,$DisplayTextChat,pattern 4,13,-1" "OnTrigger" "helicopter_bot_shoot,$ChangeAttributes,Pattern4,13,-1" //default pattern after 15 seconds, loop //"OnTrigger" "player,$DisplayTextChat,reset,15,-1" "OnTrigger" "helicopter_bot_shoot,$ChangeAttributes,Default,15,-1" "OnTrigger" "pattern_switch,Trigger,,15.1,-1" } } TridentBurst { OnSpawnOutput { Target "firer" Action "FireUser1" Delay 0 } OnSpawnOutput { Target "firer" Action "$InheritOwner" Param "!activator" Delay 0 } tf_point_weapon_mimic { "targetname" "firer" "$preventshootparent" "1" "spawnflags" "1" "angles" "0 0 0" "origin" "0 10 -3" "teamnum" "2" "Crits" "0" "Damage" "120" "ModelScale" "1" "SpeedMax" "1000" "SpeedMin" "1000" "SplashRadius" "144" "SpreadAngle" "0" "WeaponType" "0" "OnUser1" "!self,FireOnce,,0,-1" } tf_point_weapon_mimic { "targetname" "firer" "$preventshootparent" "1" "spawnflags" "1" "angles" "0 0 0" "origin" "0 -10 -3" "teamnum" "2" "Crits" "0" "Damage" "75" "ModelScale" "1" "SpeedMax" "1000" "SpeedMin" "1000" "SplashRadius" "144" "SpreadAngle" "0" "WeaponType" "0" "OnUser1" "!self,FireOnce,,0,-1" } } RocketMastery { OnSpawnOutput { Target "firer" Action "FireUser1" Delay 0 } OnSpawnOutput { Target "firer" Action "SetParent" Param "" Delay 0 } OnSpawnOutput { Target "!activator" Action "Kill" Delay 0.1 } OnSpawnOutput { Target "firer" Action "Kill" Delay 0.1 } tf_point_weapon_mimic { "targetname" "firer" "spawnflags" "1" "angles" "0 -10 0" "origin" "-1 0 -3" "teamnum" "2" "Crits" "0" "Damage" "75" "ModelScale" "1" "SpeedMax" "700" "SpeedMin" "700" "SplashRadius" "144" "SpreadAngle" "0" "WeaponType" "0" "OnUser1" "!self,FireOnce,,0,-1" } tf_point_weapon_mimic { "targetname" "firer" "spawnflags" "1" "angles" "0 10 0" "origin" "-1 0 -3" "teamnum" "2" "Crits" "0" "Damage" "75" "ModelScale" "1" "SpeedMax" "500" "SpeedMin" "500" "SplashRadius" "144" "SpreadAngle" "0" "WeaponType" "0" "OnUser1" "!self,FireOnce,,0,-1" } } RocketSpike { OnSpawnOutput { Target "firer" Action "FireUser1" Delay 0 } tf_point_weapon_mimic { "targetname" "firer" "spawnflags" "1" "angles" "90 0 0" "origin" "-1 0 -3" "teamnum" "2" "Crits" "0" "Damage" "75" "ModelScale" "1" "SpeedMax" "700" "SpeedMin" "700" "SplashRadius" "144" "SpreadAngle" "0" "WeaponType" "0" "OnUser1" "!self,FireOnce,,0,-1" "OnUser1" "!self,FireUser1,,0.2,-1" } } RocketMasteryConstant { OnSpawnOutput { Target "firer" Action "FireUser1" Delay 0 } tf_point_weapon_mimic { "targetname" "firer" "spawnflags" "1" "angles" "0 -10 0" "origin" "-1 0 -3" "teamnum" "2" "Crits" "0" "Damage" "75" "ModelScale" "1" "SpeedMax" "600" "SpeedMin" "600" "SplashRadius" "144" "SpreadAngle" "0" "WeaponType" "0" "OnUser1" "!self,FireOnce,,0,-1" "OnUser1" "!self,FireUser1,,0.4,-1" } tf_point_weapon_mimic { "targetname" "firer" "spawnflags" "1" "angles" "0 10 0" "origin" "-1 0 -3" "teamnum" "2" "Crits" "0" "Damage" "75" "ModelScale" "1" "SpeedMax" "500" "SpeedMin" "500" "SplashRadius" "144" "SpreadAngle" "0" "WeaponType" "0" "OnUser1" "!self,FireOnce,,0,-1" "OnUser1" "!self,FireUser1,,0.4,-1" } } LaserOnAim { OnSpawnOutput { Target "popscript" Action "$LaserOnAim" Delay 0.01 } } ChickenProjectile { prop_dynamic { "modelscale" "2.5" "rendercolor" "255 255 255" "DisableBoneFollowers" "1" "disableshadows" "1" "model" "models/workshop/player/items/heavy/sum20_momma_kiev_style1/sum20_momma_kiev_style1.mdl" "solid" "0" "spawnflags" "0" "StartDisabled" "0" } } Shapeshift_PrespawnDisguise { NoFixup 1 KeepAlive 1 OnSpawnOutput { Target "apply_heavy_disguise_initial" Action "Trigger" Delay 0 } logic_relay { "targetname" "apply_heavy_disguise_initial" "OnTrigger" "!activator,$WeaponStripSlot,0,0,-1" "OnTrigger" "!activator,$GiveItem,Deflector,0.1,-1" //"OnTrigger" "!activator,$WeaponSwitchSlot,0,0.1,-1" "OnTrigger" "!activator,SetCustomModel,models/bots/heavy_boss/bot_heavy_boss.mdl,0,-1" "OnTrigger" "!self,Kill,,1,-1" } logic_relay { "targetname" "disguise_stop" "OnTrigger" "!activator,$AddCond,4,0,-1" "OnTrigger" "!activator,$Suicide,,0.7,-1" "OnTrigger" "!self,Kill,,5,-1" // "OnTrigger" "spawnbot_extra,Enable,,0.7,-1" } info_target { "targetname" "shapeshift_spawn_target" "origin" "0 0 0" } RemoveIfKilled "disguise_stop" } Shapeshift_Logic // by royal { OnSpawnOutput { Target "shapeshift_start" Action "Trigger" Delay 1 } OnParentKilledOutput { Target "!activator" Action "$SetProp$m_bUseBossHealthBar" Param "0" Delay 0 } OnParentKilledOutput { Target "!activator" Action "addoutput" Param "renderfx 0" } OnSpawnOutput { Target "!activator" Action AddOutput Param "targetname bigguy" Delay 0.00 } OnParentKilledOutput { Target "!activator" Action AddOutput Param "targetname " Delay 0.00 } env_shake { "targetname" "shaker" "amplitude" "255" "radius" "10000" "duration" "1.5" } info_target { "origin" "0 0 50" "targetname" "bossminiontplocation" } logic_relay { "targetname" "shapeshift_start" "spawnflags" "2" "OnTrigger" "!activator,$WeaponStripSlot,0,0.51,-1" "OnTrigger" "shapeshift_loop,Trigger,,0,-1" } logic_relay { "targetname" "shapeshift_global" "spawnflags" "2" "OnTrigger" "!activator,$AddCond,4,0,-1" } logic_relay { "targetname" "shapeshift_loop" "spawnflags" "2" "OnTrigger" "shapeshift_global,Trigger,,0,-1" "OnTrigger" "soldier_shapeshift,Trigger,,0.5,-1" "OnTrigger" "shapeshift_global,Trigger,,10,-1" "OnTrigger" "soldier2_shapeshift,Trigger,,10.5,-1" "OnTrigger" "shapeshift_global,Trigger,,20,-1" "OnTrigger" "demo_automic_shapeshift,Trigger,,20.5,-1" "OnTrigger" "shapeshift_global,Trigger,,30,-1" "OnTrigger" "heavy_shapeshift,Trigger,,30.5,-1" "OnTrigger" "shapeshift_global,Trigger,,40,-1" "OnTrigger" "pyro_shapeshift,Trigger,,40.5,-1" "OnTrigger" "shapeshift_global,Trigger,,50,-1" "OnTrigger" "medic_shapeshift,Trigger,,50.5,-1" "OnTrigger" "shapeshift_global,Trigger,,60,-1" "OnTrigger" "sniper_shapeshift,Trigger,,60.5,-1" "OnTrigger" "shapeshift_global,Trigger,,70,-1" "OnTrigger" "engie_shapeshift,Trigger,,70.5,-1" "OnTrigger" "shapeshift_global,Trigger,,80,-1" "OnTrigger" "spy_shapeshift,Trigger,,80.5,-1" "OnTrigger" "shapeshift_global,Trigger,,90,-1" "OnTrigger" "scout_shapeshift,Trigger,,90.5,-1" "OnTrigger" "!self,Trigger,,100,-1" } logic_relay { "targetname" "soldier_shapeshift" "spawnflags" "2" // "OnTrigger" "!activator,$RemoveItem,War Head,0,-1" // "OnTrigger" "!activator,$RemoveItem,Fists of Steel,0,-1" "OnTrigger" "!activator,$RemoveItem,Geniune Cockfighter,0,-1" "OnTrigger" "!activator,$RemoveItem,The Boston Boom-Bringer,0,-1" "OnTrigger" "!activator,$RemoveItem,Summer Shades,0,-1" "OnTrigger" "!activator,$RemoveItem,The Sandman,0,-1" "OnTrigger" "!activator,AddOutput,renderfx 15,0,-1" "OnTrigger" "!activator,$ChangeAttributes,Soldier,0,-1" "OnTrigger" "scoutloop,StopSound,,0,-1" "OnTrigger" "soldierloop,PlaySound,,0,-1" //"OnTrigger" "!activator,$AddCond,40,0.1,-1" "OnTrigger" "!activator,$WeaponSwitchSlot,0,0.11,-1" "OnTrigger" "!activator,SetCustomModel,models/bots/soldier_boss/bot_soldier_gray_boss.mdl,0.1,-1" "OnTrigger" "!activator,$SetProp$m_iszClassIcon,soldier_sergeant_crits,0.4,-1" "OnTrigger" "!activator,$AddCond,4,0.5,-1" "OnTrigger" "!activator,$RemoveCond,4,0.55,-1" } logic_relay { "targetname" "soldier2_shapeshift" "spawnflags" "2" "OnTrigger" "!activator,$RemoveItem,Tyrant's Helm,0,-1" "OnTrigger" "!activator,AddOutput,renderfx 15,0,-1" "OnTrigger" "!activator,$ChangeAttributes,Soldier2,0,-1" //"OnTrigger" "!activator,$AddCond,40,0.1,-1" "OnTrigger" "!activator,$WeaponSwitchSlot,0,0.11,-1" "OnTrigger" "!activator,SetCustomModel,models/bots/soldier_boss/bot_soldier_gray_boss.mdl,0.1,-1" "OnTrigger" "!activator,$SetProp$m_iszClassIcon,soldier_major_crits,0.4,-1" "OnTrigger" "!activator,$AddCond,4,0.5,-1" "OnTrigger" "!activator,$RemoveCond,4,0.55,-1" } logic_relay { "targetname" "demo_automic_shapeshift" "spawnflags" "2" "OnTrigger" "!activator,$RemoveCond,40,0,-1" "OnTrigger" "!activator,$ChangeAttributes,Demo,0,-1" "OnTrigger" "soldierloop,StopSound,,0,-1" "OnTrigger" "demoloop,PlaySound,,0,-1" "OnTrigger" "!activator,AddOutput,renderfx 15,0,-1" "OnTrigger" "!activator,$RemoveItem,Fancy Dress Uniform,0,-1" "OnTrigger" "!activator,$RemoveItem,The Team Captain,0,-1" "OnTrigger" "!activator,$WeaponSwitchSlot,0,0.11,-1" "OnTrigger" "!activator,SetCustomModel,models/bots/demo_boss/bot_demo_gray_boss.mdl,0.1,-1" "OnTrigger" "!activator,$SetProp$m_iszClassIcon,demo_bomber,0.4,-1" //"OnTrigger" "!activator,$SetProp$m_bUseBossHealthBar,0,3,-1" //"OnTrigger" "!activator,$SetProp$m_bUseBossHealthBar,1,0.45,-1" "OnTrigger" "!activator,$AddCond,4,0.5,-1" "OnTrigger" "!activator,$RemoveCond,4,0.55,-1" } logic_relay { "targetname" "heavy_shapeshift" "spawnflags" "2" "OnTrigger" "!activator,$ChangeAttributes,Heavy,0,-1" "OnTrigger" "demoloop,StopSound,,0,-1" "OnTrigger" "heavyloop,PlaySound,,0,-1" "OnTrigger" "!activator,AddOutput,renderfx 15,0,-1" "OnTrigger" "!activator,$RemoveItem,Prince Tavish's Crown,0,-1" "OnTrigger" "!activator,$WeaponSwitchSlot,2,0.11,-1" "OnTrigger" "!activator,SetCustomModel,models/bots/heavy_boss/bot_heavy_gray_boss.mdl,0.1,-1" "OnTrigger" "!activator,$SetProp$m_iszClassIcon,heavy_chief,0.4,-1" "OnTrigger" "!activator,$AddCond,4,0.5,-1" "OnTrigger" "!activator,$RemoveCond,4,0.55,-1" // "OnTrigger" "!activator,$RemoveItemAttribute,minigun spinup time increased|0,2,-1" } logic_relay { "targetname" "pyro_shapeshift" "spawnflags" "2" "OnTrigger" "!activator,$ChangeAttributes,Pyro,0,-1" "OnTrigger" "heavyloop,StopSound,,0,-1" "OnTrigger" "pyroloop,PlaySound,,0,-1" "OnTrigger" "!activator,AddOutput,renderfx 15,0,-1" "OnTrigger" "!activator,$RemoveItem,War Head,0,-1" "OnTrigger" "!activator,$RemoveItem,Fists of Steel,0,-1" "OnTrigger" "!activator,$WeaponSwitchSlot,0,0.11,-1" "OnTrigger" "!activator,SetCustomModel,models/bots/pyro_boss/bot_pyro_gray_boss.mdl,0.1,-1" "OnTrigger" "!activator,$SetProp$m_iszClassIcon,pyro_giant,0.4,-1" "OnTrigger" "!activator,$AddCond,4,0.5,-1" "OnTrigger" "!activator,$RemoveCond,4,0.55,-1" // "OnTrigger" "!activator,$RemoveItemAttribute,minigun spinup time increased|0,2,-1" } logic_relay { "targetname" "medic_shapeshift" "spawnflags" "2" "OnTrigger" "!activator,$ChangeAttributes,Medic,0,-1" "OnTrigger" "!activator,$RemoveItem,Brigade Helm,0,-1" "OnTrigger" "!activator,AddOutput,renderfx 15,0,-1" "OnTrigger" "!activator,$WeaponSwitchSlot,0,0.11,-1" "OnTrigger" "!activator,SetCustomModel,models/bots/medic/bot_medic_gray.mdl,0.1,-1" "OnTrigger" "!activator,$SetProp$m_iszClassIcon,medic_crossbow_multi,0.4,-1" "OnTrigger" "!activator,$AddCond,4,0.5,-1" "OnTrigger" "!activator,$RemoveCond,4,0.55,-1" // "OnTrigger" "!activator,$RemoveItemAttribute,minigun spinup time increased|0,2,-1" } logic_relay { "targetname" "sniper_shapeshift" "spawnflags" "2" "OnTrigger" "!activator,$ChangeAttributes,Sniper,0,-1" "OnTrigger" "!activator,AddOutput,renderfx 15,0,-1" "OnTrigger" "!activator,$RemoveItem,Modest Metal Pile of Scrap,0,-1" "OnTrigger" "!activator,$RemoveItem,The Crusader's Crossbow,0,-1" "OnTrigger" "!activator,$WeaponSwitchSlot,0,0.11,-1" "OnTrigger" "!activator,SetCustomModel,models/bots/sniper/bot_sniper_gray.mdl,0.1,-1" "OnTrigger" "!activator,$SetProp$m_iszClassIcon,sniper_bow_atomic,0.4,-1" "OnTrigger" "!activator,$AddCond,4,0.5,-1" "OnTrigger" "!activator,$RemoveCond,4,0.55,-1" } logic_relay { "targetname" "engie_shapeshift" "spawnflags" "2" "OnTrigger" "!activator,$RemoveItem,Corona Australis,0,-1" "OnTrigger" "!activator,$RemoveItem,The Fortified Compound,0,-1" "OnTrigger" "!activator,AddOutput,renderfx 0,0,-1" "OnTrigger" "!activator,$ChangeAttributes,Engineer,0,-1" "OnTrigger" "!activator,$PlaySequence,layer_taunt_texas_truckin,0.2,-1" // "OnTrigger" "!activator,$AddCond,40,0.1,-1" "OnTrigger" "!activator,$WeaponSwitchSlot,2,0.11,-1" "OnTrigger" "!activator,SetCustomModel,models/player/engineer.mdl,0.11,-1" //"OnTrigger" "!activator,SetCustomModel,models/bots/scout/bot_scout.mdl,0.1,-1" "OnTrigger" "!activator,$SetProp$m_iszClassIcon,engineer,0.4,-1" "OnTrigger" "!activator,$AddCond,4,0.5,-1" "OnTrigger" "!activator,$RemoveCond,4,0.55,-1" } logic_relay { "targetname" "spy_shapeshift" "spawnflags" "2" "OnTrigger" "!activator,$RemoveItem,Engineer's Cap,0,-1" "OnTrigger" "!activator,AddOutput,renderfx 15,0,-1" "OnTrigger" "!activator,$ChangeAttributes,Spy,0,-1" "OnTrigger" "pyroloop,StopSound,,0,-1" "OnTrigger" "scoutloop,PlaySound,,0,-1" // "OnTrigger" "!activator,$AddCond,40,0.1,-1" "OnTrigger" "!activator,$WeaponSwitchSlot,0,0.11,-1" "OnTrigger" "!activator,SetCustomModel,models/bots/spy/bot_spy_gray.mdl,0.1,-1" //"OnTrigger" "!activator,SetCustomModel,models/bots/scout/bot_scout.mdl,0.1,-1" "OnTrigger" "!activator,$SetProp$m_iszClassIcon,spy_revolver_hyper,0.4,-1" "OnTrigger" "!activator,$AddCond,4,0.5,-1" "OnTrigger" "!activator,$RemoveCond,4,0.55,-1" } logic_relay { "targetname" "scout_shapeshift" "spawnflags" "2" "OnTrigger" "!activator,$RemoveItem,Belltower Spec ops,0,-1" "OnTrigger" "!activator,$RemoveItem,The Diamondback,0,-1" "OnTrigger" "!activator,$ChangeAttributes,Scout,0,-1" //"OnTrigger" "!activator,$AddCond,40,0.1,-1" "OnTrigger" "!activator,$WeaponSwitchSlot,2,0.11,-1" "OnTrigger" "!activator,SetCustomModel,models/bots/scout_boss/bot_scout_gray_boss.mdl,0.1,-1" "OnTrigger" "!activator,$SetProp$m_iszClassIcon,scout_stun,0.4,-1" "OnTrigger" "!activator,$AddCond,4,0.5,-1" "OnTrigger" "!activator,$RemoveCond,4,0.55,-1" } ambient_generic { "targetname" "soldierloop" "message" "mvm/giant_soldier/giant_soldier_loop.wav" "health" "3" "radius" "1250" "spawnflags" "16" "sourceentityname" "!parent" } ambient_generic { "targetname" "demoloop" "message" "mvm/giant_demoman/giant_demoman_loop.wav" "health" "3" "radius" "1250" "spawnflags" "16" "sourceentityname" "!parent" } ambient_generic { "targetname" "pyroloop" "message" "mvm/giant_pyro/giant_pyro_loop.wav" "health" "3" "radius" "1250" "spawnflags" "16" "sourceentityname" "!parent" } ambient_generic { "targetname" "scoutloop" "message" "mvm/giant_scout/giant_scout_loop.wav" "health" "3" "radius" "1250" "spawnflags" "16" "sourceentityname" "!parent" } ambient_generic { "targetname" "heavyloop" "message" "mvm/giant_heavy/giant_heavy_loop.wav" "health" "3" "radius" "1250" "spawnflags" "16" "sourceentityname" "!parent" } } Explosive_Tip_Bot { KeepAlive 1 OnSpawnOutput { Target "tip_explosion" Action "$InheritOwner" Param "!activator" Delay 0.1 } OnSpawnOutput { Target "@c@!activator" Action "FireUser1" Delay 0 } OnSpawnOutput { Target "explosive_tip_relay" Action "FireUser1" Delay 0 } OnSpawnOutput { Target "explosive_tip_relay" Action "FireUser1" Delay 0 } logic_relay { "targetname" "explosive_tip_relay" "OnUser1" "!self,Kill,,5,-1" } info_target { "targetname" "detonate_position" "OnUser1" "!self,Kill,,5,-1" } tf_point_weapon_mimic { "targetname" "tip_explosion" "spawnflags" "1" "angles" "0 0 0" "origin" "-1 0 -3" "teamnum" "2" "Crits" "0" "Damage" "75" "ModelScale" "1" "SpeedMax" "1000000" "SpeedMin" "1000000" "SplashRadius" "144" "SpreadAngle" "0" "WeaponType" "3" "OnUser1" "!self,FireOnce,,2,-1" "OnUser4" "!self,DetonateStickies,,0,-1" } logic_measure_movement { "MeasureReference" "detonate_position" "MeasureTarget" "detonate_position" "MeasureType" "0" "Target" "tip_explosion" "TargetReference" "detonate_position" "TargetScale" "1" } info_particle_system { "targetname" "sticky_flicker" "effect_name" "stickybomb_pulse_red" "flag_as_weather" "0" "start_active" "0" "OnUser1" "!self,Start,2,1,-1" "OnUser1" "!self,Kill,2.7,3,-1" } logic_measure_movement { "MeasureReference" "detonate_position" "MeasureTarget" "detonate_position" "MeasureType" "0" "Target" "sticky_flicker" "TargetReference" "detonate_position" "TargetScale" "1" } ambient_generic { "targetname" "sticky_sound" "message" "weapons/stickybomblauncher_det.wav" "radius" "4000" "health" "5" "spawnflags" "48" "OnUser1" "!self,PlaySound,,1,-1" "OnUser1" "!self,Kill,,3,-1" } logic_measure_movement { "MeasureReference" "detonate_position" "MeasureTarget" "detonate_position" "MeasureType" "0" "Target" "sticky_sound" "TargetReference" "detonate_position" "TargetScale" "1" } filter_activator_tfteam { "targetname" "filter_is_blu" "Negated" "0" "TeamNum" "3" "OnUser1" "!self,Kill,,2.1,-1" } trigger_hurt //for some reason I can't explain using a trigger_once or trigger_multiple just blocks the projectile { "targetname" "attach_to_enemy" "origin" "0 0 0" "mins" "-3 -3 -3" "maxs" "3 3 3" "Damage" "0" "spawnflags" "1" "filtername" "filter_is_blu" "OnStartTouch" "detonate_position,SetParent,!activator,0,-1" //"OnStartTouch" "player,$DisplayTextChat,attached,0.1,-1" "OnStartTouch" "!self,Disable,,0.1,-1" "OnUser1" "!self,Kill,,2.1,-1" } RemoveIfKilled "explosive_tip_relay" } Powerup_Logic { NoFixup 1 logic_relay { "targetname" "powerup_logic_relay" "OnTrigger" "@p@powerup_haver_target*,$RemoveCond,93,0.1,-1" "OnTrigger" "@p@powerup_haver_target*,$RemoveCond,103,0.1,-1" "OnTrigger" "@p@powerup_haver_target*,$RemoveCond,109,0.1,-1" "OnTrigger" "@p@powerup_bystander_target*,$RemoveCond,93,0.1,-1" "OnTrigger" "@p@powerup_bystander_target*,$RemoveCond,103,0.1,-1" "OnTrigger" "@p@powerup_bystander_target*,$RemoveCond,109,0.1,-1" "OnTrigger" "@p@powerup_haver_target*,$RemoveCond,91,0.1,-1" "OnTrigger" "@p@powerup_haver_target*,$RemoveCond,66,0.1,-1" } } cloak_logic_medic { OnParentKilledOutput { Target "item_powerup_rune" Action Kill Delay 0 } OnParentKilledOutput { Target "powerup_logic_relay" Action Trigger Delay 0.001 } } powerup_logic_bot { OnSpawnOutput { Target "powerup_haver_target" Action SetParent Param "!activator" Delay 0.01 } OnParentKilledOutput { Target "item_powerup_rune" Action Kill Delay 0 } info_target { "targetname" "powerup_haver_target" } } Firedome_Spawn { OnSpawnOutput { Target "!activator" Action "$AddItemAttribute" Param "CARD: damage bonus|1.25|1" Delay 0 } OnSpawnOutput { Target "!activator" Action "$AddItemAttribute" Param "CARD: damage bonus|1.25|2" Delay 0 } OnParentKilledOutput { Target "!activator" Action "$RemoveItemAttribute" Param "CARD: damage bonus|1" Delay 0 } OnParentKilledOutput { Target "!activator" Action "$RemoveItemAttribute" Param "CARD: damage bonus|2" Delay 0 } // OnSpawnOutput // { // Target "@e@m_hMyWeapons@!activator" // Action "$SetProp$m_iClip1" // Param "0" // Delay 0 // } //very weird hack to prevent switching to weapon // OnSpawnOutput // { // Target "@e@m_hMyWeapons@!activator" // Action "$SetProp$m_bFlipViewModel" // Param "0" // Delay 0.01 // } OnSpawnOutput { Target "!activator" Action "$WeaponSwitchSlot" Param "1" Delay 0 } OnSpawnOutput { Target "shield_hitbox" Action "$SetOwner" Param "!activator" } OnSpawnOutput { Target "shield_hitbox2" Action "$SetOwner" Param "!activator" } OnSpawnOutput { Target "shield_burner" Action "$SetOwner" Param "!activator" } OnSpawnOutput { Target "shield_burner2" Action "$SetOwner" Param "!activator" } OnSpawnOutput { Target "projectile_shield" Action "$SetModel" Param "models/weapons/w_models/w_drg_ball.mdl" } OnSpawnOutput { Target "fireball_trail" Action "Start" } OnSpawnOutput { Target "fireball_trail2" Action "Start" } OnSpawnOutput { Target "rotate" Action "Start" } OnSpawnOutput { Target "rotate2" Action "Start" } OnSpawnOutput { Target "rotate" Action "SetParent" Param "" } OnSpawnOutput { Target "rotate2" Action "SetParent" Param "" } OnSpawnOutput { Target "rotate_position" Action "Trigger" } filter_activator_tfteam { "targetname" "filter_is_blue" "Negated" "0" "TeamNum" "3" } logic_relay { "targetname" "rotate_position" "spawnflags" "2" "OnTrigger" "rotate,$TeleportToEntity,!activator,0,-1" "OnTrigger" "rotate2,$TeleportToEntity,!activator,0,-1" "OnTrigger" "!self,Trigger,,0.01,-1" } trigger_hurt { "parentname" "rotate" "origin" "100 0 1" "mins" "-12 -53 -51.5" "maxs" "12 53 51.5" "targetname" "shield_hitbox" "spawnflags" "1" "filtername" "filter_redteam" "Damage" "60" //damage is half of this "damagetype" "8" } trigger_ignite { "parentname" "rotate" "origin" "100 0 1" "mins" "-12 -53 -51.5" "maxs" "12 53 51.5" "targetname" "shield_burner" "spawnflags" "1" "filtername" "filter_redteam" "burn_duration" "5" "damage_percent_per_second" "2" } entity_medigun_shield { "parentname" "rotate" "targetname" "projectile_shield" "origin" "100 0 10" "spawnflags" "1" "teamnum" "3" "skin" "1" } info_particle_system { "targetname" "fireball_trail" "parentname" "rotate" "effect_name" "spell_fireball_small_trail_blue" "origin" "100 0 10" } func_rotating { "targetname" "rotate" "origin" "0 0 0" "mins" "-0.1 -0.1 -0.1" "maxs" "0.1 0.1 0.1" "dmg" "0" "fanfriction" "100" "maxspeed" "120" "spawnflags" "64" "volume" "0" } //2nd shield trigger_hurt { "parentname" "rotate2" "mins" "-12 -53 -51.5" "maxs" "12 53 51.5" "origin" "-100 0 1" // "angles" "180 0 0" "targetname" "shield_hitbox2" "spawnflags" "1" "filtername" "filter_redteam" "Damage" "60" //damage is half of this "damagetype" "512" } trigger_ignite { "parentname" "rotate" "mins" "-12 -53 -51.5" "maxs" "12 53 51.5" "origin" "-100 0 1" "targetname" "shield_burner2" "spawnflags" "1" "filtername" "filter_redteam" "burn_duration" "5" "damage_percent_per_second" "2" } entity_medigun_shield { "parentname" "rotate2" "targetname" "projectile_shield" "origin" "-100 0 5" "angles" "-180 0 -180" "spawnflags" "1" "teamnum" "3" "skin" "1" } info_particle_system { "targetname" "fireball_trail2" "parentname" "rotate2" "effect_name" "spell_fireball_small_trail_blue" "origin" "-100 0 5" } func_rotating { "targetname" "rotate2" "origin" "0 0 0" "mins" "-0.1 -0.1 -0.1" "maxs" "0.1 0.1 0.1" "dmg" "0" "fanfriction" "100" "maxspeed" "120" "spawnflags" "64" "volume" "0" } } Thunderdome_Bot { OnSpawnOutput { Target "projectile_shield_bot" Action "$SetModel" Param "models/props_mvm/mvm_comically_small_player_shield.mdl" } OnSpawnOutput { Target "projectile_shield_bot2" Action "$SetModel" Param "models/props_mvm/mvm_comically_small_player_shield.mdl" } OnSpawnOutput { Target "popscript" Action "$registerShieldThunderdome" Param "projectile_shield_bot" Delay 0.1 } OnSpawnOutput { Target "popscript" Action "$registerShieldThunderdome" Param "projectile_shield_bot2" Delay 0.1 } OnSpawnOutput { Target "rotate_bot" Action "Start" } OnSpawnOutput { Target "rotate2_bot" Action "Start" } OnSpawnOutput { Target "rotate_bot" Action "SetParent" Param "" } OnSpawnOutput { Target "rotate2_bot" Action "SetParent" Param "" } OnSpawnOutput { Target "rotate_bot_position" Action "Trigger" } logic_relay { "targetname" "rotate_bot_position" "spawnflags" "2" "OnTrigger" "rotate_bot,$TeleportToEntity,!activator,0,-1" "OnTrigger" "rotate2_bot,$TeleportToEntity,!activator,0,-1" "OnTrigger" "!self,Trigger,,0.01,-1" } entity_medigun_shield { "parentname" "rotate_bot" "targetname" "projectile_shield_bot" "origin" "100 0 30" "spawnflags" "1" "teamnum" "2" } func_rotating { "targetname" "rotate_bot" "origin" "0 0 30" "mins" "-0.1 -0.1 -0.1" "maxs" "0.1 0.1 0.1" "dmg" "0" "fanfriction" "100" "maxspeed" "90" "spawnflags" "64" "volume" "0" } //2nd shield entity_medigun_shield { "parentname" "rotate2_bot" "targetname" "projectile_shield_bot2" "origin" "-100 0 30" "angles" "-180 0 -180" "spawnflags" "1" "teamnum" "2" } func_rotating { "targetname" "rotate2_bot" "origin" "0 0 30" "mins" "-0.1 -0.1 -0.1" "maxs" "0.1 0.1 0.1" "dmg" "0" "fanfriction" "100" "maxspeed" "90" "spawnflags" "64" "volume" "0" } OnSpawnOutput { Target "botstate_checker" Action "Trigger" Delay 0.1 } logic_relay { "targetname" "thunderdome_bot_shield_disable" "OnTrigger" "rotate_bot,Stop" "OnTrigger" "rotate2_bot,Stop" "OnTrigger" "projectile_shield_bot,$SetModel,models/empty.mdl" "OnTrigger" "projectile_shield_bot2,$SetModel,models/empty.mdl" "OnTrigger" "shield_hitbox_bot,Disable" "OnTrigger" "shield_hitbox2_bot,Disable" "OnTrigger" "!self,Disable" "OnTrigger" "thunderdome_bot_shield_enable,Enable" } logic_relay { "targetname" "thunderdome_bot_shield_enable" "OnTrigger" "rotate_bot,Start" "OnTrigger" "rotate2_bot,Start" "OnTrigger" "projectile_shield_bot,$SetModel,models/props_mvm/mvm_comically_small_player_shield.mdl" "OnTrigger" "projectile_shield_bot2,$SetModel,models/props_mvm/mvm_comically_small_player_shield.mdl" "OnTrigger" "shield_hitbox_bot,Enable" "OnTrigger" "shield_hitbox2_bot,Enable" "OnTrigger" "!self,Disable" "OnTrigger" "thunderdome_bot_shield_disable,Enable" } filter_tf_condition { "targetname" "filter_is_sapped" "Negated" "0" "condition" "50" } filter_tf_condition { "targetname" "filter_is_reprogrammed" "Negated" "1" "condition" "43" } filter_tf_condition { "targetname" "filter_is_gatestunned" "Negated" "0" "condition" "71" } filter_multi { "targetname" "filter_botstate" "Negated" "0" "FilterType" "1" "Filter01" "filter_is_sapped" "Filter02" "filter_is_reprogrammed" "Filter03" "filter_is_gatestunned" "OnPass" "thunderdome_bot_shield_disable,Trigger" "OnFail" "thunderdome_bot_shield_enable,Trigger" } logic_relay { "targetname" "botstate_checker" "spawnflags" "2" "OnTrigger" "!self,Trigger,,0.1,-1" "OnTrigger" "filter_botstate,TestActivator,!activator,0,-1" } } MeleePullout // big thanks to royal for making this tech. { OnSpawnOutput { Target "!activator" Action "AddOutput" Param "targetname one" Delay 0.1 } OnParentKilledOutput { Target "!activator" Action "AddOutput" Param "targetname " Delay 0 } $filter_sendprop { "targetname" "filter_is_blu" "$name" "m_iTeamNum" "$value" "3" } $filter_sendprop { "targetname" "filter_isnt_spy" "Negated" "1" "$name" "m_iClass" "$value" "8" } filter_multi { "targetname" "filter_melee_pullout_main" "Negated" "0" "FilterType" "0" "Filter01" "filter_is_blu" "Filter02" "filter_isnt_spy" } //sucker punches you out of his way if you attempt to bodyblock like a boss //doesn't trigger against spies so as to make their job not aid trigger_multiple { "targetname" "melee_pullout_range" "origin" "0 0 0" "mins" "-100.0 -100.0 -100.0" "maxs" "100.0 100.0 100.0" "spawnflags" "1" "wait" "0.5" "filtername" "filter_melee_pullout_main" "OnStartTouch" "one,$WeaponSwitchSlot,2,0,-1" "OnStartTouch" "one,$AddPlayerAttribute,disable weapon switch|1,0.01,-1" "OnStartTouch" "one,$RemovePlayerAttribute,disable weapon switch,0.4,-1" "OnStartTouch" "one,$WeaponSwitchSlot,1,0.41,-1" "OnStartTouch" "!self,Disable,1,0.42,-1" "OnStartTouch" "!self,Enable,1,1.42,-1" } } filters_mini { NoFixup 1 filter_activator_class { "targetname" "filter_sentrygun" "filterclass" "obj_sentrygun" } } test_mini { OnSpawnOutput { Target "triggerrefresh" Action Open } OnSpawnOutput { Target "convertmini" Action SetParent Param "!activator" } func_door { "targetname" "triggerrefresh" "rendermode" "10" "spawnflags" "4108" "speed" "1" "wait" "0.01" "onfullyclosed" "!self,open,,0,-1" } trigger_multiple { "targetname" "sentryDetect" "parentname" "triggerrefresh" "mins" "-96 -96 -96" "maxs" "96 96 96" "filtername" "filter_sentrygun" "spawnflags" "64" "onstarttouch" "convertmini,SetValueCompare,$$=?(!activator.m_bMiniBuilding == 1 && !activator.m_nSolidType > 0,1,0),0,-1" } logic_compare { "targetname" "convertmini" "comparevalue" "1" "onequalto" "!activator,SetParent,droneLocation,0.1,-1" "onequalto" "!activator,SetParentAttachment,head,0.15,-1" "onequalto" "!activator,$SetProp$m_iAmmoShells,99999999,0,-1" //gives them tons of ammo "onequalto" "!activator,$SetProp$m_iAmmoShells,99999999,5,-1" //gives them tons of ammo "onequalto" "!activator,$SetProp$m_nSolidType,0,0,-1" //stops them blocking the player, also used to detect if mini has been turned into a drone "onequalto" "!activator,$SetModelOverride,models/rcat/rcat_level2.mdl,0,-1" // sets model | make sure to precache "onequalto" "!activator,$SetProp$m_nSkin,1,0,-1" } prop_dynamic { "targetname" "droneLocation" // invisible engineer doomed to carry the drone for all eternity "model" "models/player/engineer.mdl" "origin" "40 -50 15" "disableshadows" "1" "rendermode" "9" "renderamt" "0" } } } SpawnTemplate corelogic SpawnTemplate barriers SpawnTemplate Blockers SpawnTemplate textualtimer SpawnTemplate Nuke SpawnTemplate Combo_Pyro SpawnTemplate Hatchblocker SpawnTemplate BotPusher //SpawnTemplate Spawn_Abuse_Fix // funky SpawnTemplate HealPacks SpawnTemplate musick SpawnTemplate Engy_Dudebro_Logic SpawnTemplate Powerup_Logic SpawnTemplate filters_mini SpawnTemplate PlayersLeftLogic SpawnTemplate PlayerResInput PlayerSpawnTemplate PlayerTracker PlayerSpawnTemplate { Name "PlayerRes" Bone "bip_spine_2" } PlayerItemEquipSpawnTemplate { Name "Firedome_Spawn" ItemName "Firedome" } PlayerItemEquipSpawnTemplate { Name "test_mini" ItemName "The Gunslinger" } SpawnTemplate { Name "station" Origin "-1480 4528 416" Angles "0 0 0" } SpawnTemplate { Name "station" Origin "1152 6852 695" Angles "0 180 0" } SpawnTemplate { Name station Origin "-264.001 6752 688" Angles "0 180 0" } SpawnTemplate { Name "enemyspawner" Origin "-176 3700 271" Angles "0 90 0" } SpawnTemplate { Name "enemyspawner" Origin "1069 2867 247" Angles "0 90 0" } SpawnTemplate { Name "enemyspawner" Origin "-1081 2792 215" Angles "0 90 0" } SpawnTemplate { Name "enemyspawner" Origin "-1798 2238 334" Angles "0 270 0" } SpawnTemplate { Name "enemyspawner" Origin "920 -1120 300" Angles "0 90 0" } SpawnTemplate { Name "enemyspawner" Origin "-1615 -1408 56" Angles "0 0 0" } SpawnTemplate { Name "enemyspawner" Origin "-1615 -1408 56" Angles "0 0 0" } SpawnTemplate { Name "enemyspawner" Origin "-140 -4664 167" Angles "0 0 0" } SpawnTemplate { Name "enemyspawner" Origin "-403.998 252.001 506" Angles "0 180 0" } SpawnTemplate { Name "enemyspawner" Origin "-176.001 16.0008 506" Angles "0 270 0" } ExtraSpawnPoint { Name "spawnbot_bombguy" StartDisabled 1 TeamNum 3 X "-1006" Y "6797" Z "700" } ExtraSpawnPoint { Name "spawnbot_top_front_building" TeamNum 2 X "-176" Y "3700" Z "295" } ExtraSpawnPoint { Name "spawnbot_station" TeamNum 2 X "1069" Y "2867" Z "264" } ExtraSpawnPoint { Name "spawnbot_front_backarea" TeamNum 2 X "-1081" Y "2792" Z "240" } ExtraSpawnPoint { Name "spawnbot_tunnel1" TeamNum 2 X "551" Y "2466" Z "88" } ExtraSpawnPoint { Name "spawnbot_tunnel2" TeamNum 2 X "-908" Y "2450" Z "88" } ExtraSpawnPoint { Name "spawnbot_ruins_topdoor" TeamNum 2 X "-1798" Y "2238" Z "358" } ExtraSpawnPoint { Name "spawnbot_ruins_farleft" TeamNum 2 X "920" Y "-1120" Z "324" } ExtraSpawnPoint { Name "spawnbot_pyramid" TeamNum 2 X "-404" Y "252" Z "530" } ExtraSpawnPoint { Name "spawnbot_pyramid" TeamNum 2 X "-176" Y "16" Z "530" } ExtraSpawnPoint { Name "spawnbot_heli" TeamNum 2 X "233" Y "367" Z "400" } ExtraSpawnPoint { Name "spawnbot_belowbridge" TeamNum 2 X "-1616" Y "-1408" Z "73" } ExtraSpawnPoint { Name "spawnbot_big" TeamNum 2 X "-140" Y "-4664" Z "184" } ExtraSpawnPoint { Name "literally_on_hatch" TeamNum 2 X "-132" Y "-3704" Z "80" } ExtraSpawnPoint { Name "spawnbot_special" TeamNum 2 X "851" Y "4850" Z "69" } ExtraTankPath { Name "blimp" Node "-328 -3772 785.028" Node "-328 -856 785.028" Node "-496 -144 785.028" Node "-496 824 785.028" Node "-496 1312 785.028" Node "-328 1904 785.028" } ExtraTankPath { Name "tank_red_path1" Node "-2264 1616 168" Node "-1432 1616 168" Node "-1080 1616 168" Node "-936 1704 168" Node "-936 2088 168" Node "-936 2368 168" Node "-936 2432 168" Node "-904 2472 168" Node "-648 2560 168" Node "-624 2600 168" Node "-624 3984 168" Node "-792 4160 168" Node "-792 4896 168" } ExtraTankPath { Name "tank_red_path2" Node "-2332 1616 156" Node "-2232 1616 156" Node "-1568 1616 156" Node "-977 1616 156" Node "-909 1584 156" Node "-881 1516 156" Node "-881 1440 156" Node "-881 1366 156" Node "-853 1298 156" Node "-785 1256 156" Node "512 1266 156" Node "580 1294 156" Node "612 1362 156" Node "612 2431 156" Node "597 2474 156" Node "346 2557 156" Node "328 2600 156" Node "328 2817 156" Node "375 2914 156" Node "461 2979 156" Node "514 3071 156" Node "498 3606 156" Node "631 3768 156" Node "684 3860 156" Node "684 4331 156" Node "709 4382 156" Node "1185 4679 156" } ExtraTankPath { Name "gen1" Node "1040 4638 56" Node "1041 4638 56" } ExtraTankPath { Name "gen2" Node "-1567 1924 72" Node "-1865 1924 72" } ExtraTankPath { Name "gen3" Node "-1864 945 288" Node "-1863 945 288" } ExtraTankPath { Name "gen4" Node "-797 -1072 334" Node "-796 -1072 334" } ExtraTankPath { Name "gen5" Node "-1377 -1502 49" Node "-1376 -1502 49" } Templates { RedBot { Attributes DisableDodge Action Mobber AddCond { Name "TF_COND_REPROGRAMMED" } AddCond { Name "TF_COND_INVULNERABLE_USER_BUFF" Duration 3 } } RedBotGiant { Action Mobber AddCond { Name "TF_COND_REPROGRAMMED" } Attributes DisableDodge CharacterAttributes { "voice pitch scale" 0 "health from packs decreased" 0.01 } } DefendPoint1 { InterruptAction // Stop current bot ai and force the bot to move to a location { Target "cap_area1" // Move target location Delay 1 // Time before the first task starts. Must be above 0, or it will not execute (Default: 10) Repeats 1 // How many times should bot do the task in total (Default: 0 - Infinite) Cooldown 3 //Time between each task (Default: 10) Duration 300 // How long should the ai be interrupted } } DefendPoint2 { InterruptAction // Stop current bot ai and force the bot to move to a location { Target "cap_area2" // Move target location Delay 1 // Time before the first task starts. Must be above 0, or it will not execute (Default: 10) Repeats 1 // How many times should bot do the task in total (Default: 0 - Infinite) Cooldown 3 //Time between each task (Default: 10) Duration 300 // How long should the ai be interrupted } } DefendPoint3 { InterruptAction // Stop current bot ai and force the bot to move to a location { Target "cap_area3" // Move target location Delay 1 // Time before the first task starts. Must be above 0, or it will not execute (Default: 10) Repeats 1 // How many times should bot do the task in total (Default: 0 - Infinite) Cooldown 3 //Time between each task (Default: 10) Duration 300 // How long should the ai be interrupted } } DefendPoint4 { InterruptAction // Stop current bot ai and force the bot to move to a location { Target "cap_area4" // Move target location Delay 1 // Time before the first task starts. Must be above 0, or it will not execute (Default: 10) Repeats 1 // How many times should bot do the task in total (Default: 0 - Infinite) Cooldown 3 //Time between each task (Default: 10) Duration 300 // How long should the ai be interrupted } } T_TFBot_Pyro_Manmelter_Combo { Name "Combo Pyro" Class Pyro ClassIcon pyro_manmelter Scale 1.35 Health 650 Skill Expert MaxVisionRange 1200 Item "The Degreaser" Item "The Manmelter" Item "The Bubble Pipe" ItemAttributes { ItemName "The Degreaser" "fire input on hit" "combo_primary_to_secondary_longhold^Trigger^" "airblast disabled" 1 "damage penalty" 0.1 } ItemAttributes { ItemName "The Manmelter" "damage bonus vs burning" 1.5 "faster reload rate" 0.8 } CharacterAttributes { "voice pitch scale" 0.8 } } T_TFBot_Red_Scout_Milk { Name "Milk Scout" Class Scout ClassIcon scout_milk Attributes AlwaysFireWeapon Attributes DisableDodge Skill Easy WeaponRestrictions SecondaryOnly Action Mobber AddCond { Name "TF_COND_REPROGRAMMED" } StripItemSlot 0 Item "Mad Milk" Item "The Milkman" ItemAttributes { ItemName "Mad Milk" "effect bar recharge rate increased" -1 } } T_TFBot_Medic_Kritzkrieg { Name "Kritzkrieg Medic" Class Medic ClassIcon medic_kritz Attributes SpawnWithFullCharge Item "The Kritzkrieg" Item "The Weather Master" ItemAttributes { ItemName "The Kritzkrieg" "heal rate bonus" 5 "uber duration bonus" -10 "ubercharge rate bonus" 100 } CharacterAttributes { "bot medic uber health threshold" 444 } } T_TFBot_Soldier_Spammer_Armored { Name "Armored Rapid Fire Bison Soldier" Class Soldier ClassIcon soldier_bison Scale 1.35 Health 650 Skill Hard WeaponRestrictions SecondaryOnly Item "The Righteous Bison" Item "Lord Cockswain's Pith Helmet" ItemAttributes { ItemName "The Righteous Bison" "fire rate bonus" 0.4 "reload time decreased" 0.5 "set item tint rgb" 12713981 } ItemAttributes { ItemName "Lord Cockswain's Pith Helmet" "set item tint rgb" 12713981 } CharacterAttributes { "move speed bonus" 0.85 } } T_TFBot_Red_Heavyweapons_Shotgun_Armored { Name "Armored Shotgun Heavy" Class Heavyweapons ClassIcon heavy_armored_shotgun_red Scale 1.5 Health 900 Skill Hard WeaponRestrictions SecondaryOnly AddCond { Name "TF_COND_REPROGRAMMED" } Action Mobber Item "Der Maschinensoldaten-Helm" Item "Die Regime-Panzerung" ItemAttributes { ItemName "TF_WEAPON_SHOTGUN_HWG" "faster reload rate" 0.1 "fire rate bonus" 2.5 "bullets per shot bonus" 3 "damage bonus" 0.33 } } T_TFBot_Red_Heavyweapons_Fist_Gold { Name "Golden Gauntlet" Class Heavyweapons classicon heavy_steelfist Scale 1.5 Health 900 Attributes DisableDodge Skill Hard WeaponRestrictions MeleeOnly AddCond { Name "TF_COND_REPROGRAMMED" } Action Mobber Item "Fists of Steel" Item "The Aztec Aggressor" ItemAttributes { ItemName "Fists of Steel" "item color rgb" 16766720 "turn to gold" 1 } ItemAttributes { ItemName "The Aztec Aggressor" "set item tint rgb" 15185211 } } T_TFBot_Giant_Sniper_Huntsman { Name "Giant Bowman" Class Sniper ClassIcon sniper_bow_giant Health 3000 Attributes MiniBoss Skill Expert MaxVisionRange 1200 WeaponRestrictions PrimaryOnly UseCustomModel "models/bots/sniper_boss/bot_sniper_boss.mdl" Item "The Huntsman" ItemAttributes { ItemName "The Huntsman" "damage bonus" 1.5 } CharacterAttributes { "move speed bonus" 0.5 "damage force reduction" 0.2 "airblast vulnerability multiplier" 0.2 "override footstep sound set" 7 } } T_TFBot_Red_Giant_Sniper_Jumping_Bushwacka { Name "Giant Jumping Bushwacka Sniper" Class Sniper ClassIcon sniper_bushwacka_giant Health 1800 Attributes MiniBoss Attributes DisableDodge Skill Expert MaxVisionRange 720 WeaponRestrictions SecondaryOnly Action Mobber AddCond { Name "TF_COND_REPROGRAMMED" } UseCustomModel "models/bots/sniper_boss/bot_sniper_boss.mdl" UseMeleeThreatPrioritization 1 StripItemSlot 0 Item "Jarate" Item "The Bushwacka" Item "Marsupial Man" Item "Kanga Kickers" Item "Roo Rippers" ItemAttributes { ItemName "Jarate" "effect bar recharge rate increased" 0.1 } ItemAttributes { ItemName "The Bushwacka" "melee cleave attack" 1 } CharacterAttributes { "move speed bonus" 1.25 "damage force reduction" 0 "airblast vulnerability multiplier" 0 "override footstep sound set" 7 "voice pitch scale" 0 "health from packs decreased" 0.01 "increased jump height" 2 "cancel falling damage" 1 "head scale" 1.5 } FireWeapon { Delay 6 Cooldown 6 Repeats 0 IfSeeTarget 1 Duration 0.5 Type "Jump" } WeaponSwitch { Delay 0 Cooldown 1 Repeats 1 IfSeeTarget 0 Type "Secondary" } WeaponSwitch { Delay 1 Cooldown 2.5 Repeats 0 IfSeeTarget 1 Type "Melee" } } T_TFBot_Red_Giant_Pyro_Neon { Name "Giant Pyroshark" Class Pyro ClassIcon pyro_neon_red Health 3300 Attributes MiniBoss Attributes DisableDodge Skill Expert WeaponRestrictions MeleeOnly Action Mobber AddCond { Name "TF_COND_REPROGRAMMED" } StripItemSlot 0 StripItemSlot 1 Item "The Neon Annihilator" Item "The Cranial Carcharodon" ItemAttributes { ItemName "The Neon Annihilator" // "fire rate bonus" 0.6 "mult dmg vs giants" 3 "melee cleave attack" 1 } CharacterAttributes { "move speed bonus" 0.5 "damage force reduction" 0.2 "airblast vulnerability multiplier" 0.2 "override footstep sound set" 6 "voice pitch scale" 0 "health from packs decreased" 0.01 } } T_TFBot_Red_Giant_Heavyweapons_Gold_Fist { Name "Giant Golden Gauntlet" Class Heavyweapons classicon heavy_steelfist_giant Health 5000 Attributes MiniBoss Attributes DisableDodge Skill Expert WeaponRestrictions MeleeOnly Action Mobber AddCond { Name "TF_COND_REPROGRAMMED" } Item "Fists of Steel" Item "The Aztec Aggressor" ItemAttributes { ItemName "Fists of Steel" "item color rgb" 16766720 "turn to gold" 1 "damage bonus" 2 "fire rate bonus" 0.6 } ItemAttributes { ItemName "The Aztec Aggressor" "set item tint rgb" 15185211 } CharacterAttributes { "move speed bonus" 0.5 "damage force reduction" 0 "airblast vulnerability multiplier" 0 "override footstep sound set" 2 "voice pitch scale" 0 "health from packs decreased" 0.01 } } T_TFBot_Red_Giant_Scout_Batsaber { Name "Giant Batsaber Scout" Class Scout ClassIcon scout_batsaber Health 1200 Attributes MiniBoss Attributes DisableDodge Skill Expert WeaponRestrictions MeleeOnly Action Mobber AddCond { Name "TF_COND_REPROGRAMMED" } Item "Batsaber" Item "Phononaut" CharacterAttributes { "damage force reduction" 0 "airblast vulnerability multiplier" 0 "override footstep sound set" 5 "voice pitch scale" 0 "health from packs decreased" 0.01 } } T_TFBot_Red_Giant_Demo_Clusterbomb { Name "Giant Clusterbomb Demo" Class Demoman ClassIcon demo_ironburst_red Health 3300 Attributes MiniBoss Attributes HoldFireUntilFullReload Skill Expert WeaponRestrictions PrimaryOnly Action Mobber AddCond { Name "TF_COND_REPROGRAMMED" } Item "The Iron Bomber" ItemAttributes { ItemName "The Iron Bomber" "faster reload rate" 0.65 //35% faster reload "fire rate bonus" 0.1 "clip size upgrade atomic" 7.0 "projectile spread angle penalty" 5 "Projectile speed increased" 1.1 } CharacterAttributes { "move speed bonus" 0.5 "damage force reduction" 0.2 "airblast vulnerability multiplier" 0.2 "override footstep sound set" 4 "voice pitch scale" 0 "health from packs decreased" 0.01 } } T_TFBot_Red_Giant_Demoknight_Faulty { Name "Giant Faulty Demoknight" Class Demoman ClassIcon demoknight_giant Health 3300 Attributes MiniBoss Attributes DisableDodge Skill Expert WeaponRestrictions MeleeOnly Action Mobber AddCond { Name "TF_COND_REPROGRAMMED" } UseCustomModel "models/bots/demo_boss/bot_demo_boss_gibby.mdl" StripItemSlot 1 Item "The Eyelander" Item "Ali Baba's Wee Booties" Item "Prince Tavish's Crown" ItemAttributes { ItemName "The Eyelander" "critboost on kill" 3 "melee cleave attack" 1 } ItemAttributes { Itemname "Ali Baba's Wee Booties" "max health additive bonus" -0 } CharacterAttributes { "move speed bonus" 0.65 "damage force reduction" 0 "airblast vulnerability multiplier" 0 "override footstep sound set" 4 "voice pitch scale" 0 "health from packs decreased" 0.01 } } T_TFBot_Red_Giant_Spy_Fast // unused { Name "Super Spy" Class Spy ClassIcon spy_fast Health 1200 Attributes MiniBoss Attributes DisableDodge Skill Easy Action Mobber AddCond { Name "TF_COND_REPROGRAMMED" } AimTrackingInterval 0 StripItemSlot 0 Item "The Sharp Dresser" Item "Base Metal Billycock" ItemAttributes { ItemName "The Sharp Dresser" "armor piercing" 100 "dmg bonus vs buildings" 3 "disable buildings on hit" 0.1 } CharacterAttributes { "move speed bonus" 1.35 "damage force reduction" 0 "airblast vulnerability multiplier" 0.7 "override footstep sound set" 7 "voice pitch scale" 0 "health from packs decreased" 0.01 "cannot disguise" 1 "head scale" 0.679 } FireWeapon //Periodically fires weapon { Delay 0 //Time before the first fire input starts (Default: 10) Cooldown 2 //Time between each fire input (Default: 10) Repeats 2 //How many times should bot use the fire input in total (Default: 0 - Infinite) IfSeeTarget 0 //When set to 1, this task activates only when the bot can see the target player (Default 0 - Always activate) Duration 0.1 //How long should the button be pressed (Default: 0.1) Type "Secondary" // Type of fire input, Possible values: } } T_TFBot_Red_Giant_Engineer_Charger { Name "Giant Charged Engineer" Class Engineer ClassIcon engineer_ranger_nys Health 3000 Attributes MiniBoss Attributes DisableDodge Attributes AlwaysCrit Skill Expert WeaponRestrictions SecondaryOnly Action Mobber AddCond { Name "TF_COND_REPROGRAMMED" } Item "The Rescue Ranger" Item "The Giger Counter" Item "The Sightliner" ItemAttributes { ItemName "The Rescue Ranger" "fire rate penalty" 2 "mod max primary clip override" -1 "projectile penetration" 1 "damage bonus" 2 "is_passive_weapon" 1 } CharacterAttributes { "move speed bonus" 0.5 "damage force reduction" 0 "airblast vulnerability multiplier" 0 "override footstep sound set" 6 "voice pitch scale" 0 "health from packs decreased" 0.01 "head scale" 0.679 } } T_TFBot_Giant_Engineer_Widowmaker { Name "Giant Widowmaker Engineer" Class Engineer ClassIcon engineer_widowmaker_nys Health 3000 Attributes MiniBoss Skill Expert MaxVisionRange 1200 WeaponRestrictions PrimaryOnly Item "The Widowmaker" ItemAttributes { ItemName "The Widowmaker" "fire rate bonus" 0.85 "attack projectiles" 1 } CharacterAttributes { "move speed bonus" 0.5 "damage force reduction" 0 "airblast vulnerability multiplier" 0.5 "override footstep sound set" 6 "head scale" 0.679 } } T_TFBot_Red_Giant_Engineer_Pomson { Name "Giant Pomson Engineer" Class Engineer ClassIcon engineer_pomson Health 3000 Attributes MiniBoss Attributes DisableDodge Skill Expert WeaponRestrictions PrimaryOnly Action Mobber AddCond { Name "TF_COND_REPROGRAMMED" } Item "The Pomson 6000" Item "Brain Interface" Item "Iron Lung" ItemAttributes { ItemName "The Pomson 6000" "projectile spread angle penalty" 5 "mult projectile count" 10 "faster reload rate" 0.8 "clip size bonus" 0.33 } CharacterAttributes { "move speed bonus" 0.65 "damage force reduction" 0 "airblast vulnerability multiplier" 0 "override footstep sound set" 56 "voice pitch scale" 0 "health from packs decreased" 0.01 "head scale" 0.679 } } T_TFBot_Red_SentryBuster_Fix //Just normal buster but says kaboom before he blows up { Name "Sentry Buster" Class Demoman ClassIcon sentry_buster_red Scale 1.75 Health 2500 Attributes MiniBoss Attributes DisableDodge Attributes IgnoreEnemies Skill Easy WeaponRestrictions PrimaryOnly AddCond { Name "TF_COND_REPROGRAMMED" } Action SuicideBomber UseBusterModel 1 UseCustomModel "models/bots/demo/red_sentry_buster.mdl" StripItemSlot 1 Item "The Ullapool Caber" ItemAttributes { ItemName "TF_WEAPON_GRENADELAUNCHER" "is invisible" 1 "override projectile type" 27 "custom kill icon" "ullapool_caber_explosion" } ItemAttributes { ItemName "The Ullapool Caber" "is_passive_weapon" 1 "is invisible" 1 } CharacterAttributes { "move speed bonus" 2 "damage force reduction" 0 "airblast vulnerability multiplier" 0 "override footstep sound set" 7 "cannot be backstabbed" 1 } } T_TFBot_Red_Giant_DemoMan_Burstfire { Name "Giga Burst Fire Demo" Class Demoman ClassIcon demo_burst_red_hyper_lite Health 3500 Attributes MiniBoss Attributes DisableDodge Attributes AlwaysCrit Attributes HoldFireUntilFullReload Skill Expert WeaponRestrictions PrimaryOnly Action Mobber AddCond { Name "TF_COND_REPROGRAMMED" } Item "Upgradeable TF_WEAPON_GRENADELAUNCHER" Item "Hazard Headgear" ItemAttributes { ItemName "Upgradeable TF_WEAPON_GRENADELAUNCHER" "damage bonus" 2 "faster reload rate" 0.7 "fire rate bonus" 0.15 "clip size upgrade atomic" 5.0 } CharacterAttributes { "move speed bonus" 0.5 "damage force reduction" 0.2 "airblast vulnerability multiplier" 0.2 "override footstep sound set" 4 "voice pitch scale" 0 "health from packs decreased" 0.01 } } T_TFBot_Red_Scout_BurstFire { Name "Giga Burst Fire Scout" Class Scout ClassIcon scout_burst_hyper Scale 1.8 Health 3000 Attributes MiniBoss Attributes DisableDodge Attributes AlwaysCrit Attributes HoldFireUntilFullReload Skill Expert MaxVisionRange 1200 WeaponRestrictions PrimaryOnly Action Mobber AddCond { Name "TF_COND_REPROGRAMMED" } Item "Upgradeable TF_WEAPON_SCATTERGUN" Item "Death Racer's Helmet" Item "Thrilling Tracksuit" ItemAttributes { ItemName "Upgradeable TF_WEAPON_SCATTERGUN" "damage bonus" 2 "fire rate bonus" 0.2 "faster reload rate" 0.65 "spread penalty" 3 "mod max primary clip override" 8 "auto fires full clip" 1 "auto fires when full" 1 } CharacterAttributes { "move speed penalty" 0.7 "damage force reduction" 0 "airblast vulnerability multiplier" 0 "override footstep sound set" 5 "voice pitch scale" 0 "health from packs decreased" 0.01 } } T_TFBot_Giant_Heavyweapons_RuinGuard { Name "Ruin Guard" Class Heavyweapons ClassIcon heavy_fist_nys Health 3300 Attributes MiniBoss Attributes HoldFireUntilFullReload Attributes SuppressFire Attributes DisableDodge Skill Expert MaxVisionRange 1200 WeaponRestrictions PrimaryOnly Action Mobber AddCond { Name "TF_COND_REPROGRAMMED" } UseCustomModel "models/bots/heavy_boss/bot_heavy_boss_gibby.mdl" AimOffset "0 0 2000" Item "TF_WEAPON_ROCKETLAUNCHER" ItemAttributes { ItemName "TF_WEAPON_ROCKETLAUNCHER" "is invisible" 1 "mod max primary clip override" -1 "mult projectile count" 6 "projectile spread angle penalty" 75 "damage penalty" 0.3 "centerfire projectile" 1 "no self blast dmg" 2 } ItemAttributes { ItemName "TF_WEAPON_FISTS" "is_passive_weapon" 1 "always crit" 1 "fire rate bonus" 0.6 "gesture speed increase" 2.6 } CharacterAttributes { "move speed bonus" 0.5 "damage force reduction" 0 "airblast vulnerability multiplier" 0 "airblast vertical vulnerability multiplier" 0 "override footstep sound set" 2 "voice pitch scale" 0 "health from packs decreased" 0.01 } FireWeapon { Delay 5 Cooldown 2.5 IfSeeTarget 1 Duration 0.5 Type "Primary" } HomingRockets { Enable 1 IgnoreDisguisedSpies 1 IgnoreStealthedSpies 1 TurnPower 500 MaxAimError 250 RocketSpeed 0.5 Acceleration 400 AccelerationTime 4 } } T_TFBot_Faulty_Machine1 { Name "Faulty Machine" Class Soldier ClassIcon soldier_gib_lite Health 125 Attributes DisableDodge Skill Hard WeaponRestrictions MeleeOnly Action Mobber AddCond { Name "TF_COND_REPROGRAMMED" } UseCustomModel "models/bots/soldier/bot_soldier_gibby.mdl" DeathSound "=90|mvm/physics/robo_impact_bullet01.wav" StripItemSlot 0 StripItemSlot 1 Item "Prinny Machete" ItemAttributes { ItemName "Prinny Machete" "is invisible" 1 "custom kill icon" "fists" "custom hit sound" "npc/zombie/zombie_hit.wav" } CharacterAttributes { "voice pitch scale" 0 "move speed bonus" 1.25 "damage penalty" 0.5 } } T_TFBot_Faulty_Machine2 { Name "Faulty Machine" Class Pyro ClassIcon soldier_gib_lite Health 125 Attributes DisableDodge Skill Hard WeaponRestrictions MeleeOnly Action Mobber AddCond { Name "TF_COND_REPROGRAMMED" } UseCustomModel "models/bots/pyro/bot_pyro_gibby.mdl" DeathSound "=90|mvm/physics/robo_impact_bullet01.wav" StripItemSlot 0 StripItemSlot 1 Item "Prinny Machete" ItemAttributes { ItemName "Prinny Machete" "is invisible" 1 "custom kill icon" "fists" "custom hit sound" "npc/zombie/zombie_hit.wav" } CharacterAttributes { "voice pitch scale" 0 "move speed bonus" 1.25 "damage penalty" 0.5 } } T_TFBot_Faulty_Machine3 { Name "Faulty Machine" Class Heavyweapons ClassIcon soldier_gib_lite Health 125 Attributes DisableDodge Skill Hard WeaponRestrictions MeleeOnly Action Mobber AddCond { Name "TF_COND_REPROGRAMMED" } UseCustomModel "models/bots/heavy/bot_heavy_gibby.mdl" DeathSound "=90|mvm/physics/robo_impact_bullet01.wav" StripItemSlot 0 StripItemSlot 1 Item "Prinny Machete" ItemAttributes { ItemName "Prinny Machete" "is invisible" 1 "custom kill icon" "fists" "custom hit sound" "npc/zombie/zombie_hit.wav" } CharacterAttributes { "voice pitch scale" 0 "move speed bonus" 1.25 "damage penalty" 0.5 } } T_TFBot_Faulty_Machine4 { Name "Faulty Machine" Class Demoman ClassIcon soldier_gib_lite Health 125 Attributes DisableDodge Skill Hard WeaponRestrictions MeleeOnly Action Mobber AddCond { Name "TF_COND_REPROGRAMMED" } UseCustomModel "models/bots/demo/bot_demo_gibby.mdl" DeathSound "=90|mvm/physics/robo_impact_bullet01.wav" StripItemSlot 0 StripItemSlot 1 Item "Prinny Machete" ItemAttributes { ItemName "Prinny Machete" "is invisible" 1 "custom kill icon" "fists" "custom hit sound" "npc/zombie/zombie_hit.wav" } CharacterAttributes { "voice pitch scale" 0 "move speed bonus" 1.25 "damage penalty" 0.5 } } T_TFBot_Red_Giant_Medic_Vac_Bullet { Name "Giant Vaccinator Medic (Bullet)" Class Medic ClassIcon medic_bullet Health 4500 Attributes MiniBoss Attributes SpawnWithFullCharge Attributes VaccinatorBullets Attributes BulletImmune Skill Expert WeaponRestrictions SecondaryOnly AddCond { Name "TF_COND_REPROGRAMMED" } Item "The Vaccinator" Item "dec2014 hunter_ushanka" ItemAttributes { ItemName "The Vaccinator" "medigun bullet resist deployed" 2 "medigun bullet resist passive" 2 "medigun charge is resists" 3 "uber duration bonus" 444 "ubercharge rate bonus" 200 } CharacterAttributes { "move speed bonus" 0.5 "damage force reduction" 0 "airblast vulnerability multiplier" 0 "override footstep sound set" 3 "heal rate bonus" 200 "bot medic uber health threshold" 9999 "voice pitch scale" 0 "health from packs decreased" 0.01 } } T_TFBot_Red_Giant_Medic_Vac_Blast { Name "Giant Vaccinator Medic (Blast)" Class Medic ClassIcon medic_blast Health 4500 Attributes MiniBoss Attributes SpawnWithFullCharge Attributes VaccinatorBlast Attributes BlastImmune Skill Expert WeaponRestrictions SecondaryOnly AddCond { Name "TF_COND_REPROGRAMMED" } Item "The Vaccinator" Item "Blast Defense" ItemAttributes { ItemName "The Vaccinator" "medigun blast resist deployed" 2 "medigun blast resist passive" 2 "medigun charge is resists" 4 "uber duration bonus" 444 "ubercharge rate bonus" 200 } CharacterAttributes { "move speed bonus" 0.5 "damage force reduction" 0 "airblast vulnerability multiplier" 0 "override footstep sound set" 3 "heal rate bonus" 200 "bot medic uber health threshold" 9999 "voice pitch scale" 0 "health from packs decreased" 0.01 } } T_TFBot_Red_Giant_Medic_Vac_Fire { Name "Giant Vaccinator Medic (Fire)" Class Medic ClassIcon medic_fire Health 4500 Attributes MiniBoss Attributes SpawnWithFullCharge Attributes VaccinatorFire Attributes FireImmune Skill Expert WeaponRestrictions SecondaryOnly AddCond { Name "TF_COND_REPROGRAMMED" } Item "The Vaccinator" Item "KF Pyro Mask" ItemAttributes { ItemName "The Vaccinator" "medigun fire resist deployed" 2 "medigun fire resist passive" 2 "medigun charge is resists" 5 "uber duration bonus" 444 "ubercharge rate bonus" 200 } CharacterAttributes { "move speed bonus" 0.5 "damage force reduction" 0 "airblast vulnerability multiplier" 0 "override footstep sound set" 3 "heal rate bonus" 200 "bot medic uber health threshold" 9999 "voice pitch scale" 0 "health from packs decreased" 0.01 } } T_TFBot_Chicken_Itza { Name "Chicken Itza" // Get it? Class Scout ClassIcon soldier_burstfire_homing_nys Scale 1.9 Health 20000 Attributes MiniBoss Attributes UseBossHealthBar Attributes DisableDodge Skill Expert WeaponRestrictions SecondaryOnly Action Mobber AddCond { Name "TF_COND_REPROGRAMMED" } StripItemSlot 0 StripItemSlot 2 Item "The Winger" Item "Nugget Noggin" Item "Fowl Fists" Item "Talon Trotters" Item "Meal Dealer" ItemAttributes { ItemName "The Winger" "override projectile type" 2 "hand scale" 1.5 "fire rate bonus" 0.5 "clip size penalty" 1 "mod max primary clip override" 20 "reload time increased" 7.7 "projectile spread angle penalty" 180 "blast radius increased" 1.5 "damage bonus" 5.29 "no self blast dmg" 2 "ragdolls plasma effect" 1 "custom projectile model" "models/empty.mdl" "projectile trail particle" "flamethrower_underwater" "projectile no deflect" 1 } CharacterAttributes { "move speed bonus" 0.85 "damage force reduction" 0 "airblast vulnerability multiplier" 0 "airblast vertical vulnerability multiplier" 0 "rage giving scale" 0.1 "voice pitch scale" 0 "health from packs decreased" 0.01 } ShootTemplate { Name ChickenProjectile Offset "-7 -16 -116" AttachToProjectile 1 } HomingRockets { Enable 1 IgnoreDisguisedSpies 1 IgnoreStealthedSpies 1 RocketSpeed 0.1 TurnPower 360 MaxAimError 360 AimTime 2.2 Acceleration 9999 AccelerationTime 9999 AccelerationStartTime 2 } } T_TFBot_Heavyweight_Champ_Capturer { Name "Lightweight Champ" Class Heavyweapons ClassIcon heavy_gru Attributes DisableDodge Attributes IgnoreFlag StripItemSlot 0 StripItemSlot 1 EventChangeAttributes { Default { Skill Normal Attributes IgnoreFlag BehaviorModifiers Push WeaponRestrictions MeleeOnly Item "Gloves of Running Urgently MvM" Item "Pugilist's Protector" ItemAttributes { ItemName "Pugilist's Protector" "set item tint RGB" 15185211 } } cap_point_1 { Skill Normal Attributes IgnoreFlag BehaviorModifiers Push WeaponRestrictions MeleeOnly Item "Gloves of Running Urgently MvM" Item "Pugilist's Protector" ItemAttributes { ItemName "Pugilist's Protector" "set item tint RGB" 11206400 } InterruptAction // Stop current bot ai and force the bot to move to a location { Target "cap_point1" // Move target location Delay 1 // Time before the first task starts. Must be above 0, or it will not execute (Default: 10) Repeats 1 // How many times should bot do the task in total (Default: 0 - Infinite) Duration 100 // How long should the ai be interrupted // WaitUntilDone 1 // If set, duration timer only starts when the bot moves to the target location or the aim target is killed (Default: 0) } } cap_point_2 { Skill Normal Attributes IgnoreFlag BehaviorModifiers Push WeaponRestrictions MeleeOnly Item "Gloves of Running Urgently MvM" Item "Pugilist's Protector" ItemAttributes { ItemName "Pugilist's Protector" "set item tint RGB" 65407 } InterruptAction // Stop current bot ai and force the bot to move to a location { Target "cap_point2" // Move target location Delay 1 // Time before the first task starts. Must be above 0, or it will not execute (Default: 10) Repeats 1 // How many times should bot do the task in total (Default: 0 - Infinite) Duration 100 // How long should the ai be interrupted // WaitUntilDone 1 // If set, duration timer only starts when the bot moves to the target location or the aim target is killed (Default: 0) } } cap_point_3 { Skill Normal Attributes IgnoreFlag BehaviorModifiers Push WeaponRestrictions MeleeOnly Item "Gloves of Running Urgently MvM" Item "Pugilist's Protector" ItemAttributes { ItemName "Pugilist's Protector" "set item tint RGB" 43520 } InterruptAction // Stop current bot ai and force the bot to move to a location { Target "cap_point3" // Move target location Delay 1 // Time before the first task starts. Must be above 0, or it will not execute (Default: 10) Repeats 1 // How many times should bot do the task in total (Default: 0 - Infinite) Duration 100 // How long should the ai be interrupted // WaitUntilDone 1 // If set, duration timer only starts when the bot moves to the target location or the aim target is killed (Default: 0) } } } } T_TFBot_Demoman_Knight_Gold { Name "Australium-Powered Demoknight" Class Demoman classicon demoknight_golden_lite Scale 1.35 health 650 Attributes DisableDodge Attributes AirChargeOnly Attributes AutoJump AutoJumpMin 10 AutoJumpMax 10 Skill Expert WeaponRestrictions MeleeOnly Action Mobber AddCond { Name "TF_COND_REPROGRAMMED" } Item "The Eyelander" Item "The Splendid Screen" Item "Ali Baba's Wee Booties" Item "MvM Gatebot Light Demoman" ItemAttributes { ItemName "The Eyelander" "is australium item" 1 "item style override" 1 "turn to gold" 1 } CharacterAttributes { "charge time increased" 2 "charge recharge rate increased" 7 "increased jump height" 2.3 "bot custom jump particle" 1 "damage bonus" 1.25 "critboost on kill" 3 } } T_TFBot_Red_Demoman_Knight_RotateShield { Name "Rotating Shield Demoknight" Class Demoman ClassIcon demoknight_shield_red Scale 1.35 Health 650 Attributes DisableDodge Skill Expert MaxVisionRange 750 WeaponRestrictions MeleeOnly Action Mobber AddCond { Name "TF_COND_REPROGRAMMED" } Item "The Eyelander" Item "Ali Baba's Wee Booties" Item "The Hurt Locher" ItemAttributes { ItemName "The Eyelander" "critboost on kill" 3 "fire rate penalty" 200 } ItemAttributes { ItemName "Ali Baba's Wee Booties" "max health additive bonus" -0 } ItemModel { ItemName "The Hurt Locher" Model "models/workshop/weapons/c_models/c_persian_shield/c_persian_shield.mdl" } SpawnTemplate Thunderdome_Bot } T_TFBot_Red_Player1 { Name "New Player" Class Scout ClassIcon red2_lite Attributes DisableDodge Skill Expert MaxVisionRange 1200 Action Mobber UseMeleeThreatPrioritization 1 UseHumanModel 1 AimTrackingInterval 3 UseBestWeapon 1 AddCond { Name "TF_COND_REPROGRAMMED" } Item "The Force-a-Nature" Item "Pretty Boy's Pocket Pistol" Item "Ghastly Gibus" Item "Default Power Up Canteen (MvM)" ItemAttributes { ItemName "The Force-a-Nature" "faster reload rate" 0.6 } CharacterAttributes { "heal on kill" 100 "move speed bonus" 1.2 } } T_TFBot_Red_Player2 { Name "New Player" Class Demoman ClassIcon red2_lite Health 150 Attributes DisableDodge Skill Expert MaxVisionRange 750 Action Sniper UseMeleeThreatPrioritization 1 UseHumanModel 1 AimTrackingInterval 3 UseBestWeapon 1 AddCond { Name "TF_COND_REPROGRAMMED" } Item "The Loose Cannon" Item "The Tide Turner" Item "The Eyelander" Item "Ghastly Gibus" Item "Binoculus" Item "Default Power Up Canteen (MvM)" ItemAttributes { ItemName "The Loose Cannon" "grenade launcher mortar mode" 0 "no self blast dmg" 2 } ItemAttributes { ItemName "The Tide Turner" "lose demo charge on damage when charging" 0 } ItemAttributes { ItemName "The Eyelander" "max health additive penalty" 0 "critboost on kill" 3 } CharacterAttributes { "heal on kill" 100 "charge recharge rate increased" 2 "deploy time decreased" 0.1 } } T_TFBot_Red_Player3 { Name "New Player" Class Sniper ClassIcon red2_lite Attributes DisableDodge Skill Expert MaxVisionRange 3000 Action Sniper UseHumanModel 1 AimTrackingInterval 1.5 UseBestWeapon 1 AddCond { Name "TF_COND_REPROGRAMMED" } Item "The Sydney Sleeper" Item "The Razorback" Item "The Bushwacka" Item "Ghastly Gibus" Item "Tour of Duty Badge Expert 1" Item "Default Power Up Canteen (MvM)" ItemAttributes { ItemName "The Sydney Sleeper" "damage penalty on bodyshot" 0.75 "jarate duration" 10 "projectile penetration" 1 } CharacterAttributes { "heal on kill" 100 } } T_TFBot_Red_Player_Pro1 { Name "Player" Class Sniper ClassIcon tf2_lite Health 125 Attributes IgnoreFlag Attributes DisableDodge Attributes SpawnWithFullCharge ExtAttr AlwaysFireWeaponAlt Skill Expert AddCond { Name "TF_COND_REPROGRAMMED" } AddCond { Name "TF_COND_AIMING" } UseHumanModel 1 AlwaysGlow 1 AimAt Head NoCrouchButtonRelease 1 Item "The Hitman's Heatmaker" Item "The Cozy Camper" Item "Upgradeable TF_WEAPON_CLUB" Item "The Sydney Straw Boat" Item "The Mislaid Sweater" Item "Peculiar Pandemonium Tungsten Robot Of Leaded Lunacy 2022" Item "Default Power Up Canteen (MvM)" ItemAttributes { ItemName "The Hitman's Heatmaker" "explosive sniper shot" 3 "damage bonus" 2 "faster reload rate" 0.4 "SRifle Charge rate increased" 2 "projectile penetration" 1 "heal on kill" 100 } ItemAttributes { ItemName "Default Power Up Canteen (MvM)" "ubercharge" 1 "powerup duration" 5 "powerup charges" 3 } ItemAttributes { ItemName "Upgradeable TF_WEAPON_CLUB" "is_festivized" 1 } CharacterAttributes { "move speed bonus" 1.3 "damage force reduction" 0 "airblast vulnerability multiplier" 0 "airblast vertical vulnerability multiplier" 0 "increase buff duration" 20 "dmg taken from fire reduced" 0.25 "dmg taken from bullets reduced" 0.25 "dmg taken from blast reduced" 0.25 "dmg taken from crit reduced" 0.1 "health regen" 25 } FireWeapon { Delay 0 Cooldown 0 Repeats 0 IfSeeTarget 1 Duration 0.1 Type "Primary" } FireWeapon { Delay 0.1 Cooldown 2 Repeats 0 IfSeeTarget 0 Duration 0.1 Type "Reload" } FireWeapon { Delay 0.01 Cooldown 0.01 Repeats 0.01 IfSeeTarget 0.01 Duration 100 Type "Crouch" } WeaponResist { TF_WEAPON_KNIFE 0.25 } } T_TFBot_Red_Player_Pro2 { Name "Player" Class Heavyweapons ClassIcon tf2_lite Health 300 Attributes DisableDodge Attributes SpawnWithFullCharge Skill Expert MaxVisionRange 3000 AddCond { Name "TF_COND_REPROGRAMMED" } Action Mobber UseHumanModel 1 AlwaysGlow 1 StripItemSlot 1 Item "Upgradeable TF_WEAPON_MINIGUN" Item "L4D Hat" Item "The Borscht Belt" Item "Jungle Booty" Item "Peculiar Pandemonium Tungsten Robot Of Leaded Lunacy 2022" Item "Default Power Up Canteen (MvM)" ItemAttributes { ItemName "Upgradeable TF_WEAPON_MINIGUN" "is australium item" 1 "turn to gold" 1 "item style override" 1 "damage bonus" 2 "attack projectiles" 2 "heal on kill" 100 "fire rate bonus" 0.6 "projectile penetration heavy" 3 "generate rage on damage" 1 } ItemAttributes { ItemName "Default Power Up Canteen (MvM)" "critboost" 1 "powerup duration" 5 "powerup charges" 3 } CharacterAttributes { "move speed bonus" 1.3 "damage force reduction" 0 "airblast vulnerability multiplier" 0 "airblast vertical vulnerability multiplier" 0 "increase buff duration" 20 "dmg taken from fire reduced" 0.25 "dmg taken from bullets reduced" 0.25 "dmg taken from blast reduced" 0.25 "dmg taken from crit reduced" 0.1 "health regen" 10 } FireWeapon { Delay 3 Cooldown 0 Repeats 1 IfSeeTarget 0 Duration 1 Type "Special" } WeaponResist { TF_WEAPON_KNIFE 0.25 } } T_TFBot_Red_Player_Pro3 { Name "Player" Class Scout ClassIcon tf2_lite Health 125 Attributes DisableDodge Attributes AutoJump AutoJumpMin 6 AutoJumpMax 12 Skill Expert AddCond { Name "TF_COND_REPROGRAMMED" } Action Mobber UseHumanModel 1 AlwaysGlow 1 UseBestWeapon 1 Item "The Soda Popper" Item "Brick" Item "The Front Runner" Item "The Track Terrorizer" Item "Default Power Up Canteen (MvM)" ItemAttributes { ItemName "The Soda Popper" "damage bonus" 2 "attack projectiles" 2 "heal on kill" 100 "projectile penetration" 1 } ItemAttributes { ItemName "Default Power Up Canteen (MvM)" "critboost" 1 "powerup duration" 5 "powerup charges" 3 } ItemAttributes { ItemName "The Track Terrorizer" "set item tint rgb" 16737075 } CharacterAttributes { "move speed bonus" 1.3 "air dash count" 1 "increased jump height" 2 "increased air control" 100 "cancel falling damage" 1 "damage force reduction" 0 "airblast vulnerability multiplier" 0 "airblast vertical vulnerability multiplier" 0 "dmg taken from fire reduced" 0.25 "dmg taken from bullets reduced" 0.25 "dmg taken from blast reduced" 0.25 "dmg taken from crit reduced" 0.1 "health regen" 20 } FireWeapon { Delay 0 Cooldown 3 Repeats 0 IfSeeTarget 0 Duration 0.1 Type "Jump" } WeaponResist { TF_WEAPON_KNIFE 0.25 } } T_TFBot_Red_Player_Pro4 { Name "Player" Class Pyro ClassIcon tf2_lite Health 175 Attributes DisableDodge Attributes SpawnWithFullCharge Skill Expert AddCond { Name "TF_COND_REPROGRAMMED" } Action Mobber UseHumanModel 1 UseMeleeThreatPrioritization 1 AlwaysGlow 1 UseBestWeapon 1 Item "The Phlogistinator" Item "The Thermal Thruster" Item "Trickster's Turnout Gear" Item "The Mishap Mercenary" Item "Default Power Up Canteen (MvM)" ItemAttributes { ItemName "The Phlogistinator" "airblast disabled" 0 "mod rage on hit bonus" 420 "mult airblast refire time" 0.01 "damage bonus" 2 "weapon burn dmg increased" 2 "heal on kill" 100 } ItemAttributes { ItemName "The Thermal Thruster" "thermal_thruster_air_launch" 1 "item_meter_charge_rate" 0.01 "falling_impact_radius_stun" 1 "holster_anim_time" 0 "deploy time decreased" 0.001 } CharacterAttributes { "move speed bonus" 1.3 "cancel falling damage" 1 "always allow taunt" 1 // "dmg penalty vs players" 2 "damage force reduction" 0 "airblast vulnerability multiplier" 0 "airblast vertical vulnerability multiplier" 0 "deploy time decreased" 0.1 "increased air control" 4 "boots falling stomp" 1 "dmg taken from fire reduced" 0.25 "dmg taken from bullets reduced" 0.25 "dmg taken from blast reduced" 0.25 "dmg taken from crit reduced" 0.1 "health regen" 20 } WeaponResist { TF_WEAPON_KNIFE 0.25 } } T_TFBot_Red_Player_Pro5 { Name "Player" Class Soldier ClassIcon tf2_lite Health 200 Attributes DisableDodge Attributes SpawnWithFullCharge Skill Expert AddCond { Name "TF_COND_REPROGRAMMED" } Action Mobber UseHumanModel 1 UseMeleeThreatPrioritization 1 ExtAttr SuppressCanteenUse AlwaysGlow 1 RocketJump 1 Item "The Beggar's Bazooka" Item "The Concheror" Item "The Equalizer" Item "Stainless Pot" Item "Antarctic Parka" Item "Default Power Up Canteen (MvM)" ItemAttributes { ItemName "The Beggar's Bazooka" "can overload" 0 "auto fires full clip" 0 "damage bonus" 2 "rocket specialist" 4 "clip size upgrade atomic" 8 "faster reload rate" 0.4 "fire rate bonus" 0.6 "heal on kill" 100 "mod rage on hit bonus" 420 "blast dmg to self increased" 0 } ItemAttributes { ItemName "Default Power Up Canteen (MvM)" "critboost" 1 "powerup charges" 3 "powerup duration" 5 } CharacterAttributes { "increase buff duration" 2 "deploy time decreased" 0.5 "damage force reduction" 0 "airblast vulnerability multiplier" 0 "airblast vertical vulnerability multiplier" 0 "dmg taken from fire reduced" 0.25 "dmg taken from bullets reduced" 0.25 "dmg taken from blast reduced" 0.25 "dmg taken from crit reduced" 0.1 "health regen" 20 } FireWeapon { IfHealthBelow 100 Delay 0 Cooldown 0 Repeats 0 IfSeeTarget 0 Duration 0.1 Type "Action" } WeaponSwitch // Extra Canteen trolling { IfHealthBelow 50 Delay 0 Cooldown 0 Repeats 0 IfSeeTarget 0 Type "Melee" } WeaponSwitch // Extra Canteen trolling { IfHealthAbove 50 Delay 1 Cooldown 0 Repeats 0 IfSeeTarget 0 Type "Primary" } VoiceCommand { Delay 0 Cooldown 5 Type "Battle Cry" } WeaponResist { TF_WEAPON_KNIFE 0.25 } } T_TFBot_Red_Player_Pro6 { Name "Player" Class Engineer ClassIcon tf2_lite Health 125 Attributes DisableDodge Attributes AlwaysFireWeapon Skill Expert AddCond { Name "TF_COND_REPROGRAMMED" } Action Mobber UseHumanModel 1 UseMeleeThreatPrioritization 1 ExtAttr SuppressCanteenUse AlwaysGlow 1 Item "The Frontier Justice" Item "The Jag" Item "EOTL_Insulated_innovator" Item "Default Power Up Canteen (MvM)" Item "The Pardner's Pompadour" ItemAttributes { ItemName "The Frontier Justice" "critboost on kill" 5 "faster reload rate" -0.6 "clip size bonus" 3 "projectile penetration" 1 "fire rate bonus" 0.6 "heal on kill" 100 } ItemAttributes { ItemName "The Jag" "fire rate bonus" 0.6 "damage bonus" 2 "heal on kill" 100 "kill forces attacker to laugh" 1 // easter egg } ItemAttributes { ItemName "Default Power Up Canteen (MvM)" "building instant upgrade" 1 "powerup charges" 3 } CharacterAttributes { "engineer sentry build rate multiplier" 10 "engy building health bonus" 4 "engy sentry fire rate increased" 0.7 "deploy time decreased" 0.5 "damage force reduction" 0 "airblast vulnerability multiplier" 0 "airblast vertical vulnerability multiplier" 0 "dmg taken from fire reduced" 0.25 "dmg taken from bullets reduced" 0.25 "dmg taken from blast reduced" 0.25 "dmg taken from crit reduced" 0.1 "health regen" 20 "metal regen" 200 } FireInput { Target "switch_to_sentry_mode" Action "Trigger" Delay 0 Cooldown 7 IfSeeTarget 0 } FireInput { Target "switch_to_shotgun_mode" Action "Trigger" Delay 0 Cooldown 3 IfSeeTarget 1 } FireWeapon // Extra Canteen trolling { Delay 1 Cooldown 7.5 Repeats 0 IfSeeTarget 1 Duration 0.1 Type "Action" } WeaponResist { TF_WEAPON_KNIFE 0.25 } } T_TFBot_Red_Player_Pro7 // demoknight tf2 { Name "Player" Class Demoman ClassIcon tf2_lite Health 175 Attributes DisableDodge Attributes AutoJump AutoJumpMin 6 AutoJumpMax 12 Skill Expert MaxVisionRange 900 WeaponRestrictions MeleeOnly AddCond { Name "TF_COND_REPROGRAMMED" } Action Mobber UseHumanModel 1 UseMeleeThreatPrioritization 1 ExtAttr SuppressCanteenUse AlwaysGlow 1 Item "The Eyelander" Item "The Splendid Screen" Item "The Bootlegger" Item "Default Power Up Canteen (MvM)" Item "Tartan Tyrolean" ItemAttributes { ItemName "The Eyelander" "max health additive penalty" 0 "damage bonus" 2 "melee attack rate bonus" 0.6 "heal on kill" 100 "critboost on kill" 3 "is australium item" 1 "item style override" 1 "turn to gold" 1 "killstreak tier" 3 "killstreak idleeffect" 6 } ItemAttributes { ItemName "The Bootlegger" "max health additive bonus" 0 } ItemAttributes { ItemName "The Splendid Screen" "charge time increased" 3 "charge impact damage increased" 3 "charge recharge rate increased" 7 "mult dmg vs giants" 1.35 "attack not cancel charge" 1 "melee cleave attack" 1 } ItemAttributes { ItemName "Default Power Up Canteen (MvM)" "ubercharge" 1 "powerup charges" 3 "powerup duration" 5 } ItemAttributes { ItemName "Tartan Tyrolean" "attach particle effect" 59 } CharacterAttributes { "move speed bonus" 1.3 "damage force reduction" 0 "airblast vulnerability multiplier" 0 "airblast vertical vulnerability multiplier" 0 "dmg taken from fire reduced" 0.25 "dmg taken from bullets reduced" 0.25 "dmg taken from blast reduced" 0.25 "dmg taken from crit reduced" 0.1 "health regen" 20 "increased jump height" 1.6 "increased air control" 100 "cancel falling damage" 1 } FireWeapon // Extra Canteen trolling { IfHealthBelow 100 Delay 0 Cooldown 1 Repeats 0 IfSeeTarget 1 Duration 0.1 Type "Action" } FireWeapon // Extra Canteen trolling { Delay 0 Cooldown 3 Repeats 0 IfSeeTarget 0 Duration 0.1 Type "Secondary" } } T_TFBot_Red_Player_Pro8 // medic gf { Name "Player" Class Medic ClassIcon tf2_lite Attributes SpawnWithFullCharge Attributes DisableDodge Attributes ProjectileShield Skill Expert AddCond { Name "TF_COND_REPROGRAMMED" } UseHumanModel 1 ExtAttr SuppressCanteenUse AlwaysGlow 1 Item "Festive Crusader's Crossbow" Item "The Kritzkrieg" Item "Festive Ubersaw" Item "Default Power Up Canteen (MvM)" Item "Burly Beast" Item "Medic Mask" Item "Grimm Hatte" ItemAttributes { ItemName "Festive Crusader's Crossbow" "projectile penetration" 1 "heal on kill" 100 "fire rate bonus" 0.6 } ItemAttributes { ItemName "The Kritzkrieg" "uber duration bonus" 6 "ubercharge rate bonus" 2 "healing mastery" 4 "overheal expert" 4 "canteen specialist" 3 "generate rage on heal" 2 "killstreak idleeffect" 7 // Hot Rod "killstreak tier" 3 "is_festivized" 1 } ItemAttributes { ItemName "Festive Ubersaw" "kill eater" 127 "kill eater user 1" 92 "kill eater user score type 1" 33 // Critical Kills "killstreak effect" 2002 "killstreak idleeffect" 7 "killstreak tier" 3 "damage bonus" 2 } ItemAttributes { ItemName "Default Power Up Canteen (MvM)" "ubercharge" 3 "powerup duration" 5 "powerup charges" 3 } ItemAttributes { ItemName "Grimm Hatte" "attach particle effect" 58 "set item tint RGB" 16738740 } CharacterAttributes { "move speed bonus" 1.3 "damage force reduction" 0 "airblast vulnerability multiplier" 0 "airblast vertical vulnerability multiplier" 0 "dmg taken from fire reduced" 0.25 "dmg taken from bullets reduced" 0.25 "dmg taken from blast reduced" 0.25 "dmg taken from crit reduced" 0.1 "health regen" 10 } FireWeapon // Extra Canteen trolling { Delay 3 Cooldown 3 Repeats 0 IfSeeTarget 0 Duration 0.1 Type "Action" } ItemModel { ItemName "Medic Mask" Model "models/player/items/medic/medic_blighted_beak.mdl" } SpawnTemplate MeleePullout } T_TFBot_Giant_Soldier_Mangler_Carrier { Name "Captain Catastrophe" Class Soldier ClassIcon soldier_mangler Health 13000 Attributes MiniBoss Attributes UseBossHealthBar Attributes SpawnWithFullCharge Skill Expert WeaponRestrictions PrimaryOnly Tag bot_giant Tag bomb_fella AimAt Feet Item "The Cow Mangler 5000" Item "The Battalion's Backup" Item "The Hardium Helm" Item "The Jupiter Jumpers" Item "The Space Bracers" ItemAttributes { ItemName "The Cow Mangler 5000" "fire rate bonus" 0.6 "faster reload rate" -0.8 "damage bonus" 1.75 "mod weapon blocks healing" 1 } CharacterAttributes { "move speed bonus" 0.5 "damage force reduction" 0 "airblast vulnerability multiplier" 0 "override footstep sound set" 3 "health from healers reduced" 0.1 "ubercharge rate bonus for healer" 0.1 "increase buff duration" 9 "deploy time decreased" 0.5 } } T_TFBot_Chief_Shapeshifter { Name "Holographic Menace" Class Spy ClassIcon boss_morphing_menace Scale 2.1 Health 200000 Attributes MiniBoss Attributes UseBossHealthBar Attributes DisableDodge Skill Expert WeaponRestrictions PrimaryOnly AddCond { Name "TF_COND_REPROGRAMMED" } Action Mobber FastUpdate 1 UseMeleeThreatPrioritization 1 AimTrackingInterval 0 ExtAttr JumpStomp StripItemSlot 3 StripItemSlot 4 StripItemSlot 5 StripItemSlot 6 ItemAttributes { ItemName "TF_WEAPON_REVOLVER" "damage bonus" 2.5 } CharacterAttributes { "move speed bonus" 0.5 "damage force reduction" 0 "airblast vulnerability multiplier" 0 "airblast vertical vulnerability multiplier" 0 "rage giving scale" 0.1 "cannot disguise" 1 "voice pitch scale" 0 "health from packs decreased" 0.01 "cannot be sapped" 1 } AddCond { Index 4 Duration 0.4 } EventChangeAttributes { Default { Attributes MiniBoss Attributes UseBossHealthBar } Demo { Attributes MiniBoss Attributes UseBossHealthBar Attributes HoldFireUntilFullReload WeaponRestrictions PrimaryOnly Item "Upgradeable TF_WEAPON_GRENADELAUNCHER" Item "Prince Tavish's Crown" ItemAttributes { ItemName "Upgradeable TF_WEAPON_GRENADELAUNCHER" "add cond when active" 36 "crit vs burning players" 1 "crit vs non burning players" 1 "projectile trail particle" "eyeboss_projectile" "custom projectile model" "models/weapons/w_models/w_repair_claw_gib1.mdl" "fire rate bonus" 0.2 "faster reload rate" 0.3 "clip size penalty" 3.0 "Projectile speed increased" 1.5 } CharacterAttributes { "override footstep sound set" 4 } } Heavy { Attributes MiniBoss Attributes UseBossHealthBar Item "War Head" Item "Fists of Steel" WeaponRestrictions MeleeOnly ItemAttributes { ItemName "Fists of Steel" "custom item model" "models/weapons/c_models/c_fists_of_steel_gray/c_fists_of_steel_gray.mdl" "switch from wep deploy time decreased" 0.01 "single wep deploy time decreased" 0.01 "damage bonus" 5 "fire rate bonus" 0.6 } CharacterAttributes { "override footstep sound set" 2 } } Soldier { Attributes MiniBoss Attributes UseBossHealthBar Attributes HoldFireUntilFullReload WeaponRestrictions PrimaryOnly Item "Upgradeable TF_WEAPON_ROCKETLAUNCHER" Item "Tyrant's Helm" ItemAttributes { ItemName "Upgradeable TF_WEAPON_ROCKETLAUNCHER" "add cond when active" 36 "crit vs burning players" 1 "crit vs non burning players" 1 "projectile trail particle" "eyeboss_projectile" "damage bonus" 1.5 "faster reload rate" 0.6 "fire rate bonus" 0.2 "clip size upgrade atomic" 7.0 "Projectile speed increased" 1.3 } ItemAttributes { ItemName "Tyrant's Helm" "set item tint rgb" 8289918 } CharacterAttributes { "override footstep sound set" 3 } } Soldier2 { Attributes MiniBoss Attributes UseBossHealthBar Attributes HoldFireUntilFullReload WeaponRestrictions PrimaryOnly Item "The Black Box" Item "Fancy Dress Uniform" Item "The Team Captain" ItemAttributes { ItemName "The Black Box" "add cond when active" 36 "crit vs burning players" 1 "crit vs non burning players" 1 "projectile trail particle" "eyeboss_projectile" "damage bonus" 5 "damage causes airblast" 1 "faster reload rate" 3 "fire rate penalty" 2 "explosion particle" "hightower_explosion" "blast radius increased" 2 "Projectile speed increased" 0.5 } CharacterAttributes { "override footstep sound set" 3 } } Pyro { Attributes MiniBoss Attributes UseBossHealthBar WeaponRestrictions PrimaryOnly Item "TF_WEAPON_FLAMETHROWER" Item "Brigade Helm" ItemAttributes { ItemName "TF_WEAPON_FLAMETHROWER" "airblast pushback scale" 2.0 "damage bonus" 5 } ItemAttributes { ItemName "Brigade Helm" "set item tint rgb" 8289918 } CharacterAttributes { "health regen" 500 "override footstep sound set" 6 } } Medic { Attributes MiniBoss Attributes UseBossHealthBar WeaponRestrictions PrimaryOnly AimLeadProjectileSpeed 1 AimAt Head Item "The Crusader's Crossbow" Item "Modest Metal Pile of Scrap" ItemAttributes { ItemName "The Crusader's Crossbow" "projectile spread angle penalty" 4 "fire rate bonus" 0.001 "clip size bonus" 5 "faster reload rate" 0.4 "damage penalty" 0.5 "mult dmg vs giants" 1.25 } } Sniper { WeaponRestrictions PrimaryOnly Item "Corona Australis" Item "The Fortified Compound" Attributes SuppressFire Attributes UseBossHealthBar AimAt Body FireWeapon { Delay 0.8 Cooldown 0.8 Type "Primary" } ShootTemplate { Name Explosive_Tip_Bot Speed 0 AttachToProjectile 1 ItemName "The Fortified Compound" } ItemAttributes { ItemName "The Fortified Compound" "faster reload rate" 0.001 "sniper no headshots" 1 "headshot damage increase" 0.3 "dmg penalty vs players" 0.75 "dmg bonus vs buildings" 2 } ItemAttributes { ItemName "Corona Australis" "set item tint rgb" 8289918 } CharacterAttributes { "override footstep sound set" 7 } } Engineer { Attributes MiniBoss Attributes UseBossHealthBar WeaponRestrictions MeleeOnly Item "The Southern Hospitality" Item "Engineer's Cap" ItemAttributes { ItemName "The Southern Hospitality" "custom item model" "models/workshop/player/items/engineer/taunt_texas_truckin/taunt_texas_truckin.mdl" "fire rate penalty" 200 "stomp player damage" 100 "stomp player force" 270 } CharacterAttributes { "move speed bonus" 1.0 } } Spy { Attributes MiniBoss Attributes UseBossHealthBar WeaponRestrictions PrimaryOnly Item "The Diamondback" Item "Belltower Spec ops" ItemAttributes { ItemName "The Diamondback" // "add cond when active" 36 // "crit vs burning players" 1 // "crit vs non burning players" 1 "damage penalty" 1 "damage bonus" 4 "bullets per shot bonus" 6 "spread penalty" 3 "fire rate penalty" 2 } CharacterAttributes { "override footstep sound set" 7 "attack projectiles" 1 // force ability to shoot down projectiles } } Scout { Attributes MiniBoss WeaponRestrictions MeleeOnly Item "Genuine Cockfighter" Item "The Boston Boom-Bringer" Item "Summer Shades" Item "The Sandman" FireWeapon { Delay 0.8 Cooldown 0.8 IfSeeTarget 1 Type "Secondary" } ItemAttributes { ItemName "The Sandman" "effect bar recharge rate increased" 0.001 "max health additive penalty" -0 "damage bonus" 2 "item color rgb" 8208497 "always crit" 1 "projectile trail particle" "eyeboss_projectile" } ItemAttributes { ItemName "Genuine Cockfighter" "set item tint rgb" 8289918 } CharacterAttributes { "move speed bonus" 8 "override footstep sound set" 5 } } } SpawnTemplate Shapeshift_Logic } T_TFBot_Helicopter_Base { Name "ENGINES" Class Pyro Scale 0.3 Health 1984 Attributes MiniBoss Attributes DisableDodge Attributes SuppressFire Skill Expert WeaponRestrictions MeleeOnly Tag bot_helimove AddCond { Name "TF_COND_REPROGRAMMED" } Action Mobber UseCustomModel "models/empty.mdl" StripItemSlot 0 StripItemSlot 1 NoIdleSound 1 CharacterAttributes { "move speed bonus" 0.75 "damage penalty" 0 "damage force reduction" 0 "airblast vulnerability multiplier" 0 "airblast vertical vulnerability multiplier" 0 "dmg taken increased" 0 "cannot be backstabbed" 1 "cannot be headshot" 1 "cannot be sapped" 1 "ignored by enemy sentries" 1 "not solid to players" 1 "not solid" 1 "voice pitch scale" 0 "health from packs decreased" 0.01 "no_duck" 1 "no_jump" 1 } } T_TFBot_Helicopter_Shoot { SpawnTemplate Helicopter_Patterns Name "HELICOPTER" Class Soldier Attributes MiniBoss Action Mobber AddCond { Name "TF_COND_REPROGRAMMED" } Skill Expert UseMeleeThreatPrioritization 1 Health 1984 UseCustomModel "models/empty.mdl" Scale 0.01 StripItemSlot 1 StripItemSlot 2 NoIdleSound 1 CustomWeaponModel { Slot 0 Model "models/empty.mdl" } CharacterAttributes { "not solid to players" 1 "move speed bonus" 0.5 "no_jump" 1 "dmg taken increased" 0 "cannot be backstabbed" 1 "cannot pick up intelligence" 1 } EventChangeAttributes { Default { Attributes HoldFireUntilFullReload Item TF_WEAPON_ROCKETLAUNCHER ItemAttributes { ItemName TF_WEAPON_ROCKETLAUNCHER //"fire full clip at once" 1 "mini rockets" 1 "penetrate teammates" 1 "is invisible" 1 "fire rate penalty" 1.3 "reload time decreased" 0.7 } ShootTemplate { Name TridentBurst AttachToProjectile 1 } } Pattern2 { // Item TF_WEAPON_SNIPERRIFLE // FireWeapon // { // Delay 0 // Cooldown 0.5 // Duration 0.1 // Type "Primary" // } // ItemAttributes // { // ItemName TF_WEAPON_SNIPERRIFLE // "is invisible" 1 // "fire rate bonus" 0.1 // "sniper fires tracer" 1 // } Attributes AlwaysFireWeapon Item TF_WEAPON_ROCKETLAUNCHER ItemAttributes { ItemName TF_WEAPON_ROCKETLAUNCHER "mini rockets" 1 "penetrate teammates" 1 "is invisible" 1 "fire rate bonus" 0.4 "Reload time decreased" -1 } ShootTemplate { Name RocketMastery AttachToProjectile 1 } } Pattern3 { Attributes AlwaysFireWeapon Item TF_WEAPON_ROCKETLAUNCHER AimOffset "0 0 30" ItemAttributes { ItemName TF_WEAPON_ROCKETLAUNCHER "mini rockets" 1 "penetrate teammates" 1 "is invisible" 1 "fire rate penalty" 0.5 "Projectile speed decreased" 0.3 } ShootTemplate { Name RocketSpike AttachToProjectile 1 } } Pattern4 { Attributes AlwaysFireWeapon Item TF_WEAPON_ROCKETLAUNCHER ItemAttributes { ItemName TF_WEAPON_ROCKETLAUNCHER "mini rockets" 0 "penetrate teammates" 1 "is invisible" 1 "fire rate penalty" 10 //fire once "Projectile speed decreased" 0.3 "always crit" 1 } ShootTemplate { Name RocketMasteryConstant AttachToProjectile 1 } } } } T_TFBot_Helicopter_Shoot_Gun { Name "HELICOPTER" Class Heavyweapons Scale 0.5 Health 1984 Attributes MiniBoss Attributes DisableDodge Skill Expert MaxVisionRange -1 WeaponRestrictions PrimaryOnly Action Mobber AddCond { Name "TF_COND_REPROGRAMMED" } UseCustomModel "models/empty.mdl" ExtAttr AlwaysFireWeaponAlt ExtAttr IgnoreNPC StripItemSlot 1 StripItemSlot 2 UseHumanAnimations 1 UseMeleeThreatPrioritization 1 Item "Upgradeable TF_WEAPON_MINIGUN" ItemAttributes { ItemName "Upgradeable TF_WEAPON_MINIGUN" "hand scale" 0.5 "is invisible" 1 "minigun no spin sounds" 1 "bullets per shot bonus" 3 "projectile penetration heavy" 3 } CharacterAttributes { "move speed bonus" 0.001 "damage force reduction" 0 "airblast vulnerability multiplier" 0 "airblast vertical vulnerability multiplier" 0 "no_jump" 1 "no_duck" 1 "voice pitch scale" 0 "dmg taken increased" 0 "cancel falling damage" 1 "cannot be backstabbed" 1 "not solid to players" 1 } } } // Mission // For Wave # // { // Where spawnbot // Objective Engineer // BeginAtWave 1 // RunForThisManyWaves 4 // DesiredCount 1 // InitialCooldown 25 // CooldownTime 50 // TFBot // { // Template T_TFBot_Engineer_Sentry_Teleporter // Health 275 // AlwaysGlow 1 // Item "The Jag" // CharacterAttributes // { // "cannot pick up intelligence" 1 // "engineer teleporter build rate multiplier" 4 // } // } // } Wave // Wave 1 { WaitWhenDone 65 Checkpoint Yes StartWaveOutput { Target wave_start_relay Action Trigger } DoneOutput { Target wave_finished_relay Action Trigger } InitWaveOutput { Target holograms_3way_relay Action Trigger } Explanation { Line "{339933}Olivia Mann {yellow}has asked us to try out some new robot weapons." Line "{yellow}We have made a combat simulation with {red}RED {yellow}robots." Line "" Line "{yellow}Here, you have to supply batteries to a bomb robot." Line "{yellow}The bomb will be activated once all 5 batteries have been placed." Line "{yellow}Once activated you have 10 minutes, 1 minute will be lost when the bomb carrier dies." Line "" Line "{yellow}You have {00FFDE}three {yellow}lives, if you lose all of them you cannot respawn anymore." } SpawnTemplate wave1_logic SpawnTemplate { Name "SpawnSentry" Origin "-408 -4524 160.25" Angles "0 0 0" } SpawnTemplate { Name "SpawnSentry" Origin "120 -4520 160.25" Angles "0 180 0" } SpawnTemplate { Name PowerCoreLarge Origin "1030 -4717 235" } SpawnTemplate { Name PowerCoreLarge Origin "-814 -4718 235" } SpawnTemplate { Name PowerCoreLarge Origin "-730 -4662 235" } SpawnTemplate { Name PowerCoreLarge Origin "-730 -4662 235" } SpawnTemplate { Name PowerCoreLarge Origin "-730 -4664 235" } SentryGun { HintName nest_a2_aaa TeamNum 2 Level 3 } SentryGun { HintName nest_a2_b TeamNum 2 Level 3 } SentryGun { HintName nest_a2_c TeamNum 2 Level 3 } SentryGun { HintName nest_a2_a TeamNum 2 Level 3 } SentryGun { HintName nest_pyra TeamNum 2 Level 3 } SentryGun { HintName nest_a2_z TeamNum 2 Level 3 } SentryGun { HintName nest_a2_n TeamNum 2 Level 3 } WaveSpawn { TotalCount 0 SpawnCount 0 FirstSpawnOutput { Target playerResInWave //REQUIRED | Used to tell self res logic that wave is active/ turn it off again at the end of a wave Action ToggleTest } } WaveSpawn { TotalCount 0 SpawnCount 0 FirstSpawnOutput { Target playerResVal3 //set res count to one of 3 set Action GetValue } } WaveSpawn // Dummy { TotalCount 0 SpawnCount 0 WaitBeforeStarting 0 FirstSpawnOutput { Target wave1_init Action Trigger } } WaveSpawn { Name "bombfella" Where spawnbot_bombguy TotalCount 1 MaxActive 1 SpawnCount 1 WaitBeforeStarting 0 WaitBetweenSpawnsAfterDeath 10 TotalCurrency 0 Support 1 TFBot { Template T_TFBot_Giant_Soldier_Mangler_Carrier SpawnTemplate timerloss } } WaveSpawn { Name "1a.1" Where spawnbot_top_front_building Where spawnbot_station TotalCount 32 MaxActive 8 SpawnCount 4 WaitBeforeStarting 0 WaitBetweenSpawns 2 TotalCurrency 100 StartWaveOutput { Target ps_nuke //attempt to remove cloud for wave failure Action Kill } TFBot { Template T_TFBot_Red_Demoman Skill Normal Attributes DisableDodge AddCond { Name "TF_COND_INVULNERABLE_USER_BUFF" Duration 3 } CharacterAttributes { "cannot pick up intelligence" 1 } } } WaveSpawn { Name "1a.2" Where spawnbot_station TotalCount 3 MaxActive 3 SpawnCount 1 WaitBeforeStarting 10 WaitBetweenSpawns 10 TotalCurrency 100 TFBot { Template T_TFBot_Giant_Heavyweapons_Shotgun ClassIcon heavy_shotgun_red Attributes DisableDodge AddCond { Name "TF_COND_REPROGRAMMED" } AddCond { Name "TF_COND_INVULNERABLE_USER_BUFF" Duration 3 } CharacterAttributes { "voice pitch scale" 0 "health from packs decreased" 0.01 } InterruptAction // Stop current bot ai and force the bot to move to a location { Target "RandomEnemy" AimTarget "RandomEnemy" // Entity / bot / class name as an alternative. Also: RandomEnemy, ClosestPlayer KillAimTarget 1 // Attack aim target (Default: 0) Delay 1 // Time before the first task starts. Must be above 0, or it will not execute (Default: 10) Repeats 1 // How many times should bot do the task in total (Default: 0 - Infinite) Cooldown 3 //Time between each task (Default: 10) Duration 6000 // How long should the ai be interrupted } } } WaveSpawn // Dummy { Name "clear1" WaitForAllDead "1a.2" TotalCount 0 SpawnCount 0 WaitBeforeStarting 0 } WaveSpawn // Dummy { Name "clear1" WaitForAllSpawned "1a.3" TotalCount 0 SpawnCount 0 WaitBeforeStarting 0 } WaveSpawn // Dummy { Name "relay1" WaitForAllDead "clear1" TotalCount 0 SpawnCount 0 WaitBeforeStarting 0 FirstSpawnOutput { Target barrier1_disable Action Trigger } } WaveSpawn { Name "1b.1" WaitForAllDead "clear1" Where spawnbot_pyramid TotalCount 32 MaxActive 8 SpawnCount 2 WaitBeforeStarting 0 WaitBetweenSpawns 0 TotalCurrency 100 RandomSpawn 1 Squad { TFBot { Template T_TFBot_Pyro_Dragon_Fury Skill Normal AddCond { Name "TF_COND_INVULNERABLE_USER_BUFF" Duration 3 } AddTemplate RedBot } TFBot { Template T_TFBot_Red_Medic_BigHeal CharacterAttributes { "cannot pick up intelligence" 1 } AddCond { Name "TF_COND_INVULNERABLE_USER_BUFF" Duration 3 } } } } WaveSpawn { Name "1b.2" WaitForAllDead "clear1" Where spawnbot_ruins_topdoor TotalCount 2 MaxActive 2 SpawnCount 2 WaitBeforeStarting 15 WaitBetweenSpawns 0 TotalCurrency 100 TFBot { Template T_TFBot_Giant_Pyro_Flare_Spammer ClassIcon pyro_flare_red AddCond { Name "TF_COND_REPROGRAMMED" } ItemAttributes { ItemName "The detonator" "damage bonus" 1 "Projectile speed increased" 1.4 } CharacterAttributes { "voice pitch scale" 0 "health from packs decreased" 0.01 "damage force reduction" 0 "airblast vulnerability multiplier" 0 "airblast vertical vulnerability multiplier" 0 } InterruptAction // Stop current bot ai and force the bot to move to a location { Target "RandomEnemy" AimTarget "RandomEnemy" // Entity / bot / class name as an alternative. Also: RandomEnemy, ClosestPlayer KillAimTarget 1 // Attack aim target (Default: 0) Delay 1 // Time before the first task starts. Must be above 0, or it will not execute (Default: 10) Repeats 1 // How many times should bot do the task in total (Default: 0 - Infinite) Cooldown 3 //Time between each task (Default: 10) Duration 6000 // How long should the ai be interrupted } } } WaveSpawn { Name "1b.3" WaitForAllSpawned "1b.2" Where spawnbot_pyramid Where spawnbot_ruins_topdoor Where spawnbot_ruins_farleft TotalCount 27 MaxActive 9 SpawnCount 1 WaitBeforeStarting 0 WaitBetweenSpawns 0.5 TotalCurrency 100 RandomSpawn 1 TFBot { Name "Backscatter Scout" Class Scout ClassIcon scout_backscatter_lite Attributes HoldFireUntilFullReload Skill Expert MaxVisionRange 500 WeaponRestrictions PrimaryOnly MoveBehindEnemy 1 Item "The Back Scatter" ItemAttributes { ItemName "The Back Scatter" "minicrits become crits" 1 "faster reload rate" 0.8 } CharacterAttributes { "cannot pick up intelligence" 1 } AddTemplate RedBot } } WaveSpawn { Name "1b.4" WaitForAllDead "1b.2" Where spawnbot_ruins_farleft Where spawnbot_ruins_topdoor TotalCount 9 MaxActive 3 SpawnCount 3 WaitBeforeStarting 0 WaitBetweenSpawns 10 TotalCurrency 100 Squad { TFBot { Name "Samurai Demo" Class Demoman ClassIcon demoknight_samurai Scale 1.3 Health 650 Attributes DisableDodge Attributes AutoJump Attributes AirChargeOnly AutoJumpMin 10 AutoJumpMax 10 Skill Expert WeaponRestrictions MeleeOnly Action Mobber Item "The Half-Zatoichi" Item "The Splendid Screen" Item "Furious Fukaamigasa" Item "The Tartantaloons" ItemAttributes { ItemName "The Splendid Screen" "attack not cancel charge" 1 } CharacterAttributes { "charge time increased" 2 "charge recharge rate increased" 7 "increased jump height" 2.3 "bot custom jump particle" 1 "damage bonus" 1.5 "cancel falling damage" 1 "cannot pick up intelligence" 1 } AddCond { Name "TF_COND_REPROGRAMMED" } } TFBot { Name "Samurai Demo" Class Demoman ClassIcon demoknight_samurai Scale 1.3 Health 650 Attributes DisableDodge Attributes AutoJump Attributes AirChargeOnly AutoJumpMin 10 AutoJumpMax 10 Skill Expert WeaponRestrictions MeleeOnly Action Mobber Item "The Half-Zatoichi" Item "The Splendid Screen" Item "Legendary Lid" Item "Starduster" ItemAttributes { ItemName "The Splendid Screen" "attack not cancel charge" 1 } CharacterAttributes { "charge time increased" 2 "charge recharge rate increased" 7 "increased jump height" 2.3 "bot custom jump particle" 1 "damage bonus" 1.5 "cancel falling damage" 1 "cannot pick up intelligence" 1 } AddCond { Name "TF_COND_REPROGRAMMED" } } TFBot { Name "Samurai Demo" Class Demoman ClassIcon demoknight_samurai Scale 1.3 Health 650 Attributes DisableDodge Attributes AutoJump Attributes AirChargeOnly AutoJumpMin 10 AutoJumpMax 10 Skill Expert WeaponRestrictions MeleeOnly Action Mobber Item "The Half-Zatoichi" Item "The Splendid Screen" Item "Demo Kabuto" Item "Shin Shredders" ItemAttributes { ItemName "The Splendid Screen" "attack not cancel charge" 1 } CharacterAttributes { "charge time increased" 2 "charge recharge rate increased" 7 "increased jump height" 2.3 "bot custom jump particle" 1 "damage bonus" 1.5 "cancel falling damage" 1 "cannot pick up intelligence" 1 } AddCond { Name "TF_COND_REPROGRAMMED" } } } } WaveSpawn // Tank 20k HP { Name "1b.5" WaitForAllDead "1b.2" TotalCount 1 MaxActive 1 SpawnCount 1 WaitBeforeStarting 5 WaitBetweenSpawns 0 TotalCurrency 100 FirstSpawnWarningSound "mvm/mvm_tank_start.wav" DoneWarningSound "music/mvm_end_tank_wave.wav" FirstSpawnOutput { Target dr_tankdoor Action Open } Tank { Name "tankbossred" StartingPathTrackNode "tank_red_path1_1" Health 20000 Speed 75 Skin 0 ClassIcon tank_red_lite TeamNum 2 Model "models/bots/boss_bot/boss_tankred.mdl" OnBombDroppedOutput { Target red_tank_deploy_relay Action Trigger } } } WaveSpawn // Dummy { Name "clear2" WaitForAllDead "1b.2" TotalCount 0 SpawnCount 0 WaitBeforeStarting 0 FirstSpawnOutput { Target barrier2_disable Action Trigger } } WaveSpawn // Dummy { Name "clear3" WaitForAllSpawned "1b.4" TotalCount 0 SpawnCount 0 WaitBeforeStarting 0 } WaveSpawn // Dummy { Name "clear3" WaitForAllDead "1b.5" TotalCount 0 SpawnCount 0 WaitBeforeStarting 0 FirstSpawnOutput { Target dr_tankdoor Action Close } } WaveSpawn { Name "1c.1" WaitForAllDead "clear3" Where spawnbot_big TotalCount 20 MaxActive 5 SpawnCount 1 WaitBeforeStarting 0 WaitBetweenSpawns 5 TotalCurrency 100 TFBot { Template T_TFBot_Red_Heavyweapons_Fist_Gold CharacterAttributes { "cannot pick up intelligence" 1 } } } WaveSpawn { Name "1c.2" WaitForAllDead "clear3" Where spawnbot_belowbridge Where spawnbot_ruins_farleft TotalCount 6 MaxActive 3 SpawnCount 1 WaitBeforeStarting 0 WaitBetweenSpawns 10 TotalCurrency 100 TFBot { Template T_TFBot_Giant_Sniper_Huntsman AddCond { Name "TF_COND_REPROGRAMMED" } CharacterAttributes { "voice pitch scale" 0 "health from packs decreased" 0.01 } InterruptAction // Stop current bot ai and force the bot to move to a location { Target "RandomEnemy" AimTarget "RandomEnemy" // Entity / bot / class name as an alternative. Also: RandomEnemy, ClosestPlayer KillAimTarget 1 // Attack aim target (Default: 0) Delay 1 // Time before the first task starts. Must be above 0, or it will not execute (Default: 10) Repeats 1 // How many times should bot do the task in total (Default: 0 - Infinite) Cooldown 3 //Time between each task (Default: 10) Duration 6000 // How long should the ai be interrupted } } } WaveSpawn { Name "hatchdefender" WaitForAllDead "clear3" Where literally_on_hatch TotalCount 1 MaxActive 1 SpawnCount 1 WaitBeforeStarting 10 WaitBetweenSpawns 0 TotalCurrency 0 TFBot { Template T_TFBot_Giant_Demo_Barrage ClassIcon demo_unload_red Health 3500 Attributes IgnoreFlag AddCond { Name "TF_COND_REPROGRAMMED" } InterruptAction // Stop current bot ai and force the bot to move to a location { Target "-136 -3442 45" Delay 1 // Time before the first task starts. Must be above 0, or it will not execute (Default: 10) Repeats 1 // How many times should bot do the task in total (Default: 0 - Infinite) Cooldown 3 //Time between each task (Default: 10) Duration 10 // How long should the ai be interrupted } CharacterAttributes { "voice pitch scale" 0 "health from packs decreased" 0.01 "damage force reduction" 0 "airblast vulnerability multiplier" 0 } } } WaveSpawn { Name "infinite" WaitForAllDead "clear3" Where spawnbot_pyramid Where spawnbot_belowbridge TotalCount 999 MaxActive 2 SpawnCount 1 WaitBeforeStarting 0 WaitBetweenSpawns 10 TotalCurrency 0 Support 1 RandomSpawn 1 TFBot { Template T_TFBot_Giant_Heavyweapons_RuinGuard } } WaveSpawn // Dummy { WaitForAllDead "hatchdefender" TotalCount 0 SpawnCount 0 WaitBeforeStarting 0 FirstSpawnOutput { Target unblockhatch Action Trigger } } WaveSpawn { Name "redbuster" Where spawnbot_big TotalCount 1 MaxActive 1 SpawnCount 1 WaitBeforeStarting 30 WaitBetweenSpawnsAfterDeath 30 TotalCurrency 0 Support 1 TFBot { Template T_TFBot_Red_SentryBuster_Fix } } WaveSpawn { Where spawnbot TotalCount 1 MaxActive 1 SpawnCount 1 WaitBeforeStarting 99999 WaitBetweenSpawns 0 TotalCurrency 0 HideIcon 1 TFBot { Class Heavyweapons ClassIcon hellmet_blank } } } Wave // Wave 2 { WaitWhenDone 65 Checkpoint Yes StartWaveOutput { Target wave_start_relay Action Trigger } DoneOutput { Target wave_finished_relay Action Trigger } InitWaveOutput { Target func_capturezone Action Disable } Explanation { Line "{yellow}In this wave, there are 4 control points on the map." Line "{yellow}You must now capture all points to progress!" } SpawnTemplate controlpoint SpawnTemplate wave2_logic SpawnTemplate { Name "SpawnSentry" Origin "-408 -4524 160.25" Angles "0 0 0" } SpawnTemplate { Name "SpawnSentry" Origin "120 -4520 160.25" Angles "0 180 0" } // PlayerAttributes // { // "increase player capture value" 2 // } WaveSpawn { TotalCount 0 SpawnCount 0 FirstSpawnOutput { Target playerResInWave //REQUIRED | Used to tell self res logic that wave is active/ turn it off again at the end of a wave Action ToggleTest } } WaveSpawn { TotalCount 0 SpawnCount 0 FirstSpawnOutput { Target playerResVal3 //set res count to one of 3 set Action GetValue } } WaveSpawn // Dummy { TotalCount 0 SpawnCount 0 WaitBeforeStarting 0 FirstSpawnOutput { Target wave2_init Action Trigger } } WaveSpawn { Name "fakeicon" Where spawnbot TotalCount 1 MaxActive 1 SpawnCount 0 WaitBeforeStarting 99999 WaitBetweenSpawns 0 TotalCurrency 0 Support Limited TFBot { Class HeavyWeapons ClassIcon blu2_lite } } WaveSpawn { Name "blu" Where spawnbot TotalCount 4 MaxActive 4 SpawnCount 4 WaitBeforeStarting 1 WaitBetweenSpawns 10 TotalCurrency 0 Support 1 RandomChoice { RandomChoice { TFBot { Template T_TFBot_Heavyweight_Champ_Capturer } } } } WaveSpawn { Name "2a.1" Where spawnbot_station TotalCount 6 MaxActive 3 SpawnCount 1 WaitBeforeStarting 0 WaitBetweenSpawns 10 TotalCurrency 100 StartWaveOutput { Target ps_nuke //attempt to remove cloud for wave failure Action Kill } TFBot { Template T_TFBot_Red_Giant_Pyro_Neon AddTemplate DefendPoint1 } } WaveSpawn { Name "2a.2" Where spawnbot_tunnel1 Where spawnbot_tunnel2 TotalCount 30 MaxActive 6 SpawnCount 2 WaitBeforeStarting 0 WaitBetweenSpawns 2 TotalCurrency 100 RandomSpawn 1 TFBot { Template T_TFBot_Red_Scout_Milk AimTrackingInterval 0.05 AddTemplate DefendPoint1 } } WaveSpawn { Name "2a.3" Where spawnbot_pyramid // WaitForAllDead "2a.1" TotalCount 9 MaxActive 6 SpawnCount 3 WaitBeforeStarting 5 WaitBetweenSpawns 12 TotalCurrency 100 Squad { TFBot { Template T_TFBot_Red_Giant_Soldier Attributes DisableDodge Item "The Direct Hit" AddCond { Name "TF_COND_INVULNERABLE_USER_BUFF" Duration 3 } AddTemplate DefendPoint2 } TFBot { Template T_TFBot_Medic_Kritzkrieg ClassIcon medic_kritz_red Attributes DisableDodge AddCond { Name "TF_COND_REPROGRAMMED" } AddCond { Name "TF_COND_INVULNERABLE_USER_BUFF" Duration 3 } } TFBot { Template T_TFBot_Medic_Kritzkrieg ClassIcon medic_kritz_red Attributes DisableDodge AddCond { Name "TF_COND_REPROGRAMMED" } AddCond { Name "TF_COND_INVULNERABLE_USER_BUFF" Duration 3 } } } } WaveSpawn { Name "2b.1" //WaitForAllSpawned "2a.3" Where spawnbot_pyramid TotalCount 4 MaxActive 2 SpawnCount 2 WaitBeforeStarting 10 WaitBetweenSpawns 10 TotalCurrency 100 TFBot { Template T_TFBot_Red_Giant_Heavyweapons Attributes DisableDodge AddCond { Name "TF_COND_INVULNERABLE_USER_BUFF" Duration 3 } AddTemplate DefendPoint2 } } WaveSpawn { Name "2b.2" // WaitForAllDead "2b.1" Where spawnbot_ruins_topdoor TotalCount 32 MaxActive 8 SpawnCount 4 WaitBeforeStarting 1 WaitBetweenSpawns 2 TotalCurrency 100 TFBot { Template T_TFBot_Red_Sniper_Huntsman_Spammer Attributes DisableDodge AddCond { Name "TF_COND_INVULNERABLE_USER_BUFF" Duration 3 } AddTemplate DefendPoint3 } } WaveSpawn { Name "2b.2" // WaitForAllDead "2b.1" Where spawnbot_ruins_topdoor TotalCount 4 MaxActive 4 SpawnCount 2 WaitBeforeStarting 10 WaitBetweenSpawns 10 TotalCurrency 100 TFBot { Template T_TFBot_Red_Giant_Engineer_Pomson AddCond { Name "TF_COND_INVULNERABLE_USER_BUFF" Duration 3 } AddTemplate DefendPoint3 } } WaveSpawn { Name "2c.1" WaitForAllSpawned "2b.2" Where spawnbot_big TotalCount 15 MaxActive 10 SpawnCount 5 WaitBeforeStarting 10 WaitBetweenSpawns 15 TotalCurrency 100 Squad { TFBot { Template T_TFBot_Red_Giant_Demo_Clusterbomb AddTemplate DefendPoint4 } TFBot { Template T_TFBot_Medic_Kritzkrieg ClassIcon medic_kritz_red Attributes DisableDodge AddCond { Name "TF_COND_REPROGRAMMED" } AddCond { Name "TF_COND_INVULNERABLE_USER_BUFF" Duration 3 } } TFBot { Template T_TFBot_Medic_Kritzkrieg ClassIcon medic_kritz_red Attributes DisableDodge AddCond { Name "TF_COND_REPROGRAMMED" } AddCond { Name "TF_COND_INVULNERABLE_USER_BUFF" Duration 3 } } TFBot { Template T_TFBot_Medic_Kritzkrieg ClassIcon medic_kritz_red Attributes DisableDodge AddCond { Name "TF_COND_REPROGRAMMED" } AddCond { Name "TF_COND_INVULNERABLE_USER_BUFF" Duration 3 } } TFBot { Template T_TFBot_Medic_Kritzkrieg ClassIcon medic_kritz_red Attributes DisableDodge AddCond { Name "TF_COND_REPROGRAMMED" } AddCond { Name "TF_COND_INVULNERABLE_USER_BUFF" Duration 3 } } } } WaveSpawn { Name "2c.2" WaitForAllSpawned "2c.1" Where spawnbot_big TotalCount 1 MaxActive 1 SpawnCount 1 WaitBeforeStarting 20 WaitBetweenSpawns 0 TotalCurrency 0 DoneOutput { Target enable_capture Action Trigger } TFBot { Template T_TFBot_Chicken_Itza } } WaveSpawn { Name "infinite" WaitForAllSpawned "2c.1" Where respawnpoints TotalCount 9999 MaxActive 12 SpawnCount 3 WaitBeforeStarting 20 WaitBetweenSpawns 3 TotalCurrency 500 RandomSpawn 1 Support 1 RandomChoice { TFBot { Template T_TFBot_Faulty_Machine1 AddCond { Name "TF_COND_INVULNERABLE_USER_BUFF" Duration 3 } } TFBot { Template T_TFBot_Faulty_Machine2 AddCond { Name "TF_COND_INVULNERABLE_USER_BUFF" Duration 3 } } TFBot { Template T_TFBot_Faulty_Machine3 AddCond { Name "TF_COND_INVULNERABLE_USER_BUFF" Duration 3 } } TFBot { Template T_TFBot_Faulty_Machine4 AddCond { Name "TF_COND_INVULNERABLE_USER_BUFF" Duration 3 } } } } WaveSpawn { Name "spy" WaitForAllDead "2a.1" Where respawnpoints TotalCount 2 MaxActive 2 SpawnCount 2 WaitBeforeStarting 0 WaitBetweenSpawns 60 TotalCurrency 0 Support 1 TFBot { Template T_TFBot_Red_Spy Name "Power Spy" Item "Belltower Spec Ops" Item "Upgradeable TF_WEAPON_KNIFE" ItemAttributes { ItemName "Upgradeable TF_WEAPON_KNIFE" "is australium item" 1 "item style override" 1 "armor piercing" 100 "ragdolls become ash" 1 "fire rate bonus" 0.6 } Itemattributes { ItemName "TF_WEAPON_BUILDER_SPY" "robo sapper" 3 } } } WaveSpawn { Name "redbuster" Where spawnbot_big TotalCount 1 MaxActive 1 SpawnCount 1 WaitBeforeStarting 30 WaitBetweenSpawnsAfterDeath 30 TotalCurrency 0 Support 1 TFBot { Template T_TFBot_Red_SentryBuster_Fix } } WaveSpawn { Where spawnbot TotalCount 1 MaxActive 1 SpawnCount 1 WaitBeforeStarting 99999 WaitBetweenSpawns 0 TotalCurrency 0 HideIcon 1 TFBot { Class Heavyweapons ClassIcon hellmet_blank } } } Wave // Wave 3 { WaitWhenDone 65 Checkpoint Yes StartWaveOutput { Target wave_start_relay Action Trigger } DoneOutput { Target wave_finished_relay Action Trigger } InitWaveOutput { Target holograms_3way_relay Action Trigger } Explanation { Line "{yellow}You will now be pitted against a group of mercenaries with upgraded weapons." Line "{yellow}They have also brought giant robots with them." Line "{yellow}Defeat them all to win the wave!" } SpawnTemplate wave3_logic SpawnTemplate { Name "SpawnSentry" Origin "-408 -4524 160.25" Angles "0 0 0" } SpawnTemplate { Name "SpawnSentry" Origin "120 -4520 160.25" Angles "0 180 0" } WaveSpawn { TotalCount 0 SpawnCount 0 FirstSpawnOutput { Target playerResInWave //REQUIRED | Used to tell self res logic that wave is active/ turn it off again at the end of a wave Action ToggleTest } } WaveSpawn { TotalCount 0 SpawnCount 0 FirstSpawnOutput { Target playerResVal3 //set res count to one of 3 set Action GetValue } } WaveSpawn // Dummy { TotalCount 0 SpawnCount 0 WaitBeforeStarting 0 FirstSpawnOutput { Target wave3_relay Action Trigger } } WaveSpawn { Name "3a.1" Where spawnbot_top_front_building TotalCount 3 MaxActive 3 SpawnCount 3 WaitBeforeStarting 0 WaitBetweenSpawns 0 TotalCurrency 100 StartWaveOutput { Target ps_nuke //attempt to remove cloud for wave failure Action Kill } Squad { TFBot { Name "Giant GrenadeWeapons" Class Demoman ClassIcon demo_scatter_red Health 5000 Attributes MiniBoss Skill Expert MaxVisionRange 1200 WeaponRestrictions PrimaryOnly StripItemSlot 1 StripItemSlot 2 Item "warbird_grenadelauncher_warhawk" Item "The Bomber Knight" ItemAttributes { ItemName "warbird_grenadelauncher_warhawk" "set_item_texture_wear" 0.2 "hand scale" 1.35 "damage penalty" 0.5 "faster reload rate" 0.01 "fire rate bonus" 0.05 "fuse bonus" 0.6 "projectile speed increased" 1.25 "projectile spread angle penalty" 3 "no self blast dmg" 2 } CharacterAttributes { "move speed bonus" 0.5 "damage force reduction" 0 "airblast vulnerability multiplier" 0 "override footstep sound set" 4 } AddTemplate RedBotGiant } TFBot { Template T_TFBot_Red_Giant_Medic_Regen WeaponRestrictions SecondaryOnly Attributes DisableDodge Attributes IgnoreEnemies AddCond { Name "TF_COND_INVULNERABLE_USER_BUFF" Duration 3 } } TFBot { Template T_TFBot_Red_Giant_Medic_Regen WeaponRestrictions SecondaryOnly Attributes DisableDodge Attributes IgnoreEnemies AddCond { Name "TF_COND_INVULNERABLE_USER_BUFF" Duration 3 } } } } WaveSpawn { Name "3a.2" Where spawnbot_station Where spawnbot_front_backarea TotalCount 42 MaxActive 12 SpawnCount 1 WaitBeforeStarting 10 WaitBetweenSpawns 2 TotalCurrency 100 RandomSpawn 1 TFBot { Template T_TFBot_Red_Heavyweapons_Heavyweight_Champ Attributes DisableDodge Attributes AlwaysCrit StripItemSlot 0 StripItemSlot 1 AddCond { Name "TF_COND_INVULNERABLE_USER_BUFF" Duration 3 } } } WaveSpawn // Dummy { WaitForAllDead "3a.1" TotalCount 0 SpawnCount 0 WaitBeforeStarting 0 FirstSpawnOutput { Target barrier1_disable Action Trigger } } WaveSpawn { Name "redplayer" WaitForAllDead "3a.1" Where literally_on_hatch TotalCount 1 MaxActive 1 SpawnCount 1 WaitBeforeStarting 0 WaitBetweenSpawns 2 TotalCurrency 100 DoneWarningSound "mvm/mvm_player_died.wav" DoneOutput { Target player_died_relay Action Trigger } TFBot { Template T_TFBot_Red_Player_Pro1 InterruptAction // Stop current bot ai and force the bot to move to a location { Target "player_target4" // Move target location Delay 1 // Time before the first task starts. Must be above 0, or it will not execute (Default: 10) Repeats 1 // How many times should bot do the task in total (Default: 0 - Infinite) Cooldown 3 //Time between each task (Default: 10) Duration 600 // How long should the ai be interrupted } SpawnTemplate LaserOnAim } } WaveSpawn { Name "redplayer" WaitForAllDead "3a.1" Where spawnbot_ruins_topdoor TotalCount 1 MaxActive 1 SpawnCount 1 WaitBeforeStarting 0 WaitBetweenSpawns 2 TotalCurrency 100 DoneWarningSound "mvm/mvm_player_died.wav" DoneOutput { Target player_died_relay Action Trigger } TFBot { Template T_TFBot_Red_Player_Pro2 InterruptAction // Stop current bot ai and force the bot to move to a location { Target "player_target1" // Move target location Delay 1 // Time before the first task starts. Must be above 0, or it will not execute (Default: 10) Repeats 1 // How many times should bot do the task in total (Default: 0 - Infinite) Cooldown 3 //Time between each task (Default: 10) Duration 5 // How long should the ai be interrupted WaitUntilDone 1 } } } WaveSpawn { Name "redplayer" WaitForAllDead "3a.1" Where spawnbot_ruins_farleft TotalCount 1 MaxActive 1 SpawnCount 1 WaitBeforeStarting 0 WaitBetweenSpawns 2 TotalCurrency 100 DoneWarningSound "mvm/mvm_player_died.wav" DoneOutput { Target player_died_relay Action Trigger } TFBot { Template T_TFBot_Red_Player_Pro3 InterruptAction // Stop current bot ai and force the bot to move to a location { Target "player_target3" // Move target location Delay 1 // Time before the first task starts. Must be above 0, or it will not execute (Default: 10) Repeats 1 // How many times should bot do the task in total (Default: 0 - Infinite) Cooldown 3 //Time between each task (Default: 10) Duration 5 // How long should the ai be interrupted WaitUntilDone 1 } } } WaveSpawn { Name "redplayer" WaitForAllDead "3a.1" Where spawnbot_ruins_farleft TotalCount 1 MaxActive 1 SpawnCount 1 WaitBeforeStarting 0 WaitBetweenSpawns 2 TotalCurrency 100 DoneWarningSound "mvm/mvm_player_died.wav" DoneOutput { Target player_died_relay Action Trigger } TFBot { Template T_TFBot_Red_Player_Pro4 InterruptAction // Stop current bot ai and force the bot to move to a location { Target "player_target2" // Move target location Delay 1 // Time before the first task starts. Must be above 0, or it will not execute (Default: 10) Repeats 1 // How many times should bot do the task in total (Default: 0 - Infinite) Cooldown 3 //Time between each task (Default: 10) Duration 5 // How long should the ai be interrupted WaitUntilDone 1 } } } WaveSpawn { Name "redplayer" WaitForAllDead "3a.1" Where spawnbot_pyramid TotalCount 1 MaxActive 1 SpawnCount 1 WaitBeforeStarting 0 WaitBetweenSpawns 0 TotalCurrency 100 DoneWarningSound "mvm/mvm_player_died.wav" DoneOutput { Target player_died_relay Action Trigger } TFBot { Template T_TFBot_Red_Player_Pro5 } } WaveSpawn { Name "redplayer" WaitForAllDead "3a.1" Where spawnbot_belowbridge TotalCount 1 MaxActive 1 SpawnCount 1 WaitBeforeStarting 0 WaitBetweenSpawns 0 TotalCurrency 100 DoneWarningSound "mvm/mvm_player_died.wav" DoneOutput { Target player_died_relay Action Trigger } TFBot { Template T_TFBot_Red_Player_Pro6 } } WaveSpawn { Name "redplayer" WaitForAllDead "3a.1" Where spawnbot_pyramid TotalCount 1 MaxActive 1 SpawnCount 1 WaitBeforeStarting 0 WaitBetweenSpawns 0 TotalCurrency 100 DoneWarningSound "mvm/mvm_player_died.wav" DoneOutput { Target player_died_relay Action Trigger } TFBot { Template T_TFBot_Red_Player_Pro7 } } WaveSpawn { Name "redplayer" WaitForAllDead "3a.1" Where spawnbot_ruins_topdoor TotalCount 1 MaxActive 1 SpawnCount 1 WaitBeforeStarting 0 WaitBetweenSpawns 0 TotalCurrency 100 DoneWarningSound "mvm/mvm_player_died.wav" DoneOutput { Target player_died_relay Action Trigger } TFBot { Template T_TFBot_Red_Player_Pro8 } } WaveSpawn // Tank 15k HP { Name "redblimp" WaitForAllSpawned "redplayer" TotalCount 1 MaxActive 1 SpawnCount 1 WaitBeforeStarting 45 WaitBetweenSpawns 0 TotalCurrency 100 FirstSpawnWarningSound "ambient/machines/teleport1.wav" Tank { Name "blimp" StartingPathTrackNode "blimp_1" Health 15000 Speed 75 Skin 0 ClassIcon blimp2_red_lite TeamNum 2 Gravity 0 Model "models/bots/boss_bot/boss_blimp.mdl" PingSound "npc/combine_gunship/ping_search.wav" EngineLoopSound "npc/combine_gunship/dropship_engine_distant_loop1.wav" DisableTracks 1 DisableChildModels 1 DisableSmokeStack 1 OnBombDroppedOutput { Target red_tank_deploy_relay Action Trigger } } } WaveSpawn { Name "3c.1" WaitForAllSpawned "redplayer" Where spawnbot_belowbridge Where spawnbot_ruins_farleft TotalCount 6 MaxActive 3 SpawnCount 1 WaitBeforeStarting 50 WaitBetweenSpawns 10 TotalCurrency 100 TFBot { Template T_TFBot_Red_Giant_Soldier_Spammer Attributes DisableDodge AddCond { Name "TF_COND_INVULNERABLE_USER_BUFF" Duration 3 } } } WaveSpawn { Name "3c.1" WaitForAllSpawned "redplayer" Where spawnbot_big TotalCount 8 MaxActive 8 SpawnCount 2 WaitBeforeStarting 60 WaitBetweenSpawns 10 TotalCurrency 100 Squad { TFBot { Template T_TFBot_Giant_Engineer_Widowmaker AddTemplate RedBotGiant } TFBot { Template T_TFBot_Red_Medic_QuickUber Attributes DisableDodge AddCond { Name "TF_COND_INVULNERABLE_USER_BUFF" Duration 3 } } } } WaveSpawn { Name "infinite" WaitForAllDead "redblimp" Where respawnpoints TotalCount 9999 MaxActive 25 SpawnCount 5 WaitBeforeStarting 0 WaitBetweenSpawns 2.5 TotalCurrency 500 RandomSpawn 1 Support 1 RandomChoice { TFBot { Template T_TFBot_Red_Player1 } TFBot { Template T_TFBot_Red_Player2 } TFBot { Template T_TFBot_Red_Player3 } } } WaveSpawn { Where spawnbot TotalCount 1 MaxActive 1 SpawnCount 1 WaitBeforeStarting 99999 WaitBetweenSpawns 0 TotalCurrency 0 HideIcon 1 TFBot { Class Heavyweapons ClassIcon hellmet_blank } } } Wave // Wave 4 { WaitWhenDone 65 Checkpoint Yes StartWaveOutput { Target wave_start_relay Action Trigger } DoneOutput { Target wave_finished_relay Action Trigger } InitWaveOutput { Target wave4_init Action Trigger } SpawnTemplate { Name "SpawnSentry" Origin "-408 -4524 160.25" Angles "0 0 0" } SpawnTemplate { Name "SpawnSentry" Origin "120 -4520 160.25" Angles "0 180 0" } Explanation { Line "{yellow}You are entrusted to secure a payload (van) to its final destination." Line "{yellow}If it gets destroyed, you lose!" Line "{yellow}The number of revives has been set to 5 for the round!" } SpawnTemplate wave4_logic // PlayerAttributes //Add attributes to players when the wave is active // { // "increase player capture value" 2 // } WaveSpawn { TotalCount 0 SpawnCount 0 FirstSpawnOutput { Target playerResInWave //REQUIRED | Used to tell self res logic that wave is active/ turn it off again at the end of a wave Action ToggleTest } } WaveSpawn { TotalCount 0 SpawnCount 0 FirstSpawnOutput { Target playerResVal5 //set res count to one of 3 set Action GetValue } } WaveSpawn // Dummy { TotalCount 0 SpawnCount 0 WaitBeforeStarting 0 FirstSpawnOutput { Target wave4_init Action Trigger } } WaveSpawn // Tank 40k HP { Name "payload" TotalCount 1 MaxActive 1 SpawnCount 1 WaitBeforeStarting 0 WaitBetweenSpawns 0 TotalCurrency 0 Support Limited Tank { Name "payloadtank" StartingPathTrackNode "tank_path_1" Health 30000 Speed 300 Skin 0 Scale 0.5 ClassIcon van_lite Model { Default "models/empty.mdl" Damage1 "models/empty.mdl" Damage2 "models/empty.mdl" Damage3 "models/empty.mdl" Destruction "models/empty.mdl" LeftTrack "models/empty.mdl" RightTrack "models/empty.mdl" Bomb "models/empty.mdl" } StartSound "common/null.wav" PingSound "ambient/mvm_warehouse/car_horn_02.wav" EngineLoopSound "mvm/giant_demoman/giant_demoman_loop.wav" DisableTracks 1 DisableSmokestack 1 DisableChildModels 1 DeploySound "vo/sniper_positivevocalization02.mp3" OnKilledOutput { Target redwin_relay Action Trigger } OnBombDroppedOutput { Target boss_deploy_relay Action Trigger } SpawnTemplate { Name "payload" Origin "0 0 10" } } } WaveSpawn { Name "4a.1" Where spawnbot_station Where spawnbot_top_front_building TotalCount 25 MaxActive 10 SpawnCount 5 WaitBeforeStarting 0.1 WaitBetweenSpawns 5 TotalCurrency 100 StartWaveOutput { Target ps_nuke //attempt to remove cloud for wave failure Action Kill } TFBot { Class Heavyweapons Skill Normal AddTemplate RedBot } } WaveSpawn { Name "4a.2" // WaitForAllSpawned "4a.1" Where spawnbot_ruins_topdoor TotalCount 5 MaxActive 5 SpawnCount 1 WaitBeforeStarting 12 WaitBetweenSpawns 1 TotalCurrency 200 RandomSpawn 1 TFBot { Template T_TFBot_Red_Giant_Scout_Batsaber AddCond { Name "TF_COND_INVULNERABLE_USER_BUFF" Duration 3 } } } WaveSpawn { Name "4b.1" WaitForAllDead "4a.1" Where // Advanced where syntax { Relative Ahead // Spawn relative to player position Bots will try to spawn in hidden areas. Possible values: Ahead, Behind, Anywhere (default: Anywhere) MaxDistance 2500 // Max distance from players (default: 1500) MinDistance 500 // Min distance from players (default: 0) } TotalCount 32 MaxActive 8 SpawnCount 4 WaitBeforeStarting 2 WaitBetweenSpawns 2 TotalCurrency 100 TFBot { Template T_TFBot_Pyro_Manmelter_Combo ExtAttr IgnoreNPC AddCond { Name "TF_COND_INVULNERABLE_USER_BUFF" Duration 3 } AddTemplate RedBot } } WaveSpawn { Name "4b.2" WaitForAllSpawned "4a.2" Where spawnbot_pyramid TotalCount 4 MaxActive 2 SpawnCount 1 WaitBeforeStarting 5 WaitBetweenSpawns 5 TotalCurrency 100 TFBot { Template T_TFBot_Red_Giant_Engineer_Charger AddCond { Name "TF_COND_INVULNERABLE_USER_BUFF" Duration 3 } InterruptAction // Stop current bot ai and force the bot to move to a location { Target "payloadtank" // Entity / bot / class name as an alternative. Also: RandomEnemy, ClosestPlayer AimTarget "payloadtank" // Entity / bot / class name as an alternative. Also: RandomEnemy, ClosestPlayer KillAimTarget 1 // Attack aim target (Default: 0) Delay 5 // Time before the first task starts. Must be above 0, or it will not execute (Default: 10) Repeats 0 // How many times should bot do the task in total (Default: 0 - Infinite) Cooldown 5 //Time between each task (Default: 10) Duration 10 // How long should the ai be interrupted } } } WaveSpawn { Name "4b.2" WaitForAllSpawned "4a.1" Where spawnbot_ruins_farleft TotalCount 3 MaxActive 3 SpawnCount 1 WaitBeforeStarting 5 WaitBetweenSpawns 10 TotalCurrency 100 TFBot { Template T_TFBot_Red_Giant_Pyro Attributes DisableDodge ItemAttributes { ItemName "TF_WEAPON_FLAMETHROWER" "airblast_destroy_projectile" 1 "airblast_pushback_no_viewpunch" 1 } AddCond { Name "TF_COND_INVULNERABLE_USER_BUFF" Duration 3 } InterruptAction // Stop current bot ai and force the bot to move to a location { Target "tank_boss" // Entity / bot / class name as an alternative. Also: RandomEnemy, ClosestPlayer AimTarget "tank_boss" // Entity / bot / class name as an alternative. Also: RandomEnemy, ClosestPlayer KillAimTarget 1 // Attack aim target (Default: 0) Delay 5 // Time before the first task starts. Must be above 0, or it will not execute (Default: 10) Repeats 0 // How many times should bot do the task in total (Default: 0 - Infinite) Cooldown 5 //Time between each task (Default: 10) Duration 10 // How long should the ai be interrupted } } } WaveSpawn { Name "4c.1" WaitForAllDead "heli" Where spawnbot_ruins_topdoor Where spawnbot_belowbridge Where spawnbot_ruins_farleft TotalCount 5 MaxActive 5 SpawnCount 1 WaitBeforeStarting 0 WaitBetweenSpawns 10 TotalCurrency 100 RandomSpawn 1 TFBot { Name "Gatling Grizzly" Class Heavyweapons ClassIcon heavy_brass_nys Health 5000 Attributes MiniBoss Attributes DisableDodge Skill Expert MaxVisionRange 1200 UseMeleeThreatPrioritization 1 ExtAttr IgnoreNPC AddCond { Name "TF_COND_REPROGRAMMED" } Action Sniper Item "The Brass Beast" Item "Warrior's Spirit" Item "The Bear Necessities" ItemAttributes { ItemName "The Brass Beast" "damage bonus" 1.75 "minigun spinup time increased" 3 "spunup_damage_resistance" 1 "mod minigun can holster while spinning" 1 } ItemAttributes { ItemName "Warrior's Spirit" "provide on active" 1 "damage bonus" 2 "minicritboost on kill" 15 "stun enemies wielding same weapon" 1 "melee cleave attack" 1 "gesture speed increase" 1.5 } CharacterAttributes { "move speed bonus" 0.5 "damage force reduction" 0 "airblast vulnerability multiplier" 0 "override footstep sound set" 2 "voice pitch scale" 0 "health from packs decreased" 0.01 } AddCond { Name "TF_COND_INVULNERABLE_USER_BUFF" Duration 3 } } } WaveSpawn // Tank # HP { Name "heli" WaitForAllDead "4b.2" TotalCount 1 MaxActive 1 SpawnCount 1 WaitBeforeStarting 0 WaitBetweenSpawns 0 TotalCurrency 0 FirstSpawnOutput { Target heli_spawn_relay Action Trigger } Tank { Name "helicopter" StartingPathTrackNode "boss_path_1" Health 17500 Speed 0 Skin 0 Scale 1.1 ClassIcon helicopter_nys Model "models/empty.mdl" TeamNum 2 SpawnTemplate "Helicopter_Tank_Init" StartSound "common/null.wav" PingSound "common/null.wav" EngineLoopSound "common/null.wav" Gravity 0 NoCrushDamage 1 DisableSmokeStack 1 DisableTracks 1 DisableChildModels 1 ReplaceModelCollisions 1 OnKilledOutput { Target heli_killed_relay Action Trigger } } } WaveSpawn { Name "heli" WaitForAllDead "4b.2" Where spawnbot_heli TotalCount 1 MaxActive 1 SpawnCount 1 WaitBeforeStarting 0 WaitBetweenSpawns 0 TotalCurrency 0 Support Limited RandomChoice { RandomChoice { TFBot { Template T_TFBot_Helicopter_Base ExtAttr IgnoreNPC SpawnTemplate Helicopter_Base_Init } } } } WaveSpawn { Name "heli" WaitForAllDead "4b.2" Where spawnbot_heli TotalCount 1 MaxActive 1 SpawnCount 1 WaitBeforeStarting 0 WaitBetweenSpawns 0 TotalCurrency 0 Support Limited RandomChoice { RandomChoice { TFBot { Template T_TFBot_Helicopter_Shoot_Gun ExtAttr IgnoreNPC AimOffset "0 0 -200" //Aim this much higher than normally (default: 0 0 0) SpawnTemplate Helicopter_Shooter_Init } } } } // WaveSpawn // { // Name "heli" // WaitForAllDead "4b.2" // Where spawnbot_heli // TotalCount 1 // MaxActive 1 // SpawnCount 1 // WaitBeforeStarting 30 // WaitBetweenSpawns 0 // TotalCurrency 0 // Support Limited // RandomChoice // { // RandomChoice // { // TFBot // { // Template T_TFBot_Helicopter_Shoot // ExtAttr IgnoreNPC // SpawnTemplate Helicopter_Shooter_Init // } // } // } // } WaveSpawn { Name "4c.2" // WaitForAllDead "heli" Where spawnbot_belowbridge TotalCount 20 MaxActive 5 SpawnCount 1 WaitBeforeStarting 1 WaitBetweenSpawns 3 TotalCurrency 100 TFBot { Template T_TFBot_Soldier_Spammer_Armored AddTemplate RedBot } } WaveSpawn // Dummy { Name "clear3" WaitForAllDead "4c.1" TotalCount 0 SpawnCount 0 WaitBeforeStarting 0 } WaveSpawn // Dummy { Name "clear3" WaitForAllSpawned "4c.2" TotalCount 0 SpawnCount 0 WaitBeforeStarting 0 } WaveSpawn // Dummy { WaitForAllDead "clear3" TotalCount 0 SpawnCount 0 WaitBeforeStarting 0 FirstSpawnOutput { Target unblockhatch Action Trigger } } WaveSpawn { Name "infinite" WaitForAllDead "heli" Where respawnpoints TotalCount 9999 MaxActive 6 SpawnCount 2 WaitBeforeStarting 1 WaitBetweenSpawns 1 TotalCurrency 300 RandomSpawn 1 Support 1 Squad { ShouldPreserveSquad 1 TFBot { Class Sniper ClassIcon sniper_kukri_lite Skill Expert Attributes AlwaysCrit WeaponRestrictions MeleeOnly AddTemplate RedBot } TFBot { Template T_TFBot_Red_Medic_QuickUber AddCond { Name "TF_COND_INVULNERABLE_USER_BUFF" Duration 3 } } } } WaveSpawn { Name "infinite" // WaitForAllDead "heli" Where spawnbot_belowbridge TotalCount 9999 MaxActive 6 SpawnCount 1 WaitBeforeStarting 2 WaitBetweenSpawns 1 TotalCurrency 300 RandomSpawn 1 Support 1 TFBot { Template T_TFBot_Demoman_Knight_Persian AddTemplate RedBot } } WaveSpawn { Name "redbuster" Where spawnbot_big TotalCount 1 MaxActive 1 SpawnCount 1 WaitBeforeStarting 30 WaitBetweenSpawnsAfterDeath 30 TotalCurrency 0 Support 1 TFBot { Template T_TFBot_Red_SentryBuster_Fix } } WaveSpawn { Where spawnbot TotalCount 1 MaxActive 1 SpawnCount 1 WaitBeforeStarting 99999 WaitBetweenSpawns 0 TotalCurrency 0 HideIcon 1 TFBot { Class Heavyweapons ClassIcon hellmet_blank } } } Wave // Wave 5 { WaitWhenDone 65 Checkpoint Yes StartWaveOutput { Target wave_start_relay Action Trigger } DoneOutput { Target wave_finished_relay Action Trigger } InitWaveOutput { Target holograms_3way_relay Action Trigger } SpawnTemplate { Name "SpawnSentry" Origin "-408 -4524 160.25" Angles "0 0 0" } SpawnTemplate { Name "SpawnSentry" Origin "120 -4520 160.25" Angles "0 180 0" } Explanation { Line "{yellow}The enemy has deployed {blue}generators {yellow}in the area!" Line "{yellow}Generators provide buffs to nearby robots!" Line "{yellow}Destroy all generators to continue." } SpawnTemplate autogun // SpawnTemplate SpawnTele WaveSpawn { TotalCount 0 SpawnCount 0 FirstSpawnOutput { Target playerResInWave //REQUIRED | Used to tell self res logic that wave is active/ turn it off again at the end of a wave Action ToggleTest } } WaveSpawn { TotalCount 0 SpawnCount 0 FirstSpawnOutput { Target playerResVal5 //set res count to one of 3 set Action GetValue } } WaveSpawn // Dummy { TotalCount 0 SpawnCount 0 WaitBeforeStarting 0 StartWaveOutput { Target wave5_relay Action Trigger } } WaveSpawn // Tank 5k HP { Name "gen1" TotalCount 1 MaxActive 1 SpawnCount 1 WaitBeforeStarting 0 WaitBetweenSpawns 0 TotalCurrency 0 StartWaveOutput { Target ps_nuke //attempt to remove cloud for wave failure Action Kill } Tank { Name "generator1" StartingPathTrackNode "gen1_1" Health 5000 Speed 0 Skin 0 ClassIcon generator_lite Scale 0.5 TeamNum 2 IsMiniBoss 1 Model "models/props_frontline/generator.mdl" DisableSmokeStack 1 DisableTracks 1 [SIGSEGV] DisableChildModels 1 DisableBomb 1 ReplaceModelCollisions 1 PingSound "common/null.wav" DeploySound "common/null.wav" EngineLoopSound "ambient/machines/diesel_engine_idle1.wav" NoScreenShake 1 NoCrushDamage 1 SpawnTemplate buff_defense OnKilledOutput { Target autogun_relay1 Action Trigger } } } WaveSpawn // Tank 5k HP { Name "gen2" TotalCount 1 MaxActive 1 SpawnCount 1 WaitBeforeStarting 0 WaitBetweenSpawns 0 TotalCurrency 0 Tank { Name "generator2" StartingPathTrackNode "gen2_1" Health 5000 Speed 0 Skin 0 ClassIcon generator_lite Scale 0.5 TeamNum 2 IsMiniBoss 1 Model "models/props_frontline/generator.mdl" DisableSmokeStack 1 DisableTracks 1 [SIGSEGV] DisableChildModels 1 DisableBomb 1 ReplaceModelCollisions 1 PingSound "common/null.wav" DeploySound "common/null.wav" EngineLoopSound "ambient/machines/diesel_engine_idle1.wav" NoScreenShake 1 NoCrushDamage 1 SpawnTemplate buff_mcrits OnKilledOutput { Target autogun_relay2 Action Trigger } } } WaveSpawn // Tank 5k HP { Name "gen3" TotalCount 1 MaxActive 1 SpawnCount 1 WaitBeforeStarting 0 WaitBetweenSpawns 0 TotalCurrency 0 Tank { Name "generator3" StartingPathTrackNode "gen3_1" Health 5000 Speed 0 Skin 0 ClassIcon generator_lite Scale 0.5 TeamNum 2 IsMiniBoss 1 Model "models/props_frontline/generator.mdl" DisableSmokeStack 1 DisableTracks 1 [SIGSEGV] DisableChildModels 1 DisableBomb 1 ReplaceModelCollisions 1 PingSound "common/null.wav" DeploySound "common/null.wav" EngineLoopSound "ambient/machines/diesel_engine_idle1.wav" NoScreenShake 1 NoCrushDamage 1 SpawnTemplate buff_healing OnKilledOutput { Target autogun_relay3 Action Trigger } } } WaveSpawn // Tank 5k HP { Name "gen4" TotalCount 1 MaxActive 1 SpawnCount 1 WaitBeforeStarting 0 WaitBetweenSpawns 0 TotalCurrency 0 Tank { Name "generator4" StartingPathTrackNode "gen4_1" Health 5000 Speed 0 Skin 0 ClassIcon generator_lite Scale 0.5 TeamNum 2 IsMiniBoss 1 Model "models/props_frontline/generator.mdl" DisableSmokeStack 1 DisableTracks 1 [SIGSEGV] DisableChildModels 1 DisableBomb 1 ReplaceModelCollisions 1 PingSound "common/null.wav" DeploySound "common/null.wav" EngineLoopSound "ambient/machines/diesel_engine_idle1.wav" NoScreenShake 1 NoCrushDamage 1 SpawnTemplate buff_king OnKilledOutput { Target autogun_relay4 Action Trigger } } } WaveSpawn // Tank 5k HP { Name "gen5" TotalCount 1 MaxActive 1 SpawnCount 1 WaitBeforeStarting 0 WaitBetweenSpawns 0 TotalCurrency 0 Tank { Name "generator5" StartingPathTrackNode "gen5_1" Health 5000 Speed 0 Skin 0 ClassIcon generator_lite Scale 0.5 TeamNum 2 IsMiniBoss 1 Model "models/props_frontline/generator.mdl" DisableSmokeStack 1 DisableTracks 1 [SIGSEGV] DisableChildModels 1 DisableBomb 1 ReplaceModelCollisions 1 PingSound "common/null.wav" DeploySound "common/null.wav" EngineLoopSound "ambient/machines/diesel_engine_idle1.wav" NoScreenShake 1 NoCrushDamage 1 SpawnTemplate buff_precise OnKilledOutput { Target autogun_relay5 Action Trigger } } } WaveSpawn { Name "genbots1" Where spawnbot_special TotalCount 2 MaxActive 2 SpawnCount 2 WaitBeforeStarting 0 WaitBetweenSpawns 1 TotalCurrency 100 RandomSpawn 1 FirstSpawnMessage "Generator-guarding bots will automatically self-destruct when their generator is destroyed!" TFBot { Template T_TFBot_Red_Giant_Soldier_Spammer ClassIcon soldier_spammer_redbarrier_spin_giant Attributes DisableDodge Item "The Lucky Shot" SpawnTemplate RotateShieldLvL1_Red SpawnTemplate givename1 AddCond { Name "TF_COND_INVULNERABLE_USER_BUFF" Duration 3 } InterruptAction // Stop current bot ai and force the bot to move to a location { Target "gen_target1" Delay 1 // Time before the first task starts. Must be above 0, or it will not execute (Default: 10) Repeats 1 // How many times should bot do the task in total (Default: 0 - Infinite) Cooldown 0.5 //Time between each task (Default: 10) Duration 600 // How long should the ai be interrupted } } } WaveSpawn { Name "genbots2" Where spawnbot_ruins_topdoor TotalCount 3 MaxActive 3 SpawnCount 3 WaitBeforeStarting 2 WaitBetweenSpawns 0.5 TotalCurrency 100 Squad { TFBot { Template T_TFBot_Red_Giant_Heavyweapons Attributes DisableDodge SpawnTemplate givename2 AddCond { Name "TF_COND_INVULNERABLE_USER_BUFF" Duration 3 } InterruptAction // Stop current bot ai and force the bot to move to a location { Target "gen_target2" Delay 1 // Time before the first task starts. Must be above 0, or it will not execute (Default: 10) Repeats 1 // How many times should bot do the task in total (Default: 0 - Infinite) Cooldown 0.5 //Time between each task (Default: 10) Duration 600 // How long should the ai be interrupted } } TFBot { Template T_TFBot_Red_Giant_Medic Attributes DisableDodge SpawnTemplate givename2 AddCond { Name "TF_COND_INVULNERABLE_USER_BUFF" Duration 3 } CharacterAttributes { "bot medic uber health threshold" 9999 "uber duration bonus" -10 } } TFBot { Template T_TFBot_Red_Giant_Medic Attributes DisableDodge SpawnTemplate givename2 AddCond { Name "TF_COND_INVULNERABLE_USER_BUFF" Duration 3 } CharacterAttributes { "bot medic uber health threshold" 9999 "uber duration bonus" -10 } } } } WaveSpawn { Name "genbots3" Where spawnbot_ruins_topdoor Where spawnbot_ruins_farleft Where spawnbot_belowbridge TotalCount 2 MaxActive 2 SpawnCount 1 WaitBeforeStarting 5 WaitBetweenSpawns 0.5 TotalCurrency 100 TFBot { Template T_TFBot_Red_Giant_Demo_Burst ClassIcon demo_burst_redbarrier_spin_giant Attributes DisableDodge SpawnTemplate RotateShieldLvL1_Red SpawnTemplate givename3 AddCond { Name "TF_COND_INVULNERABLE_USER_BUFF" Duration 3 } InterruptAction // Stop current bot ai and force the bot to move to a location { Target "gen_target3" Delay 1 // Time before the first task starts. Must be above 0, or it will not execute (Default: 10) Repeats 1 // How many times should bot do the task in total (Default: 0 - Infinite) Cooldown 0.5 //Time between each task (Default: 10) Duration 600 // How long should the ai be interrupted } } } WaveSpawn { Name "genbots4" Where spawnbot_belowbridge TotalCount 2 MaxActive 2 SpawnCount 2 WaitBeforeStarting 10 WaitBetweenSpawns 0.5 TotalCurrency 100 TFBot { Template T_TFBot_Giant_Pyro_Fury ClassIcon pyro_dragon_fury_redbarrier_spin_giant Attributes IgnoreFlag AddCond { Name "TF_COND_REPROGRAMMED" } SpawnTemplate givename4 SpawnTemplate RotateShieldLvL1_Red InterruptAction // Stop current bot ai and force the bot to move to a location { Target "gen_target4" Delay 1 // Time before the first task starts. Must be above 0, or it will not execute (Default: 10) Repeats 1 // How many times should bot do the task in total (Default: 0 - Infinite) Cooldown 0.5 //Time between each task (Default: 10) Duration 600 // How long should the ai be interrupted } } } WaveSpawn { Name "genbots5" Where spawnbot_big TotalCount 3 MaxActive 3 SpawnCount 3 WaitBeforeStarting 5 WaitBetweenSpawns 0.5 TotalCurrency 100 Squad { TFBot { Template T_TFBot_Red_Giant_Soldier_RocketShotgun Attributes DisableDodge SpawnTemplate givename5 AddCond { Name "TF_COND_INVULNERABLE_USER_BUFF" Duration 3 } InterruptAction // Stop current bot ai and force the bot to move to a location { Target "gen_target5" Delay 1 // Time before the first task starts. Must be above 0, or it will not execute (Default: 10) Repeats 1 // How many times should bot do the task in total (Default: 0 - Infinite) Cooldown 0.5 //Time between each task (Default: 10) Duration 600 // How long should the ai be interrupted } } TFBot { Template T_TFBot_Red_Giant_Medic Attributes DisableDodge SpawnTemplate givename5 AddCond { Name "TF_COND_INVULNERABLE_USER_BUFF" Duration 3 } CharacterAttributes { "bot medic uber health threshold" 9999 "uber duration bonus" -10 } } TFBot { Template T_TFBot_Red_Giant_Medic Attributes DisableDodge SpawnTemplate givename5 AddCond { Name "TF_COND_INVULNERABLE_USER_BUFF" Duration 3 } CharacterAttributes { "bot medic uber health threshold" 9999 "uber duration bonus" -10 } } } } WaveSpawn { Name "5a.1" Where spawnbot_station Where spawnbot_top_front_building TotalCount 20 MaxActive 10 SpawnCount 1 WaitBeforeStarting 0 WaitBetweenSpawns 2 TotalCurrency 100 RandomSpawn 1 TFBot { Template T_TFBot_Red_Scout Attributes DisableDodge Skill Normal AddCond { Name "TF_COND_INVULNERABLE_USER_BUFF" Duration 3 } } } WaveSpawn { Name "5a.2" Where spawnbot_top_front_building Where spawnbot_station TotalCount 5 MaxActive 5 SpawnCount 1 WaitBeforeStarting 10 WaitBetweenSpawns 8 TotalCurrency 100 RandomSpawn 1 TFBot { Template T_TFBot_Red_Giant_Demoknight_Faulty AddCond { Name "TF_COND_INVULNERABLE_USER_BUFF" Duration 3 } } } WaveSpawn { Name "5a.3" WaitForAllSpawned "5a.1" Where spawnbot_ruins_topdoor Where spawnbot_pyramid TotalCount 40 MaxActive 10 SpawnCount 2 WaitBeforeStarting 0 WaitBetweenSpawns 3 TotalCurrency 100 Squad { TFBot { Name "Frontier Justice" Class Engineer ClassIcon engineer_frontier_justice_nys Skill Normal Item "The Frontier Justice" Item "Texas Tin-Gallon" Item "The Texas Half-Pants" Attributes AlwaysCrit Attributes HoldFireUntilFullReload AddCond { Name "TF_COND_INVULNERABLE_USER_BUFF" Duration 3 } AddTemplate RedBot } TFBot { Template T_TFBot_Red_Medic_QuickUber Attributes DisableDodge AddCond { Name "TF_COND_INVULNERABLE_USER_BUFF" Duration 3 } } } } WaveSpawn // Dummy { Name "clear1" WaitForAllDead "gen1" TotalCount 0 SpawnCount 0 WaitBeforeStarting 0 } WaveSpawn // Dummy { Name "clear1" WaitForAllDead "genbots1" TotalCount 0 SpawnCount 0 WaitBeforeStarting 0 } WaveSpawn // Dummy { Name "relay1" WaitForAllDead "clear1" TotalCount 0 SpawnCount 0 WaitBeforeStarting 0 FirstSpawnOutput { Target barrier1_disable Action Trigger } } WaveSpawn { Name "5b.1" WaitForAllDead "clear1" Where // Advanced where syntax { Relative Anywhere // Spawn relative to player position Bots will try to spawn in hidden areas. Possible values: Ahead, Behind, Anywhere (default: Anywhere) MaxDistance 2500 // Max distance from players (default: 1500) MinDistance 500 // Min distance from players (default: 0) } TotalCount 40 MaxActive 5 SpawnCount 1 WaitBeforeStarting 0 WaitBetweenSpawns 10 TotalCurrency 0 RandomSpawn 1 Support 1 TFBot { Template T_TFBot_Red_Heavyweapons_Shotgun_Armored Attributes DisableDodge AddCond { Name "TF_COND_INVULNERABLE_USER_BUFF" Duration 3 } } } WaveSpawn { Name "redbuster" Where spawnbot_big TotalCount 1 MaxActive 1 SpawnCount 1 WaitBeforeStarting 30 WaitBetweenSpawnsAfterDeath 30 TotalCurrency 0 Support 1 TFBot { Template T_TFBot_Red_SentryBuster_Fix } } WaveSpawn { Where spawnbot TotalCount 1 MaxActive 1 SpawnCount 1 WaitBeforeStarting 99999 WaitBetweenSpawns 0 TotalCurrency 0 HideIcon 1 TFBot { Class Heavyweapons ClassIcon hellmet_blank } } } Wave // Wave 6 { CustomWaveNumber 500 CustomMaxWaveNumber 0 WaitWhenDone 65 Checkpoint Yes StartWaveOutput { Target wave_start_relay Action Trigger } DoneOutput { Target wave_finished_relay Action Trigger } InitWaveOutput { Target holograms_3way_relay Action Trigger } Explanation { Line "{red}Boss: {yellow}The Holographic Menace." Line "{yellow}A giant spy who shapeshifts into different boss robots." Line "{yellow}You must get through the massive {RED}robot army to reach him first." Line "" Line "{red}Note: {yellow}You only have {00FFDE}8 minutes {yellow}for the end boss." Line "{00FFDE}/'SND_RESTART' IN CONSOLE TO STOP MUSIC ON WAVE LOST/" } SpawnTemplate wave6_logic PlayerAddCond { Index 34 } SpawnTemplate { Name "SpawnSentry" Origin "-408 -4524 160.25" Angles "0 0 0" } SpawnTemplate { Name "SpawnSentry" Origin "120 -4520 160.25" Angles "0 180 0" } WaveSpawn { TotalCount 0 SpawnCount 0 FirstSpawnOutput { Target playerResInWave //REQUIRED | Used to tell self res logic that wave is active/ turn it off again at the end of a wave Action ToggleTest } } WaveSpawn { TotalCount 0 SpawnCount 0 FirstSpawnOutput { Target playerResVal5 //set res count to one of 3 set Action GetValue } } WaveSpawn // Dummy { TotalCount 0 SpawnCount 0 WaitBeforeStarting 0 StartWaveOutput { Target wave6_relay Action Trigger } } WaveSpawn // Dummy { TotalCount 0 SpawnCount 0 WaitBeforeStarting 0 StartWaveOutput { Target 5minute30timer Action Trigger } } WaveSpawn // Dummy { TotalCount 0 SpawnCount 0 WaitBeforeStarting 0 StartWaveOutput { Target ps_nuke //attempt to remove cloud for wave failure Action Kill } } // WaveSpawn // { // Name "blu1" // Where spawnbot // TotalCount 30 // MaxActive 30 // SpawnCount 30 // WaitBeforeStarting 0 // WaitBetweenSpawns 0 // TotalCurrency 0 // Support Limited // StartWaveOutput // { // Target ps_nuke //attempt to remove cloud for wave failure // Action Kill // } // TFBot // { // Class Scout // ClassIcon blu2_lite // Skill Expert // Attributes DisableDodge // Action Mobber // StripItemSlot 1 // StripItemSlot 2 // AimTrackingInterval 0 // PreferExtraSlots 1 // // AddCond { Name "TF_COND_CRITBOOSTED_ON_KILL" } // } // } // WaveSpawn // { // Name "blu2" // Where spawnbot // TotalCount 3 // MaxActive 3 // SpawnCount 3 // WaitBeforeStarting 0 // WaitBetweenSpawns 100 // TotalCurrency 0 // Support 1 // Squad // { // FormationSize 250 // TFBot // { // Template T_TFBot_Giant_Soldier_Extended_Buff_Banner // ClassIcon blu2_lite // Attributes DisableDodge // Action Mobber // PreferExtraSlots 1 // CharacterAttributes { "deploy time decreased" 0.5 "increase buff duration" 50 } // } // TFBot // { // Template T_TFBot_Giant_Soldier_Extended_Concheror // ClassIcon blu2_lite // Attributes DisableDodge // Action Mobber // PreferExtraSlots 1 // CharacterAttributes { "deploy time decreased" 0.5 "increase buff duration" 50 } // } // TFBot // { // Template T_TFBot_Giant_Soldier_Extended_Battalion // ClassIcon blu2_lite // Attributes DisableDodge // Action Mobber // PreferExtraSlots 1 // CharacterAttributes { "deploy time decreased" 0.5 "increase buff duration" 50 } // } // } // } WaveSpawn { Name "blu3" WaitForAllSpawned "6b.1" Where spawnbot TotalCount 12 MaxActive 12 SpawnCount 12 WaitBeforeStarting 15.5 WaitBetweenSpawns 0 TotalCurrency 0 Support Limited TFBot { Template T_TFBot_Pyro ClassIcon blu2_lite Name "Extended Phlog Pyro" Skill Expert Attributes SpawnWithFullCharge Action Mobber PreferExtraSlots 1 Item "The Phlogistinator" ItemAttributes { ItemName "The Phlogistinator" "increase buff duration" 200 "airblast disabled" 0 } FireWeapon { Delay 1.1 Cooldown 7 Repeats 1 IfSeeTarget 0 Duration 0.1 Type "Secondary" } InterruptAction // Stop current bot ai and force the bot to move to a location { Target "tank_boss" // Move target location Delay 1 // Time before the first task starts. Must be above 0, or it will not execute (Default: 10) Repeats 1 // How many times should bot do the task in total (Default: 0 - Infinite) Cooldown 3 //Time between each task (Default: 10) KillAimTarget 1 Duration 600 // How long should the ai be interrupted } } } WaveSpawn { Name "6a.1" Where spawnbot_tunnel1 TotalCount 2 MaxActive 2 SpawnCount 2 WaitBeforeStarting 1 WaitBetweenSpawns 15 TotalCurrency 0 DoneOutput { Target player_died_relay2 Action Trigger } Squad { TFBot { Template T_TFBot_Red_Soldier_BurstFire ClassIcon soldier_burstfire_hyper_lite Attributes DisableDodge Item "Armored Authority" AddCond { Name "TF_COND_INVULNERABLE_USER_BUFF" Duration 3 } } TFBot { Template T_TFBot_Red_Giant_Medic ClassIcon medic_shield_red Name "Giant Shield Medic" Attributes ProjectileShield Attributes DisableDodge Attributes IgnoreEnemies Item "Lo-Fi Longwave" AddCond { Name "TF_COND_INVULNERABLE_USER_BUFF" Duration 3 } ItemAttributes { ItemName "The Quick-Fix" "generate rage on heal" 1 } CharacterAttributes { "increase buff duration" 2 "bot medic uber deploy delay duration" 9999 } } } } WaveSpawn { Name "6a.2" Where spawnbot_front_backarea TotalCount 2 MaxActive 2 SpawnCount 2 WaitBeforeStarting 1 WaitBetweenSpawns 0 TotalCurrency 0 DoneOutput { Target player_died_relay2 Action Trigger } Squad { TFBot { Template T_TFBot_Red_Giant_DemoMan_Burstfire AddCond { Name "TF_COND_INVULNERABLE_USER_BUFF" Duration 3 } } TFBot { Template T_TFBot_Red_Giant_Medic ClassIcon medic_shield_red Name "Giant Shield Medic" Attributes ProjectileShield Attributes DisableDodge Attributes IgnoreEnemies Item "Lo-Fi Longwave" AddCond { Name "TF_COND_INVULNERABLE_USER_BUFF" Duration 3 } ItemAttributes { ItemName "The Quick-Fix" "generate rage on heal" 1 } CharacterAttributes { "increase buff duration" 2 "bot medic uber deploy delay duration" 9999 } } } } WaveSpawn { Name "6a.3" Where spawnbot_station TotalCount 2 MaxActive 2 SpawnCount 2 WaitBeforeStarting 1 WaitBetweenSpawns 0 TotalCurrency 0 DoneOutput { Target player_died_relay2 Action Trigger } Squad { TFBot { Template T_TFBot_Red_Scout_BurstFire AddCond { Name "TF_COND_INVULNERABLE_USER_BUFF" Duration 3 } } TFBot { Template T_TFBot_Red_Giant_Medic ClassIcon medic_shield_red Name "Giant Shield Medic" Attributes ProjectileShield Attributes DisableDodge Attributes IgnoreEnemies Item "Lo-Fi Longwave" AddCond { Name "TF_COND_INVULNERABLE_USER_BUFF" Duration 3 } ItemAttributes { ItemName "The Quick-Fix" "generate rage on heal" 1 } CharacterAttributes { "increase buff duration" 2 "bot medic uber deploy delay duration" 9999 } } } } WaveSpawn // Dummy { Name "clear1" WaitForAllDead "6a.1" TotalCount 0 SpawnCount 0 WaitBeforeStarting 0 } WaveSpawn // Dummy { Name "clear1" WaitForAllDead "6a.2" TotalCount 0 SpawnCount 0 WaitBeforeStarting 0 } WaveSpawn // Dummy { Name "clear1" WaitForAllDead "6a.3" TotalCount 0 SpawnCount 0 WaitBeforeStarting 0 } WaveSpawn { Name "6a.4" WaitForAllDead "clear1" Where spawnbot_tunnel2 TotalCount 25 MaxActive 12 SpawnCount 1 WaitBeforeStarting 15 WaitBetweenSpawns 1 TotalCurrency 0 FirstSpawnWarningSound "vo/mvm/norm/sniper_mvm_laughlong02.mp3" DoneOutput { Target player_died_relay2 Action Trigger } TFBot { Template T_TFBot_Red_Giant_Sniper_Jumping_Bushwacka DeathSound "common/null.wav" } } WaveSpawn { Name "6b.1" WaitForAllDead "6a.4" Where spawnbot_pyramid TotalCount 24 MaxActive 12 SpawnCount 3 WaitBeforeStarting 10 WaitBetweenSpawns 2 TotalCurrency 100 RandomSpawn 1 TFBot { Template T_TFBot_Red_Demoman_Knight_RotateShield AddCond { Name "TF_COND_INVULNERABLE_USER_BUFF" Duration 3 } FireInput { Target "!self" Action "$addcond" Param 17 IfSeeTarget 1 Delay 0 Cooldown 20 Repeats 0 } } } WaveSpawn { Name "6b.2" WaitForAllDead "clear1" Where spawnbot_ruins_topdoor TotalCount 6 MaxActive 3 SpawnCount 1 WaitBeforeStarting 0 WaitBetweenSpawns 12 TotalCurrency 100 TFBot { Template T_TFBot_Red_Giant_Heavyweapons_Gold_Fist AddCond { Name "TF_COND_INVULNERABLE_USER_BUFF" Duration 3 } } } WaveSpawn // Tank 32k HP { Name "drilltank" WaitForAllSpawned "6b.1" TotalCount 1 MaxActive 1 SpawnCount 1 WaitBeforeStarting 15 WaitBetweenSpawns 0 TotalCurrency 0 FirstSpawnOutput { Target dr_tankdoor Action Open } DoneOutput { Target dr_tankdoor Action Close } Tank { Name "tankbossred" StartingPathTrackNode "tank_red_path2_1" Health 60000 Speed 60 Skin 1 ClassIcon tank_red_drill_lite TeamNum 2 SpawnTemplate "tankreddrill" Model "models/bots/boss_bot/boss_tankred.mdl" PingSound "ambient/levels/citadel/zapper_warmup1.wav" OnBombDroppedOutput { Target red_tank_deploy_relay Action Trigger } } } WaveSpawn { Name "6b.4" WaitForAllDead "6b.2" Where spawnbot_pyramid Where spawnbot_ruins_topdoor TotalCount 6 MaxActive 6 SpawnCount 3 WaitBeforeStarting 0 WaitBetweenSpawns 15 TotalCurrency 0 RandomSpawn 1 Squad { ShouldPreserveSquad 1 TFBot { Template T_TFBot_Red_Giant_Heavyweapons_Deflector Attributes DisableDodge MaxVisionRange 1000 SpawnTemplate powerup_logic_bot } TFBot { Template T_TFBot_Red_Medic_QuickUber Attributes DisableDodge } TFBot { Template T_TFBot_Red_Medic_QuickUber Attributes DisableDodge } } } WaveSpawn // Dummy { Name "clear2" WaitForAllDead "drilltank" TotalCount 0 SpawnCount 0 WaitBeforeStarting 0 } WaveSpawn // Dummy { Name "clear2" WaitForAllDead "6b.4" TotalCount 0 SpawnCount 0 WaitBeforeStarting 0 FirstSpawnOutput { Target sss_beatoff Action Trigger } } WaveSpawn // Dummy { WaitForAllDead "clear2" TotalCount 0 SpawnCount 0 WaitBeforeStarting 0 FirstSpawnOutput { Target barrier2_disable Action Trigger } } WaveSpawn // Dummy { WaitForAllDead "clear2" TotalCount 0 SpawnCount 0 WaitBeforeStarting 0 FirstSpawnOutput { Target 8minutetimer Action Trigger } } WaveSpawn // Dummy { WaitForAllDead "clear2" TotalCount 0 SpawnCount 0 WaitBeforeStarting 0.1 FirstSpawnOutput { Target resume_timer Action Trigger } } WaveSpawn { Name "boss" WaitForAllDead "clear2" Where literally_on_hatch TotalCount 1 MaxActive 1 SpawnCount 1 WaitBeforeStarting 10 WaitBetweenSpawns 0 TotalCurrency 0 DoneOutput { Target boss_deploy_relay Action Trigger } TFBot { Template T_TFBot_Chief_Shapeshifter } } WaveSpawn { Name "bosssupport" WaitForAllDead "clear2" Where // Advanced where syntax { Relative Anywhere // Spawn relative to player position Bots will try to spawn in hidden areas. Possible values: Ahead, Behind, Anywhere (default: Anywhere) MaxDistance 2000 // Max distance from players (default: 1500) MinDistance 750 // Min distance from players (default: 0) } TotalCount 60 MaxActive 20 SpawnCount 8 WaitBeforeStarting 0 WaitBetweenSpawns 2 TotalCurrency 300 RandomSpawn 1 TFBot { Class Spy Skill Expert AddCond { Name "TF_COND_REPROGRAMMED" } CharacterAttributes { "cannot pick up intelligence" 1 "disguise speed penalty" 2 } } } WaveSpawn { Name "redbuster" Where spawnbot_big TotalCount 1 MaxActive 1 SpawnCount 1 WaitBeforeStarting 30 WaitBetweenSpawnsAfterDeath 30 TotalCurrency 0 Support 1 TFBot { Template T_TFBot_Red_SentryBuster_Fix } } WaveSpawn { Where spawnbot TotalCount 1 MaxActive 1 SpawnCount 1 WaitBeforeStarting 99999 WaitBetweenSpawns 0 TotalCurrency 0 HideIcon 1 TFBot { Class Sniper ClassIcon hellmet_blank } } } }