Back
The Elder Scrolls Online

LibFilters-3.0

Overview

This version of LibFilters does NOT need any dependency to other libraries anymore (e.g. no LibStub needed).

LibFilters-3.0
This version of LibFilters does NOT need any dependency to other libraries anymore (e.g. no LibStub needed).
You simply reference it by using the global Variable

Other libraries
This libray optionally supports the use of LibDebugLogger to log messages to the addon log instead of the normal chat.

Welcome to LibFilters-3.0

The goal of LibFilters is to provide an easy interface for applying custom sorting rules to different lists of items found in the game. At the moment, you can filter the inventory, bank withdrawal, bank deposits, guild bank withdrawal, guild bank deposits, vendor buying, vendor selling, buyback, repair, guild store selling, mail sending, trading, smithing (refinement, deconstruction, improvement, research), alchemy creation, enchanting creation, enchanting extraction, fence selling, fence laundering, the craftbag, and the quickslot inventory.

Please check the LibFilters WIKI for examples, API functions and usage instructions:
LibFilters WIKI

LibFilters 3 r3 was totally recoded and now supports Gamepad mode too!
A very special thanks to IsJustaGhost for a lot of the Gamepad code, ideas and testing UI + help!

To use LibFilters in your addon, you simply assign a reference to it's global variable LibFilters3.
Yo do NOT need any call to LibStub for it anymore. In your manifest you need to add LibFilters-3.0 to the ##DependsOn tag:

In your addon, you need to invoke LibFilters with the global LibFilters3 variable and then initialize LibFilters:

This is the list of available filterType constants:

Universal Deconstruction is a special case as it does not provide any dedicated LF_UNIVERSAL_DECONSTRUCT filterType but reuses LF_SMIHING_DECONSTRUCT, LF_JEWELRY_DECONSTRUCT and LF_ENCHANTING_EXTRACTION at the UniversalDecon UI, depending on the selected UI Tab!
You need to register/unregister the according filterTypes for it.
UniversalDeconstruction callbacks will provide you the actual selected tab at universal decon (e.g. "all", "armor", "weapons", "jewelry" or "enchantments") as an additional parameter so you are able to differe them from normal smithing deconstruction/jewelry deconstruction/enchanting extraction! Non universal-decon panels will leave this param nil.

The filterTypes will pass information from the bag & slotIndex, or the inventorySlot, to a filterCallback function registered to that filterType.
For the slots, these are the keys available in the passed table:

Here is the mapping which filterId constant LF* uses which type of filter function: inventorySlot or bagdId & slotIndex
Example filter functions:

This library uses the inventory/fragment/dialog's attribute "additionalFilters" to register the filter callbackFunction, so it will run in addition to the original filter functions of the ZOs code (if any given, else it will add an additionalFilter attribute to the table).
It will store the filteres registered via LibFilters3:RegisterFilter internally and add the filter callback functions to the inventory.additionalFilters function, which then is called as the normal filters of the game are applied (e.g. at a refresh of the crafting table contents).
For this to work properly the UI needs to show the dependend filter panel, e.g. you cannot open the crafting table and stay at the refinement tab, but use filter functions of the desconstruction tab! At the refinement tab there are no updates to the filter tables done to include the LF_SMITHING_DECONSTRUCTION or LF_JEWELRY_DECONSTRUCTION entries of these inventorie's .additionalFilters!
You'd only have the refinement .additionalFilters (e.g. SMITHING.refinementPanel.inventory.additionalFilters).
So make sure to show the approrpiate UI in order to call the updaters like SMITHING:OnChangeFilter and apply the filter functions of LibFilters to the inventory.additionalFilters properly.

LibFilters API functions:
More API functions not listed below can be found at the Wiki (see link below).
-> Read the WIKI for examples!
The importants API functions of this library are:

LibFilters panel open/close "callback" API functions:
You create a callback identifier (name) for your addon and a LibFilters LF* filterType constant (related to a "panel"). if this panel shows/hides the callback will be raised.
You register your own callback function to that callback name via CALLBACK_MANAGER:RegisterCallback(callbackNameCreatedByLibFiltersAPIFunction_libFilters RegisterCallbackName, yourCallbackFunction).
yourCallbackFunction got the following parameters then:

-> Read the WIKI for callbacks and examples!

