Blizzard Entertainment is loosening World of Warcraft's addon API restrictions for the Midnight expansion, granting developers access to spell information that was previously off-limits. The changes represent a notable policy reversal, particularly for spells that provide direct combat advantages.
Enhancement Shaman and Demon Hunter Resources Get Official Tracking Support
The biggest news involves whitelisting specific spells for addon tracking of their states, charges, and cooldowns. Two combat-critical resources now have full data visibility: Enhancement Shaman's Maelstrom Weapon and Devourer Demon Hunter's Soul Fragment. Both of these secondary resources currently lack native UI elements, creating a substantial gap for players of these specs.
This marks a shift from Blizzard's previous stance on preventing addons from enabling gameplay advantages. In communications through the WoW UI Dev Discord, the developers acknowledged that players had already created workarounds to replicate power trackers that would have been previously made using addons. While this won't extend to every class or spec, Blizzard's evaluating spell whitelisting requests on a case-by-case basis.
The whitelisting falls into two categories. Some spells now have non-secret cooldowns, covering Skyriding abilities and system spells. Others have full non-secret aura data, which includes the combat-relevant resources for Enhancement Shamans and Demon Hunters.
Complete Spell Whitelist Breakdown
For cooldown visibility, the whitelisted spells are:
- Second Wind (spell ID 425782)
- Surge Forward (spell ID 372608)
- Skyward Ascent (spell ID 372610)
- Aerial Halt (spell ID 403092)
- Whirling Surge (spell ID 361584)
- Lightning Rush (spell ID 418592)
- Switch Flight Style (spell ID 460002)
- GCD Dummy Spell (spell ID 61304)
For complete aura data access:
- Thrill of the Skies (spell ID 377234)
- Ohn'ahra's Gusts (spell ID 388367)
- Static Charge (spell ID 418590)
- Skyriding Racing (spell ID 369968)
- Maelstrom Weapon (spell ID 344179)
- Void Metamorphosis (spell ID 1217607)
- Void Metamorphosis resource aura (spell ID 1225789)
- Collapsing Star (spell ID 1227702)
All combat resurrection spells now have non-secret cooldowns and charge counts. This improves visibility for players who don't have combat res themselves, making it easier to coordinate with teammates who do.
The Skyriding additions aren't just quality of life improvements. They let players track shared cooldown charges for Dragonriding abilities more easily, which matters for navigation and exploration mechanics that have become central to the WoW experience.
New Healing Prediction System for Unit Frames
Blizzard's introducing a new system for unit frame healing prediction and absorb calculations. It centers on a UnitHealPredictionCalculator Lua object, created through the CreateUnitHealPredictionCalculator API. This object works with the UnitGetDetailedHealPrediction API to calculate heal prediction and absorb data for direct integration.
The calculator has several configuration options, including the ability to clamp damage absorbs to missing health, missing health after accounting for incoming healing, or maximum health. According to the provided code example, developers create the calculator object, pass it to UnitGetDetailedHealPrediction along with unit parameters, and the calculator updates with new data. The example shows retrieving data through the calculator's GetIncomingHeals() method and applying values to status bar displays.
This eliminates the workarounds developers had to use for accurate healing prediction on unit frames.
Cast Bar Updates and Improvements
Several changes target cast bar functionality. StatusBar:SetTimerDuration now accepts an optional direction parameter that lets the status bar calculate its fill from remaining duration rather than elapsed time. This mainly benefits channeled spell displays.
More cast bar improvements are in development. A new cast bar spell sequence ID will arrive with spellcast events and through UnitCastingInfo and UnitChannelInfo APIs. This sequence ID only appears for casting events that should display a cast bar in the UI, increments with each new spellcast, and never becomes secret.
Blizzard's removing secret restrictions on values needed for displaying enemy empowered casts properly. Specifically, the number of stages and the percentage of cast time each stage consumes will become available. The system will also incorporate the hold-at-max time of empowered casts into duration objects.
New Formatting Tools for Secret Values
Blizzard's adding tools to handle secret time values. A new SecondsFormatter Lua object will let developers format secret time values into displayable strings. Other numeric formatting solutions are in the works, including a method for formatting differences between cast durations to address situations like spell pushback calculations.
Two new APIs convert secret boolean values to colors: C_CurveUtil.EvaluateColorFromBoolean and C_CurveUtil.EvaluateColorValueFromBoolean. These provide a standardized approach rather than requiring separate implementations for each UI element type.
Duration Object functionality expanded with two new APIs: EvaluateRemainingDuration(curve, modifier) and EvaluateElapsedDuration(curve, modifier). These additions complement the removal of older duration APIs that aren't necessary now that Duration objects exist as a standardized type.
Legacy API Removals
Blizzard's removing several deprecated APIs across C_UnitAuras, C_Spell, and C_ActionBar. The removed functions include:
- C_ActionBar.GetActionCooldownRemaining
- C_ActionBar.GetActionCooldownRemainingPercent
- C_Spell.GetSpellCooldownRemaining
- C_Spell.GetSpellCooldownRemainingPercent
- C_UnitAuras.GetAuraDurationRemaining
- C_UnitAuras.GetAuraDurationRemainingPercent
Developers need to transition to Duration Object methods instead.
Restricted Environment and Bug Fixes
Several functions that were mistakenly removed from the restricted environment are coming back. These include strsplit, strjoin, and strconcat, which are necessary for string manipulation operations in addon code.
Blizzard fixed an issue where secret values became non-secret following a UI reload. This fix keeps the security model for protected information consistent across UI reload operations.
Party Kill Event Added
A new PARTY_KILL event tracks when party members eliminate units. The event delivers two unit GUIDs as payload: the attacker and the target. Both GUIDs remain secret when the associated unit's identity is meant to stay hidden, maintaining consistency with existing privacy protections.
Development Timeline and Beta Structure
Beta 5, scheduled for December 17, is the final Beta build releasing this year. Beta 6 won't arrive until January, though Blizzard will keep working on addon development requests through the holidays.
The version numbering differentiates between pre-patch and launch content. Version 12.0.0 corresponds to the Midnight pre-patch, while 12.0.1 represents the actual expansion launch. Beta builds have transitioned to using 12.0.1, while PTR builds use 12.0.0. All changes in PTR builds will also appear in corresponding Beta builds when Beta 6 releases in January.
Beta 4 contained more changes than initially anticipated, while Beta 5 has fewer changes due to build timing complications. Beta 4's build process took longer than expected, affecting the distribution of features across these releases.
Pre-Patch Gets New Restrictions Despite Player Adjustment Period
Blizzard confirmed the new addon restrictions will go live in pre-patch (version 12.0.0) rather than waiting until expansion launch (version 12.0.1). The reasoning is to give players time to adapt to the new addon landscape before Midnight's actual release. This approach allows for a smoother transition, since players will already be adjusting to class changes, spec modifications, and other game-wide updates during pre-patch.
Once Blizzard selects a Release Candidate build for version 12.0.0, addon authors preparing for pre-patch should switch their testing from Beta to PTR. After the RC selection, engineering resources will focus primarily on addon-related changes in version 12.0.1, with only very high priority items going into 12.0.0. Changes to version 12.0.1 will continue through expansion launch and beyond in follow-up patches, providing ongoing quality of life improvements requested by the addon development community.
Most future addon changes beyond the current set will land in Patch 12.0.1 instead of 12.0.0. Since the pre-patch version is approaching Release Candidate status, most development effort is shifting to post-launch improvements. This means players may need to find creative solutions for issues not yet addressed when customizing their user interfaces during pre-patch. But the pre-patch timing remains optimal for this transition, as players will simultaneously be adapting to numerous other game changes.
What This Means for Addon Development
These changes give developers substantially more control over cast bars and unit frame healing displays. The relaxation of restrictions comes directly in response to player feedback, showing Blizzard's willingness to reconsider previous hard-line stances on addon capabilities when community needs are clearly demonstrated.
The whitelisting of Enhancement Shaman and Demon Hunter resources represents a particularly notable policy shift. While Blizzard previously indicated they wanted to avoid addons enabling gameplay advantages, the reality that players had created jury-rigged workarounds likely influenced this decision. By officially supporting these tracking capabilities, Blizzard can ensure proper implementation rather than forcing players to rely on unstable or inefficient solutions.
Blizzard's encouraging continued feedback on spells that should be whitelisted, stating they'll evaluate each request individually. This case-by-case evaluation approach suggests that while blanket whitelisting of all abilities isn't happening, well-justified requests for critical UI information may get consideration.
The listed changes don't represent everything planned for the addon API. Blizzard explicitly stated that more changes are in development beyond those already committed for immediate upcoming Beta releases. The development team will keep implementing quality of life changes requested by addon authors throughout pre-patch and well into the post-launch patch cycle.