By default, ZDoom defines five fonts directly in the executable:
- Large font used for menus and level names on the intermission screen if graphics are not used instead. Defined from the FONTB* lumps in Heretic and Hexen and the DBIGFONT and SBIGFONT files in Doom and Strife, both provided in zdoom.pk3.
- Heretic and Hexen big fonts can be overridden by a font named HBIGFONT. Also, a font named BIGFONT will override the big font for every game.
- Fixed width used in the console. Provided in zdoom.pk3.
- Fixed width, contains characters 0 to 9. Provided in zdoom.pk3.
- The standard small font. Default. Defined from the FONTA* or STCFN* lumps.
- An alternate small font, found only in Strife. In other games, this is an alias to SMALLFONT. Defined from the STBFN* lumps.
In GZDoom, all main fonts except INDEXFONT are overhauled, and a new font (BIGUPPER) appears:
- BIGFONT is no longer defined from the DBIGFONT and SBIGFONT files but on a set of lumps located in zd_extra.pk3/filter/game-***/fonts/bigfont. It can be easily replaced with a lump in a valid format named BIGFONT placed in a wad/pk3's base directory.
- BIGUPPER fills the same role as BIGFONT, but supports both uppercase and lowercase (smallcaps) letters, and is based in zd_extra.pk3/filter/game-***/fonts/bigupper
- BigUpper is used as the header text in GZDoom's option menus.
- CONFONT is based on images located in gzdoom.pk3/fonts/consolefont, each reflecting a block of Unicode characters.;
- SMALLFONT is located in zd_extra.pk3/filter/game-***/fonts/defsmallfont. It can be easily replaced with a lump in a valid format named SMALLFNT placed in a wad/pk3's base directory.
- SMALLFONT2 is located in zd_extra.pk3/filter/game-***/fonts/defsmallfont2.
In addition, all assets using the aforementioned formats are based on and named after Unicode instead of ISO 8859-1.
This new font format also allows for an additional text lump, font.inf, which can contain the following keys:
|Kerning = <int>||How close characters are to each other. Positive values seperate them out while negative values bring them closer together.|
|Scale = <float>||Changes the visual size of the font. Default is 1.0. Larger values are smaller, smaller values are larger.|
|SpaceWidth = <int>||Changes the width of spaces in text using the font.|
|FontHeight = <int>||Changes how tall the font is for the purposes of line height.|
|CellSize = <int>,<int>||Defines the width and height of each cell in a old-style ZDoom console font.|
|TranslationType = <string>||Changes how translations are applied to the font. Can be set to either "Standard" or "Console".|