WoW-Forever-Addon-API-Cheat-Sheet für Interface 16001

Veröffentlicht am Aktualisiert am Beta-Berichte aus Build 1.60.1.69913

Teilen

Addon-Guide Seite 3 von 7

GetSpellInfo und GetItemInfo fehlten in Beta-Build 69913, schreibe also C_Spell- und C_Item-Aufrufe. Events ersetzen das Kampflog, das laut Berichten für Addons nicht verfügbar ist.

Frag unsere verschwitzte Zocker-KI zur Addon-API

C_Spell-Aufrufe, Secret Values, Kampflog-Events, TOC-Interface 16001, Settings-API und mehr

Alles, was unsere Guides abdecken. Die Antworten stammen von dieser Seite und aus unseren übrigen Guides, mit den echten Werten als Diagramm und verlinkten Guide-Abschnitten. Es ist KI, also prüfe die Quelle, bevor du zitierst.

Das ist eine Kurzreferenz für die API der 12.1.5-Ära, wie sie in WoW: Forever verwendet wird. Ältere Beobachtungen nennen Beta-Build 1.60.1.69913. Die Beispiele zu Regelsatz, Sounds und Erkennung wurden anhand von Blizzards gespeicherten Client-Dateien aus Build 1.60.1.70338 geprüft. Weitere Beispiele folgen der Mainline-Dokumentation der Warcraft Wiki. Der Autor hat keines davon im Spiel getestet.

TOC-Interface
16001
Alte Zauber- und Item-Globals
C_Spell, C_Item
Kampflog
Nicht verfügbar
API-Familie
Mainline 12.1.5

Diese Referenz gehört zum WoW-Forever-Addon-Entwicklerguide. Zur Client-Architektur und zu Secret Values lies WoW-Forever-Addon-Patterns. Wie Modelle diese Aufrufe falsch schreiben, steht in den häufigen KI-Addon-Fallstricken.

Die Ergänzungen vom 13. Oktober zitieren den aufbewahrten Client-Auszug von 70338. Verlinkte Quellenspiegel können einen späteren Build zeigen.

Verschwundene Globals

WoW Forever Builds stellte fest, dass diese Globals aus der Classic-Ära in Build 69913 fehlen. Auf altem Code trainierte Modelle schreiben sie trotzdem:

KI schreibtStattdessen nutzenHinweise
GetSpellInfo(id)C_Spell.GetSpellInfo(id)Gibt eine Tabelle zurück (name, iconID, castTime und mehr). nil, wenn der Zauber nicht gefunden wird.
GetItemInfo(id)C_Item.GetItemInfo(id)Gibt dieselbe Werteliste zurück wie das alte Global. nil, bis der Eintrag im Cache ist.
GetSpellBookItemNameC_SpellBook.GetSpellBookItemNameAltes Zauberbuch-Global fehlte in 69913.
GetTalentInfo / GetNumTalentTabsC_TraitsWoW Forever Builds: Talente laufen über das Trait-System.
GetAddOnMetadata(name, field)C_AddOns.GetAddOnMetadataGleicher Namespace-Umzug wie in Mainline.
CombatLogGetCurrentEventInfo()No verified replacement hereReported unavailable. Test on your build before you drop the feature.

Zauber und Items

Abfragen können leer zurückkommen. C_Spell.GetSpellInfo oder C_Item.GetItemInfo können bei einem Eintrag, den der Client noch nicht geladen hat, nil zurückgeben.

SpellLookup.lua
local info = C_Spell.GetSpellInfo(spellID)
if not info then
    C_Spell.RequestLoadSpellData(spellID)
    return
end
-- A field can still be secret. Guard before you print it.

local itemName, itemLink = C_Item.GetItemInfo(itemID)
if not itemName then
    C_Item.RequestLoadItemDataByID(itemID)
    return
end

Listen for SPELL_DATA_LOAD_RESULT (spellID, success) and ITEM_DATA_LOAD_RESULT (itemID, success). A nil can mean the record has not loaded or was not found. If the load event returns success false, treat the ID as not found.

