Wowpedia

We have moved to Warcraft Wiki. Click here for information and the new URL.

READ MORE

Wowpedia
Tag: WoW API docs
Tag: WoW API docs
(45 intermediate revisions by 4 users not shown)
Line 2: Line 2:
 
Many UI elements that display text on the screen support a special escape sequences starting with the | pipe character.
 
Many UI elements that display text on the screen support a special escape sequences starting with the | pipe character.
   
{{warning}} If you are using the chat window or an in-game text editor, then <code>"|"</code> will most likely be replaced with <code>"||"</code>. Try using <code>"\124"</code> instead of <code>"|"</code>. 124 is the ASCII code escape for the pipe character, and will work regardless of what the editor is trying to do.
+
{{warning}} If you are using the chat window or an in-game text editor, then <code>"|"</code> will most likely be escaped. Try using <code>"\124"</code> instead which is the ASCII code for the pipe character.
   
 
== Escape Sequences ==
 
== Escape Sequences ==
 
=== Coloring ===
 
=== Coloring ===
 
|cAA<font color=FF0000>RR</font><font color=00FF00>GG</font><font color=0000FF>BB</font>text|r
 
|cAA<font color=FF0000>RR</font><font color=00FF00>GG</font><font color=0000FF>BB</font>text|r
* Each pair of digits represents a color value (plus the alpha value, however the alpha value is currently ignored and should always be FF) as a hexadecimal number.
+
* Each pair of digits represents a color value (plus the alpha value, however the alpha value is currently ignored and should always be FF) as a hexadecimal number. The <code><nowiki>|r</nowiki></code> escape sequence pops nested color sequences in-order<ref>https://github.com/Stanzilla/WoWUIBugs/wiki/9.0.1-Consolidated-UI-Changes</ref>.
   
/run print("this is \124cFFFF0000red and \124cFF00FF00this is green\124r back to white")
 
> this is <span style="color: #ff0000">red and</span> <span style="color: #00ff00">this is green</span> back to white
 
 
==== Shadowlands ====
 
