/*QUAKED item_***** ( 0 0 0 ) (-16 -16 -16) (16 16 16) suspended
DO NOT USE THIS CLASS, IT JUST HOLDS GENERAL INFORMATION.
The suspended flag will allow items to hang in the air, otherwise they are dropped to the next surface.

If an item is the target of another entity, it will not spawn in until fired.

An item fires all of its targets when it is picked up.  If the toucher can't carry it, the targets won't be fired.

"notfree" if set to 1, don't spawn in free for all games
"notteam" if set to 1, don't spawn in team games
"notsingle" if set to 1, don't spawn in single player games
"wait"	override the default wait before respawning.  -1 = never respawn automatically, which can be used with targeted spawning.
"random" random number of plus or minus seconds varied from the respawn time
"count" override quantity or duration on most items.
*/


/*QUAKED weapon_phaser (.3 .3 1) (-16 -16 -16) (16 16 16) suspended
*/


/*QUAKED weapon_compressionrifle (.3 .3 1) (-16 -16 -16) (16 16 16) suspended
*/


/*QUAKED weapon_null_hand (.3 .3 1) (-16 -16 -16) (16 16 16) suspended
*/

/*QUAKED weapon_tricorder (.3 .3 1) (-16 -16 -16) (16 16 16) suspended
*/

/*QUAKED weapon_padd (.3 .3 1) (-16 -16 -16) (16 16 16) suspended
*/

/*QUAKED weapon_coffee (.3 .3 1) (-16 -16 -16) (16 16 16) suspended
*/


/*QUAKED weapon_disruptor (.3 .3 1) (-16 -16 -16) (16 16 16) suspended
*/

/*QUAKED weapon_medkit (.3 .3 1) (-16 -16 -16) (16 16 16) suspended
*/


/*QUAKED weapon_voyager_hypo (.3 .3 1) (-16 -16 -16) (16 16 16) suspended
*/


/*QUAKED weapon_grenadelauncher (.3 .3 1) (-16 -16 -16) (16 16 16) suspended
*/


/*QUAKED weapon_tr116 (.3 .3 1) (-16 -16 -16) (16 16 16) suspended
*/


/*QUAKED weapon_quantumburst (.3 .3 1) (-16 -16 -16) (16 16 16) suspended
*/


/*QUAKED weapon_dermal_regen (.3 .3 1) (-16 -16 -16) (16 16 16) suspended
*/

/*QUAKED weapon_toolkit (.3 .3 1) (-16 -16 -16) (16 16 16) suspended
*/

/*QUAKED weapon_hyperspanner (.3 .3 1) (-16 -16 -16) (16 16 16) suspended
*/


/*QUAKED ammo_compressionrifle (.3 .3 1) (-16 -16 -16) (16 16 16) suspended
32 ammo for the compression rifle
*/


/*QUAKED ammo_imod (.3 .3 1) (-16 -16 -16) (16 16 16) suspended
15 ammo for the I-MOD
*/


/*QUAKED ammo_scavenger (.3 .3 1) (-16 -16 -16) (16 16 16) suspended
30 ammo for the scavenger rifle
*/


/*QUAKED ammo_stasis (.3 .3 1) (-16 -16 -16) (16 16 16) suspended
15 ammo for the stasis weapon
*/


/*QUAKED ammo_grenades (.3 .3 1) (-16 -16 -16) (16 16 16) suspended
10 ammo for the grenade launcher
*/


/*QUAKED ammo_tetriondisruptor (.3 .3 1) (-16 -16 -16) (16 16 16) suspended
40 ammo for the tetrYon disruptor
*/


/*QUAKED ammo_quantumburst (.3 .3 1) (-16 -16 -16) (16 16 16) suspended
6 ammo for the quantum burst weapon
*/


/*QUAKED ammo_dreadnought (.3 .3 1) (-16 -16 -16) (16 16 16) suspended
40 ammo for the dreadnought/arc welder
*/


/*QUAKED item_armor_shard (.3 .3 1) (-16 -16 -16) (16 16 16) suspended
5 points of shields
*/


/*QUAKED item_armor_combat (.3 .3 1) (-16 -16 -16) (16 16 16) suspended
50 points of shields
*/


/*QUAKED item_armor_body (.3 .3 1) (-16 -16 -16) (16 16 16) suspended
100 points of shields
*/


/*QUAKED item_hypo_small (.3 .3 1) (-16 -16 -16) (16 16 16) suspended
5 points of health, max of 200
*/


/*QUAKED item_hypo (.3 .3 1) (-16 -16 -16) (16 16 16) suspended
25 points of health, max of 100
*/


/*QUAKED holdable_transporter (.3 .3 1) (-16 -16 -16) (16 16 16) suspended
pick it up and it stays in your inventory until used, at which time you drop it in front of you and it still
kind of resides in your inventory. when you use it _again_ it activates and anyone can walk through the transporter.
*/


/*QUAKED holdable_medkit (.3 .3 1) (-16 -16 -16) (16 16 16) suspended
pick it up and it stays in your inventory until used, at which time it sets your health to 100
*/

/*QUAKED item_haste (.3 .3 1) (-16 -16 -16) (16 16 16) suspended
for 30 seconds you run at %150 of your normal speed and your firing delays are 3/4 as long
*/


/*QUAKED item_invis (.3 .3 1) (-16 -16 -16) (16 16 16) suspended
20 seconds of invisibility
*/


/*QUAKED item_flight (.3 .3 1) (-16 -16 -16) (16 16 16) suspended
30 seconds of flight
*/


/*QUAKED team_CTF_redflag (1 0 0) (-24 -24 -16) (24 24 32)
Only in CTF games
*/


/*QUAKED team_CTF_blueflag (0 0 1) (-24 -24 -16) (24 24 32)
Only in CTF games
*/


