Skip to content

9.0.1 Consolidated UI Changes

Daniel Yates edited this page May 25, 2021 · 111 revisions

Contents

Notable Changes

  • Frames no longer provide any form of Backdrop API by default. See Backdrop System Changes.
  • Various LE_* enumerations have been moved to the global Enum 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.

API Changes by Category

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.

Functions

Returns true if the specified action is a harmful one.

Returns true if the specified action is a helpful one.

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.

Functions

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.

Removed Functions

As of build 35522 the legacy Barber Shop API still exists, with the exception of the following functions:

  • CanAlterSkin

Events

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.

Structures

This new namespace provides APIs for querying and controlling the active timewalking expansion campaign for legacy content.

Functions

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.

Events

Fired when the user dismisses the timewalking campaign selection UI.

Fired when the timewalking campaign selection UI should be displayed to the user.

Structures

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.

See Also

This namespace has had multiple global functions relocated inside of it, and now returns structured data.

Functions

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.

Structures

See Also

This namespace had an event added to signal when the cursor type is changed.

Events

Fired when the cursor changes. Payload includes information on what the previous and new cursor types are (such as item, money, spells, etc.).

Enums

Represents the type of the cursor.

Functions

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.

Functions

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.

Enums

Structures

C_GamePad New!

Functions

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.

CanAutoSetGamePadCursorControl(desiredState)

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.

CanGamePadControlCursor()

Returns true if the gamepad can be configured to control the cursor.

IsGamePadCursorControlEnabled()

Returns true if the gamepad is currently controlling the cursor.

IsGamePadFreelookEnabled()

Returns true if the gamepad is currently permitted to control player or camera movement. Note: The name suggests this should be camera movement only.

SetGamePadCursorControl(desiredState)

Controls whether or not the gamepad should control cursor movement.

SetGamePadFreeLook(desiredState)

Controls whether or not the gamepad should control player and camera movement.

Events

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.

Structures

Frame Methods

Frame:EnableGamePadButton(self, enableFlag)

Registers or unregisters a frame from receiving gamepad button inputs.

Frame:EnableGamePadStick(self, enableFlag)

Registers or unregisters a frame from receiving gamepad stick motion inputs.

Frame:IsGamePadButtonEnabled(self)

Returns true if the frame is registered to receive gamepad button inputs.

Frame:IsGamePadStickEnabled(self)

Returns true if the frame is registered to receive gamepad stick motion inputs.

Script Handlers

OnGamePadButtonDown(self, button)

Invoked when the frame receives a button press from a connected gamepad.

OnGamePadButtonUp(self, button)

Invoked when the frame receives a button release from a connected gamepad.

OnGamePadStick(self, stick)

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

See Also

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.

Functions

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.

Enums

Structures

Removed Functions

  • C_Item.IsItemCorruptable

Events

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.

Functions

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.

Functions

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.

Events

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.

Structures

Data representing an active loss-of-control effect.

This namespace has been augmented with new functions for controlling user waypoints.

Functions

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.

Structures

UiMapPoint

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].

Events

Fired when the user-controllable waypoint is changed via C_Map.SetUserWaypoint.

See Also

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.

Functions

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.

Events

Fired when the world-anchored navigation frame is created.

Fired when the world-anchored navigation frame is destroyed.

Enums

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.

Functions

Countdown timer sent to all party members. Has no effect if not in a group/instance. No return values.

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.

Functions

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.

Events

Replaces QUEST_CHOICE_CLOSE.

Replaces QUEST_CHOICE_UPDATE.

Enums

Structures

This namespace was augmented with new functions for testing various player content restrictions to replace various hardcoded level checks.

Functions

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.

Functions

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.

Structures

This namespace has had a large number of global functions relocated to it. A few functions have also undergone parameter or return value changes.

Functions

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.

Events

Event payload was altered to remove questIndex, now only supplies a questId.

Removed Functions

  • GetQuestGreenRange - This is replaced by UnitQuestTrivialLevelRange("player").
  • GetQuestIndexForTimer
  • GetQuestIndexForWatch
  • GetQuestLogIsAutoComplete - This information is available in the QuestInfo structure returned by C_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

Enums

Structures

This namespace had functions added to test whether or not the player is eligible to use certain UI features.

Functions

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.

This namespace provides APIs for controlling the tracking of points of interest via a world-anchored frame.

Functions

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.

Enums

Represents the type of a location currently being tracked.

Events

Fired when the actively tracked location is changed. Replaces SUPER_TRACKED_QUEST_CHANGED.

C_System New!

Functions

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.

Functions

Returns TradeSkillRecipeInfo for the recipeSpellID. Parameters have changed: recipeLevel is new, and former returnTable is removed.

Functions

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.

Removed Functions

Events

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 by UNIT_HEALTH.

Enums

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.

This new namespace houses various feedback functions used by the in-game help tools.

Functions

Replaces GMSubmitBug.

Replaces GMSubmitSuggestion.

This namespace provides functions for querying information about abilities activated only within specific in-game zones.

Functions

Returns an array of abilities active within the current zone.

Removed Functions

  • GetZoneAbilitySpellInfo

