These are the attributes which all entities have. This is an explanation of the type 
'edict_t'. Attributes are referenced by the format 'entity_name->attribute'  (eg self->angle)

Many of these will be familiar to QuakeC programers.

NOTE - Not all of these are relevant to all entities (infact there are no entities
for which all of these are relevant). 

name			type			notes

absmin, absmax	vec3_t		position of min and max points of entity 
						relative to the world's origin
accel			float			acceleration of platforms
activator		edict_t *		entity which activated the current entity
air_finished	float			time when air will run out (when underwater)
angle			float			entity yaw set by level editor (-1 = up; -2 = down)
area			link_t		?
areanum, areanum2	int			area where you currently are used when 
						checking if monsters can hear sounds
attenuation		float			attenuation of above sound (set at level edit)
avelocity		vec3_t		angular velocity (see note for velocity)
blocked		void			function to call when blocked? (optional)
chain			editc_t *		used when creating a list of entities
classname		char *		type of entity (eg 'player','monster_soldier')
client		struct gclient_s*	points to the player controling it, NULL
						if not player controled
clipmask		int			type of objects the entity will not pass through 
						can be any of MASK_* or CONTENTS_* listed at bottom
						of this document
clusternums[]	int			?
combattarget	char *		name of entity to attack (used once)
count			int			general purpose 'amount' variable, often set in level editor
damage_debounce_time	float		time when lava/slime can do more damage to player
deadflag		int			state of deadness :
						DEAD_NO, DEAD_DYING, DEAD_DEAD, DEAD_RESPAWNABLE
deathtarget		char *		name of entity to use when current entity dies
decel			float			deceleration of platforms
delay			float			time between triggering switch and effect activating
die			void			function to call when health <= 0 (MUST be present if the 
						entity can take damage)
dmg			int			damage done by entity
dmg_radius		float			area to do radius damage
enemy			edict_t *		entity to attack
flags			int			various attributes :
						FL_FLY		-flying
						FL_SWIM		-swimming, won't drown
						FL_IMMUNE_LASER	-not hurt by laser
						FL_INWATER		-set when entering water, cleared when
									 leaving
						FL_GODMODE		-god-mode on
						FL_NOTARGET		-will not be targeted by monsters
						FL_IMMUNE_SLIME	-not hurt by slime
						FL_IMMUNE_LAVA	-not hurt by lava
						FL_PARTIAL_GROUND	-ground pulled out from under monster
						FL_WATERJUMP	-player jumping from water
						FL_TEAMSLAVE	-not first member of a team
						FL_NO_KNOCKBACK	-entity not thrown back by damage
						FL_POWER_ARMOR	-active power armor
						FL_RESPAWN		-entity waiting before re-spawning
fly_sound_debounce_time	float		used with looping sound when pushing player (in_trigger.c)
freetime		float			time when entity was freed-up in memory
gib_health		int			health at which to gib :)
goalentity		edict_t *		entity currently moving towards
gravity		float			not used by any entites, but can be used to define reduced/
						increased gravity for individual entities (normal=1.0)
groundentity	edict_t *		what the entity is standing on 
groundentity_linkcount	int		used in conjunction with linkcount to see if the current 
						entity is still standing on the groundentity
headnode		int			?
health		int			health of entity, increased and set in many places, but 
						should only be reduced by t_damage()
ideal_yaw		float			yaw the entity wants to face
inuse			qboolean		the entity exists in the world
item			gitem_t *		info about item (see below)
killtarget		char *		name of entity to remove when current entity triggered
last_move_time	float			time to play earthquake sound again
light_level		int			player's light level, used by monsters when checking if
						player can be seen
linkcount		int			changed by the gi.linkentity function ?
map			char *		filename of the next map, part of entity target_changelevel
mass			int			used when pushing entites and calculating knock-back for 
						weapons (eg rocket hits)
max_health		int			maximum health
message		char *		message when entity activated (set by level editor)
mins, maxs		vec3_t		position of min and max points of entity 
						relative to its origin
model			char *		filename of entitie's model
monsterinfo		monsterinfo_t	info about the monster (see below)
move_angles		vec3_t		the angle that the gun turret is facing
move_origin		vec3_t		the origin of the gun turret
movedir		vec3_t		direction currently moving in
moveinfo		moveinfo_t		used by the ships flying overhead
movetarget		edict_t *		entity to wark towards when not got anything better to do
						(such as killing the player)
