#base robot_giant.pop #base robot_standard.pop WaveSchedule { StartingCurrency 20000 RespawnWaveTime 1 CanBotsAttackWhileInSpawnRoom no AddSentryBusterWhenDamageDealtExceeds 0 WaveStartCountdown 1 CustomUpgradesFile "mvm_upgrades_smj.txt" AllowJoinTeamBlue 1 //If it is possible to join team blue HumansMustJoinTeam blue //Set to blue to force players join the blu team ForceHoliday 2 //Enforces Halloween mode, but does not enable wave 666 and zombie bots ReverseWinConditions 1 //Player team wins if bots deliver the bomb NoSapUnownedBuildings 1 // If set, spies will not target unowned buildings (default: 0) ScriptSoundOverrides "scripts/lol.txt" // Load a file that adds or overrides existing soundscripts CustomNavFile "mvm_bigrock_alt" // Custom nav file name RestoreNegativeDamageHealing 1 // Allow negative damage to overheal (default: 0) PlayerAttributes { "move speed bonus" 2.0 } ForceItem { All { //Item "TF_WEAPON_BUILDER_SPY" //Item "TF_WEAPON_PDA_ENGINEER_BUILD" //Item "TF_WEAPON_PDA_ENGINEER_DESTROY" //Item "Mad Milk" } } HandModelOverride // Overwrite first person arms models { Spy "models/weapons/c_models/c_sniper_arms.mdl" Sniper "models/weapons/c_models/c_medic_arms.mdl" } Mission // Buster { Objective DestroySentries InitialCooldown 0 Where spawnbot BeginAtWave 1 RunForThisManyWaves 6 CooldownTime 1 TFBot { Template T_TFBot_SentryBuster Name NormalBuster Skill Easy Attributes DisableDodge Attributes IgnoreEnemies } } Mission // Buster { Objective DestroySentries InitialCooldown 0 Where spawnalt BeginAtWave 1 RunForThisManyWaves 6 CooldownTime 1 TargetBluSentries 1 TFBot { Template T_TFBot_SentryBuster Skill Easy Attributes DisableDodge Attributes IgnoreEnemies AddCond { Name TF_COND_REPROGRAMMED } } } ExtraSpawnPoint //Adds spawn points on specified location { Name "spawnalt" // StartDisabled 1 // If the spawn point starts disabled (Default: 0) TeamNum 3 // 2 - Red team 3 - Robots. If you are adding spawn for reprogrammed robots, use team 3 X "323" Y "-2505" Z "628" } // Enables extended upgrades displayed on the left of upgrade gui as SourceMod menu. This allows for more than 8 upgrades per weapon, with custom weapon rules ExtendedUpgrades { MaxUpgradesTier // Specify how many upgrades can be bought per tier. (1 by default) { 1 2 // Max 2 upgrades on tier 1 2 1 // Max 1 upgrade on tier 2 } MinUpgradesTier // Specify how many upgrades have to be bought to unlock next tier. (1 by default) { 1 2 // Min 2 upgrades on tier 1 to unlock tier 2 2 1 // Min 1 upgrade on tier 2 to unlock tier 3 } tier1a { Name "tier 1 a" // Name of the upgrade displayed on the menu Attribute "max health additive bonus" // The attribute name Cap 200 // Maximum amount of the attribute Increment 25 // Attribute increment value per level Cost 200 // Cost of the upgrade per level PlayerUpgrade 0 // Is the upgrade a player upgrade Tier 1 // Marks the upgrade as tieried. Tiered upgrades on the same level share special exclusivity rules, and one can only be bought if an upgrade of previous tier is bought beforehand AllowedWeapons //Restricts upgrade to specified weapons { DealsDamage 1 } SecondaryAttributes { "special item description" "lol" "fire rate penalty" 0.1 } } tier1b { Name "tier 1 b" // Name of the upgrade displayed on the menu Attribute "damage bonus" // The attribute name Cap 2 // Maximum amount of the attribute Increment 0.1 // Attribute increment value per level Cost 200 // Cost of the upgrade per level PlayerUpgrade 1 // Is the upgrade a player upgrade ForceEnable 1 Tier 1 // Marks the upgrade as tieried. Tiered upgrades on the same level share special exclusivity rules, and one can only be bought if an upgrade of previous tier is bought beforehand } tier1c { Name "tier 1 c" // Name of the upgrade displayed on the menu Attribute "move speed bonus" // The attribute name Cap 0 // Maximum amount of the attribute Increment -0.1 // Attribute increment value per level Cost 200 // Cost of the upgrade per level PlayerUpgrade 1 // Is the upgrade a player upgrade Tier 1 // Marks the upgrade as tieried. Tiered upgrades on the same level share special exclusivity rules, and one can only be bought if an upgrade of previous tier is bought beforehand } tier2a { Name "tier 2 a" // Name of the upgrade displayed on the menu Attribute "fire rate bonus" // The attribute name Cap 0 // Maximum amount of the attribute Increment -0.1 // Attribute increment value per level Cost 200 // Cost of the upgrade per level PlayerUpgrade 1 // Is the upgrade a player upgrade Tier 2 // Marks the upgrade as tieried. Tiered upgrades on the same level share special exclusivity rules, and one can only be bought if an upgrade of previous tier is bought beforehand } tier2b { Name "tier 2 b" // Name of the upgrade displayed on the menu Attribute "increased jump height" // The attribute name Cap 2 // Maximum amount of the attribute Increment 0.1 // Attribute increment value per level Cost 200 // Cost of the upgrade per level PlayerUpgrade 1 // Is the upgrade a player upgrade Tier 2 // Marks the upgrade as tieried. Tiered upgrades on the same level share special exclusivity rules, and one can only be bought if an upgrade of previous tier is bought beforehand } tier3a { Name "tier 3 a" // Name of the upgrade displayed on the menu Attribute "clip size bonus" // The attribute name Cap 2 // Maximum amount of the attribute Increment 0.1 // Attribute increment value per level Cost 200 // Cost of the upgrade per level PlayerUpgrade 1 // Is the upgrade a player upgrade Tier 3 // Marks the upgrade as tieried. Tiered upgrades on the same level share special exclusivity rules, and one can only be bought if an upgrade of previous tier is bought beforehand } } CustomWeapon //Allows you to use an alias for items with custom attributes { "My Custom Item" // The name you would use in Item key in TFBot { OriginalItemName "TF_WEAPON_PIPEBOMBLAUNCHER" // The item used as a base "fire rate bonus" 0.1 // Attributes "damage bonus" 4 "custom weapon fire sound" "Weapon_Soda_Popper.Single" } "Le medigun" // The name you would use in Item key in TFBot { OriginalItemName "Upgradeable TF_WEAPON_MEDIGUN" // The item used as a base "overheal expert" 2 } "My Custom Item2" // The name you would use in Item key in TFBot { OriginalItemName "Upgradeable TF_WEAPON_GRENADELAUNCHER" // The item used as a base "fire rate bonus" 0.1 // Attributes "damage bonus" 2 "custom weapon fire sound" "Weapon_Soda_Popper.Single" "custom item model" "models/props_coalmines/wood_fence_short_128.mdl" } } ItemAttributes { ItemName "The Thermal Thruster" "special item description" "ys" } ItemAttributes { ItemName "The Black Box" "fire rate bonus" 0.5 } ItemBlacklist { SimilarToItem "TF_WEAPON_INVIS" } ItemAttributes { Classname TF_WEAPON_ROCKETLAUNCHER "reload time decreased" 0.5 } ItemReplacement { "My Custom Item" { SimilarToItem "TF_WEAPON_CLUB" SimilarToItem "TF_WEAPON_FLAMETHROWER" SimilarToItem "The Eyelander" } } ExtraLoadoutItems // Extra loadout items available after typing !missionitems in chat { AllowEquipOutsideSpawn 1 // Allow equipping items outside spawn Soldier // Player Class { Secondary "The Thermal Thruster" Secondary "The Reserve Shooter" // Item slot and name Primary // Extended syntax, Item slot to use { Item "My Custom Item" // Item name, custom weapon names are available Cost 100 // The cost of the weapon (default: 0) AllowedMinWave 1 //The wave at which the weapon is enabled (default: 1) AllowedMaxWave 55 //The max wave at which the weapon is enabled (default: infinite) AllowRefund 1 //Allow refunding of the weapon (default: 1) } } Demoman { Secondary "The Thermal Thruster" Primary // Extended syntax, Item slot to use { Item "My Custom Item" // Item name, custom weapon names are available Cost 100 // The cost of the weapon (default: 0) AllowedMinWave 1 //The wave at which the weapon is enabled (default: 1) AllowedMaxWave 55 //The max wave at which the weapon is enabled (default: infinite) AllowRefund 1 //Allow refunding of the weapon (default: 1) } Primary "TF_WEAPON_PIPEBOMBLAUNCHER" } Secondary "Le medigun" Primary "My Custom Item2" Head "The Cat's Pajamas" // All class item Misc "The Breakneck Baggies" // Force an item to all applicable classes Building "TF_WEAPON_BUILDER" } PointTemplates { Blockade //Template name { NoFixup 1 //Normally, each spawned template entity has added an unique suffix to it. Use NoFixup 1 to prevent such changes, which allows the entity to be used in outputs outside of template without wildcard character added to it prop_dynamic //Entity classname { "model" "models/props_coalmines/wood_fence_short_128.mdl" //keyvalue "solid" "0" //Physics collision model (0- No collision, 1 - BSP, 2 - Bounding box, 3 - Oriented bounding box, 6 - VPhysics)= } } Regen //Template name { NoFixup 1 //Normally, each spawned template entity has added an unique suffix to it. Use NoFixup 1 to prevent such changes, which allows the entity to be used in outputs outside of template without wildcard character added to it func_regenerate //Entity classname { "origin" "-1962.565674 5082.834961 212.338104" "mins" "-100 -100 -1000" "maxs" "100 100 1000" } } WeaponMimic { OnSpawnOutput { Target "shootm" Action "$setowner" Param "!activator" Delay 0.01 } OnSpawnOutput { Target "shootm" Action "FireUser1" Delay 0.01 } tf_point_weapon_mimic { "targetname" "shootm" "origin" "100 0 0" "speedmin" "1000" "speedmax" "1000" "WeaponType" "1" "SplashRadius" "160" "Damage" "75" "teamnum" "2" "OnUser1" "!self,FireOnce,,0,-1" "OnUser1" "!self,FireUser1,,1,-1" } } ShieldDash { OnSpawnOutput { Target "!activator" Action $SetVar$DashEnabled Param 1 } OnSpawnOutput { Target "charge_checker" Action Trigger Delay 0.1 } filter_tf_condition { "targetname" "filter_charging" "condition" "17" "OnPass" "player,$displayTextChat,Charging,0,-1" "OnFail" "player,$displayTextChat,Failed,0,-1" "OnPass" "!activator,$RemoveCond,17,0,-1" "OnPass" "!activator,$RemoveCond,78,0,-1" "OnPass" "!activator,$GetProp$m_angRotation,dash_trigger|$SetKey$launchDirection|def,0,-1" "OnPass" "dash_trigger,enable,,0.1,-1" "OnPass" "dash_trigger,disable,,0.3,-1" } $filter_variable{ "targetname" "filter_dashenabled" $name "dashenabled" $value "1" } logic_relay { "targetname" "charge_checker" "spawnflags" "2" "OnTrigger" "!self,Trigger,,0.1,-1" "OnTrigger" "!activator,$displayTextChat,Trigger,0,-1" "OnTrigger" "filter_charging,TestActivator,!activator,0,-1" } OnSpawnOutput { Target "dash_base" Action SetParent Param "!activator" Delay 0.01 } prop_dynamic { "targetname" "dash_base" "model" "models/player/engineer.mdl" "origin" "0 0 0" } trigger_catapult { "targetname" "dash_trigger" "mins" "-128 -128 -128" "maxs" "128 128 128" "startdisabled" "1" "playerspeed" "3200" "useExactVelocity" "0" "filtername" "filter_dashenabled" "launchTarget" "dash_target" "spawnflags" "1" } info_target { "targetname" "dash_target" "parentname" "dash_base" "origin" "400 0 275" } } Test { OnSpawnOutput { Target "!activator" Action "$DisplayTextChat" Param "lol" Delay 0.01 } OnSpawnOutput { Target "ent" Action FireUser1 Param "" Delay 0.01 } prop_dynamic { targetname "ent" parentname "" "model" "models/props_coalmines/wood_fence_short_128.mdl" //keyvalue "solid" "0" //Physics collision model (0- No collision, 1 - BSP, 2 - Bounding box, 3 - Oriented bounding box, 6 - VPhysics)= onuser1 "ent2,fireuser1,,0,-1" } point_teleport { targetname "ent2" onuser1 "ent,kill,,3,-1" } } } PlayerItemEquipSpawnTemplate //Spawn custom player template, If a weapon is equipped { Name "WeaponMimic" // Name of the template ItemName "The Black Box" // The item that must be equipped Origin "0 0 50" //Position where to spawn the template // Bone "bip_spine_2" //Player bone where the template would be positioned } BuildingSpawnTemplate { Name Blockade } PlayerSpawnTemplate { Name ShieldDash } // PointTemplates // { // Test // { // OnSpawnOutput // { // Target "spawn_logic" // Action Trigger // } // prop_dynamic // { // "targetname" "knowledge" // "origin" "96 0 0" // "model" "models/props_manor/bookcase_132_01.mdl" // "solid" "0" // "spawnflags" "0" // "StartDisabled" "0" // "disableshadows" "1" // "DisableBoneFollowers" "1" // } // logic_relay // { // "targetname" "spawn_logic" // "OnTrigger" "!activator,$PlaySoundToSelf,Achievement.Earned,0,-1" // "OnTrigger" "knowledge,$SetVar$_parentorigin,$$=knowledge.m_vecOrigin,0,-1" // } // } // } //PlayerSpawnOnceTemplate "Test" SpawnTemplate Regen PlayerShootTemplate //Shoot defined point template. Template is spawned at player position in looking direction, forward velocity being applied to spawned entities { Name Blockade //Name of the template Speed 1000 //Velocity of the spawned objects (Default: 1000) Offset "0 0 0" //Offset from the player shooting position (Default: 0 0 0) Angles "0 0 0" //Shooting angle offset (Default: 0 0 0) OverrideShoot 0 //Stop default projectile from being spawned (Default: 0) Spread 0.1 //Spread of the fired template entities. 0 - No spread, 0.1 - Beggar like spread, 1 - Very inaccurate (Default: 0) AttachToProjectile 1 //If set, the template is spawned as a child of the projectile being fired. Incompatible with overrideshoot ItemName "The Cow Mangler 5000" //Can be specified to limit to a specific weapon // ItemName "TF_WEAPON_ROCKETLAUNCHER" //Can be specified to limit to a specific weapon // Classname "TF_WEAPON_MINIGUN" //Alternativiely use a weapon classname } //SPY Mission // Spy wave 3 { Objective Spy InitialCooldown 3 Where spawnbot BeginAtWave 3 RunForThisManyWaves 1 CooldownTime 30 DesiredCount 4 TFBot { Class Spy Skill Expert Name Spy AddCond { Name TF_COND_REPROGRAMMED } } } Wave { WaveSpawn { WaitBeforeStarting 5 } WaveSpawn { Name "wave01a" Where spawnbot TotalCount 2 MaxActive 1 SpawnCount 1 WaitBeforeStarting 0 WaitBetweenSpawns 7 TotalCurrency 200 FirstSpawnOutput { Target boss_spawn_relay Action Trigger } Tank { Health 20000 Speed 75 Name "tankboss" //StartingPathTrackNode "tankpath1_1" StartingPathTrackNode "boss_path_a1" OnKilledOutput { Target boss_dead_relay Action Trigger } OnBombDroppedOutput { Target boss_deploy_relay Action Trigger } SpawnTemplate "SentryTank" //Spawn custom tank template Template "TankTemplate" //Use tank template DisableSmokestack 1 //Disable smoke particles Scale 2 //Scale the tank // ForceRomeVision 1 //Force romevision MaxTurnRate 9999999 //How fast the tank turns. Faster turns allows for higher speed tanks. Default: 25 // ClassIcon special_blimp //Use custom icon for a tank IsMiniBoss 0 //Set to 0 to disable red iconicon outline // DisableChildModels 1 //If set to 1, bomb and treads models will be disabled // DisableTracks 1 //If set to 1, treads models will be disabled // DisableBomb 1 //If set to 1, bomb model will be disabled IsCrit 1 //Set to 1 to enable crit treads and the bomb will remain invisible Model //Set custom model on tank. Will spit harmless errors on client console if the model does not have enough sequences { Default "models/bots/boss_bot/boss_tankred.mdl" Damage1 "models/bots/boss_bot/boss_tankred_damage1.mdl" Damage2 "models/bots/boss_bot/boss_tankred_damage2.mdl" Damage3 "models/bots/boss_bot/boss_tankred_damage3.mdl" Destruction "models/bots/boss_bot/boss_tankred_part1_destruction.mdl" LeftTrack "models/bots/boss_bot/tankred_track_l.mdl" RightTrack "models/bots/boss_bot/tankred_track_r.mdl" Bomb "models/bots/boss_bot/bombblue_mechanism.mdl" } // Model "models/bots/boss_bot/boss_tankred.mdl" Alternate definition that also automatically set damage, track and destruction models if uploaded // Immobile 1 //If enabled, the tank will not move at all (unless parented). Might be useful when used with other forms of locomotion Gravity 0 //Tanks gravity. Default: 1000 PingSound "weapons/rocket_directhit_shoot_crit.wav" //Tank ping sound override StartSound "GoldPipe_MissionIntro.mp3" //Tank spawn sound DeploySound "GoldPipe_MissionIntro.mp3" //Tank deploy sound EngineLoopSound "Weapon_Minigun.Fire" //Tank engine sound override, will only loop if the sound was made to be looping. // DestroyTemplate "Blockade" //Override default tank destroy animation with template TeamNum 2 //Override tank team (Default: 3) OffsetZ 0 // Tank distance off the ground (Default: 0) // 150 - Max melee range without jumping // 174 - max sword range without jumping // 190 - max melee range with jumping // 270 - max melee range with upgraded jumping RotatePitch 0 // If tank should change its pitch rotation (Default: 1) // ReplaceModelCollisions 1 // If set, the tank will use collisons from the custom model. Tank model must contain all sequences or else it will not deploy the bomb (Default: 0) CritImmune 1 // If set, the tank is immune to crits (Default: 0) TriggerDestroyBuildingFix 1 // Fixes trigger entities destroying buildings on touch if parented to the tank (Default: 0) NoCrushDamage 1 // Tanks cannot crush players (Default: 0) } } } Wave { WaveSpawn { WaitBeforeStarting 5 } WaveSpawn { Name "wave01a" Where spawnbot TotalCount 5 MaxActive 5 SpawnCount 5 WaitBeforeStarting 3 WaitBetweenSpawns 0.25 TotalCurrency 200 TFBot { Class Demoman Skill Expert Item "The Bootlegger" //Custom weapon name as defined in popfile EventChangeAttributes //Most TFBot custom attributes can apply here, with exception of: // ForceRomeVision, SuppressTimedFetchFlag, SpawnTemplate, DropWeapon { Attr1 { Item "TF_WEAPON_GRENADELAUNCHER" } } ChangeAttributes //Periodically changes bot attributes, defined in EventChangeAttributes { Delay 10 //Time before the first bot attribute change (Default: 10) Cooldown 10 //Time between each bot attribute change (Default: 10) Repeats 1 //How many times should bot change attributes 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) Name "Attr1" // Name of the bot attributes listed in EventChangeAttributes } } } } Wave { StartWaveOutput { Target wave_start_relay Action Trigger } DoneOutput { Target wave_finished_relay Action trigger } WaveSpawn { WaitBeforeStarting 5 } WaveSpawn { Name "wave01a" Where spawnbot TotalCount 4 MaxActive 4 SpawnCount 4 WaitBeforeStarting 3 WaitBetweenSpawns 0.25 TotalCurrency 200 Squad { TFBot { Class Sniper Health 12500 Skill Expert AddCond { Name "TF_COND_REPROGRAMMED" } CharacterAttributes { "force distribute currency on death" 1 } } TFBot { Class Sniper Health 12500 Skill Expert AddCond { Name "TF_COND_REPROGRAMMED" } CharacterAttributes { "force distribute currency on death" 1 } } TFBot { Class Sniper Health 12500 Skill Expert AddCond { Name "TF_COND_REPROGRAMMED" } CharacterAttributes { "force distribute currency on death" 1 } } TFBot { Class Sniper Health 125 Skill Expert AddCond { Name "TF_COND_REPROGRAMMED" } CharacterAttributes { "force distribute currency on death" 1 } } } } } Wave { StartWaveOutput { Target wave_start_relay Action Trigger } DoneOutput { Target wave_finished_relay Action trigger } WaveSpawn { WaitBeforeStarting 5 } WaveSpawn { Name "wave01a" Where spawnbot TotalCount 10 MaxActive 1 SpawnCount 1 WaitBeforeStarting 3 WaitBetweenSpawns 0.25 TotalCurrency 200 TFBot { //Template T_TFBot_Giant_Soldier Class Scout Attributes AlwaysFireWeapon AddCond { Name "TF_COND_REPROGRAMMED" } Skill Expert Action Passive //Attributes MiniBoss } } } Wave { WaveSpawn { WaitBeforeStarting 5 } } }