-
Notifications
You must be signed in to change notification settings - Fork 7
9.0.1 Consolidated UI Changes
- Notable Changes
- API Changes by Category
- Deprecated API Removals
- Enum Changes
- Backdrop System Changes
- Resources
- Frames no longer provide any form of Backdrop API by default. See Backdrop System Changes.
- Various
LE_*
enumerations have been moved to the globalEnum
table. See Enum Changes. - APIs deprecated during the lifetime of 8.x and present within the Blizzard_Deprecated addon have been removed. See Deprecated API Removals.
- New files and TOC metadata changes no longer require a client restart to take effect, only a
/reload
. -
Friendly nameplates are no longer flagged as forbidden frames inside of instances.Reverted in build 35598. - The
|r
escape sequence now pops nested|c
color sequences in-order, instead of resetting the text to the default color. -
9.0.2: The
DeleteCursorItem
function is now protected and requires a hardware event when invoked from insecure code.
The below listing isn't complete and may change over the course of the beta. This listing is broken into namespaces matching those exposed by the API.
Returns true if the specified action is a harmful one.
Returns true if the specified action is a helpful one.
C_BarberShop New!
This new namespace provides APIs for controlling the barber shop interface. The entirety of the old barber shop API has been replaced, though many of the events have not changed.
Submits chosen barber shop customizations to the server for application.
Dismisses the barber shop UI, cancelling all customizations.
Clears all actively previewed customization choices on the character.
Returns an array of CharCustomizationCategory structures.
Returns the current camera zoom level.
Returns BarberShopCharacterData about the character.
Returns the cost of the currently selected customizations.
Returns true if the player is currently customizing an alternate form.
Returns true if the old barber shop UI has been loaded. Presumably this will be removed before release.
Previews a customization choice on the character without selecting it.
Resets the camera rotation.
Resets all selected customization choices.
Rotates the camera by the specified number of degrees.
Sets the distance offset of the camera.
Sets the zoom level of the camera.
Selects a customization choice.
Controls whether or not the character should be dressed.
Changes the selected gender of the character.
Controls whether the alternate form for a character is being customized.
Changes the shapeshift form being customized. Set to nil to revert to customizing the characters' normal form.
Zooms the camera by a specifed amount.
As of build 35522 the legacy Barber Shop API still exists, with the exception of the following functions:
CanAlterSkin
Most events from the legacy barber shop API still remain, in addition to the following new ones.
Fired when the available customizations or any data about them has changed.
Replaces BARBER_SHOP_SUCCESS
. Now has a payload that can indicate either success or failure.
C_ChromieTime New!
This new namespace provides APIs for querying and controlling the active timewalking expansion campaign for legacy content.
Closes the timewalking campaign selection UI, triggering the CHROMIE_TIME_CLOSE
event.
Returns information about a specified timewalking expansion campaign.
Returns a table listing all available timewalking expansion campaigns.
Requests that the player be assigned to a specified timewalking expansion campaign.
Fired when the user dismisses the timewalking campaign selection UI.
Fired when the timewalking campaign selection UI should be displayed to the user.
Represents information about a timewalking expansion campaign. This mirrors the columns available in the UiChromieTimeExpansionInfo
database.
Field | Type | Description |
---|---|---|
id |
number | The ID of the expansion, to be supplied to C_ChromieTime.SelectChromieTimeOption . |
name |
string | The title name of the campaign. |
description |
string | The long-form description of the campaign. |
mapAtlas |
string | An atlas member name displayed as the portrait for the currently selected campaign frame. |
previewAtlas |
string | An atlas member name displayed as the background for campaign selection buttons. |
This namespace has had multiple global functions relocated inside of it, and now returns structured data.
Replaces ExpandCurrencyList
.
Replaces GetBackpackCurrencyInfo
. Now returns structured BackpackCurrencyInfo data.
Replaces GetCurrencyInfo
. Now returns structured CurrencyInfo data.
Returns structured CurrencyInfo data parsed from the given currency hyperlink.
Replaces GetCurrencyLink
.
Replaces GetCurrencyListInfo
. Now returns structured CurrencyInfo data.
Replaces GetCurrencyListLink
.
Replaces GetCurrencyListSize
.
Replaces PickupCurrency
.
Replaces SetCurrencyBackpack
.
Replaces SetCurrencyUnused
.
This namespace had an event added to signal when the cursor type is changed.
Fired when the cursor changes. Payload includes information on what the previous and new cursor types are (such as item, money, spells, etc.).
Represents the type of the cursor.
Returns the number of seconds until the weekly reset.
This namespace has had various global EJ_
functions relocated into it. The moved functions may have undergone parameter or return value changes.
Replaces EJ_GetLootInfo
. Returns an EncounterJournalItemInfo structure about a lootable encounter journal item.
Replaces EJ_GetLootInfoByIndex
. Returns an EncounterJournalItemInfo structure about a lootable item present on an encounter.
Replaces EJ_GetSlotFilter
. Returns the currently active equipment slot filter.
Replaces EJ_ResetSlotFilter
. Resets the equipment slot filter.
Replaces EJ_SetSlotFilter
. Sets the active equipment slot filter. Setting this to Enum.ItemSlotFilterType.NoFilter
will reset the filter.
C_GamePad New!
Unknown.
Unknown.
Converts the name of a keybinding to its assigned gamepad button index. Returns nil if no gamepad button is assigned to the requested keybinding.
Returns the name of the keybinding assigned to a specified gamepad button index. Returns nil if no keybinding is assigned to the requested button.
Unknown.
Unknown.
Unknown.
Unknown.
Unknown.
Unknown.
Unknown.
Unknown.
Unknown.
Returns true if gamepad support is enabled on this system.
Unknown.
Unknown.
Returns true if a connected gamepad should automatically either take (true
) or release (false
) control of the cursor when an input is given, such as moving the camera stick or pressing the jump button.
Returns true if the gamepad can be configured to control the cursor.
Returns true if the gamepad is currently controlling the cursor.
Returns true if the gamepad is currently permitted to control player or camera movement. Note: The name suggests this should be camera movement only.
Controls whether or not the gamepad should control cursor movement.
Controls whether or not the gamepad should control player and camera movement.
Fired when the stored configurations for gamepads are changed.
Fired when a gamepad is initially connected to the host system.
Fired when a gamepad is disconnected from the host system.
- GamePadAxisConfig
- GamePadConfig
- GamePadConfigID
- GamePadMappedState
- GamePadRawAxisMapping
- GamePadRawButtonMapping
- GamePadRawState
- GamePadStick
- GamePadStickConfig
Registers or unregisters a frame from receiving gamepad button inputs.
Registers or unregisters a frame from receiving gamepad stick motion inputs.
Returns true if the frame is registered to receive gamepad button inputs.
Returns true if the frame is registered to receive gamepad stick motion inputs.
Invoked when the frame receives a button press from a connected gamepad.
Invoked when the frame receives a button release from a connected gamepad.
Invoked when the frame receives a gamepad stick motion from a connected gamepad.
The legacy joystick script handlers have been removed:
OnJoystickStickMotion
OnJoystickAxisMotion
OnJoystickButtonDown
OnJoystickButtonUp
OnJoystickHatMotion
This namespace has had a lot of gossip-related global functions pulled into it, and has had its existing two functions both renamed. Functions moved here may have undergone parameter and return value changes.
Replaces CloseGossip
.
Replaces ForceGossip
.
Replaces GetGossipActiveQuests
. Now returns a table of GossipQuestUIInfo.
Replaces GetGossipAvailableQuests
. Now returns a table of GossipQuestUIInfo.
Replaces GetNumGossipActiveQuests
.
Replaces GetNumGossipAvailableQuests
.
Replaces GetNumGossipOptions
.
Replaces GetGossipOptions
. Now returns a table of GossipOptionUIInfo.
Renamed from C_GossipInfo.GetGossipPoiForUiMapID
.
Renamed from C_GossipInfo.GetGossipPoiInfo
.
Replaces GetGossipText
.
Replaces SelectGossipActiveQuest
.
Replaces SelectGossipAvailableQuest
.
Replaces SelectGossipOption
.
C_Item.IsItemCorruptable
Fired when an item is modified by an action, such as Runeforging. The payload includes the hyperlink of the item before and after the modification.
This namespace has had functions added to test whether or not the player is eligible to use various LFG-related features.
Returns true if the player is allowed to use group finder tools, or false and a reason string if not.
Returns true if the player is allowed to queue for instanced dungeon content, or false and a reason string if not.
Returns true if the player is allowed to queue for instanced raid content, or false and a reason string if not.
Returns true if the player is allowed to queue for instanced PvP content, or false and a reason string if not.
Returns true if the player is allowed to use the premade group finder, or false and a reason string if not.
This namespace has had its functions both renamed and changed to return structured data. Additional functions were added for querying loss-of-control effects on non-player units, however these appear to only work from commentator mode.
Returns LossOfControlData about an active loss-of-control effect on the player. Replaces C_LossOfControl.GetEventInfo
.
Returns LossOfControlData about an active loss-of-control effect for a specified unit. Will always return nil outside of commentator mode.
Returns the number of active loss-of-control effects on the player. Replaces C_LossOfControl.GetNumEvents
.
Returns the number of active loss-of-control effects for a specified unit. Will always return nil outside of commentator mode.
Fired when a new active loss-of-control effect is added to a player. Only relevant for commentator mode.
Fired when the primary active loss-of-control effect is updated. Only relevant for commentator mode.
Data representing an active loss-of-control effect.
This namespace has been augmented with new functions for controlling user waypoints.
Clears the currently assigned user waypoint, if one exists.
Returns the size in yards of the area represented by the map.
Returns the UiMapPoint structure for the currently assigned user waypoint, if one exists.
Returns the UiMapPoint structure encoded by a given worldmap hyperlink.
Returns a worldmap hyperlink string for the currently assigned user waypoint, if one exists.
Returns the map position for a user waypoint that is placed on a specified map ID.
Returns true if a user waypoint has been assigned.
Changes the user-assigned waypoint to the specified location, encoded as a UiMapPoint structure.
Structure representing a location on a world map.
Field | Type | Description |
---|---|---|
uiMapID |
number | ID of the map that a waypoint should be placed upon. |
position |
Vector2D | Location on the map to place the waypoint at, between [0-1]. |
Fired when the user-controllable waypoint is changed via C_Map.SetUserWaypoint
.
-
C_SuperTrack.SetSuperTrackedUserWaypoint
to display the waypoint in the game world. - Example of setting a waypoint using a UiMapPoint structure.
-
Documentation on the new
worldmap
link type.
C_Navigation New!
This namespace provides APIs for managing the frame used to display in-world navigational waypoints. Currently, frames exposed by these APIs are not marked as forbidden or restricted even inside of instances.
Returns the distance in yards from the players current location to the tracked location.
Returns the UI frame positioned in the world for displaying the tracked location, if one has been created.
Returns state information about the currently tracked location, such as its occlusion status. See the NavigationState
enum below.
Returns true if the currently tracked location can be represented by any screen position. This can presumably return false a tracked location weren't valid for the current map, or if the player is possibly too close to a tracked location.
Returns true if the navigation frame position was clamped due to having been located off-screen. This can indicate that the player may not be facing towards the tracked location.
Fired when the world-anchored navigation frame is created.
Fired when the world-anchored navigation frame is destroyed.
Indicates the state of the item actively being tracked, such as whether or not it's currently occluded by world geometry.
This namespace was altered to provide an API for performing a group-wide countdown timer similar to those provided by boss mods.
Countdown timer sent to all party members. Has no effect if not in a group/instance. No return values.
C_PlayerChoice New!
This new namespace replaces C_QuestChoice
and extends it with a few new functions. This change also affects various global frame and template names, which may need updating to drop "QuestChoice" from their names.
Replaces C_QuestChoice.GetQuestChoiceInfo
and GetQuestChoiceInfo
.
Replaces C_QuestChoice.GetQuestChoiceOptionInfo
and GetQuestChoiceOptionInfo
.
Replaces GetQuestChoiceRewardCurrency
, GetQuestChoiceRewardFaction
, GetQuestChoiceRewardInfo
, and GetQuestChoiceRewardItem
.
Returns true if the player has an outstanding player choice that requires a response.
Replaces CloseQuestChoice
.
Replaces SendQuestChoiceResponse
.
Replaces QUEST_CHOICE_CLOSE
.
Replaces QUEST_CHOICE_UPDATE
.
- PlayerChoiceInfo
- PlayerChoiceOptionInfo
- PlayerChoiceRewardCurrencyInfo
- PlayerChoiceRewardInfo
- PlayerChoiceRewardItemInfo
- PlayerChoiceRewardReputationInfo
This namespace was augmented with new functions for testing various player content restrictions to replace various hardcoded level checks.
Returns true if the player is eligible to enter a timewalking campaign.
Returns true if the player can use area looting.
Returns true if the player can use mount equipment.
Returns a RelativeContentDifficulty indicating how much difficulty the player may have if fighting a given unit.
Returns a RelativeContentDifficulty indicating how much difficulty the player may have when performing a given quest.
Returns true if the player is eligible for the legacy new player experience tutorial, or false and a reason string if not.
Returns true if the player is eligible for the updated new player experience tutorial, or false and a reasons string if not.
Returns true if the player is actively within a timewalking campaign.
Returns true if the player has new player experience restrictions in place.
Returns true if the player is allowed to use the Rated PvP UI, or false and a reason string if not.
Replaces GetBattlefieldVehicleInfo
. Returns a BattlefieldVehicleInfo structure.
Returns a list of LevelUpBattlegroundInfo structures indicating the backgrounds available for leveling.
Unknown.
This namespace has had a large number of global functions relocated to it. A few functions have also undergone parameter or return value changes.
Replaces AbandonQuest
.
Replaces AddQuestWatch
and AddQuestWatchForQuestID
.
Replaces AddWorldQuestWatch
.
Replaces CanAbandonQuest
.
Replaces GetAbandonQuestName
. Returns the ID of the quest being abandoned.
Replaces GetAbandonQuestItems
.
Replaces GetQuestsCompleted
. Now returns quest IDs an a sorted array ({ QuestID1, QuestID2, ... }
).
Replaces GetQuestBountyInfoForMapID
. Returns a table of BountyInfo structures.
Returns the bounty set for a specified map ID.
Replaces GetDistanceSqToQuest
and C_TaskQuest.GetDistanceSqToQuest
.
Replaces GetQuestLogTitle
. Returns structured QuestInfo data.
Replaces GetQuestLogIndexByID
.
Replaces GetNumQuestLogEntries
.
Replaces GetNumQuestWatches
.
Replaces GetNumWorldQuestWatches
.
Returns the visual QuestTheme associated with a given quest.
Returns the quest ID represented by the given quest log index.
Returns the quest ID represented by the given quest watch index.
Returns the quest ID represented by the given quest watch index.
Replaces GetQuestTagInfo
. Returns structured QuestTagInfo associated with a given quest.
Returns the QuestWatchType associated with a given quest.
Replaces GetQuestLogRequiredMoney
.
Replaces GetQuestLogSelection
.
Replaces GetQuestLogGroupNum
.
Replaces GetQuestLogTimeLeft
. Now additionally returns the total time available to complete a quest.
Replaces GetQuestLogTitle
.
Replaces C_QuestLog.GetQuestInfo
.
Returns true if the specified quest is an account-wide quest.
Replaces IsQuestComplete
.
Returns true if the specified quest has been failed.
Returns true if the specified quest is on the map, and whether or not it has any local PoIs.
Replaces GetQuestLogPushable
.
Replaces IsQuestBounty
.
Returns true if the specified quest is a calling quest.
Replaces IsQuestCriteriaForBounty
.
Replaces IsQuestInvasion
.
Replaces IsQuestTask
.
Returns true if the specified quest is a repeatable quest.
Replaces IsUnitOnQuest
and IsUnitOnQuestByQuestID
.
Returns true if the specified quest is a world quest.
Returns true if all criteria for a given quest are complete.
Replaces RemoveQuestWatch
and RemoveQuestWatchForQuestID
.
Replaces RemoveWorldQuestWatch
.
Replaces SetAbandonQuest
.
Replaces SelectQuestLogEntry
.
Replaces SortQuestWatches
.
Event payload was altered to remove questIndex
, now only supplies a questId
.
-
GetQuestGreenRange
- This is replaced byUnitQuestTrivialLevelRange("player")
. GetQuestIndexForTimer
GetQuestIndexForWatch
-
GetQuestLogIsAutoComplete
- This information is available in the QuestInfo structure returned byC_QuestLog.GetInfo
. GetQuestLogTaskInfo
-
GetQuestTimers
- This seems to be replaced by C_QuestLog.GetTimeAllowed, but now requires one query for each quest. GetQuestWatchIndex
GetQuestWatchInfo
GetScalingQuestGreenRange
GetWorldQuestWatchInfo
IsQuestHardWatched
IsWorldQuestHardWatched
QuestPOIGetQuestIDByIndex
QuestPOIGetQuestIDByVisibleIndex
This namespace had functions added to test whether or not the player is eligible to use certain UI features.
Returns true if the player is allowed to use the PvP talent UI, or false and a reason string if not.
Returns true if the player is allowed to use the specialization UI, or false and a reason string if not.
Returns true if the player is allowed to use the talent UI, or false and a reason string if not.
C_SuperTrack New!
This namespace provides APIs for controlling the tracking of points of interest via a world-anchored frame.
Returns the type of the location currently being tracked as the highest priority, if one exists.
The relative priority of the individual types isn't yet known, but only the highest priority item can be actively tracked by the UI.
Returns the quest ID currently being tracked, if set. Replaces GetSuperTrackedQuestID
.
Returns true if the location of any point is actively being tracked.
Returns true if the current location being tracked is your own corpse.
Returns true if the current location being tracked is a quest indicator.
Returns true if the current location being tracked is a user-defined waypoint, as set via the C_Map
API.
Changes the quest ID actively being tracked. Replaces SetSuperTrackedQuestID
.
Controls whether or not a user waypoint should be tracked. Set to true if the user waypoint should be tracked, or false if not.
Represents the type of a location currently being tracked.
Fired when the actively tracked location is changed. Replaces SUPER_TRACKED_QUEST_CHANGED
.
C_System New!
Returns an array of all UI objects under the mouse cursor, as would be exposed through the frame stack tooltip. The returned table is ordered from highest object level to lowest.
recipeLevel
has been added to any function which takes a recipeSpellID. New functions for optional reagents have been added.
Returns TradeSkillRecipeInfo
for the recipeSpellID. Parameters have changed: recipeLevel
is new, and former returnTable
is removed.
Returns a table of indices for combo points that have been charged. If the unit does not have combo points, or no points are charged, this function may return nil.
- This appears to be related to a Kyrian covenant ability.
- The current implementation indicates that the returned table will only contain at-most a single index.
Returns the timewalking campaign ID that a specified unit is in. See C_ChromieTime.GetChromieTimeExpansionOption
.
Returns true if the specified unit is in the primary phase of the party.
Returns a PhaseReason indicating the cause for a unit being phased off from the player. If the unit isn't phased, returns nil
. Replaces UnitInPhase
and UnitIsWarModePhased
.
-
UnitIsWarModeActive
- Can be replaced byUnitPhaseReason
. -
UnitIsWarModeDesired
- Can be replaced byUnitPhaseReason
. -
UnitIsWarModePhased
- Can be replaced byUnitPhaseReason
.
Fired when the charged state of a units' combo points changes.
The following events were removed:
-
UNIT_HEALTH_FREQUENT
- The functionality provided by this event is now offered byUNIT_HEALTH
.
Enumeration providing context for why two units are phased separately.
Name | Description |
---|---|
Phasing |
The queried unit is phased for either quest-related or unknown reasons. |
Sharding |
The queried unit is in a different zone shard. |
WarMode |
The queried unit has a different war mode setting. |
ChromieTime |
The queried unit is questing in a different timewalking campaign. |
C_UserFeedback New!
This new namespace houses various feedback functions used by the in-game help tools.
Replaces GMSubmitBug
.
Replaces GMSubmitSuggestion
.
C_ZoneAbility New!
This namespace provides functions for querying information about abilities activated only within specific in-game zones.
Returns an array of abilities active within the current zone.
GetZoneAbilitySpellInfo
Represents details about a zone-specific ability.
Field | Type | Description |
---|---|---|
zoneAbilityID |
number | ID for this zone ability. Likely correlates to the ID column of ExtraAbilityInfo. |
uiPriority |
number | Priority used for sorting zone abilities. |
spellID |
number | Spell ID that the ability provides. |
textureKit |
string? | Optional name of a texture kit prefix for this ability. Texture kit names map to atlases, potentially suffixed by -<number> , where number is the number of abilities with matching texture kit names. |
tutorialText |
string? | Optional tutorial text to show for the ability. This appears to typically be a hint that the ability can be dragged to a users' action bars. |
The following changes don't belong to any specific namespace. Official documentation on these may be sparse.
Resets the camera to a center position on the screen. This effect is immediate.
Returns the ID of an active quest available from an NPC. Used in conjunction with GetNumActiveQuests
.
Returns the name of the current zone, suitable for use in a /who z-"<name>"
query.
Returns the name of the current region, as determined by the existing GetCurrentRegion()
function.
Returns the system default UI scale.
Returns the current level the player is on of the Torghast tower scenario.
Returns a chat link for a Torghast buff identified by the given spell ID.
Returns the highest reachable character level for the latest expansion.
Returns the highest reachable character level for the players' owned expansion level.
Returns information about an aura on the player identified by the given spell ID. Same returns as UnitAura
, returns nil
if the aura is not found.
Returns the type of reward offered by a quest at the given choice index.
Returns the type of reward offered by a quest at the given choice index.
Returns the expansion level currently active on the server, in the form of an LE_EXPANSION_
enum variant.
Replaces GetSuggestedGroupNum
.
Returns true if the player is located within the Torghast tower scenario.
Returns true if the player is on the initial floor of the Torghast tower scenario.
Processes pending client exceptions. Only available in internal builds.
Requests that the bottom-left action bar be shown. Used for the Hunter pet taming tutorial in the new player experience.
SetCursorVirtualItem(itemID, uiCursorType) New!
Picks up a virtual (fake) item with the specified ID with the cursor. The cursor type parameter affects the sound played when the item is "dropped", but otherwise has no visual differences.
Returns true if the system supports clipping the cursor region to the client window.
Unknown. Assumed to return true if attempting to replace Conduits.
Returns true if a units' nameplate should appear in a "widgets-only" mode.
Returns the difference between the units' current level and the level at which fixed-level quests are of trivial difficulty.
Returns the difference between the units' current level and the level at which scaling-level quests are of trivial difficulty.
GetUITextureKitInfo
IsKioskModeEnabled
QueryWorldCountdownTimer
SetLFGBonusFactionID
TargetSpellHasApplyCorruption
Fired when the bottom left actionbar is shown by a call to RequestBottomLeftActionBar
.
APIs deprecated over the course of the 8.x expansion lifecycle will be removed with 9.0.1. A summarized listing can be found below, with links to the compatibility wrappers provided by Blizzard to ease transition.
- Many friends list, ignore list, and who related functions were relocated to the
C_FriendList
namespace. - APIs around confirming summon requests were relocated to the
C_SummonInfo
namespace. -
GetQuestChoiceInfo
andGetQuestChoiceOptionInfo
were relocated toC_PlayerChoice
, and now return structured data. -
C_Calendar.GetDate
was relocated and renamed toC_DateAndTime.GetCurrentCalendarTime
. -
C_DateAndTime.GetDateFromEpoch
,C_DateAndTime.GetTodaysDate
, andC_DateAndTime.GetYesterdaysDate
were replaced by other functions within the same namespace. -
GetAtlasInfo
was relocated to theC_Texture
namespace and now returns structured data. -
C_AreaPoiInfo.GetAreaPOITimeLeft
was replaced byC_AreaPoiInfo.GetAreaPOISecondsLeft
. -
C_Club.AddClubStreamToChatWindow
was replaced byC_Club.AddClubStreamChatChannel
; you may also need to callAddChatWindowChannel
.
-
WorldMapTooltip
became an alias forGameTooltip
. -
CreatePoolCollection
was renamedCreateFramePoolCollection
, andPoolCollection
renamedFramePoolCollectionMixin
. -
InActiveBattlefield
was relocated and renamedC_PvP.IsActiveBattlefield
. -
RequestInspectHonorData
andHasInspectHonorData
were removed. -
C_PvP.GetBrawlInfo
was replaced byC_PvP.GetAvailableBrawlInfo
.- The
canQueue
field from the new function is synonymous with theactive
field from the old function.
- The
- Various
C_Social
APIs were modified.
-
IsRatedBattleground
,IsRatedArena
, andIsRatedMap
were relocated to theC_PvP
namespace. -
GetNumBattlefieldStats
andGetBattlefieldStatInfo
have been replaced with new functions in theC_PvP
namespace. - Functions for querying the guild roster and officer notes were relocated to the
C_GuildInfo
namespace. -
GetGuildNewsInfo
was relocated to theC_GuildInfo
namespace, and now returns structured data. -
C_ChatInfo.ReportPlayer
was replaced byC_ReportSystem.OpenReportPlayerDialog
.
-
IsQuestFlaggedCompleted
was relocated to theC_QuestLog
namespace. - Some Battle.net Friend API functions were relocated to the
C_BattleNet
namespace and now return structured data. - CompactUnitFrame functions for buff/debuff display were substantially changed.
- Party/raid control functions (inviting, converting to/from raids) were relocated to the
C_PartyInfo
namespace. - Newbie tooltips (and
GameTooltip_AddNewbieTip
) were removed. - Recruit-a-Friend APIs are dead, Jim.
- Many ContainerFrame global variables were removed. Make a copy of the ones you need.
- Various
UnitAlternatePower
APIs were replaced.
LE_EXPANSION_9_0
has been renamed to LE_EXPANSION_SHADOWLANDS
.
The following enums have been relocated to the Enum
table; their new name is the same as the original, except with a change of casing:
-
LE_FOLLOWER_ABILITY_CAST_RESULT_*
→Enum.FollowerAbilityCastResult.*
-
LE_GARR_FOLLOWER_QUALITY_*
→Enum.GarrFollowerQuality.*
-
LE_GARRISON_TALENT_AVAILABILITY_*
→Enum.GarrisonTalentAvailability.*
-
LE_GARRISON_TYPE_*
→Enum.GarrisonType.*
-
LE_INVENTORY_TYPE_*
→Enum.InventoryType.*
-
LE_ITEM_QUALITY_*
→Enum.ItemQuality.*
-
LE_MAP_OVERLAY_DISPLAY_LOCATION_*
→Enum.MapOverlayDisplayLocation.*
-
LE_QUEST_FREQUENCY_*
→Enum.QuestFrequency.*
-
LE_QUEST_TAG_TYPE_*
→Enum.QuestTag.*
-
LE_TRANSMOG_COLLECTION_TYPE_*
→Enum.TransmogCollectionType.*
-
LE_TRANSMOG_TYPE_*
→Enum.TransmogType.*
-
LE_WORLD_QUEST_QUALITY_*
→Enum.WorldQuestQuality.*
Example: LE_GARRISON_TYPE_8_0
is now Enum.GarrisonType.Type_8_0
The following enums have also been moved to the Enum
table, and have had their names changed.
-
LE_FOLLOWER_MISSION_COMPLETE_STATE_*
→Enum.GarrFollowerMissionCompleteState.*
-
LE_FOLLOWER_TYPE_*
→Enum.GarrisonFollowerType.*
-
LE_ITEM_FILTER_TYPE_*
→Enum.ItemSlotFilterType.*
Frames no longer provide Backdrop related APIs by default and need to be opted-in by either inheriting BackdropTemplate
or including BackdropTemplateMixin
and its associated script handlers.
In the case of Lua-created frames that don't currently inherit a template, the following example would work on both live and beta clients:
local frame = CreateFrame("Frame", nil, UIParent, BackdropTemplateMixin and "BackdropTemplate");
frame:SetBackdrop({ --[[ Usual backdrop parameters here ]] });
If necessary, templates can be comma-delimited to specify multiple.
For frames created in XML using the <Backdrop>
element, ensure that the frame inherits the required template and instead either specify the parameters for the backdrop as the <KeyValue>
elements listed below, or convert the backdrop definition to Lua and call self:SetBackdrop()
in an OnLoad
script handler.
The following <KeyValue>
elements are accepted by the template:
Key | Type | Description |
---|---|---|
backdropInfo |
global table | Name of a global table providing the backdrop definition, with bgFile , edgeFile , etc. |
backdropColor |
global table | Name of a global Color table for the background texture vertex color. If not specified, defaults to white. The alpha component is ignored. |
backdropColorAlpha |
number [0-1] | Alpha channel value for the background texture vertex color. If not specified, defaults to 1. |
backdropBorderColor |
global table | Name of a global Color table for the border texture vertex color. If not specified, defaults to white. The alpha component is ignored. |
backdropBorderColorAlpha |
number [0-1] | Alpha channel value for the border texture vertex color. If not specified, defaults to 1. |
backdropBorderBlendMode |
string | Name of a BlendMode to apply to the border textures. Optional, defaulting to BLEND. |
Any key above listed as "global table" needs to refer to a table in the global environment which contains the backdrop definition as-would-be-passed to SetBackdrop directly. A full list of common Blizzard backdrops is available here.
<Frame name="TestFrame" parent="UIParent" inherits="BackdropTemplate">
<KeyValues>
<KeyValue key="backdropInfo" value="BACKDROP_TOOLTIP_16_16_5555" type="global"/>
<KeyValue key="backdropBorderColor" value="LEGENDARY_ORANGE_COLOR" type="global"/>
<KeyValue key="backdropBorderColorAlpha" value="0.25" type="number"/>
</KeyValues>
<Size x="300" y="300"/>
<Anchors>
<Anchor point="CENTER"/>
</Anchors>
<Scripts>
<OnLoad inherit="prepend">
print("Loaded!");
</OnLoad>
</Scripts>
</Frame>
BackdropTemplate
installs an OnLoad
and OnSizeChanged
script handler on any frames that inherit it. If you have custom logic for either of these handlers, ensure that you call the original functions (self:OnBackdropLoaded()
and self:OnBackdropSizeChanged()
) as part of them. In XML, you can use the inherit="prepend"
attribute to do this automatically.