movetype		int			how the entity moves :
						MOVETYPE_NONE	-never moves
						MOVETYPE_NOCLIP	-ignores walls, entities, etc.
						MOVETYPE_PUSH	-ignores walls, pushes entities
						MOVETYPE_STOP	-ignores walls, stops on entities
						MOVETYPE_WALK	-affected by gravity
						MOVETYPE_STEP	-gravity, special edge handling, 
									 used by monsters
						MOVETYPE_FLY	-no gravity, used by flying monsters
						MOVETYPE_TOSS	-gravity, hits ground and stops
						MOVETYPE_FLYMISSILE	-weapons, extra clip size when 
										 hitting monsters
						MOVETYPE_BOUNCE	-bounces (eg grenade)
mynoise,mynoise2	edict_t *		spawned when player makes a noise, monsters can home in on
						them
nextthink		float			time at which entity should call function 'ent->think'
noise_index		int			index of sound to play when entity is triggered
noise_index2	int			not used anywhere
num_clusters	int			?
oldenemy		edict_t *		player they were attacking before distracted (by anither 
						monster hitting them)
pain			void			function to call when hurt (optional)
pain_debounce_time	float		prevent pain sounds/anims playing to often
pathtarget		char *		name of entity to move towards
pos1			vec3_t		top position of lift
pos2			vec3_t		bottom position of lift
powerarmor_time	float			time to stop showing translucent shield effects
prethink		void			function to call before each frame (optional)
owner			edict_t *		usually the entity that spawned this entity (eg 
						bullet is 'owned' by the monster that fired it)
radius_dmg		int			amount of radius damage done by entity
random		float			used to add a bit of time variation to func_timer
s			entity_state_t	has several subtypes (see below)
show_hostile	qboolean		any monsters seeing this one will inherit its enemy
size			vec3_t		size of entity (vector from mins to maxs)
solid			solid_t		solidity of entity : 
						SOLID_NOT   -no interaction with other objects
						SOLID_TOUCH	-touch inside after moving (used for
								 triggers)
						SOLID_BBOX	-touch on side (monsters, etc)
						SOLID_BDP	-bsp clip, touch on edge (for solid
								 walls, blocks, etc)
sounds		int			type of sounds to play - used by doors, lifts, etc
spawnflags		int			set by level editor, some values are :SPAWNFLAG_NOT_EASY, 
						SPAWNFLAG_NOT_MEDIUM, SPAWNFLAG_NOT_HARD,
						SPAWNFLAG_NOT_DEATHMATCH, SPAWNFLAG_NOT_COOP
						There are other possible settings, which I have not yet 
						looked at in detail.
speed			float			speed of misc entities, including moving buttons, the
						gun turret and the fly-by ships
style			int			type of entities (eg type of health box) also used as 
						areaportal number (something to do with separating areas)
svflags		int			either : SVF_NOCLIENT - don't send to clients
							SVF_DEADMONSTER - a dead monster
							SVF_MONSTER     - same, a bit earlier
takedamgage		int			can the entity be damaged? :
						DAMAGE_NO	-will not take damage
						DAMAGE_YES	-will take damage
						DAMAGE_AIM	-will take damage + weapons 'auto-aim' at it
target		char *		name of entity to trigger or move towards
target_ent		editc_t *		entity that platform/lift is moving towards
targetname		char *		name pointed to by target
team			char *		name of team which entity is part of
teamchain		edict_t *		the next entity in the team
teammaster		edict_t *		the master entity in the team
teleport_time	float			time when monster teleported into level
think			void			sets the function that should be called at time nextthink
timestamp		float			used by various functions to mark the spawn time of an
						entity or the start of a change (eg a light ramp)
touch			void			function to call when it touches another entity/the world
						(optional)
touch_debounce_time	float		prevent touch function from being called again too quickly
use			void			function to call when used (optional)
viewheight		int			height above origin where eyes are found
velocity		vec3_t		current velocity. I think this is used in the external
						c code to change the entity's position. Can anyone confirm
						whether this is internal or external?
volume		float			volume when playing above sound (set at level edit)
wait			float			time to wait before platform moves to the next point on its
						path
waterlevel		int			height of liquid : 
						0 - not in liquid
						1 - feet in liquid
						2 - on surface of liquid
						3 - surrounded by liquid
watertype		int			type of water the entity is in (see the CONTENTS_* list
						at bottom of document)
yaw_speed		float			speed to turn towards ideal yaw

gitem_t

referenced by 'entity_name->item.attribute'

Name			Type			Notes

ammo			char *		type of ammo to use
classname		char *		name when spawning it
count_width		int			number of digits to display by icon
drop			void			function called when entity dropped
flags			int			type of pickup :
						IT_WEAPON, IT_AMMO, IT_ARMOR
