魔兽科普汇聚WoW玩家们专属综合资讯门户网站!

The ForgeDMC Toolkit

The ForgeDMC Toolkit 是一款魔兽世界插件,主要用于界面框架、头像、动作条或冷却显示优化、背包、银行、专业制造或物品整理、插件库、数据接口或依赖支持。建议根据自己的版本和插件环境先测试兼容性。

免费下载 举报 收藏插件
插件详情

插件中文资料库

中文说明、玩家点评、适用场景和替代推荐,方便快速判断是否适合你。

玩家一句话点评
The ForgeDMC Toolkit 适合需要运行库、界面增强或玩法辅助的玩家,建议结合自己的职业和版本先测试再长期使用。
适用场景
  • 任务路线、地图标记和野外探索
  • 界面布局、头像框、姓名板和动作条优化

The ForgeDMC Toolkit 插件下载与使用指南

本页整理了 The ForgeDMC Toolkit 的功能用途、适用人群、安装方法和常见问题,方便玩家快速判断是否需要安装。

适合谁用

The ForgeDMC Toolkit 是一款 开发工具 / 运行库 / 其他插件 类插件,适合需要优化界面、提升操作效率或补充游戏信息提示的魔兽世界玩家。

基本信息

  • 插件作者:ForgeDMC
  • 插件分类:开发工具 / 运行库 / 其他插件
  • 适配版本:12.0.5
  • 累计下载:4,829

安装方法

  1. 点击上方下载按钮获取 The ForgeDMC Toolkit插件文件。
  2. 解压后将插件文件夹放入 World of Warcraft/_retail_/Interface/AddOns 目录。
  3. 重启游戏或在角色界面点击插件,确认 The ForgeDMC Toolkit 已启用。
  4. 如果插件不生效,请检查版本是否匹配,或关闭同类冲突插件后重试。

使用建议

The ForgeDMC Toolkit 安装后建议先在角色界面确认已启用,进入游戏后根据插件提供的命令、小地图按钮或设置面板进行调整。如遇到报错,可先单独启用该插件排查冲突。

The ForgeDMC Toolkit 常见问题

这个插件适合哪些玩家?

The ForgeDMC Toolkit 适合需要 开发工具 / 运行库 / 其他插件 类功能的玩家,特别是希望提升游戏便利性、界面管理或战斗信息获取效率的用户。

下载后怎么安装?

下载后解压到 Interface/AddOns 目录,然后重启游戏并在角色界面启用插件。

为什么插件不显示或不生效?

常见原因是目录多套一层、游戏版本不匹配、依赖插件缺失或同类插件冲突。

有没有类似插件可以替代?

可以查看本页的替代插件推荐和相关插件区域,按下载量和分类选择同类工具。

插件 AI 问答

可以问:这个插件正式服能用吗、和 DBM 冲突吗、怎么设置、有没有替代插件。

The ForgeDMC Toolkit 是一款魔兽世界插件,主要用于界面框架、头像、动作条或冷却显示优化、背包、银行、专业制造或物品整理、插件库、数据接口或依赖支持。建议根据自己的版本和插件环境先测试兼容性。

插件用途

The ForgeDMC Toolkit 主要面向需要运行库功能的玩家,用来改善游戏体验、减少重复操作或补充默认界面没有直接提供的信息。

适用场景

  • 界面框架、头像、动作条或冷却显示优化
  • 背包、银行、专业制造或物品整理
  • 插件库、数据接口或依赖支持

使用建议

安装后建议先在角色选择界面或插件管理器中确认已启用,再进入游戏测试是否与现有整合包、WA 和其他插件冲突。如遇报错,可以先禁用同类插件排查。

Send a donation to help keep this project going :  Square Donation  Venmo Donation  CashApp 

