Patch 10.0.0/API changes

From Warcraft Wiki
Jump to navigation Jump to search

Summary

  • The settings interface and its related APIs have undergone significant changes. Refer to the Settings API section for more details.
  • A new set of unit tokens have been added to accommodate automatic soft-targeting.
  • A new set of unit aura APIs have been added and the payload of UNIT_AURA altered to allow more fine-grained tracking and processing of individual aura updates. Refer to the Unit Aura Changes section for more details.
  • The Blizzard_APIDocumentation addon now additionally contains automatically-generated Widget API documentation.
  • LayeredRegion objects such as Textures and FontStrings now all inherit ScriptObject and support a subset of widget scripts such as OnEnter and OnShow.
  • The C_Timer.NewTimer() and C_Timer.NewTicker() APIs are now implemented in native code rather than Lua. This may break addons that were previously inspecting internal fields on timer objects, or those that are passing non-function types as callbacks to these functions.
  • A new |cncolorname:text|r UI escape sequence has been added that will render a text string with a named global color.
  • Widget APIs now strictly validate supplied parameters, erroring if invalid values are supplied.
  • The client will generate additional runtime warnings for unrecognized or unexpected XML attributes and elements.

Resources

Settings API

The interface options interface and APIs have changed significantly in 10.0. A small subset of the existing API remains as deprecated functions, along with a set of deprecated XML templates for various options controls.

The new settings API permits registering nestable categories that fit one of two layout archetypes;

  • A "Canvas" layout wherein a frame has full manual control over the placement and behavior of its child widgets. This concept matches what addon authors are already acquainted with through the existing InterfaceOptions_AddCategory API.
  • A "Vertical" layout wherein controls will be automatically positioned and stacked in vertically in a list. The controls can be configured to automatically read and write their values to a destination table.

Canvas Layout

Example settings category using a manual canvas layout.

A minimal example of the "Canvas" layout registration API can be found below. This example will register a custom frame that consists of a single full-size texture within the "AddOns" tab of the Settings interface.

local frame = CreateFrame("Frame")
local background = frame:CreateTexture()
background:SetAllPoints(frame)
background:SetColorTexture(1, 0, 1, 0.5)

local category = Settings.RegisterCanvasLayoutCategory(frame, "My AddOn")
Settings.RegisterAddOnCategory(category)

Vertical Layout

Example settings category using an automatic vertical layout.

A minimal example of the "Vertical" layout registration API can be found below. This will create three controls - a checkbox, slider, and dropdown - and configure them to automatically read and write their values to a global table named MyAddOn_SavedVars.

MyAddOn_SavedVars = {}

local function OnSettingChanged(_, setting, value)
	local variable = setting:GetVariable()
	MyAddOn_SavedVars[variable] = value
end

local category = Settings.RegisterVerticalLayoutCategory("My AddOn")

do
    local variable = "toggle"
    local name = "Test Checkbox"
    local tooltip = "This is a tooltip for the checkbox."
    local defaultValue = false

    local setting = Settings.RegisterAddOnSetting(category, name, variable, type(defaultValue), defaultValue)
    Settings.CreateCheckBox(category, setting, tooltip)
	Settings.SetOnValueChangedCallback(variable, OnSettingChanged)
end

do
    local variable = "slider"
    local name = "Test Slider"
    local tooltip = "This is a tooltip for the slider."
    local defaultValue = 180
    local minValue = 90
    local maxValue = 360
    local step = 10

    local setting = Settings.RegisterAddOnSetting(category, name, variable, type(defaultValue), defaultValue)
    local options = Settings.CreateSliderOptions(minValue, maxValue, step)
    options:SetLabelFormatter(MinimalSliderWithSteppersMixin.Label.Right);
    Settings.CreateSlider(category, setting, options, tooltip)
	Settings.SetOnValueChangedCallback(variable, OnSettingChanged)
end

do
    local variable = "selection"
    local defaultValue = 2  -- Corresponds to "Option 2" below.
    local name = "Test Dropdown"
    local tooltip = "This is a tooltip for the dropdown."

    local function GetOptions()
        local container = Settings.CreateControlTextContainer()
        container:Add(1, "Option 1")
        container:Add(2, "Option 2")
        container:Add(3, "Option 3")
        return container:GetData()
    end

    local setting = Settings.RegisterAddOnSetting(category, name, variable, type(defaultValue), defaultValue)
    Settings.CreateDropDown(category, setting, GetOptions, tooltip)
	Settings.SetOnValueChangedCallback(variable, OnSettingChanged)
end

Settings.RegisterAddOnCategory(category)

Unit Aura Changes

The UNIT_AURA event is now capable of delivering information in its payload about which specific auras on a unit have been added, changed, or removed since the last aura update.

Auras now have an "instance ID" (auraInstanceID) which uniquely refers to an instance of an aura for the duration of its lifetime on a unit. The instance ID is expected to remain stable and suitable for use as a table key between successive updates of auras on a unit until a full aura update occurs.

Three new APIs are provided to query information about auras and will return structured tables:

From each of these APIs the returned aura structure is expected to contain the same return values as are obtainable through the existing UnitAura APIs, however note that some field names may not line up with the documented return value names. The returned information will also include the instance ID of the aura.

The below example will demonstrate how the payload from UNIT_AURA can be processed to collect information about the players' auras into a table for both the full-update and incremental-update cases.

local PlayerAuras = {}

local function UpdatePlayerAurasFull()
    PlayerAuras = {}

    local function HandleAura(aura)
        PlayerAuras[aura.auraInstanceID] = aura
        -- Perform any setup or update tasks for this aura here.
    end

    local batchCount = nil
    local usePackedAura = true
    AuraUtil.ForEachAura("player", "HELPFUL", batchCount, HandleAura, usePackedAura)
    AuraUtil.ForEachAura("player", "HARMFUL", batchCount, HandleAura, usePackedAura)
end

local function UpdatePlayerAurasIncremental(unitAuraUpdateInfo)
    if unitAuraUpdateInfo.addedAuras ~= nil then
        for _, aura in ipairs(unitAuraUpdateInfo.addedAuras) do
            PlayerAuras[aura.auraInstanceID] = aura
            -- Perform any setup tasks for this aura here.
        end
    end

    if unitAuraUpdateInfo.updatedAuraInstanceIDs ~= nil then
        for _, auraInstanceID in ipairs(unitAuraUpdateInfo.updatedAuraInstanceIDs) do
            PlayerAuras[auraInstanceID] = C_UnitAuras.GetAuraDataByAuraInstanceID("player", auraInstanceID)
            -- Perform any update tasks for this aura here.
        end
    end

    if unitAuraUpdateInfo.removedAuraInstanceIDs ~= nil then
        for _, auraInstanceID in ipairs(unitAuraUpdateInfo.removedAuraInstanceIDs) do
            PlayerAuras[auraInstanceID] = nil
            -- Perform any cleanup tasks for this aura here.
        end
    end
end

local function OnUnitAurasUpdated(unit, unitAuraUpdateInfo)
    if unit ~= "player" then
        return
    end

    if unitAuraUpdateInfo == nil or unitAuraUpdateInfo.isFullUpdate then
        UpdatePlayerAurasFull()
    else
        UpdatePlayerAurasIncremental(unitAuraUpdateInfo)
    end
end

EventRegistry:RegisterFrameEventAndCallback("UNIT_AURA", OnUnitAurasUpdated)

Interaction Manager

Show and Hide events have been streamlined into PLAYER_INTERACTION_MANAGER_FRAME_SHOW/Hide, for example:

local function OnEvent(self, event, id)
	if id == Enum.PlayerInteractionType.Banker then
		print("opened the bank")
	end
end

local f = CreateFrame("Frame")
f:RegisterEvent("PLAYER_INTERACTION_MANAGER_FRAME_SHOW")
--f:RegisterEvent("BANKFRAME_OPENED")
f:SetScript("OnEvent", OnEvent)

Templates

DeprecatedTemplates.xml

OptionsBaseCheckButtonTemplate
InterfaceOptionsCheckButtonTemplate
InterfaceOptionsBaseCheckButtonTemplate
OptionsSliderTemplate
OptionsFrameTabButtonTemplate
OptionsListButtonTemplate

Replacements

HorizontalSliderTemplate -> UISliderTemplate

OptionsBoxTemplate was removed without a direct replacement, a Lua fix could be similar to this:

local f = CreateFrame("Frame", "SomeFrame", nil, "TooltipBorderBackdropTemplate")
f.Title = f:CreateFontString(f:GetName().."Title", "BACKGROUND", "GameFontHighlightSmall")
f.Title:SetPoint("BOTTOMLEFT", f, "TOPLEFT", 5, 0)
f:SetBackdropColor(DARKGRAY_COLOR:GetRGBA())