Units und Secrets

Blizzard sagte, die Secret Values von Midnight seien auf Forever aktiv. Rechnen mit einem Secret Value oder Vergleichen löst einen Fehler aus:

AufrufKann Secret seinSichere Nutzung
UnitHealth / UnitHealthMaxJa, ZahlStatusBar:SetMinMaxValues und StatusBar:SetValue
UnitName / KreaturennamenJa, StringErst anzeigen, wenn issecretvalue false ist
UnitCanAttack / UnitExistsJa, BooleanNicht verzweigen, bis der Guard „plain“ meldet
UnitIsEnemyOft die falsche FrageHeißt jetzt angreifbar, nicht gegnerische Fraktion
UnitFactionGroupVor dem Vergleich prüfenthem ~= mine ist der Fraktionstest

Die Spalte „Kann Secret sein“ für Namen und Booleans stammt aus den Beta-Patchnotes von Warcraft Forever. Gesundheit stammt aus dem Test von WoW Forever Builds. Führe diesen Guard aus, bevor du auf einem Wert verzweigst oder ihn anzeigst:

Guard.lua
local function Sealed(value)
    return type(issecretvalue) == "function" and issecretvalue(value)
end

Die Code-Vorlagen und das Forever-Beacon-Beispiel enthalten abgesicherte Statusleisten-Beispiele. Teste sie auf deinem aktuellen Build.

Events statt Kampflog

Unter Midnight löst das Registrieren von COMBAT_LOG_EVENT_UNFILTERED einen Fehler aus (Warcraft Wiki, „Patch 12.0.0 API changes“). Warcraft Forever berichtet, dass der Kampflog-Leser auf Forever nicht verfügbar ist. Registriere stattdessen Unit-Events:

Du wolltestRegistrieren
Gesundheit des SpielersRegisterUnitEvent("UNIT_HEALTH", "player")
RessourceUNIT_POWER_UPDATE
Zauber begonnen oder beendetUNIT_SPELLCAST_START, _STOP, _SUCCEEDED, _FAILED, _INTERRUPTED
AurenLass Blizzards Aurenframes sie zeichnen. UNIT_AURA ist keine Erlaubnis, im Kampf Aurendaten zu lesen.
Kampf betreten und verlassenPLAYER_REGEN_DISABLED und PLAYER_REGEN_ENABLED
Ein Boss-PullENCOUNTER_START und ENCOUNTER_END, falls die Begegnung sie auslöst
ZonenwechselZONE_CHANGED_NEW_AREA, PLAYER_ENTERING_WORLD
Release Notes zu Guidelime v6.000 auf GitHub, darunter „Initial work to support WoW Forever“ und ein Eintrag „Add arrow ETA and TomTom option“
Bild teilen: Release Notes zu Guidelime v6.000 auf GitHub, darunter „Initial work to support WoW Forever“ und ein Eintrag „Add arrow ETA and TomTom option“

Die Release Notes von Guidelime v6.000 enthalten einen Fix, der Secret Values in UNITSPELLCASTSUCCEEDED auf WoW Forever.Quelle: Guidelime v6.000 auf GitHub, erfasst am 30. Sept. 2026.

Frames, Zeit, Chat

Frames, die einen Backdrop brauchen, erben BackdropTemplate. Timer nutzen C_Timer:

Basics.lua
local f = CreateFrame("Frame", nil, UIParent, "BackdropTemplate")
f:SetSize(240, 48)
f:SetPoint("CENTER")
f:SetScript("OnEvent", function(self, event, ...) end)

C_Timer.NewTimer(2, function() end)      -- cancellable
C_Timer.After(2, function() end)         -- returns nothing

SLASH_MYADDON1 = "/myaddon"
SlashCmdList["MYADDON"] = function(msg) end

DEFAULT_CHAT_FRAME:AddMessage(text, 0.83, 0.66, 0.35)

Reihenfolge der Parameter bei SetTexCoord

