nyuuzyou/wikis huggingface dataset:
Creating Portal turrets

Rocket/bullet turrets are very easy to add to your Portal map.
== Bullet (floor) turrets ==
# Select the entity tool (Shift + E) and in the dropdown menu select npc_portal_turret_floor.
# Then place it where you would like it on the map and rotate it so it's facing the correct direction.
# Right-click on it and go to Properties.
Additionally, you can create a box around your turret to prevent it from being knocked down.
== Rocket turrets ==
#Select the entity tool (Shift + E) and in the dropdown menu select npc_rocket_turret.
#Then place it where you would like it on the map and rotate it so it's facing the correct direction.
== See also ==
* Portal Level Creation
Category:Portal
Category:Level Design
Category:Tutorials
Creating Spawns

==Rules for Singleplayer Spawns==
Spawns are simply locations where players appear when the map starts or after they die. They are usually situated at the beginning of the map.
==Rules for Multiplayer Spawns==
Like single-player spawns, spawns are simply locations where players appear when the map starts or after they die. It's usually best to place a team's spawn points in a single location, or at the very least sizable groups. Make sure that the spawn points are facing a useful direction so that the players will be able to orient themselves quickly, and never place them in view of a location that an enemy player can access.
Lastly, always ensure that there are multiple exits from spawn, but no entrances. Doing both of these will help combat spawn camping: it is nearly impossible for an abusive player to cover five or more exits at once if they can't get past them.
== Spawn Point Entities ==
=== / / / ===
*
======
*
*
*
======
*
*
=== / ===
*
*
*
*
*
======
*
======
*
=== / ===
*
*
======
*
======
* 
*
=== / ===
* (For Counter Terrorist spawns)
* (For VIP spawns) 
* (For Terrorist spawns)
Category:Entities by topic
Category:Level Design
Category:Tutorials
Creating a Bomb Defusal Map

This page covers only the special requirements for Bomb Defusal Scenarios in a Classic Competitive map in and .
For the other map requirements, see Creating a Classic Counter-Strike Map#Map Requirements.
== Map Requirements ==
==== Bomb Sites ====
Create a brush textured with tools/toolstrigger, and with it selected, press + and change the entity class to func_bomb_target.
If such an entity exists, the game will care about the rest, such as appropriate round endings and giving one Terrorist a C4 at round start.
Though the official Bomb Defusal maps have two bomb sites, the Bomb Defusal Scenario will work correctly with just one. If a map has no func_bomb_target, no bomb planting will be possible.
==== Competitive Aspects ====
* Bomb sites are located closer to the Counter-terrorist's spawn area so that they can get into a defensive position before Terrorists arrive.
* Each bomb site should require two entrances; Mostly, a cover is set up at a bomb site so that a player can watch one entrance while being covered from the other.
* Think about safe planting spots and whether they should (or not) be there (for a specific direction).
* Remember to eliminate bomb-stuck spots all across the map using trigger_bomb_reset entities and wise clipping.
* Prevent bomb defusal through walls using func_no_defuse entities.
Category:Counter-Strike: Global Offensive
Category:Counter-Strike: Source
Category:Level Design
Category:Tutorials
Creating a Curved Hallway

