Codex of Azerothian Expressions
A book of emotes. A place for your character's voice.
Supports World of Warcraft Retail & Forever
Codex of Azerothian Expressions brings emote discovery and roleplay actions into an illustrated fantasy book. Browse the catalog, read an expression's details, keep your favorites close and create personal expressions without memorizing every slash command.
Its two-page layout combines category tabs, a searchable two-column list and a dedicated detail or editor page. From a simple greeting to a custom roleplay line, you choose what to perform and when.
Supported clients: World of Warcraft Retail and World of Warcraft Forever. Both use the same addon package and familiar book interface, with separate saved settings and personal collections in each client installation.
Main Features
- An illustrated book with a built-in reference catalog of 257 standard emote tokens.
- Category tabs, two-column browsing and up to 18 entries per page.
- Search by names, commands, aliases, descriptions and catalog properties.
- Detail pages with artwork, commands and available reference information.
- Player-triggered Perform actions, Favorites and Recent expressions.
- Custom expressions combining a standard emote, personal text or both.
- Text placeholders, previews, selectable icons and optional macro export.
- Saved settings, a movable opening button and adjustable book scale.
- Built-in catalog validation and a copyable diagnostic log.
- One shared codebase for Retail and Forever, with no external addon libraries required.
Browse the Book
Choose from All, Greetings, Reactions, Emotions, Social, Actions, Taunts, Voice and Special. Favorites, Recent and Custom give your personal collection its own views. Scroll the mouse wheel over the list to turn pages.
The catalog starts with its English reference entries and reads emote tokens and localized command aliases supplied by the current client. Additional client tokens can appear with fallback artwork and descriptions. A listed entry is a reference, not a guarantee that every client or character can perform it.
Search supports multiple terms, with every term required to match. A nonblank search in a standard category searches the complete standard catalog; an empty or spaces-only search preserves that category. Favorites, Recent and Custom searches stay inside their own collections.
Details and Controls
Inspect an entry's artwork, primary command, aliases, category and description. Where catalog information is available, its properties also describe animation, voice, targeting, faction or other restrictions. Actual animation, sound and availability remain controlled by the game.
- Left-click a list entry: select and perform it.
- Right-click: select it and read its details without performing.
- Shift + left-click: add or remove a Favorite.
- Mouse wheel: move between list pages.
- Perform: execute the selected expression from its detail page.
The Copy button selects the read-only command text; press Ctrl+C to copy it. It does not write automatically to your system clipboard. A fallback command shown for browsing is not proof that the client provides an executable macro alias.
Favorites and Recent Expressions
Keep frequently used standard or custom expressions in Favorites and return to expressions used through the addon in Recent. These collections are saved account-wide within the selected client installation.
Retail and Forever keep their own saved data. The addon does not automatically synchronize collections, settings or custom expressions between clients.
Create Your Own Expressions
Open Custom, choose New and name your expression. Select one of three modes:
- Standard Emote Only: use a chosen base emote.
- Custom Text Only: send your own text.
- Standard Emote + Custom Text: combine the two actions.
Choose a base emote when needed, select an icon and use Save Expression to store your work. Existing expressions can be edited, duplicated or deleted. Duplicate copies the saved expression, so save edits first if you want them included.
Preview displays the resolved text. Test actually attempts to perform the expression; it is not a silent preview. Unsaved drafts survive ordinary closing and reopening in the same UI session, but selecting another entry, choosing New, reloading or logging out can replace or discard them.
Text Channels and Placeholders
Custom text supports Emote, Say, Yell, Party and Raid, with Emote as the default. Group membership and the client's current chat restrictions determine whether an action is available.
{target}- your selected target, when readable.{player}- your character's name.{race}- your character's race.{class}- your character's class.{zone}- your current zone.
For example, enter offers a respectful nod to {target}. as Emote text. WoW supplies the speaker's name for this channel. Unavailable target names use neutral wording; protected information is not intentionally exposed.
Text must fit a single chat line. The addon validates the exact resolved output against the addon's 255-byte limit, including spaces; some characters occupy more than one byte. Blank text, line breaks and overlong output are rejected instead of silently truncated.
For combined expressions, the game can still refuse one action after the other has occurred. A preview or a successful local request does not guarantee delivery.
Icons and Optional Macro Export
Pick an icon for each custom expression from the available bundled artwork and client-provided icon sources. Saving a new choice is explicit; opening the picker does not rewrite your saved expressions. The icon picker handles numeric icon IDs and texture filenames supplied by the client.
Custom expressions do not consume WoW macro slots unless you choose Export Macro. Export creates a new account-wide macro; it does not overwrite your existing macros or automatically update them when an expression changes.
- Creation requires a free account-wide macro slot and is refused during combat.
- The generated body must fit the addon's 255-byte macro limit.
- A standard-emote export requires an alias actually supplied by the current client. Missing aliases stop the complete export, including combined expressions.
- Exported
{target}becomes WoW's%t. Other placeholders are resolved when exporting rather than when the macro is later clicked. - Numeric icon IDs are retained. Addon texture paths use a question-mark fallback for the exported macro without changing the expression's internal icon.
Export confirmation is enabled by default. Review the result in WoW's macro window and activate it yourself. The client's execution rules still apply.
Appearance and Settings
The illustrated book scales uniformly from 75% to 120%, preserving its layout and artwork. Window position and scale are saved. The circular opening button can be moved freely while unlocked; it is not attached to the minimap rim.
- Left-click the opening button: open or close the book.
- Right-click: open the addon settings.
- Drag while unlocked: reposition the button.
Settings include General, Appearance, Minimap Button, Custom Emotes and Debug. Configure visibility, button locking and scale, remembered views and searches, and defaults for new expressions. Changing defaults does not rewrite existing expressions.
Reset Window restores book position and scale. Reset All Settings is a separate, destructive action that clears settings, Favorites, Recent and custom expressions after confirmation. It is not a routine installation or troubleshooting step.
Getting Started and Updating
- Download the addon package and select the Retail or Forever installation where you want to use it.
- Close that client and extract the complete CodexOfAzerothianExpressions folder into its Interface/AddOns folder.
- Check that CodexOfAzerothianExpressions.toc is directly inside the addon folder, without another enclosing project or version folder.
- Start the game, enable the addon and open the book with /cae or its circular button.
- Right-click an entry to inspect it, perform a greeting when appropriate, then explore Favorites and Custom.
Retail uses its _retail_ client folder. For Forever, use the actual Forever installation; do not substitute a Classic Era folder. No external library or development tool is needed.
Before updating, close the game and back up both the complete addon folder and that client's addon SavedVariables. Keep backups outside AddOns, replace the complete addon folder and leave saved data in place for a normal update.
If you need to return to an earlier build, first preserve your current addon and saved-data files, then restore the matching backup. Restoring older saved data changes the active collection to that older state. Exported WoW macros are separate and are not removed by an addon-data rollback. Keep Retail and Forever backups separate.
Slash Commands
/cae,/codexor/codexae- open or close the book./cae options- open addon settings./cae favorites- open Favorites./cae recent- open Recent./cae custom- open the custom-expression editor./cae reset- restore book position and scale only./cae validate- check the catalog and client mappings./cae debug- open the Debug settings page./cae help- display command help.
Retail and Forever Compatibility
Codex of Azerothian Expressions supports World of Warcraft Retail and World of Warcraft Forever. One addon folder and one shared package provide the illustrated book, catalog and custom-expression tools for both clients. The interface is English; localized aliases and other client-provided information follow the client where available.
Emotes, chat channels and macros remain subject to Blizzard's restrictions, including combat, group context and protected information. Reference metadata does not override those rules. Forever is not treated as Classic Era, and support for other WoW editions is not implied.
The addon includes data-integrity guards for conflicting custom IDs and unsafe new-ID allocation while retaining the existing saved-data format. These guards preserve ambiguous data for review rather than guessing a repair; they cannot recover information already lost in an older build.
Debug and Feedback
If something goes wrong, open /cae debug and enable Enable debug logging. Reproduce the issue once when appropriate, then use Validate Catalog and Database Summary to gather useful details. Select and copy the log before reloading or exiting; it is limited to the current session.
A useful report includes:
- Retail or Forever, the actual client build and game language.
- The addon file used and its version.
- The selected emote or custom expression's mode and channel.
- Exact steps, expected behavior and what actually happened.
- Combat and group context, plus any Lua error or blocked-action message.
- Relevant Debug output; for visual issues, the UI scale and a screenshot.
Review copied logs and screenshots for private information before sharing them through this project's feedback channel. If startup reports a saved-data conflict, preserve the backup and exact message instead of using Reset All Settings.
Support ArcAnvil
CoAE is free to use. If you would like to support continued development and testing, voluntary support is welcome on Patreon.
Open the book. Find your expression. Make it your own.
Created by ArcAnvil.
All Rights Reserved.