/*QUAKED holdable_detpack (.3 .3 1) (-16 -16 -16) (16 16 16) suspended
BLAMMO!
*/


/*QUAKED holdable_shield (.3 .3 1) (-16 -16 -16) (16 16 16) suspended
About 25 seconds or 250 hit points of a portashield.
*/


/*QUAKED Holographic_decoy (.3 .3 1) (-16 -16 -16) (16 16 16) suspended
About 1 minute of a holographic decoy.
*/


/*QUAKED weapon_voyager_hypo (.3 .3 1) (-16 -16 -16) (16 16 16) suspended
*/


/*QUAKED weapon_borg_assimilator (.3 .3 1) (-16 -16 -16) (16 16 16) suspended
*/


/*QUAKED weapon_borg_weapon (.3 .3 1) (-16 -16 -16) (16 16 16) suspended
*/


/*QUAKED misc_model_breakable (1 0 0) (-16 -16 -16) (16 16 16) SOLID AUTOANIMATE DEADSOLID NO_DMODEL INVINCIBLE x x x x
SOLID - Movement is blocked by it, if not set, can still be broken by explosions and shots if it has health
AUTOANIMATE - Will cycle it's anim
DEADSOLID - Stay solid even when destroyed (in case damage model is rather large).
NO_DMODEL - Makes it NOT display a damage model when destroyed, even if one exists
INVINCIBLE - Can only be broken by being used

"model"		arbitrary .md3 file to display
"health"	how much health to have - default is zero (not breakable)  If you don't set the SOLID flag, but give it health, it can be shot but will not block NPCs or players from moving
"targetname" when used, dies and displays damagemodel, if any (if not, removes itself)
"target" What to use when it dies
"paintarget" target to fire when hit (but not destroyed)
"wait"		how long minimum to wait between firing paintarget each time hit

Damage: default is none
"splashDamage" - damage to do (will make it explode on death)
"splashRadius" - radius for above damage

"team" - This cannot take damage from members of this team (2 = blue, 1 = red)

"material" - sets the chunk type:
 0 - none (default)
 1 - metal
 2 - glass
 3 - glass and metal
 4 - wood
 5 - stone

FIXME/TODO: 
set size better?
multiple damage models?
don't throw chunks on pain, or throw level 1 chunks only on pains?
custom explosion effect/sound?
*/


/*QUAKED misc_ammo_station (1 0 0) (-16 -16 -16) (16 16 16) 

"health" - how much health the model has - default 60 (zero makes non-breakable)
"target" - what to use when it dies
"paintarget" - target to fire when hit (but not destroyed)
"count" - the amount of health given when used (default 1000)

"team" - This cannot take damage from members of this team and only members of this team can use it (2 = blue, 1 = red)
*/


/*QUAKED info_player_deathmatch (1 0 1) (-16 -16 -24) (16 16 32) initial
potential spawning position for deathmatch games.
The first time a player enters the game, they will be at an 'initial' spot.
Targets will be fired when someone spawns in on them.
"nobots" will prevent bots from using this spot.
"nohumans" will prevent non-bots from using this spot.
*/


/*QUAKED info_player_start (1 0 0) (-16 -16 -24) (16 16 32)
equivelant to info_player_deathmatch
*/


/*QUAKED info_player_intermission (1 0 1) (-16 -16 -24) (16 16 32)
The intermission will be viewed from this point.  Target an info_notnull for the view direction.
*/


/*QUAKED item_botroam (.5 .3 .7) (-16 -16 -24) (16 16 0)
Bots in MP will go to these spots when there's nothing else to get- helps them patrol.
*/


/*QUAKED info_camp (0 0.5 0) (-4 -4 -4) (4 4 4)
Used as a positional target for calculations in the utilities (spotlights, etc), but removed during gameplay.
*/


/*QUAKED info_null (0 0.5 0) (-4 -4 -4) (4 4 4)
Used as a positional target for calculations in the utilities (spotlights, etc), but removed during gameplay.
*/


/*QUAKED info_notnull (0 0.5 0) (-4 -4 -4) (4 4 4)
Used as a positional target for in-game calculation, like jumppad targets.
target_position does the same thing
*/


/*QUAKED light (0 1 0) (-8 -8 -8) (8 8 8) linear noIncidence
Non-displayed light.
"light" overrides the default 300 intensity.
'Linear' checkbox gives linear falloff instead of inverse square
'noIncidence' checkbox makes lighting smoother
Lights pointed at a target will be spotlights.
"radius" overrides the default 64 unit radius of a spotlight at the target point.
*/


/*QUAKED misc_teleporter_dest (1 0 0) (-32 -32 -24) (32 32 -16)
Point teleporters at these.
Now that we don't have teleport destination pads, this is just
an info_notnull
*/


/*QUAKED misc_model (1 0 0) (-16 -16 -16) (16 16 16)
"model"		arbitrary .md3 file to display
*/


/*QUAKED misc_portal_surface (0 0 1) (-8 -8 -8) (8 8 8)
The portal surface nearest this entity will show a view from the targeted misc_portal_camera, or a mirror view if untargeted.
This must be within 64 world units of the surface!

targetname - When used, cycles to the next misc_portal_camera it's targeted
wait - makes it auto-cycle between all cameras it's pointed at at intevervals of specified number of seconds.

  cameras will be cycled through in the order they were created on the map.
*/


/*QUAKED misc_portal_camera (0 0 1) (-8 -8 -8) (8 8 8) slowrotate fastrotate
The target for a misc_portal_surface.  You can set either angles or target another entity (NOT an info_null) to determine the direction of view.
"roll" an angle modifier to orient the camera around the target vector;
*/


