Challenge ProMode Arena: Client HUD Settings -------------------------------------------- Date: 22-Apr-2009 This is a snapshot of http://www.promode.org/wiki/index.php/Custom_HUDs The wiki will almost certainly be more up to date than this document. Since the release of CPMA 1.34 we have had extremely configurable HUDs. This document explains some of the Client HUD settings for CPMA. It will never be as current as the changelog, so you should always check that with each new release. Note: cvars such as cg_drawfps, cg_drawtimer plus many others have been removed and their functions moved to the custom hud. Creating a HUD .cfg ------------------- * ALL hud configs go in Quake3/cpma/hud. CPMA's sample HUDs 1-7 are also in that directory. * You can select a config using \ch_file hud where 'hud' is the file you would like to use (without .cfg). You do NOT \exec hud. * Use \reloadHUD to reload your HUD if you have changed it. Must also be used after \ch_file change. * The default HUD is in the PK3: if you want to customise it, pull it out of there with the unzip utility of your choice, RENAME it, and put the copy in cpma/hud/. Remember to point ch_file at the new version. * The default HUD references (nearly) everything that can be drawn. Hud7 has nice examples of decoration use. Syntax ------ The syntax for CPMA's SuperHud is fairly easy to comprehend, and supports both multi-line and single-line arguments. ELEMENT { ELEMENT_COMMAND VALUE ELEMENT_COMMAND VALUE } ELEMENT { ELEMENT_COMMAND VALUE; ELEMENT_COMMAND VALUE; } You can comment using #. // cannot be used. Some Element Commands have optional "," separators. Elements -------- Each piece of the HUD is called an ELEMENT. Elements are sorted z-layer-wise alphabetically. !DEFAULT The first element in the hudfile MUST be "!DEFAULT", and every other element inherits from that default: this gives you an easy way to change fonts/colors/etc for a whole bunch of elements at once. !DEFAULT can be reused later in the document affecting every following element but it will not overwrite the parameters set by previous !DEFAULT(s). It is advisable to place Team1-8 and Chat1-8 at the bottom of your hud config so that !DEFAULTs can be used without interfering with other elements. PreDecorate and PostDecorate Empty elements that can be used to draw separator bars etc. Limit 64 total. AmmoMessage Low ammo/Out of ammo. The audio feedback "click" can be toggled using cg_ammoWarning. AttackerIcon Who attacked you last AttackerName Who attacked you last Chat1-8 Chat area - if you want the order of the messages reversed then reverse the Y coordinates. Console Replacement for ID's console. Use with con_notifyTime -1. FlagStatus_NME Status of enemy flag. To get old RED/BLUE use color T and color E, plus bgcolor. Check hud/old.cfg. FlagStatus_OWN Status of your flag. To get old RED/BLUE use color T and color E, plus bgcolor. Check hud/old.cfg. FollowMessage Following FPS Frames Per Second FragMessage You fragged GameTime Game Clock GameType Game Type - warmup only. Cannot be omitted. To hide place at off-screen x,y coordinates or set alpha 0. ItemPickup Text string of whatever item you pick up ItemPickupIcon Icon of whatever item you pick up NetGraph Lagometer NetGraphPing Ping PlayerSpeed Units Per Second PowerUp1_Icon to PowerUp4_Icon Powerup Icons. PowerUp1_Icon is also used for the O/D indicator in CTFS - and also for FLAG PowerUp1_Time to PowerUp4_Time Powerup Time remaining RankMessage Placed 1st with 30 frags Score_Limit Frag/Cap/Round limit - if set. Cannot be omitted. To hide place at off-screen x,y coordinates or set alpha 0. Score_NME Enemy score. Cannot be omitted. To hide place at off-screen x,y coordinates or set alpha 0. To get old RED/BLUE use color T and color E, plus bgcolor. Check hud/old.cfg. Score_OWN Your score. Cannot be omitted. To hide place at off-screen x,y coordinates or set alpha 0. To get old RED/BLUE use color T and color E, plus bgcolor. Check hud/old.cfg. SpecMessage SPECTATOR, FRAGGED (in CA/CTFS/FT) StatusBar_ArmorBar Armor level in bar form StatusBar_ArmorCount Armor level in number form StatusBar_ArmorIcon Type of armor - essential in CPM but irrelevant in VQ3 StatusBar_AmmoBar Ammo level in bar form StatusBar_AmmoCount Ammo level in number form StatusBar_AmmoIcon Current weapon ammo icon StatusBar_HealthBar Health level in bar form StatusBar_HealthCount Health level in number form StatusBar_HealthIcon Defaults to Mynx icon but can be any model, image or shader found in pk3s (provided that the pk3 is on the pure server you join) TargetName Current target's playername - requires cg_drawCrosshairNames above 0 TargetStatus Current friendly target's health/armor level - requires cg_drawCrosshairNames above 0 TeamCount_NME Players alive on enemy team (CA/CTFS/FT) TeamCount_OWN Players alive on your team (CA/CTFS/FT) TeamIcon_NME Defaults to Sarge icon but can be any model, image or shader found in pk3s (provided that the pk3 is on the pure server you join) TeamIcon_OWN Defaults to Mynx icon but can be any model, image or shader found in pk3s (provided that the pk3 is on the pure server you join) Team1-8 Teamoverlay VoteMessageArena Multiarena, ra3maps VoteMessageWorld Normal votes WarmupInfo 10sec countdown, Waiting for players, etc. Cannot be omitted. To hide place at off-screen x,y coordinates or set alpha 0. WeaponList The WeaponList has to get a little funky to be able to handle all the legacyhud tricks: W and H are the size of EACH weapon, not the total. For the horizontal weaponlist (textalign C) X is the point to center around. Use FILL to show ammo for weapons you do not have, useful for TDM. Weaponlist wraps at the bottom of the screen so you can sneak a multi-column one in. Colors ------ CPMA HUD uses r g b a, which is red green blue alpha. Each channel can have values from 0-1. Color 1 1 1 1 is white, full alpha Color 0 0 0 0.5 is black, half transparent Color 0.25 0.25 1 0.75 is blue, somewhat transparent Note that colors set in SuperHud do not override colors set elsewhere. For example if your \nick or \name is ^3hello it will be yellow regardless. Special Colors -------------- Color T and color E for elements to use red/blue according to your current team. Useful for flag modes, but not necessesary for tdm/1v1. Set bgcolor for these, even for images - see hud/old.cfg Element Commands ---------------- The commands you can use within an element are: ANGLES [+pan | -rotate] Alters the display of MODEL. Note that most Q3 models do not work properly if r_vertexlight is on. BGCOLOR r g b a Sets the background color for the element The element must have a width and height COLOR r g b a Sets the foreground color for the element DOUBLEBAR Makes bars two lines. Obviously only works on BAR elements (StatusBar_ArmorBar etc). Check out hud7 for examples. Note: Gets a little funky if RECT Height is set below 6 as the space between the two bars is 4 pixels and each bar requires 1 pixel (4+1+1=6) FADE r g b a If the element has a TIME, its text will fade from COLOR to this linearly over TIME millisecons. FILL If the element has a background color, this fills the area it occupies with that color. The element must have a width and height FONT name Selects one of three standard fonts: CPMA - Bitstream Vera Bold, which is a high-resolution font best suited to 1024x768 and up - or large font-size on low-resolution ID - which is the standard Q3 font - good for small font-size and/or low-resolution IDBLOCK - only supports numbers, NOT letters THREEWAVE - which is an outlined copy of the id font SANSMAN - Digital Graphics Labs "Enter Sansman" FONTSIZE pointsize | xsize ysize The CPMA font is correctly aspect-adjusted already, and generally looks best if you just specify a pointsize. The other two fonts are square, and generally look much better if you specify distinct x and y sizes, with y being 25-50% larger than x. Element texts can be mirrored using negative x y. Note this is an unintended and unsupported "hack", so might be a bit buggy. IMAGE pathname Display the image specified. You can use ANY image or shader found in pk3s. Mostly useful for displaying team/enemy model icons in CA/CTFS/FT. MODEL Can be any model in the game. Note that most Q3 models do not work properly if r_vertexlight is on. MONOSPACE By default, all HUD fonts are proportionally spaced, meaning that an "i" takes up less room than an "m". Monospacing forces every character to take up the same amount of space. It's very useful for the team overlay, as it keeps everyone's health and armor in the same columns, but generally looks worse than proportional spacing on everything else, especially chat. It also takes up more room overall. OFFSET x y z Offset MODEL along x y z axis. RECT x y w h Sets the position and size of the element. Note that text is NOT "clipped" to this rectangle. Elements can be mirrored using negative w h. Note this is an unintended and unsupported "hack", so might be a bit buggy. TEXT string Mostly useful for decorations. Requires RECT. TEXTALIGN l | c | r Justify the text either Left, Centered, or Right within RECT TEXTSTYLE flags Currently, only one flag is supported: "1", for dropshadowed text TIME How long the element will be displayed for if it doesn't update again. Generally used for item pickups, frag messages, chat, etc. HUD Related Cvars ----------------- These cvars do not directly influence the SuperHud but are still related to the HUD in some way. cg_customLoc <0|1> (default = 1) Use custom locations for a map if possible. Loc files are locs/map.cfg, and must have a "v2" header Can only replace existing locations cg_drawRewards <0|1> (default = 1) Toggle display of reward icons and the accompanying sounds cg_teamChatsOnly <0|1> (default = 0) controls what text reaches the HUD Chat elements if set, non-team text still shows up in the console area ch_3waveFont <0|1> (default = 1) Toggle use of the Threewave font (does not affect SuperHud settings) ch_drawWarmup (<0|1> (default = 0) Toggle display of arena settings before a game starts ch_drawWeaponSelect <0|1> (default = 0) Toggle id standard weapon selection ch_recordMessage <0|1> (default = 1) 0 gets rid of the sodding "recording blahblah" message. Must be set before demo record start ch_selfOnTeamOverlay <0|1> (default = 1) Toggle your own information showing in the team overlay ch_shortNames <0|1> (default = 0) Toggle use of \nick - set a short name to use for team chat/overlay Limited to 5 visible characters, but allows colors Useful to have your \nick shown instead of [longclantag] in team chat/overlay Note: \nick is only used for team chat/overlay. \name is still used for anything else. ch_wstatsTime (default = 10) How long the auto-wstats window stays up at the end of a game con_notifyTime (default = 3) -1 uses the CPMA "Console" hud element instead of id's. Doesn't affect the console *buffer*, just the text in the top left. mvw_DM (default "464 48 160 120") x, y, width, height of Picture in Picture window for DM games. mvw_TDM<1-9> Controls teamplay Multi View layout. Format is the same as mvw_DM, default no child windows. Example: seta mvw_TDM1 "480 65 160 120" seta mvw_TDM2 "480 190 160 120" seta mvw_TDM3 "480 315 160 120" Crosshair Cvars --------------- cg_crosshairHealth <0|1> (default = 0) Red crosshair when low on health - must be 0 or ch_crosshairColor will not work cg_crosshairsize (default = 24) Size of crosshair cg_drawcrosshair <0-9> (default = 8) Switch between different crosshairs ch_crosshairAlpha <0.0 to 1.0> (default = 0.8) Controls the transparency of the crosshair cg_drawCrosshairNames 0-2 (default = 1) Toggles TargetName and TargetStatus. 0 - Off 1 - On 2 - Off in 1v1 ch_crosshairColor (default = y) CPMA_Colors Important note: cg_crosshairHealth overrides this function, turn it off to use colored crosshairs ch_crosshairPulse <0|1> (default = 0) Controls crosshair size changes when picking up items ch_crosshairText (default = "" disabled) Use any text string as crosshair Known Issues ------------ Limitation: Color fails on elements with color codes embedded in their strings (StatusBar_HealthCount, StatusBar_ArmorCount, NetGraphPing, etc) Limitation: Alpha fails on some elements containing images (StatusBar_AmmoIcon, StatusBar_ArmorIcon, etc) Limitation: Fade fails on some elements containing images without alpha channels (ItemPickupIcon etc) Limitation: If a !DEFAULT sets MONOSPACE, FILL or DOUBLEBAR there is no method to remove it again (so don't do it, unless it's at the end of the document) Limitation: Color T and E act funny when in non-teamplay modes such as 1v1 (like the #ch_teamBackground hack) Limitation: FILL plus bgcolor when used on elements that disappear without having TIME makes bgcolor remain indefinately Not implemented: cg_drawRewards element not included in SuperHud