ForgeDMC Toolkit — Native-First WoW Addon Framework
Stop building for 2008. Build for the Warband Era. 21 surgical, standalone modules that replace Ace3, LibStub, and every legacy static library — by doing the only sensible thing: using the game's own C++ engine APIs directly.
21
Modules
4,592
Total Lines
0
Dependencies
26
Libs Replaced
~92%
Less Memory
Performance by the Numbers
The Core Advantage: Native Intelligence
ForgeDMC modules are engineered to be dependency-free and zero-bloat. By leveraging modern APIs introduced in Dragonflight and The War Within, ForgeDMC delivers a premium development experience with a fraction of the CPU and memory overhead of the legacy Ace3 stack.
~92%
Memory Reduction
~180 KB vs ~2.4–4.1 MB for a full legacy stack
~88%
CPU Efficiency Gain
<0.1ms idle vs 0.8–1.4ms with Ace3 loaded
~80%
Faster in Combat
<0.8ms vs 2.5–5.0ms during raid-level activity
0
Micro-Stutters
Native frame pooling eliminates Lua GC spikes
Metric Legacy (Ace3 + LibStub Stack) ForgeDMC Toolkit
Static Memory 2.4 MB – 4.1 MB of Lua tables loaded on every login ALWAYS LOADED ~180 KB total. Cached lazily only when accessed. ON DEMAND
CPU (Idle) 0.8ms – 1.4ms continuous overhead <0.1ms. Practically invisible when idle. ~88% FASTER
CPU (Combat) 2.5ms – 5.0ms under high aura load <0.8ms. Native C++ handles the heavy lifting. ~80% FASTER
GC Churn High — simulated frames generate frequent Lua "trash" GC SPIKES Minimal — ForgeGlow and ForgeDialog pool and reuse frames. POOLED
Patch Resilience Breaks on every UI reskin until library authors ship updates. FRAGILE Inherits Blizzard's UI updates automatically. Zero maintenance. AUTO
Taint Risk Shared global mutation tables across 50+ addons. HIGH RISK Isolated per-addon. No shared mutable globals. No cross-addon contamination. ISOLATED
Dependency Chain LibStub → CallbackHandler → AceEvent → AceAddon → [your code] No chain. One file. Zero external requirements. STANDALONE
Root Cause Analysis
What Is Actually Wrong With Legacy Libraries
This is not a rant — these are engineering facts. Ace3 was a genuine achievement when written in 2007. Blizzard has since rebuilt the entire UI layer. The libraries never meaningfully adapted.
Blizzard spent the last four years systematically rebuilding the WoW engine surface. The Settings API arrived in Dragonflight. The C_Map system was rewritten. The C_Reputation API was modernised. The AddonCompartment tray replaced minimap chaos in The War Within. C_Timer, DropdownButtonMixin, C_Spell.IsSpellInRange — the game now provides natively, in C++, almost everything Ace3 was invented to provide in Lua. Ace3 kept shipping. ForgeDMC uses what the engine actually offers.
✗ LibStub
Maintains a single global mutation table that every Ace-based library in every installed addon writes into simultaneously. When one addon ships a broken version, it corrupts the registry for all 50 others. This has caused mass addon failures on patch day for fifteen consecutive years.
✗ AceDB-3.0
Routes every SavedVariables read through five function calls and three metatable lookups. Hundreds of these reads happen per frame across all running addons. Direct table access is always faster — AceDB offers zero benefit over it on modern WoW.
✗ AceGUI-3.0
Constructs every settings widget as a custom Lua frame with custom backdrop textures. When Blizzard changes the UI skin — as they did in Dragonflight and again in The War Within — every widget breaks visually until library maintainers ship an update you don't control.
✗ AceConfig-3.0
Requires settings defined as deeply nested tables-of-tables with type strings, validation callbacks, and multi-level option group hierarchies. It is effectively its own DSL embedded inside Lua — new developers spend hours deciphering why a checkbox isn't appearing.
✗ LibBabble × 3 (Boss / Faction / Zone)
Ships tens of thousands of hardcoded string literals in every supported locale, loaded into memory on every login whether accessed or not. Every patch that adds an instance requires a human to update a text file before users see correct data again.
✗ LibDBIcon + LibDataBroker + CallbackHandler
Four libraries to place a 32×32 pixel button on the minimap. The button does not correctly save its angle when the minimap shape is non-circular. Shape-aware math for SQUARE, SIDE, and CORNER variants requires additional code not provided out of the box.
✗ ChatThrottleLib
Written for a bandwidth era that no longer exists, using OnUpdate frame hooks that predate C_Timer by many years. The priority system was designed when connections could disconnect at 10 messages per second. The same code runs untouched today.
✗ HereBeDragons
Maintained large internal tables of map transformation data for pre-Legion coordinate spaces. Since the map system was rebuilt for Battle for Azeroth, C_Map handles all coordinate transformations natively in the C++ engine. The library ships thousands of lines the game already does for free.
The cumulative load of a fully Ace3-equipped addon — AceAddon, AceEvent, AceDB, AceConsole, AceHook, AceTimer, AceBucket, AceComm, AceConfig, AceConfigDialog, AceConfigRegistry, AceDBOptions, AceGUI, LibStub, CallbackHandler, LibSharedMedia, LibDataBroker, LibDBIcon — is over 12,000 lines of Lua executing before your first line of addon code runs. Every character login. Every UI reload. Every /reload.
Tier 1 — Core Toolkit v1.1.0
The Core Eight
Direct replacements for the Ace3 library suite. Familiar lifecycle and API conventions, rebuilt from the ground up on the modern WoW API surface. Zero shared global state.
ForgeCore
↳ AceAddon-3.0 · AceEvent-3.0 · AceConsole-3.0
The spine of the toolkit. OnInitialize → OnEnable → OnDisable lifecycle fires at ADDON_LOADED and PLAYER_LOGIN respectively. All addons share a single hidden bootstrap frame — no per-addon frame overhead. Events auto-register and auto-unregister with Blizzard as listeners come and go. Every handler runs through pcall so one broken callback cannot bring down the rest.
NewAddon · NewModule · RegisterEvent · RegisterChatCommand · Print · Printf · Enable · Disable · OpenOptions
291 lines
ForgeDB v1.1.0
↳ AceDB-3.0
SavedVariables across three scopes. db.global is account-wide. db.char is keyed as "Name-Realm" for true per-character uniqueness. db.profile supports switchable named profiles. Reading a value is direct table access — one lookup, no metatable chain. Full profile copy, reset, and deletion. Fixed in v1.1.0 from a critical missing constructor bug.
ForgeDB:New · db.global · db.char · db.profile · SetProfile · CopyProfile · ResetProfile · GetProfiles · DeleteProfile
201 lines
ForgeComm v1.1.0
↳ AceComm-3.0
Addon messaging over C_ChatInfo.SendAddonMessage. Safe to register before PLAYER_LOGIN — prefixes queue automatically. SendChunked handles any payload size transparently — splits into 250-byte packets, receiver callback fires once with the fully reassembled string. Zero chunking logic required in your addon code.
Register · Send · SendChunked · Unregister · IsRegistered
223 lines
ForgeHook
↳ AceHook-3.0
Mixin-style hooking via Embed. Three hook types: restoreable method hooks; restoreable frame script hooks with correct no-previous-script handling; permanent taint-safe SecureHook via hooksecurefunc. Hook state stored in weak-keyed tables so abandoned objects do not leak memory.
Embed · Hook · HookScript · SecureHook · Unhook · UnhookScript · UnhookAll
129 lines
ForgeLocale v1.1.0 — Rewrite
↳ AceLocale-3.0
Per-locale proxy tables with automatic enUS fallback. L["key"] = true uses the key itself as the string. Reading any unregistered key returns the key string — never nil, never an error. Fully idempotent registration. Rebuilt from scratch in v1.1.0 — previous file contained a copy of ForgeWidgets.
Register(addonName, locale) · Get(addonName) · GetRegisteredLocales · IsLocaleRegistered · DumpLocale
199 lines
ForgeOptions v1.1.0
↳ AceConfig-3.0 · AceConfigDialog · AceConfigRegistry · AceDBOptions
Injects settings directly into Blizzard's native Interface Options window using the Settings API (Dragonflight 10.0+). Controls inherit the current game skin, scale, and fonts automatically. Imperative API — no nested option tables, no type strings, no callback registry. Requires Dragonflight 10.0+.
Create · AddHeader · AddCheckbox · AddSlider · AddDropdown · CreateSubcategory · Register · Open
253 lines
ForgeTimer v1.1.0
↳ AceTimer-3.0 · AceBucket-3.0
All timers backed by C_Timer — not OnUpdate frame hooks. One-shot, repeating, Debounce (restart delay per call, fire once after silence — right for search boxes), Throttle (fire immediately then block — right for cursor tracking), and BucketEvent (coalesce rapid events like BAG_UPDATE into one batched callback).
Embed · ScheduleTimer · ScheduleRepeatingTimer · CancelTimer · Debounce · Throttle · RegisterBucketEvent · CancelAllTimers
242 lines
ForgeWidgets v1.1.0
↳ AceGUI-3.0
Native WoW frame and widget factories using Blizzard's own XML templates. Widgets inherit the current skin automatically. Dropdown auto-detects TWW 11.0+ DropdownButtonMixin; falls back to legacy template on older clients. All anonymous frame crash bugs fixed. Includes CreateTabStrip. Escape closes windows via UISpecialFrames.
CreateWindow · CreatePanel · CreateButton · CreateCheckBox · CreateSlider · CreateDropdown · CreateEditBox · CreateScrollFrame · CreateTabStrip
297 lines
Tier 2 — Extended Toolkit v1.0.0
The Extended Thirteen
Professional-grade replacements for the most common WoW addon libraries beyond Ace3. Every file is standalone. Drop in only what your addon needs.
Versioning & Data Intelligence
ForgeStub
↳ LibStub
Solves the version collision problem LibStub was invented for — when multiple addons bundle the same file, the newest wins. Version metadata lives in a private internal registry — library tables are clean Lua tables with no internal bookkeeping fields. Adds GetVersion, IsLoaded, and sorted Iterate that LibStub doesn't provide.
New · Get · GetVersion · IsLoaded · Iterate
117 lines
ForgeBabble
↳ LibBabble-Boss-3.0 · LibBabble-Faction-3.0 · LibBabble-SubZone-3.0
Three libraries in one file containing zero static string data. Boss names from C_EncounterJournal. Zone names from C_Map.GetMapInfo. Faction names from C_Reputation.GetFactionDataByID. Always current, always localised. Results cached lazily after first call.
Boss:GetByID · Boss:FindID · Zone:GetByMapID · Zone:Scan · Faction:GetByID · Faction:Scan · PrintStats
244 lines
ForgePacker
↳ LibDeflate serialisation · AceSerializer
Table serialisation to/from a compact delimiter-separated string for addon messages or SavedVariables. Handles all Lua primitives including nested tables, booleans, and nil. The format is human-readable in a debugger — you can understand serialised data without a decoder during development.
Pack(tbl) · Unpack(str) · PackArray · UnpackArray
125 lines
ForgeMedia
↳ LibSharedMedia-3.0
Shared name→path registry for fonts, statusbar textures, sounds, borders, and backgrounds. Ships the five standard WoW fonts pre-registered. Any custom media type string accepted. Lowercase-normalised keys mean "Font" and "font" are identical. No LibStub registration loops required.
Register · Fetch · List · HashList · Exists
67 lines
Minimap, UI & Presentation
ForgeBroker
↳ LibDataBroker-1.1 · LibDBIcon-1.0
LibDataBroker and LibDBIcon merged into one self-contained module. Correct position math for all 14 minimap shape variants. Smart tooltip anchoring by screen quadrant. AddonCompartment support for TWW 11.0+. Zero external dependencies.
Register · Show · Hide · SetShown · Lock · Unlock · SetIcon · SetPosition · SetMouseoverOnly · AddToCompartment
426 lines
ForgeMinimapButton
↳ LibDBIcon-1.0
Fine-grained minimap button control independent of any data object concept. Uses native Blizzard minimap texture IDs — visually indistinguishable from built-in WoW buttons. Per-button icon tint via iconR/G/B. Full AddonCompartment support.
Register · Show · Hide · Lock · Unlock · SetShowOnEnter · SetPosition · Refresh · AddToCompartment · RemoveFromCompartment
523 lines
ForgeDialog
↳ LibDialog-1.0
Modal dialogs with full widget pooling — frames, buttons, editboxes, checkboxes recycled between spawns. Up to 4 simultaneous dialogs stacked below native StaticPopups. Supports multiple editboxes, timeouts, exclusive mode, Escape-to-close, and OnUpdate callbacks.
Register · Spawn · Dismiss · DismissAll · IsActive · GetActive
567 lines
ForgeSkin
↳ Masque
Dark flat 1-pixel border theme for your addon's own frames. SkinAll(frame, true) recursively walks all children applying the correct skin by object type. Unlike Masque, ForgeSkin gives pixel-precise control over only your frames.
SkinFrame · SkinButton · SkinEditBox · SkinScrollFrame · SkinCheckButton · SkinAll · SetTheme
133 lines
Spatial, Interaction & Network
ForgeGeo
↳ HereBeDragons
World-space distance and proximity checks via native C_Map coordinate APIs. Zero static coordinate tables. Always accurate after any map system update.
WorldDistance · IsUnitNearby · GetPlayerMapPosition
79 lines
ForgeGlow
↳ LibCustomGlow
Proc highlight and action glow effects via pooled frame recycling — eliminates GC micro-stutters that LibCustomGlow's allocation pattern causes during heavy aura activity.
ShowGlow · HideGlow · ShowActionGlow · SetGlowColor
155 lines
ForgeWindow
↳ LibWindow
Frame position and scale persistence. Register restores position immediately and hooks drag to auto-save on move — no manual save calls needed anywhere in your addon.
Register · Restore · Reset · Clamp · GetPosition
119 lines
ForgeQueue
↳ ChatThrottleLib
Addon message throttle via C_Timer — not legacy OnUpdate hooks. Priority queuing with configurable burst rate for modern connection speeds.
Enqueue · SendAddonMessage · Flush · SetThrottle
107 lines
ForgeRange
↳ LibRangeCheck
Unit range bracket detection via C_Spell.IsSpellInRange. No static spell ID tables per patch. Register probe spells once, query range brackets on demand.
GetMinRange · GetRangeBracket · RegisterProbeSpell
95 lines
ForgeStub
↳ LibStub (versioning layer)
Private internal version registry keeps library tables as clean Lua objects. Prevents the global mutation contamination that has caused mass addon failures on patch days for fifteen years.
New · Get · GetVersion · IsLoaded · Iterate
117 lines
All 21 Modules
Quick Reference
Module Lines Replaces Key Methods
◆ CORE TOOLKIT — v1.1.0
ForgeCore 291 AceAddon · AceEvent · AceConsole NewAddon · RegisterEvent · RegisterChatCommand · Print
ForgeDB 201 AceDB-3.0 New · SetProfile · CopyProfile · ResetProfile
ForgeComm 223 AceComm-3.0 Register · Send · SendChunked
ForgeHook 129 AceHook-3.0 Hook · HookScript · SecureHook · UnhookAll
ForgeLocale 199 AceLocale-3.0 Register · Get · GetRegisteredLocales · DumpLocale
ForgeOptions 253 AceConfig × 4 modules Create · AddCheckbox · AddSlider · AddDropdown · Register
ForgeTimer 242 AceTimer · AceBucket ScheduleTimer · Debounce · Throttle · RegisterBucketEvent
ForgeWidgets 297 AceGUI-3.0 CreateWindow · CreateSlider · CreateDropdown · CreateTabStrip
◆ EXTENDED TOOLKIT — v1.0.0
ForgeStub 117 LibStub New · Get · GetVersion · IsLoaded · Iterate
ForgeBabble 244 LibBabble × 3 Boss:GetByID · Zone:GetByMapID · Faction:GetByID
ForgeBroker 426 LibDataBroker · LibDBIcon Register · Show · Hide · AddToCompartment
ForgeMinimapButton 523 LibDBIcon-1.0 Register · SetShowOnEnter · Refresh · SetPosition
ForgeDialog 567 LibDialog-1.0 Register · Spawn · Dismiss · DismissAll
ForgeGeo 79 HereBeDragons WorldDistance · IsUnitNearby · GetPlayerMapPosition
ForgeGlow 155 LibCustomGlow ShowGlow · HideGlow · ShowActionGlow · SetGlowColor
ForgeMedia 67 LibSharedMedia-3.0 Register · Fetch · HashList · Exists
ForgePacker 125 LibDeflate · AceSerializer Pack · Unpack · PackArray · UnpackArray
ForgeQueue 107 ChatThrottleLib Enqueue · SendAddonMessage · Flush · SetThrottle
ForgeRange 95 LibRangeCheck GetMinRange · GetRangeBracket · RegisterProbeSpell
ForgeSkin 133 Masque SkinButton · SkinAll · SetTheme
ForgeWindow 119 LibWindow Register · Restore · Reset · Clamp
Getting Started
Integration in Four Steps
ForgeDMC uses familiar syntax. The transition from Ace3 is a drop-in experience for most addons — no architectural rewrites required.
01
Download
Grab the full 21-file pack or individual modules. Every file is standalone — include only what your addon uses.
02
Add to .toc
Place modules in a Libs\ folder and reference them in your .toc before your main addon file. No LibStub required.
03
Initialize
Call ForgeCore:NewAddon("MyAddon") and define OnInitialize / OnEnable. The Ace3 lifecycle works identically.
04
Verify Performance
Run /console scriptProfile 1 and compare CPU usage against your previous Ace3 implementation to confirm the gains.
Example .toc — register only what you use
## SavedVariables: MyAddonDB

