 Quake3 Arena entity definition file for Q3Radiant
 Based on draft by Suicide 20 7.30.99 and inolen 9-3-99
 Upgraded by Eutectic: eutectic@ritualistic.com
 Version: 1.3
 Last updated: 01/31/2000

 Introduction:

 This is my attempt to make an entity definition file for Q3Arena as complete and accurate as
 possible for people like me who just can't wait for Q3Radiant to come out to start learning
 about how the Q3A entities. I have tried to be as thorough as possible in the making of this
 file which took many days of testing. All the entities and their keys, spawnflags and descriptions
 here are not just a copy & paste from some Quake 2 entity definition file. Everything I added or
 removed was done as a result of the tests I made and if it's in here, that's because it works.
 This is the first version of the EDF I consider really complete. Hope you find it useful.


 What to do with this file:

 If you don't know how to set Q3Radiant's project settings or don't want to change them, just
 extract this file to your Quake III Arena\Tools folder and delete the original entities.def. Don't
 worry about losing the original file. There is already a copy of it in the Tools\defaults folder.
 
 This new .def file will not only populate your Q3Radiant entity menu and dialog with the latest
 and most accurate list of the Q3A entities. It will also populate the grey comment window of your
 entity dialog with a complete list of keys and spawnflags descriptions and useful notes on what
 the entity does and how to use it. Plus, if you're like me and don't like typing key names over
 and over, you can select the key name in the gray comment window, do a CTRL-C to copy the text
 and paste it in the dialog's "key" field.


 Credits:

 Id Software: for the obvious reason :)
 Robert Duffy : for the best map editor in the damm universe.
 Suicide 20 & inolen : for providing the working base for this new and improved EDF.
 Blader Raze : for the extra bits of info I was able to get from his EDF and his knowledge of CTF.
 Mastaba : for his Q2toQ3t and Q3Wumpass utilities. Couldn't have done it without those. Thanks dude!
 Maj : for his shader docs. Those have answered many of my questions.
 Fragzilla : for his cool tip on how to fix the func_plat sounds. Thanks man!
 Blader Raze & rayGunn : for pointing out the "model=" thing to display items in Radiant. Cool stuff!


 Disclaimer:

 As always, I work for the community and everything I do, I do for free. My only goal is to
 provide the best and most accurate tools I can whithin my limited scope of abillity. I am
 motivated purely by a never-ending interest in 3D games technology. You are allowed to
 distribute this file as much as you want to anyone who wants it as long as you do it for free
 and that you leave it unmodified. If you want to change something or spot any errors or omissions,
 by all means, email me.


 Change history:

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

 V1.3 (Q3 Arena 1.15beta Point Release)

 - Uncommented func_static since it's a valid entity after all. Thanks for straightening
   me out on that one Paul. Added relevant keys and updated description and Notes.
   
 - Changed the Notes of func_door about the wait= -1 thing. Even targeted or damage-only
   doors don't stay open, they will close immediately just the same as "touchdoors".
 
 - Corrected a typo in the Notes of func_plat: pt1_strt.wav instead of pt1_start.wav. Thanks
   to "Ghost In The Machine" for pointing this out.
 
 - Corrected a few typos, descriptions and misc. stuff.
 
-----------------------------------

 V1.2 (Q3 Arena 1.14beta Point Release)

 - Added the "model="path/name.md3" statement to model based entities (pickup-able items).
 
 - Adjusted the bounding box size of all model based entities (pickup-able items) to their
   exact dimensions taking into account item rotation & bobbing, floor clearance and the
   "falling out of level" factor. Fully tested.
 
 - Created an "item skin" pack to enable Q3Radiant to display the skins of all pickup-able items.
 
 - Added the new item_botroam entity.

 - Added the "notbot" key to all pickup-able items.
 
 - Corrected a few typos, descriptions and misc. stuff.
 