SetTexCoord nimmt left, right, top, bottom, nicht left, top, right, bottom. Übergib Bruchteile von 0 bis 1, keine Pixel.

Aufrufe, die still scheitern

Warcraft Forever's page, captured September 28, lists these calls as protected on the Forever beta but names no client build:

VermeidenVerwendung
ChatFrame_OpenChat / ChatEdit_ActivateChatÜberlass das Bearbeiten des Chats dem Client; nutze HandleModifiedItemClick für Shift-Klick-Links
C_SuperTrack.SetSuperTrackedUserWaypointC_Map.SetUserWaypoint mit einem UiMapPoint
Secure-Attribute auf Blizzards Unit-FramesDeine eigenen Buttons
PlaySoundFile auf Sound\Interface\*.oggPlaySound mit einer SOUNDKIT-ID
pcall around a blocked actionNothing; pcall does not unblock it

TOC-Felder, die hier zählen

Ein reines Forever-Addon deklariert in der Beta Interface 16001:

MyAddon.toc
## Interface: 16001
## Title: My Addon
## Notes: What it does in one line
## Author: YourName
## Version: 0.1.0
## SavedVariables: MyAddonDB
## SavedVariablesPerCharacter: MyAddonCharDB
## IconTexture: Interface\Icons\INV_Misc_Note_01
## Category: Miscellaneous
## AddonCompartmentFunc: MyAddon_OnCompartmentClick

Compartment-Callbacks müssen echte Globals sein, weil der Client sie per Namen nachschlägt. Halte alles andere in deinen Dateien als dateilokale Locals. Auch SavedVariables-Namen sind Globals. Der Client lädt sie, nachdem deine Dateien gelaufen sind, und feuert dann ADDON_LOADED für dein Addon.

Settings-API

Die Settings-API hat das alte Optionsfenster „Interface Options“ ersetzt und gehört zum Mainline-Code, den Forever mitnutzt. Bevorzuge sie gegenüber einem eigenen Optionsfenster, wenn du nur Checkboxen und Schieberegler brauchst. Baust du ein eigenes Fenster, erbe von BackdropTemplate, speichere den Anker beim Ende des Ziehens und bewege geschützte Frames nicht während der Kampfsperre.

InterfaceOptions_AddCategory ist der ältere Optionsaufruf, und Modelle greifen trotzdem danach. Verlange stattdessen die Settings-API.

Die moderne API statt der von Classic wählen

Im Entwickler-Q&A vom 17. September wurde ein Entwickler gefragt, ob Forever die Addon-Einschränkungen von Midnight, die Classic-API oder etwas anderes nutzt, und antwortete: „we did opt for the modern API approach.“ (wir haben uns für den modernen API-Ansatz entschieden). Bestätigt, aus der Aufzeichnung des World of Warcraft Developer Q&A bei 01:20:52.

Wowhead berichtet über Blizzards Ankündigung im WoW-UI-Discord und sagt dasselbe: Die API-Änderungen „caused WeakAuras to stop development before Midnight and almost every addon to update.“ (WeakAuras stellte die Entwicklung vor Midnight ein, und fast jedes Addon musste aktualisieren.) Gemeldet. Wenn du portierst, starte von der Midnight-Version eines Addons, die diese Regeln schon berücksichtigt, nicht von seinem Classic-Era-Zweig. Große Projekte tun das: Das Guide-Addon von RestedXP führt auf CurseForge eine Datei „WoW Forever“.

Was Blizzard stattdessen eingebaut hat

Im selben Stream sagte das Panel, Forever biete einen eigenen Damage Meter und einen Cooldown Manager. Bestätigt für beide. Ein Swing-Timer kam nur als mögliche spätere Ergänzung zur Sprache. Prüfe, ob ein eingebautes Panel die Aufgabe schon erledigt, bevor du ein Duplikat veröffentlichst.

Forever im eigenen Code erkennen

