//This file has been generated by http://iloveyou.tf //Copy this file in your tf/scripts/population folder //Hotkeys: //Shift+F2 - Opens demoui menu //Useful commands: //sm_find_ent - Finds a list of entities. Accepts wildcards. //cl_pdump - Lists out a full list of entity properties. //net_showevents 1 - Prints game events to console. //snd_show 1 - Shows a list of sounds playing/played on the screen in the top-left. #base robot_giant.pop #base robot_standard.pop #base robot_gatebot.pop population { StartingCurrency 10000 RespawnWaveTime 1 CanBotsAttackWhileInSpawnRoom no FixedRespawnWaveTime Yes MedigunShieldDamage 1 ExtendedUpgradesOnly 0 ForceHoliday 2 NoSkeletonSplit 1 LuaScriptFile "scripts/negate_fall_damage.lua" LuaScriptFile "scripts/undyingbuilding_seeltest.lua" PrecacheModel "models/harvest/pumpkin/pumpkin_small.mdl" PrecacheModel "models/bots/boss_bot/boss_blimp.mdl" PrecacheModel "models/bots/boss_bot/boss_blimp_damage1.mdl" PrecacheModel "models/bots/boss_bot/boss_blimp_damage2.mdl" PrecacheModel "models/bots/boss_bot/boss_blimp_damage3.mdl" PrecacheModel "models/bots/boss_bot/boss_blimp_damage_explode.mdl" PrecacheModel "models/bots/boss_bot/boss_blimp_explode.mdl" PrecacheModel "models/props_tumb/mvm/tank_shield.mdl" PrecacheModel "models/props_aircrap/tank_chute.mdl" ItemAttributes { ClassName "tf_powerup_bottle" "effect cond override" 30 } Templates { InvisibleModel { CustomEyeGlowColor "0 0 0" FireInput { Target !activator Action $SetKey$rendermode Param 10 Delay 0.1 } } T_TFBot_Soldier_Bison { Class Soldier ClassIcon soldier_bison_rng Skill Expert Attributes "HoldFireUntilFullReload" WeaponRestrictions SecondaryOnly Item "the righteous bison" Item "the crone's dome" CharacterAttributes { "move speed bonus" 0.9 } ItemAttributes { ItemName "the righteous bison" "fire rate bonus" 0.79 "Reload time increased" 0 "clip size bonus" 0.25 } } T_TFBot_Scout_Pistol { Class Scout Skill Normal Name "Pistol Scout" ClassIcon scout_pistol WeaponRestrictions SecondaryOnly Attributes AlwaysCrit MaxVisionRange 400 ItemAttributes { ItemName "TF_WEAPON_PISTOL" "fire rate bonus" 20 "bleeding duration" 0.5 "weapon spread bonus" 0.01 } //CharacterAttributes //{ // "bleeding duration" 1 //} } T_TFBot_Medic_Vacc_Bullet { Class Medic Skill Expert Name "Bullet Vaccinator Medic" ClassIcon medic_bullet WeaponRestrictions SecondaryOnly Item "gentlemanne_medigun_coffinnail" Item "Commando Elite" ItemAttributes { ItemName "gentlemanne_medigun_coffinnail" "heal rate bonus" 5 "medigun charge is resists" 3 "lunchbox adds minicrits" 3 //Fixes permabubbles "medigun bullet resist passive" 0.75 "medigun bullet resist deployed" 0.75 "ubercharge rate bonus" 0 "uber duration bonus" -4 "bot medic uber health threshold" 333 } } T_TFBot_Medic_Shield { Class Medic Name "Shield Medic" ClassIcon medic_shield Item "The Quick-Fix" Action FetchFlag Attributes IgnoreFlag Attributes IgnoreEnemies Attributes SpawnWithFullCharge Attributes ProjectileShield CharacterAttributes { "increase buff duration" 9 } ItemAttributes { ItemName "The Quick-Fix" "generate rage on heal" 1 "heal rate bonus" 0.5 "uber duration bonus" -8 "bot medic uber health threshold" 151 } } T_TFBot_Chief_Freeman { Name "FR-33/M4-N" Class Engineer Health 36000 Scale 1.2 Skill Expert Attributes MiniBoss Attributes DisableDodge Action Mobber Item "Graybanns" //Conagher's Combover Item "Iron Lung" //"Hardhat Hazmat" No creators.tf cosmetics be hittin' hard Item "Necro Smasher" ItemAttributes { ItemName "Necro Smasher" "custom item model" "models/weapons/c_models/c_cratesmasher/c_cratesmasher_1.mdl" "fire rate bonus" 0.6 "dmg pierces resists absorbs" 1 //heck you, wrangler! } CharacterAttributes { "damage force reduction" 0.1 "move speed bonus" 1.1 //could catch up with you! } WeaponSwitch { Type "Melee" Cooldown 2 Delay 0 Repeats 0 IfHealthAbove 32001 } WeaponSwitch { Type "Melee" Cooldown 16 Delay 8 Repeats 0 IfHealthBelow 32000 IfHealthAbove 28000 } WeaponSwitch { Type "Primary" Cooldown 16 Delay 0 Repeats 0 IfHealthBelow 32000 } FireInput { Target wave4_starter Action "FireUser1" Delay 0 Repeats 1 IfHealthBelow 32000 } ChangeAttributes { Delay 0 Name "Tau" Repeats 1 IfHealthBelow 14000 } FireInput { Target wave4_starter Action "FireUser2" Delay 0 Repeats 1 IfHealthBelow 14000 } EventChangeAttributes { Default { Item "Panic Attack Shotgun" ItemAttributes { ItemName "Panic Attack Shotgun" "custom item model" "models/weapons/c_models/c_rapidfire/c_rapidfire_1.mdl" "custom weapon fire sound" "=80|weapons\shotgun\shotgun_dbl_fire7.wav" // "bullets per shot bonus" 0.5 It's a double-fire, after all "damage bonus" 2.1 "fire rate penalty" 1.8 "faster reload rate" 0.6 "weapon spread bonus" 0.7 "clip size bonus" 1.3 } } Tau { DesiredAttackRange 250 Attributes SuppressFire Item "The Pomson 6000" ItemAttributes { ItemName "The Pomson 6000" "custom weapon fire sound" "=70|weapons\gauss\fire1.wav" "faster reload rate" 0 "fire rate bonus" 0.25 //0.2 sec between attacks "override projectile type" 1 "damage penalty" 1.25 //base damage: 75 "bullets per shot bonus" 0.1 "weapon spread bonus" 0.2 "dmg bonus vs buildings" 5 "sniper fires tracer" 1 } FireWeapon { Type "Primary" Duration 1.2 Cooldown 2.2 Repeats 0 IfSeeTarget 1 } } } } Chief_Every_Spell_At_Once { Class Demoman ClassIcon spellbook_lite Name "Giant Flaming Demoknight" Skill Expert Health 200 //Cosmatics Item "The Dark Age Defender" Item "The Sole Saviors" Item "Blazing Bull" Item "The Dark Falkirk Helm" ItemAttributes { ItemName "The Dark Falkirk Helm" "set item tint rgb" 13595446 } //Items StripItemSlot 0 StripItemSlot 1 Item "The Eyelander" Item "TF_WEAPON_SPELLBOOK" Attributes MiniBoss ItemAttributes { ItemName "The Eyelander" "damage penalty" 0.01 "attach particle effect" 1 "deploy time decreased" 0.1 } ItemAttributes { ItemName "TF_WEAPON_SPELLBOOK" "deploy time decreased" 0.1 "damage penalty" 0.01 "dmg penalty vs players" 0.01 } Spell //Gives specified spell to bots. { Delay 1 Cooldown 6 Repeats 1 IfSeeTarget 1 Charges 1 Type "Ball O' Bats" } CharacterAttributes { "move speed bonus" 0.5 "rage giving scale" 0.1 "damage force reduction" 0.5 "airblast vulnerability multiplier" 0.5 "override footstep sound set" 4 "dmg penalty vs players" 0.2 "damage penalty" 0.01 } ShootTemplate { Name EverySpell ItemName "TF_WEAPON_SPELLBOOK" } } // T_TFBot_PlayerBuster // { // Name "Revenge Buster" // Class Demoman // ClassIcon sentry_buster // Health 1000 // Skill Expert // Action SuicideBomber // Attributes SuppressFire // Attributes DisableDodge // Item "The Ullapool Caber" // UseBusterModel 1 // CharacterAttributes // { // "move speed bonus" 2 // "dmg taken increased" 0.1 // "damage force reduction" 0.33 // "airblast vulnerability multiplier" 0.33 // "rage giving scale" 0 // "special damage type" 2 // } // } } ExtraSpawnPoint //Adds spawn points on specified location { Name "spawnbot_pumpkin" TeamNum 3 // 2 - Red team 3 - Robots. If you are adding spawn for reprogrammed robots, use team 3 X "-1875" Y "-735" Z "90" } ExtraSpawnPoint //Adds spawn points on specified location { Name "spawnally" TeamNum 3 // 2 - Red team 3 - Robots. If you are adding spawn for reprogrammed robots, use team 3 X "2158" Y "481" Z "280" } ExtraSpawnPoint //Adds spawn points on specified location { Name "spawnbot_ally" TeamNum 3 // 2 - Red team 3 - Robots. If you are adding spawn for reprogrammed robots, use team 3 X "2158" Y "481" Z "280" } ExtraSpawnPoint //Adds spawn points on specified location { Name "spawnbot_mid" TeamNum 3 // 2 - Red team 3 - Robots. If you are adding spawn for reprogrammed robots, use team 3 X "375" Y "0" Z "400" } ExtraSpawnPoint //Adds spawn points on specified location { Name "spawnbot_mid_2" TeamNum 3 // 2 - Red team 3 - Robots. If you are adding spawn for reprogrammed robots, use team 3 X "-150" Y "0" Z "400" } ExtraTankPath { Name "tank_path_seelbop" Node "-640 -950 2" Node "410 -950 2" Node "1030 -950 -127" Node "1560 -143 -127" } ExtraTankPath { Name "tank_path_seel" Node "-640 950 2" Node "410 950 2" Node "1030 950 -127" Node "1560 143 -127" } ExtraTankPath // Blimp spawn { Name "tank_path_blimp" Node "-1775 -27 500" //_1, Node "-1275 -27 700" //_2, Node "-745 -27 700" //_3, Node "1400 -27 -120" //_4, } PointTemplates { PT_nihil { logic_relay { "OnSpawn" "!self,Kill,,0,-1" } } NegateFallDamage { OnSpawnOutput { Target "popscript" Action $PreventFallDamage } } PT_GrenadeMimic { OnSpawnOutput { Target "grenade_mimic" Action "$SetOwner" Param "!activator" Delay "0.00" } // OnSpawnOutput // { // Target "sword_mimic_mid" // Action $RotateTowards // Param !activator // Delay 0.01 // } tf_point_weapon_mimic { "targetname" "grenade_mimic" "$weaponname" "Ball Bomber" // "$modules" "rotator" // "$lookat" "aim" // "$rotationspeedx" "350" // "$rotationspeedy" "350" // "$rotationlimitx" "180" // "$rotationlimity" "180" } } //Pumpkin Midget teleportation logic. //This template is put on the grenade of the Giant Demoman. //When the grenade explodes, the pumpkin_death_relay is triggered, //briefly activating spawnbot_pumpkin for 0.05 seconds. //An info_target entity, pumpkin_teleport_target, is created at the explosion's origin. //NB: due to how PTs are set up, killing pumpkin_target will ALSO kill the teleport target!!! DemoPumpkinZZZ { KeepAlive 1 OnParentKilledOutput { Target "pumpkin_death_relay" Action Trigger Delay 0.01 } OnParentKilledOutput { Target "PumpkinTeleportTarget" Action ForceSpawnAtEntityOrigin Param "pumpkin_target" Delay 0.01 } OnParentKilledOutput { Target "pumpkin_target" Action Kill Delay 0.4 } info_target { "targetname" "pumpkin_target" } } //This template is spawned in the wave or mission beforehand. //It contains the filter for Pumpkin Midgets, and the pumpkin_death_relay. //In this testing example, a custom trigger is made to simulate the map-included trigger. //Simply replacing the AddOutput with the following should do the trick (needs testing): //OnTrigger @f@filter_pumpkin_bot@!activator:$TeleportToEntity:pumpkin_teleport_target:0:-1 PumpkinTeleportLogic { NoFixUp 1 filter_tf_bot_has_tag { "targetname" "filter_pumpkin_bot" "Negated" "0" "require_all_tags" "1" "tags" "bot_pumpkin" } trigger_multiple { "targetname" "TEMP_pumpkintrigger" "origin" "-1875 -735 90" "mins" "-200 -200 -200" "maxs" "200 200 200" "spawnflags" 64 "wait" "0.1" "filtername" "filter_pumpkin_bot" "OnTrigger" "!activator,$TeleportToEntity,pumpkin_teleport_target,0,-1" } logic_relay { "targetname" "pumpkin_death_relay" "OnTrigger" "spawnbot_pumpkin,Enable,,0.01,-1" "OnTrigger" "spawnbot_pumpkin,Disable,,0.06,-1" } } //This template is responsible for creating the info_target at the grenade's explosion spot. //On spawn, it grabs its origin, then finds the nearest nav area from there, //and grabs the center of this nav area as a position. //It adds 25 to its z coordinate (to hopefully prevent demos from falling in the floor; needs testing), //then changes its origin to the new position! PumpkinTeleportTarget { NoFixUp 1 OnSpawnOutput { Target "pumpkin_teleport_target" Action RunScriptCode Param " local pumpkin_origin = self.GetOrigin(); if (pumpkin_origin == null) return; local area = NavMesh.GetNearestNavArea(pumpkin_origin, 256, true, true); if (area == null) return; local areaPos = area.GetCenter(); areaPos.z = areaPos.z + 25; self.SetAbsOrigin(areaPos); " Delay 0.01 } OnSpawnOutput { Target "pumpkin_teleport_target" Action Kill Delay 0.4 } info_target { "targetname" "pumpkin_teleport_target" "origin" "0 0 0" } } ActivatorTest { NoFixUp 1 RemoveIfKilled test_relay OnSpawnOutput { Target player Action $DisplayTextChat Param "$$='ActivatorTests activator is '..!activator" } OnSpawnOutput { Target test_relay Action Trigger Delay 0.1 } logic_relay { "targetname" "test_relay" "OnTrigger" "player,$DisplayTextChat,$$='Relay activator is '..!activator,0.02,-1" "OnTrigger" "FSpawnTest,ForceSpawnAtEntityOrigin,!activator,0.06,-1" "OnTrigger" "!self,Kill,,1,-1" } } FSpawnTest { OnSpawnOutput { Target player Action $DisplayTextChat Param "$$='ForceSpawnTests activator is '..!activator" } OnSpawnOutput { Target player Action $DisplayTextChat Param "$$='ForceSpawnTests owner of activator is '..!activator.m_hOwnerEntity" } } AMON_Orbital_Strike_System_BLU { KeepAlive 1 func_rotating { "targetname" "amon_base_blu" "origin" "0 0 0" "mins" "-8 -8 -8" "maxs" "8 8 8" "fanfriction" "50" "maxspeed" "100" "rendermode" "10" "spawnflags" "64" } tf_point_weapon_mimic { "targetname" "amon_mimic_blu" "$weaponname" "amon_wep_mimic" "teamnum" "3" "damage" "100" "origin" "0 0 900" "angles" "90 0 0" "parentname" "amon_base_blu" } prop_dynamic { "targetname" "amon_circle_blu" "disablereceiveshadows" "1" "disableshadows" "1" "modelscale" "0.5" "skin" "2" "model" "models/props_gameplay/cap_circle_320.mdl" "origin" "0 0 -16" "parentname" "amon_base_blu" } info_particle_system { "targetname" "amon_particle" "angles" "0 0 0" "effect_name" "wrenchmotron_teleport_beam" "flag_as_weather" "0" "start_active" "1" "origin" "90 0 900" "parentname" "amon_base_blu" } OnSpawnOutput { Target amon_base_blu Action $TeleportToEntity Param amon_infotarget Delay 0.2 } OnSpawnOutput { Target amon_base_blu Action Kill Delay 3 } OnSpawnOutput { Target amon_mimic_blu Action $SetOwner Param "@e@m_hOwnerEntity@!activator" Delay 0.1 } OnSpawnOutput { Target amon_base_blu Action SetParent Param "" Delay 0.1 } OnSpawnOutput { Target amon_base_blu Action $SetLocalAngles Param "0 0 0" Delay 0.15 } OnSpawnOutput { Target amon_mimic_blu Action FireOnce Delay 0.2 } OnSpawnOutput { Target amon_circle_blu Action Kill Delay 0.8 } OnSpawnOutput { Target player Action $DisplayTextChat Param "$$=!activator.m_hOwnerEntity" } } AMON_ForceSpawner /// use for alternate version that instead spawns multiple circles as it goes { NoFixUp 1 KeepAlive 1 info_target { "targetname" "amon_infotarget" } OnSpawnOutput { Target amon_infotarget Action Kill Delay 3 } OnSpawnOutput { Target AMON_Orbital_Strike_System_BLU Action ForceSpawnAtEntityOrigin Param "!activator" Delay 0.2 } OnSpawnOutput { Target AMON_Orbital_Strike_System_BLU Action ForceSpawnAtEntityOrigin Param "!activator" Delay 0.4 } OnSpawnOutput { Target AMON_Orbital_Strike_System_BLU Action ForceSpawnAtEntityOrigin Param "!activator" Delay 0.6 } OnSpawnOutput { Target AMON_Orbital_Strike_System_BLU Action ForceSpawnAtEntityOrigin Param "!activator" Delay 0.8 } OnSpawnOutput { Target AMON_Orbital_Strike_System_BLU Action ForceSpawnAtEntityOrigin Param "!activator" Delay 1 } OnSpawnOutput { Target AMON_Orbital_Strike_System_BLU Action ForceSpawnAtEntityOrigin Param "!activator" Delay 1.2 } OnSpawnOutput { Target AMON_Orbital_Strike_System_BLU Action ForceSpawnAtEntityOrigin Param "!activator" Delay 1.4 } OnSpawnOutput { Target AMON_Orbital_Strike_System_BLU Action ForceSpawnAtEntityOrigin Param "!activator" Delay 1.6 } OnSpawnOutput { Target AMON_Orbital_Strike_System_BLU Action ForceSpawnAtEntityOrigin Param "!activator" Delay 1.8 } OnSpawnOutput { Target AMON_Orbital_Strike_System_BLU Action ForceSpawnAtEntityOrigin Param "!activator" Delay 2 } OnSpawnOutput { Target AMON_Orbital_Strike_System_BLU Action ForceSpawnAtEntityOrigin Param "!activator" Delay 2.2 } } DestroySelf { OnSpawnOutput { Target !activator Action RemoveHealth Param 999 Delay 1 } OnSpawnOutput { Target "@e@m_hBuiltOnEntity@!activator" Action "SetTeam" Param "2" Delay 0.9 } OnSpawnOutput { Target "@e@m_hBuiltOnEntity@!activator" Action "Skin" Param "0" Delay 0.9 } OnSpawnOutput { Target "@e@m_hBuiltOnEntity@!activator" Action "$InheritOwner" Param "!activator" Delay 0.9 } OnSpawnOutput { Target "@e@m_hBuiltOnEntity@!activator" Action "$SetVar$builderHandle" Param "$$=!activator.m_hBuilder" Delay 0.91 } OnSpawnOutput { Target "@e@m_hBuilder@!activator" Action "$FireUserAsActivator1" Delay 0.95 } } SpyOutputs { OnSpawnOutput { Target !activator Action AddOutput Param "OnUser1 @f@filter_handle@obj_sentrygun:SetBuilder::0:-1" Delay 0.1 } OnSpawnOutput { Target !activator Action AddOutput Param "OnUser1 @e@m_hMyWeapons$1@!activator:$SetProp$m_flEffectBarRegenTime:0.01:0:-1" Delay 0.1 } OnSpawnOutput { Target "filter_handle" Action "$SetKey$value" Param "$$=!activator" Delay 0.1 } $filter_variable { "targetname" "filter_handle" "$name" "builderHandle" "$value" "" "filtertype" "0" "Negated" "0" "origin" "0 0 0" } } DeathSpot { KeepAlive 1 NoFixUp 1 info_target { "targetname" "negotiator_target" "origin" "0 0 20" //Ensures it is off the ground } logic_relay { "targetname" "negotiator_death" "OnTrigger" "@f@filter_bluteam@player,$RemoveCond,43,-1,-1" } } RoboSoldier { prop_dynamic { "targetname" "soldier_boy" "model" "models/bots/soldier/bot_soldier.mdl" "origin" "0 0 -50" "skin" 1 "defaultanim" "a_jumpfloat_melee" } prop_dynamic_ornament { "initialowner" "soldier_boy" "model" "models/workshop/weapons/c_models/c_caber/c_caber.mdl" } prop_dynamic_ornament { "initialowner" "soldier_boy" "model" "models/workshop/player/items/soldier/hwn2020_war_blunder/hwn2020_war_blunder.mdl" } } RocketLauncherLauncher { OnSpawnOutput { Target "rocketl" Action "$SetOwner" Param "!activator" Delay "0.00" } OnSpawnOutput { Target "rocketl" Action "$StartFiring" Delay "0.6" } tf_point_weapon_mimic { "targetname" "rocketl" "$weaponname" "Inception Launcher" "$firetime" "1.2" // "$OnFire" "RocketLauncherLauncher,ForceSpawnAtEntityOrigin,!activator,0,-1" "$OnFire" "testPointSpawner,ForceSpawnAtEntityOrigin,!activator,0.6,-1" } env_entity_maker { "targetname" "testPointSpawner" "EntityTemplate" "RocketLauncherLauncher" "$autoparent" 1 } } PT_FireballSpell_Bot { info_particle_system { "targetname" "spellbot_fireball_particle" "start_active" 0 "effect_name" "spell_cast_wheel_blue" "origin" "0 0 0" //Check proper origin! "$OnUser5" "!self,Start,,0,-1" "$OnUser5" "!self,Stop,,2,-1" } tf_point_weapon_mimic { "targetname" "spellbot_fireball_mimic" "origin" "0 0 88" //Viewheight Pyro = 68; * 1.3 = 88.4. Check proper origin! "angles" "0 0 0" //Directly forward "$weaponname" "Bot Weapon: Fireball" "$OnUser5" "!self,FireOnce,,0.8,-1" } } PT_RoadRage_Attacker { //190 frames in total //At 10 frames, spinup starts //At 95 frames, spindown has finished } PoisonArea { OnSpawnOutput { Target poison_particle Action Kill Delay 2 } OnSpawnOutput { Target poison_particle Action Kill Delay 2 } OnSpawnOutput { Target poison_hurt Action Kill Delay 3.5 } OnSpawnOutput { Target poison_particle Action Start Delay 0.01 } OnSpawnOutput { Target poison_hurt Action Enable Delay 0.8 } info_particle_system { "targetname" "poison_particle" "start_active" 0 "effect_name" "utaunt_bubbles_glow_purple_parent" } trigger_hurt { "targetname" "poison_hurt" "origin" "0 0 0" "damage" "50" //actually 25 "damagetype" "131072" //poison "damagemodel" "0" //normal "filtername" "filter_redteam" "spawnflags" "64" "StartDisabled" "1" "nodmgforce" "0" "mins" "-80 -80 -64" //this could probably catch you if you jump too low "maxs" "80 80 96" //either way this covers the indicator well enough } } PoisonArea_Projectile { KeepAlive 1 OnParentKilledOutput { Target poisonarea Action Kill Delay 2 } OnParentKilledOutput { Target poisonarea Action Kill Delay 2 } OnParentKilledOutput { Target poisonarea_hurt Action Kill Delay 3.5 } OnParentKilledOutput { Target poisonarea Action Start Delay 0.01 } OnParentKilledOutput { Target poisonarea_hurt Action Enable Delay 0.4 } info_particle_system { "targetname" "poisonarea" "start_active" 0 "effect_name" "utaunt_bubbles_glow_purple_parent" } trigger_hurt { "targetname" "poisonarea_hurt" "origin" "0 0 0" "damage" "60" //actually 30 "damagetype" "131072" //poison "damagemodel" "0" //normal "filtername" "filter_redteam" "spawnflags" "64" "StartDisabled" "1" "nodmgforce" "0" "mins" "-80 -80 -64" //this could probably catch you if you jump too low "maxs" "80 80 96" //either way this covers the indicator well enough } } PoisonArea_Target { NoFixUp 1 info_target { "targetname" "poison_target" } } Tank_Skeleton { OnSpawnOutput { Target "!activator" Action "color" Param "144 204 253" } prop_dynamic { "targetname" "skelehat" "origin" "20 0 158" "angles" "0 90 0" "rendercolor" "144 204 253" "model" "models/props_viaduct_event/skull_island01.mdl" "modelscale" "0.1" "solid" "0" "disableshadows" "1" } info_target //Will serve as the destination { "targetname" "destination" "origin" "20 0 171" //Put it where you want the bot to be } } Tank_Skeleton_Teleport { filter_tf_bot_has_tag { "Negated" "0" "require_all_tags" "1" "tags" "is_skeleton" //add this tag to the bot you want to teleport "targetname" "filter_skeleton" } trigger_teleport { "origin" "-5530 350 190" //locate this where the bot will spawn: spawnbot "mins" "-500 -500 -100" "maxs" "500 500 100" "spawnflags" "1" "filtername" "filter_skeleton" "target" "destination" //Where to teleport the bot to } } PumpkinShot { OnSpawnOutput { Target "pumpkinbomb_shot" Action $SetOwner Param !activator //as it turns out, !parent does not exist in I/O??? Delay 0.01 } tf_projectile_spellpumpkin { "targetname" "pumpkinbomb_shot" "origin" "0 0 0" } } SpycrabTarget { info_target { "targetname" "spycrab_target" "origin" "0 0 83" } } // OnSpawnOutput // { // Target "aimrocket_mimic" // Action $SetAimFollow // Param @e@m_hOwnerEntity@!activator // Delay 0.1 // } // "$module" "aimfollow" // "$rotationfollow" "0" // "$module" "rotator" //follow aim of entity // "$lookat" "center" // "$rotationspeedx" "45" // "$rotationspeedy" "45" // "$rotationlimitx" "360" // "$rotationlimity" "360" // func_rotating // { // "targetname" "aimrocket_rotate" // "origin" "0 0 0" // "mins" "-8 -8 -8" // "maxs" "8 8 8" // "fanfriction" "100" // "maxspeed" "90" // "rendermode" "10" // "spawnflags" "69" // } // OnSpawnOutput // { // Target "rocket_turret" // Action $SetFakeParent // Param !activator // Delay 0.05 // } RocketTurret { // NoFixUp 1 OnSpawnOutput { Target "aimrocket_mimic" Action $SetOwner Param @e@m_hOwnerEntity@!activator Delay 0.05 } OnSpawnOutput { Target "aimrocket_mimic" Action SetParent Param !activator Delay 0.05 } logic_relay { "spawnflags" "2" "targetname" "aimrocket_firer" "OnSpawn" "aimrocket_firer,Trigger,,0.2,-1" "OnTrigger" "aimrocket_mimic,FireOnce,,0.2,-1" "OnTrigger" "aimrocket_mimic,FireOnce,,0.4,-1" "OnTrigger" "aimrocket_mimic,FireOnce,,0.6,-1" "OnTrigger" "aimrocket_mimic,FireOnce,,0.8,-1" "OnTrigger" "aimrocket_firer,Trigger,,1.8,-1" } tf_point_weapon_mimic { "targetname" "aimrocket_mimic" "origin" "0 0 0" "angles" "0 0 0" "teamnum" "3" //blue "$firetime" "1.6" "$preventshootparent" 1 "$weaponname" "Back Rocket" } // prop_dynamic // { // "$modules" "fakeparent" // "$bone" "bip_upperarm_R" // "$fakeparentoffset" "0 0 -40" // "$fakeparentrotation" "0 0 0" // "targetname" "rocket_turret" // "origin" "0 45 0" // "angles" "90 0 90" // "model" "models/props_frontline/tank_turret.mdl" // "skin" 3 // "modelscale" "0.4" // "solid" "0" // "disableshadows" "1" // "$rotationonly" "" // } } CaberToss { // NoFixUp 1 OnSpawnOutput { Target "cabertoss_mimic" Action SetParent Param !activator Delay 0.05 } OnSpawnOutput { Target "cabertoss_mimic" Action $SetAimFollow Param !activator Delay 0.05 } OnSpawnOutput { Target "cabertoss_mimic" Action $SetOwner Param !activator //as it turns out, !parent does not exist in I/O??? Delay 0.1 } tf_point_weapon_mimic { "targetname" "cabertoss_mimic" "origin" "0 0 0" "angles" "0 0 0" "teamnum" "3" //blue "$weaponname" "Caber Toss" "$module" "rotator" //follow aim of entity "$lookat" "aim" "$projectilespeed" "1094" } } CaberTossRelay { NoFixUp 1 logic_relay { "targetname" "caber_tosser_relay" "spawnflags" "2" //allows faster re-trigger "OnTrigger" "@c@!activator,FireOnce,,0,-1" } $filter_keyvalue { "targetname" "filter_isweaponmimic" "$name" "$weaponname" "$value" "Caber Toss" } } //Currently crashes, needs fixing. ClusterBomb { NoFixUp 1 KeepAlive 1 OnSpawnOutput { Target grenadecluster Action FireOnce Delay 2.3 } OnSpawnOutput { Target grenadecluster Action FireOnce Delay 2.37 } OnSpawnOutput { Target grenadecluster Action FireOnce Delay 2.44 } OnSpawnOutput { Target grenadecluster Action Kill Delay 2.5 } tf_point_weapon_mimic { "targetname" "grenadecluster" "origin" "0 0 0" "angles" "0 0 0" "teamnum" "3" //blue "$weaponname" "Cluster Shot" } } SentryHat { NoFixUp 1 OnSpawnOutput { Target sentryhat Action SetBuilder Param !parent Delay 0.01 } OnSpawnOutput { Target sentryhat Action $SetKey$angles Param "0 0 0" Delay 0.02 } obj_sentrygun { "targetname" "sentryhat" "teamnum" 3 "spawnflags" 10 //inv, inf ammo "solid" 0 "angles" "0 0 0" "origin" "0 35 -15" "rendermode" 10 //10 if needed to be invis } logic_relay { "OnSpawn" "!self,FireUser1,,0,-1" "OnUser1" "sentryhat,AddHealth,450,0,-1" "OnUser1" "!self,FireUser1,,0.1,-1" } } powerup_logic { OnParentKilledOutput { Target "item_powerup_rune" Action Kill Delay 0 } } DispenserPocket { NoFixUp 1 OnSpawnOutput { Target dispenserpocket Action SetBuilder Param !parent Delay 0.01 } obj_dispenser { "targetname" "dispenserpocket" "angles" "90 -100 105" "origin" "55 0 30" "teamnum" 3 //blu "spawnflags" 2 //inv, inf ammo "solid" 0 "defaultupgrade" 0 //"rendermode" 10 if needed to be invis } } annotation { NoFixUp 1 training_annotation { "targetname" "test_message" "parentname" "spawnbot_ally" "display_text" "Test message!" "lifetime" "4" "origin" "2145 5 257" } } Sandvich_Heavy { NoFixUp 1 OnSpawnOutput { Target bread_target Action SetParent Param !activator } info_target { "targetname" "bread_target" } logic_relay { "targetname" "lunchtime" "OnTrigger" "@p@bread_target,$ChangeAttributes,Nomming,0.45,-1" "OnTrigger" "@p@bread_target,$RemoveItemAttribute,disable weapon switch|2,0.45,-1" "OnTrigger" "@p@bread_target,$ChangeAttributes,Default,4.85,-1" "OnTrigger" "@p@bread_target,$AddItemAttribute,disable weapon switch|2,4.45,-1" } } meteortank_bot_init { OnSpawnOutput { Target "@c@!activator" Action "AddOutput" Param "rendermode 10" } OnSpawnOutput { Target "meteortank_bot_target" Action "SetParent" Param "!activator" Delay 0 } info_target { "targetname" "meteortank_bot_target" } } MeteorTank { // NoFixUp 1 OnParentKilledOutput { Target "@p@meteortank_bot_target*" Action "SetHealth" Param "-1000" Delay 0 } filter_tf_bot_has_tag { "targetname" "filter_meteor" "Negated" "0" "require_all_tags" "1" "tags" "meteor_bot" } trigger_teleport { "targetname" "meteor_teleport" "mins" "-6999 -6999 -6999" "maxs" "6999 6999 6999" "spawnflags" "1" "landmark" "!activator" "filtername" "filter_meteor" "target" "meteortank_position" } info_target { "targetname" "meteortank_position" "origin" "-40 0 180" } logic_relay { "targetname" "meteor_rage_relay" "OnSpawn" "tank_meteor,AddOutput,OnHealthBelow40Percent meteor_firer:Disable::0:-1,0,-1" "OnSpawn" "tank_meteor,AddOutput,OnHealthBelow40Percent player:$DisplayTextCenter:hi:0:-1,0,-1" "OnSpawn" "tank_meteor,AddOutput,OnHealthBelow40Percent meteor_mimic:$StopFiring::1.4:-1,0,-1" "OnSpawn" "tank_meteor,AddOutput,OnHealthBelow40Percent meteor_mimic:$SetKey$firetime::1.5:-1,0,-1" "OnSpawn" "tank_meteor,AddOutput,OnHealthBelow40Percent meteor_mimic:$StartFiring::1.5:-1,0,-1" } logic_relay { "spawnflags" "2" "targetname" "meteor_firer" "OnSpawn" "meteor_firer,Trigger,,2,-1" "OnTrigger" "meteor_mimic,$StartFiring,,0.1,-1" "OnTrigger" "meteor_mimic,$StopFiring,,0.4,-1" "OnTrigger" "meteor_mimic,$StartFiring,,0.6,-1" "OnTrigger" "meteor_mimic,$StopFiring,,0.9,-1" "OnTrigger" "meteor_mimic,$StartFiring,,1.1,-1" "OnTrigger" "meteor_mimic,$StopFiring,,1.4,-1" "OnTrigger" "meteor_firer,Trigger,,7,-1" } prop_dynamic { "targetname" "meteor_gun" "parentname" "meteor_rotate" "model" "models/weapons/c_models/c_xms_flaregun/c_xms_flaregun.mdl" "modelscale" "4" "skin" "1" "origin" "0 0 -50" "angles" "-75 0 0" } tf_point_weapon_mimic { "targetname" "meteor_mimic" "parentname" "meteor_rotate" "origin" "0 0 0" "angles" "-75 0 0" "teamnum" "3" //blue "$firetime" "0.1" "$preventshootparent" 1 "$weaponname" "Meteor Launcher" } func_rotating { "targetname" "meteor_rotate" "mins" "-8 -8 -8" "maxs" "8 8 8" "fanfriction" "100" "maxspeed" "250" "rendermode" "10" "spawnflags" "65" } } //Checkers for having a certain item equipped vsaw_equipped { OnSpawnOutput { Target "!activator" Action "$RemoveItemAttribute" Param "medic machinery beam|1" //15 hp/sec Delay 0.1 } OnSpawnOutput { Target "vsaw_checker" Action "Trigger" Delay 0.1 } OnParentKilledOutput { Target "!activator" Action "$RemoveItemAttribute" Param "medic machinery beam|1" //15 hp/sec Delay 0.1 } OnSpawnOutput { Target "!activator" Action "$AddCond" Param "130" } filter_tf_condition { "targetname" "filter_has_vsaw" "Negated" "0" "condition" "130" "OnPass" "!activator,$AddItemAttribute,medic machinery beam|2.5|1,0.1,-1" "OnFail" "!activator,$RemoveItemAttribute,medic machinery beam|2.5|1,0.1,-1" } logic_relay { "targetname" "vsaw_checker" "OnTrigger" "filter_has_vsaw,TestActivator,!activator,0,-1" } } ice_equipped { OnSpawnOutput { Target "!activator" Action "$RemoveItemAttribute" Param "bullets per shot bonus|0" Delay 0.1 } OnSpawnOutput { Target "!activator" Action "$RemoveItemAttribute" Param "damage bonus HIDDEN|0" Delay 0.1 } OnSpawnOutput { Target "!activator" Action "$RemoveItemAttribute" Param "spread penalty|0" Delay 0.1 } OnParentKilledOutput { Target "!activator" Action "$RemoveItemAttribute" Param "bullets per shot bonus|0" Delay 0.1 } OnParentKilledOutput { Target "!activator" Action "$RemoveItemAttribute" Param "damage bonus HIDDEN|0" Delay 0.1 } OnParentKilledOutput { Target "!activator" Action "$RemoveItemAttribute" Param "spread penalty|0" Delay 0.1 } OnSpawnOutput { Target "ice_checker" Action "Trigger" Delay 0.1 } OnSpawnOutput { Target "!activator" Action "$AddCond" Param "130" } filter_tf_condition { "targetname" "filter_has_ice" "Negated" "0" "condition" "130" "OnFail" "!activator,$AddItemAttribute,damage bonus HIDDEN|0.7|0,0.1,-1" "OnFail" "!activator,$AddItemAttribute,bullets per shot bonus|4|0,0.1,-1" "OnFail" "!activator,$AddItemAttribute,spread penalty|2|0,0.1,-1" "OnPass" "!activator,$AddItemAttribute,damage bonus HIDDEN|0.7|0,0.1,-1" "OnPass" "!activator,$AddItemAttribute,bullets per shot bonus|4|0,0.1,-1" "OnPass" "!activator,$AddItemAttribute,spread penalty|2|0,0.1,-1" } logic_relay { "targetname" "ice_checker" "OnTrigger" "filter_has_ice,TestActivator,!activator,0,-1" } } //Repair tank repairtank { NoFixUp 1 // OnSpawnOutput // { // Target "trigger_repair" // Action "SetParent" // Param "!activator" // } // OnSpawnOutput // { // Target panictank_init_relay // Action Trigger // } // OnSpawnOutput // { // Target "tankboss" // Action SetHealth // Param 10 // } // logic_relay // { // "targetname" "panictank_init_relay" // "OnTrigger" "!parent,AddOutput,OnHealthBelow90Percent !self:SetSpeed:85:0:-1,0,-1" // "OnTrigger" "!parent,AddOutput,OnHealthBelow70Percent !self:SetSpeed:10:0:-1,0,-1" // "OnTrigger" "!parent,AddOutput,OnHealthBelow50Percent !self:SetSpeed:120:0:-1,0,-1" // "OnTrigger" "!parent,AddOutput,OnHealthBelow30Percent !self:SetSpeed:150:0:-1,0,-1" // "OnTrigger" "!parent,AddOutput,OnHealthBelow20Percent !self:SetSpeed:180:0:-1,0,-1" // "OnTrigger" "!parent,AddOutput,OnHealthBelow10Percent !self:SetSpeed:220:0:-1,0,-1" // } info_target { "targetname" "tankshere" } filter_tf_bot_has_tag { "targetname" "filter_tankrepair" "tags" "bot_repair" "require_all_tags" "1" "Negated" "0" } // filter_tf_bot_has_tag // { // "targetname" "filter_tankspeed" // "tags" "bot_speedup" // "require_all_tags" "1" // "Negated" "0" // } trigger_multiple { "targetname" "trigger_repair" "mins" "-119 -100 -150" "maxs" "119 100 150" "filtername" "filter_tankrepair" "OnStartTouch" "tankboss*,AddHealth,100,0.02,-1" "OnStartTouch" "tankboss*,$TakeDamageFromActivator,1,0.04,-1" "OnStartTouch" "!activator,SetHealth,-1,0.2,-1" //kill the activator "spawnflags" 64 } // trigger_multiple // { // "targetname" "trigger_speed" // "mins" "-119 -100 -150" // "maxs" "119 100 150" // "filtername" "filter_tankspeed" // "OnStartTouch" "!activator,SetHealth,-1,0,-1" //kill the activator // "OnStartTouch" "tankboss,SetSpeed,75,0,-1" // "spawnflags" 64 // } } //tankspeed relays, by lite tankspeed_1 { //Set the max hit points logic_relay { "onspawn" "!parent,$getkey$health,healthcounter_high|sethitmax|0,0,-1" "onspawn" "!parent,$getkey$health,healthcounter_high|setvalue|0,0.01,-1" "onspawn" "!parent,$getkey$health,healthcounter_low|sethitmax|0,0,-1" "onspawn" "!parent,$getkey$health,healthcounter_low|setvalue|0,0.01,-1" } //70% logic_relay { "onspawn" "healthcounter_high,multiply,0.7,0.02,-1" } math_counter { "targetname" "healthcounter_high" "outvalue" "tankcompare_high,setcomparevalue,,0,-1" } logic_timer { "refiretime" "0.1" "ontimer" "!parent,$getdata$m_iHealth,tankcompare_high|setvaluecompare|0,0,-1" } logic_compare { "targetname" "tankcompare_high" "ongreaterthan" "!parent,setspeed,75,0,-1" "onlessthan" "!parent,$getdata$m_iHealth,tankcompare_low|setvaluecompare|0,0,-1" } //40% logic_relay { "onspawn" "healthcounter_low,multiply,0.4,0.02,-1" } math_counter { "targetname" "healthcounter_low" "outvalue" "tankcompare_low,setcomparevalue,,0,-1" } logic_compare { "targetname" "tankcompare_low" "ongreaterthan" "!parent,setspeed,50,0,-1" "onlessthan" "!parent,setspeed,15,0,-1" } // logic_timer // { // "refiretime" "0.1" // "ontimer" "!parent,$getdata$m_iHealth,tankcompare_low|setvaluecompare|0,0,-1" // } } //Attribute changer attribute_change_parent_test { NoFixUp 1 point_populator_interface { "targetname" "pop_interface_seel" } } attribute_change_test { NoFixUp 1 logic_relay { "targetname" "bot_attributes_test_relay" "OnTrigger" "pop_interface_seel,ChangeBotAttributes,Test,0.1,-1" } point_populator_interface { "targetname" "pop_interface_seel" } //Defensive positioning logic_relay { "targetname" "bot_attr_mid" "OnTrigger" "pop_interface_seel,ChangeBotAttributes,Mid,0.1,-1" "OnTrigger" "pop_interface_seel,ChangeDefaultEventAttributes,Mid,0.1,-1" } logic_relay { "targetname" "bot_attr_base" "OnTrigger" "pop_interface_seel,ChangeBotAttributes,Base,0.1,-1" "OnTrigger" "pop_interface_seel,ChangeDefaultEventAttributes,Base,0.1,-1" } info_target { "targetname" "target_blu_front" "origin" "1367 3 -126" } info_target { "targetname" "target_blu_mid" "origin" "444 -5 -126" } info_target { "targetname" "target_blu_base" "origin" "-1292 -11 -126" } } //front: 1367.495361 3.249172 -126.968689; //mid: 444.977509 -5.337898 -126.968689 //base: -1292.298950 -11.043308 -126.968689 //Spawned Sentry sentrytest { KeepAlive 1 //Dont remove entities after their spawner had been killed NoFixUp 1 // OnSpawnOutput //Parent entity is the !activator. Set builder to parent entity // { // Target "sentry" //targetname of an entity added below // Action "SetBuilder" // Param / DOES NOT SUPPORT CUSTOM Param // Delay 0.00 // } info_target { "targetname" "sentryhere" "origin" "-15 70 0" } obj_sentrygun { "targetname" "sentry_a" //Entity name. Required if the entity is going to be referenced somewhere "origin" "0 0 0" "teamnum" "2" // 2 - Red team, 3 - Blu team "SolidToPlayer" "1" "defaultupgrade" "2" } } target_x { info_target { "targetname" "sentryhere_c" "origin" "1100 -625 -130" } } sentrytest_2 { KeepAlive 1 //Dont remove entities after their spawner had been killed NoFixUp 1 // OnSpawnOutput //Parent entity is the !activator. Set builder to parent entity // { // Target "sentry" //targetname of an entity added below // Action "SetBuilder" // Param / DOES NOT SUPPORT CUSTOM Param // Delay 0.00 // } OnSpawnOutput //Parent entity is the !activator. Set builder to parent entity { Target "sentry_b" //targetname of an entity added below Action "SetBuilder" Delay 0.00 } OnSpawnOutput //Parent entity is the !activator. Set builder to parent entity { Target "sentry_b" //targetname of an entity added below Action "SetParent" Param "" Delay 0.10 } OnSpawnOutput //Parent entity is the !activator. Set builder to parent entity { Target "sentry_b" //targetname of an entity added below Action "SetOrigin" Param "1018 688 -192" Delay 0.15 } info_target { "targetname" "sentryhere_b" "origin" "-15 70 0" } obj_sentrygun { "targetname" "sentry_b" //Entity name. Required if the entity is going to be referenced somewhere "origin" "0 0 0" "teamnum" "2" // 2 - Red team, 3 - Blu team "SolidToPlayer" "1" "defaultupgrade" "2" } } //Teleporting tank tanktp { NoFixUp 1 // filter_tf_bot_has_tag // { // "Negated" "0" // "require_all_tags" "1" // "tags" "teleportme" //add this tag to the bot you want to teleport // "targetname" "filter_banner" // } point_teleport { "targetname" "teleporty" "origin" "770 216 -127" //locate this where the bot will spawn "spawnflags" "0" "target" "tankboss" //What entity to teleport // "filtername" "filter_banner" } info_target //Will serve as the destination { "targetname" "destination" "origin" "-1030 192 -127" //Put it where you want the bot to be } } //Borrowed from Yuugi TankSpinner { NoFixUp 1 prop_dynamic { "targetname" "spin_source" "model" "models/props_junk/metalbucket01a.mdl" "rendermode" "10" "origin" "-640 -950 2" "solid" "0" } func_rotating { "targetname" "spin_source" "origin" "-640 -950 2" "mins" "-8 -8 -8" "maxs" "8 8 8" "fanfriction" "12" "maxspeed" "50" "rendermode" "10" "spawnflags" "65" } } ParentingSpin { logic_relay { "targetname" "spin_that_tank" "OnSpawn" "!parent,$AddModule,fakeparent,0.01,-1" "OnSpawn" "!parent,AddOutput,$rotationonly 1,0.05,-1" "OnSpawn" "!parent,$SetFakeParent,spin_source,0.1,-1" } } giant_intel { filter_tf_class { "targetname" "filter_scout" "tfclass" "1" "Negated" "0" } filter_tf_class { "targetname" "filter_soldier" "tfclass" "3" "Negated" "0" } //main flag NoFixUp 1 item_teamflag { "angles" "0 0 0" "flag_icon" "../hud/objectives_flagpanel_carried" "flag_model" "models\props_moonbase\powersupply_flag.mdl" "flag_paper" "player_intel_papertrail" "flag_trail" "flagtrail" "GameType" "1" "NeutralType" "1" "PointValue" "0" "ReturnBetweenWaves" "1" "ReturnTime" "9999" "ScoringType" "0" "ShotClockMode" "0" "targetname" "become_giant" "TeamNum" "2" "trail_effect" "1" "VisibleWhenDisabled" "0" "origin" "2157 -263 189" "StartDisabled" "0" "OnReturn" "become_giant,SetTeam,3,0.01,-1" "OnReturn" "become_giant,Skin,1,0.02,-1" //New outputs for limited core pickups: "OnPass" "become_giant,$SetKey$filter,,0,-1" //red "OnPickup1" "filter_is_red_was_pickup,TestActivator,!activator,0,-1" //blu "OnPickup1" "filter_is_blu_was_pickup,TestActivator,!activator,0,-1" //drop "OnDrop1" "!self,SetTeam,2,0.01,-1" "OnDrop1" "!self,Skin,0,0.02,-1" "OnDrop1" "realtimer2,$CancelPending,,0,-1" //dropped by red "OnDrop1" "filter_is_red_was_dropped,TestActivator,!activator,0,-1" //dropped by blu "OnDrop1" "filter_is_blu_was_dropped,TestActivator,!activator,0,-1" } //filters filter_multi { "Filter01" "filter_redteam" "filtertype" "0" "Negated" "0" "targetname" "filter_is_red_was_pickup" "origin" "-116 2585 -144.659" //player "OnPass" "!activator,$AddCond,32,0,-1" "OnPass" "!activator,$RemoveCond,32,15,-1" "OnPass" "!activator,$AddCond,65,0,-1" "OnPass" "!activator,$AddCond,57,0,-1" "OnPass" "!activator,$RemoveCond,57,5,-1" "OnPass" "!activator,$AddPlayerAttribute,CARD: move speed bonus|1.5,0.05,-1" "OnPass" "!activator,$RemovePlayerAttribute,CARD: move speed bonus,5,-1" "OnPass" "!activator,$Regenerate,,0,-1" "OnPass" "!activator,$DisplayTextCenter,You have 60 seconds before you are automatically respawned!,5,-1" "OnPass" "!activator,$WeaponStripSlot,5,0.05,-1" // no canteens } filter_multi { "Filter01" "filter_redteam" "filtertype" "0" "Negated" "0" "targetname" "filter_is_red_was_dropped" "origin" "-116 2585 -144.659" //player "OnPass" "become_giant,ForceReset,,0.01,-1" "OnPass" "become_giant,SetTeam,3,0.01,-1" "OnPass" "become_giant,Skin,1,0.02,-1" "OnPass" "giant_relay,Enable,,0.01,-1" "OnPass" "giant_relay,Trigger,,0.02,-1" "OnPass" "!activator,$AddCond,57,0.2,-1" "OnPass" "!activator,$RemoveCond,57,5.2,-1" "OnPass" "!activator,$AddCond,32,0.2,-1" "OnPass" "!activator,$RemoveCond,32,5.2,-1" "OnPass" "!activator,$RemoveCond,65,0,-1" } filter_multi { "Filter01" "filter_bluteam" "filtertype" "0" "Negated" "0" "targetname" "filter_is_blu_was_pickup" "origin" "-116 2585 -144.659" //player "OnPass" "!activator,$GiveItem,bombhat,0,-1" } filter_multi { "Filter01" "filter_bluteam" "filtertype" "0" "Negated" "0" "targetname" "filter_is_blu_was_dropped" "origin" "-116 2585 -144.659" //success //"OnPass" "become_giant,ForceReset,,0.01,-1" "OnPass" "become_giant,SetTeam,2,0.01,-1" "OnPass" "become_giant,Skin,0,0.02,-1" //New outputs for limited core pickups: "OnPass" "become_giant,$SetKey$filter,filter_can_pickup,0.01,-1" } //New filter for limited core pickups: $filter_variable { "targetname" "filter_can_pickup" "$name" "PickupCount" "$value" "0" "$compare" "greater than" "filtertype" "0" "Negated" "0" "origin" "-116 2585 -144.659" "OnPass" "player,$DisplayTextChat,You passed!,0,-1" } } //A target to shoot at rain_target { NoFixUp 1 info_target { "origin" 0 0 0 //gets parented to entity anyway "targetname" "shoothere" } } //A fancy vortex effect VortexBlood { prop_dynamic { "targetname" "bloodvortex" "model" "models/props_lakeside_event/wof_plane2.mdl" "angles" "0 0 90" "solid" "0" "disableshadows" "1" "modelscale" "0.75" "rendercolor" "170 0 0" //Collector's | color! R G B A, and Alpha defaults to 255 :> } prop_dynamic { "targetname" "bloodvortex" "model" "models/props_lakeside_event/wof_plane2.mdl" "angles" "0 0 270" "solid" "0" "disableshadows" "1" "modelscale" "0.75" "rendercolor" "170 0 0" //Collector's | color! R G B A, and Alpha defaults to 255 :> } } //Testing golf Hole { trigger_hurt { "targetname" "hole" "damage" 10 "damagecap" 50 "damagetype" 16 //train-type damage "damagemodel" 1 //doubles every time it triggers, resets on exit "nodmgforce" 1 "filtername" "filter_ball" "mins" 50 "maxs" 50 "solid" 0 } } //Spells TeleSpell_Red { NoFixUp 1 KeepAlive 1 OnSpawnOutput { Target "telly" Action "$setowner" Param "!activator" Delay 0.01 } tf_projectile_spelltransposeteleport { "targetname" "telly" "origin" "0 0 0" "teamnum" "2" // 2 - Red team, 3 - Blu team } } TeleSpell { NoFixUp 1 // KeepAlive 1 OnSpawnOutput { Target "telly" Action "$setowner" Param "!activator" Delay 0.01 } tf_projectile_spelltransposeteleport { "targetname" "telly" "origin" "0 0 0" "teamnum" "3" // 2 - Red team, 3 - Blu team } } Spellbomb_Red { NoFixUp 1 OnSpawnOutput { Target "fierball" Action "$setowner" Param "!activator" Delay 0.01 } tf_projectile_spellfireball { "targetname" "fierball" "origin" "0 0 0" "teamnum" "2" // 2 - Red team, 3 - Blu team } } Spellbomb_Blu { NoFixUp 1 OnSpawnOutput { Target "fierball" Action "$setowner" Param "!activator" Delay 0.01 } tf_projectile_spellfireball { "targetname" "fierball" "origin" "0 0 0" "teamnum" "3" // 2 - Red team, 3 - Blu team } } RandomSpell { logic_relay { "OnSpawn" "!self,$SetOwner,@e@m_hOwnerEntity@!activator,0,-1" "OnSpawn" "random_spell_proj,PickRandomShuffle,,0.01,-1" "OnSpawn" "testrandom_spell_proj,InValue,,0.01,-1" "OnSpawn" "!self,Kill,,0.03,-1" } logic_case { "targetname" "testrandom_spell_proj" "OnDefault" "@e@m_hOwnerEntity@!parent,$DisplayTextChat,Parent of Owner,0,-1" } logic_case { "targetname" "random_spell_proj" //Fireball "OnCase01" "@e@m_hOwnerEntity@!parent,$AddItemAttribute,override projectile type extra|spellfireball,0,-1" "OnCase01" "@e@m_hOwnerEntity@!parent,$DisplayTextChat,Fireball!,0,-1" //Tesla Orb "OnCase02" "@e@m_hOwnerEntity@!parent,$AddItemAttribute,override projectile type extra|spelllightningorb,0,-1" "OnCase02" "@e@m_hOwnerEntity@!parent,$DisplayTextChat,Lightning!,0,-1" //Ball O' Bats "OnCase03" "@e@m_hOwnerEntity@!parent,$AddItemAttribute,override projectile type extra|spellbats,0,-1" "OnCase03" "@e@m_hOwnerEntity@!parent,$DisplayTextChat,Bats!,0,-1" //Pumpkin Bombs "OnCase04" "@e@m_hOwnerEntity@!parent,$AddItemAttribute,override projectile type extra|spellmirv,0,-1" "OnCase04" "@e@m_hOwnerEntity@!parent,$DisplayTextChat,Bombs!,0,-1" //Teleport "OnCase05" "@e@m_hOwnerEntity@!parent,$AddItemAttribute,override projectile type extra|spelltransposeteleport,0,-1" "OnCase05" "@e@m_hOwnerEntity@!parent,$DisplayTextChat,Teleport!,0,-1" //Meteors! "OnCase06" "@e@m_hOwnerEntity@!parent,$AddItemAttribute,override projectile type extra|spellmeteorshower,0,-1" "OnCase06" "@e@m_hOwnerEntity@!parent,$DisplayTextChat,Meteors!,0,-1" //Monoculus summon "OnCase07" "@e@m_hOwnerEntity@!parent,$AddItemAttribute,override projectile type extra|spellspawnboss,0,-1" "OnCase07" "@e@m_hOwnerEntity@!activator,$DisplayTextChat,Monoculus!,0,-1" //Skelly summon "OnCase08" "@e@m_hOwnerEntity@!activator,$AddItemAttribute,override projectile type extra|spellspawnhorde,0,-1" "OnCase08" "@e@m_hOwnerEntity@!activator,$DisplayTextChat,Skeletons!,0,-1" } } EverySpell { OnSpawnOutput { Target "omnispell" Action "$setowner" Param "!activator" Delay 0.01 } OnSpawnOutput { Target "omnispell" Action "$GetData$m_flDamage" Param "player|$DisplayTextChat|none!" Delay 0.1 } //"Healing Aura" //"Pumpkin MIRV" //"Superjump" //"Invisibility" //"Summon Monoculus" //"Fireball" tf_projectile_spellfireball { "targetname" "omnispell" "teamnum" "3" // 2 - Red team, 3 - Blu team } //"Meteor Shower" tf_projectile_spellmeteorshower { "targetname" "omnispell" "teamnum" "3" } //"Ball O' Bats" tf_projectile_spellbats { "targetname" "omnispell" "teamnum" "3" } //"Teleport", tf_projectile_spelltransposeteleport { "targetname" "omnispell" "teamnum" "3" } //"Tesla Bolt" tf_projectile_lightningorb { "targetname" "omnispell" "teamnum" "3" } //"Summon Skeletons" (but this creates just one) tf_projectile_spellspawnzombie { "targetname" "omnispell" "teamnum" "3" } } IconChanger { // OnSpawnOutput // { // Target "!activator" // Action "$SetProp$m_bUseBossHealthBar" //grabs prop for UseBossHealthBar // Delay 0 // Param "1" //sets UseBossHealthBar // } // OnSpawnOutput // { // Target "@p@!activator" // Action "$SetProp$m_iszClassIcon" // Delay 0 // Param "medic_d" //any class icon that appears on the wave bar can appear next to the health bar // } NoFixUp 1 logic_relay { "targetname" "icon_changer" "OnSpawn" "!self,Trigger,,3,-1" "OnTrigger" "!parent,$SetProp$m_iszClassIcon,soldier_bison,0.1,-1" "OnTrigger" "tf_objective_resource,$SetProp$m_iszMannVsMachineWaveClassNames,soldier_bison,0.1,-1" "OnTrigger" "bot_attributes_test_relay,Trigger,,0.1,-1" "OnTrigger" "!self,FireUser1,,5,-1" "OnUser1" "!parent,$SetProp$m_iszClassIcon,soldier_spammer,0.1,-1" "OnUser1" "tf_objective_resource,$SetProp$m_iszMannVsMachineWaveClassNames,soldier_spammer,0.1,-1" "OnUser1" "bot_attr_base,Trigger,,0.1,-1" "OnUser1" "!self,Trigger,,5,-1" } } IconChanger2 { NoFixUp 1 logic_relay { "targetname" "icon_changon" // "OnSpawn" "!self,Trigger,,3,-1" "OnTrigger" "!self,EnableRefire,,0,-1" "OnTrigger" "!activator,$SetProp$m_iszClassIcon,soldier_bison,0.1,-1" // "OnTrigger" "!self,FireUser1,,5,-1" "OnUser1" "!self,EnableRefire,,0,-1" "OnUser1" "!activator,$SetProp$m_iszClassIcon,soldier_spammer,0.1,-1" // "OnUser1" "!self,Trigger,,5,-1" } } ShowDamageBonus { NoFixUp 1 logic_relay { "targetname" "dmgbonus_checker" "OnTrigger" "!activator,$DisplayTextChat,$$='Health: ('..!activator.m_iHealth..'/'..!activator.m_iMaxHealth..')',0,-1" "OnUser1" "!activator,$DisplayTextCenter,her,0,-1" } } ChangeStatOnKill { NoFixUp 1 OnSpawnOutput { Target "!activator" Action "$SetVar$NeDmg" Param 0.5 } OnSpawnOutput { Target "!activator" Action "$AddItemAttribute" Param "$$='fire rate bonus|'..!activator.NeDmg" Delay 0.02 } logic_relay { "targetname" "test_weaken" //Initialize: set base dmg bonus to 1.5 // "OnSpawn" "!activator,$SetVar$NewDmg,1.5,0,1" "OnTrigger" "!activator,$AddItemAttribute,$$='fire rate bonus|'..!activator.NeDmg,0.02,-1" //On trigger: //Add item attribute with the start value, minus this amount. //After 0.02 seconds, set the value to the value minus this amount. "OnTrigger" "!activator,$AddItemAttribute,$$='fire rate bonus|'..(!activator.NeDmg + 0.05),0,-1" "OnTrigger" "!activator,$SetVar$NeDmg,$$=!activator.NeDmg + 0.05,0.02,-1" } } ChangeStatOnKill_Test { NoFixUp 1 //!activator OnSpawnOutput { Target "!activator" Action "$SetVar$NewDmg" Param 1.5 } OnSpawnOutput { Target "!activator" Action "$AddItemAttribute" Param "$$='fire rate bonus|'..!activator.NewDmg" Delay 0.02 } logic_relay { "targetname" "test_weaken" //Initialize: set base dmg bonus to 1.5 // "OnSpawn" "!activator,$SetVar$NewDmg,1.5,0,1" "OnTrigger" "!activator,$AddItemAttribute,$$='fire rate bonus|'..!activator.NewDmg,0.02,-1" //On trigger: //Add item attribute with the start value, minus this amount. //After 0.02 seconds, set the value to the value minus this amount. "OnTrigger" "!activator,$AddItemAttribute,$$='fire rate bonus|'..(!activator.NewDmg - 0.05),0,-1" "OnTrigger" "!activator,$SetVar$NewDmg,$$=!activator.NewDmg - 0.05,0.02,-1" } } capturezone //all three of these entities can be used to detect the flag entity, there are different outputs you can use to achieve the desired outcome { NoFixUp 1 func_capturezone { "targetname" "cap_point" "classname" "func_capturezone" "mins" "-92 -92 -92" "maxs" "92 92 92" "TeamNum" "0" //changing this number affects which team can capture, 0 for neutral (both teams can cap), 1 for spectator (same as 0), 2 for red and 3 for blue "spawnflags" "1" "OnCapTeam1" "cap_changer,Trigger,,0.2,-1" "OnCapTeam2" "cap_attack,Trigger,,0,-1" } logic_relay { "targetname" "cap_changer" //Both of these work. Latter is more vanilla, though. // "OnTrigger" "cap_point,$SetKey$OnCapTeam1,$$='redwin_relay,Trigger,,0,-1',0,-1" "OnTrigger" "cap_point,AddOutput,OnCapTeam1 redwin_relay:Trigger::0:-1,0,-1" } } sniperspot { NoFixUp 1 OnSpawnOutput { Target "func_tfbot_hint" Action Disable Delay 0.1 } OnSpawnOutput { Target "seelsnipe" Action Enable Delay 0.2 } func_tfbot_hint { "targetname" "seelsnipe" "hint" "0" //0 - sniper spot, 1 - sentry gun spot "TeamNum" "2" "StartDisabled" "0" "origin" "0 0 0" } } sniperspot_2 { NoFixUp 1 OnSpawnOutput { Target "func_tfbot_hint" Action Disable Delay 0.1 } OnSpawnOutput { Target "seelsnip" Action Enable Delay 0.2 } func_tfbot_hint { "targetname" "seelsnip" "hint" "0" //0 - sniper spot, 1 - sentry gun spot "TeamNum" "2" "StartDisabled" "0" "origin" "0 0 0" } } Teleporter_Red { OnSpawnOutput //make teleporter non solid, otherwise the bots might get stuck on it { Target "tp" Action "addoutput" Param "solid 0" Delay 0.1 } // OnSpawnOutput //set builder to parent entity // { // Target "tp" // Action "setbuilder" // Delay 0.00 // } obj_teleporter { //"model" "models/buildables/teleporter_light.mdl" "targetname" "tp" // "origin" "2158 481 277" "origin" "0 0 0" "angles" "90 0 0" "teamnum" "2" //"skin" "1" //"health" "220" "TeleportWhere" "spawnbot_mid" "solid" "0" "SolidToPlayer" "0" "DefaultAnim" "running" } } controlpoint_bot { NoFixUp 1 prop_dynamic { "model" "models/props_gameplay/cap_square_512.mdl" "targetname" "cap_base2" "solid" "6" "skin" "0" //set to 0 for neutral, 1 for red, 2 for blu "angles" "0 0 0" "origin" "0 0 0" } trigger_capture_area { "targetname" "cap_area" "classname" "trigger_capture_area" "area_cap_point" "cap_point" "area_time_to_cap" "20" //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" "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" "-256 -256 -256" "maxs" "256 256 256" "origin" "0 0 256" "spawnflags" "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 "OnCapTeam2" "cap_base2,Skin,2,0,-1" //set the first number to 0 for neutral, 1 for red, 2 for blu "OnCapTeam2" "cap_stunner,FireUser1,,0.01,-1" "OnCapTeam2" "spawnbot_hatch_def,Enable,,0,-1" "OnCapTeam2" "spawnbot_hatch_alt,Enable,,0,-1" "OnCapTeam2" "realtimer,CancelPending,,0,-1" "OnCapTeam2" "hudhint,$SetKey$message,OBJECTIVE: Capture the gate!,0,-1" } team_control_point { "targetname" "cap_point" "classname" "team_control_point" "angles" "0 0 0" "point_default_owner" "2" //this is the team that the control point will spawn in, set this number to 0 for neutral, 2 for red, 3 for blu "point_group" "0" "point_index" "4" //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" "Entrance" //this is the name of the control point that will show up in the kill feed "point_start_locked" "0" "point_warn_on_cap" "0" "point_warn_sound" "ControlPoint.CaptureWarn" "random_owner_on_restart" "0" "spawnflags" "4" "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_mannhattan" "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" "0 0 4" } team_control_point_master { "classname" "team_control_point_master" "cpm_restrict_team_cap_win" "1" //this makes it so the wave does not end when all the points are owned by a team, set this to 0 for neither team (this will end the wave on capture), 1 to restrict both teams, 2 to restrict red team winning, and 3 to restrict blu team winning "custom_position_x" "0.4" //you can change the number here to move the control points on the hud if something is blocking it, accepted values are from 0 to 1 and is expressed as a percentage of the screen from left to right, 0.5 or "-1" will center the hud "custom_position_y" "-1" "partial_cap_points_rate" "0" //this gives points on the scoreboard for partially capturing a point, it has nothing to do with the rate at which the control point is captured "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" } training_annotation { "targetname" "cap_text" "display_text" "Capture the giant!" "lifetime" "10" "origin" "0 0 50" } OnSpawnOutput { Target cap_text Action Show Delay 0.1 } OnSpawnOutput { Target cap_stunner Action Trigger Delay 0.1 } logic_relay { "targetname" "cap_stunner" "OnTrigger" "!activator,$AddCond,71,0,-1" "OnUser1" "!activator,$RemoveCond,71,0,-1" } OnSpawnOutput //very important to keep this output otherwise the control point will not function { Target cap_area Action SetControlPoint Param cap_point } OnSpawnOutput //i believe 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 owned by red or blu, it will automatically end the wave so make sure you set the restriction { Target cap_master Action RoundSpawn } } MurderTank { NoFixUp 1 logic_relay { "OnSpawn" "tank_path_blimp_4,AddOutput,OnPass !parent:DestroyIfAtCapturePoint::0:-1,0.05,-1" "OnSpawn" "tank_path_blimp_4,AddOutput,OnPass tank_death:Enable::0:-1,0,-1" "OnSpawn" "tank_path_blimp_4,AddOutput,OnPass tank_death:Disable::0.2:-1,0,-1" } trigger_hurt { "targetname" "tank_death" "damage" 100 "damagecap" 50 "damagetype" 16 //train-type damage "damagemodel" 0 "StartDisabled" 1 "mins" -105 -105 -105 "maxs" 105 105 105 "solid" 0 } } LoopTank { // OnSpawnOutput // { // Target "tank_boss" // Action "AddOutput" // Param "parentname blimp_tracktrain" // } // prop_dynamic // { // "targetname" "blimp_prop" // "skin" 1 // "DisableBoneFollowers" "1" // "model" "models/bots/boss_bot/boss_blimp.mdl" // "origin" "0 0 0" // "angles" "0 0 0" // "parentname" "blimp_tracktrain" // } // func_tracktrain // { // "targetname" "blimp_tracktrain" // "target" "blimp_track_1" // "origin" "-900 -400 500" // "mins" "-1 -1 -1" // "maxs" "1 1 1" // "bank" "3" // "height" "0" // "orientationtype" "3" // "spawnflags" "513" // "speed" "30" // "startspeed" "30" // "velocitytype" "0" // "volume" "0" // "wheels" "10" // } //Corner 1 path_track { "targetname" "blimp_track_1" "target" "blimp_track_2" "orientationtype" "0" "radius" "0" "spawnflags" "0" "origin" "-800 -400 500" } //Midway to 2 path_track { "targetname" "blimp_track_2" "target" "blimp_track_3" "orientationtype" "0" "radius" "0" "spawnflags" "0" "origin" "0 -400 500" } //Corner 2 path_track { "targetname" "blimp_track_3" "target" "blimp_track_4" "orientationtype" "0" "radius" "0" "spawnflags" "0" "origin" "800 -400 500" } //Midway to 3 path_track { "targetname" "blimp_track_4" "target" "blimp_track_5" "orientationtype" "0" "radius" "0" "spawnflags" "0" "origin" "800 0 500" } //Corner 3 path_track { "targetname" "blimp_track_5" "target" "blimp_track_6" "orientationtype" "0" "radius" "0" "spawnflags" "0" "origin" "800 400 500" } //Midway to 4 path_track { "targetname" "blimp_track_6" "target" "blimp_track_7" "orientationtype" "0" "radius" "0" "spawnflags" "0" "origin" "0 400 500" "OnPass" "player,$DisplayTextChat,Alternating path!,0,-1" "OnPass" "blimp_track_7,EnableAlternatePath,,0,-1" } //Corner 4 path_track { "targetname" "blimp_track_7" "target" "blimp_track_final" "altpath" "blimp_track_8" "orientationtype" "0" "radius" "0" "spawnflags" "0" "origin" "-800 400 500" } //Midway to 1 path_track { "targetname" "blimp_track_8" "target" "blimp_track_1" "orientationtype" "0" "radius" "0" "spawnflags" "0" "origin" "-800 0 500" } //Overshoot 4 path_track { "targetname" "blimp_track_final" "orientationtype" "0" "radius" "0" "spawnflags" "0" "origin" "0 0 500" } } RocketShoot { NoFixUp 1 // OnSpawnOutput // { // Target "rocketshooter" // Action $AddWeaponAttribute // Param "mod projectile heat seek power|75" // Delay 0.1 // } // OnSpawnOutput // { // Target "rocketshooter" // Action $AddWeaponAttribute // Param "mod projectile heat aim error|275" // Delay 0.1 // } OnSpawnOutput { Target "rocketshooter" Action $SetOwner Param !parent Delay 0.1 } logic_relay { "targetname" "firer" "spawnflags" "2" "OnSpawn" "firer,Trigger,,1.5,-1" "OnTrigger" "rocketshooter*,FireOnce,,0,-1" "OnTrigger" "rocketshooter*,FireOnce,,0.2,-1" "OnTrigger" "rocketshooter*,FireOnce,,0.4,-1" "OnTrigger" "rocketshooter*,FireOnce,,0.6,-1" "OnTrigger" "rocketshooter*,FireOnce,,0.8,-1" "OnTrigger" "firer2,Trigger,,1,-1" } logic_relay { "targetname" "firer2" "OnTrigger" "firer,Trigger,,1,-1" } tf_point_weapon_mimic { "targetname" "rocketshooter" //X+ = in front, Y+ = left, Z+ = up(?) "origin" "-35 50 850" "angles" "-50 0 0" "teamnum" "2" //red "Crits" "0" "Damage" "90" "ModelScale" "1" "SpeedMax" "440" "SpeedMin" "440" "SplashRadius" "144" "SpreadAngle" "5" "WeaponType" "0" "$weaponname" "Homing Launcher" } } JarateOnDeath { KeepAlive 1 OnParentKilledOutput { Target jarater Action ForceSpawnAtEntityOrigin Param !parent Delay -1 } OnParentKilledOutput { Target jarater Action Kill Delay 0.05 } env_entity_maker { "targetname" "jarater" "EntityTemplate" "Jarate" } } Jarate { KeepAlive 1 tf_projectile_jar { "origin" "0 0 0" "teamnum" "3" // 2 - Red team, 3 - Blu team } } PNGch { vgui_screen { "panelname" "screen_obj_dispenser_red" "targetname" "captain_pngch" "overlaymaterial" "hud/leaderboard_class_heavy_chief" //_z" "width" "128" "height" "128" "angles" "0 90 -90" "origin" "0 -120 45" } } //Works as follows: //- Wave starts with EnemyCount //- Change enemycount to final number (if needed: through expression -> var, from ClassCounts // - Wave progress bar won't update til icons get shown! //- Set icons to show up! WaveStartIconChanger { NoFixUp 1 logic_relay { "targetname" "midwave_icon_changer" "OnSpawn" "tf_objective_resource,$SetVar$MaxEnemyCount,24,0,-1" //change as required "OnTrigger" "tf_objective_resource,$SetProp$m_nMannVsMachineWaveEnemyCount,$$=tf_objective_resource.MaxEnemyCount,0,-1" "OnTrigger" "tf_objective_resource,$SetProp$m_nMannVsMachineWaveClassFlags$1,1,0.5,-1" "OnTrigger" "tf_objective_resource,$SetProp$m_nMannVsMachineWaveClassFlags$2,1,0.5,-1" "OnTrigger" "tf_objective_resource,$SetProp$m_nMannVsMachineWaveClassFlags$3,1,0.5,-1" "OnTrigger" "tf_objective_resource,$SetProp$m_nMannVsMachineWaveClassFlags$4,1,0.5,-1" "OnTrigger" "tf_objective_resource,$SetProp$m_nMannVsMachineWaveClassFlags$5,1,0.5,-1" "OnTrigger" "tf_objective_resource,$SetProp$m_nMannVsMachineWaveClassFlags$6,1,0.5,-1" "OnTrigger" "tf_objective_resource,$SetProp$m_nMannVsMachineWaveClassFlags$7,1,0.5,-1" "OnTrigger" "tf_objective_resource,$SetProp$m_nMannVsMachineWaveClassFlags$8,1,0.5,-1" "OnTrigger" "tf_objective_resource,$SetProp$m_nMannVsMachineWaveClassFlags$9,1,0.5,-1" "OnTrigger" "tf_objective_resource,$SetProp$m_nMannVsMachineWaveClassFlags$10,1,0.5,-1" "OnTrigger" "tf_objective_resource,$SetProp$m_nMannVsMachineWaveClassFlags$11,1,0.5,-1" "OnTrigger" "tf_objective_resource,$SetProp$m_nMannVsMachineWaveClassFlags2$0,1,0.5,-1" "OnTrigger" "tf_objective_resource,$SetProp$m_nMannVsMachineWaveClassFlags2$1,1,0.5,-1" } } BotCounter { NoFixUp 1 math_counter { "targetname" "bot_tracker" "OutValue" "tf_objective_resource,$SetProp$m_nMannVsMachineWaveClassCounts,,0.05,-1" "startvalue" "$$=tf_objective_resource.m_nMannVsMachineWaveClassCounts$1" "min" "0" "max" "99" } } BotTracker { KeepAlive 1 OnParentKilledOutput { Target "bot_tracker" Action "Subtract" Param 1 } OnParentKilledOutput { Target "!self" Action "Kill" Delay 0.1 } } ColonelNuke { KeepAlive 1 OnSpawnOutput { Target nuke_mimic Action $SetOwner Param !activator Delay 0 } OnParentKilledOutput { Target nuke_mimic Action FireOnce Delay 0.017 } OnParentKilledOutput { Target nuke_mimic Action Kill Delay 0.5 } tf_point_weapon_mimic { "targetname" "nuke_mimic" "$weaponname" "The Iron Bomber" "angles" "90 0 0" } } CrateTank { KeepAlive 1 OnParentKilledOutput { Target "tank_crate_prop" Action "$SetLocalOrigin" Param "0 0 -96" Delay -1 } info_target { "targetname" "tank_crate_target" "origin" "0 0 48" } prop_dynamic { "targetname" "tank_crate_prop" "origin" "0 0 96" "angles" "-90 0 0" "model" "models/props_mvm/barrel_crate.mdl" "solid" "6" } info_particle_system { "targetname" "tank_crate_particle" "effect_name" "woodSplinter_standee" "start_active" 0 } } CrateTankTeleport { OnSpawnOutput { Target "!activator" Action "$TeleportToEntity" Param "tank_crate_target" Delay 0.05 } OnSpawnOutput { Target "tank_crate_prop" Action "Kill" Delay 0.05 } OnSpawnOutput { Target "tank_crate_particle" Action "Start" Delay 0.05 } OnSpawnOutput { Target "tank_crate_particle" Action "Stop" Delay 2 } OnSpawnOutput { Target "tank_crate_particle" Action "Kill" Delay 2.03 } } CanteenIfClipSizeIsEmpty { logic_relay { "targetname" "clipchecker_relay" "OnTrigger" "@e@m_hMyWeapons$0@!activator,$GetProp$m_iClip1,clipchecker_compare|SetValueCompare,0,-1" "OnUser1" "!activator,$GetItemAttribute,Battery Canteens|powerup charges|!activator|$SetVar$CanteenCount|1,0,-1" } logic_compare { "targetname" "clipchecker_compare" "comparevalue" "0" "OnEqualTo" "!activator,$ChangeAttributes,$$=?(!activator.CanteenCount > 0,'UseCanteen',''),-1,-1" "OnEqualTo" "!activator,$SetVar$CanteenCount,$$=?(!activator.CanteenCount >= 0, !activator.CanteenCount - 1, -1),0.03,-1" } } //Bot: // EventChangeAttributes // { // Default // { // FireInput // { // Target "clipchecker_relay" // Action Trigger // Delay 5 // Cooldown 0.2 // IfSeeTarget 1 // } // } // UseCanteen // { // FireWeapon // { // Delay 0.01 // Repeats 1 // Type "Action" // } // Item "Battery Canteens" // ExtAttr SuppressCanteenUse // ItemAttributes // { // ItemName "Battery Canteens" // "refill_ammo" 1 // "powerup charges" 1 // } // } // } DropTankSetup { NoFixUp 1 path_track { "targetname" "tank_path_air_1" "origin" "340 -235 654" //origin "target" "tank_path_a_2" "OnPass" "drop_tank0_spawn,ForceSpawn,,0,-1" "OnPass" "!activator,SetSpeed,0,0,-1" "OnPass" "drop_chute0,SetAnimation,deploy,0.01,-1" } path_track { "targetname" "drop_path" "origin" "340 -235 650" //origin "target" "drop_path1" "OnPass" "!activator,SetSpeed,75,0.1,-1" } path_track { "targetname" "drop_path1" "origin" "832 -192 -132" //origin } } drop_tank0_spawn { NoFixUp 1 func_tracktrain { "targetname" "drop_tank0" "target" "drop_path" "origin" "340 -235 658" //8 above drop_path "mins" "-32 -32 -16" "maxs" "32 32 16" "spawnflags" 521 //No pitch (X-rot), Passable, Is unblockable by player "height" "0" "startspeed" 75 "speed" 75 } func_physbox { "targetname" "drop_phys0" "parentname" "drop_tank0" "origin" "340 -235 666" "mins" "-96 -80 -8" "maxs" "96 80 8" } prop_dynamic { "targetname" "drop_chute0" "model" "models/props_aircrap/tank_chute.mdl" "origin" "340 -235 658" "parentname" "drop_tank0" "defaultanim" "idle" } prop_dynamic { "targetname" "drop_test" "model" "models/props_combine/headcrabcannister01a.mdl" "origin" "340 -235 658" "parentname" "drop_tank0" } } droptanktest { func_physbox { "targetname" "drop_phys0" "origin" "340 -235 666" "mins" "-96 -80 -8" "maxs" "96 80 8" } prop_dynamic { "targetname" "drop_test" "model" "models/props_combine/headcrabcannister01a.mdl" "origin" "340 -235 658" } } //Aesthetics // plane0_spawn // { // prop_dynamic // { // "targetname" "plane0_prop" // } // } } ItemAttributes { ItemName "The Liberty Launcher" "projectile speed increased" 1 } PlayerShootTemplate { Name AMON_ForceSpawner AttachToProjectile 1 ItemName "A.M.O.N. Orbital Strike Controller" } PlayerShootTemplate { Name ActivatorTest Speed 0 AttachToProjectile 1 OverrideShoot 0 ItemName "The Scorch Shot" } PlayerShootTemplate { Name ColonelNuke Speed 0 AttachToProjectile 1 OverrideShoot 0 ItemName "The Liberty Launcher" } PlayerShootTemplate { Name Spellbomb_Red Speed 1000 Offset "0 0 50" AttachToProjectile 0 OverrideShoot 1 ItemName "The Black Box" } PlayerShootTemplate { Name Spellbomb_Red Speed 1000 Offset "0 50 50" AttachToProjectile 0 OverrideShoot 1 ItemName "The Black Box" } PlayerShootTemplate { Name Spellbomb_Red Speed 1000 Offset "0 -50 50" AttachToProjectile 0 OverrideShoot 1 ItemName "The Black Box" } PlayerItemEquipSpawnTemplate { Name "vsaw_equipped" ItemName "The Vita-saw" } PlayerItemEquipSpawnTemplate { Name "ice_equipped" ItemName "The Spy-cicle" } PlayerItemEquipSpawnTemplate { Name "ChangeStatOnKill_Test" ItemName "The Brass Beast" } PlayerShootTemplate { Name RandomSpell AttachToProjectile 1 ItemName "The Flare Gun" } PlayerShootTemplate { Name PumpkinShot Speed 925 OverrideShoot 1 ItemName "The Scottish Resistance" } PlayerSpawnTemplate { Name "SpyOutputs" Class Spy } BuildingSpawnTemplate { Name "DestroySelf" BuildingType "Sapper" } CustomWeapon { "amon_wep_mimic" { OriginalItemName "TF_WEAPON_ROCKETLAUNCHER" "custom projectile model" "models/empty.mdl" "explosion particle" "~drg_cow_explosioncore_normal_blue" "projectile trail particle" "~drg_cow_rockettrail_charged_blue" "projectile speed increased" 1.8 "blast radius increased" 1.2 "projectile no deflect" 1 //"damage bonus" 1.25 "no damage falloff" 1 "custom weapon fire sound" "=75|weapons/cow_mangler_main_shot.wav" "custom impact sound" "=75|weapons/cow_mangler_explosion_charge_01.wav" } "A.M.O.N. Orbital Strike Controller" { OriginalItemName "Mad Milk" "use original class player animations" 1 "use original class weapon animations" 1 "custom item model" "models/weapons/c_models/c_builder/c_builder.mdl" "custom projectile model" "models/empty.mdl" "custom hit sound" "common/null.wav" "custom impact sound" "common/null.wav" "projectile trail particle" "~env_snow_stormfront_mist" "override projectile type" 13 "energy weapon penetration" 1 "projectile lifetime" 5 "dmg penalty vs players" 0 "no damage falloff" 1 "no explosion particles" 1 "projectile speed decreased" 0.7 "projectile no deflect" 1 "projectile gravity" 1 "penetrate teammates" 1 "mult projectile scale" 0.001 "special item description" "Summons 10 orbital strike markers in the direction you're looking" "special item description 2" "Cannot be used indoors" "centerfire projectile" 1 "cannot be upgraded" 1 "set item tint RGB" 1315860 } "Ball Bomber" { OriginalItemName "The Iron Bomber" "damage penalty" 0.5 "projectile trail particle" "stunballtrail_blue" "no self blast dmg" 2 "custom kill icon" "iron_bomber" } } ExtraLoadoutItems { Engineer { Secondary "A.M.O.N. Orbital Strike Controller" } } ItemAttributes { ItemName "The Spy-cicle" "cannot disguise" 1 "cannot be upgraded" 1 "special item description" "When equipped: turns your revolver into a mini shotgun! +4 bullets per shot, -30% damage, 75% slower fire rate, double spread." } ItemAttributes { ItemName "The Brass Beast" "fire input on kill" "test_weaken^Trigger" "special item description" "Kills increase your fire rate!" } ItemAttributes { ItemName "The Cow Mangler 5000" "fire input on hit" "dmgbonus_checker^FireUser1" "fire input on hit" "!activator^$AddPlayerAttribute^health regen|10" "special item description" "On hit target: fires an input for health regen." } ItemAttributes { ItemName "The Direct Hit" "fire input on hit" "dmgbonus_checker^Trigger" "fire input on hit" "!activator^$GetItemAttribute^0|damage bonus|!activator|$DisplayTextChat|0" "special item description" "On hit target: shows damage bonus." } ItemAttributes { ItemName "The Flare Gun" // "override projectile type extra" "jarate" "fire rate bonus" 0.1 "ammo regen" 1 "maxammo secondary increased" 10 } ExtendedUpgrades { //Cap of 6 ups, 30% fire rate. dps { Name "Speemd,, FASTE.!" Description "+25% move speed." Attribute "provide on active" Cap 1 Increment 1 Cost 50 AllowedWeapons { Slot "Primary" } SecondaryAttributes { "move speed bonus" 0.25 } } dps { Name "Power Module" Description "+25% damage, +5% fire rate." Attribute "damage bonus" Cap 2.5 Increment 0.25 Cost 50 AllowedWeapons { Slot "Primary" } AllowedMinWave 1 //The wave at which the upgrade is enabled SecondaryAttributes { "fire rate bonus" -0.05 } } critlowhp { Name "Emergency Crits" Description "Always crit below 50% health." Attribute "mult crit when health is below percent" Cap 0.5 Increment -0.25 Cost 0 AllowedWeapons { Slot "Primary" Slot "Secondary" } AllowedMinWave 1 //The wave at which the upgrade is enabled } //Not you, Widowmaker: reload rate. //Cap of 4 ups, 20% fire rate. bullets { Name "Restock Module" Description "+20% reload rate, +5% fire rate." Attribute "faster reload rate" Cap 0.2 Increment -0.2 Cost 50 AllowedWeapons { Slot "Primary" } DisallowedWeapons { ItemName "The Widowmaker" } AllowedMinWave 1 //The wave at which the upgrade is enabled SecondaryAttributes { "fire rate bonus" -0.05 } } //RR: Headshots rangerhs { Name "Headshot Module" Description "Deal crits on headshot." Attribute "can headshot" Cap 1 Increment 1 Cost 100 AllowedMinWave 2 AllowedWeapons { ItemName "The Rescue Ranger" } } //Pomson: weak homing pomsonhom { Name "Heat-seeker Module" Attribute "mod projectile heat seek power" Description "Particle homes in on enemies stronger, longer, and in a wider arc." Cap 150 Increment 50 Cost 50 AllowedMinWave 2 AllowedWeapons { ItemName "The Pomson 6000" } SecondaryAttributes { "mod projectile heat seek error" 15 "mod projectile heat seek time" 2 } } upgradetest { Name "Techno Terror" Attribute "faster reload rate" Cap 0.1 Increment -0.45 Cost 100 description "45% faster reload rate. 1 tick: bullets. 2 ticks: rockets." AllowedWeapons { ItemName "The Pomson 6000" } AllowedMinWave 1 //The wave at which the upgrade is enabled SecondaryAttributes { "override projectile type" 1 } } upgradetest2 { Name "Tank repair" Attribute "fire rate bonus" Cap 0.1 Increment -0.45 Cost 100 description "45% faster fire rate. -1x damage vs tanks." AllowedWeapons { Slot "Melee" } AllowedMinWave 1 //The wave at which the upgrade is enabled SecondaryAttributes { "mult dmg vs tanks" -1 } } sentrytarget { Name "Unnecessary Target" Attribute "damage bonus bullet vs sentry target" Cap 2 Increment 1 Cost 100 description "Increase damage on sentry target...for your sentry." AllowedWeapons { Slot "PDA" } AllowedMinWave 1 //The wave at which the upgrade is enabled } } CustomWeapon //Allows you to use an alias for items with custom attributes { "Ulti Wrench" // The name you would use in Item key in TFBot { OriginalItemName "Golden Wrench" // The item used as a base "special item description" "Magnetic: cannot use other weapons." "provide on active" 1 "critboost on kill" 1 "is australium item" 1 "heal on kill" 125 "dmg taken increased" 0.35 "damage bonus" 1.55 "building cost reduction" 14 "move speed bonus" 1.35 "disable weapon switch" 1 } "Cluster Shot" { OriginalItemName "The Iron Bomber" "projectile spread angle penalty" 10 "projectile speed decreased" 0.1 } "Caber Toss" { OriginalItemName "TF_WEAPON_GRENADELAUNCHER" "custom projectile model" "models/workshop/weapons/c_models/c_caber/c_caber.mdl" "projectile speed decreased" 0.9 "grenade explode on impact" 1 "damage penalty" 0.75 "custom kill icon" "ullapool_caber_explosion" } "Homing Launcher" { OriginalItemName "TF_WEAPON_ROCKETLAUNCHER" "mod projectile heat seek power" 95 "mod projectile heat aim error" 360 "mod projectile heat aim time" 1.5 //more imperfect aim "mod projectile heat no predict target speed" 1 "projectile speed decreased" 0.3 "projectile acceleration" 900 "projectile acceleration start time" 1 "projectile acceleration time" 0.5 "blast dmg to self increased" 0 "penetrate teammates" 1 "projectile trail particle" eyeboss_projectile "projectile spread angle penalty" 15 } "Inception Launcher" { OriginalItemName warbird_rocketlauncher_warhawk "custom projectile model" "models/weapons/c_models/c_rocketlauncher/c_rocketlauncher.mdl" "custom weapon fire sound" "MVM.GiantSoldierRocketShoot" "projectile speed decreased" 0.75 "damage penalty" 0 "projectile acceleration" 110 "projectile acceleration time" 4 "projectile spread angle penalty" 3 } "Back Rocket" { OriginalItemName "TF_WEAPON_ROCKETLAUNCHER" "projectile gravity" 400 "projectile speed decreased" 0.6 "blast dmg to self increased" 0 "penetrate teammates" 1 // "projectile trail particle" eyeboss_projectile "custom weapon fire sound" "mvm/giant_soldier/giant_soldier_rocket_shoot.wav" } "Meteor Launcher" { OriginalItemName "The Flare Gun" //damage type: fire "override projectile type" 2 "projectile spread angle penalty" 4 "projectile trail particle" "spell_fireball_small_blue" "custom projectile model" "models/weapons/w_models/w_drg_ball.mdl" "explosion particle" "spell_fireball_tendril_parent_blue" "custom impact sound" "misc\halloween\spell_fireball_impact.wav" "custom kill icon" "spellbook_fireball" "projectile speed decreased" 0.5 "projectile gravity" 800 "no damage falloff" 1 "damage bonus" 3.33 } "Surprise Nuke" { OriginalItemName "The Loose Cannon" "grenade launcher mortar mode" 0 "override projectile type" 3 //regular 'nade "fuse bonus" 0.5 "damage bonus" 3 "use large smoke explosion" 1 "blast radius increased" 2.5 "projectile speed decreased" 0.01 "projectile gravity" 400 "grenade explode on impact" 1 } "Explosive Emcee Bomber" { "custom kill icon" "purgatory" "custom item model" "models/workshop/weapons/c_models/c_caber/c_caber.mdl" "custom weapon fire sound" "Weapon_BatSaber.HitWorld" "Blast radius increased" 5 "explosion particle" "drg_cow_explosion_sparkles_charged_blue" "fuse bonus" 4.5 "damage bonus" 1.5 "projectile trail particle" "teleported_mvm_bot" "Projectile speed increased" 0.001 "projectile gravity native" 0.1 } "Bot Weapon: Fireball" { "custom kill icon" "spellbook_fireball" "override projectile type extra" "spellfireball" "damage penalty" 0.65 //65 damage base "projectile speed decreased" 0.5 "projectile acceleration" 1020 "projectile acceleration time" 0.5 "projectile acceleration start time" 0.5 } } ExtraLoadoutItems // Extra loadout items available after typing !missionitems in chat { AllowEquipOutsideSpawn 0 // Allow equipping items outside spawn Engineer // Player Class { Melee // Extended syntax, Item slot to use { Item "Ulti Wrench" // Item name, custom weapon names are available Cost 200 // The cost of the weapon (default: 0) AllowedMinWave 1 //wave at which weapon is enabled (default: 1) AllowedMaxWave 55 //max wave at which weapon is enabled (default: infinite) AllowRefund 1 //Allow refunding of the weapon (default: 1) OnApply { Output "!activator,$WeaponSwitchSlot,2,0.1" } } } } SpawnTemplate "CanteenIfClipSizeIsEmpty" SpawnTemplate "attribute_change_test" SpawnTemplate "attribute_change_parent_test" SpawnTemplate "ShowDamageBonus" SpawnTemplate "ChangeStatOnKill_Test" SpawnTemplate { Name "sniperspot" Origin "1018 688 -192" } SpawnTemplate { Name "sniperspot_2" Origin "1018 -644 -192" } Wave //WAVE 1 { StartWaveOutput { Target wave_start_relay Action Trigger } DoneOutput { Target wave_finished_relay Action Trigger } WaveSpawn //WAVE 1 { Name "Test 1" Where spawnbot WaitBetweenSpawns 5 TotalCount 1 MaxActive 1 SpawnCount 1 TotalCurrency 0 TFBot { Class Heavy WeaponRestrictions MeleeOnly Attributes IgnoreFlag Attributes IgnoreEnemies BehaviorModifiers Push Health 100000 CharacterAttributes { "damage force reduction" 0 "move speed bonus" 0.7 } } } WaveSpawn //WAVE 1 { Name "Test 1" Where spawnbot WaitBetweenSpawns 5 TotalCount 1 MaxActive 1 SpawnCount 1 TotalCurrency 0 Support 1 TFBot { Class Scout WeaponRestrictions MeleeOnly Attributes IgnoreFlag Attributes IgnoreEnemies BehaviorModifiers Push Health 100 CharacterAttributes { "damage force reduction" 0 "move speed bonus" 0.5 } } } WaveSpawn //WAVE 1 { Name "Test 2" Where "spawnally" WaitBetweenSpawns 5 TotalCount 1 MaxActive 1 SpawnCount 1 TotalCurrency 0 Support Limited TFBot { Class Soldier ClassIcon soldier_buff_ally Item "The Buff Banner" Attributes SpawnWithFullCharge Attributes UseBossHealthBar SpawnTemplate IconChanger WeaponRestrictions MeleeOnly CharacterAttributes { "increase buff duration" 0.5 } Action Idle AddCond { Name "TF_COND_REPROGRAMMED" Delay 0 } } } WaveSpawn //WAVE 1 { Name "Test 2" Where "spawnally" WaitBetweenSpawns 5 TotalCount 1 MaxActive 1 SpawnCount 1 TotalCurrency 0 Support Limited TFBot { Class Sniper WeaponRestrictions PrimaryOnly Item "The Razorback" Action Idle AddCond { Name "TF_COND_REPROGRAMMED" Delay 0 } } } WaveSpawn //WAVE 1 { Name "test" Where spawnbot TotalCount 1 MaxActive 1 SpawnCount 1 TFBot { Class Heavyweapons Name "W.A.L.L." Skill Expert Attributes MiniBoss Attributes IgnoreFlag Attributes SuppressFire BehaviorModifiers Push Classicon heavy_wall WeaponRestrictions MeleeOnly Health 10000 Maxvisionrange 1 Item "The Purity Fist" Item "Bone-Cut Belt" Item "Steel-Toed Stompers" Item "Der Maschinensoldaten-Helm" Item "Employee Badge A" ItemAttributes { ItemName "TF_WEAPON_FISTS" "fire rate bonus" 9999 "damage bonus" 2 } ItemModel { ItemName "Employee Badge A" Model "models/workshop/player/items/heavy/sbox2014_war_helmet_s1/sbox2014_war_helmet_s1.mdl" } ItemAttributes { ItemName "The Purity Fist" "attach particle effect" 3042 } CharacterAttributes { //"dmg taken from fire reduced" 0.25 //"dmg taken from blast reduced" 0.25 //"dmg taken from bullets reduced" 0.25 "move speed bonus" 0.25 "damage force reduction" 0 "airblast vulnerability multiplier" 0 "override footstep sound set" 2 "health regen" 1000 //"attach particle effect" 3042 } } } } Wave //WAVE 2 { ItemAttributes { ItemName "Ulti Wrench" "critboost on kill" 3 } StartWaveOutput { Target wave_start_relay Action Trigger } DoneOutput { Target wave_finished_relay Action Trigger } SpawnTemplate TankSpinner SpawnTemplate LoopTank WaveSpawn //WAVE 2 { Name "Tanktest" WaitBetweenSpawns 10 TotalCount 1 SpawnCount 1 Totalcurrency 69 Tank { Health 10000 Speed 30 Name "fury_target_tank" StartingPathTrackNode "blimp_track_1" DisableSmokestack 1 Classicon blimp2_lite Scale 1.5 Skin 1 Model "models/bots/boss_bot/boss_blimp.mdl" Gravity 0 //prevents it from yeeting itself down RotatePitch 0 //prevents it from turning upwards DisableTracks 1 //prevents its ghooooost tracks from making noise DisableChildModels 1 //HOPEFULLY prevents the bomb from sticking out OnKilledOutput { Target tank_died_relay Action Trigger } OnBombDroppedOutput { Target bomb_dropped_relay Action Trigger } } } WaveSpawn //WAVE 2 { Name "test" WaitForAllDead "Tanktest" TotalCount 6 MaxActive 6 SpawnCount 1 // WaitBetweenSpawnsAfterDeath 2 WaitBetweenSpawns 0.1 Where spawnbot TFBot { Class Soldier Item "The Equalizer" Attributes SuppressFire Attributes IgnoreEnemies Attributes IgnoreFlag WeaponRestrictions MeleeOnly Tag bot_repair ItemAttributes { ItemName "The Equalizer" "is invisible" 1 "move speed bonus" 2 } InterruptAction // Stop current bot ai and force the bot to move to a location { Target "tankshere" // Entity / bot / class name as an alternative. Also: RandomEnemy, ClosestPlayer // KillAimTarget 1 / Attack aim target (Default: 0) WaitWhenDone 1 Delay 0.1 // Time before the first task starts (Default: 10) Repeats 0 // How many times should bot do the task in total (Default: 0 - Infinite) Cooldown 5 //Time between each task (Default: 10) Duration 6 // How long should the ai be interrupted } } } WaveSpawn //WAVE 2 { WaitForAllDead "Tanktest" WaitBetweenSpawns 10 TotalCount 1 SpawnCount 1 Totalcurrency 69 Tank { Health 320 Speed 75 Name "tankboss" Skin 1 StartingPathTrackNode "tank_path_seel_1" SpawnTemplate repairtank SpawnTemplate tankspeed_1 OnKilledOutput { Target tank_died_relay Action Trigger } OnBombDroppedOutput { Target bomb_dropped_relay Action Trigger } } } WaveSpawn { WaitForAllDead "test" WaitBetweenSpawns 4 TotalCount 1 SpawnCount 1 Totalcurrency 69 Tank { Health 420 Speed 30 Name "Tank" SpawnTemplate ParentingSpin Skin 1 StartingPathTrackNode "tank_path_seelbop_1" OnKilledOutput { Target tank_died_relay Action Trigger } OnBombDroppedOutput { Target bomb_dropped_relay Action Trigger } } } } Wave //WAVE 3 { StartWaveOutput { Target wave_start_relay Action Trigger } DoneOutput { Target wave_finished_relay Action Trigger } SpawnTemplate giant_intel WaveSpawn //WAVE 3 { Name "test" Where spawnbot_mid WaitBeforeStarting 0.9 TotalCount 1 MaxActive 1 SpawnCount 1 FirstSpawnOutput { Target "bot_attributes_test_relay" Action Trigger } TFBot { Class Demoman Skill Hard Item "The Bolted Bushman" WeaponRestrictions PrimaryOnly Attributes IgnoreFlag Attributes SuppressFire Attributes DisableDodge Attributes MiniBoss Action Mobber ItemAttributes { ItemName "The Bolted Bushman" "attachment name" "head" "attachment scale" 1.25 "attachment offset" "4 0 -110" } // AddAttribute // { // Item "The Bolted Bushman" // Name "attachment offset" // Value "4 0 -110" // Delay 0.01 // Repeats 1 // } // AddAttribute // { // Item "The Bolted Bushman" // Name "attachment scale" // Value "1.25" // Delay 0.01 // Repeats 1 // } CharacterAttributes { "move speed penalty" 0.5 } } } WaveSpawn //WAVE 3 { Name "test" Where spawnbot TotalCount 1 MaxActive 1 SpawnCount 1 FirstSpawnOutput { Target "bot_attributes_test_relay" Action Trigger } TFBot { Class Scout Name "Cool Soda Boy" Health 4 ClassIcon scout_bonk Attributes SuppressFire WeaponRestrictions MeleeOnly CharacterAttributes { "health regen" -1 } } } WaveSpawn //WAVE 3 { Name "test" Where spawnbot TotalCount 1 MaxActive 1 SpawnCount 1 TFBot { Class Heavyweapons Name "Cool Soda Man" Health 420 ClassIcon scout_bonk EventChangeAttributes { Default { Skill Easy BehaviorModifiers Push Attributes SuppressFire Attributes IgnoreFlag WeaponRestrictions MeleeOnly Item "Summer Shades" Item "Bonk! Atomic Punch" ItemAttributes { ItemName "Summer Shades" "set item tint RGB" 5801378 } CharacterAttributes { "move speed bonus" 5.0 "deploy time increased" 0.5 "dmg taken increased" 0.2 "health regen" 1 } } Test { Skill Easy BehaviorModifiers Push Attributes IgnoreFlag Attributes SuppressFire WeaponRestrictions PrimaryOnly Item "Summer Shades" Item "Bonk! Atomic Punch" ItemAttributes { ItemName "Summer Shades" "set item tint RGB" 5801378 } CharacterAttributes { "move speed bonus" 5.0 "deploy time increased" 0.5 "dmg taken increased" 0.2 "health regen" 1 } } } } } WaveSpawn //WAVE 3 { Name "test" Where spawnbot TotalCount 1 MaxActive 1 SpawnCount 1 // DoneOutput // { // Target bot_attributes_test_relay // Action Trigger // } TFBot { Class Heavyweapons Name "Cool Soda Man" Health 420 ClassIcon scout_bonk EventChangeAttributes { Default { Skill Easy BehaviorModifiers Push Attributes SuppressFire Attributes IgnoreFlag WeaponRestrictions MeleeOnly Item "Summer Shades" Item "Bonk! Atomic Punch" ItemAttributes { ItemName "Summer Shades" "set item tint RGB" 5801378 } CharacterAttributes { "move speed bonus" 5.0 "deploy time increased" 0.5 "dmg taken increased" 0.2 "health regen" 1 } } Test { Skill Easy BehaviorModifiers Push Attributes IgnoreFlag Attributes SuppressFire WeaponRestrictions PrimaryOnly Item "Summer Shades" Item "Bonk! Atomic Punch" ItemAttributes { ItemName "Summer Shades" "set item tint RGB" 5801378 } CharacterAttributes { "move speed bonus" 5.0 "deploy time increased" 0.5 "dmg taken increased" 0.2 "health regen" 1 } } } } } } Wave //WAVE 4 { StartWaveOutput { Target wave_start_relay Action Trigger } DoneOutput { Target wave_finished_relay Action Trigger } WaveSpawn { FirstSpawnOutput { Target player Action RunScriptCode Param " self.SetPlayerClass(6); " } } WaveSpawn //WAVE 4 { Name "Trig2" WaitForAllDead "Trig" Where spawnbot_mid_2 TotalCount 1 MaxActive 1 SpawnCount 1 TFBot { Name "Firestorm" Class Sniper Item "The Hitman's Heatmaker" Item "The Cleaner's Carbine" Health 265 Scale 9 Skill Expert Attributes MiniBoss Attributes SuppressFire Attributes IgnoreFlag Attributes UseBossHealthBar ClassIcon sniper_blast Tag bot_giant UseCustomModel "models/bots/sniper_boss/bot_sniper_boss.mdl" FireWeapon //makes them not do dumb aiming :> { Delay 0 Type "Primary" IfSeeTarget 1 Duration 0.1 Cooldown 0.35 } WeaponSwitch { Delay 1 Cooldown 3 Repeats 0 Type "Primary" IfHealthAbove 200 } WeaponSwitch { Delay 1 Cooldown 1 Repeats 0 Type "Secondary" IfHealthBelow 200 } ShootTemplate //Shoot defined point template. Template is spawned at bot position in looking direction, forward velocity being applied to spawned entities { Name Spellbomb_Blu //Name of the template Speed 1500 //Velocity of the spawned objects (Default: 1000) Offset "0 0 0" //Offset from the bot shooting position (Default: 0 0 0) OverrideShoot 1 Spread 0 ItemName "The Hitman's Heatmaker" } ShootTemplate //Shoot defined point template. Template is spawned at bot position in looking direction, forward velocity being applied to spawned entities { Name Spellbomb_Blu //Name of the template Speed 600 //Velocity of the spawned objects (Default: 1000) Offset "0 0 0" //Offset from the bot shooting position (Default: 0 0 0) OverrideShoot 1 Spread 0.2 ItemName "The Cleaner's Carbine" } ShootTemplate //Shoot defined point template. Template is spawned at bot position in looking direction, forward velocity being applied to spawned entities { Name Spellbomb_Blu //Name of the template Speed 1000 //Velocity of the spawned objects (Default: 1000) Offset "0 0 20" //Offset from the bot shooting position (Default: 0 0 0) OverrideShoot 1 Spread 0.8 ItemName "The Cleaner's Carbine" } ShootTemplate //Shoot defined point template. Template is spawned at bot position in looking direction, forward velocity being applied to spawned entities { Name Spellbomb_Blu //Name of the template Speed 1200 //Velocity of the spawned objects (Default: 1000) Offset "0 0 40" //Offset from the bot shooting position (Default: 0 0 0) OverrideShoot 1 Spread 3 ItemName "The Cleaner's Carbine" } ItemAttributes { ItemName "The Hitman's Heatmaker" "faster reload rate" 0.2 } ItemAttributes { ItemName "The Cleaner's Carbine" "fire rate bonus" 0.5 "reload time increased" 2 "auto fires full clip" 1 "auto fires when full" 1 } CharacterAttributes { "move speed bonus" 0.01 "health regen" 16 "no_jump" 1 "damage force reduction" 0 "airblast vulnerability multiplier" 0 "override footstep sound set" 6 } } } WaveSpawn //WAVE 4 { Name "Trig" Where spawnbot_mid_2 TotalCount 4 MaxActive 1 SpawnCount 1 TFBot { Class Scout Skill Expert Health 5 Action Mobber Attributes IgnoreFlag Attributes DisableDodge AimLeadProjectileSpeed 3000 CharacterAttributes { "damage penalty" 0 } EventChangeAttributes { Default { InterruptAction { Target "target_blu_front" Delay 0.1 Cooldown 1 Duration 1.1 } } Mid { InterruptAction { Target "target_blu_mid" Delay 0.1 Cooldown 1 Duration 1.1 } } Base { InterruptAction { Target "target_blu_base" Delay 0.1 Cooldown 1 Duration 1.1 } } } } } WaveSpawn //WAVE 4 { Name "Target" Where spawnbot_mid TotalCount 1 MaxActive 1 SpawnCount 1 TFBot { Class Soldier Name "TARGET 1" Health 50 EventChangeAttributes { Default { Attributes IgnoreEnemies Attributes IgnoreFlag WeaponRestrictions MeleeOnly } Mid { Attributes IgnoreEnemies Attributes IgnoreFlag WeaponRestrictions SecondaryOnly } Base { Attributes IgnoreEnemies Attributes IgnoreFlag WeaponRestrictions PrimaryOnly } } } } WaveSpawn //WAVE 4 { Name "Target2" Where spawnbot_mid TotalCount 1 MaxActive 1 SpawnCount 1 DoneOutput { Target bot_attr_mid Action Trigger } TFBot { Class Demoman Name "TARGET 2" Health 50 Attributes IgnoreEnemies Attributes IgnoreFlag WeaponRestrictions MeleeOnly InterruptAction { Target "target_blu_mid" Delay 0.1 Cooldown 1 Duration 1.1 } } } WaveSpawn //WAVE 4 { Name "Target3" WaitForAllDead "Target2" Where spawnbot_mid TotalCount 1 MaxActive 1 SpawnCount 1 DoneOutput { Target bot_attr_base Action Trigger } TFBot { Class Pyro Name "TARGET 3" Health 50 Attributes IgnoreEnemies Attributes IgnoreFlag WeaponRestrictions MeleeOnly InterruptAction { Target "target_blu_base" Delay 0.1 Cooldown 1 Duration 1.1 } } } WaveSpawn //WAVE 4 { Name "Targeter" WaitForAllDead "Target" Where spawnally TotalCount 1 MaxActive 1 SpawnCount 1 Support 1 TFBot { Class Engineer ClassIcon engineer_ally InterruptAction { Target "Pyro" WaitWhenDone 1 Delay 0.1 // Time before the first task starts (Default: 10) Repeats 0 // How many times should bot do the task in total (Default: 0 - Infinite) Cooldown 1 //Time between each task (Default: 10) Duration 6 } Attributes IgnoreFlag Attributes IgnoreEnemies AddCond { Name "TF_COND_REPROGRAMMED" } } } } Wave //WAVE 5 { StartWaveOutput { Target wave_start_relay Action Trigger } DoneOutput { Target wave_finished_relay Action Trigger } SpawnTemplate { Name sentrytest Origin "1018 788 -192" } SpawnTemplate target_x WaveSpawn //WAVE 5 { Name "test_inf" WaitBeforeStarting 5 Where spawnbot TotalCount 88 MaxActive 1 SpawnCount 1 TFBot { Class Heavyweapons Name "Cool Soda Man" Health 420 ClassIcon scout_bonk Skill Easy BehaviorModifiers Push Attributes SuppressFire Attributes IgnoreFlag WeaponRestrictions MeleeOnly Item "Summer Shades" Item "Bonk! Atomic Punch" ItemAttributes { ItemName "Summer Shades" "set item tint RGB" 5801378 } CharacterAttributes { "move speed bonus" 5.0 "deploy time increased" 0.5 "dmg taken increased" 0.2 "health regen" 1 } } } WaveSpawn //WAVE 5 { Name "test" WaitBeforeStarting 0.5 Where spawnally TotalCount 1 MaxActive 1 SpawnCount 1 Support Limited TFBot { Class Engineer Health 275 ClassIcon engineer_ally Skill Easy Action Mobber NoCrouchButtonRelease 1 // No auto release crouch when bot is on ground InterruptAction { Target "sentryhere" AimTarget "sentry_a" WaitWhenDone 1 Delay 1 // Time before the first task starts (Default: 10) Repeats 1 // How many times should bot do the task in total (Default: 0 - Infinite) Cooldown 5.1 //Time between each task (Default: 10) Duration 0.1 OnDoneChangeAttributes "Crouch" } Attributes IgnoreFlag CharacterAttributes { "no_jump" 1 } AddCond { Name "TF_COND_REPROGRAMMED" } EventChangeAttributes { Crouch { WeaponRestrictions MeleeOnly InterruptAction { Target "sentryhere" AimTarget "sentry_a" WaitWhenDone 1 KillAimTarget 1 Delay 0.1 // Time before the first task starts (Default: 10) Repeats 1 // How many times should bot do the task in total (Default: 0 - Infinite) Cooldown 5 //Time between each task (Default: 10) Duration 0.1 OnDoneChangeAttributes "Attack" } FireWeapon //Periodically fires weapon { Delay 0.1 //Time before the first fire input starts (Default: 10) Cooldown 0.1 //Time between each fire input (Default: 10) Repeats 0 //How many times should bot use the fire input in total (Default: 0 - Infinite) IfSeeTarget 0 //When set to 1, this task activates only when the bot can see the target player (Default 0 - Always activate) Duration 0.2 //How long should the button be pressed (Default: 0.1) Type "Crouch" } } Attack { WeaponRestrictions PrimaryOnly } } } } WaveSpawn //WAVE 5 { Name "test2" WaitForAllDead "test" WaitBeforeStarting 0.5 Where spawnally TotalCount 1 MaxActive 1 SpawnCount 1 Support Limited TFBot { Class Engineer Health 275 ClassIcon engineer_ally Skill Easy Action Mobber SpawnTemplate "sentrytest_2" NoCrouchButtonRelease 1 // No auto release crouch when bot is on ground InterruptAction { Target "sentryhere_b" AimTarget "sentry_b" WaitWhenDone 1 Delay 1 // Time before the first task starts (Default: 10) Repeats 1 // How many times should bot do the task in total (Default: 0 - Infinite) Cooldown 5.1 //Time between each task (Default: 10) Duration 0.1 OnDoneChangeAttributes "Wrangle" } Attributes IgnoreFlag CharacterAttributes { "no_jump" 1 } AddCond { Name "TF_COND_REPROGRAMMED" } EventChangeAttributes { Wrangle { WeaponRestrictions SecondaryOnly InterruptAction { Target "sentryhere_b" WaitWhenDone 1 Delay 0.1 // Time before the first task starts (Default: 10) Repeats 1 // How many times should bot do the task in total (Default: 0 - Infinite) Cooldown 5 //Time between each task (Default: 10) Duration 0.1 OnDoneChangeAttributes "Attack" } FireWeapon //Periodically fires weapon { Delay 0.1 //Time before the first fire input starts (Default: 10) Cooldown 0.1 //Time between each fire input (Default: 10) Repeats 0 //How many times should bot use the fire input in total (Default: 0 - Infinite) IfSeeTarget 1 //When set to 1, this task activates only when the bot can see the target player (Default 0 - Always activate) Duration 0.2 //How long should the button be pressed (Default: 0.1) Type "Primary" } FireWeapon //Periodically fires weapon { Delay 0.1 //Time before the first fire input starts (Default: 10) Cooldown 2.75 //Time between each fire input (Default: 10) Repeats 0 //How many times should bot use the fire input in total (Default: 0 - Infinite) IfSeeTarget 1 //When set to 1, this task activates only when the bot can see the target player (Default 0 - Always activate) Duration 0.2 //How long should the button be pressed (Default: 0.1) Type "Secondary" } } Attack { WeaponRestrictions PrimaryOnly } } } } WaveSpawn //WAVE 5 { Name "test3" WaitBeforeStarting 2 Where spawnally TotalCount 1 MaxActive 1 SpawnCount 1 Support Limited TFBot { Class Engineer Name "Independent Engineer" Health 275 ClassIcon engineer_ally Skill Easy NoCrouchButtonRelease 1 // No auto release crouch when bot is on ground InterruptAction { Target "sentryhere_c" AimTarget "sentryhere_c" WaitWhenDone 1 Delay 1 // Time before the first task starts (Default: 10) Repeats 1 // How many times should bot do the task in total (Default: 0 - Infinite) Cooldown 5.1 //Time between each task (Default: 10) Duration 0.1 OnDoneChangeAttributes "Build" } Attributes IgnoreFlag CharacterAttributes { "no_jump" 1 } AddCond { Name "TF_COND_REPROGRAMMED" } EventChangeAttributes { Build { WeaponRestrictions MeleeOnly Attributes AlwaysFireWeapon ClientCommand // Executes client commands { Name "build 2" // Name of client command - examples: // "build 0/1/2/3" - Build dispenser / tele entrance / sentry / tele exit // "destroy 0/1/2/3" - Destroy dispenser / tele entrance / sentry / tele exit Delay 0.05 //Time before the first execution of the task (Default: 10) Cooldown 5 //Time between each execution of the task (Default: 10) Repeats 1 //How many times should the task be executed in total (Default: 0 - Infinite) } FireWeapon { Delay 0.06 Repeats 1 Cooldown 5 Type "Primary" } InterruptAction { Target "sentryhere_c" AimTarget "sentryhere_c" WaitWhenDone 0 Delay 0.1 // Time before the first task starts (Default: 10) Repeats 0 // How many times should bot do the task in total (Default: 0 - Infinite) Cooldown 2 //Time between each task (Default: 10) Duration 3 OnDoneChangeAttributes "Attack" } FireWeapon //Periodically fires weapon { Delay 0.1 //Time before the first fire input starts (Default: 10) Cooldown 0.1 //Time between each fire input (Default: 10) Repeats 0 //How many times should bot use the fire input in total (Default: 0 - Infinite) Duration 0.2 //How long should the button be pressed (Default: 0.1) Type "Crouch" } } Attack { WeaponRestrictions PrimaryOnly } } } } } Wave //WAVE 6 { SpawnTemplate "tanktp" SpawnTemplate { Name "VortexBlood" Origin "770 216 37" Angles "90 0 0" } StartWaveOutput { Target wave_start_relay Action Trigger } DoneOutput { Target wave_finished_relay Action Trigger } WaveSpawn //WAVE 6 { Name "cooltest1" WaitForAllDead "coolbot1" Where spawnbot WaitBetweenSpawns 0.1 TotalCount 3 MaxActive 1 SpawnCount 1 TFBot { Template T_TFBot_Giant_Soldier Attributes IgnoreFlag Attributes IgnoreEnemies BehaviorModifiers Push SpawnTemplate { Name rain_target Origin "65 0 300" } FireWeapon { Type "Primary" Delay 2 Repeats 0 Duration 4 Cooldown 10 } InterruptAction // Stop current bot ai and force the bot to move to a location { AimTarget "shoothere" // Entity / bot / class name as an alternative. Also: RandomEnemy, ClosestPlayer // KillAimTarget 1 / Attack aim target (Default: 0) WaitWhenDone 1 Delay 2 // Time before the first task starts (Default: 10) Repeats 0 // How many times should bot do the task in total (Default: 0 - Infinite) Cooldown 5 //Time between each task (Default: 10) Duration 6 // How long should the ai be interrupted } ItemAttributes { ItemName "TF_WEAPON_ROCKETLAUNCHER" "faster reload rate" 0.01 "clip size upgrade atomic" 26 "fire rate bonus" 0.1 "blast radius decreased" 0.2 "projectile spread angle penalty" 20 "projectile speed decreased" 0.75 "projectile acceleration" -440 "projectile acceleration time" 1.2 "projectile gravity" 150 "rocket jump damage reduction" -0.01 } } } WaveSpawn //WAVE 6 { Name "coolbot1" WaitForAllDead "coolbotA" WaitBeforeStarting 2 TotalCount 2 SpawnCount 2 MaxActive 2 TotalCurrency 400 Where spawnbot_mid_2 Squad { TFBot { Template T_TFBot_Giant_Soldier_SlowBarrage Health 200 Attributes IgnoreFlag Action Mobber CharacterAttributes { "reload time decreased while healed" 20 "faster reload rate" 0.05 "damage penalty" 0 } } TFBot { Template T_TFBot_Medic Health 15 CharacterAttributes { "bot medic uber health threshold" 1 } } } } WaveSpawn //WAVE 6 { Name "coolbotA" TotalCount 1 SpawnCount 1 MaxActive 1 TotalCurrency 400 Where spawnbot_mid TFBot { Class Pyro Health 200 Attributes IgnoreFlag WeaponRestrictions MeleeOnly Item "Taunt: Zoomin' Broom" SpawnTemplate PT_FireballSpell_Bot Taunt { Name "Taunt: Zoomin' Broom" Delay 0.1 Cooldown 5 } FireInput { Target "@c@!activator" Action "$FireUser5" Delay 5 Cooldown 4 IfSeeTarget 1 } CharacterAttributes { "always allow taunt" 1 "health regen" 2 "no_jump" 1 } } } } Wave //WAVE 7 { StartWaveOutput { Target wave_start_relay Action Trigger } DoneOutput { Target wave_finished_relay Action Trigger } WaveSpawn //WAVE 7 { Name "Test" TotalCurrency 3 TotalCount 3 MaxActive 1 SpawnCount 1 Where spawnbot WaitBeforeStarting 0 WaitBetweenSpawns 1 TFBot { Attributes IgnoreFlag BehaviorModifiers Push Template T_TFBot_Giant_Soldier Item "Upgradeable TF_WEAPON_ROCKETLAUNCHER" ClassIcon soldier_rocketrain_missing AimOffset "0 0 15" ItemAttributes { ItemName "Upgradeable TF_WEAPON_ROCKETLAUNCHER" "fire rate penalty" 0.5 "faster reload rate" 0.75 "clip size upgrade atomic" 2 "damage penalty" 0 "projectile speed decreased" 0.75 "projectile spread angle penalty" 2 "projectile gravity" 45 "custom projectile model" "models/weapons/w_models/w_drg_ball.mdl" "projectile trail particle" "~rockettrail" "explosion particle" "bot_death" "custom impact sound" "ambient/grinder/grinderbot_02.wav" } ShootTemplate { Name RoboSoldier AttachToProjectile 1 ItemName "Upgradeable TF_WEAPON_ROCKETLAUNCHER" } } } WaveSpawn //WAVE 7 { Name "Test 2" WaitForAllDead "Test" TotalCurrency 500 TotalCount 50 MaxActive 1 SpawnCount 1 Where spawnbot WaitBeforeStarting 10 WaitBetweenSpawns 5 Squad { TFBot { Template T_TFBot_Giant_Soldier Health 196 Scale 1.1 Item "The Public Speaker" ClassIcon soldier_spammer Skill Normal Attributes AlwaysFireWeapon Attributes HoldFireUntilFullReload Attributes IgnoreFlag Attributes DisableDodge BehaviorModifiers Push ItemAttributes { ItemName tf_weapon_rocketlauncher "fire rate penalty" 0.25 "faster reload rate" 0 "damage bonus" -0.01 "dmg from ranged reduced" 0 } } } } } Wave //WAVE 8 { StartWaveOutput { Target wave_start_relay Action Trigger } DoneOutput { Target wave_finished_relay Action Trigger } WaveSpawn { Name "Test 3" TotalCurrency 1000 TotalCount 40 MaxActive 5 SpawnCount 1 Where spawnbot WaitBeforeStarting 0 WaitBetweenSpawns 2 Squad { TFBot { Template T_TFBot_Giant_Pyro Health 50 Attributes SuppressFire Attributes IgnoreFlag Attributes DisableDodge BehaviorModifiers Push ItemAttributes { ItemName tf_weapon_flamethrower "damage bonus" -0.01 } } } } } // Class Demoman // ClassIcon demoknight_giant // Name "Giant Demoknight" // Health 3300 // Action Mobber // AddCond // { // Name "TF_COND_REPROGRAMMED" // } // ChangeAttributes // { // Name "Attack" // Delay 0.1 // Cooldown 0.1 // Repeats 1 // IfHealthBelow 3194 //>3 bat hits // } // EventChangeAttributes // { // Default // { // Skill Expert // Item "Prince Tavish's Crown" // Item "The Chargin' Targe" // Item "The Eyelander" // Item "Ali Baba's Wee Booties" // WeaponRestrictions MeleeOnly // Attributes MiniBoss // MaxVisionRange 150 // ItemAttributes // { // ItemName "The Eyelander" // "critboost on kill" 3 // } // InterruptAction // { // Target "intel_new2" // Delay 0.1 // Cooldown 1 // Duration 1.1 // } // CharacterAttributes // { // "dmg from melee increased" 9.23 // "dmg taken mult from special damage type 1" 0.109 // "charge recharge rate increased" 0 //-100%? // "move speed bonus" 0.5 // "damage force reduction" 0.5 // "airblast vulnerability multiplier" 0.5 // "override footstep sound set" 4 // } // } // Attack // { // Skill Expert // Item "Prince Tavish's Crown" // Item "The Chargin' Targe" // Item "The Eyelander" // Item "Ali Baba's Wee Booties" // WeaponRestrictions MeleeOnly // Attributes MiniBoss // ItemAttributes // { // ItemName "The Eyelander" // "critboost on kill" 3 // } // CharacterAttributes // { // "attack not cancel charge" 1 // "move speed bonus" 0.5 // "damage force reduction" 0.5 // "airblast vulnerability multiplier" 0.5 // "override footstep sound set" 4 // } // } // } Wave //WAVE 9 { StartWaveOutput { Target wave_start_relay Action Trigger } DoneOutput { Target wave_finished_relay Action Trigger } InitWaveOutput { Target gamerules Action RunScriptCode Param " IncludeScript(`seel_terror.nut`, getroottable()) " // function t() // { // for(local r; r = Entities.FindByClassname(r,`tf_projectile_rocket`);) // { // r.SetMoveType(5,2) // r.SetGravity(0.25) // local v = r.GetAbsVelocity(); // v.Norm(); // r.SetForwardVector(v); // } // return -1 // } // AddThinkToEnt(self,`t`); } WaveSpawn { Name "noend" WaitBeforeStarting 5555 } WaveSpawn //WAVE 9 { Name "snipertest" WaitBeforeStarting 0.5 WaitBetweenSpawns 10 Where spawnbot TotalCount 10 MaxActive 1 SpawnCount 1 Squad { TFBot { Template T_TFBot_Giant_Heavyweapons Name "Monocultus Menace" ClassIcon heavy_rocket //I guess? Tag "cultchief" Item "Upgradeable TF_WEAPON_MINIGUN" Item "MONOCULUS!" Item "Moccasin Machinery" Item "Purity Fist" Item "Bone-Cut Belt" Item "Pocket Halloween Boss" Attributes SuppressFire Attributes IgnoreFlag UseHumanModel 1 ItemAttributes { ItemName "Upgradeable TF_WEAPON_MINIGUN" "paintkit_proto_def_index" 265 //Eyestalker "set_item_texture_wear" 0.2 "damage bonus" 1.2 } ItemAttributes { ItemName "Pocket Halloween Boss" "item style override" 2 //Monoculus - duh. } Taunt { Name "Taunt: Second Rate Sorcery" Delay 3 Repeats 1 } } } } WaveSpawn //WAVE 9 { WaitForAllDead "snipertest" WaitBeforeStarting 5 TotalCount 1 SpawnCount 1 MaxActive 1 TotalCurrency 0 Where spawnbot_ally Support 1 TFBot { Class Soldier Skill Expert Action Passive WeaponRestrictions SecondaryOnly AddCond { Name TF_COND_REPROGRAMMED } AddCond { Index 51 } AddCond { Index 34 } } } WaveSpawn //WAVE 9 { WaitForAllDead "snipertest" Name "coolbot1" WaitBetweenSpawnsAfterDeath 5 TotalCount 1 SpawnCount 1 MaxActive 1 Where spawnbot TotalCurrency 0 DoneOutput { Target "negotiator_death" Action "Trigger" } TFBot { Class Pyro Attributes UseBossHealthBar Action Mobber UseBestWeapon 1 Item "The Flare Gun" Skill Expert Health 10 SpawnTemplate DeathSpot FireInput { Target !self Action $SetClientProp$m_iszClassIcon Param "teleporter_seel" Delay 2 Repeats 1 } DamageAppliesCond { Name TF_COND_REPROGRAMMED Duration 10 } CharacterAttributes { "force distribute currency on death" 1 } } } WaveSpawn //WAVE 9 { Name "coolbot2" WaitForAllDead "coolbot1" WaitBeforeStarting 0.1 Where spawnbot TotalCount 1 SpawnCount 1 Support Limited TotalCurrency 400 RandomChoice { RandomChoice { TFBot { Class Scout Health 1 UseCustomModel "models/empty.mdl" FireInput { Target !self Action $TeleportToEntity Param "negotiator_target" Delay 0.017 } FireInput { Target !self Action $Suicide Delay 0.034 } CharacterAttributes { "is suicide counter" 1 "force distribute currency on death" 1 } } } } } WaveSpawn { WaitForAllDead "coolbot2" WaitBeforeStarting 0.017 } } Wave //WAVE 10 { SpawnTemplate "annotation" SpawnTemplate PumpkinTeleportLogic InitWaveOutput { Target "bignet" Action "RunScriptCode" Param "IncludeScript(`seel_runtime.nut`,getroottable()) AddThinkToEnt(self,`BallsToBombsThink`)" } StartWaveOutput { Target wave_start_relay Action Trigger } DoneOutput { Target wave_finished_relay Action Trigger } WaveSpawn { Name "HalloweenBossTest" Where spawnbot_mid TotalCount 1 MaxActive 1 SpawnCount 1 TotalCurrency 500 HalloweenBoss // HalloweenBoss spawner. Spawns a boss { IsMiniBoss 1 // Shows icon as mini boss (Default: 1) ClassIcon demoknight_headtaker_nys // ClassIcon to use BossType "HHH" // Boss type: MONOCULUS, Merasmus, HHH, SkeletonSmall, SkeletonNormal, SkeletonKing. Skeletons default limit is 30 active at once unless modified by MaxActiveSkeletons SpawnCurrencyPack 1 // If set, the boss will drop money on death. Otherwise its distributed automatically (Default: 1) Health 90 // Boss health, 0 means default health (Default: 0) Speed 100 // Overrides boss move speed } } // WaveSpawn // { // Name "fakeSoldierIcon" // Where spawnbot_mid // WaitForAllDead "testA" // TotalCount 2 // MaxActive 2 // SpawnCount 2 // PointTemplate // { // Name "PT_nihil" // ClassIcon medic // } // } WaveSpawn { Name "testA" WaitForAllDead "HalloweenBossTest" Where spawnbot_mid WaitBeforeStarting 0 WaitBetweenSpawns 5 TotalCount 12 MaxActive 3 SpawnCount 3 TFBot { Template T_TFBot_Scout_Sandman Attributes IgnoreFlag Action Mobber Skill Expert KeepAway "Target" KeepAwayRadius 200 DesiredAttackRange 350 SpawnTemplate { Name "PT_GrenadeMimic" Origin "0 0 65" } Tag "ballbomber" ItemAttributes { ItemName "The Sandman" "melee range multiplier" 0 "effect bar recharge rate increased" 0.1 } } } WaveSpawn //WAVE 10 { Name "tankfirst" WaitForAllDead "testA" WaitBetweenSpawns 10 TotalCount 1 SpawnCount 1 TotalCurrency 69 Tank { Health 320 Speed 20 Name "tankboss" Skin 1 Scale 0.5 StartingPathTrackNode "tank_path_seel_1" SpawnTemplate "CrateTank" OnKilledOutput { Target tank_died_relay Action Trigger } OnBombDroppedOutput { Target bomb_dropped_relay Action Trigger } } } WaveSpawn { Name "testSup" WaitForAllDead "tankfirst" WaitBeforeStarting 5 Where spawnbot TotalCount 1 MaxActive 1 SpawnCount 1 Support 1 TFBot { Class Scout Name "mmh mh yes festive bat" SpawnTemplate CrateTankTeleport WeaponRestrictions MeleeOnly Item "Festive Bat 2011" Health 10 Attributes IgnoreFlag Attributes SuppressFire Action Mobber ClassIcon scout_allyred AddCond { Name "TF_COND_REPROGRAMMED" Delay 0 } CharacterAttributes { "dmg taken mult from special damage type 1" 100 } } } } Wave //WAVE 11 { StartWaveOutput { Target wave_start_relay Action Trigger } DoneOutput { Target wave_finished_relay Action Trigger } WaveSpawn //WAVE 11 { Name "tankfirst" WaitBetweenSpawns 10 TotalCount 1 SpawnCount 1 Totalcurrency 69 Tank { Health 320 Speed 0 Name "tank_meteor" Skin 1 Scale 0.6 StartingPathTrackNode "tank_path_seel_1" SpawnTemplate { Name MeteorTank //Tank dimensions: X (front) : 117; Y (left) : 80; Z (top) : 180 Origin "0 0 130" //108 is top } OnKilledOutput { Target tank_died_relay Action Trigger } OnBombDroppedOutput { Target bomb_dropped_relay Action Trigger } } } WaveSpawn { Name "THELAUNCHER" WaitForAllSpawned "tankfirst" Where spawnbot_ally //spawn out of spawn or it will not be able to shoot TotalCount 1 SpawnCount 1 Support Limited RandomChoice { RandomChoice { TFBot { Class Pyro Name "Meteor Tank" Health 30000 StripItemSlot 0 StripItemSlot 1 StripItemSlot 2 UseCustomModel "models/empty.mdl" Scale 0.001 AddCond { Index 52 } CharacterAttributes { "not solid to players" 1 "cancel falling damage" 1 "cannot be sapped" 1 "rage giving scale" 0 "no_jump" 1 "move speed bonus" 0.001 "cannot pick up intelligence" 1 "voice pitch scale" 0 "airblast vulnerability multiplier" 0.0001 "dmg taken increased" 0.0001 "afterburn immunity" 1 } Tag meteor_bot SpawnTemplate "meteortank_bot_init" } } } } WaveSpawn { Name "tanktest" WaitForAllDead "tankfirst" TotalCount 1 MaxActive 1 SpawnCount 1 TotalCurrency 100 Tank //blimp { Health 500 Speed 25 DisableSmokestack 1 //honestly idk what this does but I'm gonna presume it's needed ClassIcon tank_skeleton Scale 1 MaxTurnRate 25 Model "models/bots/boss_bot/boss_tank_color.mdl" SpawnTemplate "Tank_Skeleton" // EngineLoopSound "npc\combine_gunship\dropship_engine_distant_loop1.wav" // PingSound "npc\combine_gunship\ping_search.wav" Name "tank" StartingPathTrackNode "tank_path_b_1" OnKilledOutput { Target boss_dead_relay Action Trigger } OnBombDroppedOutput { Target boss_deploy_relay Action Trigger } } } WaveSpawn { Name "tanktest2" WaitForAllDead "tanktest" TotalCount 1 MaxActive 1 SpawnCount 1 TotalCurrency 100 Tank //blimp { SpawnTemplate { Name "Teleporter_Red" Origin "200 0 40" } Health 500 Speed 25 DisableSmokestack 1 //honestly idk what this does but I'm gonna presume it's needed ClassIcon blimp2_red_lite Scale 1.5 Skin 0 TeamNum 2 MaxTurnRate 25 Model "models/bots/boss_bot/boss_blimp.mdl" Gravity 0 //prevents it from yeeting itself down RotatePitch 0 //prevents it from turning upwards DisableTracks 1 //prevents its ghooooost tracks from making noise DisableChildModels 1 //HOPEFULLY prevents the bomb from sticking out EngineLoopSound "npc\combine_gunship\dropship_engine_distant_loop1.wav" PingSound "npc\combine_gunship\ping_search.wav" Name "tank" StartingPathTrackNode "tank_path_blimp_1" OnKilledOutput { Target boss_dead_relay Action Trigger } OnBombDroppedOutput { Target boss_deploy_relay Action Trigger } } } WaveSpawn { Name "tanktest3" WaitForAllDead "tanktest2" TotalCount 1 MaxActive 1 SpawnCount 1 TotalCurrency 100 Tank //blimp { SpawnTemplate { Name "Teleporter_Red" Origin "220 0 40" } Health 500 Speed 0 DisableSmokestack 1 //honestly idk what this does but I'm gonna presume it's needed ClassIcon blimp2_red_lite Scale 1.5 Skin 0 TeamNum 2 MaxTurnRate 25 Model "models/bots/boss_bot/boss_blimp.mdl" Gravity 0 //prevents it from yeeting itself down RotatePitch 0 //prevents it from turning upwards DisableTracks 1 //prevents its ghooooost tracks from making noise DisableChildModels 1 //HOPEFULLY prevents the bomb from sticking out EngineLoopSound "npc\combine_gunship\dropship_engine_distant_loop1.wav" PingSound "npc\combine_gunship\ping_search.wav" Name "tank" StartingPathTrackNode "tank_path_blimp_1" OnKilledOutput { Target boss_dead_relay Action Trigger } OnBombDroppedOutput { Target boss_deploy_relay Action Trigger } } } WaveSpawn { Name "tpSpawner" WaitForAllDead "tanktest3" PointTemplate { Name "Teleporter_Red" SpawnAtEntity "spawnbot_ally" Angles "-90 0 0" ClassIcon teleporterfix } } WaveSpawn { Name "testA" WaitForAllSpawned "tanktest" WaitBeforeStarting 5 Where spawnbot_mid TotalCount 25 MaxActive 1 SpawnCount 1 TFBot { Class Sniper Skill Hard Action Sniper Item "The B.A.S.E. Jumper" AddCond { Name "TF_COND_REPROGRAMMED" Delay 0 } CharacterAttributes { "receive friendly fire" 1 } } } } Wave //WAVE 12 { // SpawnTemplate WaveStartIconChanger StartWaveOutput { Target wave_start_relay Action Trigger } DoneOutput { Target wave_finished_relay Action Trigger } WaveSpawn { Name "no" WaitForAllDead "Spawner" } WaveSpawn { Name "Spawner" WaitBeforeStarting 5 WaitBetweenSpawns 5 Support 1 PointTemplate { Name "PoisonArea" SpawnAtEntity poison_target Angles "0 0 0" StickToGround 600 SpreadRadius "80 80 0" ClassIcon powerup_plague_lite } } WaveSpawn { Name "testB" Where spawnbot WaitBeforeStarting 0.1 WaitBetweenSpawns 1.2 TotalCount 15 MaxActive 1 SpawnCount 1 Support 1 TFBot { Class Scout WeaponRestrictions MeleeOnly Action Mobber Attributes SuppressFire SpawnTemplate PoisonArea_Target } } //These icons will initially appear on the wavebar as one icon //When the wave starts, they will be split into two. WaveSpawn { Name "testB" Where spawnbot_ally WaitBeforeStarting 3 TotalCount 1 MaxActive 1 SpawnCount 1 Support 1 FirstSpawnOutput { Target "midwave_icon_changer" Action "Trigger" } Squad { TFBot { Class Scout WeaponRestrictions MeleeOnly Action Mobber Attributes SuppressFire ClassIcon heavy_dispenser Scale 1 Attributes MiniBoss DesiredAttackRange 500 AddCond { Name "TF_COND_REPROGRAMMED" Delay 0 } // SpawnTemplate BotTracker } } } WaveSpawn { Name "testB" Where spawnbot_ally WaitBeforeStarting 3 TotalCount 1 MaxActive 1 SpawnCount 1 Support 1 TFBot { Class Heavyweapons WeaponRestrictions MeleeOnly Action Mobber Attributes SuppressFire ClassIcon engineer_wrangler_lite DesiredAttackRange 500 AddCond { Name "TF_COND_REPROGRAMMED" Delay 0 } } } WaveSpawn { Name "testB" TotalCount 9 MaxActive 9 SpawnCount 9 Support Limited Squad { TFBot { Class Spy ClassIcon pyro_flare_rain_nys } TFBot { Class Spy ClassIcon soldier_barrage Attributes MiniBoss } TFBot { Class Spy ClassIcon scout_pop } TFBot { Class Spy ClassIcon scout_fanowar_milk } TFBot { Class Spy ClassIcon blimp2_lite Attributes MiniBoss } TFBot { Class Spy ClassIcon powerup_king_lite Attributes MiniBoss } TFBot { Class Spy ClassIcon soldier_spammer } TFBot { Class Spy ClassIcon demo_milky Attributes MiniBoss } TFBot { Class Spy ClassIcon heavy_natascha_nys Attributes MiniBoss } } } WaveSpawn { Name "testB" TotalCount 2 MaxActive 2 SpawnCount 2 Support Limited Squad { TFBot { Class Spy ClassIcon engineer_widowmaker_nys } TFBot { Class Spy ClassIcon sentry_buster } } } } SpawnTemplate DropTankSetup Wave //WAVE 13 { StartWaveOutput { Target wave_start_relay Action Trigger } DoneOutput { Target wave_finished_relay Action Trigger } WaveSpawn //WAVE 13 { Name "Tanktest" //Tests func_physbox setup from Silentsky // StartWaveOutput // { // Target drop_bomb0_relay // Action Trigger // } WaitBeforeStarting 1 WaitBetweenSpawns 10 TotalCount 1 SpawnCount 1 Totalcurrency 69 Tank { Health 555 Speed 40 Name "droptank" StartingPathTrackNode "tank_path_air_1" OnKilledOutput { Target tank_died_relay Action Trigger } OnBombDroppedOutput { Target bomb_dropped_relay Action Trigger } } } } }