Fast Wide Pulse (4) - Beam quickly pulses with transparency. Strong.
Slow Fade Away (5) - Seemingly unused.
Fast Fade Away (6) - Seemingly unused.
Slow Become Solid (7) - Seemingly unused.
Fast Become Solid (8) - Seemingly unused.
Slow Strobe (9) - A very slow strobe effect between visible and invisible.
Fast Strobe (10) - A medium strobe effect between visible and invisible.
Faster Strobe (11) - A very fast strobe effect between visible and invisible.
Slow Flicker (13) - Beam flickers in and out of visibility.
Fast Flicker (13) - Beam quickly flickers in and out of visibility.
Constant Glow (14) - Seemingly unused.
Distort (15) - Beam has a slight fast pulsing of transparency.
Hologram (Distort + fade) (16) - Beam has a slight fast pulsing of transparency. Fades out with distance.
Name (targetname) - Name is a general attribute used to identify entities.
Pitch Yaw Roll (Y Z X) (angles) - Seemingly unused.
Target of Laser (LaserTarget) - Sets the entity that marks the end of the laser. The laser will start at the env_laser entity and end at the entity named here.
Brightness (1 - 255) (renderamt) - Sets the transparency of the beam. Scales from 1 (invisible) to 255 (solid).
Beam Color (R G B) (rendercolor) - Sets the colour of the beam.
Width of beam (pixels*0.1 0-255) (BoltWidth) - Sets the width of the beam. Measured in tenths of a unit. This attribute works like a radius; the beam will actually be twice as wide as the defined value.
Amount of noise (0-255) (NoiseAmplitude) - Sets how erratic the beam will be. The beam will always start and end at the usual points, but the path of the beam will move randomly to a degree defined by this attribute. Scales from 0 (perfectly straight beam) to 255 (wildly moving beam).
Sprite Name (texture) - This defines which sprite file the entity will use to form the beam. This accepts an input of the form "path/filename.spr" (starting from the root folder). (Example: "sprites/laserbeam.spr").
End Sprite (EndSprite) - This defines a sprite that will be placed at the end of the beam. This accepts an input of the form "path/filename.spr" (starting from the root folder). (Example: "sprites/glow01.spr"). The sprite will have the same colour as the beam, and seems to use a render mode of "glow". The size of sprite seems to be locked to the default, regardless of the size of the beam.
Texture Scroll Rate (0-100) (TextureScroll) - Sets how fast the sprites move along the beam. Scales from 0 (no movement) to 100 (extremely fast).
Starting Frame (framestart) - Sets which frame of animation that the sprite should use.
Damage / second (damage) - Sets how much damage the beam should do when you walk through it. Note that the damage is only dealt in a straight line between start and end point, regardless of any fluctuation in the beam from the Amount of Noise attribute.
Flags
Start On (1) - If enabled, the beam will be turned on upon map start. Otherwise you will need to trigger the env_beam to turn it on.
StartSparks (16) - If enabled, the start of the beam will spark when it is activated.
EndSparks (32) - If enabled, the end of the beam will spark when it is activated.
Decal End (64) - If enabled, the beam will draw a scorch decal on a surface it hits.
Notes
The env_laser is almost identical to the env_beam entity. It lacks many options that env_beam has that are not particularly relevant to a laser. Thus, in most cases, using an env_beam instead of an env_laser would be advisable. However, the env_beam does not have the options to draw a sprite at the end of the beam, nor can it draw the scorch decals where the beam travels. Using an env_laser is only advised if you have a particular need for these functions.
info_targets are often used for stationary start/end points. To make moving beams, use func_trains.
The fluctuation of a beam (via the Amount of noise attribute) seems to be affected by the length of the beam; longer beams will be more affected by the same noise value.
The sprite used in the beam does not seem to animate, though if the sprite has multiple frames, you can choose which frame it uses.
If multiple entities have the same name as the Target of Laser, the beam will randomly choose a target from those entities. This can be used to create a random function by placing buttons triggered by damage in the path of the beams.