Eine als if WOW_PROJECT_ID == WOW_PROJECT_CLASSIC then geschriebene Prüfung erkennt dieses Spiel nicht. Der ältere Test von WoW Forever Builds auf Build 69913 meldete 1, denselben Wert wie WOW_PROJECT_MAINLINE. Die aufbewahrte Live-Probe auf Build 70338 vom 12. Oktober zeichnet stattdessen WOW_PROJECT_ID = 18, WOW_PROJECT_MAINLINE = 1 und WOW_PROJECT_CLASSIC = 2 auf. Blizzards Camelot-Projektkonstanten setzen WOW_PROJECT_CAMELOT = 18. Gemeldete Client-Beobachtung: Die ältere Zahl ist historisch, keine aktuelle Erkennungsregel.Quelle: Blizzards Camelot-Projektkonstanten, geprüft in den aufbewahrten Client-Dateien von 70338 am 13. Okt. 2026; Live-Probe erfasst am 12. Okt..

Vergleiche für ein gemeinsames Addon die benannte Konstante, wenn sie existiert, und prüfe dann die konkrete API, die dein Feature braucht. Ein reines Forever-Addon kann Forever direkt ansprechen:

Detect.lua
local isForever = WOW_PROJECT_CAMELOT ~= nil
    and WOW_PROJECT_ID == WOW_PROJECT_CAMELOT
local canReadPreset = C_GameRules
    and type(C_GameRules.GetForeverExperiencePreset) == "function"
if isForever and canReadPreset then
    -- Read the preset; do not infer combat permissions from a project ID.
end

Dieselbe Seite zeigt einen weiteren Weg über die TOC: Deklariere ## X-Family: [Family] und ## X-Game: [Game] und lies sie dann mit C_AddOns.GetAddOnMetadata. Im Beispiel des Wikis bedeutet Familie Mainline mit Spiel Camelot Forever.

<details><summary>Technische Hinweise: ältere Erkennungsbeispiele</summary>

Das aufbewahrte Beispiel des Warcraft Wiki vom September kombinierte WOW_PROJECT_MAINLINE mit LE_EXPANSION_LEVEL_CURRENT == LE_EXPANSION_CLASSIC und bezeichnete den Zweig als "camelot/forever." Diese Mainline-Projekt-ID-Bedingung ist auf dem erfassten Client 70338 falsch. Mainline-UI-Architektur bedeutet keine Mainline-Projekt-ID. Eine Bibliothek, die nur unter Classic lädt, lädt stillschweigend nicht, und kein Fehler erklärt warum.

</details>

Den aktuellen Regelsatz mit der UI-API abrufen

Nutze C_GameRules für Spielmodus-Abfragen. Der aktuelle Regelsatz beantwortet eine andere Frage als die Client-Projekt-ID, ein Hardcore-Flag oder die Classic/Modern-Erlebniseinstellung des Spielers. Wähle den Wert, den dein Feature tatsächlich braucht:

Du brauchstAuslesenErgebnis in der Dokumentation von 70338
Aktueller Spielmodus-DatensatzC_GameRules.GetCurrentGameModeRecordID()Numerische Datensatz-ID; hier wird keine Zuordnung zu einer Forever-ID behauptet
Aktiver SpielmodusC_GameRules.GetActiveGameMode()GameMode Enum-Wert
Hardcore-Regel aktivC_GameRules.IsHardcoreActive()Boolean
Eine bestimmte SpielregelC_GameRules.IsGameRuleActive(gameRule)Boolean; übergib den dokumentierten GameRule-Wert
Classic/Modern-ErlebniseinstellungC_GameRules.GetForeverExperiencePreset()Enum.ForeverExperiencePreset, oder nil
Regelsatz des ChatkanalsC_ChatInfo.GetChannelRuleset(channelIndex)Enum.ChatChannelRuleset; nicht der Spielregelsatz

Diese Signaturen stehen in Blizzards generierter Client-Dokumentation und sind nicht aus Classic-Tutorials abgeleitet.Quelle: Blizzards GameRules-Dokumentation und ChatInfo-Dokumentation, aufbewahrter Client-Build 70338, geprüft am 13. Okt. 2026.