__TOC__
The Hammer Arch tool can create smooth room transitions and break up an otherwise "blocky" design. This tutorial will cover an easy curved hallway.
:In this example, there are two sets of brushes. Two 16-unit wide walls measuring 512 units in length meet at a corner (irrelevant; the corner is clipped to retain the brush length.) The floor matches the length and is 128 units wide.
= Standard curve =
# Clip both brushes in half at their central point using their helpers (X) and remove the corners. This will leave the brushes measuring 256 units in length.
# Press or select the , and select arch from the Objects drop-down box in the Objects bar.
# While one of the walls are selected, begin dragging from one outermost corner to the other outermost corner.
# Press to open the Arch Properties window.
# Change Wall Width to half the width of the walls (if the walls are 16 units wide, enter 8). Change Number of Sides accordingly: large numbers = smoother, yet many brushes; smaller numbers = blocky, yet fewer brushes. Change Arc to 90, as this is only a 90 degree hallway. Change Start Angle to 90. This determines where the arch will begin. Leave Add Height alone for now. Click Preview to see the result of the input.
# Press to create the wall. It will be created nearby, so click and drag the curved wall and place it into position.
# Now move on to the floor. Follow the same steps as above, selecting a floor with or selecting the , then the block tool. Click and drag starting at the outermost corners
# Press to open the Arch Properties window again.
# Change Wall Width to half the width of the floor (128 units wide: 128 / 2 = 64).
# Press to create the floor and drag it into position.
# Now move on to the inner curved wall. To make it easier, select one wall and, while holding , drag and drop it on the other side of the floor to create a new wall. Then follow the same steps as above.
# Press to create the inner wall and drag it into position.
# To make things easier, select the curved floor and, while holding , move it up to and drop it to create the curved ceiling.
= Elevated curve =
# Begin with step 1 of the Standard curve tutorial above. Halve the brushes at 256 units in length. In this tutorial, the top right set of brushes will be elevated (Z-axis) 128 units.
# Select the outer wall of the top right set of brushes and, same as before--yet opposite direction, drag from the outermost corner of the upper wall to the outermost corner of the lower wall.
# Press to open the Arch Properties window.
# Change Wall Width to 8 and Add Height should be -16. Using a negative value tells the Arch tool to go in a downward direction.
Category:Level Design
Category:Tutorials
Creating a Dreamball Map

== Setting Up the SDK==
Before you get started you need to set up the SDK. Go to steam/steamapps/USERNAME/source/bin/orangebox/bin/ in here open 
GameConfig.txt and inside it at the bottom before:
	}
	"SDKVersion"		"3"
}
Add this and replace the paths/username with your own ones:
		"Dreamball"
		{
			"GameDir"		"c:\program files\steam\steamapps\SourceMods\dreamball"
			"hammer"
			{
				"GameData0"		"c:\program files\steam\steamapps\SourceMods\dreamball\mapsrc\dreamball.fgd"
				"TextureFormat"		"5"
				"MapFormat"		"4"
				"DefaultTextureScale"		"0.250000"
				"DefaultLightmapScale"		"16"
				"GameExe"		"c:\program files\steam\steamapps\USERNAME\source sdk base 2007\hl2.exe"
				"DefaultSolidEntity"		"func_detail"
				"DefaultPointEntity"		"ai_ally_manager"
				"BSP"		"c:\program files\steam\steamapps\USERNAME\sourcesdk\bin\orangebox\bin\vbsp.exe"
				"Vis"		"c:\program files\steam\steamapps\USERNAME\sourcesdk\bin\orangebox\bin\vvis.exe"
				"Light"		"c:\program files\steam\steamapps\crUSERNAME\sourcesdk\bin\orangebox\bin\vrad.exe"
				"GameExeDir"		"c:\program files\steam\steamapps\USERNAME\sourcemods\dreamball"
				"MapDir"		"c:\program files\steam\steamapps\SourceMods\sourcesdk_content\dreamball\mapsrc"
				"BSPDir"		"c:\program files\steam\steamapps\SourceMods\dreamball\maps"
				"CordonTexture"		"tools\toolsskybox"
				"MaterialExcludeCount"		"0"
			}
		}
== Building the Map ==
-------------------------------------------------------------------------------------
Info on mapping is coming in next release. Do NOT use cam_template.vmf - It's all changing in upcoming release.
-------------------------------------------------------------------------------------
==See also==
*Dreamball Level Creation
Category:Level Design
Creating a Hostage Rescue Map

__NOTOC__
This page covers only the special requirements for Hostage Rescue Scenarios in a Classic Competitive map in and .
For the other map requirements, see Creating a Classic Counter-Strike Map.
== Map Requirements ==
Hostage Rescue maps require hostages for the Counter-Terrorists to rescue, and a hostage rescue zone.
==== Hostages ====
Create entities and change their classname to hostage_entity ( or info_hostage_spawn). This is where hostages will spawn.
If such an entity exists, the game will care about the rest, such as appropriate round endings and a time bonus when the first hostage is reached by a CT.
 The official maps have 4 of these entities. Every one of these entities spawns a hostage NPC.
 The official maps have at least 2 of these entities and usually more. The game will try to pick 2 of the available spawn points to spawn hostages, respecting exclusion groups.
