nyuuzyou/wikis huggingface dataset:
WiseNPC05

Part two of WiseNPC05. The same Strider is used but starts out underground.
Events in this project:
#Map spawns with a Scanner flying around.
#Ground breaks open and a Strider walks up out of the water.
#Scanner joins Strider as it begins patrolling.
#Scanner is equipped with a Combine Mine, still follows Strider.
#Scanner deploys the Combine Mine, continues to follow Strider.
The hole in the ground illustrates a few considerations about using Striders.
#The Strider can be hidden out of sight until needed.
#It can climb out of holes that are deeper than it is tall.
#An angled exit point from holes can help to the effect.
Most all of the events in this project are fired off from one .
The others are Outputs from two entities.
There is one exception to the note above, placement of the second path_corner in this project is crucial. The first two path_corner are only used once, and then the Strider will follow other path_corners. These are placed so the Strider will come up out of the hole the way we want and will avoid the hole during its patrol.
The concept of hiding a Strider can be achieved in many ways. In the Train Station levels of HL2 a Strider is hidden behind a large building. The same method I’ve used here could be done with a wall. Apparently you can also carry Striders with Combine Drop Ships. Sweet. 
These are the Outputs for our trigger_once:
For spawning the scanner:
*Class: point_template
*Name: strider_template
*Template 1: strider_1
*Templace 2: scanner_1
*Flag: Preserve entity names
Notice the Outputs for our trigger_once. Seven seconds after the map spawns the Scanner will begin to follow the Strider:
	OnTrigger	scanner_1	SetFollowTarget	strider_1	7.00	Yes
The ground breaking open is done with a .
*Name: ssdoor01
*Prop data: Rock medium
*Flag: Break on Trigger only
These are the properties for the Scanner:
*Class: npc_cscanner
*Name: scanner_1
*Should Inspect: No
Since the Scanner will be following our Strider we don’t need to do anything else, however to illustrate that it can follow the Strider and accomplish other tasks I’ve added Outputs to two of the path_corners that will equip the Scanner with a Combine Mine and then at the next path_corner deploy, drop, the mine.
When the OnPass output fires from the path_corner, they target our scanner (scanner_1) with an input. 3 uses Equipmine, 4 uses DeployMine.
The first time the Scanner passes path_corner 3 it will get a Combine Mine. When it reaches path_corner 4 it will drop the mine.
You may see this in the console:
Late precache of models/props_combine/combine_mine01.mdl
Late precache of sprites/glow01.vmt
You can fix this simply by hiding a mine somewhere. In this project I hid one under ground.
==See also==
*Example VMF
*Example VMF backup
WiseNPC06

==Introduction==
Events in this project:
#Helicopter takes off.
#Begins patrol of the area.
#Drops a single bomb.
#Begins shooting at Rebel Citizen.
#Citizen fires Rocket and destroys Chopper.
From my experience takes trial and error to get it performing the way you want. On the other hand it’s loaded with options. With its extensive IO commands you have a lot of control over this beast. Experiment with the sample file below, add more inputs for it, get it to make a bombing run, etc.
Navigation for the npc_helicopter is done with and entities. It has a nice AI system that will allow it to patrol the area where you place these entities. Navigation for the is done by placing entities on the ground. Some of the aspects of the Chopper that I don’t cover in this project are the avoidance and target systems you can use.
==Creation==
In this project I simply added one path_track gave it a name and then with it selected held and I would drag a clone to a new location. The process was repeated until all four were created then for the forth I added the name of the first path_track as its Next Stop Target. The whole process only takes a few seconds. The info_node_air entities are placed randomly around the map to give the Chopper a running path away from the tracks. It will drift along the combination of these entities.
These are the properties for each of the entities used in this project.
npc_helicopter:
*Name: heli01
*Flags: Loud Rotor wash sound, Helicopter lights, More aggressive attacks, Await input, Fall to ground, Long Visibility
	OnDamaged	heli01	Break		0.25	Yes
