//Created by //Yoovy: https://steamcommunity.com/profiles/76561198017198600/ //PDA Expert: https://steamcommunity.com/id/ILikePDAs/ #base robot_bettersurvival.pop #base robot_giantmania_2023.pop WaveSchedule { StartingCurrency 5000 RespawnWaveTime 0 FixedRespawnWaveTime yes CanBotsAttackWhileInSpawnRoom no ExtraSpawnPoint { Name "cashbot" TeamNum 3 X "1806" Y "3366" Z "752" } ExtraSpawnPoint { Name "flankbot_telecenter" TeamNum 3 X "-54" Y "-1864" Z "1280" } ExtraSpawnPoint { Name "flankbot_teleleft" TeamNum 3 X "-829.57" Y "-2057.75" Z "877.03" } ExtraSpawnPoint { Name "flankbot_teleright" TeamNum 3 X "793.45" Y "-1891.52" Z "877.03" } ExtraSpawnPoint { Name "spawnbot2_right" TeamNum 3 X "575" Y "-5200" Z "1064" } ExtraSpawnPoint { Name "spawnbot2_left" TeamNum 3 X "-1093" Y "-5402" Z "1024" } ExtraSpawnPoint { Name "spawnbot2_giant" TeamNum 3 X "-309" Y "-5210" Z "1064" } Templates { } SendBotsToSpectatorImmediately 1 MaxSpectators 0 RobotLimit 70 MaxRedPlayers 10 ExtendedUpgradesOnly 1 DisplayRobotDeathNotice 1 FlagCarrierMovementPenalty 0.35 SniperAllowHeadshots 1 MedigunShieldDamage 1 WaveStartCountdown 10 ForceRedMoney 1 SetCreditTeam 2 NoThrillerTaunt 1 TextPrintTime 0 BotPushaway 0 LuaScriptFile "scripts/roguelikemode_sv2.lua" PlayerAttributes { //All Classes "mod see enemy health" 1 "penetrate teammates" 1 Scout { "collect currency on kill" 1 } Medic { "increase buff duration hidden" 0.65 } Spy { "collect currency on kill" 1 } } PointTemplates { TierSystem { logic_relay { "targetname" "tier2_activated" "OnTrigger" "spawnbot_*,disable,,0,-1" "OnTrigger" "breaktime_notice,show,,0,-1" "OnTrigger" "tier_slay*,enable,,0,-1" "OnTrigger" "tier_slay*,disable,,59,-1" "OnTrigger" "tier2_started,show,,60,-1" "OnTrigger" "spawnbot2_*,enable,,60,-1" "OnTrigger" "flankbot_*,enable,,60,-1" } logic_relay { "targetname" "tier3_activated" "OnTrigger" "spawnbot2_*,disable,,0,-1" "OnTrigger" "flankbot_*,disable,,60,-1" "OnTrigger" "breaktime_notice,show,,0,-1" "OnTrigger" "tier_slay*,enable,,0,-1" "OnTrigger" "tier_slay*,disable,,59,-1" "OnTrigger" "tier3_started,show,,60,-1" "OnTrigger" "spawnbot3_*,enable,,60,-1" "OnTrigger" "flankbot_*,enable,,60,-1" } logic_relay { "targetname" "tier4_activated" "OnTrigger" "spawnbot3_*,disable,,0,-1" "OnTrigger" "flankbot_*,disable,,60,-1" "OnTrigger" "breaktime_notice,show,,0,-1" "OnTrigger" "tier_slay*,enable,,0,-1" "OnTrigger" "tier_slay*,disable,,59,-1" "OnTrigger" "tier4_started,show,,60,-1" "OnTrigger" "spawnbot4_*,enable,,60,-1" "OnTrigger" "flankbot_*,enable,,60,-1" } logic_relay { "targetname" "tier5_activated" "OnTrigger" "spawnbot4_*,disable,,0,-1" "OnTrigger" "flankbot_*,disable,,60,-1" "OnTrigger" "breaktime_notice,show,,0,-1" "OnTrigger" "tier_slay*,enable,,0,-1" "OnTrigger" "tier_slay*,disable,,59,-1" "OnTrigger" "tier5_started,show,,60,-1" "OnTrigger" "spawnbot5_*,enable,,60,-1" "OnTrigger" "flankbot_*,enable,,60,-1" } logic_relay { "targetname" "all_tiers_activated" "OnTrigger" "spawnbot*,disable,,0,-1" "OnTrigger" "flankbot_*,disable,,60,-1" "OnTrigger" "tier_slay*,enable,,0,-1" "OnTrigger" "tier_slay*,disable,,59,-1" "OnTrigger" "spawnbot*,enable,,60,-1" "OnTrigger" "flankbot_*,enable,,60,-1" } training_annotation { "targetname" "breaktime_notice" "origin" "48 -578.6 1133.02" "lifetime" "6" "display_text" "Tier completed! Next tier inbound in 60 seconds..." } training_annotation { "targetname" "tier2_started" "origin" "-321.02 -4852.53 1109.03" "lifetime" "6" "display_text" "TIER 2 HAS BEGUN" } training_annotation { "targetname" "tier3_started" "origin" "-321.02 -4852.53 1109.03" "lifetime" "6" "display_text" "TIER 3 HAS BEGUN" } training_annotation { "targetname" "tier4_started" "origin" "-321.02 -4852.53 1109.03" "lifetime" "6" "display_text" "TIER 4 HAS BEGUN" } training_annotation { "targetname" "tier5_started" "origin" "-321.02 -4852.53 1109.03" "lifetime" "6" "display_text" "TIER 5 HAS BEGUN" } trigger_hurt { "targetname" "tier_slaybots" "mins" "-9999 -9999 -9999" "maxs" "9999 9999 9999" "filtername" "blueteam_filter" "spawnflags" "1096" "damage" "99999" "damagetype" "256" "StartDisabled" "1" } filter_activator_tfteam // no need to rely on map. { "targetname" "blueteam_filter" "Negated" "0" "TeamNum" "3" } } MissionName { logic_auto { "origin" "0 0 0" "targetname" "mainrelay" "OnMapSpawn" "tf_objective_resource,$SetClientProp$m_iszMvMPopfileName,Survival Roguelike,0,-1" } } Resupply_Logic // Resupplies player for proper clips, among other things { trigger_once { "Mins" "2 2 2" "Maxs" "2 2 2" "SpawnFlags" "1" "OnTrigger" "!activator,$regenerate,,0,-1" "OnTrigger" "!self,kill,,1,-1" } } PocketPistol_Logic { trigger_once { "Mins" "2 2 2" "Maxs" "2 2 2" "SpawnFlags" "1" "OnTrigger" "!activator,$AddPlayerAttribute,hidden primary max ammo bonus|1.25,0,-1" } } Equalizer_Logic { trigger_once { "Mins" "2 2 2" "Maxs" "2 2 2" "SpawnFlags" "1" "OnTrigger" "!activator,$AddPlayerAttribute,hidden primary max ammo bonus|1.25,0,-1" } trigger_once { "Mins" "2 2 2" "Maxs" "2 2 2" "SpawnFlags" "1" "OnTrigger" "!activator,$AddPlayerAttribute,hidden secondary max ammo bonus|1.25,0,-1" } } RunnersBoots_Logic { trigger_once { "Mins" "2 2 2" "Maxs" "2 2 2" "SpawnFlags" "1" "OnTrigger" "!activator,$AddPlayerAttribute,air dash count|1,0,-1" } } lerng // trying to add random chance { OnParentKilledOutput // avoid stacking outputs { Target "!activator" Action "$RemoveOutput" Param "$OnDeath" } OnSpawnOutput { Target "popscript" Action "$botchance" } logic_relay // only here so the pt can spawn { } } telemodel { NoFixup 1 prop_dynamic { "targetname" "spawnprop1" "classname" "prop_dynamic" "model" "models/props_mvm/robot_spawnpoint.mdl" "DefaultAnim" "idle" "disableshadows" "1" "DisableBoneFollowers" "1" "modelscale" 1.5 "solid" "1" "spawnflags" "0" "skin" 1 } prop_dynamic { "targetname" "spawnprop2" "classname" "prop_dynamic" "model" "models/buildables/teleporter_light.mdl" "DefaultAnim" "running" "disableshadows" "1" "DisableBoneFollowers" "1" "modelscale" 1.5 "solid" "0" "spawnflags" "0" "skin" 1 } } } PlayerItemEquipSpawnTemplate { Name "PocketPistol_Logic" ItemName "Pretty Boy's Pocket Pistol" Origin "0 0 0" } PlayerItemEquipSpawnTemplate { Name "Equalizer_Logic" ItemName "The Equalizer" Origin "0 0 0" } PlayerItemEquipSpawnTemplate { Name "RunnersBoots_Logic" ItemName "Runner's Boots" Origin "0 0 0" } PlayerSpawnTemplate { Name "Resupply_Logic" } SpawnTemplate "MissionName" SpawnTemplate "TierSystem" SpawnTemplate { Name "telemodel" Origin "793.45 -1891.52 834.03" Angles "-0.59 89 0" } SpawnTemplate { Name "telemodel" Origin "-829.57 -2057.75 834.03" Angles "-0.59 89 0" } SpawnTemplate { Name "telemodel" Origin "-54 -1868 1280" Angles "-0.59 89 0" } Wave { Explanation //Dispayed once the wave is initialized { Line "Made by {yellow}Yoovy {reset}& {yellow}PDA Expert" Line "Welcome to {red}SURVIVAL. {reset}An endless wave that only increases in difficulty the longer you hold out!" Line "Due to {green}High Amount of Robots{reset} they'll be sending out. More {red}Mercenaries{reset} can join you to outstand this Robot Apocalypse." Line "Further {green}Modified{reset} and {blue}Added{reset} By {purple}Anav" Line "This is {yellow}Survival{reset} {blue}Randomized Upgrades{reset}, so you will be given Upgrade Points per 2 minutes." Line "{red}THIS IS STILL WIP!" Line "{green}TIER 1 {blue}Start: {reset}Commons / Giants" Line "{green}TIER 2 {blue}5 Minutes: {reset}Stronger Commons / Stronger Giants" Line "{green}TIER 3 {blue}10 Minutes: {reset}Bosses" Line "{green}TIER 4 {blue}15 Minutes: {reset}Omegas" Line "{green}TIER 5 {blue}20 Minutes: {reset}Giantmania" Line "{green}Cash will be given out occasionally by Saxton Hale." } CustomMaxWaveNumber 0 CustomWaveNumber 100 WaitWhenDone 65 Checkpoint Yes InitWaveOutput { Target wave_start_relay Action RunScriptCode Param " for ( local particlesystems; particlesystems = Entities.FindByClassname(particlesystems, `info_particle_system`); ) { if ( (particlesystems.GetName() == `newrain`) ) break; SpawnEntityFromTable(`info_particle_system`, { origin = (particlesystems.GetLocalOrigin() + Vector(0 0 120)) targetname = `newrain` effect_name = `env_rain_002_256` start_active = 1 flag_as_weather = 1 }) }" } StartWaveOutput { Target bombpath_arrows_clear_relay Action Trigger } DoneOutput { Target wave_finished_relay Action Trigger } WaveSpawn { Name FunIsEndless TotalCurrency 0 TotalCount 2 MaxActive 1 SpawnCount 1 WaitBeforeStarting 1 WaitBetweenSpawns 1000000000 Where spawnbot_left Squad { RandomChoice { RandomChoice { TFBot { Class Scout Name "Good Luck." ClassIcon spammer WeaponRestrictions MeleeOnly Health 5 Scale 0.01 Attributes "SuppressFire" Attributes "IgnoreFlag" CharacterAttributes { "is suicide counter" 1 } } } } } } WaveSpawn { Name CashGiver TotalCurrency 1500 TotalCount 5 MaxActive 3 SpawnCount 1 WaitBeforeStarting 10 WaitBetweenSpawns 300 Where cashbot Support 1 RandomChoice { RandomChoice { TFBot { Template CashBot } } } } //////////// // TIER 1 // //////////// WaveSpawn { Name Tier1Commons TotalCurrency 50000000 TotalCount 10000000 MaxActive 16 SpawnCount 2 WaitBeforeStarting 0 WaitBetweenSpawns 1 Where spawnbot_left Where spawnbot_right RandomSpawn 1 Support 1 RandomChoice { //Scouts TFBot { Template Tier1_Scout HideIcon 1 SpawnTemplate "lerng" Skill Normal } //Scouts TFBot { Template Tier1_Scout HideIcon 1 SpawnTemplate "lerng" Skill Normal } TFBot { Template Tier1_Scout_FAN HideIcon 1 SpawnTemplate "lerng" Skill Normal } TFBot { Template Tier1_Scout_FAN HideIcon 1 SpawnTemplate "lerng" Skill Normal } //Soldier TFBot { Template Tier1_Soldier_Buff_Banner HideIcon 1 SpawnTemplate "lerng" Skill Normal } TFBot { Template Tier1_Soldier_Extended_Buff_Banner HideIcon 1 SpawnTemplate "lerng" Skill Normal } TFBot { Template Tier1_Soldier_Extended_Concheror HideIcon 1 SpawnTemplate "lerng" Skill Normal } } } //Weak Giants Starts Spawning Later to Compensate for overload. WaveSpawn { Name Tier1Giants TotalCurrency 15000000 TotalCount 1000000 MaxActive 4 SpawnCount 2 WaitBeforeStarting 120 WaitBetweenSpawns 1 Where spawnbot_left Where spawnbot_right RandomSpawn 1 Support 1 RandomChoice { //Scouts TFBot { Template Tier1_GiantScout HideIcon 1 Skill Normal } //Soldier TFBot { Template Tier1_Giant_Soldier HideIcon 1 Skill Normal } } } WaveSpawn { FirstSpawnWarningSound "ambient\alarms\doomsday_lift_alarm.wav" WaitBeforeStarting 296 } WaveSpawn { FirstSpawnWarningSound "ambient\alarms\doomsday_lift_alarm.wav" WaitBeforeStarting 298 } WaveSpawn { FirstSpawnWarningSound "ambient\alarms\doomsday_lift_alarm.wav" WaitBeforeStarting 300 FirstSpawnOutput { Target "tier2_activated" Action Trigger } } WaveSpawn { FirstSpawnWarningSound "vo\mvm_get_to_upgrade01.mp3" WaitBeforeStarting 300 } WaveSpawn { FirstSpawnWarningSound "ambient\explosions\explode_5.wav" WaitBeforeStarting 300 } WaveSpawn { FirstSpawnWarningSound "vo\announcer_begins_30sec.mp3" WaitBeforeStarting 330 } WaveSpawn { FirstSpawnWarningSound "vo\announcer_begins_10sec.mp3" WaitBeforeStarting 350 } WaveSpawn { FirstSpawnWarningSound "vo\announcer_begins_9sec.mp3" WaitBeforeStarting 351 } WaveSpawn { FirstSpawnWarningSound "vo\announcer_begins_8sec.mp3" WaitBeforeStarting 352 } WaveSpawn { FirstSpawnWarningSound "vo\announcer_begins_7sec.mp3" WaitBeforeStarting 353 } WaveSpawn { FirstSpawnWarningSound "vo\announcer_begins_6sec.mp3" WaitBeforeStarting 354 } WaveSpawn { FirstSpawnWarningSound "vo\announcer_begins_5sec.mp3" WaitBeforeStarting 355 } WaveSpawn { FirstSpawnWarningSound "vo\announcer_begins_4sec.mp3" WaitBeforeStarting 356 } WaveSpawn { FirstSpawnWarningSound "vo\announcer_begins_3sec.mp3" WaitBeforeStarting 357 } WaveSpawn { FirstSpawnWarningSound "vo\announcer_begins_2sec.mp3" WaitBeforeStarting 358 } WaveSpawn { FirstSpawnWarningSound "vo\announcer_begins_1sec.mp3" WaitBeforeStarting 359 } WaveSpawn { FirstSpawnWarningSound "mvm\mvm_warning.wav" WaitBeforeStarting 359 } WaveSpawn { FirstSpawnWarningSound "mvm\mvm_warning.wav" WaitBeforeStarting 354 } WaveSpawn { FirstSpawnWarningSound "mvm\mvm_warning.wav" WaitBeforeStarting 357 } WaveSpawn { FirstSpawnWarningSound "mvm\ambient_mp3\mvm_siren.mp3" WaitBeforeStarting 360 } //////////// // TIER 2 // //////////// WaveSpawn { Name Tier2Commons TotalCurrency 2000000000 TotalCount 10000000 MaxActive 24 SpawnCount 4 WaitBeforeStarting 360 WaitBetweenSpawns 0 Where spawnbot2_left Where spawnbot2_right RandomSpawn 1 Support 1 RandomChoice { //Scouts TFBot { Template Tier2_Soldier_DirectHit HideIcon 1 Skill Expert } TFBot { Template Tier2_Spy_Ringer HideIcon 1 Skill Expert } TFBot { Template Tier2_Soldier_RocketPush HideIcon 1 Skill Expert } TFBot { Template Tier2_Pyro_Fury HideIcon 1 Skill Expert } } } WaveSpawn { Name Tier2Supporters TotalCurrency 150000000 TotalCount 1000000 MaxActive 3 SpawnCount 1 WaitBeforeStarting 360 WaitBetweenSpawns 0 Where spawnbot2_left Where spawnbot2_right RandomSpawn 1 Support 1 RandomChoice { TFBot { Template Tier2_Soldier_InfiniteBuff_Banner HideIcon 1 Skill Expert } TFBot { Template Tier2_Soldier_Infinite_Battalion HideIcon 1 Skill Expert } TFBot { Template Tier2_Soldier_Infinite_Concheror HideIcon 1 Skill Expert } } } WaveSpawn { Name Tier2Giants TotalCurrency 50000000 TotalCount 1000000 MaxActive 4 SpawnCount 1 WaitBeforeStarting 420 WaitBetweenSpawns 0 Where spawnbot2_giant RandomSpawn 1 Support 1 RandomChoice { TFBot { Template Tier2_Giant_Pyro HideIcon 1 Skill Expert } TFBot { Template Tier2_Giant_Demoman HideIcon 1 Skill Expert } } } } // WaveSpawn // { // FirstSpawnWarningSound "ambient\alarms\doomsday_lift_alarm.wav" // WaitBeforeStarting 526 // } // WaveSpawn // { // FirstSpawnWarningSound "ambient\alarms\doomsday_lift_alarm.wav" // WaitBeforeStarting 528 // } // WaveSpawn // { // FirstSpawnWarningSound "ambient\alarms\doomsday_lift_alarm.wav" // WaitBeforeStarting 530 // FirstSpawnOutput // { // Target "tier3_activated" // Action Trigger // } // } // WaveSpawn // { // FirstSpawnWarningSound "vo\mvm_get_to_upgrade01.mp3" // WaitBeforeStarting 530 // } // WaveSpawn // { // FirstSpawnWarningSound "ambient\explosions\explode_5.wav" // WaitBeforeStarting 530 // } // WaveSpawn // { // FirstSpawnWarningSound "vo\announcer_begins_30sec.mp3" // WaitBeforeStarting 560 // } // WaveSpawn // { // FirstSpawnWarningSound "vo\announcer_begins_10sec.mp3" // WaitBeforeStarting 590 // } // WaveSpawn // { // FirstSpawnWarningSound "vo\announcer_begins_9sec.mp3" // WaitBeforeStarting 591 // } // WaveSpawn // { // FirstSpawnWarningSound "vo\announcer_begins_8sec.mp3" // WaitBeforeStarting 592 // } // WaveSpawn // { // FirstSpawnWarningSound "vo\announcer_begins_7sec.mp3" // WaitBeforeStarting 593 // } // WaveSpawn // { // FirstSpawnWarningSound "vo\announcer_begins_6sec.mp3" // WaitBeforeStarting 594 // } // WaveSpawn // { // FirstSpawnWarningSound "vo\announcer_begins_5sec.mp3" // WaitBeforeStarting 595 // } // WaveSpawn // { // FirstSpawnWarningSound "vo\announcer_begins_4sec.mp3" // WaitBeforeStarting 596 // } // WaveSpawn // { // FirstSpawnWarningSound "vo\announcer_begins_3sec.mp3" // WaitBeforeStarting 597 // } // WaveSpawn // { // FirstSpawnWarningSound "vo\announcer_begins_2sec.mp3" // WaitBeforeStarting 598 // } // WaveSpawn // { // FirstSpawnWarningSound "vo\announcer_begins_1sec.mp3" // WaitBeforeStarting 599 // } // WaveSpawn // { // FirstSpawnWarningSound "mvm\mvm_warning.wav" // WaitBeforeStarting 591 // } // WaveSpawn // { // FirstSpawnWarningSound "mvm\mvm_warning.wav" // WaitBeforeStarting 594 // } // WaveSpawn // { // FirstSpawnWarningSound "mvm\mvm_warning.wav" // WaitBeforeStarting 597 // } // WaveSpawn // { // FirstSpawnWarningSound "mvm\ambient_mp3\mvm_siren.mp3" // WaitBeforeStarting 600 // SpawnMessage "BEYOND THIS TIER IS UNFINISHED!" // } // ////////// // //TIER 3// // //BOSSES// // ////////// // WaveSpawn // { // Name Tier2Commons // TotalCurrency 0 // TotalCount 1000000 // MaxActive 16 // SpawnCount 1 // WaitBeforeStarting 360 // WaitBetweenSpawns 0 // Where spawnbot2_left // Where spawnbot2_right // RandomSpawn 1 // Support 1 // RandomChoice // { // RandomChoice // { // TFBot // { // Template Tier1_Scout // Skill Expert // } // } // } // } // } }