/*QUAKED shooter_rocket (1 0 0) (-16 -16 -16) (16 16 16)
Fires at either the target or the current direction.
"random" the number of degrees of deviance from the taget. (1.0 default)
*/


/*QUAKED shooter_plasma (1 0 0) (-16 -16 -16) (16 16 16)
Fires at either the target or the current direction.
"random" is the number of degrees of deviance from the taget. (1.0 default)
*/


/*QUAKED shooter_grenade (1 0 0) (-16 -16 -16) (16 16 16)
Fires at either the target or the current direction.
"random" is the number of degrees of deviance from the taget. (1.0 default)
*/


/*QUAKED path_corner (.5 .3 0) (-8 -8 -8) (8 8 8)
Train path corners.
Target: next path corner and other targets to fire
"speed" speed to move to the next corner
"wait" seconds to wait before behining move to next corner
*/


/*QUAKED path_point (.5 .3 0) (-8 8 8) (8 8 8) START_POINT
START_POINT this is the first path_point for the train

"target" next path_point
"wait"	 time beforce moving on, -1 wait until used
"damage" used to tell the func_mover it should fire it's targets here
"angles" to rotate to
*/


/*QUAKED worldspawn (0 0 0) ?

Every map should have exactly one worldspawn.
"music"		path to WAV or MP3 files (e.g. "music\intro.mp3 music\loopfile.mp3")
"gravity"	800 is default gravity
"message"	Text to print during connection process

fraglimit - overrides server's limit
capturelimit - overrides server's capturelimit (use with team AddScores)
timelimit - overrides server's timelimit
timelimitWinningTeam - "red" or "blue" - this team will win when the timelimit runs out
*/


/*QUAKED target_give (1 0 0) (-8 -8 -8) (8 8 8)
Gives all the weapons specified here in the list.

"items" - separated by ' | ', specify the items
EG "WP_PHASER | WP_TOOLKIT" etc
(Don't forget the spaces!)
*/


/*QUAKED target_remove_powerups (1 0 0) (-8 -8 -8) (8 8 8)
takes away all the activators powerups.
Used to drop flight powerups into death puts.
*/


/*QUAKED target_delay (1 0 0) (-8 -8 -8) (8 8 8) SELF
SELF   use the entity as activator instead of it's own activator when using it's targets (use this flag for targets that are target_boolean, targer_alert, and target_warp)

"wait" seconds to pause before firing targets.
"random" delay variance, total delay = delay +/- random seconds
*/


/*QUAKED target_score (1 0 0) (-8 -8 -8) (8 8 8) TEAMSCORE
TEAMSCORE - points are added to activator's team's score, not the individual

"count" number of points to add, default 1

The activator is given this many points.
*/


/*QUAKED target_print (1 0 0) (-8 -8 -8) (8 8 8) redteam blueteam private
"message"	text to print
If "private", only the activator gets the message.  If no checks, all clients get the message.
*/


/*QUAKED target_speaker (1 0 0) (-8 -8 -8) (8 8 8) looped-on looped-off global activator
"noise"		wav file to play

A global sound will play full volume throughout the level.
Activator sounds will play on the player that activated the target.
Global and activator sounds can't be combined with looping.
Normal sounds play each time the target is used.
Looped sounds will be toggled by use functions.
Multiple identical looping sounds will just increase volume without any speed cost.
"wait" : Seconds between auto triggerings, 0 = don't auto trigger
"random"	wait variance, default is 0
*/


/*QUAKED target_laser (0 .5 .8) (-8 -8 -8) (8 8 8) START_ON
When triggered, fires a laser.  You can either set a target or a direction.
*/


/*QUAKED target_teleporter (1 0 0) (-8 -8 -8) (8 8 8) VISUAL_FX SUSPENDED
The activator will be instantly teleported away.
VISUAL_FX - Instead of instant teleportation with no FX, entity will play the Star Trek style
transporter effect and teleport over the course of an 8 second cycle.
SUSPENDED - Unless this is checked, the player will materialise on top of the first solid
surface underneath the entity

"targetname" - Any entities targeting this will activate it when used.
"target"     - Name of one or more notnull entities that the player teleport to.

NB-If using the transporter VISUAL_FX, place the target entity so it's right on top of
the surface you want the player to appear on.  It's been hardcoded to take this offset into
account only when the VISUAL_FX flag is on.
*/


/*QUAKED target_relay (.5 .5 .5) (-8 -8 -8) (8 8 8) RED_ONLY BLUE_ONLY RANDOM SELF
This doesn't perform any actions except fire its targets.
The activator can be forced to be from a certain team.
if RANDOM is checked, only one of the targets will be fired, not all of them

SELF	use the entity as activator instead of it's own activator when using it's targets (use this flag for targets that are target_boolean, targer_alert, and target_warp)
*/


/*QUAKED target_kill (.5 .5 .5) (-8 -8 -8) (8 8 8)
Kills the activator.
*/


/*QUAKED target_position (0 0.5 0) (-4 -4 -4) (4 4 4)
Used as a positional target for in-game calculation, like jumppad targets.
*/


/*QUAKED target_location (0 0.5 0) (-8 -8 -8) (8 8 8)
Set "message" to the name of this location.
Set "count" to 0-7 for color.
0:white 1:red 2:green 3:yellow 4:blue 5:cyan 6:magenta 7:white

Closest target_location in sight used for the location, if none
in site, closest in distance
*/


/*QUAKED target_counter (1.0 0 0) (-4 -4 -4) (4 4 4) x x x x x x x x
Acts as an intermediary for an action that takes multiple inputs.

After the counter has been triggered "count" times (default 2), it will fire all of it's targets and remove itself.
*/


/*QUAKED target_objective (1.0 0 0) (-4 -4 -4) (4 4 4)
When used, the objective in the <mapname>.efo with this objective's "count" will be marked as completed

count - number of objective (as listed in the maps' <mapname>.efo)

NOTE: the objective with the lowest "count" will be considered the current objective
*/