Für eine schnelle Diagnose nach dem Betreten der Welt gib /dump C_GameRules.GetCurrentGameModeRecordID() ein. So liest du die Forever-Erlebniseinstellung aus Addon-Code aus:

Ruleset.lua
local function ReadExperiencePreset()
    if not C_GameRules
        or type(C_GameRules.GetForeverExperiencePreset) ~= "function" then
        return "API unavailable"
    end
    local preset = C_GameRules.GetForeverExperiencePreset()
    if preset == nil then return "Preset unavailable" end
    if preset == Enum.ForeverExperiencePreset.Classic then return "Classic" end
    if preset == Enum.ForeverExperiencePreset.Modern then return "Modern" end
    return "Unknown preset"
end

print(ReadExperiencePreset())

Das Enum verwendet Classic 0 und Modern 1. Dieses Beispiel liest die Einstellung aus; es ändert nichts. GAME_RULES_CHANGED und ACTIVE_GAME_MODE_UPDATED sind dokumentierte Events zur Aktualisierung von Spielregel- und Spielmodusanzeigen. Ihre Existenz beweist nicht, dass jede Änderung der Einstellung eines dieser Events auslöst. Die aufgezeichnete Funktionsliste der erfassten Probe enthält diese Funktionen; sie hat weder die zurückgegebenen Spielmodus-IDs gemessen noch dieses Beispiel ausgeführt.

Sound-ID-Cheat-Sheet

Nutze PlaySound(SOUNDKIT.IG_MAINMENU_OPTION_CHECKBOX_ON) für einen eingebauten UI-Sound. Blizzards SoundKitConstants.lua aus 70338 liefert diese Soundkit-IDs:

SoundSOUNDKIT SchlüsselID
Checkbox anIG_MAINMENU_OPTION_CHECKBOX_ON856
Checkbox ausIG_MAINMENU_OPTION_CHECKBOX_OFF857
Menü öffnet sichIG_MAINMENU_OPEN850
Menü schließt sichIG_MAINMENU_CLOSE851
CharakterreiterIG_CHARACTER_INFO_TAB841
Raid-WarnungRAID_WARNING8959

Das sind Soundkit-IDs, keine Zauber-IDs oder Audio-FileDataIDs. Bevorzuge in Addon-Dateien die benannten Konstanten. Um einen Sound manuell anzuhören, gib /run PlaySound(SOUNDKIT.IG_MAINMENU_OPTION_CHECKBOX_ON) ein. Wir haben die IDs im Client-Quellcode geprüft; wir haben diese Vorschauen nicht angehört.Quelle: Blizzards Soundkit-Konstanten, aufbewahrter Client-Build 70338, geprüft am 13. Okt. 2026.

Auf diesem Build definiert Blizzard PlaySound als Alias für C_Sound.PlaySound. Die generierte Signatur verwendet einen UISoundSubType als zweites Argument. Das Beispiel mit einem Argument vermeidet, eine ältere Signatur mit "Master" oder "SFX" als Kanal-String in diesen Client zu kopieren. Eine stumme Vorschau kann an den Soundeinstellungen liegen; schalte den Ton eines Spielers nicht automatisch ein und erhöhe ihn nicht automatisch.Quelle: Blizzards Sound.lua und Sound-API-Dokumentation, aufbewahrter Client-Build 70338, geprüft am 13. Okt. 2026.

Für Funktionen mit mehreren Anweisungen, Slash-Befehls-Aliase, einen lokalen Nachrichtenbefehl und eine Popup-Nachricht nutze die praktischen Code-Vorlagen.

Warum Secure Snippets nicht kompilieren können

WoW Forever Builds führte einen zweiten Defekt auf Blizzards eigenen Code für eingeschränkte Ausführung zurück. RestrictedExecution.lua ruft eine Engine-Funktion auf, loadstring_untainted, und Build 69913 stellt sie nie bereit. /run print(type(loadstring_untainted)) gibt nil aus, und jedes Secure Snippet scheitert mit einem Call-to-nil-Fehler. Gemeldet. Das Medium WoW Forever Builds liest das als fehlendes Stück, nicht als Absicht, weil Blizzards Code die Funktion erwartet.

