//some documentation about how this works //by using $ForceRespawnDead on player, dead blu bots are also revived even after the wave has ended //however bots spawned this way will be stripped of all their cosmetics, items, assigned attributes and scale //characterattribute, itemattribute, behavior, health, name and some rafmod keyvalues like Action will remain intact //using EventChangeAttribute and $ChangeAttributes you're able to reapply their items and modify attributes as well as having access to some rafmod keyvalues like AddCond or Taunt //tfbot attributes applied in EventChangeAttribute still won't work however //DO NOT make setup bots killable in setup it'll lead to some really weird shits like fuckin removing bots from the next wave //because only bots dying near the end of a wave will be respawned this wave, you should keep the bot(s) you can to spawn in setup time in the final subwave //setup bots can carry the bomb and even deploy it, a deployed bomb during setup won't set you back to the previous wave you'll still stay in the wave you're on //this template kills off bots after the next wave starts but if you know what you're doing you should be able to keep them or a select few to survive through to the next wave //is there any practical application to this considering how restriction and potentially hazardous it is? probably not //is it cool and funny? hell yeah //go use this for a meme mission or something //have fun #base robot_standard.pop #base robot_giant.pop tomboys_are_cute { StartingCurrency 1984 CanBotsAttackWhileInSpawnRoom no RespawnWaveTime 0 PointTemplates { SetupBotInit { OnSpawnOutput { Target "!activator" Action "AddOutput" Param "targetname megacool" Delay 0 } } BotsInSetup { logic_auto { "OnMapSpawn" "wave_finished_relay,AddOutput,OnTrigger trigger_setup_bot:Enable::0:-1,0,-1" "OnMapSpawn" "wave_finished_relay,AddOutput,OnTrigger kill_uncool_bots:Enable::0:-1,0,-1" "OnMapSpawn" "wave_finished_relay,AddOutput,OnTrigger player:$ForceRespawnDead::0:-1,0.1,-1" "OnMapSpawn" "wave_start_relay,AddOutput,OnTrigger trigger_setup_bot:Disable::0:-1,0,-1" "OnMapSpawn" "wave_start_relay,AddOutput,OnTrigger kill_uncool_bots:Disable::0:-1,0,-1" "OnMapSpawn" "wave_start_relay,AddOutput,OnTrigger megacool:AddOutput:targetname :0.01:-1 ,0,-1" //reset target name "OnMapSpawn" "wave_start_relay,AddOutput,OnTrigger megacool:$Suicide::0:-1,0,-1" } filter_activator_tfteam { "targetname" "filter_is_blu" "Negated" "0" "TeamNum" "3" "OnPass" "!activator,$Suicide,,0,-1" } filter_activator_name { "targetname" "filter_is_cool" "Negated" "0" "filtername" "megacool" "OnPass" "!activator,AddOutput,modelscale 1.9,0,-1" //scale doesn't apply to setup bots but you can change it manually "OnPass" "!activator,$TeleportToEntity,cool_corner,0,-1" //optional if you want to teleport the setup bot(s) to a specific location like the red team's spawnroom to freak them the fuck out "OnFail" "!activator,$Suicide,,1,-1" // "OnFail" "!activator,$AddPlayerAttribute,SET BONUS: move speed set bonus|0.001,0,-1" // "OnFail" "!activator,$AddPlayerAttribute,cannot pick up intelligence|1,0,-1" // "OnFail" "!activator,AddOutput,targetname megacool,0,-1" //so that they're killed the next wave } info_target { "targetname" "cool_corner" "origin" "2192.4 -198.5 257.0" } trigger_hurt { "targetname" "kill_on_wave_start" "origin" "0 0 0" "mins" "-10000.0 -10000.0 -10000.0" "maxs" "10000.0 10000.0 10000.0" "damage" "999999" "filtername" "filter_is_blu" "StartDisabled" "1" "spawnflags" "1" "OnUser1" "!self,Enable,,0,-1" "OnUser1" "!self,Disable,,0.05,-1" } trigger_multiple { "targetname" "kill_uncool_bots" "origin" "0 0 0" "mins" "-10000.0 -10000.0 -10000.0" "maxs" "10000.0 10000.0 10000.0" "filtername" "filter_is_blu" "StartDisabled" "1" "spawnflags" "1" "OnStartTouch" "filter_is_cool,TestActivator,,0,-1" } trigger_multiple { "targetname" "trigger_setup_bot" "origin" "0 0 0" "mins" "-10000.0 -10000.0 -10000.0" "maxs" "10000.0 10000.0 10000.0" "filtername" "filter_is_blu" "StartDisabled" "1" "spawnflags" "1" "OnStartTouch" "!activator,$ChangeAttributes,Setup,0,-1" } } } SpawnTemplate BotsInSetup Wave { StartWaveOutput { Target wave_start_relay Action Trigger } DoneOutput { Target wave_finished_relay Action Trigger } WaveSpawn { Where spawnbot TotalCount 10 MaxActive 10 SpawnCount 10 WaitBeforeStarting 0 WaitBetweenSpawns 0 TotalCurrency 0 TFBot { Class Scout } } WaveSpawn { Where spawnbot TotalCount 1 MaxActive 1 SpawnCount 1 WaitBeforeStarting 0 WaitBetweenSpawns 0 TotalCurrency 0 Support Limited TFBot { SpawnTemplate "SetupBotInit" Class Heavyweapons Name "ayo press f4" Health 60000 Action Mobber Skill Expert EventChangeAttributes { Default { CharacterAttributes { "move speed bonus" 0.0001 "cannot pick up intelligence" 1 } } Setup { // AddCond // { // Index 43 // } // Taunt // { // Delay 10 // Repeats 0 // Duration 10 // Name "Taunt: Kazotsky Kick" // } //UseHumanAnimations 1 Item "War Head" Item "Fists of Steel" WeaponRestrictions MeleeOnly Attributes MiniBoss //will not work Attributes UseBossHealthBar //will not work ItemAttributes { ItemName "Fists of Steel" "fire rate bonus" 0.6 "damage bonus" 5 } CharacterAttributes { "model scale" 1.9 //the scale attribute doesn't work just use this "move speed bonus" 0.4 "health regen" 250 "damage force reduction" 0.3 "airblast vulnerability multiplier" 0.3 "override footstep sound set" 2 "airblast vertical vulnerability multiplier" 0.1 "rage giving scale" 0.1 "cannot be backstabbed" 1 //prevent spies from epicly trolling and instakilling the megacool bot "cannot pick up intelligence" 1 //optional if you don't want the boss to carry the bomb } } } } } } Wave { StartWaveOutput { Target wave_start_relay Action Trigger } DoneOutput { Target wave_finished_relay Action Trigger } WaveSpawn { Where spawnbot TotalCount 22 MaxActive 22 SpawnCount 22 WaitBeforeStarting 0 WaitBetweenSpawns 0 TotalCurrency 0 TFBot { Class Demoman } } } }