/*QUAKED team_CTF_redplayer (1 0 0) (-16 -16 -16) (16 16 32) BORGQUEEN
Only in CTF games.  Red players spawn here at game start.

BORGQUEEN - The player that is the Borg Queen will spawn here
*/


/*QUAKED team_CTF_blueplayer (0 0 1) (-16 -16 -16) (16 16 32) BORGQUEEN
Only in CTF games.  Blue players spawn here at game start.

BORGQUEEN - The player that is the Borg Queen will spawn here
*/


/*QUAKED team_CTF_redspawn (1 0 0) (-16 -16 -24) (16 16 32) STARTOFF
potential spawning position for red team in CTF games, AFTER game start
Targets will be fired when someone spawns in on them.

STARTOFF - won't be considered as a spawn point until used

targetname - when used, toggles between active and incative spawn point
*/


/*QUAKED team_CTF_bluespawn (0 0 1) (-16 -16 -24) (16 16 32) STARTOFF
potential spawning position for blue team in CTF games, AFTER game start
Targets will be fired when someone spawns in on them.

STARTOFF - won't be considered as a spawn point until used

targetname - when used, toggles between active and incative spawn point
*/


/*QUAKED trigger_multiple (.5 .5 .5) ? RED_OK BLUE_OK TEAM_ONLY
RED_OK - People on the red team can fire this trigger
BLUE_OK - People on the blue team can fire this trigger
TEAM_ONLY - Only people on red or blue can fire this trigger (not TEAM_FREE like in straight holomatch or spectators)

"wait" : Seconds between triggerings, 0.5 default, -1 = one time only.
"random"	wait variance, default is 0
Variable sized repeatable trigger.  Must be targeted at one or more entities.
so, the basic time between firing is a random time between
(wait - random) and (wait + random)
*/


/*QUAKED trigger_always (.5 .5 .5) (-8 -8 -8) (8 8 8)
This trigger will always fire.  It is activated by the world.
*/


/*QUAKED trigger_push (.5 .5 .5) ?
Must point at a target_position, which will be the apex of the leap.
This will be client side predicted, unlike target_push
*/


/*QUAKED trigger_teleport (.5 .5 .5) ? SPECTATOR RANDOM VISUAL_FX SUSPENDED
Allows client side prediction of teleportation events.
Must point at a target_position, which will be the teleport destination.

--------- spawnflags --------

If spectator is set, only spectators can use this teleport
Spectator teleporters are not normally placed in the editor, but are created
automatically near doors to allow spectators to move through them

  RANDOM -- send player to random info_player_deathmatch spawn point
  VISUAL_FX -- plays the Star Trek transporter FX and beams the player out slowly
  SUSPENDED -- player appears with the bounding box aligned to the bottom of the target
  If this isn't set, the player materializes at the first solid surface under it

----------- keys ------------

  health -- default is original behavior (speed of 400), any other value will be the
 speed at which the player is spewed forth from the tranpsorter destination. -1
 if you want no speed. The transporter VISUAL_FX flag will only work if the health
 is set to 0 or -1 as it cannot support 'spewing'.
*/


/*QUAKED misc_turret (1 0 0) (-8 -8 -8) (8 8 8) START_OFF
Will aim and shoot at enemies

  START_OFF - Starts off

  random - How far away an enemy can be for it to pick it up (default 512)
  speed - How fast it turns (degrees per second, default 30)
  wait	- How fast it shoots (shots per second, default 4, can't be less)
  dmg	- How much damage each shot does (default 5)
  health - How much damage it can take before exploding (default 100)
  
  splashDamage - How much damage the explosion does
  splashRadius - The random of the explosion
  NOTE: If either of the above two are 0, it will not make an explosion
  
  targetname - Toggles it on/off
  target - What to use when destroyed

  "team" - This cannot take damage from members of this team and will not target members of this team (2 = blue, 1 = red)
*/


/*QUAKED misc_laser_arm (1 0 0) (-8 -8 -8) (8 8 8) 

What it does when used depends on it's "count" (can be set by a script)
	count:
		0 (default) - Fire in direction facing
		1 turn left
		2 turn right
		3 aim up
		4 aim down

  speed - How fast it turns (degrees per second, default 30)
  dmg	- How much damage the laser does 10 times a second (default 5 = 50 points per second)
  wait  - How long the beam lasts, in seconds (default is 3)
  
  targetname - to use it
  target - What thing for it to be pointing at to start with

  "startRGBA" - laser color, Red Green Blue Alpha, range 0 to 1 (default  1.0 0.85 0.15 0.75 = Yellow-Orange)
*/


/*QUAKED _decal (0 1.0 0) ?
-------- KEYS --------
"target" the name of the entity targetted at for projection
-------- SPAWNFLAGS --------
(none)
-------- NOTES --------
Compiler-only entity that specifies a decal to be projected. Should
contain 1 or more patch meshes (curves) and target an info_null entity.
The distance between the center of the _decal entity and the target is the
axis and distance of projection.
*/

// RPG-X trigger_*

/*QUAKED trigger_hurt (.5 .5 .5) ? START_OFF TOGGLE SILENT NO_PROTECTION SLOW EVO_PROTECT
Any entity that touches this will be hurt.
It does dmg points of damage each server frame
Targeting the trigger will toggle its on / off state.

SILENT			supresses playing the sound
TOGGLE			can be toggled
SLOW			changes the damage rate to once per second
NO_PROTECTION	*nothing* stops the damage
EVO_PROTECT		Evosuit protects the client

"dmg"			default 5 (whole numbers only)
*/

// RPG-X target_*

