env_projectedtexture is a point entity available in all Orange Box games. It creates a dynamic shadow-mapping light that affects all objects in the world. It is used to create the flashlights in Source 2007, Source 2009 and Left 4 Dead engine games.
As expected, projected textures have been improved in Portal 2. Light no longer bleeds around objects and shadows appear to be more accurate and precise. In addition, more flashlight ConVars are available (try find r_flashlight in the console). However, Portal 2 never has (nor can have) more than one active at any given time.
SpotlightTextureinput or use the code fix available on the Bug Fixes page.
- The entity will rotate to point at its target, no matter where it is in the world. See also
lightonlytarget.Bug: Does not work with stock SDK code. See Env_projectedtexture/fixes#Fixing targeting.
- The angle at which the texture is projected. The projection is square, but the texture can make it appear of any shape.
- Remember the default Player FOV is 75°.
- Near Z for projected texture. Default value is 4.0.
- Objects closer than this will not receive the projection.
- Far Z for projected texture. Default value is 750.0.
- Objects beyond this distance will not receive the projection. Think of it as the range limit.
- Enable Shadows
- Should I cast shadows?
- Shadow Quality
- Quality of shadows (To do: what's the difference?)
- Light Only Target
- Should I light only the entity that is my
target? The world will still be lit.
- Light World
- Should I light the world?
- Camera Space
- Display relative to player's view. Breaks things horribly unless the entity moves with the player.
- Light Color
- Tint of projected texture.
- Sets the current projected texture associated with this entity.
- Bug: Does not work with stock SDK code. See Env_projectedtexture/fixes#Fix configurable texture value in Hammer.
- Bug: KeyValue not recognised by Hammer as it is not in the base FGD. Value must be set manually.
- Bug: Does not work with stock SDK code. See Env_projectedtexture/fixes#Fixing Parenting.
- Note:Does work in Portal 2
- Pitch Yaw Roll (Y Z X) (angles)
- This entity's orientation in the world. Pitch is rotation around the Y axis, yaw is the rotation around the Z axis, roll is the rotation around the X axis.
- Entity Scripts (vscripts)
<scriptlist>(New with Left 4 Dead 2)
- Space delimited list of VScript files (without file extension) that are executed after all entities have spawned. The scripts are all executed in the same script scope, later ones overwriting any identical variables and functions.
- Script think function (thinkfunction)
<string>(New with Left 4 Dead 2)
- Name of a function in this entity's script which will be called automatically every 100 milliseconds (ten times a second) for the duration of the script. It can be used to create timers or to simulate autonomous behavior. The return value (if present) will set the time until the next call. Note:Try to avoid expensive operations in this function, as it may cause performance problems.
These inputs are accepted by the entity but not known to Hammer:
- Specify a new target entity to point at.
- See above keyvalues.
- See above keyvalues. Bug: Non-functional.
- See above keyvalues. Bug: Cannot be re-enabled.
- See above keyvalues.
- Allows for an ambiance light, much like the shadow color for it.
- A VTF file (not VMT), relative to
- Much like the light's custom appearance keyvalue. A string of characters, like a sequence of piano keys, that define a pattern of brightness. a is dark and z is full intensity. New with Portal 2.
These inputs are known to Hammer:
- Enable or disable the light.
- See lightfov keyvalue above.
- Move with this entity. See Entity Hierarchy (parenting).
- Change this entity to attach to a specific attachment point on its parent. The entity will teleport so that the position of its root bone matches that of the attachment. Entities must be parented before being sent this input.
- As above, but without teleporting. The entity retains its position relative to the attachment at the time of the input being received.
- Removes this entity from the the movement hierarchy, leaving it free to move independently.
- Removes this entity and any entities parented to it from the world.
- Functions the same as
Kill, although this entity and any entities parented to it are killed on the same frame, being marginally faster than
- Evaluates a keyvalue/output on this entity. It can be potentially very dangerous, use with care.
<output name> <targetname>:<inputname>:<parameter>:<delay>:<max times to fire, -1 means infinite>
- Fire the
OnUseroutputs; see User Inputs and Outputs.
- Same as a player invoking +use; may not do anything. Can also be invoked by creating an output that does not specify an input.
This input is not included in Valve's FGDs.
<script>(New with Left 4 Dead 2)
- Execute a VScript file from disk, without file extension. The script contents are merged with the script scope of the receiving entity.
<string>(New with Left 4 Dead 2)
- Execute a string of VScript source code in the scope of the entity receiving the input. String quotation may be needed when fired via console. Bug: In , the code is executed in the script scope of the entity that fires the output, not the one receiving the input.Warning: Never try to pass string parameters to a script function with this input. It will corrupt the VMF structure because of the nested quotation marks, which then must be removed manually with a text editor.
<string>(New with Left 4 Dead 2) !FGD
- Execute a VScript function in the scope of the receiving entity.
<coordinates>(New with Alien Swarm) !FGD
- Send this entity to a spot in the map. If the entity is parented to something, it will be offset from the parent by this amount.
<angles>(New with Alien Swarm) !FGD
- Set this entity's angles.
- These Outputs each fire in response to the firing of the like-numbered
FireUser4Input; see User Inputs and Outputs.
OnKilled(Only in the Left 4 Dead series)
- This Output fires when the entity is killed and removed from the game.