Structures

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.

See Also

Global APIs

The following changes don't belong to any specific namespace. Official documentation on these may be sparse.

Functions

CenterCamera() New!

Resets the camera to a center position on the screen. This effect is immediate.

GetActiveQuestID(questIndex) New!

Returns the ID of an active quest available from an NPC. Used in conjunction with GetNumActiveQuests.

GetAreaText() New!

Returns the name of the current zone, suitable for use in a /who z-"<name>" query.

GetCurrentRegionName() New!

Returns the name of the current region, as determined by the existing GetCurrentRegion() function.

GetDefaultScale() New!

Returns the system default UI scale.

GetJailersTowerLevel() New!

Returns the current level the player is on of the Torghast tower scenario.

GetMawPowerLinkBySpellID(spellID) New!

Returns a chat link for a Torghast buff identified by the given spell ID.

GetMaxLevelForLatestExpansion() New!

Returns the highest reachable character level for the latest expansion.

GetMaxLevelForPlayerExpansion() New!

Returns the highest reachable character level for the players' owned expansion level.

GetPlayerAuraBySpellID(spellID) New!

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.

GetQuestItemInfoLootType(choiceIndex) New!

Returns the type of reward offered by a quest at the given choice index.

GetQuestLogChoiceInfoLootType(choiceType, choiceIndex) New!

Returns the type of reward offered by a quest at the given choice index.

GetServerExpansionLevel() New!

Returns the expansion level currently active on the server, in the form of an LE_EXPANSION_ enum variant.

GetSuggestedGroupSize()

Replaces GetSuggestedGroupNum.

IsInJailersTower() New!

Returns true if the player is located within the Torghast tower scenario.

IsOnGroundFloorInJailersTower() New!

Returns true if the player is on the initial floor of the Torghast tower scenario.

ProcessExceptionClient() New!

Processes pending client exceptions. Only available in internal builds.

RequestBottomLeftActionBar() New!

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.

SupportsClipCursor() New!

Returns true if the system supports clipping the cursor region to the client window.

TargetSpellReplacesBonusTree() New!

Unknown. Assumed to return true if attempting to replace Conduits.

UnitNameplateShowsWidgetsOnly(unit) New!

Returns true if a units' nameplate should appear in a "widgets-only" mode.

UnitQuestTrivialLevelRange(unit) New!

Returns the difference between the units' current level and the level at which fixed-level quests are of trivial difficulty.

UnitQuestTrivialLevelRangeScaling(unit) New!

Returns the difference between the units' current level and the level at which scaling-level quests are of trivial difficulty.

Removed Functions

  • GetUITextureKitInfo
  • IsKioskModeEnabled
  • QueryWorldCountdownTimer
  • SetLFGBonusFactionID
  • TargetSpellHasApplyCorruption

Events

ACTIONBAR_SHOW_BOTTOMLEFT New!

Fired when the bottom left actionbar is shown by a call to RequestBottomLeftActionBar.

Deprecated API Removals

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 and GetQuestChoiceOptionInfo were relocated to C_PlayerChoice, and now return structured data.
  • C_Calendar.GetDate was relocated and renamed to C_DateAndTime.GetCurrentCalendarTime.
  • C_DateAndTime.GetDateFromEpoch, C_DateAndTime.GetTodaysDate, and C_DateAndTime.GetYesterdaysDate were replaced by other functions within the same namespace.
  • GetAtlasInfo was relocated to the C_Texture namespace and now returns structured data.
  • C_AreaPoiInfo.GetAreaPOITimeLeft was replaced by C_AreaPoiInfo.GetAreaPOISecondsLeft.
  • C_Club.AddClubStreamToChatWindow was replaced by C_Club.AddClubStreamChatChannel; you may also need to call AddChatWindowChannel.
  • WorldMapTooltip became an alias for GameTooltip.
  • CreatePoolCollection was renamed CreateFramePoolCollection, and PoolCollection renamed FramePoolCollectionMixin.
  • InActiveBattlefield was relocated and renamed C_PvP.IsActiveBattlefield.
  • RequestInspectHonorData and HasInspectHonorData were removed.
  • C_PvP.GetBrawlInfo was replaced by C_PvP.GetAvailableBrawlInfo.
    • The canQueue field from the new function is synonymous with the active field from the old function.
  • Various C_Social APIs were modified.
  • IsRatedBattleground, IsRatedArena, and IsRatedMap were relocated to the C_PvP namespace.
  • GetNumBattlefieldStats and GetBattlefieldStatInfo have been replaced with new functions in the C_PvP namespace.
  • Functions for querying the guild roster and officer notes were relocated to the C_GuildInfo namespace.
  • GetGuildNewsInfo was relocated to the C_GuildInfo namespace, and now returns structured data.
  • C_ChatInfo.ReportPlayer was replaced by C_ReportSystem.OpenReportPlayerDialog.
  • IsQuestFlaggedCompleted was relocated to the C_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.

Enum Changes

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.*

Backdrop System Changes

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.

Lua Changes

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.

XML Changes

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>

Script Handlers

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.

Resources

Clone this wiki locally