/*QUAKED target_boolean (.5 .5 .5) (-8 -8 -8) (8 8 8) START_TRUE SWAP_FIRE SELF
Acts as an if statement. When fired normaly if true it fires one target, if false it fires another.
START_TRUE		the boolean starts true.
SWAP_FIRE		when the swap command is issued it will also fire the new target.
SELF   			use the entity as activator instead of it's own activator when using it's targets (use this flag for targets that are target_boolean, targer_alert, and target_warp)

"targetname"	this when fired will fire the target according to which state the boolean is in
"swapname"		this when fired will swap the boolean from one state to the opposite
"truename"		this when fired will swap the boolean's state to true
"falsename"		this when fired will sawp the boolean's state to false
"truetarget"	this will be fired if the boolean is true then the targetname is recieved
"falsetarget"	this will be fired if the boolean is false then the targetname is recieved
*/

/*QUAKED target_gravity (.5 .5 .5) (-8 -8 -8) (8 8 8) PLAYER_ONLY MAP_GRAV
This changes the servers gravity to the ammount set.

PLAYER_ONLY If select this will only change the gravity for teh actiator.
MAP_GRAV Will reset player to the current global gravity.
*/

/*QUAKED target_shake (.5 .5 .5) (-8 -8 -8) (8 8 8)
When fired every clients monitor will shake as if in an explition

"intensity" Time that the shaking lasts for in seconds
"damage" Strength of shake
*/

/*QUAKED target_evosuit (.5 .5 .5) (-8 -8 -8) (8 8 8)
Used to put an evosuit on or off for each player
*/

/*QUAKED target_turbolift (.5 .5 .5) ? x x x x x x x x OFFLINE
Turbolifts are delayed teleporters that send players between
each other, maintaining their view and position so the transition is seamless.
If you target this entity with a func_usable, upon activating that useable,
a menu will appear to select decks.  If you target any useables with this
entity, they'll be triggered when the sequence starts (ie scrolling light texture brushes).
If rpg_calcLiftTravelDuration is set to one it is possible to have two usables targeted, one for the
up and one for the down driection in order to use this set targetname2 of those to 
<targetname>_up and <targetname>_dn.
If you target any doors with this entity, they will shut and lock for this sequence.
For the angles, the entity's angle must be aimed at the main set of doors to the lift area.

OFFLINE				Turbolift is offline at start

"deck"				- which deck number this is (You can have multiple lifts of the same deck. Entity fails spawn if not specified)
"deckName"			- name of the main features on this deck (Appears in the deck menu, defaults to 'Unknown')
"wait"				- number of seconds to wait until teleporting the players (1000 = 1 second, default 3000)
"soundLoop"			- looping sound that plays in the wait period (Defaults to EF SP's sound. '*' for none)
"soundEnd"			- sound that plays as the wait period ends. (Defaults to EF SP's sound. '*' for none)
"soundStart			- sound that plays when the lift starts moving
"soundStartLength"	- how long the start sound is in seconds
"waitEnd"			- how long to wait from the lift stopping to the doors opening (default 1000 )
"swapname"			- toggles turbolift on/off
*/

/*QUAKED target_alert (1 0 0) (-8 -8 -8) (8 8 8) SOUND_TOGGLE SOUND_OFF
This entity acts like 3-Alert-Conditions scripts.

Any of the func_usables that are used as buttons must have the NO_ACTIVATOR spawnflag.

SOUND_TOGGLE		if set the alert sound can be toggled on/off by using the alerts trigger again.
SOUND_OFF			if SOUND_TOGGLE is set, the alert will be silent at beginning

"greenname"			the trigger for green alert should target this				
"yellowname"		the trigger for yellow alert should target this				
"redname"			the trigger for red alert should target this				
"bluename"			the trigger for blue alert should target this				
"greentarget"		anything that should be toggled when activating green alert	
"yellowtarget"		anything that should be toggled when activating yellow alert
"redtarget"			anything that should be toggled when activating red alert	
"bluetarget"		anything that should be toggled when activating blue alert	
"greensnd"			targetname of target_speaker with sound for green alert		
"yellowsnd"			targetname of target_speaker with sound for yellow alert		
"redsnd"			targetname of target_speaker with sound for red alert			
"bluesnd"			targetname of target_speaker with sound for blue alert
*/

/*QUAKED target_doorlock (1 0 0) (-8 -8 -8) (8 8 8) PRIVATE
Locks/Unlocks a door.

PRIVATE		if set, lockMsg/unlockMsg are only printed for activator

"target"    breakable to repair (targetname2)
"lockMsg"   message printed if door gets locked
"unlockMsg" message printed if door gets unlocked
*/

/*QUAKED target_repair (1 0 0) (-8 -8 -8) (8 8 8)
Repairs a func_breakable.

"target" breakable to repair (targetname2)
*/

/*QUAKED target_warp (1 0 0) (-8 -8 -8) (8 8 8) START_ON START_EJECTED START_WARP
An entity that manages warp and warpcore.

Any func_usable using this must have NO_ACTIVATOR flag.
Any target_relay, target_delay, or target_boolean using this must have SELF flag.

START_ON - If set, warpcore is on at start
START_EJECTED - If set, core is ejected at start
START_WARP - ship is on warp at start

"swapWarp"		 targetname to toggle warp
"swapCoreState"	 targetname to toggle core on/off state
"swapCoreEject"	 targetname to toggle core ejected state
"warpTarget"	 target to fire when going to warp
"core"			 target core(func_train)
"coreSwap"		 target for visibility swap
"wait"			 time before warp can be toggled again after retrieving the core(seconds)
"greensound"	 target_speaker with warp in sound
"yellowsound"	 target_speaker with warp out sound
"redsound"		 target_speaker with core off sound
"bluesound"		 target_speaker with core on sound
*/