Global API

9.2.7 (45114) → 10.0.0 (46366) Oct 27 2022
Added (277) Removed (64)
C_AchievementInfo.IsGuildAchievement
C_ActionBar.GetItemActionOnEquipSpellID
C_BarberShop.GetViewingChrModel
C_BarberShop.SetViewingChrModel
C_CameraDefaults.GetCameraFOVDefaults
C_CampaignInfo.SortAsNormalQuest
C_ClassTalents.CanChangeTalents
C_ClassTalents.CanCreateNewConfig
C_ClassTalents.CommitConfig
C_ClassTalents.DeleteConfig
C_ClassTalents.GetActiveConfigID
C_ClassTalents.GetConfigIDsBySpecID
C_ClassTalents.GetHasStarterBuild
C_ClassTalents.GetLastSelectedSavedConfigID
C_ClassTalents.GetNextStarterBuildPurchase
C_ClassTalents.GetStarterBuildActive
C_ClassTalents.HasUnspentTalentPoints
C_ClassTalents.ImportLoadout
C_ClassTalents.IsConfigPopulated
C_ClassTalents.LoadConfig
C_ClassTalents.RenameConfig
C_ClassTalents.RequestNewConfig
C_ClassTalents.SaveConfig
C_ClassTalents.SetStarterBuildActive
C_ClassTalents.SetUsesSharedActionBars
C_ClassTalents.UpdateLastSelectedSavedConfigID
C_Container.GetBagSlotFlag
C_Container.SetBagSlotFlag
C_CraftingOrders.CloseCustomerCraftingOrders
C_CraftingOrders.GetCustomerCategories
C_CraftingOrders.GetCustomerOptions
C_CraftingOrders.HasFavoriteCustomerOptions
C_CraftingOrders.IsCustomerOptionFavorited
C_CraftingOrders.ParseCustomerOptions
C_CraftingOrders.SetCustomerOptionFavorited
C_CurrencyInfo.GetCurrencyDescription
C_Debug.PrintToDebugWindow
C_EditMode.ConvertLayoutInfoToString
C_EditMode.ConvertStringToLayoutInfo
C_EditMode.GetAccountSettings
C_EditMode.GetLayouts
C_EditMode.OnEditModeExit
C_EditMode.OnLayoutAdded
C_EditMode.OnLayoutDeleted
C_EditMode.SaveLayouts
C_EditMode.SetAccountSetting
C_EditMode.SetActiveLayout
C_EventUtils.IsEventValid
C_EventUtils.NotifySettingsLoaded
C_FunctionContainers.CreateCallback
C_GossipInfo.GetFriendshipReputationRanks
C_GossipInfo.GetFriendshipReputation
C_Item.GetItemIDByGUID
C_Item.GetItemLocation
C_Item.GetItemMaxStackSizeByID
C_Item.GetItemMaxStackSize
C_Item.IsItemGUIDInInventory
C_KeyBindings.GetBindingIndex
C_MajorFactions.GetCovenantIDForMajorFaction
C_MajorFactions.GetCurrentRenownLevel
C_MajorFactions.GetFeatureAbilities
C_MajorFactions.GetMajorFactionData
C_MajorFactions.GetMajorFactionIDs
C_MajorFactions.GetRenownLevels
C_MajorFactions.GetRenownNPCFactionID
C_MajorFactions.GetRenownRewardsForLevel
C_MajorFactions.HasMaximumRenown
C_MajorFactions.IsMajorFaction
C_MajorFactions.IsPlayerInRenownCatchUpMode
C_MajorFactions.IsWeeklyRenownCapped
C_MajorFactions.RequestCatchUpState
C_Minimap.CanTrackBattlePets
C_Minimap.ClearAllTracking
C_Minimap.GetNumQuestPOIWorldEffects
C_Minimap.GetNumTrackingTypes
C_Minimap.GetObjectIconTextureCoords
C_Minimap.GetPOITextureCoords
C_Minimap.GetTrackingFilter
C_Minimap.GetTrackingInfo
C_Minimap.IsFilteredOut
C_Minimap.IsTrackingBattlePets
C_Minimap.IsTrackingHiddenQuests
C_Minimap.SetTracking
C_MountJournal.GetCollectedDragonridingMounts
C_MountJournal.GetDisplayedMountID
C_MountJournal.GetMountLink
C_MythicPlus.GetCurrentUIDisplaySeason
C_PaperDollInfo.GetInspectRatedSoloShuffleData
C_PetJournal.HasFavoritePets
C_PetJournal.SpellTargetBattlePet
C_PlayerInteractionManager.ClearInteraction
C_PlayerInteractionManager.ConfirmationInteraction
C_PlayerInteractionManager.InteractUnit
C_PlayerInteractionManager.IsInteractingWithNpcOfType
C_PlayerInteractionManager.IsReplacingUnit
C_PlayerInteractionManager.IsValidNPCInteraction
C_PlayerInteractionManager.ReopenInteraction
C_ProfSpecs.CanRefundPath
C_ProfSpecs.CanUnlockTab
C_ProfSpecs.GetChildrenForPath
C_ProfSpecs.GetConfigIDForSkillLine
C_ProfSpecs.GetDefaultSpecSkillLine
C_ProfSpecs.GetDescriptionForPath
C_ProfSpecs.GetDescriptionForPerk
C_ProfSpecs.GetEntryIDForPerk
C_ProfSpecs.GetPerksForPath
C_ProfSpecs.GetRootPathForTab
C_ProfSpecs.GetSourceTextForPath
C_ProfSpecs.GetSpecTabIDsForSkillLine
C_ProfSpecs.GetSpecTabInfo
C_ProfSpecs.GetSpendCurrencyForPath
C_ProfSpecs.GetSpendEntryForPath
C_ProfSpecs.GetStateForPath
C_ProfSpecs.GetStateForPerk
C_ProfSpecs.GetStateForTab
C_ProfSpecs.GetTabInfo
C_ProfSpecs.GetUnlockEntryForPath
C_ProfSpecs.GetUnlockRankForPerk
C_ProfSpecs.GetUnspentPointsForSkillLine
C_ProfSpecs.ShouldShowSpecTab
C_ProfSpecs.SkillLineHasSpecialization
C_PvP.GetPersonalRatedSoloShuffleSpecStats
C_PvP.GetRatedSoloShuffleMinItemLevel
C_PvP.GetRatedSoloShuffleRewards
C_PvP.IsBrawlSoloShuffle
C_PvP.IsRatedSoloShuffle
C_QuestItemUse.CanUseQuestItemOnObject
C_QuestLog.GetQuestLogMajorFactionReputationRewards
C_QuestLog.UnitIsRelatedToActiveQuest
C_QuestOffer.GetHideRequiredItemsOnTurnIn
C_QuestOffer.GetQuestOfferMajorFactionReputationRewards
C_Reputation.IsMajorFaction
C_Reputation.SetWatchedFaction
C_ReturningPlayerUI.AcceptPrompt
C_ReturningPlayerUI.DeclinePrompt
C_Sound.GetSoundScaledVolume
C_Sound.IsPlaying
C_Sound.PlayItemSound
C_SpellBook.GetDeadlyDebuffInfo
C_SpellBook.GetOverrideSpell
C_SpellBook.GetTrackedNameplateCooldownSpells
C_Texture.GetFilenameFromFileDataID
C_Timer.NewTicker
C_Timer.NewTimer
C_TradeSkillUI.CancelCraftingOrder
C_TradeSkillUI.CompleteCraftingOrder
C_TradeSkillUI.ContinueRecast
C_TradeSkillUI.CraftEnchant
C_TradeSkillUI.CraftSalvage
C_TradeSkillUI.DeclineCraftingOrder
C_TradeSkillUI.DoesRecraftingRecipeAcceptItem
C_TradeSkillUI.GetAllFilterableInventorySlotsCount
C_TradeSkillUI.GetBaseProfessionInfo
C_TradeSkillUI.GetChildProfessionInfos
C_TradeSkillUI.GetChildProfessionInfo
C_TradeSkillUI.GetCraftableCount
C_TradeSkillUI.GetCraftingOperationInfo
C_TradeSkillUI.GetCraftingOrders
C_TradeSkillUI.GetCraftingReagentBonusText
C_TradeSkillUI.GetCurrentOrder
C_TradeSkillUI.GetEnchantItems
C_TradeSkillUI.GetFactionSpecificOutputItem
C_TradeSkillUI.GetFilterableInventorySlotName
C_TradeSkillUI.GetGatheringOperationInfo
C_TradeSkillUI.GetHideUnownedFlags
C_TradeSkillUI.GetItemCraftedQualityByItemInfo
C_TradeSkillUI.GetItemReagentQualityByItemInfo
C_TradeSkillUI.GetItemSlotModifications
C_TradeSkillUI.GetOnlyShowFirstCraftRecipes
C_TradeSkillUI.GetOriginalCraftRecipeID
C_TradeSkillUI.GetProfessionChildSkillLineID
C_TradeSkillUI.GetProfessionInfoBySkillLineID
C_TradeSkillUI.GetProfessionSkillLineID
C_TradeSkillUI.GetProfessionSlots
C_TradeSkillUI.GetProfessionSpells
C_TradeSkillUI.GetReagentDifficultyText
C_TradeSkillUI.GetReagentSlotStatus
C_TradeSkillUI.GetRecipeFixedReagentItemLink
C_TradeSkillUI.GetRecipeOutputItemData
C_TradeSkillUI.GetRecipeQualityReagentItemLink
C_TradeSkillUI.GetRecipeSchematic
C_TradeSkillUI.GetRecipesTracked
C_TradeSkillUI.GetRecraftItems
C_TradeSkillUI.GetSalvagableItemIDs
C_TradeSkillUI.GetShowLearned
C_TradeSkillUI.GetShowUnlearned
C_TradeSkillUI.HasCraftingOrderFavorites
C_TradeSkillUI.HasMaxCraftingOrderFavorites
C_TradeSkillUI.HasRecipesTracked
C_TradeSkillUI.IsCraftingOrderFavorite
C_TradeSkillUI.IsOriginalCraftRecipeLearned
C_TradeSkillUI.IsRecipeInSkillLine
C_TradeSkillUI.IsRecipeProfessionLearned
C_TradeSkillUI.IsRecipeTracked
C_TradeSkillUI.IsRuneforging
C_TradeSkillUI.ListCraftingOrder
C_TradeSkillUI.OpenRecipe
C_TradeSkillUI.QueryCraftingOrdersFavorites
C_TradeSkillUI.QueryCraftingOrders
C_TradeSkillUI.RecipeCanBeRecrafted
C_TradeSkillUI.RecraftRecipe
C_TradeSkillUI.SetCraftingOrderFavorite
C_TradeSkillUI.SetOnlyShowFirstCraftRecipes
C_TradeSkillUI.SetProfessionChildSkillLineID
C_TradeSkillUI.SetRecipeTracked
C_TradeSkillUI.SetShowLearned
C_TradeSkillUI.SetShowUnlearned
C_TradeSkillUI.SetTooltipRecipeResultItem
C_TradeSkillUI.StartCraftingOrder
C_Traits.CanPurchaseRank
C_Traits.CanRefundRank
C_Traits.CascadeRepurchaseRanks
C_Traits.ClearCascadeRepurchaseHistory
C_Traits.CloseTraitSystemInteraction
C_Traits.CommitConfig
C_Traits.ConfigHasStagedChanges
C_Traits.GetConditionInfo
C_Traits.GetConfigIDBySystemID
C_Traits.GetConfigIDByTreeID
C_Traits.GetConfigInfo
C_Traits.GetConfigsByType
C_Traits.GetDefinitionInfo
C_Traits.GetEntryInfo
C_Traits.GetNodeCost
C_Traits.GetNodeInfo
C_Traits.GetStagedChangesCost
C_Traits.GetStagedPurchases
C_Traits.GetTraitCurrencyInfo
C_Traits.GetTraitDescription
C_Traits.GetTreeCurrencyInfo
C_Traits.GetTreeHash
C_Traits.GetTreeInfo
C_Traits.GetTreeNodes
C_Traits.HasValidInspectData
C_Traits.PurchaseRank
C_Traits.RefundAllRanks
C_Traits.RefundRank
C_Traits.ResetTree
C_Traits.RollbackConfig
C_Traits.SetSelection
C_Traits.StageConfig
C_Traits.TalentTestUnlearnSpells
C_UIColor.GetColors
C_UIWidgetManager.GetFillUpFramesWidgetVisualizationInfo
C_UnitAuras.GetAuraDataByAuraInstanceID
C_UnitAuras.GetAuraDataBySlot
C_UnitAuras.GetCooldownAuraBySpellID
C_UnitAuras.GetPlayerAuraBySpellID
C_UnitAuras.IsAuraFilteredOutByInstanceID
C_UnitAuras.WantsAlteredForm
C_VideoOptions.GetCurrentGameWindowSize
C_VideoOptions.GetDefaultGameWindowSize
C_VideoOptions.GetGameWindowSizes
C_VideoOptions.SetGameWindowSize
C_VoiceChat.IsVoiceChatConnected
C_WeeklyRewards.IsWeeklyChestRetired
C_XMLUtil.GetTemplateInfo
C_XMLUtil.GetTemplates
CombatLogShowCurrentEntry
GetGraphicsCVarValueForQualityLevel
GetUnitEmpowerHoldAtMaxTime
GetUnitEmpowerMinHoldTime
GetUnitEmpowerStageDuration
IsGraphicsCVarValueSupported
IsGraphicsSettingValueSupported
IsPlayerInGuildFromGUID
IsPressHoldReleaseSpell
IsSpecializationActivateSpell
IsTargetLoose
JoinRatedSoloShuffle
ReleaseAction
SetUnitCursorTexture
TargetToggle
UnitIsBossMob
UnitIsGameObject
UnitIsInteractable
WorldLootObjectExists
AcceptXPLoss
C_AlliedRaces.ClearAlliedRaceDetailsGiver
C_AzeriteEmpoweredItem.CloseAzeriteEmpoweredItemRespec
C_GossipInfo.GetNumOptions
C_PlayerInfo.IsPlayerInGuildFromGUID
C_ScrappingMachineUI.SetScrappingMachine
C_TradeSkillUI.GetOnlyShowLearnedRecipes
C_TradeSkillUI.GetOnlyShowUnlearnedRecipes
C_TradeSkillUI.GetOptionalReagentBonusText
C_TradeSkillUI.GetOptionalReagentInfo
C_TradeSkillUI.GetRecipeNumItemsProduced
C_TradeSkillUI.GetRecipeNumReagents
C_TradeSkillUI.GetRecipeReagentInfo
C_TradeSkillUI.GetRecipeReagentItemLink
C_TradeSkillUI.GetTradeSkillLineInfoByID
C_TradeSkillUI.GetTradeSkillLine
C_TradeSkillUI.IsEmptySkillLineCategory
C_TradeSkillUI.SetOnlyShowLearnedRecipes
C_TradeSkillUI.SetOnlyShowUnlearnedRecipes
C_TradeSkillUI.SetRecipeRepeatCount
CanTrackBattlePets
CheckBinderDist
CheckSpiritHealerDist
CheckTalentMasterDist
ClearAllTracking
CloseVoidStorageFrame
ConfirmBinder
GetBagSlotFlag
GetBankBagSlotFlag
GetCurrentResolution
GetCVarSettingValidity
GetDefaultGraphicsQuality
GetDefaultVideoOptions
GetDefaultVideoOption
GetDefaultVideoQualityOption
GetFriendshipReputationRanks
GetFriendshipReputation
GetGraphicsDropdownIndexByMasterIndex
GetNumQuestPOIWorldEffects
GetNumTrackingTypes
GetObjectIconTextureCoords
GetPlayerAuraBySpellID
GetPOITextureCoords
GetScreenResolutions
GetToolTipInfo
GetTrackingInfo
GetVideoOptions
InteractUnit
IsBagSlotFlagEnabledOnOtherBags
IsBagSlotFlagEnabledOnOtherBankBags
IsReplacingUnit
IsTrackingBattlePets
IsTrackingHiddenQuests
ReopenInteraction
SetBagSlotFlag
SetBankBagSlotFlag
SetDefaultVideoOptions
SetInventoryPortraitTexture
SetScreenResolution
SetTracking
ShowInventorySellCursor
VehicleAimGetAngle
VehicleAimGetNormAngle
VehicleAimRequestNormAngle
C_CVar.SetCVar
  - arg 3: scriptCVar
