For years addon authors have abused the debug methods d(), df() and CHAT_SYSTEM:AddMessage() to show messages in chat or even added text directly to the chat buffer, preventing other addons from interacting with the output. LibChatMessage offers an easy alternative that uses the same method as the…
For years addon authors have abused the debug methods d(), df() and CHAT_SYSTEM:AddMessage() to show messages in chat or even added text directly to the chat buffer, preventing other addons from interacting with the output. LibChatMessage offers an easy alternative that uses the same method as the vanilla UI to print system messages.
Features
Chat Messages
The main purpose of the library is to provide an easy API that can be used to print messages in chat. This is done via so called chat proxy objects. Each addon can create their own proxy and call the Print and Printf method (similar to d() and df()).
Addon Tag
The library will automatically prefix each message with a tag provided to each chat proxy instance by their addon. Users can choose if they want the tag to be the full addon name or a shortened string.
Time Prefix
The library can also print the current time in front of each chat message. This is disabled by default to avoid compatibility issues with other chat addons, but can be enabled via the settings explained below.
Chat History
Another feature of the library is to store all incoming chat messages and restore them again at UI load. This is also disabled by default to avoid compatibility problems (especially with pChat). Unlike with pChat the history is saved in raw form, meaning that any modifications to the message made by addons are not stored and instead applied when the messages are restored. This also means that information like the guild name is lost when the player leaves a guild and can lead to restored messages showing no or even a different guild name.
Custom Chat Links
Starting with version 1.2.0, the library offers a way for addons to send arbitrary data links in chat.
Known Issue/Drawback
- If you register a chat link, but do not handle it, an error will occur, if the user clicks it.
- Chat bubbles will show raw data. We can not modify them.
- In order to display custom links in the chat input box, the lib sets all types of markup as allowed. this means that the text shown in the box may look different from what is actually being sent or visible to users without the library. For example a single | (pipe) character won't show until the message is sent and using color markup will change the text color in the input field, but show up as raw text in the chat once sent.
Quick Start
Add LibChatMessage as a dependency to your addon manifest:
Afterwards you can create a chat proxy and print messages like so:
Settings
LibChatMessage offers several settings to allow players to control the look of the output. The settings can be changed via the "/chatmessage" slash command, or via the libraries API. Using the slash command with an invalid command will print the following message to chat:
Using a command without an argument will print the current state of the setting to chat.
API Reference
Create
Returns a new instance of ChatProxy with the given tags.
or
ChatProxy:SetTagColor
Sets the color of the message tag for the next printed message (resets afterwards). Can be either a hex string ("ff0000") or a ZO_ColorDef object. Returns the ChatProxy instance so the call can be chained as shown in the quick start example.
ChatProxy:Print
Method to a print regular messages to chat. The message will automatically be prefixed with the time and tag based on user preferences.
ChatProxy:Printf
Method to print a message formatted via string.format to chat. The message will automatically be prefixed with the time and tag based on user preferences.
ChatProxy:SetEnabled
Setter to turn this proxy off, so it no longer prints anything to chat when one of its methods is called. Can be used to easily enable or disable chat messages for an addon based on user preferences.
ClearChat
Removes all messages from all chat windows.
ClearHistory
Removes all stored messages from the chat history.
GetHistory
Returns the current chat history table.
SetTimePrefixEnabled
Sets the time prefix feature enabled or disabled. Disabled by default as it may cause problems with other chat addons that have similar features.
IsTimePrefixEnabled
Returns true if the time prefix feature is enabled.
SetRegularChatMessageTimePrefixEnabled
Sets the time prefix feature for player chat channels enabled or disabled. Enabled by default, but only counts if the time prefix feature itself is turned on.
IsRegularChatMessageTimePrefixEnabled
Returns true if the time prefix feature is enabled for player chat channels.
LibChatMessage.TIME_FORMATS
An array containing the time formats passed to os.date for the time prefix.
- LibChatMessage.TIME_FORMAT_AUTO = "[%X]" - uses locale dependent formatting
- LibChatMessage.TIME_FORMAT_12 = "[%I:%M:%S %p]" - 12h time format
- LibChatMessage.TIME_FORMAT_24 = "[%T]" - 24h time format (ISO 8601)
SetTimePrefixFormat
Sets the format for the time prefix feature. Can be either one contained in TIME_FORMATS, or a custom format string. Custom strings should be wrapped in brackets.
GetTimePrefixFormat
Returns the time prefix formatting string.
SetTagPrefixMode
Sets the mode used for the proxy tag for addon messages.
Available modes are:
- LibChatMessage.TAG_PREFIX_OFF - Disables showing a tag. The long tag will still be stored in the history in case it is enabled.
- LibChatMessage.TAG_PREFIX_LONG - Prints the long tag provided by an addon in front of the message
- LibChatMessage.TAG_PREFIX_SHORT - Prints the short tag provided by an addon in front of the message
GetTagPrefixMode
Returns the current message tag mode.
SetChatHistoryEnabled
Sets the chat history feature enabled or disabled on the next UI load. This feature is not compatible with pChat and disabled by default.
IsChatHistoryEnabled
Returns true if the message history will be enabled on the next UI load.
IsChatHistoryActive
Returns true if the message history is active right now.
SetChatHistoryMaxAge
Sets the maximum age for chat messages to be restored on UI load in seconds. Default is 3600s (= 1h).
GetChatHistoryMaxAge
Returns the maximum age for chat messages in the history.
RegisterCustomChatLink
Register a link type to be valid. Optional with a reformatter function.
All unregistered chat links will be change to an "unknown" link with all data stripped off upon receiving them from chat channel.
If someone is posting a chat link to someone, not having the addon it belongs to, a message is shown in the upper right corner instead of causing an error.
The reformatter has the following signature:
displayText - Text shown to the user
linkTyype - Your link type (YOUR_LINK_TYPE)
linkStyle - Built-in values: LINK_STYLE_BRACKETS, LINK_STYLE_DEFAULT (number)
data - remaining part of the chat link containing the data your provided. (string)
The reformatter function can be used to localize the displayText.
Your chat link must provide at least one data column.
After registering a link type, you MUST add a link click handler.
See https://wiki.esoui.com/How_to_create_custom_links.
Example
The value of the "unknown" link type can be found here:
LibChatMessage.UNKNOWN_LINK_TYPE
ABOUT THIS LISTING
This page describes LibChatMessage by sirinsidiator. The description and screenshots are the author's own, imported from their listing on ESOUI on 3 October 2026: https://www.esoui.com/downloads/info2382-LibChatMessage.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 version
12.0.0
API VERSION
Built for ESO API version 12.0.0. 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
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
v1.2.3Latest
9 Jun 2026 · 11 KB via cdn.esoui.com · 0 downloads Download
v1.2.3
- fixed error on XBox Play Anywhere edition
- fixed error when chat history is active on console
- fixed incorrect function being used in defaultReformatter
- updated for Seasons of the Worm Cult Part 2
v1.2.2
- added compatibility for console
- updated license information
- updated for Seasons of the Worm Cult Part 1
v1.2.1
- fixed error on chat history restore due to corrupted saved variable after a very long addon generated message was printed
- updated for Scions of Ithelia
v1.2.0
- added support for custom chat links (thanks votan)
- updated for Blackwood
v1.1.3
- fixed error when events are received before saved variables are loaded
v1.1.2
- updated for chat system changes in game version 5.3.5 (temporary workaround has been removed)
v1.1.1
- fixed error when an addon tries to print a message during initialization
v1.1.0
- added temporary workaround for chat formatters not working. See description for details.
- updated for Harrowstorm
v1.0.1
- added missing IsLibrary flag
Off-site on cdn.esoui.com —
no checksum, because we never held this file.
Link checked by our review team on 3 Oct 2026.
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.
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.