                              Quake 2 Entities

                    Platform                      Help
                    Rotating                     Secret
                    Buttons                       Goal
                     Doors                      Explosion
                 Rotating Door                Change Level
                     Water                       Splash
                     Train                       Spawner
                  Path Corner                    Blaster
                     Timer                 Cross Level Trigger
                    Conveyor               Cross Level Target
                  Secret Door                     Laser
                    Killbox                    Light Ramp
                    Speaker                    EarthQUAKE
                    Multiple                     Combat
                      Once                        Null
                      Key                       Not Null
                    Counter                       Light
                     Always                      Object
                      Push                      Explosive
                      Hurt                  Exploding Barrel
                    Gravity                       Clock
                  Monster Jump                 Teleporter
                 Turret Breach            Teleport Destination
                  Turret Base
                 Turret Driver



  ------------------------------------------------------------------------

                    This page will be updated as I learn
                more about the entities, will try to include
                       better explanations & examples.

              Taken from source to gamex86.dll by id Software.
                  Page by Tony Sideris (tonys111@erols.com)
                                Home Page at:
               http://www.geocities.com/TimesSquare/Arcade/4728

                             Plain Text Version

  ------------------------------------------------------------------------

=============
* FUNC_PLAT *
=============
speed   default 150

Plats are always drawn in the extended position, so they will light
correctly.

If the plat is the target of another trigger or button, it will start
out disabled in the extended position until it is trigger, when it
will lower and become a normal plat.

"speed" overrides default 200.
"accel" overrides default 500
"lip"   overrides default 8 pixel lip

If the "height" key is set, that will determine the amount the plat
moves, instead of being implicitly determoveinfoned by the model's
height.

Set "sounds" to one of the following:
1) base fast
2) chain slow

  ------------------------------------------------------------------------

============
* ROTATING *
============

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.

"speed" determines how fast it moves; default value is 100.
"dmg"   damage to inflict when blocked (2 default)

REVERSE will cause the it to rotate in the opposite direction.
STOP mean it will stop moving instead of pushing entities



  ------------------------------------------------------------------------

===========
* BUTTONS *
===========

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.

"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
"sounds"
1) silent
2) steam metal
3) wooden clunk
4) metallic click
5) in-out

  ------------------------------------------------------------------------

=========
* DOORS *
=========

ANIMATED_FAST
TOGGLE          wait in both the start and end states for a trigger event.
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).  NOMONSTER
                monsters will not trigger this door
"message"       is printed when the door is touched if it is a trigger door
                and it hasn't been fired yet
"angle"         determines the opening direction
"targetname"    if set, no touch field will be spawned and a remote button
                or trigger field activates the door.
"health"        if set, door must be shot open
"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)
"sounds"
1)      silent
2)      light
3)      medium
4)      heavy

  ------------------------------------------------------------------------

=================
* ROTATING DOOR *
=================
TOGGLE X_AXIS Y_AXIS
TOGGLE causes the door to wait in both the start and end states for a
       trigger event.
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).

NOMONSTER monsters will not trigger this door

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.

"distance" is how many degrees the door will be rotated.
"speed" determines how fast the door moves; default value is 100.

REVERSE will cause the door to rotate in the opposite direction.

"message"       is printed when the door is touched if it is a trigger
                door and it hasn't been fired yet
"angle"         determines the opening direction
"targetname"    if set, no touch field will be spawned and a remote button
                or trigger field activates the door.
"health"        if set, door must be shot open
"speed"         movement speed (100 default)
"wait"          wait before returning (3 default, -1 = never return)
"dmg"           damage to inflict when blocked (2 default)
"sounds"
1)      silent
2)      light
3)      medium
4)      heavy

  ------------------------------------------------------------------------

=========
* WATER *
=========
func_water is a moveable water brush.  It must be targeted to operate.
Use a non-water texture at your own risk.

START_OPEN causes the water to move to its destination when spawned
and operate in reverse.

"angle"         determines the opening direction (up or down only)
"speed"         movement speed (25 default)
"wait"          wait before returning (-1 default, -1 = TOGGLE)
"lip"           lip remaining at end of move (0 default)
"sounds"        (yes, these need to be changed)
0)      no sound
1)      water
2)      lava

  ------------------------------------------------------------------------

==========
* TRAINS *
==========

Trains are moving platforms that players can ride.  The targets origin
specifies the min point of the train at each corner.  The train spawns
at the first target it is pointing at.  If the train is the target of
a button or trigger, it will not begin moving until activated.

speed   default 100
dmg             default 2
noise   looping sound to play when the train is in motion

  ------------------------------------------------------------------------

===============
* PATH CORNER *
===============
Target: next path corner
Pathtarget: gets used when an entity that has
        this path_corner targeted touches it



  ------------------------------------------------------------------------

