A new feature was added in update 50.80, expanding the total number of font-types that can be used in the game's UI, adding 22 extra font-type slots to the existing 8 (as defined in Fallout.ini).
Essentially, this enables installing custom fonts easily, safely, without overwriting the default fonts and without tampering with any INI files.
Note that this should be considered an advanced feature and is mostly intended to be used by modders developing user interface mods.
Extra fonts may be installed in one of two methods:
Method 1 (recommended):
Adding a plain text file (MyModName.txt) to \data\NVSE\plugins\xfonts
The fonts are to be listed in the file and formatted as follows:
<Font Number>=<Path to FNT file>
Example:
13=textures\fonts\MyFont_Small_Bold.fnt
21=textures\fonts\MyFont_Medium_Alt.fnt
This file (along with the font's art files) should be included in the mod's installation package when released. The file's folder structure should be preserved (NVSE\plugins\xfonts\MyModName.txt).
Method 2:
Calling SetFontFile via a script, during runtime. Using this method is generally less recommended. In the case where a new font is installed for an already rendered text element, there will be no visual changes until the element is re-rendered (closed and re-opened).
12 comments
1. I downloaded a Van Buren preview which contained some nice True Type font files, including the one used for the original Fallout logo (Bitstream's Gothic 821) and one for the original Fallout interface.
2. To convert the latter to a usable format for Oblivion/Fallout 3/New Vegas, I've used the latest Oblivion Font Generator (http://www.theassimilationlab.com/forums/files/file/1056-font-generator/) and created my Original_Fallout_Font fnt & tex files.
3. Temporarily renamed the fnt file to Glow_Monofonto_Medium.fnt and tested the font in game, it works. Renamed the file back to Original_Fallout_Font.
4. I've created a file Axonis.txt at Data\NVSE\Plugins\xfonts and the file contains the line 9=textures\fonts\Original_Fallout_Font.fnt
5. Modified inventory_menu.xml to use font 9. Tested in game but it doesn't display anything. Tried Axonis.esp.txt, still nothing.
Am I missing something ? Here are the files: https://expirebox.com/download/35369a4292007b9992f667d618877a7f.html
"The font number may range from 10 to 31."
I have several functionalities where people can select a font for a UI element or MCM options using a scale up to 8. I'd love to expand that to include custom-added fonts, but can't read the intel from a .txt file. If it were in an .ini format, we could use a combo of GetFilesInFolder and GetINISection, although we still couldn't account for the SetFontFile method.
I propose the rules of using fonts:
1) Create a page on new GECK wiki which holds all information about font slots used in specific mods.
2) Each mod author after uploading his creation on site will register their font slot for their mod. (or before 1 day of uploading but in this case it only counts if person uploaded their mod withing 1 day after making change in wiki). EDIT:Also it's crucial that fonts should be used in uploaded package (So it won't be like "I upload now and will use font slots later").
3) If author didn't register their font slot on specific page then this font slot is considered free. Rules will be on this page so in theory no one can add fonts using this method without reading the rules.
4) No more than 3 font slots per person (not mod! )? I don't know about this point but it seems fair.
5) When all font slots are taken we will have to either wait for JiP to make another miracle to increase the number of fonts or communicate with each other.
I think this will help eliminating all possible conflicts between mods authors and prevent mod incompatibilities.Or we can go back to stone age and make everything incompatible again.
Also just wondering, why did it stop at 30 fonts? Technical reasons or did it just feel right?
Also would be cool if we could keep track of used font slots, by making wiki page for it, where authors would be able to leave info like "SomeModName(link) using slots 13, 14." to avoid any possible conflicts.