This is a func_tank that fires laser beams instead of bullets. To make it controllable by the player, you'll need a func_tankcontrols entity associated with it.
Name (targetname) - Property used to identify entities.
Target (target) - When an entity is activated, it triggers the entity with the name specified by Target.
Render FX (renderfx) - Gives objects special render effects. Think of it as modifying whatever the Render Mode puts out. The options are as follows:
0 = Normal
1 = Slow Pulse
2 = Fast Pulse
3 = Slow Wide Pulse
4 = Fast Wide Pulse
5 = Slow Fade Away
6 = Fast Fade Away
7 = Slow Become Solid
8 = Fast Become Solid
9 = Slow Strobe
10 = Fast Strobe
11 = Faster Strobe
12 = Slow Flicker
13 = Fast Flicker
14 = Constant Glow
15 = Distort
16 = Hologram (Distort and Fade)
Render Mode (rendermode) - Controls the type of rendering that is used for an object. Options are:
0 = Normal
1 = Color
2 = Texture
3 = Glow
4 = Solid
5 = Additive
Pitch Yaw Roll (angles) - Sets the pitch (up / down), yaw (left / right) and roll (bank) respectively. The settings are not always (or not all) used, depending on the entity type.
FX Amount (renderamt)
FX Color (rendercolor)
Global Entity Name (globalname)
(Team) Master (master)
Yaw rate (yawrate) - The speed of left/right movement of the gun.
Yaw range (yawrange) - Range of left/right movement in degrees.
Yaw tolerance (yawtolerance)
Pitch rate (pitchrate) - The speed of up/down movement of the gun.
Pitch range (pitchrange) - Range of up/down movement in degrees.
Pitch tolerance (pitchtolerance)
Barrel Length (barrel) - The distance from the center of the origin brush to the tip of the barrel.
Barrel Horizontal (barrely) - Horizontal distance from the center of the origin brush to the center of the Barrel.
Barrel Vertical (barrelz) - Vertical distance from the center of the origin brush to the center of the Barrel.
Smoke Sprite (spritesmoke) - The sprite that will be shown at the end of the barrel when the gun is fired.
Flash Sprite (spriteflash) - The sprite that will be shown at the end of the barrel when the gun is fired.
Sprite Scale (spritescale) - Scale of the sprites that appear at the end of the barrel. 1 is normal, 0.5 is half, etc.
Rotate Sound (rotatesound)
Rate of Fire (firerate) - Number of bullets fired per second.
Damage per Bullet (bullet_damage) - Default is 0, so if you want it to kill things you must enter something.
Firing Persistance (persistance) - Used by non-player-controlled guns to determine for how long the gun carries on firing after the player has left its range.
Bullet accuracy (firespread) - How accurate the gun is. Values:
0 = perfect shot
1 = small cone
2 = medium cone
3 = large cone
4 = extra-large cone
Minimum target range (minRange) - Minimum range the target can be at for a non-player-controlled gun to fire.
Maximum target range (maxRange) - Maximum range the target can be at for a non-player-controlled gun to fire.
Minimum light level (_minlight) - The minimum light level the entity will have, even if its initial position in the editor is in a purely dark room. This is a very aggressive value, so even a value of 0.02 will make the entity relatively bright.
ZHLT Lightflags (zhlt_lightflags)
Light Origin Target (light_origin) - Overrides the position from which the entity will receive its lighting when the map compiles. Useful if the entity doesn't have the correct lighting in-game. This can be used with an info_target.
env_laser Entity (laserentity) - The name of the env_laser entity to use.
Active (1) - If enabled, the gun will be active when the map loads. If not enabled, the gun will need to be triggered to work (if non-player-controlled).
Only direct (16) - Laser will only fire if the target is in direct line of sight (when non-player-controlled).
Controllable (32) - If enabled, the gun can be controlled by the player through a func_tankcontrols entity.
The func_tanklaser needs to be created facing 0 degrees (to the right in the top (x/y) view). The angle that the weapon faces in-game can be controlled with the compass (Yaw).
Targetting an ambient_generic (with its Not Toggled and Start Silent flags enabled) allows you to give the gun a sound.
The env_laser entity is used to determine how the laser beams look. The Target of the env_laser should be the Name of the func_tanklaser.