C_CVar.SetCVarBitfield
  - arg 4: scriptCVar
C_GossipInfo.SelectActiveQuest, C_GossipInfo.SelectAvailableQuest, C_GossipInfo.SelectOption
  + arg 1: optionID
  - arg 1: index
C_Item.GetItemGUID
  + ret 1: itemGUID
  - ret 1: itemGuid
C_LegendaryCrafting.GetRuneforgeModifierInfo
  # ret 2: description, Type: string -> table
C_MountJournal.GetMountInfoByID, C_MountJournal.GetDisplayedMountInfo
  + ret 13: isForDragonriding
C_TradeSkillUI.CraftRecipe
  + arg 3: craftingReagents
  - arg 3: optionalReagents
C_VoiceChat.GetCurrentVoiceChatConnectionStatusCode
  # ret 1: statusCode, Nilable: false -> true
SetPortraitTexture
  + arg 3: disableMasking

Widgets

Widget Hierarchy
Added (56) Removed (29)
Object:GetParentKey
Object:SetParentKey
ScriptRegionResizing:ClearPoint
ScriptRegion:SetPassThroughButtons
TextureBase:IsBlockingLoadRequested
TextureBase:SetBlockingLoadsRequested
AnimationGroup:GetAnimationSpeedMultiplier
AnimationGroup:IsReverse
AnimationGroup:SetAnimationSpeedMultiplier
Animation:SetTargetName
Animation:SetTargetParent
Scale:GetScaleFrom
Scale:GetScaleTo
Scale:SetScaleFrom
Scale:SetScaleTo
Path:GetCurveType
Path:GetMaxControlPointOrder
Path:SetCurveType
FlipBook:GetFlipBookColumns
FlipBook:GetFlipBookFrameHeight
FlipBook:GetFlipBookFrameWidth
FlipBook:GetFlipBookFrames
FlipBook:GetFlipBookRows
FlipBook:SetFlipBookColumns
FlipBook:SetFlipBookFrameHeight
FlipBook:SetFlipBookFrameWidth
FlipBook:SetFlipBookFrames
FlipBook:SetFlipBookRows
Frame:GetResizeBounds
Frame:SetIsFrameBuffer
Frame:SetResizeBounds
Browser:NavigateTo
Button:ClearDisabledTexture
Button:ClearHighlightTexture
Button:ClearNormalTexture
Button:ClearPushedTexture
Button:SetHighlightLocked
ColorSelect:ClearColorWheelTexture
Cooldown:SetTexCoordRange
EditBox:HasText
GameTooltip:AddTraitEntry
GameTooltip:SetItemByGUID
GameTooltip:SetItemByIDWithQuality
GameTooltip:SetQualityReagentSlotItemByID
GameTooltip:SetUnitBuffByAuraInstanceID
GameTooltip:SetUnitDebuffByAuraInstanceID
MovieFrame:StartMovieByName
OffScreenFrame:TestPrintToFile
StatusBar:GetStatusBarDesaturation
StatusBar:IsStatusBarDesaturated
StatusBar:SetColorFill
StatusBar:SetStatusBarDesaturated
StatusBar:SetStatusBarDesaturation
WorldFrame:OnModelCleared
ModelSceneActor:SetModelByHyperlink
Widget Scripts
ModelSceneActor OnModelCleared
Region:ClearPointByName
Texture:GetNonBlocking
Texture:GetRotation
Texture:GetVertexColor
Texture:SetGradientAlpha
Texture:SetNonBlocking
Texture:SetRotation
Scale:GetFromScale
Scale:GetToScale
Scale:SetFromScale
Scale:SetToScale
Path:GetCurve
Path:GetMaxOrder
Path:SetCurve
Frame:GetDepth
Frame:GetEffectiveDepth
Frame:GetMaxResize
Frame:GetMinResize
Frame:IgnoreDepth
Frame:IsIgnoringDepth
Frame:SetDepth
Frame:SetFrameBuffer
Frame:SetMaxResize
Frame:SetMinResize
GameTooltip:SetRecipeResultItem
Minimap:SetQuestBlobOutsideSelectedTexture
Minimap:SetTaskBlobOutsideSelectedTexture
StatusBar:GetStatusBarAtlas
StatusBar:SetStatusBarAtlas

