TF2 fonts: names, files and how a HUD adds its own font

Team Fortress 2 draws its menus and its HUD with a few fonts of its own. Their names and files are listed in one file of the default HUD, clientscheme.res. This page lists them, shows where the files are, and explains how a custom HUD adds a font.

Which fonts TF2 uses

The default clientscheme.res has 164 font entries. These are the game's own fonts in it, with the file each one is loaded from and how many times those entries name it:

Font nameFile and use
TF2 Secondaryresource/TF2Secondary.ttf. Named 48 times, the most of the game's own fonts. HudFontSmall is one of its entries.
TF2 Buildresource/TF2Build.ttf. Named 31 times. The ammo numbers use it, through the entry HudFontGiantBold.
TF2resource/TF2.ttf. Named 30 times. The health number uses it, through the entry HudClassHealth.
ocraresource/ocra.ttf. Named 12 times, each time under a line that names OCR A Extended for Windows.
TF2 Professorresource/TF2Professor.ttf. Named 5 times.
Team Fortressresource/tf.ttf. Named twice.
tfdresource/tfd.ttf. Named once.

The same file names fonts that are not the game's own. Verdana is named 81 times, more than any TF2 font, and Tahoma, Arial, Trebuchet MS and Courier New appear too. For Linux the file lists font files in resource/linux_fonts: DejaVu Sans, Liberation Sans, Liberation Mono and Fira Sans.

Where the TF2 font files are

If you have the game, you have the fonts. They are in the resource folder inside tf2_misc_dir.vpk, one of the game's VPK files, which opens with GCFScape. TF2-Default-HUD by Hypnootize keeps an extracted copy of that folder: tf2.ttf, tf2build.ttf, tf2secondary.ttf, tf2professor.ttf, ocra.ttf, tf.ttf, tfd.ttf and tflogo.ttf.

This site does not offer the font files for download. The readme of TF2-extended-fonts, linked below, states that the TF2 fonts fall under the copyright of Andrea Wicklund and Valve and can be used for any non-commercial use.

How TF2 reads a font: clientscheme.res

A font is declared in two places of clientscheme.res. The CustomFontFiles section lists the font files. An entry is the path of a file, or a block with the path and the name of the font. This is how the section starts in the default file, shortened:

CustomFontFiles
{
    "1" "resource/tf.ttf"
    "2" "resource/tfd.ttf"
    "3"
    {
        "font" "resource/TF2.ttf"
        "name" "TF2"
    }
}

The Fonts section then makes entries from those names. An entry sets the size in tall, and antialias 1 smooths the edges. This is the example entry of the HUD reference by JarateKing:

"ExampleFont"
{
    "1"
    {
        "name"      "TF2 Build"
        "tall"      "44"
        "antialias" "1"
    }
}

HUD files use the name of the entry, not the name of the font. The health number in hudplayerhealth.res has the line "font" "HudClassHealth", and HudClassHealth is an entry that names the font TF2. The HUD editing guide covers the rest of the file.

How to add a font to a TF2 HUD

  1. Put the font file in the HUD. A .ttf or .otf file, for example in resource/fonts.
  2. List it in CustomFontFiles. Give the path of the file and the name of the font. The reference says the name has to be what the font itself is called, and that a preview of the font file shows it as the font name.
  3. Use the name in a Fonts entry. Change an existing entry or add one, and set tall.
  4. Restart TF2. The reference notes that hud_reloadscheme does not reload clientscheme.res.

TF2 fonts for more languages

TF2-extended-fonts by jakadak holds versions of TF2, TF2 Build, TF2 Professor, TF2 Secondary and ocra with more letters. The table in its readme lists 19 languages, Russian and Ukrainian among them. Its install steps: copy customfontfiles.res and the fonts folder into the HUD's resource folder, then add #base "customfontfiles.res" at the start of clientscheme.res.

Fonts on Linux and Mac

A HUD's own fonts often do not load on Linux and macOS until they are installed on the system: the install guide has the steps. For HUD authors, the reference says a font on Linux needs 0.8 times its Windows size to look the same, and that a line in CustomFontFiles can end in [$WINDOWS] or [$LINUX] to name a different file for each system.

HUDs with their own fonts

hud-db marks 74 HUDs as shipping custom fonts. The TF2 HUDs with custom fonts list has their screenshots and downloads.

Where this comes from

The font names, the files and the counts are read from the game's clientscheme.res, hudplayerhealth.res and hudammoweapons.res as extracted in TF2-Default-HUD, which was last updated in October 2026. How the two sections work, the tip on font names and the notes on Linux are from TF2-Hud-Reference by JarateKing (MIT licence). The extended fonts and the note on copyright are from the readme of TF2-extended-fonts. The number of HUDs is from hud-db.

Next

Change sizes and colours by hand with the HUD editing guide, look at the default HUD and its files, or install a HUD that has the font you like.