Perfect Dark Source: env sun

From Valve Developer Community
Jump to: navigation, search

Entity Description

Places a sun effect in the sky. Does not contribute any actual lighting - this entity is best used in conjunction with a light_environment.

  • The effect's position relative to the player is determined by an angle; it does not parallax, so gives the effect of the sun being infinitely far away.
  • You can also send inputs to the env_sun entity by directing them to "env_sun" instead of using a target name.
  • The effect is additive with the sky: a pure yellow sun with a bright blue sky will appear white in-game; change the color to account for this.
  • The sun may rotate around the level based on the ambiental time. Clients use the client cvar pp_draw_timeofday 1 to enable this.


Name (targetname) <string>
The targetname that other entities refer to this entity by.
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.


Pitch Yaw Roll (Y Z X) (angles) <angle>
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.
  • HDRColorScale
<float> Float value to multiply sprite color by when running in HDR mode.
  • dynamicsun
<boolean> Set to NO if you do not wish this sun entity to move based on the ambiental time, you will only need to set the sun angles. Set to YES otherwise, you will also need to set rotaxis, rotmidday, rotcenter, and distancecenter.
Note:If you set this to YES you still have to set the sun angles as players might turn off the ambiental time feature.
  • rotaxis
<angle> The sun will use the axis defined by these angles for its rotation. ie. The angles 0 90 0 will create a rotation around the Y axis where the sun will start at the positive X axis go to positive Z, then X(-) and finally Z(-) before returning to the starting point.
  • rotmidday
<float> Set the rotation angle at which the sun should be at 12:00pm ambiental time. By default, it is 90 degrees, the center of the sky in the regular case. If you modify this angle, the sun will start at a different point on its rotation.
  • rotcenter
<vector> Represents the center of translation (rotation around a point). The sun will rotate around this point so the usual value for this will be the center of your map. You may create special rotations by modifying this and rotaxis, ie. The effect of the sun at the poles.
  • distancecenter
<float> This defines the distance of the sun from its rotation center. Since the sun is always projected to the infinite this is only useful when trying to get a special rotation effect, the sun's position will be first calculated using this distance, new angles will be obtained and then it will be projected to the infinite. For the regular case (center at middle of the map), any value greater than 0 will work. A value of 0 will make the sun stay in place.
  • rendercolor
<color255> Color of the sun.
  • size
<integer> Size of the sun.
  • overlaycolor (New with Half-Life 2: Episode One / Source 2006)
<color255> Overlay Color (R G B)
A value of 0 0 0 will act the old way.
  • overlaysize (New with Half-Life 2: Episode One / Source 2006)
<integer> Overlay Size
A value of -1 means the overlay will act the old way.
  • material (New with Half-Life 2: Episode One / Source 2006)
<material> Material Name
Material of the inner glow. (sprites/light_glow02_add_noz)
  • overlaymaterial (New with Half-Life 2: Episode One / Source 2006)
<material> Overlay Material Name
Material of the overlay glow. (sprites/light_glow02_add_noz)


  • Targetname:

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 Kill.
AddOutput <string>
Evaluates a keyvalue/output on this entity. It can be potentially very dangerous, use with care.
Format: <key> <value>
Format: <output name> <targetname>:<inputname>:<parameter>:<delay>:<max times to fire, -1 means infinite>
FireUser1 to FireUser4
Fire the OnUser outputs; see User Inputs and Outputs.
Use  !FGD
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.
RunScriptFile <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.
RunScriptCode <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 <Left 4 Dead 2>, 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.
CallScriptFunction <string> (New with Left 4 Dead 2) !FGD
Execute a VScript function in the scope of the receiving entity.
SetLocalOrigin <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.
SetLocalAngles <angles> (New with Alien Swarm) !FGD
Set this entity's angles.
  • TurnOn
Enable sun rendering.
  • TurnOff
Disable sun rendering.
Set the rendercolor.


OnUser1 to OnUser4
These Outputs each fire in response to the firing of the like-numbered FireUser1 to FireUser4 Input; 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.