#base robot_giant.pop #base robot_standard.pop // This is an example mission with vscript and popextensions // Functions provided by popextensions are defined at the end of the file WaveSchedule { StartingCurrency 1200 RespawnWaveTime 2 CanBotsAttackWhileInSpawnRoom 1 Wave { InitWaveOutput { Target gamerules // gamerules or tf_gamerules, depending on the map Action RunScriptCode Param " IncludeScript(`popextensions_main`, getroottable()) // Besides loading your 'point templates' from a separate pointtemplates.nut file, // you can also add them on the fly if(!(`PointTemplates` in getroottable())) ::PointTemplates <- {} PointTemplates.SampleTemplateName <- { NoFixup = 1, //Name fix-up behaves somewhat similarly to point_template name fix-up, appending a unique number to the end of the targetname to separate identical templates. Set NoFixup 1 to disable this behavior [0] = { //first entity to spawn in the template item_teamflag = { //entity classnames here targetname = `example_flag` origin = `0 0 0` angles = `0 0 0` //other item_teamflag key/values go in here } }, [1] = { //second entity to spawn in the template prop_dynamic = { targetname = `example_barrel` parentname = `example_flag` //parent a barrel prop to the flag model = `models/props_badlands/barrel01.mdl` } } } PointTemplates.Sentry <- { KeepAlive = 1, //Dont remove entities after their spawner had been killed RemoveIfKilled = `sentry`, // Remove all entities in template if the specified entity is killed [0] = { OnSpawnOutput = { //Parent entity is the !activator. Set builder to parent entity Target = `sentry` //targetname of an entity added below Action = `setbuilder` Delay = 0.00 } }, [1] = { OnParentKilledOutput = { //kill players after the carrier was dead Target = `player` Action =`sethealth` Delay = 0.00 Param = 1 } }, [2] = { 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)= } }, [3] = { obj_sentrygun = { targetname = `sentry` //Entity name. Required if the entity is going to be referenced somewhere origin = `0 0 0` teamnum = 3 // 2 - Red team, 3 - Blu team SolidToPlayer = 0 } } } " } StartWaveOutput { // if you have templates that you want to spawn on wave start, replace the StartWaveOutput trigger with RunScriptCode Target gamerules // gamerules or tf_gamerules, depending on the map Action RunScriptCode Param " // The original StartWaveOutput trigger, change if necessary EntFire(`wave_start_relay`, `Trigger`) // SpawnTemplate's signature is (string pointtemplatename, handle parent = null, string|vector origin = '', string|QAngle angles = '') // calling SpawnTemplate here will spawn when the wave starts SpawnTemplate(`Sentry`, null, `0 -800 500`) " } DoneOutput { Target wave_finished_relay Action trigger } WaveSpawn { Name "Wave3" Where spawnbot TotalCount 2 MaxActive 2 SpawnCount 2 WaitBeforeStarting 1 WaitBetweenSpawns 5 TotalCurrency 5000 TFBot { Template T_TFBot_Giant_Soldier Attributes HoldFireUntilFullReload Item "The Cow Mangler 5000" Tag "popext_spawntemplate|Sentry" // spawns the template with the bot as its parent } } } }