budhud Dev Reference - rbjaxter/budhud GitHub Wiki

Used as a reference by me because i forget EVERYTHING

HUDS.TF final stats

Downloads: 393,280 | Views: 1,165,827

BIG NUMBER MAKE DOPAMINE GO UP

Things I could do and why I haven't done them

  • speedo - i was lazy, this is implemented now
  • uber timer - don't want to, takes up voicemenu + kinda perf heavy
  • VTF crosshairs - varies too much on someone's preferences

TF Team HUD Wishlist

  • Center ammo pickup that appears in the lower center of the screen (can't center for all three digit places)
  • Adjust wide value of text in Voice UI
  • Ability to change colors of itemeffectmeters (you can with a modulate material but i mean......)
  • Ability to use directional arrows in vgui_drawtree again (pls)

Useful HUD Commands

  • hud_reloadscheme - most basic hud reload command
  • mat_aaquality - used if reloadscheme doesnt work
  • mat_reloadallmaterials - used whenever working on VTFs/VMTs
  • showschemevisualizer
  • cl_panelanimation
  • testhudanim <event_name> - test an animation in hudanimations

Random useful info

  • Scoreboard font: resource/clientscheme -> Default
  • Scoreboard name/ping/score/etc font -> "DefaultVerySmall" (set to "" to disable)
  • Killfeed font: /scripts/hudlayout.res -> "font" under "HudDeathNotice"
  • Equipped item font: resource/clientscheme -> ItemFontNameSmallest, ItemFontNameSmall, ItemFontNameLarge, ItemFontNameLarger
  • Change Item Preset names (A, B, C, D) by adding the following to chat_english.txt:
    "TF_ItemPresetName0"    "<name>"
    "TF_ItemPresetName1"    "<name>"
    "TF_ItemPresetName2"    "<name>"
    "TF_ItemPresetName3"    "<name>"

(will probably muck up the quickswitch menu)

VTF/VMT Information

For VMTs, the following are (in my experience) the only parameters you need to have:

"$baseTexture"

  • Required to locate the VTF

"$translucent"

  • Must be set to 1 for VTFs with any transparency
  • Can safely be left set to 1 for all VMTs with no issue

"$vertexcolor"

  • Must be set to 1 for VTFs that can be changed with image_drawcolor / image_armedcolor
  • Can safely be left set to 1 for all VMTs with no issue

"$vertexalpha"

  • Must be set to 1 for VTFs that can be changed with image_drawcolor / image_armedcolor AND the RGBA value used is not fully opaque (alpha value is a value between 0 and 254)
  • Example in budhud: cog.vtf is used in the main menu to change your rank from casual to competitive. Since the RGBA used for image_drawcolor has transparency (255 255 255 001), $vertexalpha must be set to 1

Payload Icon Notes

Used in PLR:

  • cart_home__square
  • cart_, cart__bottom
  • cart_track__opaque
  • cart_point_

Used in PL:

  • cart_
  • cart_home__opaque
  • cart_point__opaque

Borders

  • bh_b_NESW - Borders on NORTH, EAST, SOUTH, and WEST side of element
  • bh_b_NEW - Borders on NORTH, EAST, and WEST side of element
  • bh_b_ESW - Borders on EAST, SOUTH, and WEST side of element
  • bh_b_EW - Borders on EAST and WEST side of element
  • bh_b_N - Border on NORTH side of element
  • bh_b_E - Border on EAST side of element
  • bh_b_S - Border on SOUTH side of element
  • bh_b_W - Border on WEST side of element
  • ReplayGrayDialogBorder - PReviously used a lot for tooltips, now using bh_ToolTipBG
  • bh_TooltipBG - Replaces ReplayGrayDialogBorder

"Close" Buttons

No text, just image

    "CloseButton"
    {
        "image_drawcolor"                                       "255 255 255 255"
        "image_armedcolor"                                      "240 134 049 255"

        "SubImage"
        {
            "image"                                             "replay/thumbnails/menu_icons/close"
        }
    }

Element Template

Generic image panel with fillcolor

"bh_Template_Block"
{
    "ControlName"                                               "ImagePanel"
    "fieldName"                                                 "bh_Template_Block"
    "xpos"                                                      "0"
    "ypos"                                                      "420"
    "zpos"                                                      "0"
    "wide"                                                      "f0"
    "tall"                                                      "60"
    "autoResize"                                                "0"
    "pinCorner"                                                 "0"
    "labeltext"                                                 ""
    "visible"                                                   "1"
    "enabled"                                                   "1"
    "fillcolor"                                                 "bh_Theme_BG20"
    "image"                                                     ""
    "paintbackgroundtype"                                       "0"
}

Button Template

Generic CExButton with command execution

"bh_Template_Button"
{
    "ControlName"                                               "CExButton"
    "fieldName"                                                 "bh_Template_Button"
    "xpos"                                                      "30"
    "ypos"                                                      "75"
    "zpos"                                                      "0"
    "wide"                                                      "100"
    "tall"                                                      "26"
    "autoResize"                                                "0"
    "pinCorner"                                                 "0"
    "visible"                                                   "1"
    "enabled"                                                   "1"
    "paintbackgroundtype"                                       "0"

    "labeltext"                                                 "DRAWTREE 0/1"
    "textalignment"                                             "center"
    "font"                                                      "bh_Font12"
    "command"                                                   "engine incrementvar vgui_drawtree 0 1 1"

    "sound_depressed"                                           "UI/buttonclick.wav"
    "sound_released"                                            "UI/buttonclickrelease.wav"

    "defaultBgColor_override"                                   "bh_Theme_BG20"
    "armedBgColor_override"                                     "bh_Theme_BG30"
    "depressedBgColor_override"                                 "bh_Theme_BG30"
    "defaultFgColor_override"                                   "bh_Theme_TextSecondary"
    "armedFgColor_override"                                     "bh_Theme_TextAccent"
    "depressedFgColor_override"                                 "bh_ButtonDepressed"
    "border_default"                                            "bh_b_NESW"
    "border_armed"                                              "bh_b_NESW"
}

Button Colors

Standard button colors used in budhud

    "defaultFgColor_override"                                   "bh_Theme_TextSecondary"
    "armedFgColor_override"                                     "bh_Theme_TextAccent"
    "depressedFgColor_override"                                 "bh_ButtonDepressed"
    "defaultBgColor_override"                                   "bh_Theme_BG20"
    "armedBgColor_override"                                     "bh_Theme_BG30"
    "depressedBgColor_override"                                 "bh_Theme_BG30"
    "border_default"                                            "bh_b_NESW"
    "border_armed"                                              "bh_b_NESW"
    "image_drawcolor"                                           "255 255 255 255"
    "image_armedcolor"                                          "240 134 49 255"

"Combobox" Colors

Standard combobox (filter search) colors used in budhud

"fgcolor_override"                                          "bh_white"
"bgcolor_override"                                          "bh_blank"
"disabledFgColor_override"                                  "bh_white"
"selectionColor_override"                                   "bh_blank"
"selectionTextColor_override"                               "bh_white"

Background footer used in menus

"bh_BackgroundFooter"
{
    "ControlName"                                               "ImagePanel"
    "fieldName"                                                 "bh_BackgroundFooter"
    "xpos"                                                      "0"
    "ypos"                                                      "420"
    "zpos"                                                      "0"
    "wide"                                                      "f0"
    "tall"                                                      "61"
    "autoResize"                                                "0"
    "pinCorner"                                                 "0"
    "labeltext"                                                 ""
    "visible"                                                   "1"
    "enabled"                                                   "1"
    "fillcolor"                                                 "bh_Theme_BG20"
    "border"                                                    "bh_b_N"
    "image"                                                     ""
    "paintbackgroundtype"                                       "0"
}

Pins

  • A pinned element will always move relative to their parent element
  • Good for things like shadows, etc.
  • Bear in mind x/y values move the pinned element oppositely as they usually do
  • xpos 100 will move it 100 units to the LEFT instead of RIGHT, etc
  • I think there might actually be a way to change this reversing pin behavior by changing the pin corner or something
"bh_PinTemplate"
{
    "ControlName"                                               "Label"
    "fieldName"                                                 "bh_PinTemplate"
    "xpos"                                                      "c0"
    "ypos"                                                      "10"
    "zpos"                                                      "0"
    "wide"                                                      "100"
    "tall"                                                      "0"
    "visible"                                                   "1"
    "enabled"                                                   "1"
    "bgcolor_override"                                          "0 0 0 0"
}
    "pin_to_sibling"                                            "bh_PinTemplate"
    "xpos"                                                      "-1"
    "ypos"                                                      "-1"

Combobox (w/ dropdown arrow) Color Control

  • "Button" is what controls the drop-down arrow's appearance in the dropdown box
    "fgcolor_override"                                          "bh_black"
    "selectionColor_override"                                   "bh_Theme_TextAccent"
    "selectionTextColor_override"                               "bh_white"
    "bgcolor_override"                                          "bh_white"
    "Button"
    {
        "defaultBgColor_override"                               "bh_ButtonBlank"
        "armedBgColor_override"                                 "bh_ButtonBlank"
        "depressedBgColor_override"                             "bh_ButtonBlank"
        "defaultFgColor_override"                               "bh_gray"
        "armedFgColor_override"                                 "bh_Theme_TextAccent"
        "depressedFgColor_override"                             "bh_ButtonDepressed"
    }
  • For text entry box (border no worky)
    "fgcolor_override"                                          "bh_black"
    "selectionColor_override"                                   "bh_Theme_TextAccent"
    "selectionTextColor_override"                               "bh_white"
    "bgcolor_override"                                          "bh_white"

VTF File Compression

Information courtesy of peaches

  • DXT1 - Use for images with no transparency
  • DXT5 - Use for images with transparency

Animations

From TF Team's hudanimations_tf.txt

event IsAnExample
{
    Animate <panel name> <variable> <target value> <interpolator> <start time> <duration>
}

variables:
    FgColor
    BgColor
    Position
    Size
    Blur            (hud panels only)
    TextColor       (hud panels only)
    Ammo2Color      (hud panels only)
    Alpha           (hud weapon selection only)
    SelectionAlpha  (hud weapon selection only)
    TextScan        (hud weapon selection only)

Interpolator:
    Linear
    Accel   - starts moving slow, ends fast
    Deaccel - starts moving fast, ends slow
    Spline  - simple ease in/out curve
    Pulse   - < freq > over the duration, the value is pulsed (cosine) freq times ending at the dest value (assuming freq is integral)
    Flicker - < randomness factor 0.0 to 1.0 > over duration, each frame if random # is less than factor, use end value, otherwise use prev value
    Gain    - < bias > Lower bias values bias towards 0.5 and higher bias values bias away from it.
    Bias    - < bias > Lower values bias the curve towards 0 and higher values bias it towards 1.

RunEvent <event name> <start time>
    starts another even running at the specified time

StopEvent <event name> <start time>
    stops another event that is current running at the specified time

StopAnimation <panel name> <variable> <start time>
    stops all animations refering to the specified variable in the specified panel

StopPanelAnimations <panel name> <start time>
    stops all active animations operating on the specified panel

SetFont <panel name> <fontparameter> <fontname from scheme> <set time>

SetTexture <panel name> <textureidname> <texturefilename> <set time>

SetString <panel name> <string varname> <stringvalue> <set time>

paintbackgroundtypes

Info courtesy of Hypnotize

0 - Straight edges
1 - Burnt paper edges
2 - Round edge
3 - Gradient edges
⚠️ **GitHub.com Fallback** ⚠️