/*QUAKED target_deactivate (1 0 0) (-8 -8 -8) (8 8 8)
This entity can be used to de/activate all func_usables with "target" as targetname2.

"target"	func_usable to de/activate(targetname2).
*/

/*QUAKED target_serverchange (1 0 0) (-8 -8 -8) (8 8 8) START_ON
This will make any client inside it connect to a different server.

Can be toggled by an usable if the usable has NO_ACTIVATOR spawnflag.

"serverNum"	server to connect to (rpg_server<serverNum> cvar)
*/


/*QUAKED target_levelchange (1 0 0) (-8 -8 -8) (8 8 8) 
This will change the map if rpg_allowSPLevelChange is set to 1.

"target" map to load (for example: borg2)
*/


// RPG-X func_*

/*QUAKED func_mover (0 .5 .8) ?

"target" path_point to start at
"speed"  speed to move with (default: 10)
"aspeed" angular speed to rotate with (default: 10)
*/

/*QUAKED func_timer (0.3 0.1 0.6) (-8 -8 -8) (8 8 8) START_ON
This should be renamed trigger_timer...
Repeatedly fires its targets.
Can be turned on or off by using.

"wait"			base time between triggering all targets, default is 1
"random"		wait variance, default is 0
so, the basic time between firing is a random time between
(wait - random) and (wait + random)

*/


/*QUAKED func_train (0 .5 .8) ? START_ON TOGGLE BLOCK_STOPS START_INVISIBLE
A train is a mover that moves between path_corner target points.
Trains MUST HAVE AN ORIGIN BRUSH.
The train spawns at the first target it is pointing at.
"model2"	.md3 model to also draw
"speed"		default 100
"dmg"		default	2
"noise"		looping sound to play when the train is in motion
"target"	next path corner
"color"		constantLight color
"light"		constantLight radius
"swapname"  targetname for visiblility change
*/


/*QUAKED func_static (0 .5 .8) ?
A bmodel that just sits there, doing nothing.  Can be used for conditional walls and models.
"model2"	.md3 model to also draw
"color"		constantLight color
"light"		constantLight radius
*/


/*QUAKED func_rotating (0 .5 .8) ? START_ON - X_AXIS Y_AXIS
You need to have an origin brush as part of this entity.  The center of that brush will be
the point around which it is rotated. It will rotate around the Z axis by default.  You can
check either the X_AXIS or Y_AXIS box to change that.

"model2"	.md3 model to also draw
"speed"		determines how fast it moves; default value is 100.
"dmg"		damage to inflict when blocked (2 default)
"color"		constantLight color
"light"		constantLight radius

"pos1"		Angles to end up at in addition to current angles- pitch yaw and roll.  Eg: 0 90 45 
*/


/*QUAKED func_bobbing (0 .5 .8) ? X_AXIS Y_AXIS
Normally bobs on the Z axis
"model2"	.md3 model to also draw
"height"	amplitude of bob (32 default)
"speed"		seconds to complete a bob cycle (4 default)
"phase"		the 0.0 to 1.0 offset in the cycle to start at
"dmg"		damage to inflict when blocked (2 default)
"color"		constantLight color
"light"		constantLight radius
*/


/*QUAKED func_pendulum (0 .5 .8) ?
You need to have an origin brush as part of this entity.
Pendulums always swing north / south on unrotated models.  Add an angles field to the model to allow rotation in other directions.
Pendulum frequency is a physical constant based on the length of the beam and gravity.
"model2"	.md3 model to also draw
"speed"		the number of degrees each way the pendulum swings, (30 default)
"phase"		the 0.0 to 1.0 offset in the cycle to start at
"dmg"		damage to inflict when blocked (2 default)
"color"		constantLight color
"light"		constantLight radius
*/


/*QUAKED func_door (0 .5 .8) ? START_OPEN x CRUSHER	TREK_DOOR FACE OVERRIDE LOCKED ADMIN_ONLY CORRIDOR
START_OPEN	the door to moves to its destination when spawned, and operate in reverse.  It is used to temporarily or permanently close off an area when triggered (not useful for touch or takedamage doors).
x
CRUSHER		door will crush
TREK_DOOR	if set this door will have a reduced auto trigger volume
FACE		if set, this door requires you to be facing it before the trigger will fire
OVERRIDE	if set, targetted doors won't wait until they're clear before closing
LOCKED		if set, door is locked at spawn
ADMIN_ONLY  if set, door only opens for admins
CORRIDOR	if set, door will have en even more reduced auto trigger volume

"model2"	  .md3 model to also draw
"angle"		  determines the opening direction
"targetname"  if set, no touch field will be spawned and a remote button or trigger field activates the door.
"targetname2" for target_doorlock
"speed"		  movement speed (100 default)
"wait"		  wait before returning (3 default, -1 = never return)
"lip"		  lip remaining at end of move (8 default)
"dmg"		  damage to inflict when blocked (2 default)
"color"		  constantLight color
"light"		  constantLight radius
"health"	  if set, the door must be shot open
"soundstart"  sound to play at start of moving
"soundstop"   sound to play at stop of moving
"soundlocked" sound to play when locked
*/


/*QUAKED func_plat (0 .5 .8) ? NO_TOUCH
Plats are always drawn in the extended position so they will light correctly.
NO_TOUCH - instead of staying up as long as someone touches it, it will wait "wait" seconds and return

"lip"		default 8, protrusion above rest position
"height"	total height of movement, defaults to model height
"speed"		overrides default 200.
"dmg"		overrides default 2
"model2"	.md3 model to also draw
"color"		constantLight color
"light"		constantLight radius
"wait"		how many seconds to wait before returning
*/


