v1.0.11
What's new
Changelog
[1.0.11] - 2026-08-25
Names that had gone missing while the search was being made cheap, and the places it was never going to reach.
- Windows are looked at the moment they open, instead of waiting for the next sweep of the interface. Making the background search idle was the right fix for the processor cost, but it left anything short-lived unrenamed: a right-click menu, an inspect window or an achievement comparison is opened, read and closed long before a background sweep reaches it. Opening a window is now its own signal, and only that window is looked at, which is instant.
- Inspecting someone waits on the server, so those windows are looked at again once the data lands. "Talents - Name" and the achievement comparison header were both filled in after the window appeared.
- A name already on screen when you give it an alias is renamed. The search skips text it has already read, which is what makes it cheap, but that verdict was being kept after the aliases changed, so a name sitting in an open window stayed as it was for as long as the window stayed open.
- The real name on the tooltip is real again. The grey "Really:" line is there to show who someone actually is, and the tooltip sweep was renaming it along with everything else, so it read "Really: Alias".
- Names in the status text at the top of the screen are renamed: "Following Name" and everything else the client puts there.
- A unit frame examined a moment before its unit was ready is looked at again rather than written off for the session.
- Each slice of the search is sized by timing it rather than by a fixed count of frames, so it takes the same small share of a frame on any machine, and a slower computer takes a smaller slice.
[1.0.10] - 2026-08-24
- Frames the client marks off-limits to addons are left alone. Any method call on one throws, so it has to be the first thing asked about a frame, and it was being asked third. Forty of those in a row tripped the safety cut-out and switched the name search off.
[1.0.9] - 2026-08-24
The retail frame rate, properly this time.
- The frame search no longer uses EnumerateFrames. Handed a frame, EnumerateFrames searches the client's whole frame list for it before returning the next one, so visiting every frame is quadratic. Measured on a loaded retail interface it was costing 570 ms of every second, against 36 ms for all the work it was feeding.
- Frames form a tree, so the search walks the tree: take a frame off a stack, look at it, push its children. Every step is cheap and a pass is linear in the number of frames. New frames appear in the tree by themselves, so nothing needs to be told about them.
[1.0.8] - 2026-08-24
Fixes the retail frame rate. This was the whole of it.
- GetFrameStrata() returns a "secret" string on retail, and comparing one throws. That comparison ran once per frame during the frame search, so an exception was raised and caught for every frame in the interface, several thousand times a second. Timing showed 890 ms of every second going into it, against 5 ms for all the actual work.
- The safety cut-out now stops the frame search itself, not only the text matching, so a fault like that can no longer keep costing anything.
[1.0.7] - 2026-08-24
Fixes the retail frame rate properly.
- On retail, IsVisible() can return a "secret" boolean, and merely testing one throws. That happened inside the guard wrapped around every frame, so an exception was being raised and caught for every frame on screen, many thousands of times a second - invisible, and by far the largest cost this addon has ever had. Every predicate the client answers is now checked before it is tested.
- If the frame search ever fails repeatedly again it switches itself off and says so, rather than paying that price silently.
[1.0.6] - 2026-08-24
Much cheaper searching, which is what a large retail interface needs. A piece of text is now rejected without building a lowercased copy of it first, text that has not changed since the last look is skipped outright, and the two safety wrappers around every text read are gone. Nearly every string in an interface contains no name at all, and doing that work on each of them, thousands of times a second, was the cost.
Nothing runs at all until you have at least one alias. The frame search was walking the whole interface even with none set, which on a large retail interface is the most expensive thing the addon could do for no possible benefit.
/alias rescanand/alias profileno longer walk every frame in one go, which could trip the client's "script ran too long" watchdog on retail./alias profilereports how many text updates reach the addon each second, and what they cost.
[1.0.5] - 2026-08-24
Fixes a severe frame rate drop on retail.
- Unit frames are no longer watched wholesale. Every text a unit frame drew was hooked - its health, its power, its level - and retail rewrites those every single frame, so thousands of pointless calls a second went into looking for names in numbers. Only the text actually showing the name is watched now; nothing is lost, because the general search still claims any text an aliased name turns up in.
- Text with no letter in it never reaches the matching engine at all, and text already known to need no change is skipped outright.
- Removed two pcalls from the path that runs on every text update.
[1.0.4] - 2026-08-24
Much lower idle cost.
- The name search now goes quiet when there is nothing to find. Each pass that turns up nothing doubles the wait before the next, up to half a minute, instead of sweeping the interface every second forever. Anything suggesting the interface has changed - a new alias, a zone change, a roster update, a nameplate appearing - puts it straight back to work. Settled, that is roughly a tenth of the work it used to do.
- Unit frame rescans skip entirely when no new frames have been spawned, and run every five seconds rather than every two.
/alias profilereports the interval the scan has currently backed off to, so the idle cost can be seen rather than guessed at.
[1.0.3] - 2026-08-24
- A member whose name is also a guild rank or the guild's own name is now renamed everywhere: unit frames, right-click menus, the roster list and the member detail panel. Guild ranks and guild names no longer stop a name being replaced at all - which turned out to hide the member far more often than it protected the rank. Rank columns are protected by knowing which column they are instead, which works whichever way the collision falls.
- A guild tag in angle brackets is left alone everywhere, including when a nameplate has appended it to the name in the same piece of text. Plater writes "Secroma<newline><Secroma>" as one string, so a rule that only recognised a whole string as a guild tag never fired on it.
- ThreatPlates nameplates keep the name and the line below it apart, so a guild named after a player no longer shows that player's alias on the second line. It writes no angle brackets, so the two lines are told apart by which object they are rather than by what they say.
[1.0.2] - 2026-08-23
- Fixed a flood of errors on retail. Newer clients mark some strings as "secret": an addon may hold one but must not compare it or match against it, and doing so throws. Every place Alias reads text off the screen or a name from the game now checks first and leaves secret values alone. Nothing else changes on the classic flavours, which have no such values.
[1.0.1] - 2026-08-23
A guild member whose name is also a guild rank, or the guild's own name, is renamed properly in the roster while the rank column beside them is left alone. Nothing about a piece of text says which of the two it is, so the roster is read by column instead of by matching text.
Alias's own chat messages keep real names: "Kevin is now shown as Kevinito", not the alias twice. Suppressing the chat wrapper was not enough, because the finished line could still be claimed afterwards as ordinary on-screen text; the addon's output now carries an invisible marker that every mechanism honours.
Guild ranks and guild names are left alone. A character aliased "Officer" was rewriting the rank column of every officer in the guild. Anything in angle brackets is treated as a guild tag too. This only affects matching by text: where the unit is known, the name is still replaced.
[1.0.0] - 2026-08-23
First release.
Rename any player character. The alias replaces their real name everywhere your interface shows it, for you only. Nothing is sent to the server or to other players.
Naming someone
- Right-click a player on a unit frame, in chat, in the guild roster or on the battleground scoreboard and pick Give Alias. Offline guild members work too, where the game opens no menu of its own.
- Or
/alias add <name[-realm]> <alias>,/alias target <alias>, or the options panel, which lists every alias with both names side by side.
Where aliases show
- Chat: senders, whisper headers, system messages, and names inside a message.
- Unit frames: target, focus, party, raid, boss and arena, plus nameplates.
- Guild roster, battleground scoreboards, who list, friends list, group finder, inspect, right-click menus and tooltips.
It works with your interface, not just Blizzard's
Alias carries no list of supported addons. It finds the names itself, so ElvUI, VuhDo, Grid2, Cell, Shadowed Unit Frames, Plater, ThreatPlates, Spy, Details! and Recount are covered without addon-specific code, and so should be whatever you install next. Tooltips built by other addons are covered as well.
It never lies to your other addons
Only what is drawn on screen is changed. The game's name functions are
never replaced, so your damage meter still records real names, kill-on-sight
lists still match real players, anything that syncs keeps sending real
names, and /invite still works.
Clicking and typing
Player links in chat keep the real character underneath, so clicking a
renamed name still whispers, invites and targets the right person. Aliases
are also accepted by /w, /invite, /kick, /promote, /demote,
/ginvite, /gkick, /gpromote, /gdemote, /gleader, /friend,
/removefriend, /ignore and /unignore.
Knowing who someone really is
Hovering a unit adds a grey Really: Name-Realm line to the tooltip.
/alias who <alias> answers the same question from chat.
Options
Every surface can be switched off on its own, and aliases can be tinted in
gold or any colour you pick. /alias profile reports what the name
searching costs on your machine, in milliseconds.
This mod has no additional files

