#base robot_standard.pop #base robot_giant.pop #base robot_d_i_l.pop #base robot_tank_small_turret.pop #base ravener_custom.pop //Royal Custom weapons #base ravener_bot_logic.pop #base rotating_shield_whitecliff.pop // X3 //Where: //spawnbot //spawnbot_invasion //spawnbot_right //spawnbot_all //spawnbot_left //spawnbot_mission_sniper //spawnbot_mission_spy //spawnbot_mission_sentrybuster //Tank: //tankpath_left //tankpath_right //tankpath_same //tankpath_alt //Thanks to Eve for Setting up Lives Logic. //Thanks to B855 for some important logic regarding win conditions. That went unused... //Thanks to Seelpit for helping sort out the issue with the lives display not updating properly. //Thanks to royal for offering some funny gadgets for people to use. //next: LivesSurvivalEasy { StartingCurrency 3000 RespawnWaveTime 120 CanBotsAttackWhileInSpawnRoom no NoReanimators 1 Advanced 1 FixedRespawnWaveTime Yes BonusRatioHalf 2 //Disable Bonus BonusRatioFull 2 TextPrintTime 0 MaxSpectators 1 CustomNavFile "mvm_dusk_rc7b_stairs" FixSetCustomModelInput 1 AllowBotExtraSlots 1 ExtraBotSlotsNoDeathcam 1 RobotLimit 70 MaxRedPlayers 10 PrecacheModel "models/props_mvm/mvm_comically_small_player_shield.mdl" PrecacheModel "models/bots/demo/red_sentry_buster.mdl" PrecacheModel "models/rcat/rcat_level2.mdl" //LuaScriptFile "scripts/freelance_mercenary_logic.lua" LuaScriptFile "scripts/ravener_custom_weapons.lua" LuaScriptFile "scripts/projectile_shield_damage_whitecliff.lua" ConchHealthOnHit 0.2 PlayerAttributes { "min respawn time" 999 "dmg taken increased" 0.8 "damage bonus" 1.35 pyro { "dmg from ranged reduced" 0.75 } spy { "dmg from ranged reduced" 0.75 } } DisallowUpgrade { Upgrade "projectile penetration" MaxLevel 0 ItemName "Explosive Touch" } DisallowUpgrade { Upgrade "charge recharge rate increased" MaxLevel 0 ItemName "Buster Transformer" } DisallowUpgrade { Upgrade "effect bar recharge rate increased" MaxLevel 1 ItemName "Biker's Redeemer" } DisallowUpgrade { Upgrade "cannot giftwrap" MaxLevel 0 IfUpgradePresent { "generate rage on heal" 1 } } DisallowUpgrade { Upgrade "recall" MaxLevel 0 } CustomWeapon { "Biker's Redeemer" { OriginalItemName "The Flying Guillotine" "item style override" 1 "projectile speed decreased" 0.5 "damage bonus HIDDEN" 0 "mod projectile heat no predict target speed" 1 "mod projectile heat seek power" 360 "mod projectile heat aim error" 0 "mod projectile heat aim time" 100 "collect currency on kill" 1 "Blast radius decreased" 0 "projectile lifetime" 9 // "explosion particle" "" "no explosion particles" 1 "override projectile type" 2 "custom projectile model" "models/weapons/c_models/c_sd_cleaver/c_sd_cleaver.mdl" "projectile trail particle" "eyeboss_projectile" "special item description" "Home onto and phase through enemy, dealing contact damage each time" "special item description 2" "Damage is multiplied each hit, up to a cap of 10x" } "PHD Jumper" { OriginalItemName "Rocket Jumper" "cancel falling damage" 1 "attach particle effect" 1 "special item description" "On landing after a rocket jump: Create an explosion" "special item description 2" "Explosion radius and damage is determined by airborne time" "special item description 3" "Explosion damage is affected by damage bonus upgrade" "special item description 4" "Airborne time while parachuting is not counted" } "Parry Addiction" { OriginalItemName "Festive Targe 2014" "dmg taken from blast reduced" 0.9 "dmg taken from fire reduced" 0.9 "dmg taken from bullets reduced" 0.9 "charge recharge rate increased" 1.4 "special item description" "Alt-fire to negate all incoming damage and deal back twice the amount to the attacker" "special item description 2" "Parry period lasts for 0.8 seconds" // "special item description 3" "Cannot charge" } // "Caber Buster" // { // OriginalItemName "The Ullapool Caber" // "not solid to players" 1 // "special item description" "Becomes a Sentry Buster. Taunt to detonate (revert back to a regular Demoman on detonation)" // } "Buster Transformer" { OriginalItemName "Festive Targe 2014" //LUA code must be changed upon changing this attribute, as it is what it currently uses to identify what shield the player has equipped "dmg taken from blast reduced" 0.95 "dmg taken from fire reduced" 0.75 "charge recharge rate increased" -10 //Buying something from the upgrade station refills charge grahh "no resupply" 1 "special item description" "Fill up the charge meter by dealing damage" "special item description 2" "When the meter is full, press MOUSE2 to transform into a sentry buster." // "special item description 3" "Cannot charge" } "Holy Diver" { OriginalItemName "The Degreaser" "damage penalty" 0.1 "special item description" "+50% damage bonus on secondary weapon" "special item description 2" "+125% damage bonus on melee weapon" } "Wormhole Diver" { OriginalItemName "The Detonator" "penetrate teammates" 1 "damage penalty" 0 "Projectile speed decreased" 0.4 "paintkit_proto_def_index" 408 // hypergon "set_item_texture_wear" 0 "lunchbox adds minicrits" 0 // disable m2 "special item description" "Alt-Fire: Teleport to projectile position" "projectile trail particle" "eyeboss_projectile" } "Thunderdome" { OriginalItemName "Upgradeable TF_WEAPON_MINIGUN" "hidden primary max ammo bonus" 0.0001 "move speed bonus" 1.25 "cannot be upgraded" 1 "special item description" "Create 2 small projectile shields that orbit around you and damage enemies" "special item description 2" "Increased damage for secondary and melee" "special item description 3" "No primary weapon" } "Drone Walker" { OriginalItemName "The Rescue Ranger" "paintkit_proto_def_index" 217 //Bomber Soul "set_item_texture_wear" 0 "damage bonus" 1.5 "clip size penalty" 0.5 "engineer building teleporting pickup" 1000 "arrow heals buildings" 0 "engy sentry damage bonus" 0.65 //35% penalty "mod projectile heat follow crosshair" 1 // "mod projectile heat no predict target speed" 1 "mod projectile heat seek power" 360 "mod projectile heat aim error" 0 "mod projectile heat aim time" 100000 "Projectile speed decreased" 0.2 "mult projectile scale" 0.001 "arrow hit kill time" 0.01 "special item description" "Fires controlled drones that follow your cursor. Only 2 drones can be active at a time" "special item description 2" "Press alt-fire to toggle stationary state on active drones" // "special item description 3" "With gunslinger equipped: +1 max drone and always crit" } "No Mercy" { OriginalItemName "Wings of Purity" //potential buffer overflow hazard "cancel falling damage" 1 "increased air control" 5 "increased jump height" 1.2 "special item description" "Increased gravity and air control on wearer" "special item description 2" "Hold DUCK to rapidly descend" "special item description 3" "Wearer never takes falling damage" } "Explosive Touch" { OriginalItemName "The Fortified Compound" "fire rate penalty" 1.2 "throwable healing" 1 // mark to fire explosive tip "arrow hit kill time" 0.1 "special item description" "Fires explosive tipped arrows that sticks to enemies and detonate after 2 seconds" } "Seducer" { OriginalItemName "The Enforcer" "mod no reload DISPLAY ONLY" 1 "mod max primary clip override" -1 "damage penalty" 0.1 "fire input on hit" "popscript^$SeducerHit^" "add cond when active" 46 "special item description" "On hit: force a non-giant enemy to fight on your side" "special item description 2" "Controlled enemies are crit boosted and will self-destruct after 8 seconds" "special item description 3" "8 seconds cooldown" } "Freelance Mercenary" { OriginalItemName "Activated Campaign 3 Pass" "custom item model" "models/player/items/all_class/hwn_spellbook_complete.mdl" "special item description" "Press the Action key to switch between classes on the fly. 5 second cooldown between uses" "special item description 2" "Items with charge meter require 8 seconds to be ready after switched to" } } ExtraLoadoutItems { Scout { Secondary {Item "Biker's Redeemer"} } Soldier { //Primary {Item "PHD Jumper"} // too good } Heavyweapons { Primary {Item "Thunderdome"} } Pyro { Primary {Item "Holy Diver"} Secondary {Item "Wormhole Diver"} } Demoman { Secondary {Item "Parry Addiction"} Secondary {Item "Buster Transformer"} } Engineer { Primary {Item "Drone Walker"} } Medic { Primary {Item "No Mercy"} } Sniper { Primary {Item "Explosive Touch"} } Spy { // PDA2 {Item "Kirin's Ascension"} Secondary {Item "Seducer"} } //Action {Item "Freelance Mercenary"} //Conflicts with Lives system } ExtendedUpgrades { BisonGuided { Name "Guided Bison" Attribute "projectile speed decreased" Cap 0.65 Increment -0.35 Cost 300 AllowPlayerClass Soldier Description "Fire slower, guided bison projectiles" SecondaryAttributes { "mod projectile heat follow crosshair" 1 "mod projectile heat aim time" 5 "mod projectile heat seek power" 24 "particle color rgb" 9901999 } AllowedWeapons { ItemName "The Righteous Bison" } } BleedDamage { Name "Bleed Damage Bonus" Attribute "mult bleeding dmg" Cap 5.5 Increment 1.5 Cost 150 Description "Bleed deals increased damage" AllowedWeapons { ClassName "tf_weapon_compound_bow" } } SecondaryDamage { Name "Damage Bonus" Attribute "Damage Bonus HIDDEN" Cap 2 Increment 0.25 Cost 250 Description "Deal 25% extra damage per point" AllowedWeapons { ClassName "tf_weapon_pistol" } AllowedWeapons { ClassName "tf_weapon_handgun_scout_secondary" } AllowedWeapons { ClassName "tf_weapon_shotgun" } AllowedWeapons { ClassName "tf_weapon_shotgun_soldier" } AllowedWeapons { ClassName "tf_weapon_shotgun_soldier" } AllowedWeapons { ClassName "tf_weapon_shotgun_primary" } AllowedWeapons { ClassName "tf_weapon_syringegun_medic" } AllowedWeapons { ClassName "tf_weapon_crossbow" } AllowedWeapons { ClassName "tf_weapon_smg" } AllowedWeapons { ClassName "tf_weapon_charged_smg" } AllowedWeapons { ClassName "tf_weapon_revolver" } } BisonDamage { Name "Damage Bonus" Attribute "dmg penalty vs players" Cap 2 Increment 0.25 Cost 250 Description "Deal 25% extra damage per point" AllowedWeapons { ClassName "tf_weapon_raygun" } } SecondaryDamageLow { Name "Damage Bonus" Attribute "Damage Bonus HIDDEN" Cap 1.8 Increment 0.20 Cost 250 Description "Deal 20% extra damage per point" AllowedWeapons { ClassName "tf_weapon_shotgun_hwg" } AllowedWeapons { ClassName "tf_weapon_shotgun_pyro" } AllowedWeapons { ClassName "tf_weapon_flaregun" } AllowedWeapons { ClassName "tf_weapon_flaregun_revenge" } } drone_unstable { Name "Unstable Mod: Mothership Delta" Attribute "throwable damage" Description "A single powerful drone. Decreases sentry damage" Cap 1 Increment 1 Cost 0 AllowedWeapons { ItemName "Drone Walker" } SecondaryAttributes { "Projectile speed decreased" -0.75 "engy sentry damage bonus" -0.7 } OnApply { Output "popscript,$UpdateDroneCap,,0" } OnDowngrade { Output "popscript,$UpdateDroneCap,,0" } Tier 1 } drone_stable { Name "Stable Mod: Engineering Limit" Attribute "throwable fire speed" Description "+1 max drone. Replaces Sentry with Mini-Sentry" Cap 2 Increment 1 Cost 0 AllowedWeapons { ItemName "Drone Walker" } // SecondaryAttributes // { // "mod wrench builds minisentry" 1 // } OnApply { Output "popscript,$UpdateDroneCap,,0" } OnDowngrade { Output "popscript,$UpdateDroneCap,,0" } Tier 1 } // dome_unstable // { // Name "Unstable Mod: Red Sun" // Attribute "throwable damage" // Description "A single shield infront of you that does not rotate. -150 max health" // Cap 1 // Increment 1 // Cost 0 // SecondaryAttributes // { // "max health additive penalty" -150 // } // AllowedWeapons // { // ItemName "Thunderdome" // } // OnApply // { // Output "popscript,$ThunderdomeRefresh,,0" // } // OnDowngrade // { // Output "popscript,$ThunderdomeRefresh,,0" // } // Tier 1 // } // dome_stable // { // Name "Stable Mod: Communist Block" // Attribute "throwable fire speed" // Description "A single shield behind you that does not rotate" // Cap 2 // Increment 1 // Cost 0 // AllowedWeapons // { // ItemName "Thunderdome" // } // OnApply // { // Output "popscript,$ThunderdomeRefresh,,0" // } // OnDowngrade // { // Output "popscript,$ThunderdomeRefresh,,0" // } // Tier 1 // } ET_unstable { // suggested by colonel Name "Unstable Mod: Trailblazer" Attribute "throwable damage" Description "Arrow pierce enemies and leave an explosion on each enemy hit. -50% arrow damage" Cap 1 Increment 1 Cost 0 SecondaryAttributes { "damage penalty" -0.5 } AllowedWeapons { ItemName "Explosive Touch" } OnApply { Output "!activator,$AddItemAttribute,projectile penetration|1|0,0" } OnDowngrade { Output "!activator,$AddItemAttribute,projectile penetration|1|0,0" } Tier 1 } ET_stable { Name "Stable Mod: Arrow Jumpman" Attribute "rocket jump damage reduction" Description "No damage from self arrow explosion and fall damage. -10% fire rate" Cap 0 Increment -1 Cost 0 SecondaryAttributes { "fire rate penalty" 0.1 "cancel falling damage" 1 } AllowedWeapons { ItemName "Explosive Touch" } Tier 1 } // TODO: change the attributes of these to be unique so drone walker won't be unable to upgrade // wormhole_stable // { // Name "Stable Mod: Projectile follow crosshair" // Attribute "mod projectile heat follow crosshair" // Cap 1 // Increment 1 // Cost 0 // AllowedWeapons // { // ItemName "Wormhome Diver" // } // Tier 1 // } // wormhole_unstable // { // Name "Unstable Mod: Faster projectile speed" // Attribute "Projectile speed increased" // Cap 2 // Increment 2 // Cost 0 // AllowedWeapons // { // ItemName "Wormhome Diver" // } // Tier 1 // } redeemer_dmg { Name "+25% damage bonus" Attribute "damage bonus" Cap 2 Increment 0.25 Cost 200 AllowedWeapons { ItemName "Biker's Redeemer" } } instalevel2 { Name "Instant Buildings Level 2" Description "All buildings start at level 2 when deployed" Attribute "cannot giftwrap" Cap 1 Increment 1 Cost 150 PlayerUpgrade 1 AllowPlayerClass Engineer OnApply { Output "popscript,$InstaLvLPurchase,,0" } OnDowngrade { Output "popscript,$InstaLvLRefunded,,0" } } wingermybeloved { Name "Multi-Directional Dash" Description "Alt-fire to dash in the direction you're facing. 3 seconds cooldown" Attribute "cannot giftwrap" Cap 1 Increment 1 Cost 100 AllowedWeapons { ItemName "The Winger" } SecondaryAttributes { "add cond when active" 46 "special item description" "Alt-fire to dash in the direction you're facing. 3 seconds cooldown" } OnApply { Output "popscript,$WingerDashPurchased,,0" } OnDowngrade { Output "popscript,$WingerDashRefunded,,0" } } } DisallowUpgrade { Upgrade "cannot giftwrap" MaxLevel 0 IfUpgradePresent { "generate rage on heal" 1 } } PlayerItemEquipSpawnTemplate { Name FreelanceMercenary_Logic ItemName "Freelance Mercenary" } PlayerItemEquipSpawnTemplate { Name PHD_Equip ItemName "PHD Jumper" } BuildingSpawnTemplate { Name Building_Level2_Spawn BuildingType "Sentry" } BuildingSpawnTemplate { Name Building_Level2_Spawn BuildingType "Dispenser" } BuildingSpawnTemplate { Name Building_Level2_Spawn BuildingType "Teleporter Entry" } BuildingSpawnTemplate { Name Building_Level2_Spawn BuildingType "Teleporter Exit" } PlayerShootTemplate { Name DroneWalker_Shoot ItemName "Drone Walker" AttachToProjectile 1 } PlayerItemEquipSpawnTemplate { Name DroneWalker_Equip ItemName "Drone Walker" } PlayerItemEquipSpawnTemplate { Name Redeemer_Spawn ItemName "Biker's Redeemer" } PlayerItemEquipSpawnTemplate { Name HolyDiver_Spawn ItemName "Holy Diver" } PlayerItemEquipSpawnTemplate { Name WomrholeDiver_Spawn ItemName "Wormhole Diver" } PlayerShootTemplate { Name WomrholeDiver_Shot ItemName "Wormhole Diver" AttachToProjectile 1 } PlayerItemEquipSpawnTemplate { Name Thunderdome_Spawn ItemName "Thunderdome" } PlayerItemEquipSpawnTemplate { Name ParryAddiction_Spawn ItemName "Parry Addiction" } PlayerItemEquipSpawnTemplate { Name Caber_Buster ItemName "Caber Buster" } PlayerItemEquipSpawnTemplate { Name NoMercy_Spawn ItemName "No Mercy" } PlayerSpawnTemplate { Name Gravity_FailSafe } // PlayerShootTemplate // { // Name Explosive_Tip_Scavenger // ItemName "Scavenger" // AttachToProjectile 1 // } SpawnTemplate Global_Filters Templates { T_TFBot_Giant_Pyro_Switch { Class Pyro Name "Giant Switching Pyro" ClassIcon pyro_degreaser_flare Skill Expert Health 3000 Attributes MiniBoss Item "The Degreaser" ItemAttributes { ItemName "The Degreaser" "airblast disabled" 1 } ItemAttributes { ItemName "The Flare Gun" "fire rate bonus" 0.4 "provide on active" 1 "move speed bonus" 1.5 } CharacterAttributes { "move speed bonus" 0.5 "damage force reduction" 0.6 "airblast vulnerability multiplier" 0.6 "override footstep sound set" 6 } UseBestWeapon 1 Item "The Flare Gun" } T_TFBot_Large_Soldier { Class Soldier Name "Large Soldier" ClassIcon soldier_armored Health 750 Scale 1.4 ItemAttributes { ItemName "TF_WEAPON_ROCKETLAUNCHER" "blast radius increased" 1.15 } CharacterAttributes { "health regen" 1 "damage force reduction" 0.0 "airblast vulnerability multiplier" 0.8 "head scale" 0.7 } } T_TFBot_Large_Pyro_Fury { Class Pyro Name "Large Fury Pyro" ClassIcon pyro_dragon_fury_armored MaxVisionRange 450 Health 650 Scale 1.4 Item "The Dragon's Fury" ItemAttributes { ItemName "The Dragon's Fury" "damage bonus" 1.2 } CharacterAttributes { "health regen" 1 "damage force reduction" 0.0 "airblast vulnerability multiplier" 0.8 "head scale" 0.7 } } T_TFBot_Large_Pyro_Homewrecker { Class Pyro Name "Large Saboteur Pyro" ClassIcon pyro_homewrecker_lite Item "The Homewrecker" Health 650 Scale 1.4 WeaponRestrictions MeleeOnly Skill Hard ExtAttr IgnorePlayers ExtAttr IgnoreBots Attributes AlwaysFireWeapon ItemAttributes { ItemName "The Homewrecker" "damage bonus" 1.25 "dmg bonus vs buildings" 2.5 } CharacterAttributes { "health regen" 1 "damage force reduction" 0.0 "airblast vulnerability multiplier" 0.8 "head scale" 0.7 "SET BONUS: dmg from sentry reduced" 0.65 } } T_TFBot_Large_Heavyweapons { Class Heavyweapons Name "Large Heavy" ClassIcon heavy_armored Health 900 Scale 1.5 ItemAttributes { ItemName "TF_WEAPON_Minigun" "fire rate bonus" 0.9 } CharacterAttributes { "health regen" 1 "damage force reduction" 0.0 "airblast vulnerability multiplier" 0.7 } } T_TFBot_Giant_Engineer_Widowmaker { Class Engineer Name "Giant Rapidfire Widowmaker Engineer" Item "The Gunslinger" Item "The Widowmaker" ClassIcon engineer_widowmaker_inf_nys_giant WeaponRestrictions PrimaryOnly Skill Expert Health 2600 Attributes MiniBoss ItemAttributes { ItemName "The Widowmaker" "fire rate bonus" 0.5 } CharacterAttributes { "move speed bonus" 0.65 "damage force reduction" 0.65 "airblast vulnerability multiplier" 0.65 "override footstep sound set" 3 } } T_TFBot_Giant_Pyro_Fury { Class Pyro Name "Giant Fury Pyro" ClassIcon pyro_dragon_fury_giant MaxVisionRange 450 Health 3000 Item "The Dragon's Fury" WeaponRestrictions PrimaryOnly Attributes MiniBoss ItemAttributes { ItemName "The Dragon's Fury" "damage bonus" 1.5 } CharacterAttributes { "move speed bonus" 0.5 "damage force reduction" 0.6 "airblast vulnerability multiplier" 0.6 "override footstep sound set" 6 } } T_TFBot_Large_Demo_Burst { Class Demoman Name "Large Rapid_Burst Demoman" ClassIcon demo_burst_spammer Health 650 Scale 1.4 Attributes HoldFireUntilFullReload WeaponRestrictions PrimaryOnly ItemAttributes { ItemName "TF_WEAPON_GRENADELAUNCHER" "faster reload rate" 0.8 "fire rate bonus" 0.04 "clip size penalty" 0.5 "projectile spread angle penalty" 3 } CharacterAttributes { "health regen" 1 "damage force reduction" 0.0 "airblast vulnerability multiplier" 0.8 "head scale" 0.7 } } T_TFBot_Giant_Medic_Crossbow_Spammer { Class Medic Name "Giant RapidfireCrossbow Medic" ClassIcon medic_crossbow_giant WeaponRestrictions PrimaryOnly Skill Expert Health 4500 Attributes Miniboss Item "The Crusader's Crossbow" Item "Berliner's Bucket Helm" ItemAttributes { ItemName "The Crusader's Crossbow" "reload time decreased" 0.25 } CharacterAttributes { "move speed bonus" 0.5 "damage force reduction" 0.6 "airblast vulnerability multiplier" 0.6 } } T_TFBot_Soldier_BurstFire_NoCrit { Class Soldier Name "Giant Burst Fire Soldier" ClassIcon soldier_burstfire_hyper_lite Health 4200 Skill Expert WeaponRestrictions PrimaryOnly Attributes MiniBoss Attributes HoldFireUntilFullReload Item "The Team Captain" Item "The Diplomat" ItemAttributes { ItemName "TF_WEAPON_ROCKETLAUNCHER" "damage bonus" 2.0 "faster reload rate" 0.4 "fire rate bonus" 0.2 "clip size upgrade atomic" 5.0 } CharacterAttributes { "move speed bonus" 0.5 "damage force reduction" 0.4 "airblast vulnerability multiplier" 0.4 "override footstep sound set" 3 "Projectile speed increased" 0.9 } } } PointTemplates { corelogic { NoFixup 1 logic_auto { "origin" "0 0 0" "targetname" "mainrelay" "OnMapSpawn" "*door,Lock,,0,-1" "OnMapSpawn" "door*,Lock,,0,-1" "OnMapSpawn" "bombpath_arrow*,Kill,,0,-1" "OnMapSpawn" "func_nav_avoid,disable,,0,-1" //no bomb paths so we don't want nav avoids/prefers messing with ai "OnMapSpawn" "func_respawnroomvisualizer,Kill,,0,-1" "OnMapSpawn" "trigger_push,Kill,,0,-1" //no bomb paths so we don't want nav avoids/prefers messing with ai } logic_relay { "targetname" "killtime" "ontrigger" "@f@filter_toothpaste@player,$suicide,0,0,-1" } filter_tf_bot_has_tag { "targetname" "filter_toothpaste" "tags" "bot_killtime" } NoFixup 1 logic_relay { "origin" "0 0 0" "targetname" "bluwin_relay" "OnTrigger" "bots_win_red,RoundWin,,0,-1" "OnTrigger" "failuresound,PlaySound,,0,-1" //map dependent } NoFixup 1 game_round_win //do not { "origin" "0 0 0" "TeamNum" "3" "targetname" "bots_win_red" "switch_teams" "0" "force_map_reset" "1" "classname" "game_round_win" } NoFixup 1 trigger_multiple { "targetname" "thirdperson" "StartDisabled" "1" "spawnflags" "3" "origin" "1542.488770 739.029175 -143.968689" "maxs" "50 50 50" "mins" "-50 -50 -50" "filtername" "filter_blue" "OnStartTouch" "!activator,setforcedtauntcam,1,0.1,-1" "OnStartTouch" "!activator,SetHUDVisibility,0,0.1,-1" "OnStartTouch" "!activator,DisableDamageForces,,0,-1" //doesn't work? "OnEndTouch" "!activator,setforcedtauntcam,0,0,-1" "OnEndTouch" "!activator,SetHUDVisibility,1,0,-1" "OnEndTouch" "!activator,EnableDamageForces,,0,-1" } NoFixup 1 ambient_generic { "targetname" "failuresound" "health" "10" "message" "vo\announcer_failure.mp3" "pitch" "100" "pitchstart" "100" "radius" "20000" "spawnflags" "49" "origin" "0 0 0" } } Yakuza_Title_Card1 // by royal { OnSpawnOutput { Target "upper_text1" Action "Display" Delay 0.1 } OnSpawnOutput { Target "middle_text1" Action "Display" Delay 0.3 } game_text { "origin" "1984 1984 99999" "targetname" "upper_text1" "message" "MERCENARY SUPRESSION UNIT" "x" "-1" "y" "0.4" "spawnflags" "1" "effect" "2" "channel" "1" "color" "255 255 255" "fxtime" "0.2" "fadeout" "1" //"fadein" "0" "holdtime" "5" } game_text { "origin" "1984 1984 99999" "targetname" "middle_text1" "message" "DIRECT DISASTER" "x" "-1" "y" "0.45" "channel" "2" "spawnflags" "1" "color" "255 255 255" "fadein" "0.2" "fadeout" "1" "holdtime" "4.8" } } spawnforcefields { NoFixup 1 func_forcefield { "targetname" "spawnroomlow" "mins" "-160 -4 -150" "maxs" "160 4 150" "origin" "1078 1551 -117" "angles" 0 0 0 "TeamNum" "3" "StartDisabled" "0" } NoFixup 1 func_forcefield { "targetname" "spawnroomA" "mins" "-300 -25 -150" "maxs" "300 25 3000" "origin" "1254 632 240" "angles" 0 0 0 "TeamNum" "3" "StartDisabled" "0" } NoFixup 1 func_forcefield { "targetname" "spawnroomB" "mins" "-10 -300 -5" "maxs" "10 300 3000" "origin" "1529 870 304" "angles" 0 0 0 "TeamNum" "3" "StartDisabled" "0" } NoFixup 1 func_forcefield { "targetname" "spawnroomC" "mins" "-30 -300 -5" "maxs" "30 300 3000" "origin" "1494 681 304" "angles" 0 0 0 "TeamNum" "3" "StartDisabled" "0" } } nobuild { NoFixup 1 func_nobuild { "targetname" "nobuildingC1" "mins" "-140 100 -100" "maxs" "140 100 100" "origin" "-1791 1080 8" "angles" 0 0 0 "TeamNum" "2" } } music { NoFixup 1 ambient_generic { "targetname" "w4_music" "message" "platypus1ostarmalyte.wav" "health" "10" "radius" "69420" "spawnflags" "17" } NoFixup 1 logic_relay { "targetname" "jug" "OnTrigger" "w4_music,PlaySound,,0,-1" } NoFixup 1 ambient_generic { "targetname" "w4_music" "message" "platypus1ostarmalyte.wav" "health" "10" "radius" "69420" "spawnflags" "17" } NoFixup 1 logic_relay { "targetname" "jug" "OnTrigger" "w4_music,PlaySound,,0,-1" } } music2 { NoFixup 1 ambient_generic { "targetname" "w5_music" "message" "platypus1ostarmalyte.wav" "health" "10" "radius" "69420" "spawnflags" "17" } NoFixup 1 logic_relay { "targetname" "jug2" "OnTrigger" "w4_music,StopSound,,0,-1" "OnTrigger" "w5_music,PlaySound,,0,-1" } NoFixup 1 ambient_generic { "targetname" "w5_music" "message" "platypus1ostarmalyte.wav" "health" "10" "radius" "69420" "spawnflags" "17" } NoFixup 1 logic_relay { "targetname" "jug2" "OnTrigger" "w4_music,StopSound,,0,-1" "OnTrigger" "w5_music,PlaySound,,0,-1" } } music3 { NoFixup 1 ambient_generic { "targetname" "w6_music" "message" "platypus1ostarmalyte.wav" "health" "10" "radius" "69420" "spawnflags" "17" } NoFixup 1 logic_relay { "targetname" "jug3" "OnTrigger" "w5_music,StopSound,,0,-1" "OnTrigger" "w6_music,PlaySound,,0,-1" } NoFixup 1 ambient_generic { "targetname" "w6_music" "message" "platypus1ostarmalyte.wav" "health" "10" "radius" "69420" "spawnflags" "17" } NoFixup 1 logic_relay { "targetname" "jug3" "OnTrigger" "w5_music,StopSound,,0,-1" "OnTrigger" "w6_music,PlaySound,,0,-1" } } engy { NoFixup 1 bot_hint_engineer_nest { "targetname" "engy" "origin" "39 1746 1" "startdisabled" "0" } bot_hint_teleporter_exit { "targetname" "engy" "origin" "35 1977 1" "startdisabled" "0" } bot_hint_sentrygun { "targetname" "engy" "origin" "252 1912 -56" "startdisabled" "0" } } tutorialworldtext { NoFixup 1 logic_relay { "spawnflags" "2" "targetname" "tutorial_relay" "OnSpawn" "lives_survival,AddOutput,OnTrigger tutorial1:Kill,,0,-1" "OnSpawn" "lives_survival,AddOutput,OnTrigger tutorial2:Kill,,0,-1" "OnSpawn" "lives_survival,AddOutput,OnTrigger tutorial3:Kill,,0,-1" "OnSpawn" "lives_survival,AddOutput,OnTrigger tutorial4:Kill,,0,-1" "OnSpawn" "lives_survival,AddOutput,OnTrigger tutorial5:Kill,,0,-1" "OnSpawn" "lives_survival,AddOutput,OnTrigger tutorial6:Kill,,0,-1" "OnSpawn" "lives_survival,AddOutput,OnTrigger tutorial7:Kill,,0,-1" "OnSpawn" "lives_survival,AddOutput,OnTrigger tutorial8:Kill,,0,-1" } NoFixup 1 point_worldtext { "targetname" "tutorial1" "origin" "-2127 1531 150" "angles" "0 180 0" "textsize" "9" "color" "70 70 200" "message" "The robots have locked you out of spawn!" } NoFixup 1 point_worldtext { "targetname" "tutorial3" "origin" "-2127 1531 125" "angles" "0 180 0" "textsize" "9" "color" "200 200 70" "message" "You have 4 lives that will revive you immediately on death." } NoFixup 1 point_worldtext { "targetname" "tutorial4" "origin" "-2127 1531 100" "angles" "0 180 0" "textsize" "9" "color" "70 70 200" "message" "As long as someone is alive defending, the bots can't capture Dusk." } } respawnroom { func_respawnroom { "targetname" "respawnroom_custom" "TeamNum" "3" "origin" "2623 573 290" "mins" "-1100 -600 -10" "maxs" "600 600 500" } } controlpoint { NoFixup 1 prop_dynamic { "model" "models/props_gameplay/cap_point_base.mdl" "targetname" "cap_base" "solid" "6" "skin" "1" //set this number to 0 for neutral, 1 for red, 2 for blu "origin" "0 0 -1500" } trigger_capture_area { "classname" "trigger_capture_area" "area_cap_point" "cap_point" "area_time_to_cap" "14" //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_area" "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" "-5000 -5000 -1000" "maxs" "5000 5000 100" "origin" "0 0 128" "spawnflags" "1" "OnCapTeam1" "cap_base,Skin,1,0,-1" //set the first number to 0 for neutral, 1 for red, 2 for blu "OnCapTeam2" "cap_base,Skin,2,0,-1" //set the first number to 0 for neutral, 1 for red, 2 for blu "OnCapTeam2" "bots_win_red,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" "spawnflags" "1" "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" "Dusk" //this is the name of the control point that will show up in the kill feed "point_start_locked" "0" "point_warn_on_cap" "1" "point_warn_sound" "ControlPoint.CaptureWarn" "random_owner_on_restart" "0" "spawnflags" "4" "targetname" "cap_point" "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_point" //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" "1600 539 -1000" } team_control_point_master { "classname" "team_control_point_master" "cpm_restrict_team_cap_win" "2" //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.5" //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" "-2" "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_area Action SetControlPoint Param cap_point } 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 } } tutorial { NoFixup 1 logic_relay { "spawnflags" "2" "targetname" "tutorial_relay" "OnSpawn" "lives_survival,AddOutput,OnTrigger tutorial_relay2:Disable::0:-1,0,-1" "OnSpawn" "lives_survival,AddOutput,OnTrigger tutorial_relay:CancelPending::0:-1,0,-1" "OnSpawn" "tutorial_relay2,Trigger,,0,-1" // "OnSpawn" "wave_finished_relay,AddOutput,OnTrigger tutorial_relay:Trigger::1:-1,0,-1" "OnTrigger" "hints_1,Show,,0.05,-1" "OnTrigger" "hints_2,Show,,6,-1" "OnTrigger" "hints_3,Show,,12,-1" "OnTrigger" "hints_4,Show,,18,-1" "OnTrigger" "hints_5,Show,,24,-1" "OnTrigger" "hints_6,Show,,30,-1" "OnTrigger" "tutorial_relay2,Trigger,,36,-1" // "OnUser1" "hints_1,Hide,,0,-1" // "OnUser1" "hints_2,Hide,,0,-1" // "OnUser1" "hints_3,Hide,,0,-1" // "OnUser1" "hints_4,Hide,,0,-1" // "OnUser1" "tutorial_relay,CancelPending,,0.01,-1" // "OnUser1" "tutorial_relay2,CancelPending,,0,-1" // "OnUser1" "tutorial_relay2,Disable,,0.01,-1" } logic_relay { "spawnflags" "2" "targetname" "tutorial_relay2" "OnTrigger" "tutorial_relay,Trigger,,0,-1" } training_annotation { "targetname" "hints_1" "display_text" "The robots have locked you out of spawn!" "lifetime" "5.5" "origin" "-1747 754 200" } training_annotation { "targetname" "hints_2" "display_text" "If every one of you dies at once you lose." "lifetime" "5.5" "origin" "-1747 1554 200" } training_annotation { "targetname" "hints_3" "display_text" "Survive for the timer's duration to complete the wave." "lifetime" "5.5" "origin" "-1747 1554 200" } training_annotation { "targetname" "hints_4" "display_text" "You have lives that will revive you instantly" "lifetime" "5.5" "origin" "-1747 1554 200" } training_annotation { "targetname" "hints_5" "display_text" "The wave will end early if you defeat every robot. That is if you can." "lifetime" "5.5" "origin" "-1747 1554 200" } training_annotation { "targetname" "hints_6" "display_text" "Don't forget your capture point" "lifetime" "5.5" "origin" "-1769 1238 200" } } nozeroteam { NoFixup 1 math_counter { "targetname" "aliveplayer_counter" "StartDisabled" "0" "min" "0" "max" "6" "startvalue" "0" "OnHitMin" "bluwin_relay,Trigger,,1.5,-1" } NoFixup 1 trigger_multiple { "targetname" "countAlivePlayers_playerspawn" "filtername" "filter_red" "StartDisabled" "0" "spawnflags" "1" "mins" "-5000 -5661 -5000" "maxs" "5000 6091 5377" "OnStartTouch" "aliveplayer_counter,Add,1,0,-1" "OnEndTouch" "aliveplayer_counter,Subtract,1,0,-1" } } NoFixup 1 finaltele { trigger_teleport //teleport timer to box { "targetname" "timertele" "origin" "-1768 728 128" "spawnflags" "1" "solid" "0" "StartDisabled" "0" "maxs" "10 95 10" "mins" "-10 -100 -10" "target" "timerbox" } info_target { "targetname" "timerbox" "origin" "-1743 1080 10" "angles" "0 100 0" } trigger_teleport //teleport timer to box { "targetname" "timertele2" "origin" "-1720 728 128" "spawnflags" "1" "solid" "0" "StartDisabled" "0" "maxs" "25 115 10" "mins" "-25 -130 -10" "target" "timerbox2" } info_target { "targetname" "timerbox2" "origin" "-1697 1080 10" "angles" "0 100 0" } trigger_teleport //teleport timer to box { "targetname" "timertele3" "origin" "-1812 728 128" "spawnflags" "1" "solid" "0" "StartDisabled" "0" "maxs" "10 95 10" "mins" "-10 -100 -10" "target" "timerbox3" } info_target { "targetname" "timerbox3" "origin" "-1791 1080 10" "angles" "0 100 0" } } cabinet { NoFixup 1 logic_relay { "spawnflags" "2" "targetname" "locker_relay" "OnSpawn" "lives_survival,AddOutput,OnTrigger locker_model:TurnOff,,0,-1" "OnSpawn" "wave_finished_relay,AddOutput,OnTrigger locker_model:TurnOn,0,0,-1" } //NoFixup 1 prop_dynamic { "targetname" "locker_model" "model" "models/props_gameplay/resupply_locker.mdl" "solid" "6" "angles" "0 0 0" } func_regenerate { "targetname" "regenerate" "associatedmodel" "locker_model" "TeamNum" "2" "mins" "-20 -48 0" "maxs" "40 48 128" "OnStartTouchAll" "locker_model,SetAnimation,open,0,-1" "OnEndTouchAll" "locker_model,SetAnimation,close,0,-1" } } FakeIcon { NoFixup 1 logic_auto { "OnMapSpawn" "!self,Kill,,0,-1" "targetname" "yes" } } //Logic for lives starts here PlayersLeftLogic{ NoFixup 1 math_counter{ "targetname" "playersLeftAlive" "startvalue" 0 "min" 0 "outValue" "playersLeftFormat,$SetKey$Case01,,0,-1" "outValue" "playersLeftFormat,$Format,,0.2,-1" "outValue" "wipeCheck,SetValueCompare,,0,-1" //"OnHitMin" "bluwin_relay, trigger ,, 0, -1" } logic_compare{ "targetname" "wipeCheck" "initialValue" 0 "CompareValue" 0 "OnEqualTo" "redalive_saftey_timer,Enable,,0,-1" "OnNotEqualTo" "redalive_saftey_timer,Disable,,0,-1" } logic_case { "targetname" "playersLeftFormat" "case16" "Teammates 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.8" "y" "0.19" } } PlayerTracker{ NoFixup 1 OnSpawnOutput{ Target "playersLeftAlive" Action "add" Param "1" } logic_relay{ "$OnKilled" "playersLeftAlive,Subtract,1,0,0" } } PlayerLivesDisplay{ keepalive 1 OnSpawnOutput{ Target "playersLivesTracker" Action "$setKey$message" Param "$$='Lives Left: '.. (!activator.hasRes + 1)" Delay 0.1 } OnSpawnOutput{ Target "playersLivesTracker" Action "display" Delay 0.2 } OnParentKilledOutput{ Target "playersLivesTracker" Action "$setKey$message" Param "$$='Lives Left: '.. (!activator.hasRes)" Delay 0.1 } OnParentKilledOutput{ Target "playersLivesTracker" Action "display" Delay 0.2 } OnParentKilledOutput{ Target "playersLivesTracker" Action "kill" Delay 0.3 } game_text{ "targetname" "playersLivesTracker" "channel" "4" "color" "255 255 255" "color2" "255 255 255" "effect" "0" "fadein" "0" "fadeout" "1" "fxtime" "0.25" "holdtime" "9999" "message" "0" "spawnflags" "0" //"x" "0.8036" "x" "0.8008" "y" "0.225" } trigger_multiple{ "targetname" "lives_display_reset" "startDisabled" "0" "mins" "-5000 -5000 -5000" "maxs" "5000 5000 5000" "spawnflags" "1" "origin" "0 0 0" "wait" "0.5" "onTrigger" "playersLivesTracker,$setKey$message,$$='Lives Left: 4" "onTrigger" "playersLivesTracker,display,,0.2,-1" } RemoveIfKilled "playersLivesTracker" } //Player Res Template PlayerResInput{ NoFixup 1 OnSpawnOutput{ Target "playerResInWave" Action Test } logic_relay{ "targetname" "lives_survival" } OnSpawnOutput{ Target "lives_survival" Action addoutput Param "onTrigger prewave_lives:kill::0:-1" Delay 1 } OnSpawnOutput{ Target "lives_survival" Action $removeoutput Param "prewave-lives" } logic_relay{ "targetname" "mines_win_relay" "onTrigger" "player,$displayTextChat,{f5c542}The Base has been retaken from the Red's for now. Although the Virus may return.,1,-1" "onTrigger" "player,$displayTextChat,{f5c542}Returning to regular protocol...,5,-1" } logic_relay{ "targetname" "wipe_loopfix" "onTrigger" "player,$SetVar$hasRes,0,0,-1" } logic_branch{ "startvalue" "0" // used to detect if wave is started or not "targetname" "playerResInWave" "onTrue" "player,$SetVar$inWave,1,0,-1" "onTrue" "playerResInWaveTest,$SetVar$inWave,1,0,-1" "onFalse" "player,$SetVar$inWave,0,0,-1" "onFalse" "playerResInWaveTest,$SetVar$inWave,0,0,-1" } math_counter{ "targetname" "playerResInWaveTest" } 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" "3" // value to change "targetname" "playerResVal3" "onGetValue" "player,$SetVar$hasRes,,0,-1" } } PlayerRes{ keepalive 1 OnParentKilledOutput { Target "playerResConfirm" Action InValue Param "$$=''..?(int(!activator.hasRes) > 0, ?(int(playerResInWaveTest.inWave) < 1,string('99'),string('1')),?(int(playerResInWaveTest.inWave) < 1,string('99'),string('0')))" } logic_case{ "targetname" "playerResConfirm" "case01" "1" "case02" "0" "case03" "99" "OnCase01" "!activator,$ForceRespawnDead,,2,-1" "OnCase01" "!activator,$AddCond,52 5,2.1,-1" //respawn uber, change 2nd number for duration "OnCase01" "!activator,$AddCond,32 5,2.1,-1" //Speed boost on respawn "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" "player,$DisplayTextChat,$$=''.. '{f5c542}' .. string(!activator.m_szNetname) .. string('{ffffff} has been revived, they have {f5c542}') .. string(!activator.hasRes) .. string('{ffffff} more ') .. ?(int(!activator.hasRes) > 1, string('lives left.'), string('life 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" "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" } } PrewaveLives { trigger_multiple{ "targetname" "prewave_lives" "startDisabled" "0" "mins" "-5000 -5000 -5000" "maxs" "5000 5000 5000" "spawnflags" "1" "origin" "0 0 0" "onStartTouch" "!activator,$SetVar$hasRes,3,0,-1" } } 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_red.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 func_forcefield //what actually blocks players { "disablereceiveshadows" "0" "origin" "0 0 0" "renderamt" "255" "rendercolor" "255 255 255" "renderfx" "0" "rendermode" "10" "TeamNum" "3" "targetname" "barrierA1" "mins" "-140 -100 -100" "maxs" "140 70 2500" "StartDisabled" "0" } NoFixup 1 func_forcefield //what actually blocks players { "disablereceiveshadows" "0" "origin" "0 0 0" "renderamt" "255" "rendercolor" "255 255 255" "renderfx" "0" "rendermode" "10" "TeamNum" "2" "targetname" "barrierA1" "mins" "-140 -100 -100" "maxs" "140 70 2500" "StartDisabled" "0" } } } SpawnTemplate "corelogic" SpawnTemplate "PrewaveLives" SpawnTemplate "PlayersLeftLogic" SpawnTemplate "PlayerResInput" SpawnTemplate "FinalTele" SpawnTemplate "engy" SpawnTemplate "Tutorialworldtext" SpawnTemplate "respawnroom" SpawnTemplate "music" SpawnTemplate "music3" SpawnTemplate "music2" SpawnTemplate "nobuild" SpawnTemplate "spawnforcefields" SpawnTemplate { Name "controlpoint" "origin" "-1745 1218 8" "angles" "0 270 0" } SpawnTemplate { Name "cabinet" Origin "-2207 1430 8" Angles "0 0 0" } SpawnTemplate { Name "station" Origin "-1319 702 128" Angles "0 90 0" } PlayerSpawnTemplate { Name "PlayerRes" Bone "bip_spine_2" } PlayerSpawnTemplate { Name "PlayerLivesDisplay" Bone "bip_spine_2" } ExtraSpawnPoint //Adds spawn points on specified location { Name "dummy" StartDisabled 1 // If the spawn point starts disabled (Default: 0) TeamNum 3 // 2 - Red team 3 - Robots. If you are adding spawn for reprogrammed robots, use team 3 X "323" Y "-2505" Z "628" } PlayerSpawnTemplate "PlayerTracker" Mission { Objective DestroySentries InitialCooldown 2 Where spawnbot_mission_sentrybuster BeginAtWave 1 RunForThisManyWaves 5 CooldownTime 32 DesiredCount 1 TFBot { Template T_TFBot_SentryBuster } } Mission { Objective Sniper InitialCooldown 35 Where spawnbot_mission_sniper BeginAtWave 1 RunForThisManyWaves 1 CooldownTime 40 DesiredCount 3 TFBot { Template T_TFBot_Sniper } } Mission { Objective Sniper InitialCooldown 5 Where spawnbot_mission_sniper BeginAtWave 4 RunForThisManyWaves 1 CooldownTime 65 DesiredCount 6 TFBot { Template T_TFBot_Sniper } } Mission { Objective Spy InitialCooldown 45 Where spawnbot_mission_spy BeginAtWave 2 RunForThisManyWaves 1 CooldownTime 100 DesiredCount 3 TFBot { Template T_TFBot_Spy } } Mission { Objective Spy InitialCooldown 5 Where spawnbot_mission_spy BeginAtWave 5 RunForThisManyWaves 1 CooldownTime 25 DesiredCount 3 TFBot { Template T_TFBot_Spy } } Mission { Objective Engineer InitialCooldown 20 Where spawnbot_left BeginAtWave 1 RunForThisManyWaves 1 CooldownTime 120 DesiredCount 1 TFBot { Template T_TFBot_Engineer_Sentry_Tele_Battle ExtAttr BuildDispenserAsSentryGun //Builds dispenser instead of sentry gun TeleportWhere spawnbot_invasion CharacterAttributes { "engy dispenser radius increased" 40 } } } Mission { Objective Engineer InitialCooldown 20 Where spawnbot_left BeginAtWave 2 RunForThisManyWaves 2 CooldownTime 120 DesiredCount 1 TFBot { Template T_TFBot_Engineer_Sentry_Tele_Battle ExtAttr BuildDispenserAsSentryGun //Builds dispenser instead of sentry gun TeleportWhere spawnbot_invasion Name "Large Engineer" Skill Expert Health 900 Scale 1.4 CharacterAttributes { "health regen" 1 "damage force reduction" 0.8 "airblast vulnerability multiplier" 0.8 "engy building health bonus" 1.5 "engy dispenser radius increased" 40 } } } // Wave 1 ///////////////////////////////////// /////////////////////////////////////////////// // 10 groups of 3 shotgun Heavies (50) // 10 groups of 3 pyros (50) // 2 Giant Soldiers (64) // 1 Giant Rapidfire Demo (36) // ---------------------------------------- // 15 groups of 4 fastchamps (100) // 2 Giant Pyros with a bigheal medic each side (100) // ---------------------------------------- // 10 groups of 2 scouts (30) // 10 groups of 2 soldiers (40) // 6 groups of 2 heavies (30) // 2 Giant Rapidfire Demomen with 3 bigheal medics (100) // ---------------------------------------- // 10 groups 2 of bison soldiers (30) // 10 groups of 3 shotgun heavies (70) // 4 Giant Bowmen (100) // ---------------------------------------- // 15 groups of 2 fastchamp heavies (50) // 10 groups of 3 pyros (50) // 4 Giant Soldiers with 1 bigheal medics (150) // ---------------------------------------- // EXTRA // 2 Giant Charged soldiers main and side (50) // support 2 groups of 3 crossbow medics (50) /////////////////////////////////////////////// Wave { WaitWhenDone 65 Checkpoint Yes StartWaveOutput { Target lives_survival Action Trigger } DoneOutput { Target wave_finished_relay Action Trigger } Explanation //Dispayed once the wave is initialized { Line "{red}If everyone dies at once you lose." Line "{red}You have a limited number of lives which will revive you immediately on death." Line "{red}There's a lot of them. I do mean a lot." } 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 lives_display_reset //REQUIRED | Used to tell self res logic that wave is active/ turn it off again at the end of a wave Action disable } } WaveSpawn{ TotalCount 0 SpawnCount 0 FirstSpawnOutput{ Target playerResVal3 //set res count to one of 3 set Action GetValue } } WaveSpawn{ TotalCount 0 SpawnCount 0 FirstSpawnOutput{ Target regenerate Action Disable } } //TotalCurrency 700 WaveSpawn{ WaitForAllDead "Final" TotalCount 0 SpawnCount 0 FirstSpawnOutput{ Target playerResVal3 //set res count to one of 3 set Action GetValue } } WaveSpawn{ WaitForAllDead "Final" TotalCount 0 SpawnCount 0 DoneOutput{ Target regenerate Action Enable } } WaveSpawn{ WaitForAllDead "Final" TotalCount 0 SpawnCount 0 WaitBeforeStarting 0.1 FirstSpawnOutput{ Target Lives_display_reset //REQUIRED | Used to tell self res logic that wave is active/ turn it off again at the end of a wave Action enable } } WaveSpawn { WaitForAllDead "Final" TotalCount 0 SpawnCount 0 WaitBeforeStarting 0.1 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 // 10 groups of 3 shotgun Heavies (50) { Name "A" Where spawnbot_invasion TotalCount 45 MaxActive 18 SpawnCount 3 WaitBeforeStarting 0 WaitBetweenSpawns 1 RandomSpawn 1 TotalCurrency 50 TFBot { Template T_TFBot_Heavyweapons_Shotgun Skill Easy Action Mobber Attributes IgnoreFlag DesiredAttackRange 200 ChangeAttributes { Delay 60 Repeats 1 Name "Vet" } EventChangeAttributes //apply this to all bots. { Vet { ItemAttributes { ItemName "TF_WEAPON_SHOTGUN_HWG" "fire rate bonus" 1 "move speed bonus" 1.3 } CustomEyeGlowColor "255 0 0" } } } } WaveSpawn // 10 groups of 3 pyros (50) { Name "A" Where spawnbot_invasion TotalCount 42 MaxActive 15 SpawnCount 2 WaitBeforeStarting 0 WaitBetweenSpawns 1 RandomSpawn 1 TotalCurrency 50 TFBot { Class Pyro Action Mobber DesiredAttackRange 200 Attributes IgnoreFlag ChangeAttributes { Delay 60 Repeats 1 Name "Vet" } EventChangeAttributes { Vet { ItemAttributes { ItemName "TF_WEAPON_FLAMETHROWER" "damage bonus" 1.35 "move speed bonus" 1.3 } CustomEyeGlowColor "255 0 0" } } } } WaveSpawn // 2 Giant Soldiers (64) { Where spawnbot TotalCount 3 MaxActive 3 SpawnCount 1 WaitBeforeStarting 0 WaitBetweenSpawns 1 TotalCurrency 50 RandomSpawn 1 TFBot { Template T_TFBot_Giant_Soldier_Spammer Action Mobber DesiredAttackRange 350 Attributes IgnoreFlag Attributes DisableDodge ChangeAttributes { Delay 100 Repeats 1 Name "Vet" } EventChangeAttributes { Vet { ItemAttributes { ItemName "TF_WEAPON_ROCKETLAUNCHER" "fire rate bonus" 0.4 "blast radius increased" 1.2 } CustomEyeGlowColor "255 0 0" } } } } WaveSpawn // 1 Giant Rapidfire Demo (36) { Where spawnbot_left TotalCount 3 MaxActive 3 SpawnCount 1 WaitBeforeStarting 30 WaitBetweenSpawns 1 RandomSpawn 1 TotalCurrency 50 TFBot { Template T_TFBot_Giant_Demoman Action Mobber DesiredAttackRange 600 Attributes IgnoreFlag Attributes DisableDodge ChangeAttributes { Delay 100 Repeats 1 Name "Vet" } EventChangeAttributes { Vet { ItemAttributes { ItemName "TF_WEAPON_GRENADELAUNCHER" "fire rate bonus" 0.6 "damage bonus" 1.25 } CustomEyeGlowColor "255 0 0" } } } } WaveSpawn // 15 groups of 4 fastchamps (100) { Name "B" Where spawnbot_invasion TotalCount 84 MaxActive 30 SpawnCount 6 WaitBeforeStarting 10 WaitBetweenSpawns 0.8 RandomSpawn 1 WaitForAllSpawned "A" TotalCurrency 50 TFBot { Template T_TFBot_Heavyweapons_Heavyweight_Champ_Fast Action Mobber DesiredAttackRange 100 Attributes IgnoreFlag ChangeAttributes { Delay 60 Repeats 1 Name "Vet" } EventChangeAttributes { Vet { ItemAttributes { ItemName "The Gloves of Running Urgently MvM" "fire rate bonus" 0.6 "move speed bonus" 1.3 } CustomEyeGlowColor "255 0 0" } } } } WaveSpawn // 2 Giant Pyros with a bigheal medic each side (100) { Where spawnbot TotalCount 12 MaxActive 12 SpawnCount 4 WaitBeforeStarting 10 WaitBetweenSpawns 2 RandomSpawn 1 WaitForAllSpawned "A" TotalCurrency 50 Squad { TFBot { Template T_TFBot_Giant_Pyro_Switch Attributes DisableDodge Action Mobber DesiredAttackRange 200 Attributes IgnoreFlag ChangeAttributes { Delay 100 Repeats 1 Name "Vet" } EventChangeAttributes { Vet { CharacterAttributes { "dmg penalty vs players" 1.75 } CustomEyeGlowColor "255 0 0" } } } TFBot { Template T_TFBot_Medic_Bigheal Attributes IgnoreFlag ChangeAttributes { Delay 60 Repeats 1 Name "Vet" } EventChangeAttributes { Vet { ItemAttributes { ItemName "The Quick-Fix" "heal rate bonus" 25 "move speed bonus" 1.3 } CustomEyeGlowColor "255 0 0" } } } TFBot { Class Soldier Action Mobber DesiredAttackRange 350 Skill Expert Attributes IgnoreFlag ChangeAttributes { Delay 60.2 Repeats 1 Name "Vet" } EventChangeAttributes { Vet { ItemAttributes { ItemName "TF_WEAPON_ROCKETLAUNCHER" "reload time decreased" 0.5 "move speed bonus" 1.3 } CustomEyeGlowColor "255 0 0" } } } TFBot { Class Soldier Action Mobber DesiredAttackRange 350 Skill Expert Attributes IgnoreFlag ChangeAttributes { Delay 60.2 Repeats 1 Name "Vet" } EventChangeAttributes { Vet { ItemAttributes { ItemName "TF_WEAPON_ROCKETLAUNCHER" "reload time decreased" 0.5 "move speed bonus" 1.3 } CustomEyeGlowColor "255 0 0" } } } } } WaveSpawn // 2 Giant Pyros with a bigheal medic each side (100) { Where spawnbot_right TotalCount 12 MaxActive 12 SpawnCount 4 WaitBeforeStarting 35 WaitBetweenSpawns 2 RandomSpawn 1 WaitForAllSpawned "A" TotalCurrency 50 Squad { TFBot { Template T_TFBot_Giant_Pyro_Switch Attributes DisableDodge Action Mobber DesiredAttackRange 100 Attributes IgnoreFlag ChangeAttributes { Delay 100 Repeats 1 Name "Vet" } EventChangeAttributes { Vet { CharacterAttributes { "dmg penalty vs players" 1.75 } CustomEyeGlowColor "255 0 0" } } } TFBot { Template T_TFBot_Medic_Bigheal Attributes IgnoreFlag ChangeAttributes { Delay 60 Repeats 1 Name "Vet" } EventChangeAttributes { Vet { ItemAttributes { ItemName "The Quick-Fix" "heal rate bonus" 25 "move speed bonus" 1.3 } CustomEyeGlowColor "255 0 0" } } } TFBot { Class Soldier Action Mobber DesiredAttackRange 350 Skill Expert Attributes IgnoreFlag ChangeAttributes { Delay 60.2 Repeats 1 Name "Vet" } EventChangeAttributes { Vet { ItemAttributes { ItemName "TF_WEAPON_ROCKETLAUNCHER" "reload time decreased" 0.5 "move speed bonus" 1.3 } CustomEyeGlowColor "255 0 0" } } } TFBot { Class Soldier Action Mobber DesiredAttackRange 350 Skill Expert Attributes IgnoreFlag ChangeAttributes { Delay 60.2 Repeats 1 Name "Vet" } EventChangeAttributes { Vet { ItemAttributes { ItemName "TF_WEAPON_ROCKETLAUNCHER" "reload time decreased" 0.5 "move speed bonus" 1.3 } CustomEyeGlowColor "255 0 0" } } } } } WaveSpawn // 10 groups of 2 scouts (30) { Name "C" Where spawnbot_invasion TotalCount 144 MaxActive 45 SpawnCount 36 WaitBeforeStarting 10 WaitBetweenSpawns 2.5 RandomSpawn 1 WaitForAllSpawned "B" TotalCurrency 50 Squad { NoFormation 1 TFBot { Class Scout Action Mobber DesiredAttackRange 200 Attributes IgnoreFlag ChangeAttributes { Delay 60 Repeats 1 Name "Vet" } EventChangeAttributes { Vet { ItemAttributes { ItemName "TF_WEAPON_SCATTERGUN" "reload time decreased" 0.5 "move speed bonus" 1.3 } CustomEyeGlowColor "255 0 0" } } } TFBot { Class Soldier Skill Normal Action Mobber DesiredAttackRange 350 Attributes IgnoreFlag InterruptAction { Target "ClosestPlayer" Delay 12 Cooldown 70 //Time between each task (Default: 10) Duration 600 // How long should the ai be interrupted Distance 800 } ChangeAttributes { Delay 60.2 Repeats 1 Name "Vet" } EventChangeAttributes { Vet { ItemAttributes { ItemName "TF_WEAPON_ROCKETLAUNCHER" "reload time decreased" 0.5 "move speed bonus" 1.3 } CustomEyeGlowColor "255 0 0" } } } TFBot { Class Heavyweapons Action Mobber DesiredAttackRange 200 Attributes IgnoreFlag ChangeAttributes { Delay 60.4 Repeats 1 Name "Vet" } EventChangeAttributes { Vet { ItemAttributes { ItemName "TF_WEAPON_MINIGUN" "damage bonus" 1.15 "move speed bonus" 1.4 } CustomEyeGlowColor "255 0 0" } } } } } WaveSpawn // 2 Giant Rapidfire Demomen with 3 bigheal medics (100) { Where spawnbot TotalCount 27 MaxActive 9 SpawnCount 9 WaitBeforeStarting 14 WaitBetweenSpawns 16 RandomSpawn 1 WaitForAllSpawned "B" TotalCurrency 50 Squad { TFBot { Template T_TFBot_Giant_Demoman Attributes DisableDodge Action Mobber DesiredAttackRange 600 Attributes IgnoreFlag ChangeAttributes { Delay 90 Repeats 1 Name "Vet" } EventChangeAttributes { Vet { ItemAttributes { ItemName "TF_WEAPON_GRENADELAUNCHER" "fire rate bonus" 0.6 "damage bonus" 1.25 } CustomEyeGlowColor "255 0 0" } } } TFBot { Template T_TFBot_Medic_Quickfix Attributes IgnoreFlag ChangeAttributes { Delay 60 Repeats 1 Name "Vet" } EventChangeAttributes { Vet { ItemAttributes { ItemName "The Quick-Fix" "heal rate bonus" 25 "move speed bonus" 1.3 } CustomEyeGlowColor "255 0 0" } } } TFBot { Template T_TFBot_Medic_Quickfix Attributes IgnoreFlag ChangeAttributes { Delay 60.2 Repeats 1 Name "Vet" } EventChangeAttributes { Vet { ItemAttributes { ItemName "The Quick-Fix" "heal rate bonus" 25 "move speed bonus" 1.3 } CustomEyeGlowColor "255 0 0" } } } } } WaveSpawn // 10 groups 2 of bison soldiers (30) { Name "D" Where spawnbot_invasion TotalCount 108 MaxActive 24 SpawnCount 4 WaitBeforeStarting 10 WaitBetweenSpawns 0.7 RandomSpawn 1 WaitForAllSpawned "C" TotalCurrency 30 RandomChoice { TFBot { Template T_TFBot_Soldier_Bison Action Mobber DesiredAttackRange 400 Attributes IgnoreFlag Skill Hard } } } WaveSpawn // 10 groups of 3 shotgun heavies (70) { Name "D" Where spawnbot_invasion TotalCount 42 MaxActive 12 SpawnCount 2 WaitBeforeStarting 10 WaitBetweenSpawns 0.7 RandomSpawn 1 WaitForAllSpawned "C" TotalCurrency 20 RandomChoice { TFBot { Template T_TFBot_Heavyweapons_Shotgun Action Mobber DesiredAttackRange 200 Attributes IgnoreFlag } } } WaveSpawn // 4 Giant Bowmen (100) { Where spawnbot_invasion TotalCount 12 MaxActive 6 SpawnCount 3 WaitBeforeStarting 10 WaitBetweenSpawns 17 RandomSpawn 1 TotalCurrency 100 WaitForAllSpawned "C" TFBot { Template T_TFBot_Giant_Sniper_Huntsman Attributes DisableDodge Action Mobber DesiredAttackRange 800 Attributes IgnoreFlag ItemAttributes { ItemName "The Huntsman" "damage bonus" 1.25 } } } WaveSpawn // support 2 groups of 3 crossbow medics (50) { Where spawnbot_invasion TotalCount 50 MaxActive 33 SpawnCount 4 WaitBeforeStarting 7 WaitBetweenSpawns 0.7 Support 1 RandomSpawn 1 WaitForAllSpawned "D" TotalCurrency 50 RandomChoice { TFBot { Class Medic Name "Crossbow Medic" Skill Normal ClassIcon medic_crossbow WeaponRestrictions PrimaryOnly Item "The Crusader's Crossbow" Item "Berliner's Bucket Helm" Action Mobber DesiredAttackRange 700 Attributes IgnoreFlag } } } WaveSpawn // support 2 groups of 3 crossbow medics (50) { Where spawnbot_invasion Name "Final" TotalCount 9 MaxActive 9 SpawnCount 1 WaitBeforeStarting 7 WaitBetweenSpawns 1.6 RandomSpawn 1 TotalCurrency 50 WaitForAllSpawned "D" DoneOutput{ Target regenerate Action Enable } TFBot { Template T_TFBot_Giant_Soldier_Crit Attributes DisableDodge Action Mobber DesiredAttackRange 350 Attributes IgnoreFlag } } } // Wave 2 ///////////////////////////////////// /////////////////////////////////////////////// // 1 tank (50) // 10 groups of 3 scouts (50) // 5 Samurai Demomen (50) // ---------------------------------------- // 4 Giant Demoknights (50) // 10 groups of 2 soldiers (50) // 10 groups of 4 bowmen (50) // ---------------------------------------- // 1 Tank Late (50) // 15 groups of 4 demomen (150) // ---------------------------------------- // 10 Groups of 5 scouts (50) // 4 Giant Armoured Bat Scouts (50) // ---------------------------------------- // 4 Giant Crossbow medics (50) // 10 groups of 3 demomen (50) // 10 groups of 3 bowmen (50) // ---------------------------------------- // EXTRA // 2 Giant Heater heavies with 4 buff soldiers (50) // support Large Soldier (50) /////////////////////////////////////////////// Wave { WaitWhenDone 65 Checkpoint Yes StartWaveOutput { Target lives_survival Action Trigger } DoneOutput { Target wave_finished_relay Action Trigger } Explanation //Dispayed once the wave is initialized { Line "{red}If everyone dies at once you lose." Line "{red}You have a limited number of lives which will revive you immediately on death." } 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 lives_display_reset //REQUIRED | Used to tell self res logic that wave is active/ turn it off again at the end of a wave Action disable } } WaveSpawn{ TotalCount 0 SpawnCount 0 FirstSpawnOutput{ Target playerResVal3 //set res count to one of 3 set Action GetValue } } WaveSpawn{ TotalCount 0 SpawnCount 0 FirstSpawnOutput{ Target regenerate Action Disable } } //TotalCurrency 1000 WaveSpawn{ WaitForAllDead "Final" TotalCount 0 SpawnCount 0 FirstSpawnOutput{ Target playerResVal3 //set res count to one of 3 set Action GetValue } } WaveSpawn{ WaitForAllDead "Final" TotalCount 0 SpawnCount 0 DoneOutput{ Target regenerate Action Enable } } WaveSpawn{ WaitForAllDead "Final" TotalCount 0 SpawnCount 0 WaitBeforeStarting 0.1 FirstSpawnOutput{ Target Lives_display_reset //REQUIRED | Used to tell self res logic that wave is active/ turn it off again at the end of a wave Action enable } } WaveSpawn { WaitForAllDead "Final" TotalCount 0 SpawnCount 0 WaitBeforeStarting 0.1 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 // 10 groups of 3 scouts (50) { Name "A" Where spawnbot_invasion TotalCount 108 MaxActive 30 SpawnCount 4 WaitBeforeStarting 0 WaitBetweenSpawns 0.7 TotalCurrency 75 RandomSpawn 1 TFBot { Class Scout Action Mobber DesiredAttackRange 200 Attributes IgnoreFlag ChangeAttributes { Delay 55 Repeats 1 Name "Vet" } EventChangeAttributes { Vet { ItemAttributes { ItemName "TF_WEAPON_SCATTERGUN" "reload time decreased" 0.5 "move speed bonus" 1.3 } CustomEyeGlowColor "255 0 0" } } } } WaveSpawn // 5 Samurai Demomen (50) { Name "A" Where spawnbot_invasion TotalCount 15 MaxActive 9 SpawnCount 3 WaitBeforeStarting 0 WaitBetweenSpawns 8.5 TotalCurrency 75 RandomSpawn 1 TFBot { Template T_TFBot_Demoman_Samurai Action Mobber Attributes IgnoreFlag Attributes DisableDodge CharacterAttributes { "damage force reduction" 0.0 } ChangeAttributes { Delay 70 Repeats 1 Name "Vet" } EventChangeAttributes { Vet { ItemAttributes { ItemName "The Half-Zatoichi" "fire rate bonus" 0.7 "move speed bonus" 1.3 } CustomEyeGlowColor "255 0 0" } } } } WaveSpawn // Hammer { Where spawnbot_invasion TotalCount 6 MaxActive 6 SpawnCount 1 WaitBeforeStarting 5 WaitBetweenSpawns 10 Support Limited RandomSpawn 1 TFBot { Template T_TFBot_Large_Pyro_Homewrecker Action Mobber Attributes IgnoreFlag Attributes DisableDodge Attributes AlwaysFireWeapon InterruptAction { Target "ClosestPlayer" Delay 30 Cooldown 70 //Time between each task (Default: 10) Duration 600 // How long should the ai be interrupted Distance 350 } ChangeAttributes { Delay 70 Repeats 1 Name "Vet" } EventChangeAttributes { Vet { ItemAttributes { ItemName "The Homewrecker" "fire rate bonus" 0.6 "move speed bonus" 1.3 } CustomEyeGlowColor "255 0 0" } } } } WaveSpawn // 1 Tank (200) { TotalCurrency 250 TotalCount 3 SpawnCount 1 WaitBetweenSpawns 10 FirstSpawnOutput { Target boss_spawn_relay Action Trigger } Tank { Health 14000 Name tankboss Speed 75 StartingPathTrackNode "tankpath_alt" OnKilledOutput { Target boss_dead_relay Action Trigger } OnBombDroppedOutput { Target boss_deploy_relay Action Trigger } } } WaveSpawn // 4 Giant Demoknights (50) { Where spawnbot_invasion TotalCount 12 MaxActive 7 SpawnCount 1 WaitBeforeStarting 2.5 WaitBetweenSpawns 4.3 RandomSpawn 1 TotalCurrency 75 WaitForAllSpawned "A" RandomChoice { TFBot { Template T_TFBot_Giant_Medic_Crossbow_Spammer Attributes DisableDodge Action Mobber DesiredAttackRange 700 Attributes IgnoreFlag ChangeAttributes { Delay 90 Repeats 1 Name "Vet" } EventChangeAttributes { Vet { ItemAttributes { ItemName "The Crusader's Crossbow" "fire rate bonus " 0.75 "clip size upgrade atomic" 1 "reload full clip at once" 1 } CustomEyeGlowColor "255 0 0" } } } } } WaveSpawn // 10 groups of 2 soldiers (50) { Name "B" Where spawnbot_left TotalCount 135 MaxActive 34 SpawnCount 27 WaitBeforeStarting 8 WaitBetweenSpawns 7.5 TotalCurrency 50 RandomSpawn 1 WaitForAllSpawned "A" Squad { NoFormation 1 TFBot { Class Soldier Skill Normal Action Mobber DesiredAttackRange 350 Attributes IgnoreFlag ChangeAttributes { Delay 55 Repeats 1 Name "Vet" } EventChangeAttributes { Vet { ItemAttributes { ItemName "TF_WEAPON_ROCKETLAUNCHER" "reload time decreased" 0.5 "move speed bonus" 1.3 } CustomEyeGlowColor "255 0 0" } } } TFBot { Template T_TFBot_Sniper_Huntsman Action Mobber DesiredAttackRange 600 Attributes IgnoreFlag ChangeAttributes { Delay 55 Repeats 1 Name "Vet" } EventChangeAttributes { Vet { ItemAttributes { ItemName "The Huntsman" "reload time decreased" 0.5 "move speed bonus" 1.3 } CustomEyeGlowColor "255 0 0" } } } TFBot { Template T_TFBot_Sniper_Huntsman Action Mobber DesiredAttackRange 600 Attributes IgnoreFlag ChangeAttributes { Delay 55 Repeats 1 Name "Vet" } EventChangeAttributes { Vet { ItemAttributes { ItemName "The Huntsman" "reload time decreased" 0.5 "move speed bonus" 1.3 } CustomEyeGlowColor "255 0 0" } } } } } WaveSpawn // 15 groups of 4 demomen (150) { Name "C" Where spawnbot_invasion TotalCount 144 MaxActive 57 SpawnCount 8 WaitBeforeStarting 8 WaitBetweenSpawns 0.83 RandomSpawn 1 TotalCurrency 125 WaitForAllSpawned "B" Squad { NoFormation 1 TFBot { Class Demoman Skill Normal Attributes IgnoreFlag Action Mobber DesiredAttackRange 600 ChangeAttributes { Delay 55 Repeats 1 Name "Vet" } EventChangeAttributes { Vet { ItemAttributes { ItemName "TF_WEAPON_GrenadeLauncher" "reload time decreased" 0.5 "move speed bonus" 1.3 } CustomEyeGlowColor "255 0 0" } } } TFBot { Class Demoman Skill Normal Attributes IgnoreFlag Action Mobber DesiredAttackRange 600 ChangeAttributes { Delay 55 Repeats 1 Name "Vet" } EventChangeAttributes { Vet { ItemAttributes { ItemName "TF_WEAPON_GrenadeLauncher" "reload time decreased" 0.5 "move speed bonus" 1.3 } CustomEyeGlowColor "255 0 0" } } } TFBot { Class Demoman Skill Normal Attributes IgnoreFlag Action Mobber DesiredAttackRange 600 ChangeAttributes { Delay 55 Repeats 1 Name "Vet" } EventChangeAttributes { Vet { ItemAttributes { ItemName "TF_WEAPON_GrenadeLauncher" "reload time decreased" 0.5 "move speed bonus" 1.3 } CustomEyeGlowColor "255 0 0" } } } TFBot { Class Demoman Skill Normal Attributes IgnoreFlag Action Mobber DesiredAttackRange 600 ChangeAttributes { Delay 55 Repeats 1 Name "Vet" } EventChangeAttributes { Vet { ItemAttributes { ItemName "TF_WEAPON_GrenadeLauncher" "reload time decreased" 0.5 "move speed bonus" 1.3 } CustomEyeGlowColor "255 0 0" } } } TFBot { Class Demoman Skill Normal Attributes IgnoreFlag Action Mobber DesiredAttackRange 600 ChangeAttributes { Delay 55 Repeats 1 Name "Vet" } EventChangeAttributes { Vet { ItemAttributes { ItemName "TF_WEAPON_GrenadeLauncher" "reload time decreased" 0.5 "move speed bonus" 1.3 } CustomEyeGlowColor "255 0 0" } } } TFBot { Class Demoman Skill Normal Attributes IgnoreFlag Action Mobber DesiredAttackRange 600 ChangeAttributes { Delay 55 Repeats 1 Name "Vet" } EventChangeAttributes { Vet { ItemAttributes { ItemName "TF_WEAPON_GrenadeLauncher" "reload time decreased" 0.5 "move speed bonus" 1.3 } CustomEyeGlowColor "255 0 0" } } } TFBot { Class Demoman Skill Normal Attributes IgnoreFlag Action Mobber DesiredAttackRange 600 ChangeAttributes { Delay 55 Repeats 1 Name "Vet" } EventChangeAttributes { Vet { ItemAttributes { ItemName "TF_WEAPON_GrenadeLauncher" "reload time decreased" 0.5 "move speed bonus" 1.3 } CustomEyeGlowColor "255 0 0" } } } TFBot { Template T_TFBot_Medic_QuickUber ChangeAttributes { Delay 55 Repeats 1 Name "Vet" } EventChangeAttributes { Vet { ItemAttributes { ItemName "TF_WEAPON_MEDIGUN" "heal rate bonus" 25 "move speed bonus" 1.3 } CustomEyeGlowColor "255 0 0" } } } } } WaveSpawn // 1 Tank (200) { TotalCurrency 250 TotalCount 3 SpawnCount 1 WaitForAllSpawned "B" WaitBeforeStarting 25 WaitBetweenSpawns 10 FirstSpawnOutput { Target boss_spawn_relay Action Trigger } Tank { Health 13500 Name tankboss Speed 75 StartingPathTrackNode "tankpath_same" OnKilledOutput { Target boss_dead_relay Action Trigger } OnBombDroppedOutput { Target boss_deploy_relay Action Trigger } } } WaveSpawn // 10 Groups of 5 scouts (50) { Name "D" Where spawnbot_invasion TotalCount 135 MaxActive 33 SpawnCount 5 WaitBeforeStarting 8 WaitBetweenSpawns 2 RandomSpawn 1 TotalCurrency 50 WaitForAllSpawned "C" TFBot { Class Scout Action Mobber DesiredAttackRange 200 Attributes IgnoreFlag InterruptAction { Target "ClosestPlayer" Delay 0.2 Cooldown 10 //Time between each task (Default: 10) Duration 600 // How long should the ai be interrupted Distance 80 KillAimTarget 1 } ChangeAttributes { Delay 50 Repeats 1 Name "Vet" } EventChangeAttributes { Vet { ItemAttributes { ItemName "TF_WEAPON_SCATTERGUN" "reload time decreased" 0.5 "move speed bonus" 1.3 } CustomEyeGlowColor "255 0 0" } } } } WaveSpawn // Buff Soldiers { Name "D" Where spawnbot_left TotalCount 36 MaxActive 15 SpawnCount 3 WaitBeforeStarting 8 WaitBetweenSpawns 1.5 RandomSpawn 1 TotalCurrency 75 WaitForAllSpawned "C" TFBot { Template T_TFBot_Soldier_Extended_Buff_Banner Skill Normal Action Mobber DesiredAttackRange 600 Attributes IgnoreFlag ChangeAttributes { Delay 50 Repeats 1 Name "Vet" } EventChangeAttributes { Vet { CustomEyeGlowColor "255 0 0" ItemAttributes { ItemName "TF_WEAPON_ROCKETLAUNCHER" "reload time decreased" 0.5 "move speed bonus" 1.3 } } } } } WaveSpawn // 4 Giant Armoured Bat Scouts (50) { Name "D" Where spawnbot_invasion TotalCount 9 MaxActive 6 SpawnCount 1 WaitBeforeStarting 8 WaitBetweenSpawns 5.6 TotalCurrency 100 RandomSpawn 1 WaitForAllSpawned "C" RandomChoice { TFBot { Class Scout Name "Giant Armored Scout" ClassIcon scout_armored_pda_giant Skill Expert Health 3000 WeaponRestrictions MeleeOnly Attributes MiniBoss ItemAttributes { ItemName "TF_WEAPON_BAT" "damage bonus" 1.75 "dmg bonus vs buildings" 1.25 } CharacterAttributes { "move speed penalty" 0.75 "damage force reduction" 0.7 "airblast vulnerability multiplier" 0.7 "override footstep sound set" 5 } ChangeAttributes { Delay 95 Repeats 1 Name "Vet" } EventChangeAttributes { Vet { ItemAttributes { ItemName "TF_WEAPON_BAT" "fire rate bonus" 0.6 "move speed bonus" 1.3 } CustomEyeGlowColor "255 0 0" } } Action Mobber DesiredAttackRange 200 Attributes IgnoreFlag } } } WaveSpawn // Hammer { Where spawnbot_invasion TotalCount 9 MaxActive 6 SpawnCount 1 WaitBeforeStarting 8 WaitBetweenSpawns 4.6 Support Limited RandomSpawn 1 WaitForAllSpawned "C" TFBot { Template T_TFBot_Large_Pyro_Homewrecker Action Mobber Attributes IgnoreFlag Attributes DisableDodge Attributes AlwaysFireWeapon ChangeAttributes { Delay 70 Repeats 1 Name "Vet" } EventChangeAttributes { Vet { ItemAttributes { ItemName "The Homewrecker" "fire rate bonus" 0.6 "move speed bonus" 1.3 } CustomEyeGlowColor "255 0 0" } } } } WaveSpawn // 10 groups of 3 bowmen (50) { Where spawnbot_invasion TotalCount 40 MaxActive 15 SpawnCount 1 WaitBeforeStarting 8 WaitBetweenSpawns 0.5 Support 1 RandomSpawn 1 WaitForAllSpawned "D" TotalCurrency 75 RandomChoice { TFBot { Template T_TFBot_Large_Soldier Action Mobber DesiredAttackRange 400 Attributes IgnoreFlag } } } WaveSpawn // 2 Giant Heater heavies with 4 buff soldiers (50) { Where spawnbot TotalCount 15 MaxActive 15 SpawnCount 5 WaitBeforeStarting 8 WaitBetweenSpawns 4 TotalCurrency 100 RandomSpawn 1 WaitForAllSpawned "D" Name "Final" Squad { TFBot { Template T_TFBot_Heavyweapons_Heater Attributes DisableDodge Name "Giant Heater Heavy" Action Mobber DesiredAttackRange 200 Attributes IgnoreFlag } TFBot { Template T_TFBot_Soldier_Extended_Buff_Banner Skill Hard Action Mobber Attributes IgnoreFlag } TFBot { Template T_TFBot_Soldier_Extended_Buff_Banner Skill Hard Action Mobber Attributes IgnoreFlag } TFBot { Template T_TFBot_Soldier_Extended_Buff_Banner Skill Hard Action Mobber Attributes IgnoreFlag } TFBot { Template T_TFBot_Soldier_Extended_Buff_Banner Skill Hard Action Mobber Attributes IgnoreFlag } } } WaveSpawn // 2 Giant Heater heavies with 4 buff soldiers (50) { Where spawnbot_right TotalCount 15 MaxActive 15 SpawnCount 5 WaitBeforeStarting 8 WaitBetweenSpawns 4 TotalCurrency 100 RandomSpawn 1 WaitForAllSpawned "D" Name "Final" DoneOutput{ Target regenerate Action Enable } Squad { TFBot { Template T_TFBot_Heavyweapons_Heater Attributes DisableDodge Name "Giant Heater Heavy" Action Mobber DesiredAttackRange 200 Attributes IgnoreFlag } TFBot { Template T_TFBot_Soldier_Extended_Buff_Banner Skill Hard Action Mobber Attributes IgnoreFlag } TFBot { Template T_TFBot_Soldier_Extended_Buff_Banner Skill Hard Action Mobber Attributes IgnoreFlag } TFBot { Template T_TFBot_Soldier_Extended_Buff_Banner Skill Hard Action Mobber Attributes IgnoreFlag } TFBot { Template T_TFBot_Soldier_Extended_Buff_Banner Skill Hard Action Mobber Attributes IgnoreFlag } } } } // Wave 3 ///////////////////////////////////// // Is worth 1400 /////////////////////////////////////////////// // 6 Groups of 2 large pyros // 10 Groups of 3 soldiers // 3 Giant Demomen // ---------------------------------------- // 2 Giant Heavies with a Quickfix // 10 groups of 4 soldiers // 5 Steelfists // ---------------------------------------- // 4 Giant Charged Soldiers with a quickfix // 15 groups of 3 soda popper scouts // ---------------------------------------- // 4 Major League Scouts // 1 Giant Demoman // 14 Large Pyros // ---------------------------------------- // 4 Giant Widowmaker Engies with a quickfix // 15 groups of 5 bowmen // ---------------------------------------- // EXTRA // 1 Crit Giant Burstfire Demoman with a Giant Regen Medic // 2 Crit Giant Burstfire Demomen // support shortstop scouts /////////////////////////////////////////////// Wave { WaitWhenDone 65 Checkpoint Yes StartWaveOutput { Target lives_survival Action Trigger } DoneOutput { Target wave_finished_relay Action Trigger } Explanation //Dispayed once the wave is initialized { Line "{red}If everyone dies at once you lose." Line "{red}You have a limited number of lives which will revive you immediately on death." } 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 lives_display_reset //REQUIRED | Used to tell self res logic that wave is active/ turn it off again at the end of a wave Action disable } } WaveSpawn{ TotalCount 0 SpawnCount 0 FirstSpawnOutput{ Target playerResVal3 //set res count to one of 3 set Action GetValue } } WaveSpawn{ TotalCount 0 SpawnCount 0 FirstSpawnOutput{ Target regenerate Action Disable } } //TotalCurrency 1300 WaveSpawn{ WaitForAllDead "Final" TotalCount 0 SpawnCount 0 FirstSpawnOutput{ Target playerResVal3 //set res count to one of 3 set Action GetValue } } WaveSpawn{ WaitForAllDead "Final" TotalCount 0 SpawnCount 0 DoneOutput{ Target regenerate Action Enable } } WaveSpawn{ WaitForAllDead "Final" TotalCount 0 SpawnCount 0 WaitBeforeStarting 0.1 FirstSpawnOutput{ Target Lives_display_reset //REQUIRED | Used to tell self res logic that wave is active/ turn it off again at the end of a wave Action enable } } WaveSpawn { WaitForAllDead "Final" TotalCount 0 SpawnCount 0 WaitBeforeStarting 0.1 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 // 10 Groups of 2 large pyros { Name "A" Where spawnbot_invasion TotalCount 30 MaxActive 15 SpawnCount 2 WaitBeforeStarting 0 WaitBetweenSpawns 0.7 RandomSpawn 1 TotalCurrency 50 TFBot { Template T_TFBot_Large_Pyro_Fury Action Mobber DesiredAttackRange 200 Attributes IgnoreFlag ChangeAttributes { Delay 60 Repeats 1 Name "Vet" } EventChangeAttributes { Vet { ItemAttributes { ItemName "The Dragon's Fury" "damage bonus" 2 "move speed bonus" 1.3 } CustomEyeGlowColor "255 0 0" } } } } WaveSpawn // 10 Groups of 3 soldiers { Name "A" Where spawnbot_invasion TotalCount 96 MaxActive 30 SpawnCount 24 WaitBeforeStarting 0 WaitBetweenSpawns 3.5 RandomSpawn 1 TotalCurrency 50 TFBot { Class Soldier Action Mobber DesiredAttackRange 350 Attributes IgnoreFlag ChangeAttributes { Delay 45 Repeats 1 Name "Vet" } EventChangeAttributes { Vet { ItemAttributes { ItemName "TF_WEAPON_RocketLauncher" "reload time decreased" 0.5 "move speed bonus" 1.3 } CustomEyeGlowColor "255 0 0" } } } } WaveSpawn // 3 Giant Demomen { Name "A" Where spawnbot_invasion TotalCount 12 MaxActive 9 SpawnCount 1 WaitBeforeStarting 2 WaitBetweenSpawns 3.6 RandomSpawn 1 TotalCurrency 50 TFBot { Template T_TFBot_Giant_Demoman Attributes AlwaysCrit Attributes DisableDodge Action Mobber DesiredAttackRange 600 Attributes IgnoreFlag ChangeAttributes { Delay 85 Repeats 1 Name "Vet" } EventChangeAttributes { Vet { ItemAttributes { ItemName "TF_WEAPON_GrenadeLauncher" "damage bonus" 1.25 "fire rate bonus" 0.6 } CustomEyeGlowColor "255 0 0" } } } } WaveSpawn // 2 Giant Heavies with a Quickfix { Name "B" Where spawnbot_left TotalCount 36 MaxActive 24 SpawnCount 4 WaitBeforeStarting 12 WaitBetweenSpawns 5.7 RandomSpawn 1 TotalCurrency 125 WaitForAllSpawned "A" Squad { TFBot { Template T_TFBot_Giant_Heavyweapons Attributes DisableDodge Action Mobber DesiredAttackRange 200 Attributes IgnoreFlag ChangeAttributes { Delay 85 Repeats 1 Name "Vet" } EventChangeAttributes { Vet { ItemAttributes { ItemName "TF_WEAPON_Minigun" "damage bonus" 1.65 "fire rate bonus" 0.9 } CustomEyeGlowColor "255 0 0" } } } TFBot { Template T_TFBot_Medic_BigHeal Attributes IgnoreFlag ChangeAttributes { Delay 45 Repeats 1 Name "Vet" } EventChangeAttributes { Vet { ItemAttributes { ItemName "The Quick-Fix" "heal rate bonus" 25 "move speed bonus" 1.3 } CustomEyeGlowColor "255 0 0" } } } TFBot { Template T_TFBot_Medic_BigHeal Attributes IgnoreFlag ChangeAttributes { Delay 45 Repeats 1 Name "Vet" } EventChangeAttributes { Vet { ItemAttributes { ItemName "The Quick-Fix" "heal rate bonus" 25 "move speed bonus" 1.3 } CustomEyeGlowColor "255 0 0" } } } TFBot { Template T_TFBot_Medic_BigHeal Attributes IgnoreFlag ChangeAttributes { Delay 45 Repeats 1 Name "Vet" } EventChangeAttributes { Vet { ItemAttributes { ItemName "The Quick-Fix" "heal rate bonus" 25 "move speed bonus" 1.3 } CustomEyeGlowColor "255 0 0" } } } } } WaveSpawn // 10 groups of 4 soldiers { Name "B" Where spawnbot_invasion TotalCount 63 MaxActive 18 SpawnCount 3 WaitBeforeStarting 8 WaitBetweenSpawns 0.7 RandomSpawn 1 TotalCurrency 50 WaitForAllSpawned "A" TFBot { Template T_TFBot_Pyro_Flaregun Action Mobber DesiredAttackRange 700 Attributes IgnoreFlag Name "Rapid Fire Flaregun Pyro" ClassIcon pyro_flare_spammer Skill Expert Attributes AlwaysCrit ItemAttributes { ItemName "The Flaregun" "fire rate bonus" 0.7 } ChangeAttributes { Delay 45 Repeats 1 Name "Vet" } EventChangeAttributes { Vet { ItemAttributes { ItemName "The Flaregun" "fire rate bonus" 0.4 "move speed bonus" 1.3 } CustomEyeGlowColor "255 0 0" } } } } WaveSpawn // 5 Steelfists { Name "B" Where spawnbot_invasion TotalCount 27 MaxActive 12 SpawnCount 3 WaitBeforeStarting 8 WaitBetweenSpawns 2 RandomSpawn 1 TotalCurrency 75 WaitForAllSpawned "A" TFBot { Template T_TFBot_Large_Soldier //GrappleSoldier Item "TF_WEAPON_GRAPPLINGHOOK" Name "Large Grappler Soldier" ClassIcon grapple_nys FireWeapon //Periodically fires weapon { Delay 8 //Time before the first fire input starts (Default: 10) Cooldown 10 //Time between each fire input (Default: 10) IfSeeTarget 1 //When set to 1, this task activates only when the bot can see the target player (Default 0 - Always activate) Duration 0.5 //How long should the button be pressed (Default: 0.1) Type "Primary" // Type of fire input, Possible values: } Skill Hard Action Mobber Attributes IgnoreFlag UseMeleeThreatPrioritization 1 UseHumanAnimations 1 AimAt Feet Attributes AutoJump AutoJumpMin 5 AutoJumpMax 8 ItemAttributes { ItemName "TF_WEAPON_GRAPPLINGHOOK" "is_passive_weapon" 1 } ChangeAttributes { Delay 60 Repeats 1 Name "Vet" } EventChangeAttributes { Vet { ItemAttributes { ItemName "TF_WEAPON_RocketLauncher" "reload time decreased" 0.5 "move speed bonus" 1.3 } CustomEyeGlowColor "255 0 0" } } } } WaveSpawn // 15 groups of 3 soda popper scouts { Name "C" Where spawnbot_invasion TotalCount 180 MaxActive 48 SpawnCount 45 WaitBeforeStarting 8 WaitBetweenSpawns 4 RandomSpawn 1 WaitForAllSpawned "B" TotalCurrency 75 Squad { NoFormation 1 TFBot { Class Scout Skill Easy ClassIcon scout_popper2 Item "The Soda Popper" Item "The Fed-Fightin' Fedora" Action Mobber DesiredAttackRange 200 Attributes IgnoreFlag ChangeAttributes { Delay 45 Repeats 1 Name "Vet" } EventChangeAttributes { Vet { ItemAttributes { ItemName "The Soda Popper" "clip size bonus" 2 "move speed bonus" 1.3 } CustomEyeGlowColor "255 0 0" } } } TFBot { Class Scout Skill Normal ClassIcon scout_popper2 Item "The Soda Popper" Item "The Fed-Fightin' Fedora" Action Mobber DesiredAttackRange 200 Attributes IgnoreFlag ChangeAttributes { Delay 45 Repeats 1 Name "Vet" } EventChangeAttributes { Vet { ItemAttributes { ItemName "The Soda Popper" "clip size bonus" 2 "move speed bonus" 1.3 } CustomEyeGlowColor "255 0 0" } } } TFBot { Class Scout Skill Normal ClassIcon scout_popper2 Item "The Soda Popper" Item "The Fed-Fightin' Fedora" Action Mobber DesiredAttackRange 200 Attributes IgnoreFlag ChangeAttributes { Delay 45 Repeats 1 Name "Vet" } EventChangeAttributes { Vet { ItemAttributes { ItemName "The Soda Popper" "clip size bonus" 2 "move speed bonus" 1.3 } CustomEyeGlowColor "255 0 0" } } } } } WaveSpawn // 4 Giant Charged Soldiers with a quickfix { Name "C" Where spawnbot_invasion TotalCount 24 MaxActive 12 SpawnCount 6 WaitBeforeStarting 8 WaitBetweenSpawns 12 RandomSpawn 1 WaitForAllSpawned "B" TotalCurrency 125 Squad { TFBot { Template T_TFBot_Giant_Soldier_Spammer_Reload Attributes DisableDodge Action Mobber DesiredAttackRange 350 Attributes IgnoreFlag ChangeAttributes { Delay 85 Repeats 1 Name "Vet" } EventChangeAttributes { Vet { ItemAttributes { ItemName "The Original" "damage bonus" 1.5 "blast radius increased" 1.35 } CustomEyeGlowColor "255 0 0" } } } TFBot { Template T_TFBot_Medic_BigHeal ChangeAttributes { Delay 45 Repeats 1 Name "Vet" } EventChangeAttributes { Vet { ItemAttributes { ItemName "The Quick-Fix" "heal rate bonus" 25 "move speed bonus" 1.3 } CustomEyeGlowColor "255 0 0" } } } } } WaveSpawn // 4 Giant Widowmaker Engies with a quickfix { Name "E" Where spawnbot_invasion TotalCount 9 MaxActive 6 SpawnCount 3 WaitBeforeStarting 8 WaitBetweenSpawns 17 RandomSpawn 1 TotalCurrency 125 WaitForAllSpawned "C" Squad { TFBot { Template T_TFBot_Giant_Engineer_Widowmaker Attributes DisableDodge Action Mobber Attributes IgnoreFlag InterruptAction { Target "ClosestPlayer" Delay 0.2 Duration 10 Distance 100 KillAimTarget 1 } } } } WaveSpawn // 15 groups of 5 bowmen { Name "E" Where spawnbot_invasion TotalCount 150 MaxActive 45 SpawnCount 5 WaitBeforeStarting 8 WaitBetweenSpawns 0.3 RandomSpawn 1 WaitForAllSpawned "C" TotalCurrency 125 Squad { NoFormation 1 TFBot { Template T_TFBot_Sniper_Huntsman Action Mobber DesiredAttackRange 700 Attributes IgnoreFlag ChangeAttributes { Delay 45 Repeats 1 Name "Vet" } EventChangeAttributes { Vet { ItemAttributes { ItemName "The Huntsman" "reload time decreased" 0.5 "move speed bonus" 1.3 } CustomEyeGlowColor "255 0 0" } } } TFBot { Template T_TFBot_Sniper_Huntsman Action Mobber DesiredAttackRange 700 Attributes IgnoreFlag ChangeAttributes { Delay 45 Repeats 1 Name "Vet" } EventChangeAttributes { Vet { ItemAttributes { ItemName "The Huntsman" "reload time decreased" 0.5 "move speed bonus" 1.3 } CustomEyeGlowColor "255 0 0" } } } TFBot { Template T_TFBot_Sniper_Huntsman Action Mobber DesiredAttackRange 600 Attributes IgnoreFlag ChangeAttributes { Delay 45 Repeats 1 Name "Vet" } EventChangeAttributes { Vet { ItemAttributes { ItemName "The Huntsman" "reload time decreased" 0.5 "move speed bonus" 1.3 } CustomEyeGlowColor "255 0 0" } } } TFBot { Template T_TFBot_Soldier_Extended_Concheror Action Mobber DesiredAttackRange 600 Attributes IgnoreFlag Skill Hard ChangeAttributes { Delay 45 Repeats 1 Name "Vet" } EventChangeAttributes { Vet { ItemAttributes { ItemName "TF_WEAPON_RocketLauncher" "reload time decreased" 0.5 "move speed bonus" 1.3 } CustomEyeGlowColor "255 0 0" } } } TFBot { Template T_TFBot_Soldier_Extended_Concheror Action Mobber DesiredAttackRange 600 Attributes IgnoreFlag Skill Hard ChangeAttributes { Delay 45 Repeats 1 Name "Vet" } EventChangeAttributes { Vet { ItemAttributes { ItemName "TF_WEAPON_RocketLauncher" "reload time decreased" 0.5 "move speed bonus" 1.3 } CustomEyeGlowColor "255 0 0" } } } } } WaveSpawn // support shortstop scouts { Where spawnbot_left TotalCount 75 MaxActive 16 SpawnCount 1 WaitBeforeStarting 8 WaitBetweenSpawns 0.3 Support 1 RandomSpawn 1 WaitForAllSpawned "E" TotalCurrency 75 TFBot { Template T_TFBot_Scout_Shortstop Name "Burstfire Shortstop Scout" CharacterAttributes { "fire rate bonus" 0.6 "reload time increased" 1.5 } Action Mobber DesiredAttackRange 300 Attributes IgnoreFlag } } WaveSpawn // support shortstop scouts { Where spawnbot_left TotalCount 18 MaxActive 6 SpawnCount 6 WaitBeforeStarting 18 WaitBetweenSpawns 15 Support Limited RandomSpawn 1 WaitForAllSpawned "E" TotalCurrency 0 TFBot { Template T_TFBot_Spy Action Spy Attributes IgnoreFlag } } WaveSpawn // 1 Crit Giant Demo Burst with GRegenMed { Where spawnbot TotalCount 6 MaxActive 6 SpawnCount 2 WaitBeforeStarting 8 WaitBetweenSpawns 4 RandomSpawn 1 WaitForAllSpawned "E" Name "Final" TotalCurrency 150 DoneOutput{ Target regenerate Action Enable } Squad { TFBot { Template T_TFBot_Giant_Demo_Burst Attributes AlwaysCrit ClassIcon demo_burst Action Mobber DesiredAttackRange 400 Attributes IgnoreFlag Attributes DisableDodge } TFBot { Template T_TFBot_Giant_Medic_Regen Attributes IgnoreFlag Attributes DisableDodge } } } WaveSpawn // 2 Giant Heater heavies with 4 buff soldiers (50) { Where spawnbot_right TotalCount 6 MaxActive 6 SpawnCount 1 WaitBeforeStarting 8 WaitBetweenSpawns 3.5 RandomSpawn 1 WaitForAllSpawned "E" TotalCurrency 75 Name "Final" TFBot { Template T_TFBot_Giant_Demo_Burst Attributes DisableDodge Attributes AlwaysCrit ClassIcon demo_burst Action Mobber DesiredAttackRange 400 Attributes IgnoreFlag } } } // Wave 4 ///////////////////////////////////// // Is worth 1200 /////////////////////////////////////////////// // 1 Tank (100) // 2 Giant Bazooka Soldiers with 2 quickfix medics // 6 rapidbowmen // 8 groups of 3 demomen // ---------------------------------------- // 1 Giant Dragon's Pyro with a giant regen Medic // 1 Giant Dragon's Pyro with 2 quickfix medics // 9 groups of 5 small shortstop scouts // ---------------------------------------- // 1 Turret Tank (100) // 3 Giant Scouts // 8 groups of 3 pyros // 4 groups of 2 Extended Buff Soldiers // ---------------------------------------- // 2 Giant Fury Pyros // 1 Giant Bazooka Soldier with 5 quickfixes // 8 groups of 3 demomen // ---------------------------------------- // 2 Giant Shotgun Heavies // 6 rapidbowmen // 8 groups of 4 pyros // ---------------------------------------- // EXTRA // 1 Giant Heavy with 2 quickfixes // 1 Giant Bazooka Soldier with 2 Extended Buff Soldiers // 2 Giant Fury Pyros // support crit bat scouts /////////////////////////////////////////////// Wave { WaitWhenDone 65 Checkpoint Yes StartWaveOutput { Target lives_survival Action Trigger } DoneOutput { Target wave_finished_relay Action Trigger } Explanation //Dispayed once the wave is initialized { Line "{red}If everyone dies at once you lose." Line "{red}You have a limited number of lives which will revive you immediately on death." } 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 lives_display_reset //REQUIRED | Used to tell self res logic that wave is active/ turn it off again at the end of a wave Action disable } } WaveSpawn{ TotalCount 0 SpawnCount 0 FirstSpawnOutput{ Target playerResVal3 //set res count to one of 3 set Action GetValue } } WaveSpawn{ TotalCount 0 SpawnCount 0 FirstSpawnOutput{ Target regenerate Action Disable } } //TotalCurrency 1700 WaveSpawn{ WaitForAllDead "Final" TotalCount 0 SpawnCount 0 FirstSpawnOutput{ Target playerResVal3 //set res count to one of 3 set Action GetValue } } WaveSpawn{ WaitForAllDead "Final" TotalCount 0 SpawnCount 0 DoneOutput{ Target regenerate Action Enable } } WaveSpawn{ WaitForAllDead "Final" TotalCount 0 SpawnCount 0 WaitBeforeStarting 0.1 FirstSpawnOutput{ Target Lives_display_reset //REQUIRED | Used to tell self res logic that wave is active/ turn it off again at the end of a wave Action enable } } WaveSpawn { WaitForAllDead "Final" TotalCount 0 SpawnCount 0 WaitBeforeStarting 0.1 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 // 1 Tank (100) { TotalCurrency 100 TotalCount 3 SpawnCount 1 WaitBetweenSpawns 10 FirstSpawnOutput { Target boss_spawn_relay Action Trigger } Tank { Health 20000 Name tankboss Speed 75 StartingPathTrackNode "tankpath_alt" OnKilledOutput { Target boss_dead_relay Action Trigger } OnBombDroppedOutput { Target boss_deploy_relay Action Trigger } } } WaveSpawn // 6 rapidbowmen { Name "A" Where spawnbot_Left TotalCount 24 MaxActive 9 SpawnCount 3 WaitBeforeStarting 0 WaitBetweenSpawns 2 TotalCurrency 75 RandomSpawn 1 TFBot { Template T_TFBot_Sniper_Huntsman_Spammer CharacterAttributes { "damage force reduction" 0.0 } ClassIcon sniper_bow_multi Attributes DisableDodge Action Mobber DesiredAttackRange 800 Attributes IgnoreFlag Attributes AlwaysCrit ChangeAttributes { Delay 50 Repeats 1 Name "Vet" } EventChangeAttributes { Vet { ItemAttributes { ItemName "The Huntsman" "fire rate bonus" 0.1 "move speed bonus" 1.3 } CustomEyeGlowColor "255 0 0" } } } } WaveSpawn // 8 groups of 3 demomen { Name "A" Where spawnbot_invasion TotalCount 84 MaxActive 27 SpawnCount 12 WaitBeforeStarting 0 WaitBetweenSpawns 2 RandomSpawn 1 TotalCurrency 75 TFBot { Class Demoman Skill Hard Name "Rapid Fire Demoman" ClassIcon demo_infinite Action Mobber DesiredAttackRange 600 Attributes IgnoreFlag CharacterAttributes { "reload time decreased" -0.2 } ChangeAttributes { Delay 40 Repeats 1 Name "Vet" } EventChangeAttributes { Vet { ItemAttributes { ItemName "TF_WEAPON_GrenadeLauncher" "fire rate bonus" 0.7 "move speed bonus" 1.3 } CustomEyeGlowColor "255 0 0" } } } } WaveSpawn // 2 Giant Bazooka Soldiers with 2 quickfix medics { Name "A" Where spawnbot_invasion TotalCount 36 MaxActive 24 SpawnCount 12 WaitBeforeStarting 10 WaitBetweenSpawns 16 RandomSpawn 1 TotalCurrency 150 Squad { TFBot { Template T_TFBot_Giant_Soldier_Spammer_Spread_Homing Attributes DisableDodge Action Mobber DesiredAttackRange 300 Attributes IgnoreFlag ChangeAttributes { Delay 80 Repeats 1 Name "Vet" } EventChangeAttributes { Vet { ItemAttributes { ItemName "The Beggar's Bazooka" "damage bonus" 1.5 "blast radius increased" 1.35 } CustomEyeGlowColor "255 0 0" } } } TFBot { Template T_TFBot_Medic Attributes IgnoreFlag ChangeAttributes { Delay 40 Repeats 1 Name "Vet" } EventChangeAttributes { Vet { ItemAttributes { ItemName "TF_WEAPON_Medigun" "heal rate bonus" 5 "move speed bonus" 1.3 } CustomEyeGlowColor "255 0 0" } } } TFBot { Template T_TFBot_Medic Attributes IgnoreFlag ChangeAttributes { Delay 40 Repeats 1 Name "Vet" } EventChangeAttributes { Vet { ItemAttributes { ItemName "TF_WEAPON_Medigun" "heal rate bonus" 5 "move speed bonus" 1.3 } CustomEyeGlowColor "255 0 0" } } } TFBot { Template T_TFBot_Medic Attributes IgnoreFlag ChangeAttributes { Delay 40 Repeats 1 Name "Vet" } EventChangeAttributes { Vet { ItemAttributes { ItemName "TF_WEAPON_Medigun" "heal rate bonus" 5 "move speed bonus" 1.3 } CustomEyeGlowColor "255 0 0" } } } } } WaveSpawn // 1 Giant Dragon's Pyro with a giant regen Medic { Name "B" Where spawnbot_left TotalCount 6 MaxActive 6 SpawnCount 2 WaitBeforeStarting 8 WaitBetweenSpawns 4 RandomSpawn 1 TotalCurrency 150 WaitForAllSpawned "A" Squad { TFBot { Template T_TFBot_Giant_Pyro_Fury Attributes DisableDodge Action Mobber DesiredAttackRange 200 Attributes IgnoreFlag ChangeAttributes { Delay 80 Repeats 1 Name "Vet" } EventChangeAttributes { Vet { ItemAttributes { ItemName "The Dragon's Fury" "damage bonus" 2 } CustomEyeGlowColor "255 0 0" } } } TFBot { Template T_TFBot_Giant_Medic_Regen Attributes DisableDodge Attributes IgnoreFlag ChangeAttributes { Delay 80 Repeats 1 Name "Vet" } EventChangeAttributes { Vet { ItemAttributes { ItemName "The Quick-Fix" "Health regen" 30 } CustomEyeGlowColor "255 0 0" } } } } } WaveSpawn // 1 Giant Dragon's Pyro with 2 quickfix medics { Name "B" Where spawnbot_invasion TotalCount 12 MaxActive 6 SpawnCount 3 WaitBeforeStarting 25 WaitBetweenSpawns 7.2 RandomSpawn 1 TotalCurrency 100 WaitForAllSpawned "A" Squad { TFBot { Template T_TFBot_Giant_Pyro_Fury Attributes DisableDodge Action Mobber DesiredAttackRange 200 Attributes IgnoreFlag ChangeAttributes { Delay 80 Repeats 1 Name "Vet" } EventChangeAttributes { Vet { ItemAttributes { ItemName "The Dragon's Fury" "damage bonus" 2 } CustomEyeGlowColor "255 0 0" } } } TFBot { Template T_TFBot_Medic_BigHeal Attributes IgnoreFlag ChangeAttributes { Delay 40 Repeats 1 Name "Vet" } EventChangeAttributes { Vet { ItemAttributes { ItemName "The Quick-Fix" "heal rate bonus" 25 "move speed bonus" 1.3 } CustomEyeGlowColor "255 0 0" } } } TFBot { Template T_TFBot_Medic_BigHeal Attributes IgnoreFlag ChangeAttributes { Delay 40 Repeats 1 Name "Vet" } EventChangeAttributes { Vet { ItemAttributes { ItemName "The Quick-Fix" "heal rate bonus" 25 "move speed bonus" 1.3 } CustomEyeGlowColor "255 0 0" } } } } } WaveSpawn // 9 groups of 5 small shortstop scouts { Name "B" Where spawnbot_invasion TotalCount 144 MaxActive 39 SpawnCount 36 WaitBeforeStarting 8 WaitBetweenSpawns 4 RandomSpawn 1 WaitForAllSpawned "A" TotalCurrency 100 Squad { NoFormation 1 TFBot { Class Scout Item "The Shortstop" ClassIcon scout_shortstop Name "Shortstop Scout" Action Mobber DesiredAttackRange 250 Attributes IgnoreFlag ChangeAttributes { Delay 40 Repeats 1 Name "Vet" } EventChangeAttributes { Vet { ItemAttributes { ItemName "The Shortstop" "fire rate bonus" 0.7 "move speed bonus" 1.3 } CustomEyeGlowColor "255 0 0" } } } TFBot { Class Scout Item "The Shortstop" ClassIcon scout_shortstop Name "Shortstop Scout" Action Mobber DesiredAttackRange 260 Attributes IgnoreFlag ChangeAttributes { Delay 40 Repeats 1 Name "Vet" } EventChangeAttributes { Vet { ItemAttributes { ItemName "The Shortstop" "fire rate bonus" 0.7 "move speed bonus" 1.3 } CustomEyeGlowColor "255 0 0" } } } TFBot { Class Heavyweapons Item "Tomislav" Name "Tomislav Heavy" Action Mobber DesiredAttackRange 200 Attributes IgnoreFlag ClassIcon heavy_accurate_lite Skill Normal ChangeAttributes { Delay 40.2 Repeats 1 Name "Vet" } EventChangeAttributes { Vet { ItemAttributes { ItemName "Tomislav" "damage bonus" 1.15 "move speed bonus" 1.4 } CustomEyeGlowColor "255 0 0" } } } } } WaveSpawn // 1 Tank (100) { TotalCurrency 50 TotalCount 3 SpawnCount 1 WaitBeforeStarting 12 WaitForAllSpawned "B" WaitBetweenSpawns 8.5 FirstSpawnOutput { Target boss_spawn_relay Action Trigger } Tank { Health 14000 Name tankboss Speed 100 StartingPathTrackNode "tankpath_alt" Template "SmallTankTurret" OnKilledOutput { Target boss_dead_relay Action Trigger } OnBombDroppedOutput { Target boss_deploy_relay Action Trigger } } } WaveSpawn // 8 groups of 3 pyros { Name "C" Where spawnbot_invasion TotalCount 63 MaxActive 27 SpawnCount 9 WaitBeforeStarting 8 WaitBetweenSpawns 2 RandomSpawn 1 WaitForAllSpawned "B" TotalCurrency 75 TFBot { Class Pyro Attributes AlwaysCrit Skill Hard Action Mobber DesiredAttackRange 100 Attributes IgnoreFlag CharacterAttributes { "airblast disabled" 1 } ChangeAttributes { Delay 40 Repeats 1 Name "Vet" } EventChangeAttributes { Vet { ItemAttributes { ItemName "TF_WEAPON_FLAMETHROWER" "damage bonus" 1.75 "move speed bonus" 1.3 } CustomEyeGlowColor "255 0 0" } } } } WaveSpawn // 4 groups of 2 Extended Buff Soldiers { Name "C" Where spawnbot_left TotalCount 30 MaxActive 12 SpawnCount 2 WaitBeforeStarting 8 WaitBetweenSpawns 1.6 RandomSpawn 1 WaitForAllSpawned "B" TotalCurrency 75 TFBot { Template T_TFBot_Soldier_Extended_Buff_Banner Skill Hard Action Mobber DesiredAttackRange 600 Attributes IgnoreFlag ChangeAttributes { Delay 40 Repeats 1 Name "Vet" } EventChangeAttributes { Vet { ItemAttributes { ItemName "TF_WEAPON_ROCKETLAUNCHER" "reload time decresed" 0.5 "move speed bonus" 1.3 } CustomEyeGlowColor "255 0 0" } } } } WaveSpawn // 3 Giant Scouts { Name "C" Where spawnbot_invasion TotalCount 12 MaxActive 7 SpawnCount 1 WaitBeforeStarting 8 WaitBetweenSpawns 4 RandomSpawn 1 TotalCurrency 75 WaitForAllSpawned "B" TFBot { Template T_TFBot_Giant_Scout Action Mobber DesiredAttackRange 200 Attributes IgnoreFlag ChangeAttributes { Delay 80 Repeats 1 Name "Vet" } EventChangeAttributes { Vet { ItemAttributes { ItemName "TF_Weapon_Scattergun" "reload time decreased" 0.5 "move speed bonus" 1.3 } CustomEyeGlowColor "255 0 0" } } } } WaveSpawn // Secretman { Where spawnbot_invasion TotalCount 18 MaxActive 18 SpawnCount 6 WaitBeforeStarting 20 WaitBetweenSpawns 5 RandomSpawn 1 TotalCurrency 50 WaitForAllSpawned "B" Squad { TFBot { Template T_TFBot_Soldier_Burstfire_NoCrit Name "Hyper Giant Burstfire Soldier" Action Mobber DesiredAttackRange 600 Attributes IgnoreFlag CustomEyeGlowColor "255 0 0" InterruptAction { Target "ClosestPlayer" Delay 0.2 Cooldown 70 //Time between each task (Default: 10) Duration 600 // How long should the ai be interrupted Distance 80 KillAimTarget 1 } } TFBot { Template T_TFBot_Medic Attributes IgnoreFlag ChangeAttributes { Delay 40 Repeats 1 Name "Vet" } EventChangeAttributes { Vet { ItemAttributes { ItemName "TF_WEAPON_Medigun" "heal rate bonus" 5 "move speed bonus" 1.3 } CustomEyeGlowColor "255 0 0" } } } TFBot { Template T_TFBot_Medic Attributes IgnoreFlag ChangeAttributes { Delay 40 Repeats 1 Name "Vet" } EventChangeAttributes { Vet { ItemAttributes { ItemName "TF_WEAPON_Medigun" "heal rate bonus" 5 "move speed bonus" 1.3 } CustomEyeGlowColor "255 0 0" } } } TFBot { Template T_TFBot_Medic Attributes IgnoreFlag ChangeAttributes { Delay 40 Repeats 1 Name "Vet" } EventChangeAttributes { Vet { ItemAttributes { ItemName "TF_WEAPON_Medigun" "heal rate bonus" 5 "move speed bonus" 1.3 } CustomEyeGlowColor "255 0 0" } } } TFBot { Template T_TFBot_Medic Attributes IgnoreFlag ChangeAttributes { Delay 40 Repeats 1 Name "Vet" } EventChangeAttributes { Vet { ItemAttributes { ItemName "TF_WEAPON_Medigun" "heal rate bonus" 5 "move speed bonus" 1.3 } CustomEyeGlowColor "255 0 0" } } } TFBot { Template T_TFBot_Medic Attributes IgnoreFlag ChangeAttributes { Delay 40 Repeats 1 Name "Vet" } EventChangeAttributes { Vet { ItemAttributes { ItemName "TF_WEAPON_Medigun" "heal rate bonus" 5 "move speed bonus" 1.3 } CustomEyeGlowColor "255 0 0" } } } } } WaveSpawn // 2 Giant Shotgun Heavies { Name "E" Where spawnbot_invasion TotalCount 24 MaxActive 12 SpawnCount 6 WaitBeforeStarting 8 WaitBetweenSpawns 12.5 RandomSpawn 1 TotalCurrency 250 WaitForAllSpawned "C" Squad { TFBot { Template T_TFBot_Giant_Heavyweapons_Shotgun Attributes DisableDodge Action Mobber DesiredAttackRange 200 Attributes IgnoreFlag ChangeAttributes { Delay 80 Repeats 1 Name "Vet" } EventChangeAttributes { Vet { ItemAttributes { ItemName "TF_WEAPON_SHOTGUN_HWG" "fire rate bonus" 1.8 "move speed bonus" 1.3 } CustomEyeGlowColor "255 0 0" } } } TFBot { Template T_TFBot_Medic_BigHeal Attributes IgnoreFlag ChangeAttributes { Delay 40 Repeats 1 Name "Vet" } EventChangeAttributes { Vet { ItemAttributes { ItemName "The Quick-Fix" "heal rate bonus" 25 "move speed bonus" 1.3 } CustomEyeGlowColor "255 0 0" } } } } } WaveSpawn // 6 rapidbowmen { Name "E" Where spawnbot_invasion TotalCount 27 MaxActive 27 SpawnCount 12 WaitBeforeStarting 8 WaitBetweenSpawns 5 TotalCurrency 100 RandomSpawn 1 WaitForAllSpawned "C" TFBot { Template T_TFBot_Sniper_Huntsman_Spammer Attributes AlwaysCrit ClassIcon sniper_bow_multi Attributes DisableDodge Action Mobber DesiredAttackRange 800 Attributes IgnoreFlag CharacterAttributes { "damage force reduction" 0.0 } ChangeAttributes { Delay 50 Repeats 1 Name "Vet" } EventChangeAttributes { Vet { ItemAttributes { ItemName "The Huntsman" "fire rate bonus" 0.1 "move speed bonus" 1.3 } CustomEyeGlowColor "255 0 0" } } } } WaveSpawn // 8 groups of 4 pyros { Name "E" Where spawnbot_invasion TotalCount 54 MaxActive 18 SpawnCount 3 WaitBeforeStarting 8 WaitBetweenSpawns 1 RandomSpawn 1 WaitForAllSpawned "C" TotalCurrency 75 TFBot { Class Pyro Action Mobber DesiredAttackRange 100 Attributes AlwaysCrit Attributes AlwaysFireWeapon Attributes IgnoreFlag Skill Normal CharacterAttributes { "airblast disabled" 1 } ChangeAttributes { Delay 40 Repeats 1 Name "Vet" } EventChangeAttributes { Vet { ItemAttributes { ItemName "TF_WEAPON_FLAMETHROWER" "damage bonus" 1.75 "move speed bonus" 1.3 } CustomEyeGlowColor "255 0 0" } } } } WaveSpawn // support crit bat scouts { Where spawnbot_invasion TotalCount 150 MaxActive 33 SpawnCount 2 WaitBeforeStarting 8 WaitBetweenSpawns 0.1 Support 1 RandomSpawn 1 WaitForAllSpawned "E" TotalCurrency 150 TFBot { Template T_TFBot_Scout_Sandman_Fastcharge Attributes AlwaysCrit Action Mobber DesiredAttackRange 100 Attributes IgnoreFlag } } WaveSpawn // 1 Giant Heavy with 2 quickfixes { Where spawnbot TotalCount 9 MaxActive 9 SpawnCount 3 WaitBeforeStarting 8 WaitBetweenSpawns 6 RandomSpawn 1 WaitForAllSpawned "E" Name "Final" TotalCurrency 200 Squad { TFBot { Template T_TFBot_Giant_Heavyweapons Attributes DisableDodge Attributes AlwaysCrit Action Mobber DesiredAttackRange 100 Attributes IgnoreFlag } TFBot { Template T_TFBot_Medic Attributes IgnoreFlag } TFBot { Template T_TFBot_Medic Attributes IgnoreFlag } } } WaveSpawn // 1 Tank (100) { TotalCurrency 50 TotalCount 3 SpawnCount 1 WaitBeforeStarting 0 WaitForAllSpawned "E" WaitBetweenSpawns 8.5 FirstSpawnOutput { Target boss_spawn_relay Action Trigger } Tank { Health 11500 Name tankboss Speed 100 StartingPathTrackNode "tankpath_alt" Template "SmallTankTurret" OnKilledOutput { Target boss_dead_relay Action Trigger } OnBombDroppedOutput { Target boss_deploy_relay Action Trigger } } } WaveSpawn // 1 Giant Bazooka Soldier with 2 Extended Buff Soldiers { Where spawnbot_right TotalCount 9 MaxActive 9 SpawnCount 3 WaitBeforeStarting 14 WaitBetweenSpawns 6 RandomSpawn 1 WaitForAllSpawned "E" TotalCurrency 200 Name "Final" Squad { TFBot { Template T_TFBot_Giant_Soldier_Spammer_Spread_Homing Attributes DisableDodge Action Mobber DesiredAttackRange 300 Attributes IgnoreFlag } TFBot { Template T_TFBot_Soldier_Extended_Buff_Banner Action Mobber Attributes IgnoreFlag } TFBot { Template T_TFBot_Soldier_Extended_Buff_Banner Action Mobber Attributes IgnoreFlag } } } WaveSpawn // 2 Giant Fury Pyros { Where spawnbot TotalCount 6 MaxActive 6 SpawnCount 1 WaitBeforeStarting 20 WaitBetweenSpawns 2.6 TotalCurrency 150 RandomSpawn 1 WaitForAllSpawned "E" Name "Final" TFBot { Template T_TFBot_Giant_Pyro_Fury Attributes DisableDodge Action Mobber DesiredAttackRange 200 Attributes IgnoreFlag } } } // Wave F ///////////////////////////////////// // Is worth 0 /////////////////////////////////////////////// // 1 Turret Tank Path 1 (150) // 1 Turret Tank Path 2 (150) // 8 Groups of 2 buff soldiers // 5 Large Bursfire Demomen with A bigheal medic // 4 Super Scouts // ---------------------------------------- // 1 Turret Tank Path 1 (150) // 3 Giant Heavies // 12 groups of 5 pyros // ---------------------------------------- // 1 Turret Tank Path 2 (150) // 1 Turret Tank Path 2 (150) // 3 Giant Burstfire Demomen // 12 groups of 3 direct hit soldiers // ---------------------------------------- // 2 giant crit pyros with 6 bigheal medics // 8 Groups of 2 Large Burstfire Demomen // 10 Groups of 3 Pistol Scouts // ---------------------------------------- // 2 Giant Heavies // 1 Giant Burstfire Demoman with 4 buff soldiers // 12 Groups of 4 Shotgun Heavies // ---------------------------------------- // EXTRA // 2 Bigrock Bursts with 4 direct hit soldiers // Support crit demomen /////////////////////////////////////////////// Wave { WaitWhenDone 65 Checkpoint Yes StartWaveOutput { Target lives_survival Action Trigger } DoneOutput { Target wave_finished_relay Action Trigger } Explanation //Dispayed once the wave is initialized { Line "{red}If everyone dies at once you lose." Line "{red}You have a limited number of lives which will revive you immediately on death." } 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 lives_display_reset //REQUIRED | Used to tell self res logic that wave is active/ turn it off again at the end of a wave Action disable } } WaveSpawn{ TotalCount 0 SpawnCount 0 FirstSpawnOutput{ Target playerResVal3 //set res count to one of 3 set Action GetValue } } WaveSpawn{ TotalCount 0 SpawnCount 0 FirstSpawnOutput{ Target regenerate Action Disable } } WaveSpawn // 1 Turret Tank Path 1 (150) { TotalCurrency 75 TotalCount 3 SpawnCount 1 WaitBetweenSpawns 15 FirstSpawnOutput { Target boss_spawn_relay Action Trigger } Tank { Health 10000 Name tankboss Speed 100 StartingPathTrackNode "tankpath_alt" Template "SmallTankTurret" OnKilledOutput { Target boss_dead_relay Action Trigger } OnBombDroppedOutput { Target boss_deploy_relay Action Trigger } } } WaveSpawn // 1 Turret Tank Path 2 (150) { TotalCurrency 75 TotalCount 3 SpawnCount 1 WaitBeforeStarting 7.5 WaitBetweenSpawns 15 FirstSpawnOutput { Target boss_spawn_relay Action Trigger } Tank { Health 10000 Name tankboss Speed 100 StartingPathTrackNode "tankpath_same" Template "SmallTankTurret" OnKilledOutput { Target boss_dead_relay Action Trigger } OnBombDroppedOutput { Target boss_deploy_relay Action Trigger } } } WaveSpawn // 8 Groups of 2 buff soldiers { Name "A" Where spawnbot_invasion TotalCount 48 MaxActive 8 SpawnCount 6 WaitBeforeStarting 0 WaitBetweenSpawns 2 RandomSpawn 1 TotalCurrency 25 TFBot { Template T_TFBot_Soldier_Extended_Buff_Banner Action Mobber DesiredAttackRange 600 ChangeAttributes { Delay 35 Repeats 1 Name "Vet" } EventChangeAttributes { Vet { ItemAttributes { ItemName "TF_WEAPON_ROCKETLAUNCHER" "reload time decreased" 0.5 "move speed bonus" 1.3 } CustomEyeGlowColor "255 0 0" } } } } WaveSpawn // 5 Large Bursfire Demomen with A bigheal medic { Name "A" Where spawnbot_invasion TotalCount 48 MaxActive 18 SpawnCount 6 WaitBeforeStarting 0 WaitBetweenSpawns 1.6 RandomSpawn 1 TotalCurrency 25 Squad { TFBot { Template T_TFBot_Large_Demo_Burst Attributes AlwaysCrit Skill Expert Action Mobber DesiredAttackRange 200 Attributes IgnoreFlag ChangeAttributes { Delay 40 Repeats 1 Name "Vet" } EventChangeAttributes { Vet { ItemAttributes { ItemName "TF_WEAPON_GrenadeLAUNCHER" "reload time decreased" 0.6 "move speed bonus" 1.3 } CustomEyeGlowColor "255 0 0" } } } TFBot { Template T_TFBot_Medic_Quickfix_RapidUber Attributes IgnoreFlag } } } WaveSpawn // 4 Super Scouts { Name "A" Where spawnbot_Left TotalCount 24 MaxActive 9 SpawnCount 1 WaitBeforeStarting 2 WaitBetweenSpawns 2.1 RandomSpawn 1 TotalCurrency 50 TFBot { Template T_TFBot_Giant_Scout_Fast Attributes AlwaysCrit ChangeAttributes { Delay 50 Repeats 1 Name "Vet" } EventChangeAttributes { Vet { ItemAttributes { ItemName "The Holy Makerel" "fire rate bonus" 0.6 "damage bonus" 1.5 } CustomEyeGlowColor "255 0 0" } } Action Mobber DesiredAttackRange 100 Attributes IgnoreFlag } } WaveSpawn // 4 Super Scouts { Name "A" Where spawnbot_right TotalCount 9 MaxActive 6 SpawnCount 1 WaitBeforeStarting 12 WaitBetweenSpawns 5 RandomSpawn 1 TotalCurrency 50 TFBot { Template T_TFBot_Giant_Soldier_SlowBarrage Item "The Concheror" ClassIcon soldier_barrage_conch Attributes SpawnWithFullCharge CharacterAttributes { "increase buff duration" 9.0 } ChangeAttributes { Delay 65 Repeats 1 Name "Vet" } EventChangeAttributes { Vet { ItemAttributes { ItemName "TF_weapon_rocketlauncher" "fire rate bonus" 0.15 } CustomEyeGlowColor "255 0 0" } } Action Mobber DesiredAttackRange 400 Attributes IgnoreFlag } } WaveSpawn // 1 Turret Tank Path 1 (150) { TotalCurrency 75 TotalCount 3 SpawnCount 1 WaitForAllSpawned "A" WaitBeforeStarting 10 WaitBetweenSpawns 8.5 FirstSpawnOutput { Target boss_spawn_relay Action Trigger } Tank { Health 12000 Name tankboss Speed 100 StartingPathTrackNode "tankpath_alt" Template "SmallTankTurret" OnKilledOutput { Target boss_dead_relay Action Trigger } OnBombDroppedOutput { Target boss_deploy_relay Action Trigger } } } WaveSpawn // 3 Giant Heavies { Name "B" Where spawnbot_invasion TotalCount 15 MaxActive 9 SpawnCount 1 WaitBeforeStarting 8 WaitBetweenSpawns 3.6 RandomSpawn 1 TotalCurrency 75 WaitForAllSpawned "A" TFBot { Template T_TFBot_Giant_Heavyweapons_Deflector Attributes DisableDodge Action Mobber DesiredAttackRange 200 Attributes IgnoreFlag ChangeAttributes { Delay 65 Repeats 1 Name "Vet" } EventChangeAttributes { Vet { ItemAttributes { ItemName "The Deflector" "Damage bonus" 1.65 "fire rate bonus" 0.9 } CustomEyeGlowColor "255 0 0" } } } } WaveSpawn // 12 groups of 5 pyros { Name "B" Where spawnbot_invasion TotalCount 144 MaxActive 36 SpawnCount 4 WaitBeforeStarting 8 WaitBetweenSpawns 1.2 TotalCurrency 75 RandomSpawn 1 WaitForAllSpawned "A" TFBot { Class Pyro Action Mobber DesiredAttackRange 100 Skill Hard Item "The Dragon's Fury" Name "Fury Pyro" ClassIcon pyro_dragon_fury MaxVisionRange 450 Attributes IgnoreFlag ChangeAttributes { Delay 35 Repeats 1 Name "Vet" } EventChangeAttributes { Vet { ItemAttributes { ItemName "The Dragon's Fury" "damage bonus" 1.5 "move speed bonus" 1.3 } CustomEyeGlowColor "255 0 0" } } } } WaveSpawn // 5 Samurai Demomen (50) { Name "B" Where spawnbot_invasion TotalCount 30 MaxActive 12 SpawnCount 6 WaitBeforeStarting 8 WaitBetweenSpawns 7.5 TotalCurrency 50 RandomSpawn 1 WaitForAllSpawned "A" TFBot { Template T_TFBot_Demoman_Samurai CharacterAttributes { "damage force reduction" 0.0 } Action Mobber Attributes IgnoreFlag Attributes DisableDodge ChangeAttributes { Delay 50 Repeats 1 Name "Vet" } EventChangeAttributes { Vet { ItemAttributes { ItemName "The Half-Zatoichi" "fire rate bonus" 0.7 "move speed bonus" 1.3 } CustomEyeGlowColor "255 0 0" } } } } WaveSpawn // 1 Tank (100) { TotalCurrency 75 TotalCount 3 SpawnCount 1 WaitBeforeStarting 12 WaitForAllSpawned "B" WaitBetweenSpawns 15 FirstSpawnOutput { Target boss_spawn_relay Action Trigger } Tank { Health 10000 Name tankboss Speed 100 StartingPathTrackNode "tankpath_alt" Template "SmallTankTurret" OnKilledOutput { Target boss_dead_relay Action Trigger } OnBombDroppedOutput { Target boss_deploy_relay Action Trigger } } } WaveSpawn // 1 Tank (100) { TotalCurrency 75 TotalCount 3 SpawnCount 1 WaitBeforeStarting 19.5 WaitForAllSpawned "B" WaitBetweenSpawns 15 FirstSpawnOutput { Target boss_spawn_relay Action Trigger } Tank { Health 12500 Name tankboss Speed 100 StartingPathTrackNode "tankpath_same" Template "SmallTankTurret" OnKilledOutput { Target boss_dead_relay Action Trigger } OnBombDroppedOutput { Target boss_deploy_relay Action Trigger } } } WaveSpawn // 12 groups of 3 direct hit soldiers { Name "C" Where spawnbot_invasion TotalCount 108 MaxActive 27 SpawnCount 9 WaitBeforeStarting 8 WaitBetweenSpawns 1.2 RandomSpawn 1 TotalCurrency 50 WaitForAllSpawned "B" Squad { NoFormation 1 TFBot { Class Soldier Item "The Direct Hit" Skill Normal Action Mobber DesiredAttackRange 400 Attributes IgnoreFlag ChangeAttributes { Delay 35 Repeats 1 Name "Vet" } EventChangeAttributes { Vet { ItemAttributes { ItemName "The Direct Hit" "reload time decreased" 0.5 "move speed bonus" 1.3 } CustomEyeGlowColor "255 0 0" } } } TFBot { Class Soldier Item "The Direct Hit" Skill Normal Action Mobber DesiredAttackRange 400 Attributes IgnoreFlag ChangeAttributes { Delay 35 Repeats 1 Name "Vet" } EventChangeAttributes { Vet { ItemAttributes { ItemName "The Direct Hit" "reload time decreased" 0.5 "move speed bonus" 1.3 } CustomEyeGlowColor "255 0 0" } } } TFBot { Template T_TFBot_Soldier_extended_Buff_Banner Item "The Direct Hit" Skill Hard Action Mobber DesiredAttackRange 400 Attributes IgnoreFlag ChangeAttributes { Delay 35 Repeats 1 Name "Vet" } EventChangeAttributes { Vet { ItemAttributes { ItemName "The Direct Hit" "reload time decreased" 0.5 "move speed bonus" 1.3 } CustomEyeGlowColor "255 0 0" } } } } } WaveSpawn // 3 Giant Burstfire Demomen { Name "C" Where spawnbot_invasion TotalCount 15 MaxActive 9 SpawnCount 3 WaitBeforeStarting 8 WaitBetweenSpawns 11.5 RandomSpawn 1 TotalCurrency 50 WaitForAllSpawned "B" TFBot { Template T_TFBot_Giant_Demo_Burst Attributes DisableDodge Attributes AlwaysCrit Action Mobber DesiredAttackRange 250 Attributes IgnoreFlag ChangeAttributes { Delay 65 Repeats 1 Name "Vet" } EventChangeAttributes { Vet { ItemAttributes { ItemName "TF_WEAPON_GrenadeLauncher" "reload time decreased" 0.5 "fire rate bonus" 0.07 } CustomEyeGlowColor "255 0 0" } } } } WaveSpawn // 2 Giant Heavies { Name "E" Where spawnbot_invasion TotalCount 12 MaxActive 6 SpawnCount 6 WaitBeforeStarting 8 WaitBetweenSpawns 36 RandomSpawn 1 TotalCurrency 50 WaitForAllSpawned "C" TFBot { Template T_TFBot_Giant_Heavyweapons_Deflector Attributes DisableDodge Action Mobber DesiredAttackRange 200 Attributes IgnoreFlag ChangeAttributes { Delay 65 Repeats 1 Name "Vet" } EventChangeAttributes { Vet { ItemAttributes { ItemName "The Deflector" "Damage bonus" 1.65 "fire rate bonus" 0.9 } CustomEyeGlowColor "255 0 0" } } } } WaveSpawn // 1 Giant Burstfire Demoman with 4 buff soldiers { Name "E" Where spawnbot_invasion TotalCount 12 MaxActive 12 SpawnCount 4 WaitBeforeStarting 18 WaitBetweenSpawns 10 TotalCurrency 25 RandomSpawn 1 WaitForAllSpawned "C" Squad { TFBot { Template T_TFBot_Giant_Demo_Burst_Spammer Attributes DisableDodge Attributes AlwaysCrit Action Mobber DesiredAttackRange 250 Attributes IgnoreFlag ChangeAttributes { Delay 65 Repeats 1 Name "Vet" } EventChangeAttributes { Vet { ItemAttributes { ItemName "TF_WEAPON_GrenadeLauncher" "reload time decreased" 0.5 "fire rate bonus" 0.07 } CustomEyeGlowColor "255 0 0" } } } TFBot { Template T_TFBot_Medic_Quickfix_RapidUber Attributes IgnoreFlag } TFBot { Template T_TFBot_Large_Demo_Burst Attributes AlwaysCrit Skill Expert Action Mobber DesiredAttackRange 200 Attributes IgnoreFlag ChangeAttributes { Delay 40 Repeats 1 Name "Vet" } EventChangeAttributes { Vet { ItemAttributes { ItemName "TF_WEAPON_GrenadeLAUNCHER" "reload time decreased" 0.6 "move speed bonus" 1.3 } CustomEyeGlowColor "255 0 0" } } } TFBot { Template T_TFBot_Large_Demo_Burst Attributes AlwaysCrit Skill Expert Action Mobber DesiredAttackRange 200 Attributes IgnoreFlag ChangeAttributes { Delay 40 Repeats 1 Name "Vet" } EventChangeAttributes { Vet { ItemAttributes { ItemName "TF_WEAPON_GrenadeLAUNCHER" "reload time decreased" 0.6 "move speed bonus" 1.3 } CustomEyeGlowColor "255 0 0" } } } } } WaveSpawn // 12 Groups of 4 Shotgun Heavies { Name "E" Where spawnbot_invasion TotalCount 144 MaxActive 36 SpawnCount 12 WaitBeforeStarting 8 WaitBetweenSpawns 1.2 RandomSpawn 1 TotalCurrency 50 WaitForAllSpawned "C" Squad { TFBot { Template T_TFBot_Heavyweapons_Shotgun Attributes AlwaysCrit Action Mobber DesiredAttackRange 200 Attributes IgnoreFlag ChangeAttributes { Delay 35 Repeats 1 Name "Vet" } EventChangeAttributes { Vet { ItemAttributes { ItemName "TF_WEAPON_Shotgun_HWG" "fire rate bonus" 1 "move speed bonus" 1.3 } CustomEyeGlowColor "255 0 0" } } } TFBot { Template T_TFBot_Heavyweapons_Shotgun Attributes AlwaysCrit Action Mobber DesiredAttackRange 200 Attributes IgnoreFlag ChangeAttributes { Delay 35 Repeats 1 Name "Vet" } EventChangeAttributes { Vet { ItemAttributes { ItemName "TF_WEAPON_Shotgun_HWG" "fire rate bonus" 1 "move speed bonus" 1.3 } CustomEyeGlowColor "255 0 0" } } } TFBot { Template T_TFBot_Heavyweapons_Shotgun Attributes AlwaysCrit Action Mobber DesiredAttackRange 200 Attributes IgnoreFlag ChangeAttributes { Delay 35 Repeats 1 Name "Vet" } EventChangeAttributes { Vet { ItemAttributes { ItemName "TF_WEAPON_Shotgun_HWG" "fire rate bonus" 1 "move speed bonus" 1.3 } CustomEyeGlowColor "255 0 0" } } } TFBot { Template T_TFBot_Large_Soldier //GrappleSoldier Item "TF_WEAPON_GRAPPLINGHOOK" Name "Large Rapid Grappler Soldier" ClassIcon grapple_nys FireWeapon //Periodically fires weapon { Delay 8 //Time before the first fire input starts (Default: 10) Cooldown 10 //Time between each fire input (Default: 10) IfSeeTarget 1 //When set to 1, this task activates only when the bot can see the target player (Default 0 - Always activate) Duration 0.5 //How long should the button be pressed (Default: 0.1) Type "Primary" // Type of fire input, Possible values: } Skill Hard Action Mobber Attributes IgnoreFlag UseMeleeThreatPrioritization 1 UseHumanAnimations 1 AimAt Feet Attributes AutoJump AutoJumpMin 5 AutoJumpMax 8 Attributes AlwaysCrit ItemAttributes { ItemName "TF_WEAPON_GRAPPLINGHOOK" "is_passive_weapon" 1 } ItemAttributes { ItemName "TF_WEAPON_Rocketlauncher" "reload time decreased" -1 "fire rate bonus" 0.85 "projectile speed decreased" 0.65 } ChangeAttributes { Delay 60 Repeats 1 Name "Vet" } EventChangeAttributes { Vet { ItemAttributes { ItemName "TF_WEAPON_RocketLauncher" "damage bonus" 1.35 "move speed bonus" 1.3 } CustomEyeGlowColor "255 0 0" } } } } } WaveSpawn // Support crit demomen { Where spawnbot_invasion TotalCount 50 MaxActive 18 SpawnCount 2 WaitBeforeStarting 8 WaitBetweenSpawns 0.2 Support 1 RandomSpawn 1 WaitForAllSpawned "E" TotalCurrency 50 TFBot { Class Demoman Attributes AlwaysCrit Action Mobber DesiredAttackRange 600 Attributes IgnoreFlag } } WaveSpawn // Support crit demomen { Where spawnbot_invasion TotalCount 40 MaxActive 18 SpawnCount 2 WaitBeforeStarting 8 WaitBetweenSpawns 0.4 Support 1 RandomSpawn 1 WaitForAllSpawned "E" TotalCurrency 50 TFBot { Template T_TFBot_Soldier_Bison Attributes AlwaysCrit Skill Hard Action Mobber DesiredAttackRange 400 Attributes IgnoreFlag } } WaveSpawn // Support crit demomen { Where spawnbot_left TotalCount 25 MaxActive 12 SpawnCount 9 WaitBeforeStarting 0 WaitBetweenSpawns 6 RandomSpawn 1 Support 1 WaitForAllSpawned "E" TotalCurrency 50 TFBot { Template T_TFBot_Large_Heavyweapons Action Mobber DesiredAttackRange 200 Attributes IgnoreFlag Skill Normal } } WaveSpawn { WaitBeforeStarting 3 WaitForAllSpawned "E" FirstSpawnOutput { Target jug Action Trigger } } WaveSpawn { WaitBeforeStarting 11.1 WaitForAllSpawned "E" FirstSpawnMessage "{2EFF00} Now Playing {FFFFFF} : {5100ff} Armalyte Platypus Remix (Boss Alt) - Martin Walker {FFFFFF}" } WaveSpawn // 2 Bigrock Bursts with 4 direct hit soldiers { Where spawnbot_invasion TotalCount 3 MaxActive 3 SpawnCount 3 WaitBeforeStarting 11 WaitBetweenSpawns 0 RandomSpawn 1 WaitForAllSpawned "E" Name "Final" TotalCurrency 0 Squad { TFBot { Class Soldier CustomEyeGlowColor "255 0 0" Skill Expert WeaponRestrictions PrimaryOnly Name "Direct Disaster" ClassIcon soldier_directhit_lite_giant Health 50000 Scale 1.9 Item "The Tank Top" Attributes MiniBoss Attributes UseBossHealthBar Item "The Direct Hit" //ExtAttr JumpStomp Tag bot_giant UseMeleeThreatPrioritization 1 Action Mobber DesiredAttackRange 300 //SpawnTemplate "Yakuza_Title_Card1" //This won't work space is taken up by Lives hud Attributes IgnoreFlag AlwaysGlow 1 ItemAttributes { ItemName "The Tank Top" "set item tint rgb" 5801378 } ChangeAttributes //Periodically changes bot attributes, defined in EventChangeAttributes { Delay 0.1 //Time before the first bot attribute change (Default: 10) Repeats 0 //How many times should bot change attributes in total (Default: 0 - Infinite) Cooldown 13.8 //Time between each bot attribute change (Default: 10) Name "A" // Name of the bot attributes listed in EventChangeAttributes } ChangeAttributes //Periodically changes bot attributes, defined in EventChangeAttributes { Delay 4.6 //Time before the first bot attribute change (Default: 10) Repeats 0 //How many times should bot change attributes in total (Default: 0 - Infinite) Cooldown 13.8 //Time between each bot attribute change (Default: 10) Name "B" // Name of the bot attributes listed in EventChangeAttributes } ChangeAttributes //Periodically changes bot attributes, defined in EventChangeAttributes { Delay 9.1 //Time before the first bot attribute change (Default: 10) Repeats 0 //How many times should bot change attributes in total (Default: 0 - Infinite) Cooldown 13.8 //Time between each bot attribute change (Default: 10) Name "C" // Name of the bot attributes listed in EventChangeAttributes } ChangeAttributes //Periodically changes bot attributes, defined in EventChangeAttributes { Delay 9.8 //Time before the first bot attribute change (Default: 10) Repeats 0 //How many times should bot change attributes in total (Default: 0 - Infinite) Cooldown 13.8 //Time between each bot attribute change (Default: 10) Name "D" // Name of the bot attributes listed in EventChangeAttributes } EventChangeAttributes //Do not attempt to put any of custom keys here. ExtAttr is the only exception { A { ItemAttributes { ItemName "The Direct Hit" "reload time decreased" -0.1 "fire rate bonus" 0.3 "blast radius decreased" 0.2 "projectile speed decreased" 0.55 "mult projectile count" 1 "damage bonus" 2 "fire rate bonus with reduced health" 0.6 "projectile spread angle penalty" 0 "projectile no deflect" 1 "dmg bonus vs buildings" 0.9 "damage blast push" 0.65 } CharacterAttributes { "move speed bonus" 0.5 "damage force reduction" 0.4 "airblast vulnerability multiplier" 0.4 "override footstep sound set" 3 "airblast vertical vulnerability multiplier" 0.1 "rage giving scale" 0.15 "increased jump height" 1.65 "mult debuff duration" 0.5 } WeaponRestrictions PrimaryOnly } B { WeaponRestrictions PrimaryOnly ItemAttributes { ItemName "The Direct Hit" "reload time decreased" -0.1 "fire rate penalty" 1.35 "dmg bonus vs buildings" 0.9 "projectile speed decreased" 0.1 "projectile spread angle penalty" 22 "mult projectile count" 12 "dmg penalty vs players" 7 "energy weapon penetration" 1 "override projectile type" 13 "Set DamageType Ignite" 1 "fire rate bonus with reduced health" 0.65 "projectile acceleration start time" 1.1 "projectile acceleration time" 4 "projectile lifetime" 5 "projectile acceleration" 4500 "projectile no deflect" 1 "mult debuff duration" 0.5 "particle color rgb" 12807213 } CharacterAttributes { "move speed bonus" 0.5 "damage force reduction" 0.4 "airblast vulnerability multiplier" 0.4 "override footstep sound set" 3 "airblast vertical vulnerability multiplier" 0.1 "rage giving scale" 0.15 "increased jump height" 1.65 "mult debuff duration" 0.5 } } C { WeaponRestrictions SecondaryOnly ItemAttributes { ItemName "TF_WEAPON_Shotgun_Soldier" "reload time decreased" -0.1 "fire rate bonus" 0.4 "override projectile type" 2 "damage causes airblast" 1 "fire rate bonus with reduced health" 0.65 "dmg bonus vs buildings" 5.5 "provide on active" 1 "move speed bonus" 1.65 "damage penalty" 0.25 "projectile spread angle penalty" 1.5 "mult projectile count" 6 "projectile speed increased" 1.65 "custom item model" "models/workshop/weapons/c_models/c_liberty_launcher/c_liberty_launcher.mdl" "custom weapon fire sound" "Weapon_Liberty_Launcher.Single" } CharacterAttributes { "move speed bonus" 0.5 "damage force reduction" 0.4 "airblast vulnerability multiplier" 0.4 "override footstep sound set" 3 "airblast vertical vulnerability multiplier" 0.1 "rage giving scale" 0.15 "increased jump height" 1.65 "mult debuff duration" 0.5 } } D { ItemAttributes { ItemName "The Direct Hit" "mult projectile count" 1 "clip size upgrade atomic" -3 "dmg bonus vs buildings" 1.2 "damage bonus" 2.75 } CharacterAttributes { "move speed bonus" 0.5 "damage force reduction" 0.4 "airblast vulnerability multiplier" 0.4 "override footstep sound set" 3 "airblast vertical vulnerability multiplier" 0.1 "rage giving scale" 0.7 "increased jump height" 1.65 "mult debuff duration" 0.5 } WeaponRestrictions PrimaryOnly } } } } } } }