/*QUAKED func_button (0 .5 .8) ?
When a button is touched, it moves some distance in the direction of it's angle, triggers all of it's targets, waits some time, then returns to it's original position where it can be triggered again.

"model2"	.md3 model to also draw
"angle"		determines the opening direction
"target"	all entities with a matching targetname will be used
"speed"		override the default 40 speed
"wait"		override the default 1 second wait (-1 = never return)
"lip"		override the default 4 pixel lip remaining at end of move
"health"	if set, the button must be killed instead of touched
"color"		constantLight color
"light"		constantLight radius
*/

/*QUAKED func_group (0 0 0) ?
Used to group brushes together just for editor convenience.  They are turned into normal brushes by the utilities.
*/

/*QUAKED func_usable (0 .5 .8) ? STARTOFF AUTOANIM x ALWAYS_ON NOBLOCKCHECK x x x ADMIN_ONLY NO_ACTIVATOR NO_AREAPORTAL DEACTIVATED
START_OFF - the wall will not be there
AUTOANIM - If useing an md3, it will animate
ALWAYS_ON - Doesn't toggle on and off when used, just fires target
NOBLOCKCHECK - Will NOT turn on while something is inside it unless this is checked
ADMIN_ONLY - can only be used by admins
NO_ACTIVATOR - use the ent itself instead the player as activator
NO_AREAPORTAL - don't affect areaportals
DEACTIVATED - start deactivated

A bmodel that can be used directly by the player's "activate" button

"targetname"	When used, will toggle on and off
"target"		Will fire this target every time it is toggled OFF
"model2"		.md3 model to also draw
"color"			constantLight color
"light"			constantLight radius
"wait"			amount of time before the object is usable again (only valid with ALWAYS_ON flag)
"health"		if it has health, it will be used whenever shot at/killed - if you want it to only be used once this way, set health to 1
"messageNum"	the number relating to the message string that will display when the player scans this usable with a tricorder

"team" - This can only be used by this team (2 = blue, 1 = red)
*/

/*QUAKED func_forcefield (0 .5 .8) ? STARTOFF DONTTOGGLE ADMINS AUTOANIM x x x x
A brush that remains invisible until it is contacted by a player, where it temporarily
becomes visible

STARTOFF - Spawns in an off state, and must be used to be activated
DONTTOGGLE	 - This entity cannot be used to be switched on and off (ie always on)
ADMINS	 - Players in admin classes can move through the field
AUTOANIM - If a model is spawned with it, it will animate at 10FPS repeatedly

"flareWait"			How long the forcefield remains visible after the player contacts it (milliseconds)(default 150)
"activateWait"		How long the forcefield remains visible after activation/deactivation(default 500)
"damageWait"		How long the forecefield remains visible after it has been shot (default 400)
"kickback"			How far the player gets pushed back when they touch the forcefield (default 50)
"damage"			Damage sustained when the player touches the field (default 0 )
"target"			Will fire this target every time it is toggled
"model2"			.md3 model to also draw
"color"				constantLight color
"light"				constantLight radius
"activateSnd"		sound file to play when the field is activated
"damageSnd"			sound to play when the field is shot
"touchSnd"			sound to play if the field is contacted by a player.
"deactivateSnd"		sound to play when the field is turned off.
*/

/*QUAKED func_door_rotating (0 .5 .8) ? START_OPEN CRUSHER REVERSE X_AXIS Y_AXIS LOCKED ADMIN_ONLY CORRIDOR
This is the rotating door... just as the name suggests it's a door that rotates
START_OPEN	the door to moves to its destination when spawned, and operate in reverse.
REVERSE		if you want the door to open in the other direction, use this switch.
TOGGLE		wait in both the start and end states for a trigger event.
X_AXIS		open on the X-axis instead of the Z-axis
Y_AXIS		open on the Y-axis instead of the Z-axis
  
You need to have an origin brush as part of this entity.  The center of that brush will be
the point around which it is rotated. It will rotate around the Z axis by default.  You can
check either the X_AXIS or Y_AXIS box to change that.

"model2"	  .md3 model to also draw
"distance"	  how many degrees the door will open
"speed"	 	  how fast the door will open (degrees/second)
"color"		  constantLight color
"light"		  constantLight radius
"targetname"  door can only open/close when used by anonther entity
"targetname2" for target_doorlock
"soundstart"  sound played when start moving
"soundstop"	  sound played when stop moving
"soundlocked" sound played when locked
*/

/*QUAKED func_brushmodel (0 .5 .8) ?
A brushmodel.
Must have a originbrush.
*/

/*QUAKED func_lightchange (0 .5 .8) ?
Can be used for "toggling" light on/off.
Must target a func_brushmodel.
Must have a originbrush.
*/

/*QUAKED func_breakable (0 .8 .5) ? x x x x INVINCIBLE x x x REPAIRABLE
INVINCIBLE - can only be broken by being used
REPAIRABLE - con be repaired with hyperspanner

When destroyed, fires it's trigger and explodes

"targetname" entities with matching target will fire it
"paintarget" target to fire when hit (but not destroyed)
"wait"		how long minimum to wait between firing paintarget each time hit
"model2"	.md3 model to also draw
"target"	all entities with a matching targetname will be used when this is destoryed
"health"	default is 10

"team" - This cannot take damage from members of this team (2 = blue, 1 = red)

Damage: default is none
"splashDamage" - damage to do (will make it explode on death
"splashRadius" - radius for above damage

"material" - sets the chunk type:
 0 - none (default)
 1 - metal
 2 - glass
 3 - glass and metal
 4 - wood
 5 - stone

Don't know if these work:  
"color"		constantLight color
"light"		constantLight radius

*/

// RPG-X fx_*

