LibMediaProvider-1.0 is a shared library that acts as a dependency for other ESO addons. At its core, it facilitates the sharing of media (fonts, textures, etc.) between different addons. The concept is inspired by and borrowed from LibSharedMedia-3.0 , a similar library written for World of Warcraft, adapting a successful framework for the ESO ecosystem.
Duplicated .ttf (font) and .dds (DirectDraw Surface texture) files increased the AddOns directory size.
The library operates on a simple, localized subscription-and-distribution architecture coded in Lua. libmediaprovider-1.0
LMP:Register("font", "MyCustomFontName", "path/to/font.otf")
Depending on your Linux distribution, the packages containing libmediaprovider-1.0 will have slightly different names. For Users (Runtime Library) LibMediaProvider-1
LibMediaProvider-1.0 a developer library for The Elder Scrolls Online (ESO)
First, you must add the library to your addon's .txt manifest file: ## DependsOn: LibMediaProvider Use code with caution. Duplicated
is an essential shared-asset management library used by developers to register, share, and manage custom media files—such as fonts, textures, backgrounds, and sounds—across multiple user interface (UI) add-ons in The Elder Scrolls Online (ESO). Inspired directly by the legendary World of Warcraft asset utility LibSharedMedia-3.0 , this Lua-based utility eliminates asset duplication. Instead of every combat tracker or nameplate mod bundling the exact same font files into their own individual folders, they call upon LibMediaProvider-1.0 as a singular, centralized repository.
is a shared media library specifically developed for The Elder Scrolls Online . It is heavily inspired by and borrows functionality from the well-known LibSharedMedia-3.0 library used in World of Warcraft .
Every I/O operation (discovery, thumbnail generation, metadata extraction) returns a future. This prevents the "media scanning ANR" problem common in naive implementations. The built-in thread pool defaults to 4 workers but is tunable at runtime.
local LMP = LibStub:GetLibrary("LibMediaProvider-1.0", true) if not LMP then return end -- Gracefully exit if the library isn't loaded Use code with caution. 2. Registering Custom Assets