Events

Added (63) Removed (26)
ACTIVE_COMBAT_CONFIG_CHANGED
ACTIVE_PLAYER_SPECIALIZATION_CHANGED
BAG_CONTAINER_UPDATE
BATTLEFIELD_AUTO_QUEUE_EJECT
BATTLEFIELD_AUTO_QUEUE
CONFIG_COMMIT_FAILED
CRAFTING_DETAILS_UPDATE
CRAFTINGORDERS_CUSTOMER_FAVORITES_CHANGED
CRAFTINGORDERS_CUSTOMER_OPTIONS_PARSED
CRAFTINGORDERS_HIDE_CRAFTER
CRAFTINGORDERS_HIDE_CUSTOMER
CRAFTINGORDERS_SHOW_CRAFTER
CRAFTINGORDERS_SHOW_CUSTOMER
EDIT_MODE_LAYOUTS_UPDATED
EXPAND_BAG_BAR_CHANGED
ITEM_COUNT_CHANGED
MAJOR_FACTION_INTERACTION_ENDED
MAJOR_FACTION_INTERACTION_STARTED
MAJOR_FACTION_RENOWN_CATCH_UP_STATE_UPDATE
MAJOR_FACTION_RENOWN_LEVEL_CHANGED
MAJOR_FACTION_UNLOCKED
OPEN_RECIPE_RESPONSE
PLAYER_INTERACTION_MANAGER_FRAME_HIDE
PLAYER_INTERACTION_MANAGER_FRAME_SHOW
PLAYER_SOFT_ENEMY_CHANGED
PLAYER_SOFT_FRIEND_CHANGED
PLAYER_SOFT_INTERACT_CHANGED
PROFESSION_EQUIPMENT_CHANGED
RETURNING_PLAYER_PROMPT
RUNE_TYPE_UPDATE
SETTINGS_LOADED
SKILL_LINE_SPECS_UNLOCKED
SPECIALIZATION_CHANGE_CAST_FAILED
STARTER_BUILD_ACTIVATION_FAILED
TRACKED_RECIPE_UPDATE
TRADE_SKILL_CRAFT_BEGIN
TRADE_SKILL_CRAFTING_REAGENT_BONUS_TEXT_UPDATED
TRADE_SKILL_CURRENCY_REWARD_RESULT
TRADE_SKILL_ITEM_CRAFTED_RESULT
TRADE_SKILL_ITEM_UPDATE
TRAIT_COND_INFO_CHANGED
TRAIT_CONFIG_CREATED
TRAIT_CONFIG_DELETED
TRAIT_CONFIG_LIST_UPDATED
TRAIT_CONFIG_UPDATED
TRAIT_NODE_CHANGED_PARTIAL
TRAIT_NODE_CHANGED
TRAIT_NODE_ENTRY_UPDATED
TRAIT_SYSTEM_INTERACTION_STARTED
TRAIT_SYSTEM_NPC_CLOSED
TRAIT_TREE_CHANGED
TRAIT_TREE_CURRENCY_INFO_UPDATED
UNIT_FORM_CHANGED
UNIT_SPELLCAST_EMPOWER_START
UNIT_SPELLCAST_EMPOWER_STOP
UNIT_SPELLCAST_EMPOWER_UPDATE
UPDATE_TRADESKILL_CAST_COMPLETE
USE_COMBINED_BAGS_CHANGED
VOICE_CHAT_VAD_SETTINGS_UPDATED
WEAPON_ENCHANT_CHANGED
WEAPON_SLOT_CHANGED
WORLD_PVP_QUEUE
GOSSIP_CONFIRM, GOSSIP_ENTER_CODE
  + 1: gossipID
  - 1: gossipIndex
PVP_TYPES_ENABLED
  + 4: ratedSoloShuffle
REPORT_PLAYER_RESULT
  + 2: reportType
UNIT_AURA
  + 2: updateInfo
  - 2: isFullUpdate
  - 3: updatedAuras

CVars

