SuperHud

From Q4MAX

Starting from version 0.80, Q4Max uses a custom hud system based on CPMA's implementation - we call it SuperHud.

advantages over using .guis

  • performance
  • simpler syntax
  • no packaging

The syntax, elements and properties are largely similar, so you will find most of this documentation paraphrases CPMA's.

Note : For the time being, you can still revert to .gui based huds by changing hud_useSuperhud to 0 - but support for them is on hold. This will likely change in future releases.

Contents

Syntax

The syntax in CPMA's SuperHud should be pretty straightforward to comprehend. Supports both multi-line and single-line arguments.

ELEMENT
{
    PROPERTY VALUE
    PROPERTY VALUE
}

# This is a comment !
// This is also a comment
/*
as is this
*/

# You can also represent elements like this:

ELEMENT { PROPERTY VALUE PROPERTY VALUE }

All keywords - both element names, and property names, are case insensitive.

Note that unlike CPMA, all properties have a value. Additionally, the value must be quoted if it contains spaces or punctuation of any kind - so "1.3" or "10 10" must be quoted, unlike in CPMA.

Elements

!Default
Special type of element which sets default properties which are applied to all elements that follow this element. May occur multiple times.
Awards
Shows the award icons.
Chat1 to Chat5
Text elements showing the ingame chat.
Ctf_Holder_Own
The name of the person currently carrying your teams flag.
Ctf_Holder_Nmy
The name of the person currently carrying the enemy flag.
Ctf_Status_Own
Image showing the CTF flag state for your own team.
Ctf_Status_Nmy
Image showing the CTF flag state for the enemy team.
Death_Message_1 to Death_Message_3
Text showing the death messages.
Fps
Text containing the current framerate. You can hide/show it by toggling hud_fps.
Frag_Notice
Text used to indicate who you just fragged / who fragged you.
Gametime
A text element showing the amount of time played/remaining.
Gametime_Inf
The infinity sign displayed when there is no timelimit
Input
Game controller style images showing the movement keys. You can hide/show it by toggling hud_showInput.
Lagometer
The lagometer. You can hide/show it by toggling net_clientLagometer.
Main_Notice
Text used for notices such as "you have the flag".
Motd
Text field used for the Message Of The Day, and any broadcast messages from the server.
Name_Nmy
The enemy's name - shows the team name in team games.
Name_Own
Your name - shows the team name in team games.
Pickup_Text
Text containing the long name of the last item picked up.
Pickup_Icon
Pickup icon corresponding to the last item picked up.
Powerups
Dynamic list of powerups that the player currently has. Shows both the powerup icon and remaining time.
PostDecorate_Text
Text decorator available for general use - applied after the rest of the hud.
PostDecorate_Image
Image decorator available for general use - applied after the rest of the hud.
PreDecorate_Text
Text decorator available for general use - applied before the rest of the hud.
PreDecorate_Image
Image decorator available for general use - applied before the rest of the hud.
Score_Own
Text showing your own score in non-team games.
Score_Nmy
Text showing the enemy's score in non-team games.
Spectimers
The display of the item timers available when spectating.
Spec_Text_0
Line 1 of the spectator text.
Spec_Text_1
Line 2 of the spectator text.
Spec_Text_2
Line 3 of the spectator text.
Speed
Text displaying you speed in UPS. You can hide/show it by toggling hud_showSpeed.
Spread
Text containing the spread in TDM - the difference between the two teams.
Statusbar_Ammobar
Percentage bar showing the current amount of ammo.
Statusbar_Ammocount
Text element showing the amount of ammo the player has.
Statusbar_Ammoicon
Image showing the icon for the current weapon.
Statusbar_Armorbar
Percentage bar which shows the amount of armor the player has, relative to a maximum of 100.
Statusbar_Armorcount
Text showing the current amount of armor.
Statusbar_Armoricon
Image, showing the armor icon.
Statusbar_Healthbar
Percentage bar which shows the amount of health the player has, relative to a maximum of 100.
Statusbar_Healthcount
Text showing the players health.
Statusbar_Healthicon
Image, showing the health icon
Team_Overlay_1 to Team_Overlay_8
Rows of the team overlay.
Team_Score_Own
Text showing your own score in team games.
Team_Score_Nmy
Text showing the enemy's score in team games.
Thawbar
Percentage bar used in Freezetag to show your current thawing state.
Voicechat_Transmit
Icon displayed when transmitting voicechat.
Vote_Notice
Text field which is set when a vote is called.
Weaponlist
The weapon/ammo bar - a set of images and text showing the current weapons and ammo quantities.
Xhair_Text
Text displaying info about the player your crosshair is currently over.

Properties

Color
Color used to draw the element.
Colored
0/1 flag indicating whether a color should be used.
ColorBG
Background color used for weaponlist, powerups list etc.
ColorHighlight
Highlight color used by the weaponlist and input elements.
ColorHigh
Color used by percentage bars for the high percentage values.
ColorMed
Color used by percentage bars for the medium percentage values.
ColorLow
Color used by percentage bars for the low percentage values.
Dimensions
Width and height of the element. In some cases, such as the input element, this is not directly the dimensions of the element itself, but of part of the element.
Font
0 - chain
1 - marine
2 - lowpixel
3 - profont
4 - chain_outline
5 - marine_outline
6 - lowpixel_outline
7 - profont_outline
HighWatermark
Percentage value to switch between medium and high colors (expressed as a value between 0 and 1).
Horizontal
0 - vertical orientation.
1 - horizontal orientation.
Applies to percentage bars, weaponlist, powerups, and awards.
IconDimensions
Width and height of icons for elements that have both icons and text (weaponlist, awards etc)
Image
Path to an image to use - applies to progress bars, decorators etc. "_white" is a useful image if you want a solid color (combine with the color and colored properties).
MedWatermark
Percentage value to switch between low and medium colors (expressed as a value between 0 and 1).
Monospaced
0/1 flag indicating whether the text should be printed in a monospaced font.
NmyColor
Sets the color to be colored with the standard strogg/marine color corresponding to the enemy team.
OwnColor
Sets the color to be colored with the standard strogg/marine color corresponding to your team.
Position
X and Y coordinates of the element.
Rect
X, Y, Width and Height of the element. Duplicates the functionality of position and Dimensions keywords.
tabstops
X coordinates, relative to the x/y coordinates of the element, to move to when reaching a tab in the output text. Mainly intended for the Team Overlay.
Text
Text value used by decorate_text elements.
textalign
L - left, C - centered, R - right
TextScale
Scales the text. Values correspond to those in q4's .gui files - the values are not in pixels.
textstyle
0 - Normal
1 - Shadowed
2 - Outline - Switches to the _outline font version, therefore font 4/5/6/7 + textstyle 2 are redundant.
3 - Ignore Colors
4 - Ignore Colors, Skip Icons
Time
Value indicates time (in milliseconds) that the element will be visible after the last update. Used to make elements appear only when they change.
Visible
Value is a bitmask which indicates whether the hud element is visible. By default, it will be 7 - ie, always visible.
0 - hidden
1 - visible in non team-game modes
2 - visible in team-games, excluding CTF
4 - visible in CTF
VisibleForFreeFloats
0/1 selects whether this element is visible for freefloat spectators. This is only needed on decorators - all other elements automatically have sensible values.
Wrap
X Coordinate to wrap at, for text elements. Especially used in Chat elements. Can also be the Y coordinate to wrap vertical weaponlists to get multi-column lists.

Colors

The superhud 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 ui_nick or ui_name is "^3hello" it will be yellow regardless. Text style 3 allows you to override colors stored in the string.