SteamVR/Environments/Entity Guide
Entities are objects that provide all the functions in a map. The Source 2 engine used in SteamVR Home handles entities in mostly the same way as the original Source engine, but with a few key differences. Most of the articles this this wiki document the original Source versions of the entities.
Point entities work the same way as in Source but with new features. The entities now contain full transforms and can be moved, rotated and scaled both with the tools in Hammer and at runtime. Note that it is up to to the individual entity classes on if they make use of the transforms.
Mesh entities replace the Source brush entities. Since Source 2 no longer use BSP brushes, entities that need to be associated with geometry are now tied to Hammer meshes instead.
Path entities are a type of entity recently added to the tools. They can be created with the currently hidden Path Tool (Shift + P).
List of Entities
The SteamVR Tools still contain a large amount of legacy Source engine entities. While many of the entities still work, some of them have been deprecated or have reduced functionality.
Most logic and math entities still work. AI related entities do not work. Many special effects entities are non-functional, but their functionality can be replicated with particle systems.

SteamVR Home specific
Entities with functions specific to SteamVR Home.
Class | Notes |
---|---|
prop_destinations_physics | A prop_physics that can be resized and recolored with VR hands in-game. |
prop_destinations_tool | Physics prop with VScript bindings. Requires a script attached to work properly. |
point_clientui_world_panel | Places a user-made Panorama panel in the world. |
point_clientui_steamvr_world_panel | Places one of the three pre-made SteamVR Quick Panels. |
vr_teleport_marker | Destination marker for teleport locomotion. |
vr_teleport_area | Mesh entity for marking valid areas for teleport locomotion. |
Lighting
Functional
Class | Notes |
---|---|
light_spot | Now supports both real-time and baked lighting. (Source 1 version) |
light_omni | Equivalent of the Source light entity, supporting both real-time and baked lighting. |
light_environment | The direct sunlight portion can now be real-time with Cascaded Shadow Maps or baked. (Source 1 version) |
light_ortho | Orthogonal light similar to the sunlight potion of light_environment. |
env_cubemap | No longer an internal entity, can now be toggled and moved. Cubemaps are now baked in Hammer along with lighting. (Source 1 version) |
env_cubemap_box | Parallax corrected cubemap reflection probe. |
env_light_probe_volume | Diffuse lighting probe. Unlike in Source these can not be generated automatically by the compiler. |
env_combined_light_probe_volume | Combines env_cubemap_box and env_light_probe_volume in one entity. |
light_importance_volume | Sets the high quality lighting area for the photon mapping lighting baker. |
Non-functional
Class | Notes |
---|---|
light_irradvolume | Not available in the SteamVR Home renderer. |
Props
Functional
Class | Notes |
---|---|
prop_static | Static world geometry prop. Can now optionally be further baked into world geometry for batched rendering. |
prop_dynamic | Prop that can be animated and controlled with entity I/O. Also supports cloth physics. |
prop_dynamic_override | Limited use as models are no longer marked as static or physics only. Health can still be set, but breakable props are not fully functional. |
prop_physics | Unlike prop_destinations_physics, this cannot be resized by the player. |
prop_physics_multiplayer | Todo: Unknown if physics modes have any effect. All entities now have a toggle for client-side only.
|
prop_physics_override | Limited use as models are no longer marked as static or physics only. Health can still be set, but breakable props are not fully functional. |
Sound
Functional
Class | Notes |
---|---|
snd_event_point | Equivalent to ambient_generic, point sound source that plays sound events. |
snd_soundscape | New name for env_soundscape. Entity for soundscapes. |
snd_soundscape_proxy | New name for env_soundscape_proxy. |
snd_soundscape_triggerable | New name for env_soundscape_triggerable. |
point_soundevent | Deprecated name for snd_event_point. |
env_soundscape | Still works but the name is deprecated in favor for the more consistently named snd_soundscape. |
snd_event_param | [Todo] |
snd_event_alignedbox | [Todo] |
snd_opvar_set | [Todo] |
snd_opvar_set_aabb | [Todo] |
snd_opvar_set_obb | [Todo] |
trigger_snd_sos_opvar | Mesh entity [Todo] |
snd_opvar_set_point | [Todo] |
Non-functional
Class | Notes |
---|---|
ambient_generic | Replaced with snd_event_point |
Mesh Functions
These are all mesh entities.
Functional
Class | Notes |
---|---|
func_button | Usable button that can work either as a visible object or as in invisble volume tied to a prop. |
func_movelinear | Mesh that moves between two points. Can be used for elevators and doors. |
func_platrot | Simple elevator that can move and rotate. |
func_rotating | Rotating mesh. |
func_tracktrain | Mesh that moves along a path. |
Partial
Class | Notes |
---|---|
func_physical_button | Physics enabled mesh button that can be pushed in by the player. Only works when pushed with an equipped tool, since the players hands do not have collision. |
func_breakable | Mesh entity that can take damage and break. No gib models available. Has many non-functional legacy functions. |
func_brush | Mesh entity that can be moved and parented, and the solidity toggled. Has several non-functional legacy functions. |
func_door | Linear door with binary open/closed states. Can be operated by I/O or player use. Has several non-functional legacy functions. |
func_door_rotating | Rotating door with binary open/closed states. Can be operated by I/O or player use. Has several non-functional legacy functions. |
func_illusionary | Legacy non-solid mesh. Use the mesh properties to disable collision rather than this. |
func_physbox | Physics enabled rigidbody that can be picked up by the player. Many features are broken. Meshes can be converted to props from Hammer, making this obsolete. |
func_rot_button | Rotating button with binary open/closed states. Missing many features the other buttons have. |
func_shatterglass | Breakable glass/concrete surface. Missing hardcoded materials. |
func_tanktrain | Mesh that moves along a path. Todo: Shooting likely not available, use func_tracktrain instead.
|
func_wall | Legacy entity. Use func_brush rather than this. |
func_wall_toggle | Legacy entity. Use func_brush rather than this. |
Non-functional
Class | Notes |
---|---|
func_areaportal | Not applicable for the Source 2 renderer. |
func_areaportalwindow | Not applicable for the Source 2 renderer. |
func_lod | Non-functional, use the mesh properties instead. |
func_nav_markup | Nav meshes are not enabled in SteamVR Home. |
func_occluder | Non-functional, use the mesh properties instead. |
func_reflective_glass | Legacy entity relying on Source 1 shaders. |
func_traincontrols | Broken. |
func_viscluster | Not used by the visibility solver. |
Environmental effects
Functional
Class | Notes |
---|---|
env_cubemap_fog | MIP fog using a cubemap texture. The cubemap texture is sampled for the fog color, blending between the different MIP Maps depending on distance. This can be used to generate intricate fog effects. |
env_gradient_fog | Texture controlled fog effect documented in Fog Tutorial. |
env_sky | 2D skyboxes are controlled by this entity instead of being defined in the map properties. Can be toggled and rotated in-game. |
info_particle_system | Particle systems still work. |
info_particle_target | Target entity for particle control points. |
skybox_reference | Allows another map to be used as a 3D skybox. Requires that the used map has the Map Type in Map Properties set to Skybox, and a sky_camera entity to mark the location of the main map origin. |
Partial
Class | Notes |
---|---|
sky_camera | Culling and shadows do not work properly when used in the main map. Works properly when used in map referenced by skybox_reference. Static level geometry can be extended beyond the grid now, making this entity less of a necessity. |
env_fog_controller | Only affects the 2D skybox. |
Non-functional
Class | Notes |
---|---|
fog_volume | No observed effect. |
env_volumetric_fog_volume | Non-functional in SteamVR Home. |
env_volumetric_fog_controller | Non-functional in SteamVR Home. |
Misc
Functional
Class | Notes |
---|---|
point_workplane | Stores the current workplane in Hammer. The workplane can be recalled by using the workplane picker tool on the entity. |
info_player_start | Aligns with the center of the playspace instead of the players actual position. |
visibility_hint | Used to set the grid size for the visibility solver. |
Partial
Class | Notes |
---|---|
info_world_layer | Can be used to toggle sets of level geometry and entities at runtime. Not fully functional in SteamVR Home. |
npc_crow | Only flies with the FlyPath input with a path_track parameter. |
npc_seagull | Only flies with the FlyPath input with a path_track parameter. |
npc_pigeon | Only flies with the FlyPath input with a path_track parameter. |
Non-functional
Class | Notes |
---|---|
infodecal | No equivalent available. |
info_overlay | Overlays are set directly in Hammer instead of using entities: Overlay Tutorial |
info_projecteddecal | No equivalent available. |
post_processing_volume | Post processing is not available in SteamVR Home. |