Test UI for the filters
If you need the test UI please uncomment (remove the ##) the entries of the test.lua and .xml files in the LibFilters-3.0.txt manifest file!
Use the slash command

to open the Test UI of LibFilters.

A description how the test UI works and how you are able to regisetr your custom filterFunction and run the filters can be found here:

Wiki with API, description and example code:
LibFilters WIKI

GitHub
LibFilters 3.0 at GitHub
LibFilters 3.0 for the PTS, or "Beta version"!

ABOUT THIS LISTING

This page describes LibFilters-3.0 by Baertram. The description and screenshots are the author's own, imported from their listing on ESOUI on 3 October 2026: https://www.esoui.com/downloads/info2343-LibFilters-3.0.html

Mythiq.net hosts no files for it. The download button goes straight to the release file on cdn.esoui.com, so you are downloading from the author's own host, not from a copy of ours.

The download count, rating and comments on this page start at zero and count Mythiq.net only. The source's own figures are not copied here — they measure a different site, and a number that cannot be checked against our own ledger is not worth printing.

Requirements

Game versions
  • 11.3.0
  • 11.2.0
  • 11.1.0
  • 11.0.0
  • 10.3.5
  • 10.2.0
API VERSION

Built for ESO API version 11.3.0, 11.2.0, 11.1.0, 11.0.0, 10.3.5. After a patch the game marks add-ons built for the previous API as out of date; the "Allow out of date add-ons" checkbox in the add-on menu loads them anyway, and most work.

LIBRARIES

Many ESO add-ons depend on a shared library — LibAddonMenu-2.0 above all — which is installed separately, exactly like an add-on. A dependency that is missing shows as the add-on simply not appearing in the list.

CONSOLE

Add-ons are PC and Mac only. There is no way to load them on console.

Installation

1. Download the archive with the button on this page and unzip it.

2. Move the unzipped folder into your add-ons directory:

Windows — Documents\Elder Scrolls Online\live\AddOns

macOS — ~/Documents/Elder Scrolls Online/live/AddOns

3. Start the game, and at the character select screen click Add-Ons.

4. Tick the add-on. If it is greyed out and marked out of date, tick "Allow out of date add-ons" at the top of the same panel.

5. Log in. Most add-ons need a /reloadui after they are first enabled.

UPDATING

Delete the old folder first. ESO loads everything it finds, and two copies of one add-on is the usual cause of "an add-on has produced an error" on login.

This release downloads from cdn.esoui.com, not from us, so there is no checksum to compare against. Scan the archive before you unpack it.

Version history

  1. v3.0r5.0 Latest 25 Feb 2026 · 140 KB via cdn.esoui.com · 0 downloads Download
    [v3.0 r5.0] 2026-02-25
    Fixed Gamepad enchanting API function, detecting if the enchanting mode is active

    [v3.0 r4.9] 2025-12-17
    Fixed vendor sell panel detecting always vendor sell vengeance

    [v3.0 r4.8] 2025-12-16
    Fixed Gamepad Inventory open error

    [v3.0 r4.7] 2025-12-14
    !!!Attention!!!
    You should delete the complete folder live/AddOns/LibFilters-3.0 please before you install this new version

    -Split up code into several files for an easier maintenance and updat
    -Fixed several bugs with callbacks
    -Fixed several old codes in helpers
    -Fixed new LF_INVENTORY_VENGEANCE and LF_VENDOR_SELL_VENGEANCE panel filter support, also for gamepad mode

    [v3.0 r4.6] 2025-11-04
    -Changed manifest to .addon file
    -Updated dependencies and APIversion
    -Removed compatibitlity functions in helpers
    -Fixed several helper functions for the filtering, especially custom gamepad fragments
    -Retested and fixed all keyboard callbacks and filter functions
    -Retested and fixed all gamepad callbacks and filter functions
    -Known problems: Universal deconstruction callbacks fire more than once, dependent on the number of tabs (all, weapons, armor, jewelry, enchantments) you register it for. Will be fixed once it leads to problems, for the moment better 4 than 1 firing.

    More test needed as vengeance campaign is active, should work, but maybe buggy:
    -Added inventory vengeance filterType
    -Added vendor vengeance filterType

    [v3.0 r4.5] 2025-06-08
    -Updated dependencies and addon version
    -Added Furniture vault support (keyboard only so far, gamepad is in progress)
    LF_FURNITURE_VAULT_DEPOSIT
    LF_FURNITURE_VAULT_WITHDRAW

    [v3.0 r4.4] 2025-04-28
    -Updated version and dependencies and API
    -Fixed gamepd alchemy error

    [v3.0 r4.3] 2024-06-03
    -Fixed for Gold Road:
    -Updated helper functions, constants, references

    [v3.0 r4.2] 2024-02-14
    -Updated APIversion and dependencies
    -Fixed Quickslot search not working properly at "Usable items" tab (Keyboard mode)

    [v3.0 r4.1] 2023-09-01
    -Updated APIversion and dependencies
    -Updated all helper codes (compared to ZOs vanilla code functions, 2023-08-31)
    -Removed some redundant code at helpers
    -Cleaned helper comments, versions, local variables and speed-up references
    -Moved helper local variables and functions to the top

    [v3.0 r4.0] 2023-03-14
    Fixed ResizeToFitDescendents error at research crafting panel (should only have appeared if FCOCraftFilter is used and currently researched items were filtered to "Show")

    [v3.0 r3.9] 2023-01-02
    -Added API functions for smithing research horizontal scrollbar filters
    -->See API documentation at the WIKI:
    function libFilters:RegisterResearchHorizontalScrollbarFilter(filterTag, craftingType, skipTable, fromResearchLineIndex, toResearchLineIndex, noInUseError)
    function libFilters:UnregisterResearchHorizontalScrollbarFilter(filterTag, craftingType)
    function libFilters:ApplyCraftingResearchHorizontalScrollbarFilters(craftingType, noRefresh)
    function libFilters:RequestUpdateForResearchFilters(delay)

    -Added more Is*Shown API functions (refinement, creation, deconstruction, improvement, research)
    -->See API documentation -> IsShown* at the WIKI:
    -Fixed research refresh function to update currently researched items properly, even if filtered (to prevent a start of a 4th research where not possible)
    -Updated API Documentation/LibFilters-3.0_WIKI_API.md

    -IMPORTANT - API functions removed:
    function LibFilters3:SetResearchLineLoopValues(fromResearchLineIndex, toResearchLineIndex, skipTable)
    -> Please use he new API functions libFilters:RegisterResearchHorizontalScrollbarFilter and libFilters:UnregisterResearchHorizontalScrollbarFilter instead so that many addons can work combined togeher!

    Off-site on cdn.esoui.com — no checksum, because we never held this file. Link checked by our review team on 3 Oct 2026.

Comments

No comments yet.

Sign in to leave a comment.

Report this mod

Tell us if something is wrong — a file that will not work, content taken from someone else, or anything that looks unsafe. Reports go to our review team, not to the author.

Sign in to report this mod.

We use cookies to ensure that we give you the best experience on our website and improve your experience. By continuing to use this site you consent to such use of cookies.

Learn More