{{Patch 9.0.1|note=The <code><nowiki>|r</nowiki></code> escape sequence now pops nested <code><nowiki>|c</nowiki></code> color sequences in-order, instead of resetting the text to the default color.<ref>https://github.com/Stanzilla/WoWUIBugs/wiki/9.0.1-Consolidated-UI-Changes</ref>}}
 
 
/run print("this is \124cFFFF0000red and \124cFF00FF00this is green\124r back to red\124r back to white")
 
/run print("this is \124cFFFF0000red and \124cFF00FF00this is green\124r back to red\124r back to white")
 
> this is <span style="color: #ff0000">red and</span> <span style="color: #00ff00">this is green</span> <span style="color: #ff0000">back to red</span> back to white
 
> this is <span style="color: #ff0000">red and</span> <span style="color: #00ff00">this is green</span> <span style="color: #ff0000">back to red</span> back to white
   
  +
'''''Classic'''''
=== Grammar ===
 
  +
;<code>''number'' |1''singular'';''plural'';</code>: Will choose a word depending on whether the ''digit'' preceding it is 0/1 or not (i.e. 1,11,21 return the first string, as will 0,10,40). Note that unlike |4 singular and plural forms are separated by semi-colon.
 
  +
{{Patch 1.13.2|note=The <code><nowiki>|r</nowiki></code> escape sequence resets the text to the default color instead of popping nested colors in-order.}}
;<code>|2''text''</code>: Before vowels outputs <i>d'</i> (with apostrophe) and removes any leading spaces from ''text'', otherwise outputs <i>de </i> (with trailing space)
 
  +
;<code>|3-''formid''(''text'')</code>: Displays ''text'' [[wikipedia:Declension|declined]] to the specified form (index ranges from 1 to {{api|GetNumDeclensionSets}}()). Processed by C code, data used for parsing isn't available to UI, all events fire with the data already processed.
 
 
/run print("this is \124cFFFF0000red and \124cFF00FF00this is green\124r back to white")
;<code>''number'' |4''singular'':''plural'';</code> -or- <code>''number'' |4''singular'':''plural1'':''plural2'';</code>: Will choose a form based on the ''number'' preceding it. Client locale dependant. More than two forms (separated by colons) may be required by some locales (i.e. Russian requires 3 forms), if too many forms provided they are ignored, if needed form isn't provided empty string will be used instead. Note that unlike |1 singular and plural forms are separated by colon. (added with 2.4.2)
 
 
> this is <span style="color: #ff0000">red and</span> <span style="color: #00ff00">this is green</span> back to white
   
 
=== Textures ===
 
=== Textures ===
Line 40: Line 36:
 
:* When you need to display a rectangular image in the string (Blizzard logo), use aspect ratio version: <code>|T''path'':''<font color="#80ff80">0</font>'':''<font color="#8080ff">aspectRatio</font>''|t</code>
 
:* When you need to display a rectangular image in the string (Blizzard logo), use aspect ratio version: <code>|T''path'':''<font color="#80ff80">0</font>'':''<font color="#8080ff">aspectRatio</font>''|t</code>
   
=== Texture atlas ===
+
==== Texture atlas ====
 
{{Main|AtlasID}}
 
{{Main|AtlasID}}
 
Atlases allow for easily getting part of a texture without having to use tex coords.
 
Atlases allow for easily getting part of a texture without having to use tex coords.
|A<font color="#ecbc2a">atlas</font>:<font color="#80ff80">height</font>:<font color="#8080ff">width</font>[:<font color="#ff8080">offsetX</font>:<font color="#ff8080">offsetY</font>]|a
+
|A:<font color="#ecbc2a">atlas</font>:<font color="#80ff80">height</font>:<font color="#8080ff">width</font>[:<font color="#ff8080">offsetX</font>:<font color="#ff8080">offsetY</font>]|a
   
 
=== Examples ===
 
=== Examples ===
  +
* Both slash <code>/</code> or escaped backslashes <code>\\</code> are valid file separators.
  +
* Parameters can be omitted in between <code>:</code>characters.
 
{| class="darktable"
 
{| class="darktable"
 
! colspan="2" | Coloring
 
! colspan="2" | Coloring
 
|-
 
|-
 
| <syntaxhighlight lang="lua">"|cFFFF0000This is red text|r this is normal color"
 
| <syntaxhighlight lang="lua">"|cFFFF0000This is red text|r this is normal color"
WrapTextInColorCode("This is red text", "FFFF0000")</syntaxhighlight>
+
WrapTextInColorCode("This is red text", "FFFF0000").." this is normal color"</syntaxhighlight>
 
| <font color=red>This is red text</font> this is normal color
 
| <font color=red>This is red text</font> this is normal color
 
|-
 
|-
 
! colspan="2" | Texture
 
! colspan="2" | Texture
 
|-
 
|-
| The file path or [[FileDataID]] can be used. Both slash <code>/</code> or escaped backslashes <code>\\</code> are valid file separators.<br><syntaxhighlight lang="lua">"|T133784:16|t Coins"
+
| Accepts a file path or [[FileDataID]].<br><syntaxhighlight lang="lua">"|T133784:16|t Coins"
 
"|TInterface\\Icons\\INV_Misc_Coin_01:16|t Coins"
 
"|TInterface\\Icons\\INV_Misc_Coin_01:16|t Coins"
 
CreateTextureMarkup("Interface/Icons/INV_Misc_Coin_01", 64, 64, 16, 16, 0, 1, 0, 1)</syntaxhighlight>
 
CreateTextureMarkup("Interface/Icons/INV_Misc_Coin_01", 64, 64, 16, 16, 0, 1, 0, 1)</syntaxhighlight>
| [[Image:INV_Misc_Coin_01.png|16px]] Coins<sup>[https://wow.tools/files/#search=interface/icons/inv_misc_coin_01]</sup>
+
| [[File:inv_misc_coin_01.png|16px]] Coins<sup>[https://wow.tools/files/#search=interface/icons/inv_misc_coin_01]</sup>
  +
|-
  +
| <syntaxhighlight lang="lua">"|TInterface\\Icons\\INV_Misc_Coin_01:16:16:0:0:64:64:4:60:4:60|t Coins (cropped)"</syntaxhighlight>
  +
| [[File:INV_Misc_Coin_01_crop.png|16px]] Coins (cropped)
 
|-
 
|-
 
| Sets the vertex color of the texture to green (73:177:73).<br><syntaxhighlight lang="lua">"|TInterface\\ChatFrame\\UI-ChatIcon-ArmoryChat:14:14:0:0:16:16:0:16:0:16:73:177:73|t Reckful"</syntaxhighlight>
 
| Sets the vertex color of the texture to green (73:177:73).<br><syntaxhighlight lang="lua">"|TInterface\\ChatFrame\\UI-ChatIcon-ArmoryChat:14:14:0:0:16:16:0:16:0:16:73:177:73|t Reckful"</syntaxhighlight>
| [[Image:RemoteChat_Icon.png|16px]] Reckful<sup>[https://wow.tools/files/#search=UI-ChatIcon-ArmoryChat]</sup>
+
| [[File:RemoteChat_Icon.png|16px]] Reckful<sup>[https://wow.tools/files/#search=UI-ChatIcon-ArmoryChat]</sup>
 
|-
 
|-
 
! colspan="2" | Texture atlas
 
! colspan="2" | Texture atlas
 
|-
 
|-
| The [[AtlasID|Atlas]] name or ID can be used.<sup>[https://wow.tools/dbc/?dbc=uitextureatlasmember#search=groupfinder-icon-role-large-tank]</sup> Parameters can be omitted in between colon characters.<syntaxhighlight lang="lua">"|A:4259:19:19|a Tank"
+
| Accepts an [[AtlasID|Atlas]] name or ID.<sup>[https://wow.tools/dbc/?dbc=uitextureatlasmember#search=groupfinder-icon-role-large-tank]</sup><syntaxhighlight lang="lua">"|A:4259:19:19|a Tank"
 
"|A:groupfinder-icon-role-large-tank:19:19|a Tank"
 
"|A:groupfinder-icon-role-large-tank:19:19|a Tank"
 
"|Tinterface\\lfgframe\\groupfinder:19:19:::1024:1024:915:944:785:814|t Tank"
 
"|Tinterface\\lfgframe\\groupfinder:19:19:::1024:1024:915:944:785:814|t Tank"
 
CreateAtlasMarkup("groupfinder-icon-role-large-tank", 16, 16)</syntaxhighlight>
 
CreateAtlasMarkup("groupfinder-icon-role-large-tank", 16, 16)</syntaxhighlight>
| [[Image:Atlas_groupfinder-icon-role-large-tank.png|16px]] Tank<sup>[https://wow.tools/files/#search=interface/lfgframe/groupfinder]</sup>
+
| [[File:Atlas_groupfinder-icon-role-large-tank.png|16px]] Tank<sup>[https://wow.tools/files/#search=interface/lfgframe/groupfinder]</sup>
 
|}
 
|}
   
Utility functions:
+
:Utility functions:
* [https://www.townlong-yak.com/framexml/go/WrapTextInColorCode WrapTextInColorCode()]
+
:* [https://www.townlong-yak.com/framexml/go/WrapTextInColorCode WrapTextInColorCode()]
* [https://www.townlong-yak.com/framexml/9.0.1/Color.lua#55 ColorMixin:WrapTextInColorCode()] - Adds the color escape sequences from a [[ColorMixin]].
+
:* [https://www.townlong-yak.com/framexml/9.0.1/Color.lua#55 ColorMixin:WrapTextInColorCode()] - Adds the color escape sequences from a [[ColorMixin]].
* [https://www.townlong-yak.com/framexml/go/CreateTextureMarkup CreateTextureMarkup()]
+
:* [https://www.townlong-yak.com/framexml/go/CreateTextureMarkup CreateTextureMarkup()]
* [https://www.townlong-yak.com/framexml/go/CreateAtlasMarkup CreateAtlasMarkup()]
+
:* [https://www.townlong-yak.com/framexml/go/CreateAtlasMarkup CreateAtlasMarkup()]
   
 
=== Protected strings ===
 
=== Protected strings ===
Also known as Kstrings, they prevents strings from being parsed in addons by rendering them as textures.
+
Also known as Kstrings, they prevent strings from being parsed in addons.
   
==== Battle.net ====
+
* '''Battle.net'''
: The <code>q</code> variant e.g. <code>|Kq1|k</code> is used for the confidentiality of Battle.net [[Real ID]] and [[BattleTag]] names. The number represents the battle.net friend ID.
+
:: The <code>q</code> variant e.g. <code>|Kq1|k</code> is used for the confidentiality of Battle.net account names. The number represents the Battle.net friend ID.
: ''Known sources: {{api|C_BattleNet.GetAccountInfoByID}}()''
+
:: ''Known sources: {{api|C_BattleNet.GetAccountInfoByID}}()''
   
==== Group Finder ====
+
* '''Group Finder'''
: The <code>r</code> variant e.g. <code>|Kr14|k</code> is used for the name and comment in group finder listings to prevent addons like [https://www.curseforge.com/wow/addons/worldquestgroupfinder World Quest Group Finder].
+
:: The <code>r</code> variant e.g. <code>|Kr14|k</code> is used for the name and comment in group finder listings to prevent addons like [https://www.curseforge.com/wow/addons/worldquestgroupfinder World Quest Group Finder].
: ''Known sources: {{api|C_LFGList.GetSearchResultInfo}}() and {{api|C_LFGList.GetActiveEntryInfo}}()''
+
:: ''Known sources: {{api|C_LFGList.GetSearchResultInfo}}() and {{api|C_LFGList.GetActiveEntryInfo}}()''
   
==== Communities ====
+
* '''Communities'''
: The <code>v</code> variant e.g. <code>|Kv1|k</code> is used for [[Guild & Communities]] to prevent addons from using it as a shared, persistent data storage. The number represents a chat message line ID.
+
:: The <code>v</code> variant e.g. <code>|Kv1|k</code> is used for [[Guild & Communities|Community Channels]] to prevent addons from using it as a shared, persistent data storage. The number represents a chat message line ID.
: ''Known sources: {{api|t=e|CHAT_MSG_COMMUNITIES_CHANNEL}}''
+
:: ''Known sources: {{api|t=e|CHAT_MSG_COMMUNITIES_CHANNEL}}''
  +
 
=== Grammar ===
 
;<code>''number'' |1''singular'';''plural'';</code>: Will choose a word depending on whether the ''digit'' preceding it is 0/1 or not (i.e. 1,11,21 return the first string, as will 0,10,40). Note that unlike |4 singular and plural forms are separated by semi-colon.
 
;<code>|2''text''</code>: Before vowels outputs <i>d'</i> (with apostrophe) and removes any leading spaces from ''text'', otherwise outputs <i>de </i> (with trailing space)
 
;<code>|3-''formid''(''text'')</code>: Displays ''text'' [[wikipedia:Declension|declined]] to the specified form (index ranges from 1 to {{api|GetNumDeclensionSets}}()). Processed by C code, data used for parsing isn't available to UI, all events fire with the data already processed.
 
;<code>''number'' |4''singular'':''plural'';</code> -or- <code>''number'' |4''singular'':''plural1'':''plural2'';</code>: Will choose a form based on the ''number'' preceding it. Client locale dependant. More than two forms (separated by colons) may be required by some locales (i.e. Russian requires 3 forms), if too many forms provided they are ignored, if needed form isn't provided empty string will be used instead. Note that unlike |1 singular and plural forms are separated by colon. (added with 2.4.2)
   
 
=== Other ===
 
=== Other ===
Line 101: Line 108:
   
 
== Hyperlinks ==
 
== Hyperlinks ==
 
: ''See also: {{api|GameTooltip_SetHyperlink|GameTooltip:SetHyperlink}}() and [https://www.townlong-yak.com/framexml/go/ExtractHyperlinkString ExtractHyperlinkString()].
Hyperlinks are clickable (chat) links. They can for example display spell information in the ItemRefTooltip or insert item links to the chat window when shift-clicked.
 
 
: ''Implemented in [https://www.townlong-yak.com/framexml/live/ItemRef.lua FrameXML/ItemRef.lua]''
  +
Hyperlinks are clickable (chat) links. Since patch 7.0.3 unused delimited segments will be empty rather than 0, e.g. <code>":::"</code> instead of <code>":0:0:0"</code>
  +
|c<font color="#ecbc2a">ffxxxxxx</font>|H<font color="#ecbc2a">linkType</font>:<font color="#ecbc2a">info</font>|h[<font color="#ecbc2a">text</font>]|h|r
   
  +
Each kind of hyperlink has the following format:
|HlinkType:linkString|hlinkText|h
 
  +
{| class="sortable darktable zebra" style="margin-left: 2em"
: Implemented in [https://www.townlong-yak.com/framexml/live/ItemRef.lua ItemRef.lua]
 
  +
! Text !! Description
: See also: {{api|GameTooltip_SetHyperlink|GameTooltip:SetHyperlink}}(), [https://www.townlong-yak.com/framexml/go/ExtractHyperlinkString ExtractHyperlinkString()]
 
  +
|-
  +
| <code><nowiki>|cffxxxxxx</nowiki></code> || The color code
  +
|-
  +
| <code><nowiki>|H</nowiki></code> || Begins the hyperlink
  +
|-
  +
| <code><nowiki>linkType:info</nowiki></code> || The link type and any colon-delimited params
  +
|-
  +
| <code><nowiki>|h</nowiki></code> || Marks the end of the payload
  +
|-
  +
| <code><nowiki>[text]</nowiki></code> || Localized display text
  +
|-
  +
| <code><nowiki>|h</nowiki></code> || Ends the hyperlink
  +
|-
  +
| <code><nowiki>|r</nowiki></code> || Stops coloring
  +
|}
   
  +
The server may expect certain combinations of color, payload and text as {{api|SendChatMessage}}() can reject invalid entries.
=== Inspecting a hyperlink ===
 
  +
* A raw hyperlink can be viewed by escaping the escape code:
 
  +
{| class="darktable mw-collapsible mw-collapsed"
In-game, after inserting a link into the chat frame
 
 
!HOWTO: Inspecting a hyperlink&nbsp;&nbsp;
  +
|-
  +
|
  +
From the in-game chat window.
 
/dump "<font color=71D5FF>[Flash Heal]</font>"
 
/dump "<font color=71D5FF>[Flash Heal]</font>"
 
<font color=f92672>></font> <font color=e6db74>"|cff71d5ff|Hspell:2061:0|h[Flash Heal]|h|r"</font>
   
 
From an addon, when clicking a hyperlink in-game.
> "|cff71d5ff|Hspell:2061:0|h[Flash Heal]|h|r"
 
  +
<syntaxhighlight lang="lua">
 
 
hooksecurefunc("SetItemRef", function(link, text)
From an addon, when clicking a hyperlink in-game
 
 
print(link, text:gsub("|", "||"))
hooksecurefunc("SetItemRef", function(link, text)
 
 
end)
print(link, text:gsub("|", "||"))
 
 
> "spell:139:0", "|cff71d5ff|Hspell:139:0|h[Renew]|h|r"
end)
 
  +
</syntaxhighlight>
 
  +
|}
> "spell:139:0", "|cff71d5ff|Hspell:139:0|h[Renew]|h|r"
 
   
 
=== achievement ===
 
=== achievement ===
{{Seealso|AchievementString}}
+
{{Seealso|AchievementLink}}
achievement : achievementID : guid : completed : month : day : year : criteria1 : criteria2 : criteria3 : criteria4
+
achievement : <font color="#ecbc2a">achievementID</font> : <font color="#ecbc2a">guid</font> : <font color="#ecbc2a">completed</font> : <font color="#ecbc2a">month</font> : <font color="#ecbc2a">day</font> : <font color="#ecbc2a">year</font> : <font color="#ecbc2a">criteria1</font> : <font color="#ecbc2a">criteria2</font> : <font color="#ecbc2a">criteria3</font> : <font color="#ecbc2a">criteria4</font>
 
* <code>guid</code> The player's [[GUID]].
 
* <code>guid</code> The player's [[GUID]].
 
* <code>completed</code> 1 for earned, 0 for unearned achievements.
 
* <code>completed</code> 1 for earned, 0 for unearned achievements.
 
* <code>month:day:year</code> Date the achievement was earned or 0:0:-1 if not earned.
 
* <code>month:day:year</code> Date the achievement was earned or 0:0:-1 if not earned.
 
* <code>criteria1-4</code> 32-bit bitmask fields for completed criteria, or 0:0:0:0 if not completed.
 
* <code>criteria1-4</code> 32-bit bitmask fields for completed criteria, or 0:0:0:0 if not completed.
: Examples:
+
: Example:
 
: <code>"|cffffff00|Hachievement:10671:Player-1096-06DF65C1:1:2:16:17:4294967295:4294967295:4294967295:4294967295|h[Level 110]|h|r"</code>
 
: <code>"|cffffff00|Hachievement:10671:Player-1096-06DF65C1:1:2:16:17:4294967295:4294967295:4294967295:4294967295|h[Level 110]|h|r"</code>
 
: <code>"|cffffff00|Hachievement:12544:Player-1096-06DF65C1:0:0:0:-1:0:0:0:0|h[Level 120]|h|r"</code>
 
: <code>"|cffffff00|Hachievement:12544:Player-1096-06DF65C1:0:0:0:-1:0:0:0:0|h[Level 120]|h|r"</code>
Line 135: Line 165:
 
{{Seealso|APILink}}
 
{{Seealso|APILink}}
 
Shows [https://www.townlong-yak.com/framexml/live/Blizzard_APIDocumentation API Documentation] from the [[MACRO_api|/api]] command.
 
Shows [https://www.townlong-yak.com/framexml/live/Blizzard_APIDocumentation API Documentation] from the [[MACRO_api|/api]] command.
api : type : name : [parentName]
+
api : <font color="#ecbc2a">type</font> : <font color="#ecbc2a">name</font> : <font color="#ecbc2a">[parentName]</font>
: Examples:
+
: Example:
 
: <code>"|cffff55dd|Hapi:system:MapUI:|hMapUI|h|r"</code>
 
: <code>"|cffff55dd|Hapi:system:MapUI:|hMapUI|h|r"</code>
 
: <code>"|cff55ddff|Hapi:function:GetMapInfo:MapUI|hC_Map.GetMapInfo()|h|r"</code>
 
: <code>"|cff55ddff|Hapi:function:GetMapInfo:MapUI|hC_Map.GetMapInfo()|h|r"</code>
Line 144: Line 174:
 
=== azessence ===
 
=== azessence ===
 
[[:Azerite]] Essence link
 
[[:Azerite]] Essence link
azessence : essenceID : rank
+
azessence : <font color="#ecbc2a">essenceID</font> : <font color="#ecbc2a">rank</font>
 
: Example: <code>"|cffa335ee|Hazessence:12:3|h[The Crucible of Flame]|h|r"</code>
 
: Example: <code>"|cffa335ee|Hazessence:12:3|h[The Crucible of Flame]|h|r"</code>
 
: See also: {{api|C_AzeriteEssence.GetEssenceInfo}}()
 
: See also: {{api|C_AzeriteEssence.GetEssenceInfo}}()
   
 
=== battlepet ===
 
=== battlepet ===
battlepet : speciesID : level : breedQuality : maxHealth : power : speed : battlePetID
+
battlepet : <font color="#ecbc2a">speciesID</font> : <font color="#ecbc2a">level</font> : <font color="#ecbc2a">breedQuality</font> : <font color="#ecbc2a">maxHealth</font> : <font color="#ecbc2a">[power]</font> : <font color="#ecbc2a">[speed]</font> : <font color="#ecbc2a">[battlePetID]</font> : <font color="#ecbc2a">[displayID]</font>
: Example: <code>"|cff1eff00|Hbattlepet:202:25:2:1435:267:240:BattlePet-0-000000CC9EA1|h[Baby Blizzard Bear]|h|r"</code>
+
: Example: <code>"|cff0070dd|Hbattlepet:202:25:3:1546:289:260:BattlePet-0-00000338F951:16189|h[Baby Blizzard Bear]|h|r"</code>
  +
: Barebone example: <code>/run SendChatMessage("\124cff1eff00\124Hbattlepet:202:1:2:1:::BattlePet--:\124h[Baby Blizzard Bear]\124h\124r")</code>
 
: See also: [[BattlePetSpeciesID]]
   
 
=== battlePetAbil ===
 
=== battlePetAbil ===
battlePetAbil : abilityID : maxHealth : power : speed
+
battlePetAbil : <font color="#ecbc2a">abilityID</font> : <font color="#ecbc2a">maxHealth</font> : <font color="#ecbc2a">power</font> : <font color="#ecbc2a">speed</font>
 
: Example: <code>"|cff4e96f7|HbattlePetAbil:348:1435:267:240|hBash|h|r"</code>
 
: Example: <code>"|cff4e96f7|HbattlePetAbil:348:1435:267:240|hBash|h|r"</code>
   
 
=== calendarEvent ===
 
=== calendarEvent ===
calendarEvent : monthOffset : monthDay : index
+
calendarEvent : <font color="#ecbc2a">monthOffset</font> : <font color="#ecbc2a">monthDay</font> : <font color="#ecbc2a">index</font>
 
: Example: <code>"|HcalendarEvent:0:12:1|hSpring Balloon Festival|h"</code>
 
: Example: <code>"|HcalendarEvent:0:12:1|hSpring Balloon Festival|h"</code>
 
: See also: {{api|C_Calendar.GetDayEvent}}()
 
: See also: {{api|C_Calendar.GetDayEvent}}()
Line 163: Line 195:
 
=== channel ===
 
=== channel ===
 
Opens the chat window to a specific /channel.
 
Opens the chat window to a specific /channel.
channel : channelType : [channelID]
+
channel : <font color="#ecbc2a">channelType</font> : <font color="#ecbc2a">[channelID]</font>
: Examples:
+
: Example:
 
: <code>"|Hchannel:channel:2|h[2. Trade - City]|h"</code>
 
: <code>"|Hchannel:channel:2|h[2. Trade - City]|h"</code>
 
: <code>"|Hchannel:PARTY|h[Party]|h"</code>
 
: <code>"|Hchannel:PARTY|h[Party]|h"</code>
Line 170: Line 202:
 
=== clubFinder ===
 
=== clubFinder ===
 
[[Guild Finder]] (8.2.5) invite link.
 
[[Guild Finder]] (8.2.5) invite link.
clubFinder : clubFinderId
+
clubFinder : <font color="#ecbc2a">clubFinderId</font>
 
: Example: <code>"|cffffd100|HclubFinder:ClubFinder-1-19160-1598-53720920|h[Guild: Happy Leveling]|h|r"</code>
 
: Example: <code>"|cffffd100|HclubFinder:ClubFinder-1-19160-1598-53720920|h[Guild: Happy Leveling]|h|r"</code>
 
: See also: [https://www.townlong-yak.com/framexml/go/GetClubFinderLink GetClubFinderLink]()
 
: See also: [https://www.townlong-yak.com/framexml/go/GetClubFinderLink GetClubFinderLink]()
Line 176: Line 208:
 
=== clubTicket ===
 
=== clubTicket ===
 
[[Guild_%26_Communities|WoW communities & Blizzard Groups]] invite link.
 
[[Guild_%26_Communities|WoW communities & Blizzard Groups]] invite link.
clubTicket : ticketId
+
clubTicket : <font color="#ecbc2a">ticketId</font>
 
: Example: <code>"|cffffd100|HclubTicket:oxPbMfv2R|h[Join: test]|h|r"</code>
 
: Example: <code>"|cffffd100|HclubTicket:oxPbMfv2R|h[Join: test]|h|r"</code>
 
: See also: [https://www.townlong-yak.com/framexml/go/GetClubTicketLink GetClubTicketLink]()
 
: See also: [https://www.townlong-yak.com/framexml/go/GetClubTicketLink GetClubTicketLink]()
Line 182: Line 214:
 
=== community ===
 
=== community ===
 
Community link in [[Quick Join]] requests.
 
Community link in [[Quick Join]] requests.
community : clubId
+
community : <font color="#ecbc2a">clubId</font>
   
 
=== conduit ===
 
=== conduit ===
 
[[Conduit]] link
 
[[Conduit]] link
conduit : id : [rank]
+
conduit : <font color="#ecbc2a">id</font> : <font color="#ecbc2a">[rank]</font>
 
: Example: <code>"|cff71d5ff|Hconduit:5:1|h[Stalwart Guardian]|h|r"</code>
 
: Example: <code>"|cff71d5ff|Hconduit:5:1|h[Stalwart Guardian]|h|r"</code>
 
: See also: {{api|C_Soulbinds.GetConduitHyperlink}}()
 
: See also: {{api|C_Soulbinds.GetConduitHyperlink}}()
   
 
=== currency ===
 
=== currency ===
currency : id : [amount]
+
currency : <font color="#ecbc2a">id</font> : <font color="#ecbc2a">[amount]</font>
 
: Example: <code>"|cffffffff|Hcurrency:1744|h[Corrupted Memento]|h|r"</code>
 
: Example: <code>"|cffffffff|Hcurrency:1744|h[Corrupted Memento]|h|r"</code>
  +
: See also: {{api|C_CurrencyInfo.GetCurrencyLink}}()
   
 
=== death ===
 
=== death ===
 
Opens the [[API_GetDeathRecapLink|Death recap]] overview.
 
Opens the [[API_GetDeathRecapLink|Death recap]] overview.
death : recapID
+
death : <font color="#ecbc2a">recapID</font>
 
: Example: <code>"|Hdeath:1|h[You died.]|h"</code>
 
: Example: <code>"|Hdeath:1|h[You died.]|h"</code>
   
 
=== enchant ===
 
=== enchant ===
 
Opens the [[Profession|Tradeskill]] window for a recipe.
 
Opens the [[Profession|Tradeskill]] window for a recipe.
enchant : spellID
+
enchant : <font color="#ecbc2a">spellID</font>
 
: Example: <code>"|cffffd000|Henchant:162206|h[Draenor Engineering: World Shrinker]|h|r"</code>
 
: Example: <code>"|cffffd000|Henchant:162206|h[Draenor Engineering: World Shrinker]|h|r"</code>
   
 
=== garrfollower ===
 
=== garrfollower ===
garrfollower : followerID : quality : level : itemLevel : ability1 : ability2 : ability3 : ability4 : trait1 : trait2 : trait3 : trait4 : spec1
+
garrfollower : <font color="#ecbc2a">followerID</font> : <font color="#ecbc2a">quality</font> : <font color="#ecbc2a">level</font> : <font color="#ecbc2a">itemLevel</font> : <font color="#ecbc2a">ability1</font> : <font color="#ecbc2a">ability2</font> : <font color="#ecbc2a">ability3</font> : <font color="#ecbc2a">ability4</font> : <font color="#ecbc2a">trait1</font> : <font color="#ecbc2a">trait2</font> : <font color="#ecbc2a">trait3</font> : <font color="#ecbc2a">trait4</font> : <font color="#ecbc2a">spec1</font>
 
: Example: <code>"|cffa335ee|Hgarrfollower:856:4:110:900:457:777:0:0:684:758:0:0:354|h[Calia Menethil]|h|r"</code>
 
: Example: <code>"|cffa335ee|Hgarrfollower:856:4:110:900:457:777:0:0:684:758:0:0:354|h[Calia Menethil]|h|r"</code>
   
 
=== garrfollowerability ===
 
=== garrfollowerability ===
garrfollowerability : abilityID
+
garrfollowerability : <font color="#ecbc2a">abilityID</font>
: Examples:
+
: Example:
 
: <code>"|cff4e96f7|Hgarrfollowerability:354|h[Discipline]|h|r"</code>
 
: <code>"|cff4e96f7|Hgarrfollowerability:354|h[Discipline]|h|r"</code>
 
: <code>"|cff4e96f7|Hgarrfollowerability:457|h[Holy Nova]|h|r"</code>
 
: <code>"|cff4e96f7|Hgarrfollowerability:457|h[Holy Nova]|h|r"</code>
   
 
=== garrmission ===
 
=== garrmission ===
garrmission : missionID : missionDBID
+
garrmission : <font color="#ecbc2a">missionID</font> : <font color="#ecbc2a">missionDBID</font>
 
: Example: <code>"|cffffff00|Hgarrmission:1610:000000000238f82d|h[Withered Straining]|h|r"</code>
 
: Example: <code>"|cffffff00|Hgarrmission:1610:000000000238f82d|h[Withered Straining]|h|r"</code>
 
: Note: This link type can also be used for securely implementing custom links by posthooking <code>SetItemRef()</code> since it silently fails on non-numbers, whereas custom link types would [https://www.townlong-yak.com/framexml/8.2.5/ItemRef.lua#363 error] out. It does not work on actual chat messages through {{api|SendChatMessage}}() as the server won't show the message.
 
: Note: This link type can also be used for securely implementing custom links by posthooking <code>SetItemRef()</code> since it silently fails on non-numbers, whereas custom link types would [https://www.townlong-yak.com/framexml/8.2.5/ItemRef.lua#363 error] out. It does not work on actual chat messages through {{api|SendChatMessage}}() as the server won't show the message.
Line 232: Line 265:
 
=== instancelock ===
 
=== instancelock ===
 
Opens the [[Raid_lockout|/raidinfo]] list.
 
Opens the [[Raid_lockout|/raidinfo]] list.
instancelock : guid : instanceID : difficulty : defeatedEncounters
+
instancelock : <font color="#ecbc2a">guid</font> : <font color="#ecbc2a">instanceID</font> : <font color="#ecbc2a">difficulty</font> : <font color="#ecbc2a">defeatedEncounters</font>
 
* <code>guid</code> The player's [[GUID]].
 
* <code>guid</code> The player's [[GUID]].
 
* <code>instanceID</code> The instance's [[InstanceID]]
 
* <code>instanceID</code> The instance's [[InstanceID]]
Line 240: Line 273:
   
 
=== item ===
 
=== item ===
  +
{{Main|ItemLink}}
item : itemString
 
  +
item : <font color="#ecbc2a">itemString</font>
* <code>itemString</code> must be minimum 16 params when used in {{api|SendChatMessage}}: i.e. %d:::::::::::::::
 
 
: Example: <code>"|cffffffff|Hitem:2592:::::::::::::::::|h[Wool Cloth]|h|r"</code>
: Examples:
 
: <code>"|cffffffff|Hitem:2592:::::::::::::::|h[Wool Cloth]|h|r"</code>
 
: <code>"|cffa335ee|Hitem:134351::::::::110:258::27:3:3394:1491:3528:::|h[Arcane Singed Robe]|h|r"</code>
 
: See also: [[ItemLink]]
 
   
 
=== journal ===
 
=== journal ===
 
Opens the [[Adventure Guide]].
 
Opens the [[Adventure Guide]].
journal : journalType : journalID : difficulty
+
journal : <font color="#ecbc2a">journalType</font> : <font color="#ecbc2a">journalID</font> : <font color="#ecbc2a">difficulty</font>
 
* <code>journalType</code> 0=Instance, 1=Encounter, 2=Section.
 
* <code>journalType</code> 0=Instance, 1=Encounter, 2=Section.
 
* <code>journalID</code> InstanceID, [[JournalEncounterID|EncounterID]], or [https://wow.tools/dbc/?dbc=journalencountersection SectionID].
 
* <code>journalID</code> InstanceID, [[JournalEncounterID|EncounterID]], or [https://wow.tools/dbc/?dbc=journalencountersection SectionID].
 
* <code>difficulty</code> [[DifficultyID]] of the instance.
 
* <code>difficulty</code> [[DifficultyID]] of the instance.
: Examples:
+
: Example:
 
: <code>"|cff66bbff|Hjournal:0:1031:14|h[Uldir]|h|r"</code>
 
: <code>"|cff66bbff|Hjournal:0:1031:14|h[Uldir]|h|r"</code>
 
: <code>"|cff66bbff|Hjournal:1:2147:14|h[G'huun]|h|r"</code>
 
: <code>"|cff66bbff|Hjournal:1:2147:14|h[G'huun]|h|r"</code>
 
: <code>"|cff66bbff|Hjournal:2:18068:14|h[Titan Spark]|h|r"</code>
 
: <code>"|cff66bbff|Hjournal:2:18068:14|h[Titan Spark]|h|r"</code>
: See also: {{api|EJ_HandleLinkPath}}
+
: See also: {{api|EJ_HandleLinkPath}}()
  +
  +
=== keystone ===
  +
Used for [[Mythic Keystone]].
  +
keystone : <font color="#ecbc2a">itemID</font> : <font color="#ecbc2a">challengeModeID</font> : <font color="#ecbc2a">level</font> : <font color="#ecbc2a">affix1</font> : <font color="#ecbc2a">affix2</font> : <font color="#ecbc2a">affix3</font> : <font color="#ecbc2a">affix4</font>
  +
: Example:
  +
: <code>"|cffa335ee|Hkeystone:180653:381:2:10:0:0:0|h[Keystone: Spires of Ascension (2)]|h|r"</code>
  +
: <code>"|cffa335ee|Hkeystone:180653:375:15:10:8:12:121|h[Keystone: Mists of Tirna Scithe (15)]|h|r"</code>
  +
: <code>"|cffa335ee|Hkeystone:180653:379:18:10:8:12:121|h[Keystone: Plaguefall (18)]|h|r"</code>
  +
: See also: [https://wow.tools/dbc/?dbc=mapchallengemode MapChallengeMode.db2], [https://wow.tools/dbc/?dbc=keystoneaffix KeystoneAffix.db2]
   
 
=== levelup ===
 
=== levelup ===
levelup : level : levelUpType : [petName]
+
levelup : <font color="#ecbc2a">level</font> : <font color="#ecbc2a">levelUpType</font> : <font color="#ecbc2a">[petName]</font>
: Examples:
+
: Example:
 
: <code>"|cffFF4E00|Hlevelup:2:LEVEL_UP_TYPE_CHARACTER|h[Level 2]|h|r"</code>
 
: <code>"|cffFF4E00|Hlevelup:2:LEVEL_UP_TYPE_CHARACTER|h[Level 2]|h|r"</code>
 
: <code>"|cffFF4E00|Hlevelup:2:LEVEL_UP_TYPE_PET:Bear|h[Level 2]|h|r"</code>
 
: <code>"|cffFF4E00|Hlevelup:2:LEVEL_UP_TYPE_PET:Bear|h[Level 2]|h|r"</code>
Line 267: Line 306:
 
=== lootHistory ===
 
=== lootHistory ===
 
Opens the [[Loot#Loot_options:_Need.2C_Greed.2C_Disenchant_and_Pass|/loot]] window.
 
Opens the [[Loot#Loot_options:_Need.2C_Greed.2C_Disenchant_and_Pass|/loot]] window.
lootHistory : rollID
+
lootHistory : <font color="#ecbc2a">rollID</font>
   
 
=== player ===
 
=== player ===
Line 273: Line 312:
 
: Right-click: opens the player context menu
 
: Right-click: opens the player context menu
 
: Shift-click: sends a [[MACRO_who|/who]] query
 
: Shift-click: sends a [[MACRO_who|/who]] query
player : name : [lineID] : [chatType] : [chatTarget]
+
player : <font color="#ecbc2a">name</font> : <font color="#ecbc2a">[lineID]</font> : <font color="#ecbc2a">[chatType]</font> : <font color="#ecbc2a">[chatTarget]</font>
 
* <code>lineID</code> Message ID for reporting.
 
* <code>lineID</code> Message ID for reporting.
: Examples:
+
: Example:
 
: <code>"|Hplayer:Fadeshift|h[Fadeshift]|h"</code>
 
: <code>"|Hplayer:Fadeshift|h[Fadeshift]|h"</code>
 
: <code>"|Hplayer:Aquadoll-MoonGuard|h[Aquadoll]|h"</code>
 
: <code>"|Hplayer:Aquadoll-MoonGuard|h[Aquadoll]|h"</code>
Line 283: Line 322:
   
 
=== playerCommunity ===
 
=== playerCommunity ===
playerCommunity : name : communityClubID : communityStreamID : communityEpoch : communityPosition
+
playerCommunity : <font color="#ecbc2a">name</font> : <font color="#ecbc2a">communityClubID</font> : <font color="#ecbc2a">communityStreamID</font> : <font color="#ecbc2a">communityEpoch</font> : <font color="#ecbc2a">communityPosition</font>
 
: Example: <code>"|HplayerCommunity:Ketho-Anasterian:333281:1:1557794365297000:5886997898769|h[|cfffefefeKetho|r]|h"</code>
 
: Example: <code>"|HplayerCommunity:Ketho-Anasterian:333281:1:1557794365297000:5886997898769|h[|cfffefefeKetho|r]|h"</code>
   
 
=== BNplayer ===
 
=== BNplayer ===
 
Battle.net friend links.
 
Battle.net friend links.
BNplayer : name : bnetIDAccount : lineID : chatType : chatTarget
+
BNplayer : <font color="#ecbc2a">name</font> : <font color="#ecbc2a">bnetIDAccount</font> : <font color="#ecbc2a">lineID</font> : <font color="#ecbc2a">chatType</font> : <font color="#ecbc2a">chatTarget</font>
   
 
=== BNplayerCommunity ===
 
=== BNplayerCommunity ===
BNplayerCommunity : name : bnetIDAccount : communityClubID : communityStreamID : communityEpoch : communityPosition
+
BNplayerCommunity : <font color="#ecbc2a">name</font> : <font color="#ecbc2a">bnetIDAccount</font> : <font color="#ecbc2a">communityClubID</font> : <font color="#ecbc2a">communityStreamID</font> : <font color="#ecbc2a">communityEpoch</font> : <font color="#ecbc2a">communityPosition</font>
   
 
=== quest ===
 
=== quest ===
quest : questID : questLevel : unknown1 : unknown2 : unknown3
+
quest : <font color="#ecbc2a">questID</font> : <font color="#ecbc2a">questLevel</font> : <font color="#ecbc2a">unknown1</font> : <font color="#ecbc2a">unknown2</font> : <font color="#ecbc2a">unknown3</font>
: Examples:
+
: Example:
 
: <code>"|cffffff00|Hquest:53370:-1:110:120:3|h[Hour of Reckoning]|h|r"</code>
 
: <code>"|cffffff00|Hquest:53370:-1:110:120:3|h[Hour of Reckoning]|h|r"</code>
 
: <code>"|cffff8040|Hquest:40746:113:110:255:0|h[One of the People]|h|r"</code>
 
: <code>"|cffff8040|Hquest:40746:113:110:255:0|h[One of the People]|h|r"</code>
Line 302: Line 341:
 
=== shareachieve ===
 
=== shareachieve ===
 
Opens the Twitter [[MACRO_share|/share]] window for an achievement.
 
Opens the Twitter [[MACRO_share|/share]] window for an achievement.
shareachieve : achievementID : earned
+
shareachieve : <font color="#ecbc2a">achievementID</font> : <font color="#ecbc2a">earned</font>
 
: Example: <code>"|cffffd200|Hshareachieve:964:1|h|TInterface\ChatFrame\UI-ChatIcon-Share:18:18|t|h|r"</code>
 
: Example: <code>"|cffffd200|Hshareachieve:964:1|h|TInterface\ChatFrame\UI-ChatIcon-Share:18:18|t|h|r"</code>
   
 
=== shareitem ===
 
=== shareitem ===
 
Twitter item link.
 
Twitter item link.
shareitem : itemLink : earned
+
shareitem : <font color="#ecbc2a">itemLink</font> : <font color="#ecbc2a">earned</font>
 
: Example: <code>"|cffffd200|Hshareitem:151428::::::::20:257:512:1:1:4068:20::::1|h|TInterface\ChatFrame\UI-ChatIcon-Share:18:18|t|h|r"</code>
 
: Example: <code>"|cffffd200|Hshareitem:151428::::::::20:257:512:1:1:4068:20::::1|h|TInterface\ChatFrame\UI-ChatIcon-Share:18:18|t|h|r"</code>
   
 
=== sharess ===
 
=== sharess ===
 
Twitter screenshot link.
 
Twitter screenshot link.
sharess : screenshotIndex
+
sharess : <font color="#ecbc2a">screenshotIndex</font>
 
* <code>screenshotIndex</code>: index of the screenshot to autofill the Tweet with, counted from last login.
 
* <code>screenshotIndex</code>: index of the screenshot to autofill the Tweet with, counted from last login.
 
: Example: <code>"|cffffd200|Hsharess:1|h|TInterface\ChatFrame\UI-ChatIcon-Share:18:18|t|h|r"</code>
 
: Example: <code>"|cffffd200|Hsharess:1|h|TInterface\ChatFrame\UI-ChatIcon-Share:18:18|t|h|r"</code>
   
 
=== spell ===
 
=== spell ===
spell : spellId : glyphId : [event]
+
spell : <font color="#ecbc2a">spellId</font> : <font color="#ecbc2a">glyphId</font> : <font color="#ecbc2a">[event]</font>
: Examples:
+
: Example:
 
: <code>"|cff71d5ff|Hspell:2096:0|h[Mind Vision]|h|r"</code>
 
: <code>"|cff71d5ff|Hspell:2096:0|h[Mind Vision]|h|r"</code>
 
: <code>"|Hspell:589:0:SPELL_DAMAGE|hShadow Word: Pain|h"</code>
 
: <code>"|Hspell:589:0:SPELL_DAMAGE|hShadow Word: Pain|h"</code>
Line 324: Line 363:
   
 
=== storecategory ===
 
=== storecategory ===
Opens the [[Blizzard Shop]].
+
Opens the [[In-Game Store]].
storecategory : category
+
storecategory : <font color="#ecbc2a">category</font>
 
: Example: <code>"|cffffd000|Hstorecategory:games|h[Click To Upgrade]|h|r"</code>
 
: Example: <code>"|cffffd000|Hstorecategory:games|h[Click To Upgrade]|h|r"</code>
   
 
=== talent ===
 
=== talent ===
talent : talentID
+
talent : <font color="#ecbc2a">talentID</font>
 
: Example: <code>"|cff71d5ff|Htalent:21754|h[Circle of Healing]|h|r"</code>
 
: Example: <code>"|cff71d5ff|Htalent:21754|h[Circle of Healing]|h|r"</code>
 
: See also: {{api|GetTalentInfoByID}}()
 
: See also: {{api|GetTalentInfoByID}}()
Line 335: Line 374:
 
=== trade ===
 
=== trade ===
 
Shows the tradeskill window (from another player).
 
Shows the tradeskill window (from another player).
trade : guid : spellID : skillLineID
+
trade : <font color="#ecbc2a">guid</font> : <font color="#ecbc2a">spellID</font> : <font color="#ecbc2a">skillLineID</font>
 
* <code>guid</code> The player's [[GUID]].
 
* <code>guid</code> The player's [[GUID]].
 
* <code>spellID</code> The tradeskill's Spell ID.
 
* <code>spellID</code> The tradeskill's Spell ID.
Line 343: Line 382:
   
 
=== transmogappearance ===
 
=== transmogappearance ===
transmogappearance : sourceID
+
transmogappearance : <font color="#ecbc2a">sourceID</font>
   
 
=== transmogillusion ===
 
=== transmogillusion ===
 
Previews a weapon enchant in the [[Dressing room]].
 
Previews a weapon enchant in the [[Dressing room]].
transmogillusion : sourceID
+
transmogillusion : <font color="#ecbc2a">sourceID</font>
 
: Example: <code>"|cffff80ff|Htransmogillusion:5862|h[Titanguard]|h|r"</code>
 
: Example: <code>"|cffff80ff|Htransmogillusion:5862|h[Titanguard]|h|r"</code>
 
: See also: {{api|C_TransmogCollection.GetIllusionSourceInfo}}()
 
: See also: {{api|C_TransmogCollection.GetIllusionSourceInfo}}()
   
 
=== transmogset ===
 
=== transmogset ===
transmogset : setID
+
transmogset : <font color="#ecbc2a">setID</font>
See also: {{api|C_TransmogSets.GetSetInfo}}
+
See also: {{api|C_TransmogSets.GetSetInfo}}()
   
 
=== unit ===
 
=== unit ===
 
Shows the unit tooltip. Opens the combat log context menu on right-click.
 
Shows the unit tooltip. Opens the combat log context menu on right-click.
unit : guid : [name]
+
unit : <font color="#ecbc2a">guid</font> : <font color="#ecbc2a">[name]</font>
 
: Example: <code>"|Hunit:Creature-0-2083-0-7-299-00005A0F91:Young Wolf|hYoung Wolf|h"</code>
 
: Example: <code>"|Hunit:Creature-0-2083-0-7-299-00005A0F91:Young Wolf|hYoung Wolf|h"</code>
 
Implemented in [https://www.townlong-yak.com/framexml/8.1.5/Blizzard_CombatLog/Blizzard_CombatLog.lua#3434 Blizzard_CombatLog.lua]
 
Implemented in [https://www.townlong-yak.com/framexml/8.1.5/Blizzard_CombatLog/Blizzard_CombatLog.lua#3434 Blizzard_CombatLog.lua]
Line 363: Line 402:
 
=== urlIndex ===
 
=== urlIndex ===
 
Opens a URL in the default web browser.
 
Opens a URL in the default web browser.
urlIndex : index
+
urlIndex : <font color="#ecbc2a">index</font>
 
: Example: <code>"|HurlIndex:25|h|cff006995Frequently Asked Questions|r|h"</code>
 
: Example: <code>"|HurlIndex:25|h|cff006995Frequently Asked Questions|r|h"</code>
   
 
=== worldmap ===
 
=== worldmap ===
 
Opens the World Map to display a pinned waypoint.
 
Opens the World Map to display a pinned waypoint.
worldmap : uiMapID : x : y
+
worldmap : <font color="#ecbc2a">uiMapID</font> : <font color="#ecbc2a">x</font> : <font color="#ecbc2a">y</font>
   
 
* <code>uiMapID</code> The [[UiMapID]] for the waypoint.
 
* <code>uiMapID</code> The [[UiMapID]] for the waypoint.

Revision as of 23:59, 21 September 2021

Many UI elements that display text on the screen support a special escape sequences starting with the | pipe character.

Warning Warning: If you are using the chat window or an in-game text editor, then "|" will most likely be escaped. Try using "\124" instead which is the ASCII code for the pipe character.

Escape Sequences

Coloring

|cAARRGGBBtext|r
  • Each pair of digits represents a color value (plus the alpha value, however the alpha value is currently ignored and should always be FF) as a hexadecimal number. The |r escape sequence pops nested color sequences in-order[1].
/run print("this is \124cFFFF0000red and \124cFF00FF00this is green\124r back to red\124r back to white")
> this is red and this is green back to red back to white

Classic

WoW Icon update Patch 1.13.2 (2019-08-26): The |r escape sequence resets the text to the default color instead of popping nested colors in-order.

/run print("this is \124cFFFF0000red and \124cFF00FF00this is green\124r back to white")
> this is red and this is green back to white

Textures

|Tpath:height[:width[:offsetX:offsetY:[textureWidth:textureHeight:leftTexel:rightTexel:topTexel:bottomTexel[:rVertexColor:gVertexColor:bVertexColor]]]]|t
Will insert a texture into a font string. Parameter width is optional (see below). The offsets are optional and will shift the texture from where it would normally be placed. TextHeight is based on size of the font used - this is used to automatically scale icons based on the size of the text.
  • height == 0; width omitted: Width = Height = TextHeight (always square!)
  • height > 0;  width omitted: Width = Height = height (always square!)
  • height == 0; width == 0   : Width = Height = TextHeight (always square!)
  • height > 0;  width == 0   : Width = TextHeight; Height = height (height is height!!!)
  • height == 0; width > 0    : Width = width * TextHeight; Height = TextHeight (width is an aspect ratio and defines width!!!)
  • height > 0;  width > 0    : Width = width; Height = height
  • offsetX offsetY: Offset for the rendered image, in pixels
  • textureWidth textureHeight: Size of the source image, in pixels
  • leftTexel rightTexel topTexel bottomTexel: (x1 x2 y1 y2) Coordinates that identify the left/right/top/bottom edges, in pixels (see Texture:SetTexCoord() but non-normalized)
  • rVertexColor gVertexColor bVertexColor: RGB color values in the range 0-255 that are used to tint the texture
Notes:
  • When you need to display a square icon in the string (spell/item icon), use only |Tpath:0|t
  • When you need to display a rectangular image in the string (Blizzard logo), use aspect ratio version: |Tpath:0:aspectRatio|t

Texture atlas

Main article: AtlasID

Atlases allow for easily getting part of a texture without having to use tex coords.

|A:atlas:height:width[:offsetX:offsetY]|a

Examples

  • Both slash / or escaped backslashes \\ are valid file separators.
  • Parameters can be omitted in between :characters.
Coloring
"|cFFFF0000This is red text|r this is normal color"
WrapTextInColorCode("This is red text", "FFFF0000").." this is normal color"
This is red text this is normal color
Texture
Accepts a file path or FileDataID.
"|T133784:16|t Coins"
"|TInterface\\Icons\\INV_Misc_Coin_01:16|t Coins"
CreateTextureMarkup("Interface/Icons/INV_Misc_Coin_01", 64, 64, 16, 16, 0, 1, 0, 1)
Inv misc coin 01 Coins[1]
"|TInterface\\Icons\\INV_Misc_Coin_01:16:16:0:0:64:64:4:60:4:60|t Coins (cropped)"
INV Misc Coin 01 crop Coins (cropped)
Sets the vertex color of the texture to green (73:177:73).
"|TInterface\\ChatFrame\\UI-ChatIcon-ArmoryChat:14:14:0:0:16:16:0:16:0:16:73:177:73|t Reckful"
RemoteChat Icon Reckful[2]
Texture atlas
Accepts an Atlas name or ID.[3]
"|A:4259:19:19|a Tank"
"|A:groupfinder-icon-role-large-tank:19:19|a Tank"
"|Tinterface\\lfgframe\\groupfinder:19:19:::1024:1024:915:944:785:814|t Tank"
CreateAtlasMarkup("groupfinder-icon-role-large-tank", 16, 16)
Atlas groupfinder-icon-role-large-tank Tank[4]
Utility functions:

Protected strings

Also known as Kstrings, they prevent strings from being parsed in addons.

  • Battle.net
The q variant e.g. |Kq1|k is used for the confidentiality of Battle.net account names. The number represents the Battle.net friend ID.
Known sources: C_BattleNet.GetAccountInfoByID()
  • Group Finder
The r variant e.g. |Kr14|k is used for the name and comment in group finder listings to prevent addons like World Quest Group Finder.
Known sources: C_LFGList.GetSearchResultInfo() and C_LFGList.GetActiveEntryInfo()
  • Communities
The v variant e.g. |Kv1|k is used for Community Channels to prevent addons from using it as a shared, persistent data storage. The number represents a chat message line ID.
Known sources: CHAT_MSG_COMMUNITIES_CHANNEL

Grammar

number |1singular;plural;
Will choose a word depending on whether the digit preceding it is 0/1 or not (i.e. 1,11,21 return the first string, as will 0,10,40). Note that unlike |4 singular and plural forms are separated by semi-colon.
|2text
Before vowels outputs d' (with apostrophe) and removes any leading spaces from text, otherwise outputs de (with trailing space)
|3-formid(text)
Displays text declined to the specified form (index ranges from 1 to GetNumDeclensionSets()). Processed by C code, data used for parsing isn't available to UI, all events fire with the data already processed.
number |4singular:plural; -or- number |4singular:plural1:plural2;
Will choose a form based on the number preceding it. Client locale dependant. More than two forms (separated by colons) may be required by some locales (i.e. Russian requires 3 forms), if too many forms provided they are ignored, if needed form isn't provided empty string will be used instead. Note that unlike |1 singular and plural forms are separated by colon. (added with 2.4.2)

Other

|n
Newline, if the widget supports it. Similar behavior as \n
||
Escapes the "|" character.
|
"|" followed by something that is not a valid escape sequence will be displayed as-is or is otherwise undefined behavior.

Hyperlinks

See also: GameTooltip:SetHyperlink() and ExtractHyperlinkString().
Implemented in FrameXML/ItemRef.lua

Hyperlinks are clickable (chat) links. Since patch 7.0.3 unused delimited segments will be empty rather than 0, e.g. ":::" instead of ":0:0:0"

|cffxxxxxx|HlinkType:info|h[text]|h|r

Each kind of hyperlink has the following format:

Text Description
|cffxxxxxx The color code
|H Begins the hyperlink
linkType:info 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

The server may expect certain combinations of color, payload and text as SendChatMessage() can reject invalid entries.

HOWTO: Inspecting 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"

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"

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"

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"
Note: This link type can also be used for securely implementing custom links by posthooking SetItemRef() since it silently fails on non-numbers, whereas custom link types would error out. It does not work on actual chat messages through SendChatMessage() as the server won't show the message.
hooksecurefunc("SetItemRef", function(link)
	local linkType, addon, param1 = strsplit(":", link)
	if linkType == "garrmission" and addon == "SomeAddon" then
		if param1 == "foo" then
			print(link)
		end
	end
end)
print("|cFFFFFF00|Hgarrmission:SomeAddon:foo|h[Some Clickable Message]|h|r")

instancelock

Opens the /raidinfo list.

instancelock : guid : instanceID : difficulty : defeatedEncounters
  • guid The player's GUID.
  • instanceID The instance's InstanceID
  • difficulty The instance's DifficultyID
  • defeatedEncounters 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
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 Inv relics hourglass 02 [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

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

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

shareachieve

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"

shareitem

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"

sharess

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"
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()

trade

Shows the tradeskill window (from another player).

trade : guid : spellID : skillLineID
Example: "|cffffd000|Htrade:Player-3296-000957C8:195128:185|h[Cooking]|h|r"
See also: TradeSkillLink

transmogappearance

transmogappearance : sourceID

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

transmogset : setID

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()

References