=========
* TIMER *
=========
"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)

"delay"                 delay before first firing when turned on, default is 0

"pausetime"             additional delay used only the very first time
                                and only if spawned with START_ON
These can used but not touched.

  ------------------------------------------------------------------------

============
* CONVEYOR *
============
Conveyors are stationary brushes that move what's on them.
The brush should be have a surface with at least one current content enabled.
speed   default 100

  ------------------------------------------------------------------------

===============
* SECRET DOOR *
===============
A secret door.  Slide back and then to the side.

open_once               doors never closes
1st_left                1st move is left of arrow
1st_down                1st move is down from arrow
always_shoot    door is shootebale even if targeted

"angle"         determines the direction
"dmg"           damage to inflic when blocked (default 2)
"wait"          how long to hold in the open position (default 5, -1 means
                hold)

  ------------------------------------------------------------------------

===========
* KILLBOX *
===========
Kills everything inside when fired, irrespective of protection.

  ------------------------------------------------------------------------

===========
* SPEAKER *
===========
"noise"         wav file to play
"attenuation"
-1 = none, send to whole level
1 = normal fighting sounds
2 = idle sound level
3 = ambient sound level
"volume"        0.0 to 1.0

Normal sounds play each time the target is used.  The reliable flag
can be set for crucial voiceovers.

Looped sounds are allways atten 3 / vol 1, and the use function
toggles it on/off.  Multiple identical looping sounds will just
increase volume without any speed cost.

  ------------------------------------------------------------------------

========
* HELP *
========
When fired, the "message" key becomes the current personal computer
string, and the message light will be set on all clients status bars.

  ------------------------------------------------------------------------

==========
* SECRET *
==========
Counts a secret found.

  ------------------------------------------------------------------------

========
* GOAL *
========
Counts a goal completed.

  ------------------------------------------------------------------------

=============
* EXPLOSION *
=============
Spawns an explosion temporary entity when used.

"delay"         wait this long before going off
"dmg"           how much radius damage should be done, defaults to 0

  ------------------------------------------------------------------------

================
* CHANGE LEVEL *
================
Changes level to "map" when fired

  ------------------------------------------------------------------------

==========
* SPLASH *
==========
Creates a particle splash effect when used.

Set "sounds" to one of the following:
  1) sparks
  2) blue water
  3) brown water
  4) slime
  5) lava
  6) blood

"count" how many pixels in the splash
"dmg"   if set, does a radius damage at this location when it splashes
                useful for lava/sparks

  ------------------------------------------------------------------------

===========
* SPAWNER *
===========
Set target to the type of entity you want spawned.
Useful for spawning monsters and gibs in the factory levels.

For monsters:
        Set direction to the facing you want it to have.

For gibs:
        Set direction if you want it moving and
        speed how fast it should be moving otherwise it
        will just be dropped

  ------------------------------------------------------------------------

===========
* BLASTER *
===========
Fires a blaster bolt in the set direction when triggered.

dmg             default is 15
speed   default is 1000

  ------------------------------------------------------------------------

=======================
* CROSS-LEVEL TRIGGER *
=======================
trigger3 trigger4 trigger5 trigger6 trigger7 trigger8
Once this trigger is touched/used, any trigger_crosslevel_target with
the same trigger number is automatically used when a level is started
within the same unit.  It is OK to check multiple triggers.  Message,
delay, target, and killtarget also work.

  ------------------------------------------------------------------------

======================
* CROSS-LEVEL TARGET *
======================
trigger3 trigger4 trigger5 trigger6 trigger7 trigger8
Triggered by a trigger_crosslevel elsewhere within a unit.  If
multiple triggers are checked, all must be true.  Delay, target and
killtarget also work.

"delay"         delay before using targets if the trigger has been
                activated (default 1)

  ------------------------------------------------------------------------

=========
* LASER *
=========
ORANGE FAT
When triggered, fires a laser.  You can either set a target
or a direction.

  ------------------------------------------------------------------------

==============
* LIGHT RAMP *
==============
speed           How many seconds the ramping will take
message         two letters; starting lightlevel and ending lightlevel

  ------------------------------------------------------------------------

==============
* EARTHQUAKE *
==============
When triggered, this initiates a level-wide earthquake.
All players and monsters are affected.
"speed"         severity of the quake (default:200)
"count"         duration of the quake (default:5)

  ------------------------------------------------------------------------

==========
* COMBAT *
==========
Makes this the target of a monster and it will head here
when first activated before going after the activator.  If
hold is selected, it will stay here.

  ------------------------------------------------------------------------

=============
* INFO NULL *
=============
Used as a positional target for spotlights, etc.

  ------------------------------------------------------------------------

=================
* INFO NOT NULL *
=================
Used as a positional target for lightning.

  ------------------------------------------------------------------------

