WoW Forever addon API: what changed for add-on authors
Updated 2026-11-02
The WoW Forever addon API is the modern retail API, not the Classic one, with the same combat restrictions: code against Mainline and expect secret values. Blizzard hasn't published a Forever-specific API guide that we could find, so everything below comes from add-on authors' code and from Blizzard's retail material. Check it against your own client: rules can change with a patch.
Client and interface number
- Interface number: 16001 during the beta. Authors use it in TOC files such as DBM-Core's. Check yours with
/dump select(4, GetBuildInfo()). - Game version on add-on sites: CurseForge and Wago list Forever as 1.60.1.
- Same executable as retail: WowUp's source notes that Forever ships the retail binary and is told apart by its
_forever_install folder.
TOC files
Authors declare Forever in any of these ways, all seen in real add-ons:
- a line listing several numbers that includes 16001, as in Bartender4
- a client-specific line,
## Interface-Camelot: 16001, as in Plater - a separate file with the
_Camelot.tocsuffix, as in Questie
Detecting Forever in code
WOW_PROJECT_CAMELOT is in use for WOW_PROJECT_ID checks: see DBM's version module and Ace3's luacheck config. BigWigs loads a Camelot init file that sets its own flag.
Secret values
This is the change that breaks add-ons. Under Blizzard's rule, written for Midnight, combat information can be displayed but not known by add-ons.
Per the Warcraft Wiki, tainted code can store, pass and concatenate secret values and hand them to certain native APIs like StatusBar:SetValue. It can't do arithmetic on them or compare them, and trying raises a Lua error. The issecretvalue function tests for them.
That applies to Forever as far as authors can tell:
- Threat Plates 13.3.5 disabled threat-delta values "on WoW Midnight and WoW Forever".
- TellMeWhen's changelog describes buff and debuff icons limited in combat.
- A beta forum thread reports
UnitDetailedThreatSituationreturning secrets (a player report). - Another thread reports the same for combo points (also a player report).
Classic builds don't have this system, so Classic code that compares health or aura data will error here. Use issecretvalue guards.
Not confirmed
We have no source for which APIs behave differently between Forever and retail beyond the examples above, or for whether the live client changes any of this. Authors: tell us what you've found in the forum and we'll add it, with credit.