icon			char *		filename of icon
info			void *		? unused
pickup		qboolean		function called when entity picked up
pickup_name		char *		displayed onscreen when item picked up
pickup_sound	char *		filename of sound to play when picked up
precaches		char *		string containing all models, sounds etc. needed by this
						item
quantity		int			ammo gained by item/ammo used per shot by item
tag			int			? unused
use			void			function called when entity used
view_model		char *		filename of model when being held
weaponthink		void			unused function
world_model		char *		filename of model when item is sitting on level
world_model_flags	int			copied to 'ent->s.effects' (see s.effects for values)

monsterinfo_t

referenced by 'entity_name->monsterinfo.attribute'

Name			Type			Notes

aiflags		int			controls how the monster will behave :
						AI_STAND_GROUND		-don't move
						AI_TEMP_STAND_GROUND	-stand ground for a short time
										 (don't get too close to enemy?)
						AI_SOUND_TARGET		-look for source of a sound
						AI_LOST_SIGHT		-just lost sight of player						AI_PURSUIT_LAST_SEEN	-
						AI_PURSUE_NEXT		-able to get to last sighting point
										 this frame
						AI_PURSUE_TEMP		-continue to persue for a bit
						AI_HOLD_FRAME		-entity will hold the same frame
										 (eg machine gun firing)
						AI_GOOD_GUY			-don't attack you (prisoners)
						AI_BRUTAL			-keep attacking until enemy's 
										 health < -80 (usualy stop at 0)
						AI_NOSTEP			-used by exploding box
						AI_DUKED			-monster's (pathetic) attempts to 
										 evade your shots
						AI_COMBAT_POINT		-ignores everything else until it
										 reaches it's destination
						AI_MEDIC			-healing something (stop when the
										 'enemy's health > 0 )
						AI_RESURRECTING		-it's ALIVE!!! (almost) show 
										 resurection effects
attack_finished	float			time when attack will be finished (prevents further attacks
						before monster is ready)
attack_state	int			attack method the monster is using :
						AS_STRAIGHT		-moving forwards to firing position
						AS_SLIDING		-moving sideways to firing position
						AS_MELEE		-close range attack
						AS_MISSILE		-long range attack
currentmove		mmove_t *		current set of frames cycling between
idle_time		float			time until which the idle animation should be played
last_sighting	vec3_t		last point where the player was seen
lefty			int			if and attack_state is AS_SLIDING, the monster will go left
						otherwise it'll go right. this is swapped each time
linkcount		int			changed by gi.linkentity?
nextframe		int			next frame to display
pausetime		float			time to stop at a particular path_corner
power_armor_power	int			energy the armor has left
power_armor_type	int			type of power armor:
						POWER_ARMOR_NONE, POWER_ARMOR_SCREEN, POWER_ARMOR_SHIELD		2
saved_goal		vec3_t		if the monster can't get to where it wants to this frame,
						that position is saved here
scale			float			adjusts the running speed of the monster
search_time		float			time to keep looking for player
trail_time		float			timestamp of last section of player's trail found

The following functions are called when certain conditions are met:

attack		void			ranged attack (optional)
checkattack		qboolean		function called to see if the monster will attack this frame
dodge			void			!!INCOMING!! so just duck 'cos they wouldn't aim for your 
						feet, would they? (optional)
idle			void			animation to 'spice up' the standing around (optional)
melee			void			close-up attack (optional)
run			void			has an enemy, getting ready to attack
search		void			searching for player animation (optional)
sight			void			just spotted someone (optional)
stand			void			function to call when just standing around
walk			void			moving towards movetarget

entity_state_t

attributes here are referenced by 'entity_name->s.attribute'

Name			Type			Notes

angles		vec3_t		angles of the entity :
						...angles[0] = pitch
						...angles[1] = yaw
						...angles[2] = roll (not really used)
frame			int			current frame
effects		int			special effects to apply to entity can be one or more of:
						EF_ROTATE		-rotates (bonus items)
						EF_GIB		-leave a blood trail
						EF_BLASTER		-coloured light + trail
						EF_ROCKET		-coloured light + trail
						EF_GRENADE		-smoke trail?
						EF_HYPERBLASTER	-light + trail
						EF_BFG		-light + particles?
						EF_COLOR_SHELL	-coloured glow around the entity
						EF_POWERSCREEN	-green screen
						EF_ANIM01		-automatically cycle between frames 0 and 1 at 2 hz
						EF_ANIM23		-automatically cycle between frames 2 and 3 at 2 hz
						EF_ANIM_ALL		-automatically cycle through all frames at 2hz
						EF_ANIM_ALLFAST	-automatically cycle through all frames at 10hz
						EF_FLIES		-flies effect
						EF_QUAD		-quad damage 'glow'
						EF_PENT		-invincibility 'glow'
event			int			effects that last one frame :
						EV_NONE		-no effect
						EV_ITEM_RESPAWN	-item respawning
						EV_FOOTSTEP		-footstep noise
						EV_FALLSHORT	-noise from small fall
						EV_MALE_FALL	-noise from male falling
						EV_MALE_FALLFAR	-noise from male falling a long way
						EV_FEMALE_FALL	-noise from female falling 
						EV_FEMALE_FALLFAR	-noise from female falling a long way
						EV_PLAYER_TELEPORT-teleportation effects
modelindex		int			index of precached model
modelindex2		int			for when one modelindex just isn't enough ;). Used with
						the final 2-stage boss (oops, sorry if that's a spolier)
						and to show separate player weapons
modelindex3,4	int			not used 
number		int			entity index number
old_origin		vec3_t		last position of entity (used in a few odd places)
origin		vec3_t		origin of the entity
renderfx		int			various drawing effects :
						RF_MINLIGHT		-can always see the entity
						RF_VIEWERMODEL	-don't let the player see this (himself)
						RF_WEAPONMODEL	-only let the current player see this
						RF_FULLBRIGHT	-entity always fully lit
						RF_DEPTHHACK	-for view weapon Z crunching	(?!)
						RF_TRANSLUCENT	-entity is see through
						RF_FRAMELERP	-? used by monsters and bodies
						RF_BEAM		-laser beam
						RF_CUSTOMSKIN	-skin is an index in image_precache
						RF_GLOW		-pulse lighting for bonus items
						RF_SHELL_RED	-red glow, when monsters are resurrecting
						RF_SHELL_GREEN	-green glow, from power shield
						RF_SHELL_BLUE	-blue glow, not currently used
skinnum		int			current skin number
solid			int			set by gi.linkentity, for client-side prediction
sound			int			to gaurentee shut-off of looping sounds

CONTENTS_SOLID		solid wall (not windows)
CONTENTS_WINDOW		windows
CONTENTS_AUX		?
CONTENTS_LAVA		err.. lava
CONTENTS_SLIME		slime
CONTENTS_WATER		water
CONTENTS_MIST		!!Unused!! 
LAST_VISIBLE_CONTENTS	?
CONTENTS_AREAPORTAL	portals to conserve memory used in map designing, also dont allow sounds to pass //kami0
CONTENTS_PLAYERCLIP	brush which player may not pass through //kami0
CONTENTS_MONSTERCLIP	brush where monsters may not pass through //kami0
CONTENTS_CURRENT_0	flowing current moving at angle 0 //kami0
CONTENTS_CURRENT_90	flowing current moving at angle 90 //kami0
CONTENTS_CURRENT_180	flowing current moving at angle 180 //kami0
CONTENTS_CURRENT_270	flowing current moving at angle 270 //kami0
CONTENTS_CURRENT_UP	flowing current moving up //kami0
CONTENTS_CURRENT_DOWN	flowing current moving down //kami0
CONTENTS_ORIGIN		used for rotation, invisible //kami0
CONTENTS_MONSTER		non-solid monster?
CONTENTS_DEADMONSTER	dead monster
CONTENTS_DETAIL		brush that is not passed to vis - not in final BSP ?
CONTENTS_TRANSLUCENT	see through
CONTENTS_LADDER		ladder

MASK_ALL		-stop on anything
MASK_SOLID		-walls/windows
MASK_PLAYERSOLID	-anything you'd expect a player to stop on
MASK_DEADSOLID	-same as above, can go through monsters
MASK_MONSTERSOLID	-anything you'd expect a monster to stop on
MASK_WATER		-any liquid
MASK_OPAQUE		-walls and liquid except water (which is see-through)
MASK_SHOT		-walls, monsters and dead monsters
MASK_CURRENT	-flowing brush

Written by Davo (smithd6@cs.man.ac.uk)
(parts marked //kami0 supplied by Michael 'kami0' DiGiovanni (kaze@concentric.net))

If there are any corrections, bugs etc, please e-mail me.

Please also note that this has been the result of searching through the c files supplied by
iD, and I don't have reference to any official documents or anything, so don't assume I know 
what I'm talking about ;).