logo
back Back to Blog

Changes to CurseForge and MayronUI Downloads

Author

Mayron

3 min read

For a while, the CurseForge downloads API has struggled to handle the multiple World of Warcraft game clients (i.e., Shadowlands (retail), Burning Crusade Classic, and standard Classic (vanilla)). The API would return incorrect addon versioning information regardless of what game client you were viewing in an addon updater app, such as CurseForge's very own app or the WoWUp.io app (which still depends on the CurseForge API).

An addon must have a TOC file directly inside its folder for the game client to register and load it when launched. Blizzard made it possible to now have multiple TOC files for different game clients inside the same addon folder. Instead of deploying multiple addon folders for each game client, you can now deploy only one addon folder with multiple TOC files so that the same addon folder works across game clients.

Multiple TOC files

TOC files also control what files are loading in the game. Therefore, an addon author could decide to disable certain features that a specific game client may not support to improve loading speeds and reduce memory usage.

The Problem

Many addon authors would use multiple TOC files as previously mentioned to simplify their deployment and development process. When uploading their single addon that supports multiple game clients, the author will choose to mark the addon is compatible with all game client versions.

Unfortunately, the CurseForge API currently gets confused with this approach and will show incorrect addon versions in the addon updater app by ignoring, or skipping, versions at random. Therefore, some users will inadvertently download older versions even when a newer one is available.

The Solution

Some addon authors will upload different versions of the same addon but list them with a postfix, such as -classic, -bcc, and -retail, at the end of the version name. This sort of works, but you must remember to change the code; else, CurseForge will reject your addon for being identical to another version.

Even if an addon could work across any game client when using multiple TOC files, this upload requirement enforced by CurseForge discourages using multiple TOC files because each upload must be different. Therefore, a better solution is to give up on attempting to use Blizzard's multiple TOC support, at least for now, and instead create a new project on CurseForge for each game client.

Many addon authors have adopted this approach, and it seems like a solid solution that doesn't result in any confusion. Both CurseForge and WoWUp seem to know which addon project, and addon version, you want to target when looking for updates and when searching for them based on what game client you have opened up in the app.

Project Dashboard on CurseForge showing multiple projects per game-client

For example, when I have "BCC - World of Warcraft" selected from the drop-down menu in the CurseForge app, it shows my three MUI addons by only the Burning Crusade Classic versions of those addons despite having two other copies for Shadowlands (retail) and classic (vanilla).

BCC Versioning

Conclusion

Hopefully, the CurseForge team will eventually update their API to support multiple TOC files to go back to having a single addon project page with individual version downloads and make the whole process much simpler for the end-user. Ideally, the game-version info relating to addons should be entirely transparent for the end-user, and they should update to the latest addon version regardless of what game client they are using.

The standalone MayronUI addon files contained in the full UI pack (i.e., MUICore, MUISetup, and MUI_Config) for the time being will each have three different project pages on CurseForge for each game client. Your addon updater app should automatically detect which one to use, but if not, then it is recommended to uninstall the addon and search for it in the app and download it again. There is a chance that while migrating to this newer system by following the solution outlined previously, the app got confused and is showing the addon as "modified" and ignores attempts at updating to the correct version.

Author

Written By

Mayron

back Back to Blog

© 2021 MayronUI.com, All rights reserved.