Added (93) Removed (16)
ActionButtonUseKeyHeldSpellActionButtonUseKeyHeldSpell (Game)
Default: 0, Scope: Account
Activate the press and hold cast option on a keydown
AdvFlyingDynamicFOVEnabledAdvFlyingDynamicFOVEnabled (Game)
Default: 1
Enables adjustment of camera field of view based on gliding speed
calendarShowResetscalendarShowResets (Game)
Default: 0, Scope: Character
Whether raid resets should appear in the calendar
CMAA2HalfFloatCMAA2HalfFloat (Graphics)
Default: 0
0: 32-bit Float. 1: 16-bit Float.
combinedBagscombinedBags (Game)
Default: 0, Scope: Account
Use combined bag frame for all bags
dragonRidingPitchSensitivitydragonRidingPitchSensitivity (Game)
Default: 2.5
Changes the sensitivity of pitch down/up keys
dragonRidingTurnSensitivitydragonRidingTurnSensitivity (Game)
Default: 5
Changes the sensitivity of turn left/right keys
DynamicVRSSensitivityThresholdDynamicVRSSensitivityThreshold (Graphics)
Default: 0
Enable dynamic sensitivity threshold based on target FPS for VRS
EmpowerMinHoldStagePercentEmpowerMinHoldStagePercent (Game)
Default: 1.000000, Scope: Account
Sets a percentage of the first empower stage [0.0,1.0]. Before this point, the spell will be auto-held. After it, releases will be accepted.
EmpowerTapControlsReleaseThresholdEmpowerTapControlsReleaseThreshold (Game)
Default: 300, Scope: Account
Sets the time in milliseconds after which release/re-hold requests will be registered for press-and-tap empowers. Begins when the cast is sent from the client.
empowerTapControlsempowerTapControls (Game)
Default: 0, Scope: Character
By default, Empower spells use a press-hold-release control scheme. Set this CVar to use a tap-tap scheme instead.
expandBagBarexpandBagBar (Game)
Default: 1, Scope: Account
Expand the main menu bar that shows the bags so you can see all equipped bags instead of just the backpack and reagent bag
ForceGenerateSlugForceGenerateSlug (Debug)
Default: 0
Generate .slug files for all loaded fonts before they are actually used rather than deferred load.
fstack_enabledfstack_enabled (Debug)
Default: 0
0: Hide Framestack Tooltip (Default), 1: Show Framestack Tooltip.
GameDataVisualizerGameDataVisualizer
Default: 0
GamePadOverlapMouseMsGamePadOverlapMouseMs
Default: 2000
Duration after gamepad+mouse input to switch to just one or the other.
GamePadRunThresholdGamePadRunThreshold
Default: 0.5
0-1 Amount of stick movement before character transitions from walk to run
GxAllowCachelessShaderModeGxAllowCachelessShaderMode (Graphics)
Default: 0
CPU memory saving mode, if supported by backend. When enabled, shaders are fetched from disk as needed instead of being kept resident. This mode may slightly increase the time objects take to appear the first time they are encountered. Computers without solid state drives may want to disable this feature
interactQuestItemsinteractQuestItems (Game)
Default: 1, Scope: Account
Enable Quest Item use as an interaction
lastRenownForMajorFaction2503lastRenownForMajorFaction2503 (Game)
Default: 0, Scope: Character
Stores the Maruuk Centaur renown when Renown UI is closed
lastRenownForMajorFaction2507lastRenownForMajorFaction2507 (Game)
Default: 0, Scope: Character
Stores the Dragonscale Expedition renown when Renown UI is closed
lastRenownForMajorFaction2510lastRenownForMajorFaction2510 (Game)
Default: 0, Scope: Character
Stores the Valdrakken Accord renown when Renown UI is closed
lastRenownForMajorFaction2511lastRenownForMajorFaction2511 (Game)
Default: 0, Scope: Character
Stores the Iskaara Tuskarr renown when Renown UI is closed
LowLatencyModeLowLatencyMode (Graphics)
Default: 0
0=None, 1=BuiltIn, 2=Reflex
luaErrorExceptionsluaErrorExceptions (Game)
Default: 1
Enable exceptions for non-tainted lua errors
maxLevelSpecsUsedmaxLevelSpecsUsed (Game)
Default: 0, Scope: Character
The specs the player has switched to at max level
minimapTrackedInfov3minimapTrackedInfov3 (Game)
Default: 1006319, Scope: Character
Stores the minimap tracking that was active last session.
minimapTrackingClosestOnlyminimapTrackingClosestOnly (Game)
Default: 1
If enabled, show only the closest tracked icon for certain minimap icon types.
minimapTrackingShowAllminimapTrackingShowAll (Game)
Default: 0
If enabled, show dropdown for configuring all possible minimap tracking options.
nameplateHideHealthAndPowernameplateHideHealthAndPower (Game)
Default: 0, Scope: Character
nameplatePlayerLargerScalenameplatePlayerLargerScale (Graphics)
Default: 1.8, Scope: Character
An additional scale modifier for players.
nameplatePlayerMaxDistancenameplatePlayerMaxDistance (Graphics)
Scope: Character
The max distance to show player nameplates.
nameplateShowFriendlyBuffsnameplateShowFriendlyBuffs (Game)
Default: 0, Scope: Character
nameplateShowPersonalCooldownsnameplateShowPersonalCooldowns (Game)
Default: 0, Scope: Character
outlineSoftInteractFadeDurationoutlineSoftInteractFadeDuration (Debug)
Default: 0.3
professionGearSlotsExampleShownprofessionGearSlotsExampleShown (Game)
Default: 0, Scope: Character
If the profession gear slots example has been shown
professionsAllocateBestQualityReagentsprofessionsAllocateBestQualityReagents (Game)
Default: 1, Scope: Account
Indicates if best quality reagents should be automatically allocated in the crafting UI.
professionsFlyoutHideUnownedprofessionsFlyoutHideUnowned (Game)
Default: 0, Scope: Character
Boolean indicating if unowned items are hidden in the profession slot flyouts
professionsOrderDurationDropdownprofessionsOrderDurationDropdown (Game)
Default: 2, Scope: Account
The previously selected duration index in the professions customer order form dropdown
professionsOrderRecipientDropdownprofessionsOrderRecipientDropdown (Game)
Default: 1, Scope: Account
The previously selected order recipient index in the professions customer order form dropdown
raidFramesDisplayDebuffsraidFramesDisplayDebuffs (Game)
Default: 1, Scope: Character
Whether to display debuffs on Raid Frames
raidFramesDisplayIncomingHealsraidFramesDisplayIncomingHeals (Game)
Default: 1, Scope: Character
Whether to display incoming heals on Raid Frames
reloadUIOnAspectChangereloadUIOnAspectChange (Graphics)
Default: 0
Reload the UI on aspect change
SlugOpticalWeightSlugOpticalWeight (Debug)
Default: 0
When rendering, coverage values are remapped to increase the optical weight of the glyphs. This can improve the appearance of small text, but usually looks good only for dark text on a light background.
SlugSupersamplingSlugSupersampling (Debug)
Default: 1
The slug glyph shader performs adaptive supersampling for high-quality rendering at small font sizes
SoftTargetEnemyArcSoftTargetEnemyArc (Game)
Default: 2, Scope: Character
0 = No yaw arc allowance, must be directly in front. 1 = Must be in front yaw arc. 2 = Can be anywhere in targeting area.
SoftTargetEnemyRangeSoftTargetEnemyRange (Game)
Default: 45, Scope: Character
SoftTargetEnemySoftTargetEnemy (Game)
Default: 1, Scope: Character
Sets when enemy soft targeting should be enabled. 0=off, 1=gamepad, 2=KBM, 3=always
SoftTargetForceSoftTargetForce (Game)
Default: 1
Auto-set target to match soft target. 1 = for enemies, 2 = for friends
SoftTargetFriendArcSoftTargetFriendArc (Game)
Default: 2, Scope: Character
0 = No yaw arc allowance, must be directly in front. 1 = Must be in front yaw arc. 2 = Can be anywhere in targeting area.
SoftTargetFriendRangeSoftTargetFriendRange (Game)
Default: 45, Scope: Character
SoftTargetFriendSoftTargetFriend (Game)
Default: 0, Scope: Character
Sets when friend soft targeting should be enabled. 0=off, 1=gamepad, 2=KBM, 3=always
SoftTargetIconEnemySoftTargetIconEnemy (Game)
Default: 0, Scope: Account
Show icon for soft enemy target
SoftTargetIconFriendSoftTargetIconFriend (Game)
Default: 0, Scope: Account
Show icon for soft friend target
SoftTargetIconGameObjectSoftTargetIconGameObject (Game)
Default: 0, Scope: Account
Show icon for sot interact game objects (interactable objects you cannot normally target)
SoftTargetIconInteractSoftTargetIconInteract (Game)
Default: 1, Scope: Account
Show icon for soft interact target
SoftTargetInteractArcSoftTargetInteractArc (Game)
Default: 0, Scope: Account
0 = No yaw arc allowance, must be directly in front. 1 = Must be in front yaw arc. 2 = Can be anywhere in targeting area.
SoftTargetInteractRangeIsHardSoftTargetInteractRangeIsHard (Game)
Default: 0, Scope: Account
Sets if it should be a hard range cutoff, even for something you can interact with right now.
SoftTargetInteractRangeSoftTargetInteractRange (Game)
Default: 10, Scope: Account
SoftTargetInteractSoftTargetInteract (Game)
Default: 1, Scope: Account
Sets when soft interact should be enabled. 0=off, 1=gamepad, 2=KBM, 3=always
SoftTargetLowPriorityIconsSoftTargetLowPriorityIcons (Game)
Default: 0, Scope: Account
Show interact icons even when there is other visual indicators, such as quest or loot effects
SoftTargetMatchLockedSoftTargetMatchLocked (Game)
Default: 1
Match appropriate soft target to locked target. 1 = hard locked target only, 2 = for targets you attack
SoftTargetNameplateEnemySoftTargetNameplateEnemy (Game)
Default: 1, Scope: Account
Always show nameplates for soft enemy target
SoftTargetNameplateFriendSoftTargetNameplateFriend (Game)
Default: 0, Scope: Account
Always show nameplates for soft friend target
SoftTargetNameplateInteractSoftTargetNameplateInteract (Game)
Default: 0, Scope: Account
Always show nameplates for soft interact target
SoftTargetNameplateSizeSoftTargetNameplateSize (Game)
Default: 19, Scope: Account
Size of soft target icon on nameplate (0 to disable)
softTargettingInteractKeySoundsoftTargettingInteractKeySound (Game)
Default: 0, Scope: Account
Setting for soft targeting that enables sound cues
SoftTargetTooltipDurationMsSoftTargetTooltipDurationMs (Game)
Default: 2000, Scope: Account
SoftTargetTooltipEnemySoftTargetTooltipEnemy (Game)
Default: 0, Scope: Account
SoftTargetTooltipFriendSoftTargetTooltipFriend (Game)
Default: 0, Scope: Account
SoftTargetTooltipInteractSoftTargetTooltipInteract (Game)
Default: 0, Scope: Account
SoftTargetTooltipLockedSoftTargetTooltipLocked (Game)
Default: 0, Scope: Account
SoftTargetWithLockedSoftTargetWithLocked (Game)
Default: 1
Allows soft target selection while player has a locked target. 2 = always do soft targeting
SoftTargetWorldtextFarDistSoftTargetWorldtextFarDist (Game)
Default: 40, Scope: Account
SoftTargetWorldtextNearDistSoftTargetWorldtextNearDist (Game)
Default: 4, Scope: Account
SoftTargetWorldtextNearScaleSoftTargetWorldtextNearScale (Game)
Default: 1, Scope: Account
SoftTargetWorldtextSizeSoftTargetWorldtextSize (Game)
Default: 32, Scope: Account
TargetAutoEnemyTargetAutoEnemy (Game)
Default: 1, Scope: Character
Auto-Target from your single target helpful spells
TargetAutoFriendTargetAutoFriend (Game)
Default: 1, Scope: Character
Auto-Target from your single target helpful spells
TargetEnemyAttackerTargetEnemyAttacker (Game)
Default: 1, Scope: Character
Auto-Target Enemy when they attack you
textureErrorColorstextureErrorColors (Graphics)
Default: 1
If enabled, replaceable textures that aren't specified will be purple
trackedProfessionRecipestrackedProfessionRecipes (Game)
Scope: Character
Internal cvar for saving tracked recipes in order
uieditor_enableduieditor_enabled (Debug)
Default: 0
0: Hide UI Editor (default), 1: Show UI Editor.
UseKeyHeldSpellErrorPollTimeUseKeyHeldSpellErrorPollTime (Game)
Default: 500, Scope: Account
(Internal only) Time between a failed cast and when it should attempt to cast again in ms. (Clamped to 100 and 10000)
useMaxFPSBkuseMaxFPSBk (Graphics)
Default: 1
Enables or disables background FPS limit
useMaxFPSuseMaxFPS (Graphics)
Default: 0
Enables or disables FPS limit
UseSlugUseSlug (Debug)
Default: 1
Render with slug text
useTargetFPSuseTargetFPS (Graphics)
Default: 1
Enables or disables background FPS limit
validateFrameXMLvalidateFrameXML
Default: 1
Display warning when FrameXML detects unparsed elements
WorldTextMinAlphaWorldTextMinAlpha (Game)
Default: 0.5, Scope: Account
WorldTextMinSizeWorldTextMinSize (Game)
Default: 0, Scope: Account
Commands
LogFps
WriteCustomizationOptions
bspcache
fullSizeFocusFrame
GamePadAbbreviatedBindingReverse
GamePadEmulateEsc
multiBarRightVerticalLayout
physDraw
physDrawBroadphase
physDrawCenterOfMass
physDrawContacts
physDrawDMStats
physDrawFixtures
physDrawJoints
physDrawStats
physDrawTransparent
showPartyBackground
worldEntityLinkMode