-----------------------------------

 V1.1 (Q3 Arena 1.11)

 - Installation note added.
 
 - A bizarre workaround for the fullbright bug now enables me to test the light related stuff.

 - Removed "_minlight" key from all func_* type entities. The occurence of this key was simply
   a leftover from the Q2 key of the same name used in maps made during the game's early stages
   of development and never removed afterwards. It is obsolete and was replaced by the "light"
   and "color" keys which do work.
 
 - Updated description of the "light" and "color" keys for all the func_* entities. Note that
   when one or both of those keys are set on a func_* type entity, all the other entities with an
   included .md3 model in the same VIS area will be affected. Stand-alone misc_model's cannot be
   lighted with the "light" and "color" keys.
 
 - Updated notes of func_plat with the sound thing (pt1_strt.wav and pt1_end.wav).
 
 - The info_camp entity finally has a real and complete description.
 
 - Updated description and notes of info_player_intermission with podium generation info. Also
   corrected the bounding box size.
 
 - Commented out info_spectator_start since it doesn't appear to work in game. Players that switch
   spectator mode will spawn at the info_player_intermission location by default. If none is present
   in the map, they will spawn at the location of an info_player_deathmatch.
 
 - Since I finally figured out how to set up a custom arena, I was able to confirm that the 3
   entities: info_firstplace, info_secondplace and info_thirdplace don't do anything. The podium
   is generated automatically by the game at the location of the info_player_intermission. Also,
   the entities do not have a spawn function in the game : removed.
 
 - Corrected description of target_give. It can be activated by a trigger too and not just player
   spawn entities like in 1.08test.
 
 - The target_laser entity is now completely invisible now that I can make my test map light
   properly. I've had it with this elusive sucker. There are no instances of this entity in any
   of Id's maps anyway so I consider it obsolete until somedody proves me wrong. Commented out.
 
 - The function of target_location is confirmed. Just as I suspected, it's used as a location
   reference by players and bots in team chat/order messages during teamplay games.
 