Once the Citizen fires a rocket at the Chopper, and hits it, the Chopper will break apart 0.25 seconds later. Remove this behavior for the normal effect; it will take around 20 rockets to destroy it. (Porter's note: Exactly what difficulty setting are you ON?)
npc_citizen:
*Name: cit01
*Damage filter: damagefilter1
*Weapons: RPG
*Type: Rebel
*Model: Female 1
*Flags: Random Head, Not commandable, Random female head, Fall to ground, Long Visibility, Fade corpse
By adding this damage filter the Chopper will not be able to hurt our Citizen.
*Class: filter_damage_type
*Name: damagefilter1
*Filter mode: Allow entities that match criteria
*Damage type: GENERIC
Each of the key players in this project has an . 
*Name: ai01, ai02 and ai03
*Subject: cit01, heli01 and heli01
*Target: heli01, cit01 and !player
*Disposition: Hate, Like and Neutral
*Radius for subject: 0
*Disposition priority: 100, 5 and 5
*Start active: No, Yes and Yes
*Reciprocal: No
To start all of the events a is placed where the Player will spawn. (Porter's note: Uh. ?)
Notice that all of the work is done from this one trigger. The key is getting the timing right. By adding a few scripted sequences this scene could really come to life.
==See also==
*Example VMF
*Example VMF backup
WiseNPCWeapons

https://web.archive.org/web/20060227005123im_/http://www.akilling.org:80/akg/assets/wiseNPCweapons01.jpg
https://web.archive.org/web/20060227005129im_/http://www.akilling.org:80/akg/assets/wiseNPCweapons02.jpg
The sample file for this project, at the page bottom, illustrates:
#Disabled APC burning in the distance
#Attacks watermelon with Rockets and gunfire.
#Melons continue to spawn as broken.
The and entities used in this tutorial can add some very nice effects to your projects. Experiment with the settings on each of these to achieve your own effects. The settings I’ve used in this project are examples only.
One thing I believe helps the rocket effect is a crooked path. An arched path would look just as nice, but not a straight line. The path for the npc_launcher is created with entities. In this project the only one I created was the first one, gave it a name then cloned the rest by using the Shift+mouse drag method to create the entire path.
The 9 path_corner entities for this project are shown in the image below.
https://web.archive.org/web/20060227005135im_/http://www.akilling.org:80/akg/assets/wiseNPCweapons03.jpg
The name of the first path_corner is specified in the properties for the npc_launcher.
*Name: launcher1
*Target Path Corner: corner1
*Start On: Off
*Missile Model: models/Weapons/W_missile.mdl
*Launch Sound: PropAPC.FireRocket
*Fly Sound: eli_lab.attack_battleloop_1
*Smoke Trail: On
*Launch Smoke: On
*Launch Delay: 7
*Launch Speed: 400
*Path Corner Name: corner1
*Homing Speed: 400
*Homing Strength: 10
*Gravity: 1.0
*Min Range: 100
*Max Range: 2048
*Spin Magnitude: 10
*Spin Speed: 10
*Damage: 50
*Damage Radius: 256
*Flags: Check LOS
Notice the sound I used for the Fly Sound. Experiment with this. The default fly sound will generate an error. Battle sounds probably work best for this as the sound can still be heard after the rocket finds the target.
These are the properties for the two env_gunfire entities.
*Name: gunfire1 and gunfire2
*Start Disabled: Yes
*Target: bullseye1
*Min Burst Size: 10 and 7
*Max Burst Size: 40 and 15
*Min Delay Between Bursts: 2 and 1
*Max Delay Between Bursts: 7 and 2
*Rate of Fire: 10
*Bullet spread: 15 Degrees and 5 Degrees
*Bullet distribution: Evenly distributed
*Collision detection: None. Cheap for performance.
*Shoot sound: AR2 and SMG1
*Tracer: AR2
The target for each of these entities in this project is an .
*Name: bullseye1
*Flags: Not Solid, Take No Damage, Perfect Accuracy
The npc_bullseye will be assigned as an enemy of the Rocket launcher via an Output from the trigger_once.
	OnTrigger	launcher1	SetEnemyEntity	bullseye1	0.00	Yes
Outputs for our trigger_once:
https://web.archive.org/web/20060227005141im_/http://www.akilling.org:80/akg/assets/wiseNPCweapons03.png
For nothing more than an added effect I’m spawning Watermelons over the target.
==See also==
*Example VMF
*Example VMF backup
WiseNPCrapjump

The sample file for this project, at the page bottom, illustrates:
*Combine Police Rappels from ceiling then jumps down to join the attack.
*Second Combine Police jumps down from above and begins to attack.
As you see there are two methods of getting NPC’s to jump down from heights illustrated in this project.
*The first method is a that begins when the rappelling Combine Police has completed its rappel.
*The second method uses entities to get the Combine Police to jump down.
Both methods require some finessing. The NPC won’t jump down if it is too far and in the first method the animation is already set so you need to use landing points that match.
As you can see in this project I’ve created an electrical panel and a toolbox for the first Combine Police to jump down onto.
These are brush based and work out well for a project like this.
For the second Combine Police that makes use of info_node_hint entities I’ve created a group for the hints this NPC will use. This is to keep the NPC from getting distracted.
The first method works much better as the info_node_hint method can easily be interrupted by other events in your project.
===The first Combine Police===
These are the setting for the first Combine Police.
=====npc_metropolice=====
{{entity-kvalue-start|npc_metropolice} 
 
 
 
 
 
 
=====point_template=====
 
 
 
=====scripted_sequence=====
 
 
 
 
=====trigger_once=====
This starts the events into place.
 
=====ai_relationship=====
The is used to keep the first Combine Police from shooting until it has jumped down. The second Combine Police will shoot at will and still jump down.
 
On the ground level for the first Combine Police I’ve placed one info_node but even this isn’t needed as its motions are all scripted up until the point where the NPC begins to attack. The effect I’ve created for this NPC is a spot it will jump down to and defend.
===The second Combine Police===
These are the properties for the second Combine Police.
=====npc_metropolice=====
 
 
 
 
 
 
 
 
=====info_node_hint=====
The info_node_hint entities under and in front of this NPC.
 
 
 
 
 
=====scripted_sequence=====
The scripted_sequence used for this NPC.
 
 
 
 
 
==See also==
*Example VMF 
*Example VMF backup
Category:Level Design
WiseNPCrappel

The sample file for this project, at the page bottom, illustrates:
#Player spawns in cement room with hole in ceiling.
#Combine police rappels from hole.
#Once on ground begins attacking player.
These are very simple to setup in your maps.
I’m doing more in this project than is necessary.
#You don’t have to spawn the NPC with an . Using one however is better on performance and keeps the NPC hidden until needed.
#You don’t need the . But it is a simple addition creating a much better effect.
The simple method is to:
#Place an entity in the map where you want it to rappel from.
#Set the property Waiting to rappel to Yes.
#From any other entity, like a trigger, send the input BeginRappel.
Using the simple method requires that you hide the npc_metropolice until its time to rappel.
===Entities===
In this project the is used to spawn the npc_metropolice by way of an npc_template_maker.
====trigger_once====
 
 
 
====npc_template_maker====
 
 
 
 
 
 
 
====npc_metropolice====
 
 
 
 
 
 
========
 
 
 
 
 
 
 
===Setup in Hammer===
In the image below you can see the npc_metropolice waiting to rappel, and the trigger_once that will begin the rappel.
image:wiseNPCrappel02.jpg|waiting to rappel
image:wiseNPCrappel03.jpg|Trigger for the event
I’ve placed entities on the ground in random spots to give the NPC Police walking hints.
That’s all there is to it. Give them enough room to rappel and they can drop off ledges, from planes or out of holes in the ceiling.
==See also==
*Example VMF
*Example VMF backup
*WiseNPCrapjump
Category:Level Design
WiseNodeLink

==Introduction==
In this project:
#Alyx faces a body of water, has nowhere to go.
#Bridge lowers over water, Alyx can walk across but it’s blocked by a large crate.
#Alyx walks across and pushes crate out of the way.
The entities in this project can be used in a variety of ways. I created this as a general example. Instead of a bridge the obstacle could be a gate, etc. Instead of a crate the obstacle could be a turnstyle, etc. (sdk_d1_trainstation_01.vmf)
==Creation==
I’m using two entities to get Alyx to walk. Notice the Move to Position property for both is Walk. Try not to place these too high above the ground where the NPC is walking. Raising them up will cause your NPC to jump as they transition. On the ground where Alyx will be walking I’ve placed entities. Place these in good locations, don’t burry them in brushwork or displacements. To connect the nodes across the bridge I’ve used an entity. This is a dynamic connection between navigation nodes. These can be turned on and off. In this example it starts Off and we turn it On when the bridge lowers. The crate obstacle in this project is . It uses the World Model models\props_junk\wood_crate002a.mdl.
To get Alyx to push the crate out of the way I’m using a entity. You can use several of these in a map and they are very simple to place. The only property you have to assign is the Navigation Entity, which is the entity you want the NPC to push out of the way. Check the flags for Start on.
When the map starts I’m using a to control all of the actions at once.
The outputs:
	OnMapSpawn	bridge01	Press 		0.00	Yes
	OnMapSpawn	bridge01	Press 		7.00	Yes
	OnMapSpawn	link01 	TurnOn 		8.50	Yes
	OnMapSpawn	ss01 	BeginSequence		9.00	Yes
In the 4 outputs above:
#The bridge, , rises when the map starts.
#Seven seconds later the bridge lowers.
#Next the info_node_link is turned on.
#Finally the first scripted_sequence is called and Alyx begins her walk.
#As she gets to the crate she will push it out of the way to get to that scripted_sequence.
#Once she reaches the first scripted_sequence it will call the next, and last, scripted_sequence and Alyx will walk to it.
As you can see in a matter of minutes you can create methods for your NPCs that will allow them to overcome obstacles. If only it was that easy for us out here in the real world.
==See also==
*Example VMF
*Example VMF backup
WiseOneWayDoor

==Introduction==
This tutorial was by request. Several mappers recently requested a door that would only open in one direction and could also be used at angles. For example, cellar doors that swing open. With this project I also created a swinging door that can be broken. That’s a bonus; I used it to create the other two doors.
==Creation==
Once you have created your brush based door and have it in place press and make it a .
"Button?" Yes and I know that seems funny but it’s going to work just like a door and it will only open in the direction you want. In the example I’ve created for this tutorial all three of the doors are identical to start with then two are converted to func_rot_button and of those two one will open in each direction but only in that direction.
These are the properties for both func_rot_button doors:
*Pitch Yaw Roll: 0 0 0
*Speed: 100
*Sounds: Squeaky
*Delay Before Ret: 3
*Distance: 90
*Flags: Toggle, Use Activated
The left door also has the Reverse Dir flag checked. This will make them travel in opposite directions.
Both doors will open when the player presses the key, one door will open inward and the other outward but they will each only open in that direction, and they will wait if the player is blocking them, then they will complete their 90 degree turn. These doors can be locked and unlocked and they can be opened or closed via inputs and you can make this door move at just about any angle you desire.
==See also==
*Example VMF
*Example VMF backup
*WiseDoorBreak
*WiseSlidingDoor
*WiseDoor
WiseOneWayGlass

==Introduction==
Creating glass for is a simple matter of properly texturing brushes. In this sample room I’ve created there are three windows. There is also an illusionary wall with layered textures.
==Creation==
The first window is a typical one-way glass.
*On one face it’s textured with glass\glasswindow070a
*On the opposite face it’s textured with the same brick texture I used on the walls: brick\brickwall003a
To browse for these textures:
*Click the Toggle Texture tool, or press .
*Now click the Browse button.
*In the lower Filter area enter filter words like “glass”, “wall”, etc.
*Double-click on the texture you want to use.
*Now with the Face Edit tool still open, right-click on any brush face to texture it. (left-click selects faces)
All other faces of these Glass brushes will be textured with tools\toolsnodraw]].
To illustrate what you can achieve I’ve created 4 different types of see-thru areas.
Starting from the left:
*Typical one-way glass.
*Breakable Glass made with (more on that soon).
*Normal brush with nodraw on one face and a glass texture on the opposite face.
*Layered textures created with entities.
The one-way glass is created with a normal brush that has any opaque textured face opposite a glass textured face. In this example I’ve used a brick texture and opposite that a glass texture. The Breakable glass is created by turning a normal brush into func_breakable_surf. Do that by selecting the brush and pressing , choose func_breakable_surf, and finally click Apply.
The properties for our breakable window are:
*Prop Data: Glass.Window
*Health: 80
*Material Type: Glass
*Fragility: 50
*Surface Type: Glass
*This Breakable glass is 1.0 units thick.
:Don’t make them thinner than 0.5 units thick and don’t make them too thick.
:Breakable glass gets textured on only one face, all other faces will be textured with nodraw, the easiest way to do that is create them entirely with nodraw and then use the Face Edit tool to apply the breakable glass texture.
The texture to use on that face is: glass\glasswindowbreak070a (Don’t use the b version.)
Notice the normal world brush with nodraw on the face opposite the glass face. When you compile this type of glass it will look like normal unbreakable glass on one side but on the other side it will be clear, however, it will block objects.
The last example is our layered texture, created with func_illusionary entities. The first brush is only textured on the outside face; metal\metalfence004a The next brush is textured on two faces; metal\metalgrate013a and brick\brickwall003a. All other faces are textured with nodraw.
To create brushes that are 0.5 units thick use the Transform tool
With the methods illustrated here, you can create any type of one-way glass you need.
Keep in mind that while the nodraw texture doesn’t show it was invaluable in creating these effects.
 Here are some shots of the effects in the game:
				
==See also==
*Example VMF
*Example VMF backup
*Applying Materials
Category:Level Design
WiseOneWayPropDoor

==Introduction==
One of the nice features of is that it opens away from the player. This is a problem when you absolutely need the door to one in one direction only. What I have done in this project is create an invisible wall on one side of the door.
For this I’ve used .
==Creation==
I’ve textured it with tools/toolsinvisible. On one side we need a to disable it temporarily. The player will start on one side of this door and when it is opened the door will not open away from the player now. It will be blocked by the invisible brush.
When the door fully closes it will enable the invisible brush. Here’s how they look in Hammer:
Settings for prop_door_rotating:
*World Model: models/props_c17/door01_left.mdl
*Skin: 4
*Disable Shadows: Yes
*Hardware Type: Lever
*Rotation Distance: 89
*Speed: 80
*Fully Open Sound: Doors.FullOpen4
*Fully Closed Sound: Doors.FullClose4
*Moving Sound: Doors.Move3
*Delay before reset: 30
*Damage inflicted when blocked: 10
*Health: 0
*Locked Sound: DoorHandles.Locked1
*Unlocked Sound: DoorHandles.Unlocked1
*Force Closed: No
*Flags: Use Closes
	OnFullyClosed	InvisDoor	Enable 		0.00	No
	OnOpen 	InvisDoor	Disable		0.00	No
Settings for the func_brush:
*Name: InvisDoor
*Start Disabled: No
*Solidity: Toggle
*Solid BSP: No
*Start Disabled: No
*Delay before reset: 1
*Flags: Clients
	OnStartTouch	InvisDoor	Disable		0.00	No
WiseOneWayWall

==Introduction==
To go with my WiseOneWayGlass tutorial is this one-way wall method. What I’ve done is start with my Sawblade shack, from the Files page. 
I removed the sawblade objects and the door. In place of the door I created a brush and converted it to . This is an interesting entity. It’s a brush based entity that can be toggled on and off. The awesome thing about it is that when off the brush is non-solid and invisible.
A few words of warning: since they have the ability to toggle you will need to consider how and when to toggle them on and off. You wouldn't want the player to become stuck inside one or see it magically appear or disappear, unless your game involves magic, in which case judge for yourself I guess.
==Creation==
On one side of the func_wall_toggle I’ve applied the texture effects\combine_binocoverlay. On the outside face I’ve used the same texture as the outside of the shack: metal\metalwall017a. All other faces are textured with tools\toolsnodraw. Obviously, change textures as needed for your map.
There are several properties for the func_wall_toggle, however I have not changed any of the default settings, such as FX or Shadows, but I did give it a name, Wall01. It needs a name because we are going to toggle it with a .
*Start Disabled: No
*Delay Before Reset: 1
*Flags: Clients
	OnStartTouch	Wall01	Toggle		0.00	No
	OnEndTouch 	Wall01	Toggle		0.00	No
Placement of this trigger_multiple is very important for the effect to work properly. We want players in the shack to have the ability to walk out, but players can not get back in.
Obviously this method can be used for a variety of map features, such as traps, secret passages or simple One-way sections. As a bonus I went ahead and created a trap on the outside of the shack. This trap is made from 9 func_wall_toggles all with the same name, Wall02.
On the ground I’ve placed a decal so you can see the spot that will activate the trap. When the game loads the trap will not be visible and it will not be solid.
There are two trigger_multiples inside the trap. One of them is small and is named TrapTrigger, so it can be disabled and enabled. The other larger one is has the same dimensions as the inside of the trap. This is so we can hide the trap once the player leaves/dies.
Small trigger:
	OnStartTouch	Wall02 	Toggle 		0.00	No
	OnStartTouch	TrapTrigger	Disable		0.25	No
Large trigger:
	OnEndTouch	Wall02 	Toggle		0.00	No
	OnEndTouch	TrapTrigger	Enable		0.25	No
Notice that we’ve added a 1/4 second delay to the <Code>Enable</code>ing and Disableing of TrapTrigger. This 1/4 second is for insurance, helps to smooth things out. When the player steps on the decal, actually in the small trigger, they will be trapped. The player can not get out of the trap. If they die the trap will hide once again and be ready for the next victim ;). One more thing I should have done is add a series of explosions after a few seconds. If you want to do that check WiseExplosion.
==See also==
*Example VMF
*Example VMF backup
*Push Gameplay