Addons nutzen Secure Snippets für kampfsichere Aufgaben wie Aktionsleisten-Paging, Secure-Gruppen-Header und Click-Casting. Wirft deines genau diesen Fehler, ist das Snippet-System in deinem Build ausgefallen, nicht dein Code. Teste mit jedem neuen Build erneut.

Der Action-Failed-Zähler

A protected call like ChatFrame_OpenChat does not raise a Lua error you can catch on this client, so pcall will not warn you. Warcraft Forever's page, captured September 28 with no build named, reports that the client posts "Interface action failed because of an AddOn" and bumps a counter in the AddOns panel, which clears only on a full restart, not /reload. Unverified community report. A rising counter means you should check your protected calls.

Was Tainted Code mit einem Secret Value noch tun kann

Die Tabelle „Units und Secrets“ behandelt Arithmetik und Vergleiche. Die Regeln des Wikis gehen weiter und gelten in beide Richtungen: Manches ist erlaubt, manches nicht. Tainted Code kann ein Secret in einer Variable, einem Upvalue oder einem Tabellenwert speichern und an Lua-Funktionen übergeben. C-Funktionen akzeptieren eines nur, wenn Blizzard sie dafür markiert hat. Tainted Code kann außerdem Secret-Strings und -Zahlen verketten und an string.format, string.concat oder string.join übergeben.

Tainted Code kann mit einem Secret nicht rechnen, es nicht vergleichen, nicht den Längenoperator darauf anwenden, es nicht als Tabellenschlüssel speichern, nicht hineinindizieren und nicht aufrufen. Ein Wahrheitstest funktioniert bei einem Secret-String oder einer Secret-Zahl, da nur der Wert verborgen ist, nicht aber bei einem Secret-Boolean. type(secret) liefert weiterhin den echten Typ. Jede verbotene Operation wirft sofort einen Fehler, setze also vor jeder Verzweigung einen Guard.

Ladereihenfolge von SavedVariables und der Restore-Bug der Beta

Der Client führt die Dateien deines Addons aus, lädt dann dessen SavedVariables und SavedVariablesPerCharacter und feuert ADDON_LOADED dafür, ein Addon nach dem anderen. PLAYER_LOGIN feuert, sobald jedes Addon geladen ist, das nicht bei Bedarf lädt. Für eine letzte Änderung, bevor die Datei geschrieben wird, nutze PLAYER_LOGOUT, das letzte Event vor dem Speichern.

Ein Fehlerbericht in den Blizzard-Foren vom 21. September zeigte, dass die Einstellungen von Soundtrack korrekt in den Ordner WTF geschrieben wurden, nach dem nächsten Start aber fehlten. Andere Addon-Autoren im Thread berichteten dasselbe. Unbestätigt, von der Community gemeldet. Am 25. September sagte ein anderer Autor, SavedVariables würden in Build 1.60.1.70009 wieder geladen. Teste dein eigenes Addon erneut, bevor du dem Fix traust.

Zwei Portierungsfallen aus demselben Bericht

Der Soundtrack-Port scheiterte zuerst in AceDB-3,0 mit einem nil-Wert bei regionKey. In der Beta gab GetCurrentRegion() eine Regions-ID zurück, die die mitgelieferte Bibliothek nicht kannte, und ein Patch an AceDB, der unbekannte IDs toleriert, behob das. Der Autor teilte außerdem ein IsRetail-Flag in zwei, weil auf Forever „die moderne API nutzen“ und „Retail-only-Inhalte aktivieren“ verschiedene Fragen sind.

Nameplate-Timing im Beta-Client

Warcraft Forever berichtet, dass NAME_PLATE_UNIT_ADDED feuert, bevor die Unit befüllt ist, und dass die Plate-Frames kein namePlateUnitToken haben. Unbestätigt. Der berichtete Workaround ist, die Unit einen Moment später erneut zu prüfen oder nameplate1 bis nameplate40 selbst durchzugehen.

