When designing a Hud you must take into consideration several factors, including game type and physical layout. Before we can start creating the scripts we must examine these factors and see what limitations they impose on us.
Physical Layout
While at first glance we appear to be able to use any part of the screen for the Hud, that turns out to not be true. Quake 3 itself places a certain amount of information on the screen that is not part of the scripted Hud. The top left side of the screen is dedicated to the console text so you wouldn't want the Hud to cover this up. The upper right of the screen is also reserved, this time for some Hud information that is hardcoded into the program. This is where the timer, screenshot, FPS and attacker information is displayed. Again, you don't want to cover this up. The last area that Quake 3 places something in is right in the middle towards the bottom. This is where the icons for the weapons you have are shown when you pickup a new weapon. These icons are drawn after the Hud is drawn so they would appear overtop of any part of the Hud placed in that area. The area required for the weapon icons covers the following area.
The area in the horizontal ( X ) direction depends on the number of weapons you currently have and is calculated by :
X = 320 - (20*number of weapons) and the Width = 40*number of weapons
The area in the vertical ( Y ) direction is fixed at :
Y = 380 and the Height = 40
If you can, it is best to avoid using this as well. The rest of the screen is avalible for use for the Hud.
Now that you know what screen areas are usable for the Hud you can plan exactly how it should look. There are many different layouts that can be used. Here are a few screenshots from the Weapons Factory mod showing some of the Huds they support.




And these are the Quake 3 Hud for nonteam games and team games.

As you can see from these, you have a large choice of Hud layouts and are limited only by your imagination.
Game Type
The type of game that is being played also determines the type of Hud that you want displayed. A team game requires different information to be displayed than a nonteam game. And different team games require different information as well. This can be accomplished by using the ownerdrawflag commands and, to a lesser extent, the cvartest and showCvar commands to make certain items or menuDefs in the Hud visible or invisible depending on the game type. Your Hud scripts must therefore support all avalible game types and only show those parts relevant to the current game.
Hud Design Part II