==== Rescue Zones ====
Create a brush and texture it with the tools/toolstrigger texture. Select the brush, press + to tie it to an entity and change the entity class to func_hostage_rescue.
Create at least one in the map to make rescuing hostages possible.
==== Competitive Aspects ====
* Hostages are located closer to the Terrorist's spawn area so that they can get into a defensive position before Counter-Terrorists arrive.
* Usually the rescue zone is placed near the Counter-Terrorist spawn.
* Use the NO HOSTAGES NAV attribute which can be toggled with nav_no_hostages to force hostages to not use specific nav areas.
* Hostages sharing any Hostage Spawn Exclusion Group in its properties will not spawn together.
* The Hostage Spawn Random Factor property is the number of times a spawn point is put into the pool for the hostages to spawn at. Raising this number makes it more likely for a spawn point to be picked.
Category:Counter-Strike: Global Offensive
Category:Level Design
Category:Tutorials
Creating a Portal Radio

==Introduction==
 This tutorial will show you how to create the Portal radios that usually play the fast instrumental version of the Still Alive song.
== Construction ==
# Create a prop_physics_override entity and set its World Model keyvalue to models/props/radio_reference.mdl. Place it where you want in your map.
# Name the radio radio_1.
# Create an ambient_generic entity and place it near the radio. Name it radio_sound_1.
# Make the radio_sound_1's Sound Name Portal.room1_Radio. Make its Source Entity Name radio_1.
# Make sure none of radio_sound_1's flags are checked.
The radio is now complete!
If you are using fizzler on your map, then:
# Create an ambient_generic entity and place it inside the fizzler. Name it radio_sound_fizzle
# Make the radio_sound_fizzle's Sound Name UpdateItem.Fizzle.
# Create a filter_activator_name. Name it radio_filter. Set Filter Name to radio_1.
# Create a trigger_once with the same size and same position as the trigger_portal_cleanser, set the filter to radio_filter and set the following outputs:
	Output named	Target entities 	Via this input	Parameter	Delay
	OnStartTouch	radio_sound_1 	StopSound 	 	0.00
	OnStartTouch	radio_sound_fizzle	PlaySound 	 	0.00
Category:Portal
Category:Level Design
Category:Tutorials
Creating a Room

maps are really just a series of rooms. Outdoor areas are rooms with skyboxes instead of normal ceilings.
The inside of the rooms must be completely sealed off from the black “void” surrounding them; if there are any holes the map will not compile properly. A proper compile is essential for good performance, as it controls the visibility of objects within levels, and for proper lighting.
We will now create a room within which the rest of this tutorial series will take place. It will be 1024L×1024W×512H units large, which is quite big, and will consist of six brushes.
# Using the , make a brush to use as the floor. It should be about about 1024L×1024W×64H.
# Using the , drag it into position if you are not happy with where it is already. The pointer will change into four arrows pointing in all directions , indicating the option to move the object. 
# In the side (X/Z) or front (Y/Z) grid view, and again using the , +drag the brush to “clone” it. Move the mouse upwards while dragging so that the new brush forms a ceiling directly above the floor. If you get the position wrong, just drag the new brush as you did in step two. If you accidentally move the floor instead of cloning it, press to go back a step. 
# Clone another one of the brushes and resize it so that it connects the floor to the ceiling. It is better for texturing if the brushes “touch corners” instead of being flush against each other, but ultimately it doesn’t matter in what manner they touch so long as there is no gap between the inside of the room and the outside. 
# Clone this wall brush and drag it to the other side of the room to form the opposite wall.
# Switch from whatever side view you were using to the other one, and repeat steps four and five to create the remaining two walls.
# Check for any gaps. Make sure the room has been completely sealed. If you’ve been designing your room on a relatively large grid scale (e.g. 64 units), then any gaps will be apparent. Mouse-over the 3D view window and press Z to enter mouselook mode to carefully inspect your room. 
Category:Level Design
Creating a Turret door