# Include only what you use
Libs\ForgeCore.lua
Libs\ForgeDB.lua
Libs\ForgeOptions.lua
Libs\ForgeTimer.lua
Libs\ForgeWidgets.lua
Libs\ForgeComm.lua
Libs\ForgeLocale.lua
Libs\ForgeMinimapButton.lua

MyAddon.lua
MyAddon.lua — complete skeleton
local A = ForgeCore:NewAddon("MyAddon")
local L = ForgeLocale:Get("MyAddon")

function A:OnInitialize()
  self.db = ForgeDB:New("MyAddonDB", {
    profile = { scale=1.0, show=true },
  })
  local opts = ForgeOptions:Create("MyAddon", "My Addon", self.db.profile)
  opts:AddCheckbox("show", "Show", "", true)
  opts:AddSlider("scale", "Scale", "", 0.5, 2.0, 0.1, 1.0)
  opts:Register(self)
  self:RegisterChatCommand("myaddon", "Cmd")
end

function A:OnEnable()
  ForgeMinimapButton:Register("MyAddon", {
    icon    = "Interface\\Icons\\Gear",
    OnClick = function() self:OpenOptions() end,
  }, self.db.global)
  self:RegisterEvent("PLAYER_ENTERING_WORLD")
end
Supported Clients
Compatibility
The War Within 11.0+
Full feature set. AddonCompartment auto-detected for ForgeBroker and ForgeMinimapButton. WowStyle1DropdownTemplate auto-detected in ForgeWidgets. Recommended version.
Dragonflight 10.0+
Full feature set including ForgeOptions (requires Blizzard Settings API). Minimum recommended version for all 21 modules.
Shadowlands 9.x
All modules except ForgeOptions. Legacy dropdown path used in ForgeWidgets. Core lifecycle, database, communication, and timer modules fully compatible.
Zero External Dependencies
No LibStub. No CallbackHandler. No Ace3. Drop in only the files your addon needs. Nothing requires anything else.
Midnight 12.0 (Future)
Native API design ensures forward compatibility. ForgeOptions and ForgeWidgets wrap Blizzard's own systems, automatically inheriting any UI changes Blizzard ships.
Audience Note
ForgeDMC is a developer library. It provides no user-facing functionality on its own. Include only the modules your addon requires in your .toc. MIT-licensed.
For Your Addon Page
The Forge-Performance Badge
⚒ ForgeDMC Certified · Native Performance
This addon is powered by the ForgeDMC Toolkit — a native-first framework replacing legacy static libraries.
Metric ForgeDMC Result What It Means for You
Static Data Bloat 0.0 MB Boss, zone, and faction names queried live from Encounter Journal and Map APIs — zero memory cost for unused locales.
Memory Footprint ~92% Reduction Every module stays under 300 lines. Results cached lazily only when accessed. No megabytes of preloaded tables.
CPU Overhead Native Optimised UI rendering offloaded to Blizzard's own C++ Settings and Widget APIs. Practically invisible to the profiler when idle.
GC Churn Rate Minimised Frame pooling in ForgeGlow and ForgeDialog eliminates micro-stutters by reusing objects instead of allocating new ones.
Patch Resilience Native-Auto Inherits Blizzard's UI updates, skins, and font changes automatically. No manual library updates required on patch day.
Taint Protection Isolated No shared global mutation tables. Logic is isolated per addon, significantly reducing "Interface action failed" risk in combat.
ForgeDMC Toolkit
Native-First · Zero Dependencies · Built for the Warband Era
Core v1.1.0  ·  Extended v1.0.0  ·  Released 2026-03-21  ·  21 Modules  ·  4,592 Lines  ·  Replaces 26 Libraries  ·  MIT License
The Ace3 team and WoW addon community built something remarkable for their era and set standards the community has worked from for nearly two decades. ForgeDMC exists because those standards deserve a modern implementation — one that grows with the game rather than against it.
CurseForge: https://www.curseforge.com/wow/addons/the-forgedmc-toolkit

用户评价

暂无 / 5,0 条评价
免费插件下载后可以评价;付费插件 / WA 购买后可以评价;委托订单完成后可以评价。
暂无评价。

相关推荐

继续看看这些内容

全站搜索