-----------------------------------

 V1.0 (Q3 Arena 1.11)

 - Q3Tools released. First non-beta version. Now, I can make real tests. The .def file format
   is unchanged from QeRadiant to Q3Radiant.

 - Change history move to a separate readme file to make my .def file neater. Also re-ordered
   the history versions like they should be: the latest at the top :)
 
 - The "official" .def file that comes with Q3Radadiant sucks (just as I expected it would).
   Nobody's putting this mofo "out of business" yet :)
 
 - Changed name of spawnflag 1 for all pickup-able items from NO_DROP to SUSPENDED.
 
 - Added "color" and "light" keys to all func_* mover type entities. I have seen no occurence
   of those keys in any of the original .bsp files so they need to be tested to confirm validity.
 
 - The "dmg" key doesn't work for func_bobbing: behaves the same as for func_pendulum. The "origin"
   and "noise" keys were added.
 
 - Added "model2" and "origin" keys to func_button.
 
 - Added "model2" and "origin" keys to func_door.
 
 - Apparently, func_group is not obsolete in Q3Radiant like I thought it would. So it looks
   like we're still stuck with this lame grouping tool for a while still.
 
 - Added "model2" and "noise" keys to func_pendulum. Also, spawnflag SF1 was removed (it's occurence was
   probably due to a map designer error after all).The "dmg" key does NOT work and was removed.
 
 - Added "model2" and "origin" key to func_plat. Targeting by trigger also works but it does not have
   proper start and stop sounds. I still think this should not be used in Q3A maps.
 
 - Removed "dmg" keys and START_ON spawnflag from func_rotating. The entity just stops when blocked by
   the player and inflicts NO damage to him regardless of the value of "dmg". Also, the entity ALWAYS
   starts on regardless of the START_ON spawnflag so it's also a bogus. Added "origin" and "noise" keys.
   This entity is NOT targetable.
 
 - Commented out func_static from entity menu. This does not spawn in the game so I consider it a
   non-existing entity until somebody can prove me wrong.
 
 - Description and comments of func_timer improved.
 
 - Removed "dmg", "noise" and "targetname" keys plus START_ON, TOGGLE and BLOCK_STOP spawnflags from
   func_train since none of those keys or spawnflags work. Trains do not damage the player regardless
   of "dmg" settings, do not emit sound and behave erratically when triggered. They also always start
   on in the game regardless of the START_ON spawnflag, do not toggle on and off when targeted and do
   not block stop either regardless of the spawnflag settings. Added "model2" and "origin" keys. The
   func_train's in Q3A while very basic work sufficiently well in principle to be used in SOME maps.
 
 - The description of info_camp in the "official" .def file is fuXored (obviously a copy-paste
   of info_null). Worse still, can't eficiently test this unless I get a REAL description.
 
 - Did not find the info_firstplace, info_secondplace and info_thirdplace entities in the
   "official" .def file. Is this an omission or are the entities really obsolete?
 
 - Did not find info_spectator_start in the "official" .def file. Is this an omission or is the entity
   really obsolete?
 
 - Added "nohumans" and "angle" keys + updated spawnflag 1's name from the generic SF1 to INITIAL for
   info_player_deathmatch + description for that spawnflag. Also, spawnflag SF4 was removed
   (it's occurence was probably due to a map designer error after all).
 
 - Added "angles" key to info_player_intermission.
 
 - Updated spawnflag 1's name from the generic SF1 to LINEAR for light + description for that
   spawnflag.
 
 - Added "angles" key and SLOWROTATE and FASTROTATE spawnflags for misc_portal_camera. Added Notes
   and improved the description and comments.
 
 - Updated description of misc_portal_surface and added Notes.
 
 - Removed SF4 spawnflag for misc_teleporter_dest (it's occurence was probably due to a map
   designer error after all). Added "angle" key.
 
 - Added "speed" and "wait" keys to path_corner. Those work fine except wait=-1 doesn't make the
   train stop: when that value is set, wait automatically defaults to 0.
 
 - Removed "wait" key from shooter_grenade, shooter_plasma and shooter_rocket since it does nothing
   (it's occurence was probably due to a map designer error after all). Added "angles" key.
 
 - Added target_kill entity.
 
 - Added target_laser entity. The "angles" key doesn't work. Hard to see in fullbright maps.
 
 - And of course, no description for target_location (one of which I most need info on. Arrgh..).
   Added "count" key anyway (but count of what, colors??).
 
 - Added REDTEAM, BLUETEAM and PRIVATE spawnflags to target_print.
 
 - Added target_push entity. Added "angles" key (the regular "angle" key also works).
 
 - Added REDTEAM, BLUE_ONLY and RANDOM spawnflags to target_relay.
 
 - Added target_score entity.
 
 - Added target_teleporter entity. Added "target" key.
 
 - Changed RELIABLE and LEVEL_WIDE spawnflags of target_speaker to GLOBAL and ACTIVATOR respectively.
   Also updated their descriptions and the Notes.
 
 - Removed SF4 spawnflag for team_CTF_bluespawn and team_CTF_redspawn (it's occurence was probably
   due to a map designer error after all).
 
 - Removed START_OFF spawnflag from trigger_hurt since it doesn't work: entity is not toggle-able.
 
 - Added "random" key to trigger_multiple.
 
 - Updated description of trigger_push.
 
 - Updated description of trigger_teleporter.
 
 - The "_ambient" and "color" keys of worldspawn need to be tested.

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

 V0.95beta (Q3 Arena 1.11)

 - Added "count" key for ammo_*, item_health_* and weapon_* entities. This key doesn't apply
   to weapon_gauntlet and weapon_grapplinghook of course.

 - Updated descriptions of team_CTF_blueplayer, team_CTF_bluespawn, team_CTF_redplayer and
   team_CTF_redspawn. Thanks to Blader Raze for pointing out the difference to me :)

 - Added "nobots" key to info_player_deathmatch.


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

 V0.94beta (Q3 Arena 1.11)

 - Added "notsingle" key after testing in 1.11. There is no "notmulti" key after all.

 - Added "_minlight" key to all visible solid entities like buttons, doors, etc.
 
 - Updated description of "phase" key for func_bobbing and func_pendulum.

 - Updated notes for func_door.

 - Removed func_door_rotating since it doesn't exist in Q3A (confirmation at last!).

 - Updated description of func_pendulum. This entity is grossly underdevelopped IMO.
   The collision code is nothing short of weird. Only good for gibbing players.

 - Updated description of func_plat. Entity works but incomplete. Better not to use it.
   Useful only for mod coders IMO. Kept commented out of the entity menu for these reasons.

 - Updated func_train description, keys and spawnflags but kept it commented out of entity menu
   in the editor. Entity works but is very basic: does not support sound or damage, automatically
   block stops no matter what, starts on even when targeted, no working spawnflags and next
   to impossible to locate properly in map. Better not to use it. Useful only for mod coders IMO.
  
 - Removed func_wall since it doesn't exist in Q3A (confirmation at last!).

 - Added "target" and "targetname" keys for all pick-up-able items. Exceptions are item_health
   and item_health_large for which "targetname" doesn't apply since they can't be given by a
   target_give at respawn time (health is already 100 at that moment).

 - Updated path_corner description, keys and spawnflags but kept it commented out of entity menu
   in the editor. Entity works but is very basic: does not support pathtarget key or TELEPORT
   spawnflag. This is useful only for func_train's which are themselves not very useful.
   Better not to use it. Useful only for mod coders IMO.

 - Updated description of "wait" and "random" keys and the notes for the shooter_* entities.

 - Updated description of weapon_grapplinghook.

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

 V0.93beta (Q3 Arena 1.11)

   This is still a preliminary release because the Q3 SDK is not released yet and thus,
   I cannot make some essential tests to complete or verify the key/spawnflag info.

 - Removed func_areaportal. Those are handled by shaders is Arena.

 - Added "_minlight" key to func_door. Doesn't work in 1.08 and can't be tested yet.
   If this key works, it should logically be applicable to all visible solid entities.

 - Added "phase" key to func_bobbing. Can't figure out what it does tho. Also added
   "model2", "noise" and "origin" keys. All those don't work in 1.08 can't be tested.

 - Added "model2" and "origin" keys to func_door.

 - Added "origin" key to func_pendulum and func_rotating.

 - Added "phase" and "dmg" keys and spawnflag 1 (SF1) to func_pendulum. Can't figure out
   what "phase" and SF1 do since they don't work in 1.08. Also added "model2" key.

 - Added spawnflag 1 (SF1) to func_rotating. Does nothing in 1.08 and can't be tested yet.
   Also added "model2" key. This can't be tested either.

 - Added func_static entity. I have no idea what it does yet.

 - Descriptions for info_firstplace, info_secondplace and info_thirdplace added.

 - Descriptions for info_null and info_notnull updated.

 - Added info_spectator_start.

 - Removed "_cone" key from light entity (replaced by "radius").

 - Added "target" key for info_player_*, team_CTF_*spawn and team_CTF_*player entities.

 - Added spawnflag 4 (SF4) to misc_teleporter_dest. Can't figure out what it does tho.

 - Added shooter_grenade, shooter_plasma and shooter_rocket entities.

 - Added target_give entity. Nice once :)

 - Added target_print entity.

 - Description and "delay" key (WTF? I thought it was "wait") for target_delay added.

 - Added team_CTF_bluespawn and team_CTF_redspawn. Descriptions need clarification.

 - Added "team" key for all pick-up-able items. Does the same thing as in Quake 2.

 - Added "random" key for all pick-up-able items.

 - Added "count" key for all time duration based power-up's (Quad, Flight, Regen, etc.).

 - Important update to "wait" key for trigger_multiple: explains why the trigger_once entity
   is no longer needed in the game. Nice move Id :) Also added "targetname" key.

 - Found out that the models/mapobjects .md3 files used for misc_model entities are NOT
   included in pak0.pk3, only the skins are. Since the polygons of those models are turned
   into world brushes during compilation, they were not strictly required. One can only hope
   they will be included in the SDK, otherwise that means no cool statues, skulls and wall
   torches for us mappers. Hmmm :(

 - Not sure about "notsingle" key? Seems to work in game. Is there a "notmulti" as well?

 - Almost sure at this point that func_door_rotating, func_train, func_wall and path_corner
   are not part of the Q3A entity set but I won't remove them until I'm 100% sure. I'm still
   unsure about func_plat. Still unsure about "gravity" key in worldspawn.

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

 V0.92beta (Q3demotest 1.09)

 - Added weapon_gauntlet, weapon_grapplinghook and weapon_lightning.

 - Adjusted the various item, health, armor and ammo default respawn times.

 - Many entity descriptions and notes updated to reflect new findings in 1.09.

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

 V0.91beta (Q3demotest 1.09)
 
 - The entity func_timer was added. Here, I'm assuming it does the same thing as Quake 2's func_timer.

 - The entity info_camp added. Purpose unknown yet.

 - The entities info_player_firstplace, info_player_secondplace and info_player_thirdplace were
   replaced by info_firstplace, info_secondplace and info_thirdplace. Purpose unknown yet.

 - The key "radius" was added to light entity. Probably replaces "_cone" but can't be tested yet.

 - The entity target_location's description was changed since I am not sure anymore what it does.
   Pure speculation: maybe a Q3Radiant specific design aid of some sort? Added "message" key and
   removed "targetname" key.

 - The keys "notfree" and "notteam" was added to almost all entities. Those could be well be replaced by
   spawnflags in final Q3A (at least I hope so). No way of testing those in 1.09 yet.

 - After much thought, I decided to remove the arghrad specific keys from worldspawn since this is
   supposed to be a Q3 definition file. I also removed the "sky" related keys because skies are handled
   by shaders in Q3. The "sound" and "light" keys were also removed. The keys "music", "ambient" and
   "_color" + descriptions were added.

 - Since there was only one additional map in Q3demotest from 1.08, I haven't found much new stuff to
   include in here and I can't really test it until someone finds a hack for the new demo :(

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

 V0.9beta (Q3test 1.08)
 
 - General clean-up of the individual definitions text format: key and spawnflag info placement was
   optimized to ease reading + copying the key names for pasting in the dialog's key field.

 - Sorting of entity families and individual entities in alphabetical order.

 - Extensive testing of the entities in order to ensure that info is as complete and accurate as possible.

 - Removal of information carried over from Quake2 entities which is not confirmed or less than certain.

 - ammo_bfg & ammo_grenades do spawn in the game but have no model assigned to them yet. Comment added.

 - The entity func_areaportal was added. Tested and works properly.

 - Updates done to func_bobbing: accurate description of entity, defined working keys and spawnflags.

 - Updates done to func_button: "sounds" key removed since it doesn't work. The descriptions were a
   carry-over from Quake 2 func_button source code comments which themselves were carried over from the
   Quake 1 source code comments. Those guys don't update the source code comments too often. I sure hope
   Id's "modus operandi" will change with the final Q3A source code.

 - Updates done to func_door: "sounds" and "message" keys removed since they don't work. The "sounds"
   key info was also a carry-over from Quake 1 source code comments. CRUSHER spawnflag description added.
   TOGGLE spawnflag removed since it doesn't work. ANIMATED and ANIMATED_FAST spawnflags removed. Those
   applied to the animation of the door texture in Quake 2. This kind of stuff is now handled by shaders.
   The NOMONSTER spawnflag was removed. It could eventually apply to bots but can't be tested at this point.

 - Updates done to func_door_rotating: entity doesn't spawn in game and can't be tested. Comments added
   for possible future implementation but commented out so it won't show up in editor's entity list.

 - Updates done to func_pendulum: the description, keys and spawnflags were a quick "copy + paste" of the
   Quake 2 func_water entity which has nothing to do with func_pendulum. Wrote an accurate description of
   the entity and defined working keys and spawnflags.

 - Updates done to func_plat: "sounds" key removed since it doesn't work. Descriptions clarified.
   PLAT_LOW_TRIGGER spawnflag removed since it does exactly nothing. The "dmg" and "targetname" keys were
   added. I sure hope Id comes up with a better func_plat than in Quake 2.

 - Updates done to func_rotating: ANIMATED and ANIMATED_FAST spawnflags removed (same reason as func_door).
   START_ON, REVERSE, TOUCH_PAIN and STOP spawnflags removed since they don't work. The "dmg" key was
   removed since it doesn't work.

 - Updates done to func_train: entity doesn't spawn in game and can't be tested. Comments added
   for possible future implementation but commented out so it won't show up in editor's entity list.

 - Updates done to func_wall: entity doesn't spawn in the game and can't be tested. Comments added
   for possible future implementation but commented out so it won't show up in editor's entity list.

 - Comments added to all power-up item_* entities.

 - NO_DROP spawnflag and "wait" key added to all entities that can be picked up by player: ammo_*,
   holdable_*, item_* and weapon_* families. Comments added to weapon_grappling for possible future
   implementation but commented out so it won't show up in editor's entity list.

 - I can't get the misc_model entity to spawn a model in the game and I can't figure out why. And
   yes, it does exist in the Q3A entity set, I just don't know enough about it to make it work yet.

 - Keys and notes added to misc_portal_surface and misc_portal_camera.

 - The entity misc_teleporter was removed since it was replaced by trigger_teleport in Q3A.

 - The entity path_corner was commented out so it won't show up in the editor's entity list since
   there's no way it can be tested. This even makes it impossible just to determine whether it's part
   of the actual Q3A entity set or not.

 - Removed target_character entity. Because of shaders, I don't see the need to have a Q3A version of
   this Quake 2 entity.

 - The entities target_delay and target_relay were added (target_relay replaces trigger_relay in Q3A).

 - The entities target_give and target_kill were removed since there is absolutely no evidence of their
   existence in the Q3A entity set and target_kill causes a server shutdown when triggered. If anybody
   out there can prove me wrong, then speak up or forever hold your peace :P

 - Updates done to target_speaker: LEVEL_WIDE spawnflag and "wait" and "random" keys added. The
   "volume" and "attenuation" key were removed since they don't work. Comments and Notes beefed up.

 - The entity trigger_always was added.

 - Updates done to trigger_hurt: START_OFF spawnflag removed since it doesn't work.

 - Updates done to trigger_multiple: "sounds", "message" and "delay" keys removed since they don't work.
   The "sounds" key info was also a carry-over from Quake 1 source code comments. The MONSTER spawnflag
   was removed. It could eventually apply to bots but can't be tested at this point. The NOT_PLAYER and
   TRIGGERED spawnflags were removed since they don't work.

 - Updates done to trigger_push: PUSH_ONCE spawnflag and "speed" key removed. These are parameters from
   the Quake 2 trigger_push's which Q3A trigger_push's have nothing in common with.

 - The entity trigger_relay was removed since it was replaced by target_relay in Q3A.

 - The entity trigger_teleport was added (trigger_teleport replaces misc_teleporter in Q3A).

 - Color scheme for the entity bounding boxes optimized for visibility and easier identification.