Blizzard has also posted an official thread on 6.0 changes.
- New Widget type: CinematicModel, derivative of PlayerModel
- New XML element type: "keyValue", currently only supported for Frames.
- Functionality appears equivalent to creating a new element in ParentKey's table.
- New "atlas" and "useAtlasSize" properties for textures defined in XML. Equivalent function added for texture widgets called Texture:SetAtlas. For example:
- Before: file="Interface\PetBattles\PetJournal"
- After: atlas="PetJournal-BattleSlot-Locked" useAtlasSize="true"
- C_Timer functions added - timers with callback functionality! See C_Timer.After, C_Timer.NewTimer, and C_Timer.NewTicker for more details.
- handle = C_Timer.NewTimer(lengthInSeconds, callback)
- if (handle) then handle:Cancel(); --timer complete code goes here; end
- Garrison stuff - AddOns/Blizzard_GarrisonUI, C_Garrison.*
- Objective Tracker - AddOns/Blizzard_ObjectiveTracker (quest, achievement, auto quest popup, scenario, bonus objective, ...)
- Group finder - FrameXML/LFGList.(lua,xml), C_LFGList.*
- Second Void Storage page
- 1/(nil|0) changed to true/false all over the API, notably:
- EquipmentManager_UnpackLocation() 2 new returns after bag, tab, voidSlot
- GetGlyphInfo() new return (#8): specMatches
- GetMapContinents() now also returns the mapID : mapID1, mapName1, mapID2, mapName2, etc.
- GetMapZones() now also returns the zoneID : zoneID1, zoneName1, zoneID2, zoneName2, etc.
- GetTalentInfo() has had its arguments and return values changed:
- args: (
index[, isInspect, talentGroup, inspectedUnit , classID]) -> (tier, column, talentGroup[, isInspect, inspectUnit])
- returns: name, iconTexture,
tier, column, selected, available -> talentID, name, iconTexture, selected, available
- GetTalentInfoByID() is a new function that takes a talentID as its parameter, and returns the same as GetTalentInfo().
- GetTalentLink() now takes a talentID as its parameter, as returned by GetTalentInfo().
- QueryAuctionItems new return (#11): exactMatch
- GetQuestLogTitle has greatly changed returns.
- returns: title, level, suggestedGroup,
questTag, isHeader, isCollapsed, isComplete, isDaily, frequency, questID, startEvent, displayQuestID, isOnMap, hasLocalPOI, isTask, isStory
- GetQuestTagInfo replacement for removed questTag return value from GetQuestLogTitle.
- GetGossipAvailableQuests has changed returns.
- returns: title, level, isTrivial,
isDaily, frequency, isRepeatable, isLegendary, ...
- GetAvailableQuestInfo has changed returns.
- returns: isTrivial,
isDaily, frequency, isRepeatable, isLegendary
- GetSpellInfo has removed some returns.
- returns: name, rank, icon,
powerCost, isFunnel, powerType, castingTime, minRange, maxRange
- GetWeaponEnchantInfo has greatly changed returns.
- returns: hasMainHandEnchant, mainHandExpiration, mainHandCharges, mainHandEnchantID, hasOffHandEnchant, offHandExpiration, offHandCharges, offHandEnchantId,
hasThrownEnchant, thrownExpiration, thrownCharges
- A new event, LOOT_READY, signals the start of the availability of loot data for various loot-related API functions.
- SWING_DAMAGE/SPELL_DAMAGE/SPELL_PERIODIC_DAMAGE gain new parameters after crushing (isOffHand, multistrike)
- SPELL_HEAL/SPELL_PERIODIC_HEAL gains new parameter after critical (multistrike)
- SPELL_MISSED/SPELL_PERIODIC_MISSED/RANGE_MISSED/SWING_MISSED gains new parameter after isOffHand (multistrike)
- New floating combat text type: PERIODIC_HEAL_CRIT
- Instance difficulty
- difficultyID 14 (Normal flex10-30, previously "Flex")
- difficultyID 15 (Heroic flex10-30, new)
- difficultyID 16 (Mythic 20, new)
- difficultyID 17 (Looking For Raid flex10-30, new)
- Many legacy mount-related and pet-related functions were removed and replaced by new functions in C_MountJournal.
- Note: the legacy functions that remain, such as GetCompanionInfo, are almost completely broken as well.
- New Globally Unique Identifier format :
- For players: Player-[server ID]-[player UID] (Example: "Player-976-0002FD64")
- For battle pets: BattlePet-0-[Battle Pet UID] (Example: "BattlePet-0-000000E0156B")
- For creatures, pets, objects, and vehicles: [Unit type]-0-[server ID]-[instance ID]-[zone UID]-[ID]-[Spawn UID] (Example: "Creature-0-976-0-11-31146-000136DF91")
- Unit Type Names: "Creature", "Pet", "GameObject", and "Vehicle"
- For vignettes: Vignette-0-[server ID]-[instance ID]-[zone UID]-0-[spawn UID] (Example: "Vignette-0-970-1116-7-0-0017CAE465" for rare mob Sulfurious)
- Item links data: itemID:enchant:gem1:gem2:gem3:gem4:suffixID:uniqueID:level:reforgeId:upgradeId -> itemID:enchant:gem1:gem2:gem3:gem4:suffixID:uniqueID:level:upgradeId:instanceDifficultyID:numBonusIDs:bonusID1:bonusID2... Example of some bonusIDs:
- 448 - Warforged, +6 item level
- 449 - Heroic, +13 item level
- 450 - Mythic, +26 item level
- 451 - Looking For Raid, -12 item level
- 15 - Epic, +20 item level
- 171 - Rare, +10 item level
- BonusIDs are stored in ItemBonus.db2.
- BonusIDs have a massive number of uses, including but not limited to:
- Random suffixes with varying stat amounts - ex. of the Fireflash: BonusIDs 19-39
- Random bonus tertiary stats - BonusID 40: +Avoidance, BonusID 41: +Leech, etc
- Raid typing - see above
- Dungeon typing - i.e. BonusID 518 with qualifier 17 restricts Bloodmaul Slag Mines Normal mode items to have -10 level
- Random quest upgrades - see above entries for 'Rare' and 'Epic'
- Crafting upgrades - BonusID 525: Basic, BonusID 526: Expert, etc
- BonusIDs can do the following 10 actions:
- 1 - Adjust Itemlevel
- 2 - Modify Stats
- 3 - Change Item Quality
- 4 - Add Item Titles
- 5 - Append Words to Item Name
- 6 - Add Sockets
- 7 - Adjust ItemAppearanceID (which controls ItemDisplayInfoID and FileDataIconID)
- 8 - Adjust Equip Level
- 9 - Unknown
- 10 - Unknown
- You can no longer anchor a frame to another frame that has negative, or zero, width or height. Previously, this was acceptable and could be used for adjusting layouts easily by changing a frame's size when it was hidden.
Lua Enums (18.104.22.16814 → 22.214.171.12467)
- LE_ (new)
- NUM_ACTIONS_PER_PAGE = 12
- NUM_BONUS_ACTION_PAGES = 4
- NUM_NORMAL_ACTION_PAGES = 6
- LE_BAG_FILTER_FLAG (new)
- _IGNORE_CLEANUP = 1
- _EQUIPMENT = 2
- _CONSUMABLES = 3
- _TRADE_GOODS = 4
- _JUNK = 5
- LE_CHARACTER_UNDELETE_RESULT (new)
- _OK = 1
- _ERROR_COOLDOWN = 2
- _ERROR_CHAR_CREATE = 3
- _ERROR_DISABLED = 4
- _ERROR_NAME_TAKEN_BY_THIS_ACCOUNT = 5
- _ERROR_UNKNOWN = 6
- LE_EXPANSION (new)
- _CLASSIC = 0
- _BURNING_CRUSADE = 1
- _WRATH_OF_THE_LICH_KING = 2
- _CATACLYSM = 3
- _MISTS_OF_PANDARIA = 4
- _WARLORDS_OF_DRAENOR = 5
- _LEVEL_CURRENT = 5
- _GARRISON_BUILDING = 9 (new)
- _GARRISON_MISSION_LIST = 10 (new)
- _GARRISON_MISSION_PAGE = 11 (new)
- _GARRISON_LANDING = 12 (new)
- _GARRISON_ZONE_ABILITY = 13 (new)
- _WORLD_MAP_FRAME = 14 (new)
- _CLEAN_UP_BAGS = 15 (new)
- _BAG_SETTINGS = 16 (new)
- _REAGENT_BANK_UNLOCK = 17 (new)
- _TOYBOX_FAVORITE = 18 (new)
- _TOYBOX_MOUSEWHEEL_PAGING = 19 (new)
- _LFG_LIST = 20 (new)
- LE_ITEM_QUALITY (new)
- _POOR = 0
- _COMMON = 1
- _UNCOMMON = 2
- _RARE = 3
- _EPIC = 4
- _LEGENDARY = 5
- _HEIRLOOM = 7
- LE_LFG_LIST_DISPLAY_TYPE (new)
- _ROLE_COUNT = 1
- _ROLE_ENUMERATE = 2
- _CLASS_ENUMERATE = 3
- _HIDE_ALL = 4
- LE_LFG_LIST_FILTER (new)
- _RECOMMENDED = 1
- _NOT_RECOMMENDED = 2
- _PVE = 4
- _PVP = 8
- LE_MOUNT_JOURNAL_FILTER (new)
- _COLLECTED = 1
- _NOT_COLLECTED = 2
- LE_PAN (new)
- _STEADY = 1
- _NONE = 2
- _NONE_RANGED = 3
- _FAST_SLOW = 4
- _SLOW_FAST = 5
- _AND_JUMP = 6
- _DEFAULT = 262144 (new)
- LE_QUEST_FACTION (new)
- _ALLIANCE = 1
- _HORDE = 2
- LE_QUEST_FREQUENCY (new)
- _DEFAULT = 1
- _DAILY = 2
- _WEEKLY = 3
- _HASTE = 4 (new)
- _CRITICAL_STRIKE = 6 (was 7)
- _MASTERY = 7 (was 8)
- _MULITSTRIKE = 8 (new)
- _VERSATILITY = 9 (new)
- LE_TRACKER_SORTING (new)
- _MANUAL = 1
- _PROXIMITY = 2
- _DIFFICULTY_LOW = 3
- _DIFFICULTY_HIGH = 4
- LE_UNIT_STAT (new)
- _STRENGTH = 1
- _AGILITY = 2
- _STAMINA = 3
- _INTELLECT = 4
- _SPIRIT = 5