Addon-Compartment: Registrieren ohne TOC-Felder

Die TOC-Felder oben decken einen Compartment-Button ab, der sich nie ändert. Wählt deiner Icon oder Beschriftung zur Laufzeit, dokumentiert das Warcraft Wiki einen manuellen Aufruf:

Compartment.lua
AddonCompartmentFrame:RegisterAddon({
    text = "My Addon",
    icon = "Interface\\Icons\\TEMP.blp",
    notCheckable = true,
    func = function(button, menuInputData)
        print("Clicked " .. menuInputData.buttonName)
    end,
})

Das stammt aus der Mainline-Dokumentation, nicht aus einem Forever-Test. Prüfe also, ob es auf deinem Build feuert. Wenn du mit einem KI-System-Prompt entwirfst, hält die KI-Prompt-Bibliothek für Addon-Code diese Vorgaben an einer Stelle zusammen. Für die Spielerseite verfolgt die Seite Addons, die in Forever funktionieren, was noch läuft.

Wichtige Fakten

  • TOC-Interface Geändert16001 in der Zeile „Forever Beta“ der TOC-Tabelle im Warcraft Wiki; mit /dump select(4, GetBuildInfo()) prüfenClassic: Classic Era führt in derselben Tabelle 11509.
  • Alte Zauber- und Item-Globals EntferntGetSpellInfo und GetItemInfo fehlen in Build 69913; nutze C_Spell und C_Item
  • Kampflog EntferntCombatLogGetCurrentEventInfo laut Berichten für Addons in der Beta nicht verfügbarClassic: Classic-Era-Addons lesen jedes Event über COMBAT_LOG_EVENT_UNFILTERED.
  • API-Familie GeändertTeilt die UI-Architektur von Mainline und „the vast majority of APIs available in 12.1.5“ (den weitaus größten Teil der in 12.1.5 verfügbaren APIs)
  • Erfasste Projekt-ID Geändert18 (WOW_PROJECT_CAMELOT) in der Live-Probe vom 12. Oktober auf Build 70338; ältere Berichte zu 69913 nannten 1

Quellen

  1. What the WoW Forever beta breaks for addons: secret health values, dead secure snippets, new APIsWoW Forever Builds
  2. AddonsWarcraft Forever
  3. WoW: Forever Will Have Addon Changes from MidnightWowhead
  4. TOC formatWarcraft Wiki
  5. C_Item.GetItemInfoWarcraft Wiki
  6. Secret ValuesWarcraft Wiki
  7. Patch 12.0.0/API changesWarcraft Wiki
  8. Addon compartmentWarcraft Wiki
  9. Saving variables between game sessionsWarcraft Wiki
  10. C_Map.SetUserWaypointWarcraft Wiki
  11. WOW_PROJECT_IDWarcraft Wiki
  12. World of Warcraft Developer Q&A (replay and YouTube automatic captions)World of Warcraft
  13. WOWF Beta: Addon SavedVariables appear to write correctly to disk but are not restored at startupBlizzard Forums
  14. RestedXP Guide on CurseForgeCurseForge
  15. Blizzard client source: ProjectConstants.lua (retained build 70338; mirror may change)Blizzard Entertainment (source mirrored by Gethe)
  16. Blizzard client source: GameRulesDocumentation.lua (retained build 70338; mirror may change)Blizzard Entertainment (source mirrored by Gethe)
  17. Blizzard client source: SoundKitConstants.lua (retained build 70338; mirror may change)Blizzard Entertainment (source mirrored by Gethe)
  18. Blizzard client source: Sound.lua (retained build 70338; mirror may change)Blizzard Entertainment (source mirrored by Gethe)
  19. Blizzard client source: SoundDocumentation.lua (retained build 70338; mirror may change)Blizzard Entertainment (source mirrored by Gethe)
  20. Blizzard client source: ChatInfoDocumentation.lua (retained build 70338; mirror may change)Blizzard Entertainment (source mirrored by Gethe)