/*QUAKED fx_spark (0 0 1) (-8 -8 -8) (8 8 8) STARTOFF
Emits sparks at the specified point in the specified direction

  "target" - ( optional ) direction to aim the sparks in, otherwise, uses the angles set in the editor.
  "wait(2000)"	- interval between events (randomly twice as long) 
*/


/*QUAKED fx_steam (0 0 1) (-8 -8 -8) (8 8 8) STARTOFF 
Emits steam at the specified point in the specified direction. will point at a target if one is specified.

Use toggleable steam with caution as updates every second instead of every 10 seconds, 
which means it sends 10 times the information that an untoggleable steam will send.

STARTOFF steam is of at spawn  

"targetname" - toggles on/off whenever used
"damage" - damage to apply when caught in steam vent, default - zero damage (no damage). Don't add this unless you really have to.
*/


/*QUAKED fx_bolt (0 0 1) (-8 -8 -8) (8 8 8) SPARKS BORG TAPER SMOOTH
Emits blue ( or borg green ) electric bolts from the specified point to the specified point

  SPARKS - create impact sparks, probably best used for time delayed bolts
  BORG - Make the bolts green

  "wait" - seconds between bolts (0 is always on, default is 2.0, -1 for random number between 0 and 5), bolts are always on for 0.2 seconds
  "damage" - damage per server frame (default 0)
  "random" - bolt chaos (0.1 = too calm, 0.5 = default, 1.0 or higher = pretty wicked)
*/


/*QUAKED fx_transporter (0 0 1) (-8 -8 -8) (8 8 8)
Emits transporter pad effect at the specified point. just rest it flush on top of the pad. 

*/


/*QUAKED fx_drip (0 0 1) (-8 -8 -8) (8 8 8) STARTOFF

  "damage" -- type of drips. 0 = water, 1 = oil, 2 = green
  "random" -- (0...1) degree of drippiness. 0 = one drip, 1 = Niagara Falls
*/


/*QUAKED fx_fountain (0 0 1) (-8 -8 -8) (8 8 8) STARTOFF

  STARTOFF - Effect spawns in an off state

"targetname" - name of entity when used turns this ent on/off
"target" - link to a notnull entity to position where the end point of this FX is
*/


/*QUAKED fx_surface_explosion (0 0 1) (-8 -8 -8) (8 8 8) NO_SMOKE LOUDER NODAMAGE
Creates a triggerable explosion aimed at a specific point.  Always oriented towards viewer.

  LOUDER - Cheap hack to make the explosion sound louder.
  NODAMAGE - Does no damage

  "target" (optional) If no target is specified, the explosion is oriented up
  "damage" - Damage per blast, default is 50. Damage falls off based on proximity.
  "radius" - blast radius (default 20)
  "speed" - camera shake speed (default 12).  Set to zero to turn camera shakes off
  "targetname" - triggers explosion when used
*/


/*QUAKED fx_blow_chunks (0 0 1) (-8 -8 -8) (8 8 8)
Creates a triggerable chunk spewer that can be aimed at a specific point.

  "target" - (required) Target to spew chunks at
  "targetname" - triggers chunks when used 
  "radius" - Average size of a chunk (default 65)

"material" - default is "metal" - choose from this list:
	None = 0,
	Metal = 1
	Glass = 2
	Glass Metal = 3
	Wood = 4
	Stone = 5
(there will be more eventually lol.. I hope)

*/

/*QUAKED fx_smoke (0 0 1) (-8 -8 -8) (8 8 8) STARTOFF
Emits cloud of thick black smoke from specified point.

  "target" (option) If no target is specified, the smoke drifts up
  "targetname" - fires only when used
  "radius" - size of the smoke puffs (default 16.0)

*/


/*QUAKED fx_electrical_explosion (0 0 1) (-8 -8 -8) (8 8 8) x x NODAMAGE
Creates a triggerable explosion aimed at a specific point
NODAMAGE - does no damage

  "target" (optional) If no target is specified, the explosion is oriented up
  "damage" - Damage per blast, default is 20. Damage falls off based on proximity.
  "radius" - blast radius (default 50)
  "targetname" - explodes each time it's used

*/

/*QUAKED fx_phaser (0 0 1) (-8 -8 -8) (8 8 8)
A phaser effect.

"target"	endpoint
"wait"		how long the phaser fires
"scale"		adjust the effects scale, default: 20
"customSnd" use a custom sound
"delay"		delay the effect, but not the sound. Can be used to adhust the timing between effect and customSnd
"impact"	set to 1 if you want an impact to be drawn
*/

/*QUAKED fx_torpedo (0 0 1) (-8 -8 -8) (8 8 8) QUANTUM
A torpedo effect.

QUANTUM		  set this flag if you whant an quantum fx instead of an photon fx

"target"      used for the calculation of the direction
"wait"		  time in seconds till fx can be used again
"noise"		  sound to play
"soundNoAmmo" sound to play if ammo is depleted
"count"		  ammount of torpedos that can be fired (defaults to -1 = infinite)
"speed"		  a speed modifier (default: 2.5)
*/

/*QUAKED fx_fire (0 0 1) (-8 -8 -8) (8 8 8) 
A fire affect based on the adminguns fire effect.

"size"	 how big the fire shoud be (default: 20)
"angles" fires angles (default: 0 0 0 = UP)
*/

/*QUAKED fx_particle_fire (0 0 1) (-8 -8 -8) (8 8 8) 
A particle based fire effect. Use this sparingly as it is an fps killer.
If you want to use a bunch of fires use fx_fire.

"size"	how big the fire shoud be (default: 10)
*/

// RPG-X misc_*

/*QUAKED misc_model_transporter (1 0 0) (-16 -16 -16) (16 16 16) TRANSPORT_IN AUTOANIMATE
A model that can be beamed in/out with beam effect.

TRANSPORT_IN model is not there at map start

"model"		arbitrary .md3 file to display
*/

