Back
The Elder Scrolls Online

LibTextFilter

Overview

LibTextFilter is a powerful text filtering library with an extensive syntax that allows users to filter for exactly the terms they want.

LibTextFilter is a powerful text filtering library with an extensive syntax that allows users to filter for exactly the terms they want.
Compared to ZO_StringSearch it is a lot more flexible and easier to use.

It recognizes a number of operators that can be used to build elaborate filtering terms:

- ' ' (space), '&': combine two words with AND; precedence: 2
- '+', "/": combine two words with OR; precedence: 3
- '-', '^': combine two words with AND, but negate the second one; precedence: 3
- '!': negate the next expression; precedence: 4
- '~', '*': soft match item link (only item id instead of all fields); precedence: 5
- '(', ')': control the order in which operators are evaluated
- '"': filter for an exact term, handling operators in between two double quotes as part of a term

Usually the search terms are split along operators, so filtering for "termA+termB" is the same as using "termA +termB".
There is one exception however: A dash (-) inside a word does not get interpreted like other operators, so you can safely search for "some-item-name" without the need for quotes.
The filter algorithm is also very forgiving and tries to make the best out of invalid input.

In case a searchTerm should apply to multiple different sources, it is recommended to concatenate them into a single haystack with newline (\n).
That way all sources are searched at once and it won't accidentally find strings beyond the boundary of one source.

The filter is case sensitive, so you have to take care of putting everything into lower case yourself, if that's what you need.
Links can be put into lower case without worry as they will still be matched correctly.

Example

API Reference

EvaluationResult
EvaluationResult is an enumeration of the possible return states of an evaluation.
lib.RESULT_OK: The evaluation worked without a problem.
lib.RESULT_INVALID_ARGUMENT_COUNT: There has been an operator with too little arguments.
lib.RESULT_INVALID_VALUE_COUNT: There where left over tokens that could not be matched.
lib.RESULT_INVALID_INPUT: The needle was either empty or did contain only operators. This result is only returned by Filter().

Filter

This is the main function of the library which combines everything into a simple and easy to use call.
The function fetches the parsedTokens for a needle from an internal cache, or generates them if they have not been cached yet.
Afterwards it calls Evaluate and returns the result. Unlike Evaluate it also recognizes if the input is empty and returns RESULT_INVALID_INPUT.

Tokenize

Converts the input string into an array of tokens that will be passed to Parse().

Parse

Brings the tokenized input into its reversed polish notation which can be cached and will be passed to Evaluate().

Evaluate

Applies the search term to the haystack and returns true if the expression is a match.
It also returns the evaluation result, which can be used to show the user some feedback in case the search term cannot be evaluated.

GetCachedTokens

Returns the parsedTokens for a needle from the cache if they are already stored, or nil otherwise.

SetCachedTokens

Stores the parsedTokens for a needle in the cache.

ClearCachedTokens

Clears all cached parsedTokens.

ABOUT THIS LISTING

This page describes LibTextFilter by sirinsidiator. The description and screenshots are the author's own, imported from their listing on ESOUI on 24 October 2026: https://www.esoui.com/downloads/info1311-LibTextFilter.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.0.0
  • 10.3.5
API VERSION

Built for ESO API version 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. v1.0.7 Latest 2 May 2025 · 10 KB via cdn.esoui.com · 0 downloads Download
    v1.0.7
    - added compatibility for console
    - added license information
    - migrated test suite to Taneth
    - updated API version for Seasons of the Worm Cult Part 1

    v1.0.6
    - added IsLibrary flag to manifest
    - updated API version for Elsweyr

    v1.0.5
    - removed LibStub dependency
    - switched to semantic versioning

    Off-site on cdn.esoui.com — no checksum, because we never held this file. Link checked by our review team on 25 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