Counter-Strike Source Entity Overview

From Valve Developer Community
Jump to navigation Jump to search
English (en)한국어 (ko)Translate (Translate)

This document describes the basic entities needed to make levels for Counter-Strike: Source. It assumes you already have knowledge of basic Hammer functions and CS:S gameplay. See the Hammer Editor Documentation for information on basic Hammer functions such as geometry creation and entity placement.

Basic CS:S entities

info_player_terrorist
Start points for the terrorist team. One of these needs to be placed for each team member. 20 start points is typical. Should be placed at least 128 units apart.
info_player_counterterrorist
Start points for the counter-terrorist team. One of these needs to be placed for each team member. 20 start points is typical. Should be placed at least 128 units apart.
func_buyzone
Brush entity that defines the area where the team can purchase equipment. Should have the tools\toolstrigger material applied to all sides, completely cover the spawn area, and be set for the correct team.
prop_physics_multiplayer
Models that have physics properties (i.e., barrels, debris, etc). Must not be intersecting any other geometry where it’s placed.
func_ladder
Climbable ladder brush. Not rendered, but allows players to climb up the brush surface. Should have the tools\toolsinvisibleladder material assigned to all sides of the brush.
point_viewcontrol
Point entity use for camera locations when players join the game. Should be set to look at another point entity, typically an info_target. This is equivalent of using the Goldsource entity trigger_camera.
info_no_dynamic_shadow
Point entity to stop player shadows from being applied to a particular set of brush faces. Sometimes needed when player shadows get cast on ceilings when players walk above. Open the entity properties, click the Pick... button, and then click to add a face to prevent that surface from getting shadows. Hold down <Ctrl> and click for additional faces, then click the Pick... button again when finished.

Bomb Defusion gameplay entities

func_bomb_target
Brush entity that determines where the bomb can be planted. When the bomb is planted then explodes inside the area, the BombExplode outputs are fired. The game handles all of the bomb planting and scoring logic – the BombExplode outputs are purely to add visual and damage effects.
env_explosion
Point entity for explosion effects when a bomb explodes. Creates a fireball sprite effect and will also effect physics models. Can also apply damage. A single env_explosion is typically placed at the center of the bomb site, triggered from the BombExplode outputs on the func_bomb_target.
env_fire
Point entity for secondary fire effects when a bomb explodes. Can also apply damage. Several env_fire entities are typically scattered around the bomb site, triggered from the BombExplode outputs on the func_bomb_target.
ambient_generic
Point entity that plays a .wav sound from the entity location. Can be used to play burning fire sound after the bomb explodes.

Hostage Rescue gameplay entities

hostage_entity
Point entity that is placed for each hostage to be rescued in the map. A hostage NPC will spawn at this point. There are usually four hostages placed in each hostage rescue map.
func_hostage_rescue
Brush entity that defines the area where hostages are rescued. Hostages that get led into this area will be marked as rescued.
info_node
Point entity used for navigation of the hostage NPCs. info_node entities need to be placed in all areas where the hostages need to move. Paths are drawn between each node point. One node needs to be visible by the next node point to connect properly.
Note.pngNote:This is now obsolete for hostage NPCs. Hostages now rely on the bot navigation mesh.

Counter-Strike Round Restarts

At the end of each Counter-Strike: Source gameplay round, when end-of-round game conditions are met, the game resets itself for the next round. When this happens, most of the entities in the map reset to their original state, just as if the map was just loaded. However, the following list of entities are not reset, and preserved in the same state in the all consecutive rounds:

* ai_hint
* ai_network
* cs_gamerules
* cs_player_manager
* cs_team_manager
* env_fog_controller
* env_soundscape
* env_soundscape_proxy
* env_soundscape_triggerable
* env_sun
* env_wind
* func_bomb_target
* func_brush
* func_buyzone
* func_hostage_rescue
* func_illusionary
* func_wall
* info_ladder
* info_map_parameters
* info_node
* info_node_hint
* info_player_counterterrorist
* info_player_terrorist
* info_projecteddecal
* info_target
* infodecal
* keyframe_rope
* move_rope
* player
* point_devshot_camera
* point_viewcontrol
* predicted_viewmodel
* scene_manager
* shadow_control
* sky_camera
* soundent
* trigger_soundscape
* viewmodel
* worldspawn
    

All other entities are reset to their original state at the beginning of the next round, and all pending outputs are cancelled.

Warning.pngWarning:If you parent one of the above entities to an entity not on the list, it will not work. Both parent and child will be deleted after the first round, but only the parent will respawn at the beginning of the second. To fix this, use logic_measure_movement instead of parenting (see Suspended_Object_Trap for an example).

You can use a logic_auto point entity to trigger additional events to occur at the start of the round. The OnMapSpawn output of the logic_auto will be fired when the map is first loaded, and at the beginning of the each round thereafter, after the reset. For example, in the map cs_havana, at the start of each round, a logic_auto has an OnMapSpawn output to a logic_case entity that randomly sets the routes open to the players each round. The logic_case enables and disables a series of func_wall brush entities that determines which routes are open and closed. For more information on how to use outputs, see Inputs and Outputs.

Other important components

There are other entities and materials that are commonly used in Counter-Strike: Source maps. Here is a list of some of the most prominent ones.

trigger_multiple
trigger_once
Brush entities used to activate events, set soundscapes, etc.
filter_activator_name
filter_activator_team
Point entities that are used to determine what entities or players can activate a trigger.
Clip brushes
Brushes with the tools\toolsclip material applied to all sides. Used to block off areas from players.
Player clip brushes
Brushes with the tools\toolsplayerclip material applied to all sides. Used to block off areas from players. Blocks players only – not hostages or grenades.
Nodraw brushes
Brushes with the tools\toolsnodraw material applied to all sides. Nodraw faces do not render, but the brushes still seal areas and cast shadows. Useful to put behind non-sealing geometry, such as models or displacements, to seal the map without rendering extra faces.
Water brushes
Brushes with a water material applied to the top surface. Water is created by making a brush volume and applying one of the water materials to the top surface and tools\toolsnodraw to all the other sides. See Water for further details on how to create water volumes.
env_cubemap
Need to be placed around the level for proper rendering of reflection/specular materials. See Cubemaps for further details on how to use env_cubemap.
env_soundscape
Placed within a level to trigger different DSP (echo) effects and sound settings. See Soundscapes for further details on how to use env_soundscape.
func_clip_vphysics
Brush-based entity that is used to block grenades and physics objects.

Non-standard gameplay types

See also