Enums

Enum.CurrencySource
  + 53: PlayerTrait
  + 54: PhBuffer_53
  + 55: PhBuffer_54
  + 56: RenownRepGain
Enum.EventToastEventType
  + 22: SpellLearned
  + 23: TreasureItem
Enum.HolidayFlags
  + 6: DurationUseMinutes
Enum.InventoryType
  + 30: IndexProfessionToolType
  + 31: IndexProfessionGearType
  + 32: IndexEquipablespellOffensiveType
  + 33: IndexEquipablespellUtilityType
  + 34: IndexEquipablespellDefensiveType
  + 35: IndexEquipablespellMobilityType
Enum.ItemClass
  + 20: Profession
Enum.ItemGemColor
  + 25: Tinker
Enum.ItemSocketType
  + 25: Tinker
Enum.LFGListDisplayType
  + 6: Comment
Enum.MountType
  + 4: Dragonriding
Enum.MountTypeFlag
  + 3: IsDragonRidingMount
Enum.PowerType
  + 22: Essence
  + 23: RuneBlood
  + 24: RuneFrost
  + 25: RuneUnholy
Enum.UIWidgetVisualizationType
  + 25: FillUpFrames
Enum.UnitSex
  + 5: Neutral
Enum.ValidateNameResult
  + 1: Success
  + 2: Failure
  + 3: NoName
  + 4: TooShort
  + 5: TooLong
  + 6: InvalidCharacter
  + 7: MixedLanguages
  + 8: Profane
  + 9: Reserved
  + 10: InvalidApostrophe
  + 11: MultipleApostrophes
  + 12: ThreeConsecutive
  + 13: InvalidSpace
  + 14: ConsecutiveSpaces
  + 15: RussianConsecutiveSilentCharacters
  + 16: RussianSilentCharacterAtBeginningOrEnd
  + 17: DeclensionDoesntMatchBaseName
  + 18: SpacesDisallowed
  - 1: NameSuccess
  - 2: NameFailure
  - 3: NameNoName
  - 4: NameTooShort
  - 5: NameTooLong
  - 6: NameInvalidCharacter
  - 7: NameMixedLanguages
  - 8: NameProfane
  - 9: NameReserved
  - 10: NameInvalidApostrophe
  - 11: NameMultipleApostrophes
  - 12: NameThreeConsecutive
  - 13: NameInvalidSpace
  - 14: NameConsecutiveSpaces
  - 15: NameRussianConsecutiveSilentCharacters
  - 16: NameRussianSilentCharacterAtBeginningOrEnd
  - 17: NameDeclensionDoesntMatchBaseName
  - 18: NameSpacesDisallowed

Structures

BarberShopRaceData (C_BarberShop.GetCurrentCharacterData)
  + 4: createScreenIconAtlas
CharCustomizationChoice (C_BarberShop.GetAvailableCustomizations)
  + 7: showLocked
  + 8: lockedTooltip
CharCustomizationOption (C_BarberShop.GetAvailableCustomizations)
  # 6: currentChoiceIndex, Nilable: false -> true
  + 8: isSound
CurrencyInfo (C_CurrencyInfo.GetCurrencyInfo, C_CurrencyInfo.GetCurrencyListInfo)
  + 2: description
ExpansionDisplayInfo (GetExpansionDisplayInfo)
  + 4: highResBackgroundID
  + 5: lowResBackgroundID
GossipOptionUIInfo (C_GossipInfo.GetOptions)
  + 1: gossipOptionID
  + 3: icon
  + 7: flags
  + 8: overrideIconID
  + 9: selectOptionWhenOnlyOption
  + 10: orderIndex
  - 2: type
GroupFinderActivityInfo (C_LFGList.GetActivityInfoTable, C_LFGList.GetPlaystyleString)
  + 19: useDungeonRoleExpectations
LfgSearchResultData (C_LFGList.GetSearchResultInfo)
  + 9: hasSelf
PVPPersonalRatedInfo (C_PvP.GetPVPActiveMatchPersonalRatedInfo)
  + 12: roundsSeasonPlayed
  + 13: roundsSeasonWon
  + 14: roundsWeeklyPlayed
  + 15: roundsWeeklyWon
PvpBrawlInfo (C_PvP.GetActiveBrawlInfo, C_PvP.GetAvailableBrawlInfo, C_PvP.GetSpecialEventBrawlInfo)
  + 6: minLevel
  + 7: maxLevel
  + 8: groupsAllowed