__NOTOC__
== Introduction ==
This tutorial will teach you how to make a turret door which opens revealing a Turret.
== Step One: The Cube ==
Firstly, create a block which is 192w x 160l x 160l. This is the size Valve uses in the game. If you want to make the box a bit longer, you can, but don't ajust the height and length. This is the box where the turret will be sitting, and where the door will be on. Make the cube hollow (I gave the walls a thickness of 4, but it doesn't matter). Now texture the inside walls with concrete_bts_modular_wall001b, the floor with concrete_bts_floor002a and finally the ceiling with concrete_bts_ceiling002a. If you have the guts to go into that place again, you'll see inside the ceiling has a hole in it with white light coming out of it. We'll get to that later.
Important: Press the "fit" button on each of the textures to make them look right.
Delete one of the walls (one on the front or back, long-wise) for the entrance. We're ready to move on. Don't texture the outside faces yet - You can do that when we move the block into a wall later on.
== Step Two: The Door ==
Now for the fun bit. If you've read the door tutorial here, you'll already know what to do. If you haven't, I would advise you do that tutorial first before attempting this one!
Create a prop_static with a world model of vert_door_frame.mdl. Line it up with the box. Now, the box may be a little big for the frame. You can ajust that later.
Next, make a prop_dynamic with the world model of vert_door_upper.mdl, and name it turretDoor1_model_top and parent it to turretDoor1_top. Align it perfectly in the frame. Then, repeat, but this time make it with a world model of vert_door_lower.mdl. Parent it with turretDoor1_bottom, and name it turretDoor1_model_bottom.
Make a shape with dimensions of 120w x 4l x 81h Place it in the top door (align it perfectly, but a little bit behind the door in the box). Rotate it 90 degrees around Z. Turn it into a func_door and name it turretDoor1_top. Texture it with nodraw. Repeat for the bottom part, this time the dimensions are 120w x 4l x 48h and the name is turretDoor1_bottom!
Now you're done with the door... for now.
== Step Three: The Logic ==
Time to add in the things that make it move.
Create a logic_relay and place it inside the box. Call it turretDoor1_openRelay.
Give it the following outputs:
	My Output	Target Entity 	Target Input	Parameter	Delay	Only Once
	OnTrigger	turretDoor1_top 	Open 	<none> 	2.00 	No
	OnTrigger	turretDoor1_bottom	Open 	<none> 	2.00 	No
Next goto your turretDoor1_top and add this:
Property Name 	Value
Speed 	30
Start Sound 	Portal.moving_pistons
Stop Sound 	Portal.stair_clack
Delay before Reset	-1
Lip 	20
Move Direction 	(This will be different for which way your door is facing)
Also make sure that you un-check Touch opens under Flags.
Repeat for turretDoor1_bottom, changing the Lip to 2, and not filling in the start/stop sound.
== See also ==
* Turrets
* Portal Level Creation
Category:Portal
Category:Level Design
Creating a brush entity

# Create a new brush in Hammer.
# Select it in one of the 2D views.
# Use the shortcut key Ctrl+T (or, from the right-click menu, choose "Tie to Entity", or click the toEntity button in the bottom right panel.)
# Select the type of brush entity to create from the Class list.
# Click Apply.
* The default entity in the selection list is func_detail, which is solid for everything. For an index of documented brush entities see the :Category:Brush Entities
* A Brush entity may span multiple brushes, so all currently selected brushes will be tied to one single entity. That entity's properties config will be applied to all of its brushes. To add more brushes to an existing brush entity, select the entity and the additional brushes then perform another Tie to entity command. You can also join two entities together in a similar way.
* Use Ctrl+W or the "toWorld" button to remove the selected brushes from the brush entity.
Category:Level_Design
Creating a machine gun nest in Day of Defeat

In Day of Defeat there are areas where a player can stand and deploy their machine gun or other deployable gun.
=== Creating a deployable area for machine guns ===
To create a deployeable area for machine guns you need an platform first. The platform can be window ledges, big pieces of debris or sandbags. The ideal height of the platform for deployment should be about 44 units and the ideal depth should be 16 units to prevent weird animations like the machine gun sticking inside the sandbags or the machine gun bracket floating in the air. It does not matter if the platform is made out of brushes or is a 3D model. In area where the player should be able to mount the machine gun you create an aatrigger brush and turn it into the dod_trigger_sandbag entity.
The way you are facing the entity with the Pitch Yaw Roll Attribute is the way you face when the machine gun is deployed. With the Degrees in either direction Attribute you can select in how many degrees the player should be able to rotate the machine gun.
=== Examples for areas to deploy ===
There are almost infinite possibilities for use of this area:
*Window ledges
*Sandbags
*Holes
*Armored vehicles
*Fallen trees
*Benches, tables and chairs
Category:Day of Defeat Level Design
Creating a portal/object fizzler