=========
* LIGHT *
=========
Non-displayed light.
Default light value is 300.
Default style is 0.
If targeted, will toggle between on and off.
Default _cone value is 10 (used to set size of light for spotlights)

  ------------------------------------------------------------------------

==========
* OBJECT *
==========
This is solid bmodel that will fall if it's support it removed.

  ------------------------------------------------------------------------

=============
* EXPLOSIVE *
=============
Any brush that you want to explode or break apart.  If you want an
ex0plosion, set dmg and it will do a radius explosion of that amount
at the center of the bursh.

If targeted it will not be shootable.

health defaults to 100.

mass defaults to 75.  This determines how much debris is emitted when
it explodes.  You get one large chunk per 100 of mass (up to 8) and
one small chunk per 25 of mass (up to 16).  So 800 gives the most.

  ------------------------------------------------------------------------

=================
* EXPLODING BOX *
=================
Large exploding box.  You can override its mass (100),
health (80), and dmg (150).

  ------------------------------------------------------------------------

=========
* CLOCK *
=========
target a target_string with this

The default is to be a time of day clock

TIMER_UP and TIMER_DOWN run for "count" seconds and the fire "pathtarget"
If START_OFF, this entity must be used before it starts

"style"         0 "xx"
                        1 "xx:xx"
                        2 "xx:xx:xx"

  ------------------------------------------------------------------------

==============
* TELEPORTER *
==============
Stepping onto this disc will teleport players to the targeted
misc_teleporter_dest object.

  ------------------------------------------------------------------------

==========================
* TELEPORTER DESTINATION *
==========================
Point teleporters at these.

  ------------------------------------------------------------------------

====================
* TRIGGER_MULTIPLE *
====================
Variable sized repeatable trigger.  Must be targeted at one or more entities.
If "delay" is set, the trigger waits some time after activating before firing.
"wait" : Seconds between triggerings. (.2 default)
sounds
1)      secret
2)      beep beep
3)      large switch
4)
set "message" to text string

  ------------------------------------------------------------------------

================
* TRIGGER ONCE *
================
Triggers once, then removes itself.
You must set the key "target" to the name of another object in the
level that has a matching "targetname".

If TRIGGERED, this trigger must be triggered before it is live.

sounds
 1)     secret
 2)     beep beep
 3)     large switch
 4)
"message"       string to be displayed when triggered

  ------------------------------------------------------------------------

===============
* TRIGGER KEY *
===============
A relay trigger that only fires it's targets if player has the proper key.
Use "item" to specify the required key, for example "key_data_cd"

  ------------------------------------------------------------------------

===================
* TRIGGER COUNTER *
===================
Acts as an intermediary for an action that takes multiple inputs.

If nomessage is not set, t will print "1 more.. " etc when triggered
and "sequence complete" when finished.

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

  ------------------------------------------------------------------------

==================
* TRIGGER ALWAYS *
==================
This trigger will always fire.  It is activated by the world.

  ------------------------------------------------------------------------

================
* TRIGGER PUSH *
================
Pushes the player
"speed"         defaults to 1000

  ------------------------------------------------------------------------

================
* TRIGGER HURT *
================
Any entity that touches this will be hurt.

It does dmg points of damage each server frame

SILENT                  supresses playing the sound
SLOW                    changes the damage rate to once per second
NO_PROTECTION   *nothing* stops the damage

"dmg"                   default 5 (whole numbers only)

  ------------------------------------------------------------------------

===========
* GRAVITY *
===========
Changes the touching entites gravity to
the value of "gravity".  1.0 is standard
gravity for the level.

  ------------------------------------------------------------------------

================
* MONSTER JUMP *
================
Walking monsters that touch this will jump in the direction of the
trigger's angle

"speed" default to 200, the speed thrown forward
"height" default to 200, the speed thrown upwards

  ------------------------------------------------------------------------

=================
* TURRET BREACH *
=================
This portion of the turret can change both pitch and yaw.
The model  should be made with a flat pitch.
It (and the associated base) need to be oriented towards 0.
Use "angle" to set the starting angle.

"speed"         default 50
"dmg"           default 10
"angle"         point this forward
"target"        point this at an info_notnull at the muzzle tip
"minpitch"      min acceptable pitch angle : default -30
"maxpitch"      max acceptable pitch angle : default 30
"minyaw"        min acceptable yaw angle   : default 0
"maxyaw"        max acceptable yaw angle   : default 360

  ------------------------------------------------------------------------

===============
* TURRET BASE *
===============
This portion of the turret changes yaw only.
MUST be teamed with a turret_breach.

  ------------------------------------------------------------------------

=================
* TURRET DRIVER *
=================
Must NOT be on the team with the rest of the turret parts.
Instead it must target the turret_breach.


