![]() |
The API is no longer being updated here until further notice. |
Hyperlinks are clickable (chat) links. They are implemented in FrameXML/ItemRef.lua. Note that for use in SendChatMessage() it can reject invalid entries, as the server may expect certain combinations of color, payload and text.
![]() |
If you are using the chat window or an in-game text editor, then | will be escaped.Try using \124 instead which is the ASCII code for the pipe character.
|
Format[]
Each hyperlink has the following format:
|cffxxxxxx|Htype:payload|h[text]|h|r
Text | Description |
---|---|
|cffxxxxxx |
The color code |
|H |
Begins the hyperlink |
type:payload |
The link type and any colon-delimited params |
|h |
Marks the end of the payload |
[text] |
Localized display text |
|h |
Ends the hyperlink |
|r |
Stops coloring |
Inspecting[]
- See also: ExtractHyperlinkString()
There are multiple ways to see the contents of a hyperlink:
- From the in-game chat window.
/dump "[Flash Heal]" > "|cff71d5ff|Hspell:2061:0|h[Flash Heal]|h|r"
- From an addon, when clicking a hyperlink in-game.
hooksecurefunc("SetItemRef", function(link, text)
print(link, text:gsub("|", "||"))
end)
> "spell:139:0", "|cff71d5ff|Hspell:139:0|h[Renew]|h|r"
Types[]
achievement[]
- See also: AchievementLink
achievement : achievementID : guid : completed : month : day : year : criteria1 : criteria2 : criteria3 : criteria4
guid
The player's GUID.completed
1 for earned, 0 for unearned achievements.month:day:year
Date the achievement was earned or 0:0:-1 if not earned.criteria1-4
32-bit bitmask fields for completed criteria, or 0:0:0:0 if not completed.
- Example:
"|cffffff00|Hachievement:10671:Player-1096-06DF65C1:1:2:16:17:4294967295:4294967295:4294967295:4294967295|h[Level 110]|h|r"
"|cffffff00|Hachievement:12544:Player-1096-06DF65C1:0:0:0:-1:0:0:0:0|h[Level 120]|h|r"
addon[]
Generic link type for use by addons. Links with an "addon" type are local-only and cannot be sent in chat messages, and can be processed by addons by securely hooking SetItemRef()
.
addon : name : data
name
Arbitrary addon data.data
Arbitrary colon-delimited addon data segments.
- Example:
"|cff71d5ff|Haddon:SuperAuras:some:data:1234|h[SuperAuras: The Link!]|h|r"
hooksecurefunc("SetItemRef", function(link)
local linkType, addon, param1 = strsplit(":", link)
if linkType == "addon" and addon == "SomeAddon" then
if param1 == "foo" then
print(link)
end
end
end)
print("|cFFFFFF00|Haddon:SomeAddon:foo|h[Some Clickable Message]|h|r")
api[]
- See also: APILink
Shows API Documentation from the /api command.
api : type : name : [parentName]
- Example:
"|cffff55dd|Hapi:system:MapUI:|hMapUI|h|r"
"|cff55ddff|Hapi:function:GetMapInfo:MapUI|hC_Map.GetMapInfo()|h|r"
"|cff77ff22|Hapi:event:ZoneChanged:MapUI|hEvent.MapUI.ZoneChanged|h|r"
"|cff55ffdd|Hapi:table:UiMapDetails:MapUI|hUiMapDetails|h|r"
azessence[]
Azerite Essence link
azessence : essenceID : rank
- Example:
"|cffa335ee|Hazessence:12:3|h[The Crucible of Flame]|h|r"
- See also: C_AzeriteEssence.GetEssenceInfo()
battlepet[]
battlepet : speciesID : level : breedQuality : maxHealth : [power] : [speed] : [battlePetID] : [displayID]
- Example:
"|cff0070dd|Hbattlepet:202:25:3:1546:289:260:BattlePet-0-00000338F951:16189|h[Baby Blizzard Bear]|h|r"
- Barebone example:
/run SendChatMessage("\124cff1eff00\124Hbattlepet:202:1:2:1:::BattlePet--:\124h[Baby Blizzard Bear]\124h\124r")
- See also: BattlePetSpeciesID
battlePetAbil[]
battlePetAbil : abilityID : maxHealth : power : speed
- Example:
"|cff4e96f7|HbattlePetAbil:348:1435:267:240|hBash|h|r"
calendarEvent[]
calendarEvent : monthOffset : monthDay : index
- Example:
"|HcalendarEvent:0:12:1|hSpring Balloon Festival|h"
- See also: C_Calendar.GetDayEvent()
channel[]
Opens the chat window to a specific /channel.
channel : channelType : [channelID]
- Example:
"|Hchannel:channel:2|h[2. Trade - City]|h"
"|Hchannel:PARTY|h[Party]|h"
clubFinder[]
Guild Finder (8.2.5) invite link.
clubFinder : clubFinderId
- Example:
"|cffffd100|HclubFinder:ClubFinder-1-19160-1598-53720920|h[Guild: Happy Leveling]|h|r"
- See also: GetClubFinderLink()
clubTicket[]
WoW communities & Blizzard Groups invite link.
clubTicket : ticketId
- Example:
"|cffffd100|HclubTicket:oxPbMfv2R|h[Join: test]|h|r"
- See also: GetClubTicketLink()
community[]
Community link in Quick Join requests.
community : clubId
conduit[]
Conduit link
conduit : id : [rank]
- Example:
"|cff71d5ff|Hconduit:5:1|h[Stalwart Guardian]|h|r"
- See also: C_Soulbinds.GetConduitHyperlink()
currency[]
currency : id : [amount]
- Example:
"|cffffffff|Hcurrency:1744|h[Corrupted Memento]|h|r"
- See also: C_CurrencyInfo.GetCurrencyLink()
death[]
Opens the Death recap overview.
death : recapID
- Example:
"|Hdeath:1|h[You died.]|h"
dungeonScore[]
Shows Mythic+ stats for a player in the tooltip.
- Example:
"|cffffd100|HdungeonScore:2723:Player-1403-068056BB:Numedain:6:278:60:124:2723:3:381:1:15:382:1:17:392:1:18:391:1:18:380:1:17:375:1:18:376:0:18:377:1:17:378:1:19:379:1:16|h[Mythic+ Rating]|h|r"
- See also DisplayDungeonScoreLink()
1: 2723 -- score
2: Player-1403-068056BB -- guid
3: Numedain -- name
4: 6 -- classId: Death Knight
5: 278 -- itemLevel
6: 60 -- playerLevel
7: 124 -- runsThisSeason
8: 2723 -- bestSeasonScore
9: 3 -- bestSeasonNumber
10: 381 -- mapChallengeModeID: Spires of Ascension
11: 1 -- completedInTime
12: 15 -- keystoneLevel
13: 382 -- Theater of Pain
14: 1
15: 17
16: 392 -- Tazavesh: So'leah's Gambit
17: 1
18: 18
19: 391 -- Tazavesh: Streets of Wonder
20: 1
21: 18
22: 380 -- Sanguine Depths
23: 1
24: 17
25: 375 -- Mists of Tirna Scithe
26: 1
27: 18
28: 376 -- The Necrotic Wake
29: 0
30: 18
31: 377 -- De Other Side
32: 1
33: 17
34: 378 -- Halls of Atonement
35: 1
36: 19
37: 379 -- Plaguefall
38: 1
39: 16
enchant[]
Opens the Tradeskill window for a recipe.
enchant : spellID
- Example:
"|cffffd000|Henchant:162206|h[Draenor Engineering: World Shrinker]|h|r"
garrfollower[]
garrfollower : followerID : quality : level : itemLevel : ability1 : ability2 : ability3 : ability4 : trait1 : trait2 : trait3 : trait4 : spec1
- Example:
"|cffa335ee|Hgarrfollower:856:4:110:900:457:777:0:0:684:758:0:0:354|h[Calia Menethil]|h|r"
garrfollowerability[]
garrfollowerability : abilityID
- Example:
"|cff4e96f7|Hgarrfollowerability:354|h[Discipline]|h|r"
"|cff4e96f7|Hgarrfollowerability:457|h[Holy Nova]|h|r"
garrmission[]
garrmission : missionID : missionDBID
- Example:
"|cffffff00|Hgarrmission:1610:000000000238f82d|h[Withered Straining]|h|r"
instancelock[]
Opens the /raidinfo list.
instancelock : guid : instanceID : difficulty : defeatedEncounters
guid
The player's GUID.instanceID
The instance's InstanceIDdifficulty
The instance's DifficultyIDdefeatedEncounters
Bitfield indicating the encounters that have been defeated. e.g. 7 means that the first 3 encounters have been cleared.
- Example:
"|cffff8000|Hinstancelock:Player-3296-000957C8:543:2:4|h[Hellfire Citadel: Ramparts]|h|r"
item[]
- Main article: ItemLink
item : itemString
- Example:
"|cffffffff|Hitem:2592::::::::::::::::::|h[Wool Cloth]|h|r"
journal[]
Opens the Adventure Guide.
journal : journalType : journalID : difficulty
journalType
0=Instance, 1=Encounter, 2=Section.journalID
InstanceID, EncounterID, or SectionID.difficulty
DifficultyID of the instance.
- Example:
"|cff66bbff|Hjournal:0:1031:14|h[Uldir]|h|r"
"|cff66bbff|Hjournal:1:2147:14|h[G'huun]|h|r"
"|cff66bbff|Hjournal:2:18068:14|h[Titan Spark]|h|r"
- See also: EJ_HandleLinkPath()
keystone[]
Used for [Mythic Keystone].
keystone : itemID : challengeModeID : level : affix1 : affix2 : affix3 : affix4
- Example:
"|cffa335ee|Hkeystone:180653:381:2:10:0:0:0|h[Keystone: Spires of Ascension (2)]|h|r"
"|cffa335ee|Hkeystone:180653:375:15:10:8:12:121|h[Keystone: Mists of Tirna Scithe (15)]|h|r"
"|cffa335ee|Hkeystone:180653:379:18:10:8:12:121|h[Keystone: Plaguefall (18)]|h|r"
- See also: MapChallengeMode.db2, KeystoneAffix.db2
[138019] = "Mythic Keystone", -- Legion Keystone
[151086] = "Mythic Invitational Keystone", -- Tournament Stone
[158923] = "Mythic Keystone", -- BFA Keystone
[180653] = "Mythic Keystone", -- SL & DF Keystone
[187786] = "Timeworn Keystone", -- Legion Timestone
levelup[]
levelup : level : levelUpType : [petName]
- Example:
"|cffFF4E00|Hlevelup:2:LEVEL_UP_TYPE_CHARACTER|h[Level 2]|h|r"
"|cffFF4E00|Hlevelup:2:LEVEL_UP_TYPE_PET:Bear|h[Level 2]|h|r"
lootHistory[]
Opens the /loot window.
lootHistory : rollID
mawpower[]
mawpower : id
- Example:
"|cff71d5ff|Hmawpower:358|h[Icy Heartcrust]|h|r"
- See also: MawPower.db2
outfit[]
Shows a transmog in the dressing room.
outfit : payload
- Example:
[[|cffff80ff|Houtfit:"a;"aA%ib"a>!.h&Ul"uH"a8"v""a@"v<"a"!!!!5o!!!!!!!!!|h[|T1598183:13:13:-1:0|tOutfit]|h|r]]
Decoding the payload |
---|
-- tries to do partly what C_TransmogCollection.GetItemTransmogInfoListFromOutfitHyperlink() already does
-- it doesn't map to the proper inventorySlotIDs and appearanceID/secondaryAppearanceID/illusionID keys
-- there is no practical reason to actually do this
--local key = [[!"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{]]
local keySize = 91
local asciiOffset = 33
local groupSize = 3
local function ParseOutfitLink(link)
local payload = link:match("|Houtfit:(.-)|h")
local t = {}
for i = 1, #payload, groupSize do
local group = payload:sub(i, i+groupSize-1)
local sum = 0
for j = 1, #group do
local a = group:byte(j) - asciiOffset
local b = math.pow(keySize, groupSize-j)
sum = sum + a*b
end
table.insert(t, sum)
end
return t
end
local info = ParseOutfitLink([[|cffff80ff|Houtfit:"a;"aA%ib"a>!.h&Ul"uH"a8"v""a@"v<"a"!!!!5o!!!!!!!!!|h[|T1598183:13:13:-1:0|tOutfit]|h|r]])
DevTools_Dump(info)
--[[
[1] = 14131, -- 1: INVSLOT_HEAD Cowl of Absolution
[2] = 14137, -- 13: INVSLOT_SHOULDER Mantle of Absolution
[3] = 39741, -- 15: INVSLOT_BACK Cloak of the Darkmoon Faire
[4] = 14134, -- 5: INVSLOT_CHEST Vestments of Absolution
[5] = 1254, -- 4: INVSLOT_BODY Stylish Black Shirt
[6] = 35447, -- 19: INVSLOT_TABARD Theramore Tabard
[7] = 15964, -- 9: INVSLOT_WRIST Cuffs of Absolution
[8] = 14128, -- 10: INVSLOT_HAND Gloves of Absolution
[9] = 16017, -- 6: INVSLOT_WAIST Belt of Absolution
[10] = 14136, -- 7: INVSLOT_LEGS Breeches of Absolution
[11] = 16043, -- 8: INVSLOT_FEET Boots of Absolution
[12] = 14106, -- 16: INVSLOT_MAINHAND appearanceID Staff of the Redeemer
[13] = 0, -- 17: INVSLOT_OFFHAND appearanceID
[14] = 1898, -- 16: INVSLOT_MAINHAND illusionID Illusion: Lifestealing
[15] = 0, -- 17: INVSLOT_OFFHAND illusionID
[16] = 0, -- 16: INVSLOT_MAINHAND secondaryAppearanceID
[17] = 0 -- 3: INVSLOT_SHOULDER secondaryAppearanceID
]]
|
This can also be in a non-hyperlink format.
/outfit v1 14131,14137,0,39741,14134,1254,46212,15964,14128,16017,14136,16043,14106,-1,1898,0,0
- See also: C_TransmogCollection.GetItemTransmogInfoListFromOutfitHyperlink(), TransmogUtil.ParseOutfitSlashCommand()
player[]
- Left-click: starts a whisper message
- Right-click: opens the player context menu
- Shift-click: sends a /who query
player : name : [lineID] : [chatType] : [chatTarget]
lineID
Message ID for reporting.
- Example:
"|Hplayer:Fadeshift|h[Fadeshift]|h"
"|Hplayer:Aquadoll-MoonGuard|h[Aquadoll]|h"
"|Hplayer:Ketho-Anasterian:8:PARTY:|h[|cfffefefeKetho|r]|h"
"|Hplayer:Kilastra-DefiasBrotherhood:90:CHANNEL:2|h[|cff8686ecKilastra|r]|h"
- See also: GetPlayerLink()
playerCommunity[]
playerCommunity : name : communityClubID : communityStreamID : communityEpoch : communityPosition
- Example:
"|HplayerCommunity:Ketho-Anasterian:333281:1:1557794365297000:5886997898769|h[|cfffefefeKetho|r]|h"
BNplayer[]
Battle.net friend links.
BNplayer : name : bnetIDAccount : lineID : chatType : chatTarget
BNplayerCommunity[]
BNplayerCommunity : name : bnetIDAccount : communityClubID : communityStreamID : communityEpoch : communityPosition
quest[]
quest : questID : questLevel : unknown1 : unknown2 : unknown3
- Example:
"|cffffff00|Hquest:53370:-1:110:120:3|h[Hour of Reckoning]|h|r"
"|cffff8040|Hquest:40746:113:110:255:0|h[One of the People]|h|r"
- See also: QuestLink
[]
Opens the Twitter /share window for an achievement.
shareachieve : achievementID : earned
- Example:
"|cffffd200|Hshareachieve:964:1|h|TInterface\ChatFrame\UI-ChatIcon-Share:18:18|t|h|r"
[]
Twitter item link.
shareitem : itemLink : earned
- Example:
"|cffffd200|Hshareitem:151428::::::::20:257:512:1:1:4068:20::::1|h|TInterface\ChatFrame\UI-ChatIcon-Share:18:18|t|h|r"
[]
Twitter screenshot link.
sharess : screenshotIndex
screenshotIndex
: index of the screenshot to autofill the Tweet with, counted from last login.
- Example:
"|cffffd200|Hsharess:1|h|TInterface\ChatFrame\UI-ChatIcon-Share:18:18|t|h|r"
spell[]
spell : spellId : glyphId : [event]
- Example:
"|cff71d5ff|Hspell:2096:0|h[Mind Vision]|h|r"
"|Hspell:589:0:SPELL_DAMAGE|hShadow Word: Pain|h"
(as printed in Blizzard_CombatLog)- See also: GetSpellLink()
storecategory[]
Opens the In-Game Store.
storecategory : category
- Example:
"|cffffd000|Hstorecategory:games|h[Click To Upgrade]|h|r"
talent[]
talent : talentID
- Example:
"|cff71d5ff|Htalent:21754|h[Circle of Healing]|h|r"
- See also: GetTalentInfoByID()
talent : talentID : points
- Note that -1 = 0 points, 0 = 1 point, 1 = 2 points, etc.
- Example:
"|cff4e96f7|Htalent:406:1|h[Improved Renew]|h|r"
talentbuild[]
Opens the Talent Tree UI with a read-only view of the linked loadout.
talentbuild : specializationID : level : talentLoadoutImportString
specializationID
The loadout's SpecializationID.level
The loadout's level.talentLoadoutImportString
The loadout import string.
- Example:
"|cffa330c9|Htalentbuild:577:70:BEkAAAAAAAAAAAAAAAAAAAAAAIBkQKRSaJJJSEIAAAAAAAaJJQLFSSKSi0QRSSSSSA|h[Talents: Havoc Demon Hunter]|h|r"
- See also: Dragonflight Talent System
trade[]
Shows the tradeskill window (from another player).
trade : guid : spellID : skillLineID
guid
The player's GUID.spellID
The tradeskill's Spell ID.skillLineID
The TradeSkillLineID.
- Example:
"|cffffd000|Htrade:Player-3296-000957C8:195128:185|h[Cooking]|h|r"
- See also: TradeSkillLink
transmogappearance[]
Shows the transmog item in the Appearances tab.
transmogappearance : id
- Example:
|cffff80ff|Htransmogappearance:112825|h[Staff of the Penitent]|h|r
transmogillusion[]
Previews a weapon enchant in the Dressing room.
transmogillusion : sourceID
- Example:
"|cffff80ff|Htransmogillusion:5862|h[Titanguard]|h|r"
- See also: C_TransmogCollection.GetIllusionSourceInfo()
transmogset[]
Shows the transmog set in the Appearances tab.
transmogset : setID
- Example:
"|cffff80ff|Htransmogset:1414|h[Fierce Gladiator's Satin Armor (Gladiator)]|h|r"
- See also: C_TransmogSets.GetSetInfo()
unit[]
Shows the unit tooltip. Opens the combat log context menu on right-click.
unit : guid : [name]
- Example:
"|Hunit:Creature-0-2083-0-7-299-00005A0F91:Young Wolf|hYoung Wolf|h"
Implemented in Blizzard_CombatLog.lua
urlIndex[]
Opens a URL in the default web browser.
urlIndex : index
- Example:
"|HurlIndex:25|h|cff006995Frequently Asked Questions|r|h"
worldmap[]
Opens the World Map to display a pinned waypoint.
worldmap : uiMapID : x : y
uiMapID
The UiMapID for the waypoint.x
The X coordinate of the waypoint, multiplied by 10000.y
The Y coordinate of the waypoint, multiplied by 10000.
- Example:
"|cffffff00|Hworldmap:84:7222:2550|h[|A:Waypoint-MapPin-ChatIcon:13:13:0:0|a Map Pin Location]|h|r"
- enUS globalstring:
MAP_PIN_HYPERLINK = "|A:Waypoint-MapPin-ChatIcon:13:13:0:0|a Map Pin Location"
- See also: C_Map.SetUserWaypoint()
Note[]
Any changes to the hyperlink's color, image or text will prevent it from being sent over SendChatMessage. The only changes allowed are map and coordinates.
See also[]
Patch changes[]
Patch 10.1.0 (2023-05-02): Added the addon and talentbuild link types.
Patch 7.0.3 (2016-07-19): Unused delimited segments can be empty rather than 0, e.g.
":::"
instead of":0:0:0"