Overview LibFonts provides a centralized location for a vast collection of fonts that can be easily integrated into your addon. All fonts are free to use in any way you like, with most sourced from the 1001 Free Fonts website. Currently, it supports over 80 fonts, and more can be added as needed. The fonts are not loaded into memory until they are used, so you don’t have to worry about memory or resource management. If you find any bugs, please let me know and I will address them as soon as possible.Library Dependencies LibDebugLogger LibMediaProvider-1UsageSlash Commands:/lfversion Display version information in the chat window Examples:LibFontsSample_1.txt:## Title: LibFontsSample1## APIVersion: 101044## Version: 1.0## Author: YourName## Description: Displays “Libfonts Library Sample 1” in the chat window using a font from the library## DependsOn: LibFontsLibFontsSample1.luaLibFontsSample_1.lua:local LibFontsSample1 = {}LibFontsSample1.AddName = “LibFontsSample1″LibFontsSample1.AddId = “LibFontsSample1″LibFontsSample1.Version = 10000LibFontsSample1.Author = “TheJoltman”if LibFonts thenMyAddonLf = LibFontselsed(“Error loading LibFonts!”)endLibFontsSample1.Window = GetWindowManager()LibFontsSample1.InfoText = LibFontsSample1.Window:CreateTopLevelWindow(“LibFontsSample1DisplayBar”)local function OnLoad(event, addonName)if addonName == LibFontsSample1.AddName then LibFontsSample1.InfoText:SetAnchor(CENTER, GuiRoot, nil, 0, -250) LibFontsSample1.InfoText.Text = LibFontsSample1.Window:CreateControl(“LibFontsSample1.InfoText”, LibFontsSample1.InfoText, CT_LABEL) LibFontsSample1.InfoText.Text:SetAnchor(CENTER, LibFontsSample1.InfoText, CENTER, 0, 0) LibFontsSample1.InfoText.Text:SetFont(MyAddonLf.GetFontByFriendlyName(“AvenueX_Regular”)..”|”..”50″..”|shadow”)LibFontsSample1.InfoText.Text:SetText(“|c00CCCCLibfonts Library Sample 1|r”)EVENT_MANAGER:UnregisterForEvent(LibFontsSample1.AddName..”_OnLoad”, EVENT_ADD_ON_LOADED)endendEVENT_MANAGER:RegisterForEvent(LibFontsSample1.AddName..”_OnLoad”, EVENT_ADD_ON_LOADED, OnLoad)LibFontsSample_2.txt:## Title: LibFonts Sample Addon 2## APIVersion: 101044## Version: 1.0## Author: YourName## Description: Displays a combobox containing all of the LibFonts font names to choose from. When one is selected it updates a text control on the screen using the selected font.## DependsOn: LibFontsLibFontsSample_2.luaLibFontsSample_2.lua:local LibFontsSample2 = {}LibFontsSample2.AddName = “LibFontsSample2″LibFontsSample2.AddId = “LibFontsSample2″LibFontsSample2.Version = 10000LibFontsSample2.Author = “TheJoltman”if LibFonts thenLibFontsSample2Lf = LibFontselsed(“Error loading LibFonts!”)endfunction LibFontsSample2:Initialize() — Create a TopLevelWindow to hold the dropdown local mainWindow = WINDOW_MANAGER:CreateTopLevelWindow(“MyDropdownWindow”) mainWindow:SetDimensions(300, 100) mainWindow:SetAnchor(CENTER, GuiRoot, CENTER, 0, -500) mainWindow:SetMovable(true) mainWindow:SetMouseEnabled(true) — Add a backdrop for styling local backdrop = WINDOW_MANAGER:CreateControl(nil, mainWindow, CT_BACKDROP) backdrop:SetAnchorFill(mainWindow) backdrop:SetCenterColor(0, 0, 0, 0.5) backdrop:SetEdgeColor(1, 1, 1, 1) backdrop:SetEdgeTexture(“”, 1, 1, 1.0) — Create the dropdown control local dropdown = WINDOW_MANAGER:CreateControlFromVirtual(“MyDropdownControl”, mainWindow, “ZO_ComboBox”) dropdown:SetAnchor(CENTER, mainWindow, CENTER, 0, 0) dropdown:SetDimensions(200, 30) — Get the combo box object local comboBox = ZO_ComboBox_ObjectFromContainer(dropdown) — Ensure the combo box is valid if not comboBox then d(“Error: Failed to create combo box”) return end — Disable sorting (optional) comboBox:SetSortsItems(false) — Populate the combo box local items = LibFontsSample2Lf.GetFontNameList() for _, item in ipairs(items) do local entry = comboBox:CreateItemEntry(item, function() — Callback triggered when this item is selected LibFontsSample2.InfoText.Text:SetFont(LibFontsSample2Lf.GetFontByFriendlyName(item)..”|”..”50″..”|shadow”)LibFontsSample2.InfoText.Text:SetText(“|c00CCCC”..item..”|r”) end) comboBox:AddItem(entry) endendLibFontsSample2.Window = GetWindowManager()LibFontsSample2.InfoText = LibFontsSample2.Window:CreateTopLevelWindow(“LibFontsSample2DisplayBar”)local function OnLoad(event, addonName)if addonName == LibFontsSample2.AddName thenLibFontsSample2:Initialize() LibFontsSample2.InfoText:SetAnchor(CENTER, GuiRoot, nil, 0, -350) LibFontsSample2.InfoText.Text = LibFontsSample2.Window:CreateControl(“LibFontsSample2.InfoText”, LibFontsSample2.InfoText, CT_LABEL) LibFontsSample2.InfoText.Text:SetAnchor(CENTER, LibFontsSample2.InfoText, CENTER, 0, 0)EVENT_MANAGER:UnregisterForEvent(LibFontsSample2.AddName..”_OnLoad”, EVENT_ADD_ON_LOADED)endendEVENT_MANAGER:RegisterForEvent(LibFontsSample2.AddName..”_OnLoad”, EVENT_ADD_ON_LOADED, OnLoad)