[Resolved] Is Ace3 library discontinued ?

Hello guys,

I was trying to create a simple addon and I want to add a small GUI for option. After few search, I found that Ace3 could be the solution.

I tried to follow this guide (https://wow.gamepedia.com/WelcomeHome_-_Your_first_Ace3_Addon), which is a little outdated. But I can't have the display in the first part ("Saying Hello" part). I checked all my code and it's exactly what the guide says. I don't have any output, but I can see with (message("...")) calls that I never enter in the three methods (OnEnabled etc.).

Is Ace3 addon discontinued ? If yes, is there a remplacement to have a simple GUI for few options ?
If not, do the API change for that parts of the tutorial ? Where can I find a recent quick starting ?

Thank you very much
Fairly sure Ace3 is still used by tons of current addons. Is your addon present in the addons list at the character select screen? Do you have any lua errors showing ingame? Any relevant errors in WoWFolder/Logs/FrameXML.log? Make sure you have lua errors enabled, /console scriptErrors 1
Ace3 is NOT discontinued, i do in fact use it for all my GUI addons.
Can you post an example of your code so we can check if you're using the framework correctly?

Did you also make sure to load the necessary Ace3 files first before you load your own code, and are you referencing the .xml files instead of the .lua files?
Hello, thank for your anwsers and sorry for this few days away.

Indeed, I've an error message :


Message : Couldn't open Interface\Addons\MyAddon\Libs\AceConfig-3.0\AceConfig-3.0.xml
Time : Mon Oct 29 12:36:32 2018
Count : 4


The same occurs for other part of the lib : CallbackHandler, AceAddon, AceGUI etc... However, the library is exactly at this location :/ It could be an access right problem ?

My XML is :

<Ui xmlns="http://www.blizzard.com/wow/ui/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.blizzard.com/wow/ui/
..\FrameXML\UI.xsd">
<Script file="Libs\LibStub\LibStub.lua"/>
<Include file="Libs\CallbackHandler-1.0\CallbackHandler-1.0.xml"/>
<Include file="Libs\AceAddon-3.0\AceAddon-3.0.xml"/>
<Include file="Libs\AceEvent-3.0\AceEvent-3.0.xml"/>
<Include file="Libs\AceDB-3.0\AceDB-3.0.xml"/>
<Include file="Libs\AceConsole-3.0\AceConsole-3.0.xml"/>
<Include file="Libs\AceGUI-3.0\AceGUI-3.0.xml"/>
<Include file="Libs\AceConfig-3.0\AceConfig-3.0.xml"/>
</Ui>


Thank you very much for your time.

PS : I'm trying to use Ace3 to have a configuration GUI (with some checkbox). I understand that AceConfig allow to describe a configuration and will automagically generate a configuration GUI from that. It is right or do I misunderstand that ? Thanks
Hmm... that's peculiar, your XML file looks correct. The only difference is that i specify UTF-8 encoding in my own XML files. Don't think that's the problem, but worth a try?

Here's the XML file of one of my addons:
<?xml version="1.0" encoding="utf-8"?>
<Ui xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://www.blizzard.com/wow/ui/" xsi:schemaLocation="http://www.blizzard.com/wow/ui/
..\FrameXML\UI.xsd">
<Script file="Libs\LibStub\LibStub.lua"/>

<!--Ace3 Libraries-->
<Include file="Libs\CallbackHandler-1.0\CallbackHandler-1.0.xml"/>
<Include file="Libs\AceAddon-3.0\AceAddon-3.0.xml"/>
<Include file="Libs\AceEvent-3.0\AceEvent-3.0.xml"/>
<Include file="Libs\AceDB-3.0\AceDB-3.0.xml"/>
<Include file="Libs\AceSerializer-3.0\AceSerializer-3.0.xml"/>
<Include file="Libs\AceLocale-3.0\AceLocale-3.0.xml"/>
<Include file="Libs\AceConsole-3.0\AceConsole-3.0.xml"/>
<Include file="Libs\AceGUI-3.0\AceGUI-3.0.xml"/>
<Include file="Libs\AceTimer-3.0\AceTimer-3.0.xml"/>
<Include file="Libs\AceConfig-3.0\AceConfig-3.0.xml"/>
<Include file="Libs\LibSharedMedia-3.0\lib.xml"/>

<!--Custom Libraries-->
<Script file="Libs\LibDispellable-1.0\LibDispellable-1.0.lua"/>
<Script file="Libs\LibSpellbook-1.0\LibSpellbook-1.0.lua"/>
<Script file="Libs\LibPvpTalents-1.0\LibPvpTalents-1.0.lua"/>
</Ui>


Note the <?xml> tag at the top, that's what i'm referring to.

Also just to make sure, you are editing it with a notepad editor like Notepad++ and not with Excel? Excel adds hidden symbols and can also cause some issues.

It could indeed be an access right problem. Have you tried to see what happens if you run WoW as admin?

Lastly, the last thing i can think of, you do close down WoW from time to time? i know there are people who always leave the game running in the background, but WoW only checks which files exist during startup, and as such whenever you add or remove files you need to completely restart the game for those changes to be detected. This is different from the code within the .lua files themselves, those do get read and updated on each /reload and i understand if that might cause confusion.

PS : I'm trying to use Ace3 to have a configuration GUI (with some checkbox). I understand that AceConfig allow to describe a configuration and will automagically generate a configuration GUI from that. It is right or do I misunderstand that ? Thanks

That's correct. I use the same method for my GUIs. You basically describe a tree structure using arrays, and then use AceConfig in conjuction with AceGUI to transform that array into an actual gui. This is an example of one frame's configuration:
Briefings.optionsFrameData = {
type = "group",
name = L["OptionsFrameTitle"],
args = {
settingsRow = {
type = "group",
name = "",
cmdHidden = true,
inline = true,
order = 1,
args = {
settingsCommandInput = {
name = L["Settings Command"],
desc = L["Settings Command Desc"],
type = "input",
set = function(_,val)Briefings.db.global.settingsCommand = val; StaticPopup_Show("CONFIRM_COMMAND_RELOAD"); end,
get = function(self)return Briefings.db.global.settingsCommand end,
order = 1
},
settingsCommandPanel = {
name = L["Panel to open"],
desc = L["Pannel that should be opened with the settings command"],
type = "select",
values = {settings = "Briefings "..L["Settings"], topics = "Briefings "..L["Topics"]},
set = function(info,val) Briefings.db.global.settingsPanel = val end,
get = function() return Briefings.db.global.settingsPanel end
}
}
},
briefingRow = {

And this is an example of how to register it and create a GUI:
AceConfigDialog = LibStub("AceConfigDialog-3.0");
AceConfigRegistry = LibStub("AceConfigRegistry-3.0");
AceConfigRegistry:RegisterOptionsTable("Briefings",Briefings.optionsFrameData);
Briefings.optionsFrame = AceConfigDialog:AddToBlizOptions("Briefings", "Briefings");


Though i advise you read the documentation for a full understanding.
Config table doc: https://www.wowace.com/projects/ace3/pages/ace-config-3-0-options-tables
AceGUI doc: https://www.wowace.com/projects/ace3/pages/api/ace-gui-3-0
Hello, thank you again.

It was an access right problem. Now, I don't have lua error anymore.

The code works, thank you very much for you help !