TextureAndTextRowVisualizationInfo (C_UIWidgetManager.GetTextureAndTextRowVisualizationInfo)
  + 4: fixedWidth
UIWidgetSpellInfo (C_UIWidgetManager.GetSpellDisplayVisualizationInfo)
  + 8: borderColor
  + 12: isLootObject
UiMapExplorationInfo (C_MapExplorationInfo.GetExploredMapTextures)
  + 6: isDrawOnTopLayer

Deprecated API

APIs deprecated during 9.x were removed with patch 10.0.0[1]

Deprecated 9.x API

9.0.5

IsActivePlayerMentor -> IsActivePlayerGuide
QueryGuildMembersForRecipe -> C_GuildInfo.QueryGuildMembersForRecipe
C_Soulbinds.GetConduitItemLevel -> C_Soulbinds.GetConduitCollectionData

9.1.0

C_TransmogCollection.GetIllusionSourceInfo -> C_TransmogCollection.GetIllusionInfo, C_TransmogCollection.GetIllusionStrings
C_TransmogCollection.GetIllusionFallbackWeaponSource -> C_TransmogCollection.GetFallbackWeaponAppearance
C_Transmog.GetCost -> C_Transmog.GetApplyCost
C_TransmogSets.GetSetSources -> C_TransmogSets.GetSetPrimaryAppearances
GetQuestLogPortraitGiver -> C_QuestLog.GetQuestLogPortraitGiver
C_PlayerChoice.GetPlayerChoiceInfo -> C_PlayerChoice.GetCurrentPlayerChoiceInfo
C_PlayerChoice.GetPlayerChoiceOptionInfo -> C_PlayerChoice.GetCurrentPlayerChoiceInfo
C_PlayerChoice.GetPlayerChoiceRewardInfo -> C_PlayerChoice.GetCurrentPlayerChoiceInfo
SendPlayerChoiceResponse -> C_PlayerChoice.SendPlayerChoiceResponse
C_LegendaryCrafting.GetRuneforgePowersByClassAndSpec -> C_LegendaryCrafting.GetRuneforgePowersByClassSpecAndCovenant
IsDressableItem -> C_Item.IsDressableItemByID
-- transmogrify
LE_TRANSMOG_SEARCH_TYPE_ITEMS = Enum.TransmogSearchType.Items;
LE_TRANSMOG_SEARCH_TYPE_BASE_SETS = Enum.TransmogSearchType.BaseSets;
LE_TRANSMOG_SEARCH_TYPE_USABLE_SETS = Enum.TransmogSearchType.UsableSets;

-- Item class/subclass enum conversions
LE_ITEM_CLASS_CONSUMABLE = Enum.ItemClass.Consumable;
LE_ITEM_CLASS_CONTAINER = Enum.ItemClass.Container;
LE_ITEM_CLASS_WEAPON = Enum.ItemClass.Weapon;
LE_ITEM_CLASS_GEM = Enum.ItemClass.Gem;
LE_ITEM_CLASS_ARMOR = Enum.ItemClass.Armor;
LE_ITEM_CLASS_REAGENT = Enum.ItemClass.Reagent;
LE_ITEM_CLASS_PROJECTILE = Enum.ItemClass.Projectile;
LE_ITEM_CLASS_TRADEGOODS = Enum.ItemClass.Tradegoods;
LE_ITEM_CLASS_ITEM_ENHANCEMENT = Enum.ItemClass.ItemEnhancement;
LE_ITEM_CLASS_RECIPE = Enum.ItemClass.Recipe;
LE_ITEM_CLASS_QUIVER = Enum.ItemClass.Quiver;
LE_ITEM_CLASS_QUESTITEM = Enum.ItemClass.Questitem;
LE_ITEM_CLASS_KEY = Enum.ItemClass.Key;
LE_ITEM_CLASS_MISCELLANEOUS = Enum.ItemClass.Miscellaneous;
LE_ITEM_CLASS_GLYPH = Enum.ItemClass.Glyph;
LE_ITEM_CLASS_BATTLEPET = Enum.ItemClass.Battlepet;
LE_ITEM_CLASS_WOW_TOKEN = Enum.ItemClass.WoWToken;

LE_ITEM_WEAPON_AXE1H = Enum.ItemWeaponSubclass.Axe1H;
LE_ITEM_WEAPON_AXE2H = Enum.ItemWeaponSubclass.Axe2H;
LE_ITEM_WEAPON_BOWS = Enum.ItemWeaponSubclass.Bows;
LE_ITEM_WEAPON_GUNS = Enum.ItemWeaponSubclass.Guns;
LE_ITEM_WEAPON_MACE1H = Enum.ItemWeaponSubclass.Mace1H;
LE_ITEM_WEAPON_MACE2H = Enum.ItemWeaponSubclass.Mace2H;
LE_ITEM_WEAPON_POLEARM = Enum.ItemWeaponSubclass.Polearm;
LE_ITEM_WEAPON_SWORD1H = Enum.ItemWeaponSubclass.Sword1H;
LE_ITEM_WEAPON_SWORD2H = Enum.ItemWeaponSubclass.Sword2H;
LE_ITEM_WEAPON_WARGLAIVE = Enum.ItemWeaponSubclass.Warglaive;
LE_ITEM_WEAPON_STAFF = Enum.ItemWeaponSubclass.Staff;
LE_ITEM_WEAPON_BEARCLAW = Enum.ItemWeaponSubclass.Bearclaw;
LE_ITEM_WEAPON_CATCLAW = Enum.ItemWeaponSubclass.Catclaw;
LE_ITEM_WEAPON_UNARMED = Enum.ItemWeaponSubclass.Unarmed;
LE_ITEM_WEAPON_GENERIC = Enum.ItemWeaponSubclass.Generic;
LE_ITEM_WEAPON_DAGGER = Enum.ItemWeaponSubclass.Dagger;
LE_ITEM_WEAPON_THROWN = Enum.ItemWeaponSubclass.Thrown;
LE_ITEM_WEAPON_OBSOLETE3 = Enum.ItemWeaponSubclass.Obsolete3;
LE_ITEM_WEAPON_CROSSBOW = Enum.ItemWeaponSubclass.Crossbow;
LE_ITEM_WEAPON_WAND = Enum.ItemWeaponSubclass.Wand;
LE_ITEM_WEAPON_FISHINGPOLE = Enum.ItemWeaponSubclass.Fishingpole;

LE_ITEM_ARMOR_GENERIC = Enum.ItemArmorSubclass.Generic;
LE_ITEM_ARMOR_CLOTH = Enum.ItemArmorSubclass.Cloth;
LE_ITEM_ARMOR_LEATHER = Enum.ItemArmorSubclass.Leather;
LE_ITEM_ARMOR_MAIL = Enum.ItemArmorSubclass.Mail;
LE_ITEM_ARMOR_PLATE = Enum.ItemArmorSubclass.Plate;
LE_ITEM_ARMOR_COSMETIC = Enum.ItemArmorSubclass.Cosmetic;
LE_ITEM_ARMOR_SHIELD = Enum.ItemArmorSubclass.Shield;
LE_ITEM_ARMOR_LIBRAM = Enum.ItemArmorSubclass.Libram;
LE_ITEM_ARMOR_IDOL = Enum.ItemArmorSubclass.Idol;
LE_ITEM_ARMOR_TOTEM = Enum.ItemArmorSubclass.Totem;
LE_ITEM_ARMOR_SIGIL = Enum.ItemArmorSubclass.Sigil;
LE_ITEM_ARMOR_RELIC = Enum.ItemArmorSubclass.Relic;

LE_ITEM_GEM_INTELLECT = Enum.ItemGemSubclass.Intellect;
LE_ITEM_GEM_AGILITY = Enum.ItemGemSubclass.Agility;
LE_ITEM_GEM_STRENGTH = Enum.ItemGemSubclass.Strength;
LE_ITEM_GEM_STAMINA = Enum.ItemGemSubclass.Stamina;
LE_ITEM_GEM_SPIRIT = Enum.ItemGemSubclass.Spirit;
LE_ITEM_GEM_CRITICALSTRIKE = Enum.ItemGemSubclass.Criticalstrike;
LE_ITEM_GEM_MASTERY = Enum.ItemGemSubclass.Mastery;
LE_ITEM_GEM_HASTE = Enum.ItemGemSubclass.Haste;
LE_ITEM_GEM_VERSATILITY = Enum.ItemGemSubclass.Versatility;
LE_ITEM_GEM_MULTIPLESTATS = Enum.ItemGemSubclass.Multiplestats;
LE_ITEM_GEM_ARTIFACTRELIC = Enum.ItemGemSubclass.Artifactrelic;