This wall of particles destroys any objects that come in contact with it and closes any portals that have been opened by the player.
=== Step 1 ===
Due to the sheer size of the fizzler you may need to create an appropriate sized doorway to construct the fizzler in.
Use the portal_cleanser and cleanser_edge_1 particle effects. cleanser_edge_1 is best used for cleansers wider than 192 units.
=== Step 2 ===
The first thing that needs to be created is the doorway that will act as the fizzler holder. You can also use a prop for this effect as well, however for the purpose of this tutorial a model will be used.
The available props for this is:
* models/props/portal_cleanser_1.mdl
To use as a base we need to create a trigger_portal_cleanser, which in size should be 128x128. Note that this is the base size for a normal sized fizzler. Also the trigger should be just 2 Units thick.
Go ahead and name it if you want, that way you can keep track of how many you might have.
Modify the following flags:
=== Step 3 ===
Make 2 prop_static entities and set their World Model to models/props/portal_cleanser_1.mdl, rotate one of them by 180 degrees.
You are free to line up everything you have so far directly in a straight line, or you can change it to your liking.
=== Step 4 ===
Create a info_particle_system entity and enter the following properties:
Property Name 	Value
Particle System Name	portal_cleanser
Start Active 	Yes
Align it to the trigger brush precisely in the center.
=== Respawning Boxes ===
If you have a box dropper that you want to spawn a new box if the player destroys one with a fizzler, you can use the output OnDissolveBox, but only if your box prop_physics is named box.
If you have multiple droppers in your map along with a cleanser and you want the box dropper to deliver a new box, follow these instructions:
Enter this output for the trigger_portal_cleanser:
	OnDissolve	!activator	FireUser1	<none>	0.00	No
Enter this output for the box:
	OnUser1	logic_drop_box	Trigger	<none>	0.00	No
You will have to change the logic_drop_box name in the output depending on which box dropper the box came from.
== See also ==
* Portal Level Creation
Category:Portal
Category:Level Design
Category:Tutorials
Creating a security camera

As you have most likely noticed, scattered about the Aperture Science facility are cameras which follow you and are detachable from the wall by placing a portal behind them. Using this tutorial you can put them in your map.
== Creating the model ==
# Choose the Entity Tool (Shift + E) and in the dropdown box, select . Then simply place the camera where you want it placed on the map.
# Give it a name like "cam1" and set the World Model to models/props/security_camera.mdl.
== Making it fall ==
The following is only necessary if you have placed the camera on a wall where portals can be created.
# Create a 4w*4l*2h brush using the tools/toolsinvisible material. This brush should just cover the base of the camera where it connects to the wall. (Making it too large will cause your camera to fall off even when the portal doesn't touch it.)
# Make this brush a .
# Under Output add the following:
Outputs Placed in the trigger:
Object outputs: func_portal_detector
	My Output 	Target Entity	Target Input	Parameter	Delay	Only Once
	OnStartTouchLinkedPortal	cam1 	Ragdoll 	<none> 	0.00 	Yes
== Conclusion ==
The camera will automatically follow the player around and when a portal is put behind it, fall to the ground. It also automatically leaves a mark on the wall where it was. You can also have it trigger a scene by GlaDOS if you follow this tutorial.
== See also ==
* Portal Level Creation
Category:Portal
Category:Level Design
Category:Tutorials
Creating a squadslot

==Declaration==
Squadslots are useful for assigning NPCs to perform specific actions in a squad.
To give an NPC the ability to be in a squad, you must add the following to the Spawn function:
 	CapabilitiesAdd( bits_CAP_SQUAD);
This code will make sure the squadmates won't try to shoot through each other to attack enemies.
 	CapabilitiesAdd( bits_CAP_NO_HIT_SQUADMATES );
The first step to creating a squadslot for your NPC is to create a name for it and add it to the SquadSlot_T enum. Here's an example name for a squadslot: SQUAD_SLOT_GRENADE1.
Once the activity is added to the enum, you must use the DECLARE_SQUADSLOT macro in the AI_BEGIN_CUSTOM_NPC section.
Here's an example of the DECLARE_SQUADSLOT code:
 	DECLARE_SQUADSLOT( SQUAD_SLOT_EXAMPLE )
==Implementation==
Category:AI Programming