LE_ITEM_RECIPE_BOOK = Enum.ItemRecipeSubclass.Book;
LE_ITEM_RECIPE_LEATHERWORKING = Enum.ItemRecipeSubclass.Leatherworking;
LE_ITEM_RECIPE_TAILORING = Enum.ItemRecipeSubclass.Tailoring;
LE_ITEM_RECIPE_ENGINEERING = Enum.ItemRecipeSubclass.Engineering;
LE_ITEM_RECIPE_BLACKSMITHING = Enum.ItemRecipeSubclass.Blacksmithing;
LE_ITEM_RECIPE_COOKING = Enum.ItemRecipeSubclass.Cooking;
LE_ITEM_RECIPE_ALCHEMY = Enum.ItemRecipeSubclass.Alchemy;
LE_ITEM_RECIPE_FIRST_AID = Enum.ItemRecipeSubclass.FirstAid;
LE_ITEM_RECIPE_ENCHANTING = Enum.ItemRecipeSubclass.Enchanting;
LE_ITEM_RECIPE_FISHING = Enum.ItemRecipeSubclass.Fishing;
LE_ITEM_RECIPE_JEWELCRAFTING = Enum.ItemRecipeSubclass.Jewelcrafting;
LE_ITEM_RECIPE_INSCRIPTION = Enum.ItemRecipeSubclass.Inscription;

LE_ITEM_MISCELLANEOUS_JUNK = Enum.ItemMiscellaneousSubclass.Junk;
LE_ITEM_MISCELLANEOUS_REAGENT = Enum.ItemMiscellaneousSubclass.Reagent;
LE_ITEM_MISCELLANEOUS_COMPANION_PET = Enum.ItemMiscellaneousSubclass.CompanionPet;
LE_ITEM_MISCELLANEOUS_HOLIDAY = Enum.ItemMiscellaneousSubclass.Holiday;
LE_ITEM_MISCELLANEOUS_OTHER = Enum.ItemMiscellaneousSubclass.Other;
LE_ITEM_MISCELLANEOUS_MOUNT = Enum.ItemMiscellaneousSubclass.Mount;
LE_ITEM_MISCELLANEOUS_MOUNT_EQUIPMENT = Enum.ItemMiscellaneousSubclass.MountEquipment;

-- Pet battle enum conversions
LE_BATTLE_PET_WEATHER = Enum.BattlePetOwner.Weather;
LE_BATTLE_PET_ALLY = Enum.BattlePetOwner.Ally;
LE_BATTLE_PET_ENEMY = Enum.BattlePetOwner.Enemy;

LE_BATTLE_PET_ACTION_NONE = Enum.BattlePetAction.None;
LE_BATTLE_PET_ACTION_ABILITY = Enum.BattlePetAction.Ability;
LE_BATTLE_PET_ACTION_SWITCH_PET = Enum.BattlePetAction.SwitchPet;
LE_BATTLE_PET_ACTION_TRAP = Enum.BattlePetAction.Trap;
LE_BATTLE_PET_ACTION_SKIP = Enum.BattlePetAction.Skip;

LE_PET_BATTLE_STATE_CREATED = Enum.PetbattleState.Created;
LE_PET_BATTLE_STATE_WAITING_PRE_BATTLE = Enum.PetbattleState.WaitingPreBattle;
LE_PET_BATTLE_STATE_ROUND_IN_PROGRESS = Enum.PetbattleState.RoundInProgress;
LE_PET_BATTLE_STATE_WAITING_FOR_FRONT_PETS = Enum.PetbattleState.WaitingForFrontPets;
LE_PET_BATTLE_STATE_CREATED_FAILED = Enum.PetbattleState.CreatedFailed;
LE_PET_BATTLE_STATE_FINAL_ROUND = Enum.PetbattleState.FinalRound;
LE_PET_BATTLE_STATE_FINISHED = Enum.PetbattleState.Finished;

9.1.5

GetItemUpgradeItemInfo -> C_ItemUpgrade.GetItemUpgradeItemInfo
GetItemUpgradeStats -> C_ItemUpgrade.GetItemUpgradeItemInfo
SetItemUpgradeFromCursorItem -> C_ItemUpgrade.SetItemUpgradeFromCursorItem
ClearItemUpgrade -> C_ItemUpgrade.ClearItemUpgrade
UpgradeItem -> C_ItemUpgrade.UpgradeItem
CloseItemUpgrade -> C_ItemUpgrade.CloseItemUpgrade
GetItemUpdateLevel -> C_ItemUpgrade.GetItemUpgradeCurrentLevel
C_ItemUpgrade.GetItemLevelIncrement -> C_ItemUpgrade.GetItemUpgradeItemInfo
C_LFGList.GetCategoryInfo -> C_LFGList.GetLfgCategoryInfo
C_LFGList.GetActivityInfo -> C_LFGList.GetActivityInfoTable

9.2.0

GetBattlefieldFlagPosition -> C_PvP.GetBattlefieldFlagPosition
-- Pet battle enum conversions
Enum.PetBattleState = Enum.PetbattleState

LE_PET_BATTLE_STATE_CREATED = Enum.PetbattleState.Created;
LE_PET_BATTLE_STATE_WAITING_PRE_BATTLE = Enum.PetbattleState.WaitingPreBattle;
LE_PET_BATTLE_STATE_ROUND_IN_PROGRESS = Enum.PetbattleState.RoundInProgress;
LE_PET_BATTLE_STATE_WAITING_FOR_FRONT_PETS = Enum.PetbattleState.WaitingForFrontPets;
LE_PET_BATTLE_STATE_CREATED_FAILED = Enum.PetbattleState.CreatedFailed;
LE_PET_BATTLE_STATE_FINAL_ROUND = Enum.PetbattleState.FinalRound;
LE_PET_BATTLE_STATE_FINISHED = Enum.PetbattleState.Finished;

-- Unit Sex enum conversions
Enum.Unitsex = Enum.UnitSex;

-- Calendar constants
-- Event Types
CALENDAR_EVENTTYPE_RAID			= Enum.CalendarEventType.Raid;
CALENDAR_EVENTTYPE_DUNGEON		= Enum.CalendarEventType.Dungeon;
CALENDAR_EVENTTYPE_PVP			= Enum.CalendarEventType.PvP;
CALENDAR_EVENTTYPE_MEETING		= Enum.CalendarEventType.Meeting;
CALENDAR_EVENTTYPE_OTHER		= Enum.CalendarEventType.Other;
CALENDAR_MAX_EVENTTYPE			= Enum.CalendarEventTypeMeta.MaxValue;

-- Invite Statuses
CALENDAR_INVITESTATUS_INVITED		= Enum.CalendarStatus.Invited;
CALENDAR_INVITESTATUS_ACCEPTED		= Enum.CalendarStatus.Available;
CALENDAR_INVITESTATUS_DECLINED		= Enum.CalendarStatus.Declined;
CALENDAR_INVITESTATUS_CONFIRMED		= Enum.CalendarStatus.Confirmed;
CALENDAR_INVITESTATUS_OUT			= Enum.CalendarStatus.Out;
CALENDAR_INVITESTATUS_STANDBY		= Enum.CalendarStatus.Standby;
CALENDAR_INVITESTATUS_SIGNEDUP		= Enum.CalendarStatus.Signedup;
CALENDAR_INVITESTATUS_NOT_SIGNEDUP	= Enum.CalendarStatus.NotSignedup;
CALENDAR_INVITESTATUS_TENTATIVE		= Enum.CalendarStatus.Tentative;
CALENDAR_MAX_INVITESTATUS			= Enum.CalendarStatusMeta.MaxValue;

-- Invite Types
CALENDAR_INVITETYPE_NORMAL		= Enum.CalendarInviteType.Normal;
CALENDAR_INVITETYPE_SIGNUP		= Enum.CalendarInviteType.Signup;
CALENDAR_MAX_INVITETYPE			= Enum.CalendarInviteTypeMeta.MaxValue;

9.2.7

-- LFG flags
LFG_LIST_FILTER_RECOMMENDED = Enum.LFGListFilter.Recommended;
LFG_LIST_FILTER_NOT_RECOMMENDED = Enum.LFGListFilter.NotRecommended;
LFG_LIST_FILTER_PVE = Enum.LFGListFilter.PvE;
LFG_LIST_FILTER_PVP = Enum.LFGListFilter.PvP;

-- LFG renaming cleanup
Enum.CurrencySource.LfgReward = Enum.CurrencySource.LFGReward;
Enum.LfgEntryPlaystyle = Enum.LFGEntryPlaystyle;
Enum.LfgListDisplayType = Enum.LFGListDisplayType;
Enum.BrawlType.Lfg = Enum.BrawlType.LFG;