GnomeWorks TradeSkill Frame

This project has become inactive.

This project is inactive and its default file will likely not work with the most recent version of World of Warcraft. The author may have abandoned it, or it may have outlived its usefulness.

GnomeWorks (r27)

GnomeWorks TradeSkill Frame -

a complete replacement for the blizzard trade skill frame.

early alpha just to test some things out.

You must login to post a comment. Don't have an account? Register to get one!

  • Avatar of Highend Highend May 24, 2010 at 23:58 UTC - 0 likes

    lsw r92 (latest) + r14:

    pro: - all addons are active (none disabled for this test) - no lua error when a tradeskill is opened - player name in the upper right pane is correct.

    contra: - no icons at all for the known tradeskills (upper right pane) - there are no submenus for "myplayername" and "All Recipes" for that player (scanned jewelcrafting, blacksmithing and first help before)

    I like the "Filter by level" function :)

    Feature requests (beside to be able to close gnomeworks together with the crafting queue):

    Color coding for cooldowns in the lower left pane (red when a skill is on cd, green when the cd is up). Example: Cooldown remaining <red>3 Hr 6 Min</red> <green> No cooldown</green>

    The search function currently only finds items with the name of the search input in it. Skillet was also able to find items with the description in it (like "haste" or "spellpower").

    Tia, highend

    Edit: Found another bug

    Add one item to the crafting list, click on it in the crafting pane:

    Message: Interface\AddOns\GnomeWorks\SkillList.lua:291: attempt to index field 'recipeDB' (a nil value)
    Time: 05/25/10 02:07:04
    Count: 1
    Stack: Interface\AddOns\GnomeWorks\SkillList.lua:291: in function <Interface\AddOns\GnomeWorks\SkillList.lua:288>
    Interface\AddOns\GnomeWorks\SkillList.lua:314: in function `SelectRecipe'
    Interface\AddOns\GnomeWorks\Queue.lua:113: in function `OnClick'
    Interface\AddOns\GnomeWorks\ScrollFrame.lua:397: in function <Interface\AddOns\GnomeWorks\ScrollFrame.lua:392>
    
    Locals: recipeID = 66577
    player = "xxx"
    (*temporary) = nil
    (*temporary) = nil
    (*temporary) = nil
    (*temporary) = nil
    (*temporary) = nil
    (*temporary) = "attempt to index field 'recipeDB' (a nil value)"
    
    Last edited May 25, 2010 by Highend
  • Avatar of Highend Highend May 24, 2010 at 11:02 UTC - 0 likes

    all addons on: If I enable lsw I get a bunch of lua errors when I open a tradeskill. player name is UNKNOWN. It's showing all tradeskill icons. It has the appropriate submenus under "All recipes" and xxx (the real player name).

    lsw disabled: player name is correct. NO lua errors when a tradeskill is opened...

    Will disable lsw for the time beeing (testint gnomeworks).

    clicking on a tradeskill in the tradechat works fine. it's the lib version (includes all the libs you mentioned).

  • Avatar of lilsparky lilsparky May 24, 2010 at 08:45 UTC - 0 likes

    highend: i'm starting to wonder about the locale/server maybe being the issue... what happens if you click a tradelink instead of opening your own skill? also, that libpt issue sounds like you downloaded the nolib version. or maybe i packaged the thing poorly... does your gnomeworks folder have a Libs directory with libpt, libstub, and a couple ace3 folders?

    wmerkens: i just realized i had modified lsw and forgot to commit. duh. if i was on my dev system, i'd commit now but it'll have to wait til tomorrow. (the change is in the gnomeworks_support file .. which now that i think of it, could just as easily be placed in the gnomeworks project rather than lsw...)

    does r13 run for you if you disable lsw?

    Last edited May 24, 2010 by lilsparky
  • Avatar of Highend Highend May 24, 2010 at 07:33 UTC - 0 likes

    locale: I'm playing with an english wow client on a german server (should be en_GB or en_US).

    toon's name: UNKNOWN

    It's clickable and lists "All recipes" and the player name but without submenues for these.

    I quit wow, renamed wtf and addons folder, copied ONLY gnomeworks into a new "AddOns" folder, started wow.

    GnomeWorks doesn't show if I click on a tradeskill! I see only the standard blizzard interface for the tradeskill. I logged out, made sure that gnomeworks is activated under Addons, logged back in.

    error:

    Message: ...s\Libs\LibPeriodicTable-3.1\LibPeriodicTable-3.1.lua:29: attempt to index global 'LibStub' (a nil value)
    Time: 05/24/10 09:19:29
    Count: 1
    Stack: ...s\Libs\LibPeriodicTable-3.1\LibPeriodicTable-3.1.lua:29: in main chunk
    
    Locals: (*temporary) = nil
    (*temporary) = nil
    (*temporary) = nil
    (*temporary) = nil
    (*temporary) = nil
    (*temporary) = nil
    (*temporary) = nil
    (*temporary) = nil
    (*temporary) = nil
    (*temporary) = nil
    (*temporary) = nil
    (*temporary) = nil
    (*temporary) = nil
    (*temporary) = nil
    (*temporary) = nil
    (*temporary) = nil
    (*temporary) = nil
    (*temporary) = nil
    (*temporary) = nil
    (*temporary) = nil
    (*temporary) = nil
    (*temporary) = nil
    (*temporary) = nil
    (*temporary) = nil
    (*temporary) = nil
    (*temporary) = nil
    (*temporary) = nil
    (*temporary) = nil
    (*temporary) = nil
    (*temporary) = nil
    (*temporary) = "attempt to index global 'LibStub' (a nil value)"
    

    here's the blizzard error log with all addons activated:

    Message: ...e\AddOns\Blizzard_DebugTools\Blizzard_DebugTools.lua:432: bad argument #6 to 'format' (string expected, got nil)
    Time: 05/24/10 09:22:00
    Count: 1
    Stack: [C]: in function `format'
    ...e\AddOns\Blizzard_DebugTools\Blizzard_DebugTools.lua:432: in function `ScriptErrorsFrame_Update'
    ...e\AddOns\Blizzard_DebugTools\Blizzard_DebugTools.lua:384: in function <...e\AddOns\Blizzard_DebugTools\Blizzard_DebugTools.lua:383>
    [C]: in function `Show'
    ...e\AddOns\Blizzard_DebugTools\Blizzard_DebugTools.lua:411: in function `ScriptErrorsFrame_OnError'
    [string "Interface\FrameXML\BasicControls.xml:<Scrip..."]:18: in function <[string "Interface\FrameXML\BasicControls.xml:<Scrip..."]:4>
    (tail call): ?
    [C]: in function `GetTradeSkillInfo'
    ...ace\AddOns\LilSparkysWorkshop\lilsparkysworkshop.lua:524: in function `GetTradeSkillData'
    ...lSparkysWorkshop\frameSupport\gnomeworks_support.lua:206: in function `func'
    Interface\AddOns\GnomeWorks\ScrollFrame.lua:339: in function `UpdateData'
    Interface\AddOns\GnomeWorks\ScrollFrame.lua:359: in function `Refresh'
    Interface\AddOns\GnomeWorks\MainWindow.lua:835: in function `ShowSkillList'
    Interface\AddOns\GnomeWorks\MainWindow.lua:853: in function <Interface\AddOns\GnomeWorks\MainWindow.lua:852>
    (tail call): ?
    [C]: ?
    [string "safecall Dispatcher[2]"]:9: in function <[string "safecall Dispatcher[2]"]:5>
    (tail call): ?
    ...ns\Alt-Tab_Toggle\Libs\AceTimer-3.0\AceTimer-3.0.lua:164: in function <...ns\Alt-Tab_Toggle\Libs\AceTimer-3.0\AceTimer-3.0.lua:138>
    
    Locals: (*temporary) = "Message: %s
    Time: %s
    Count: %s
    Stack: %s
    Locals: %s"
    (*temporary) = "...ace\AddOns\LilSparkysWorkshop\lilsparkysworkshop.lua:524: Usage: GetTradeSkillInfo(index)"
    (*temporary) = "05/24/10 09:22:00"
    (*temporary) = "1"
    (*temporary) = "[C]: in function `GetTradeSkillInfo'
    ...ace\AddOns\LilSparkysWorkshop\lilsparkysworkshop.lua:524: in function `GetTradeSkillData'
    ...lSparkysWorkshop\frameSupport\gnomeworks_support.lua:206: in function `func'
    Interface\AddOns\GnomeWorks\ScrollFrame.lua:339: in function `UpdateData'
    Interface\AddOns\GnomeWorks\ScrollFrame.lua:359: in function `Refresh'
    Interface\AddOns\GnomeWorks\MainWindow.lua:835: in function `ShowSkillList'
    Interface\AddOns\GnomeWorks\MainWindow.lua:853: in function <Interface\AddOns\GnomeWorks\MainWindow.lua:852>
    (tail call): ?
    [C]: ?
    [string "safecall Dispatcher[2]"]:9: in function <[string "safecall Dispatcher[2]"]:5>
    (tail call): ?
    ...ns\Alt-Tab_Toggle\Libs\AceTimer-3.0\AceTimer-3.0.lua:164: in function <...ns\Alt-Tab_Toggle\Libs\AceTimer-3.0\AceTimer-3.0.lua:138>
    "
    (*temporary) = nil
    (*temporary) = "Message: ...ace\AddOns\LilSparkysWorkshop\lilsparkysworkshop.lua:524: Usage: GetTradeSkillInfo(index)
    Time: 05/24/10 09:22:00
    Count: 1
    Stack: [C]: in function `GetTradeSkillInfo'
    ...ace\AddOns\LilSparkysWorkshop\lilsparkysworkshop.lua:524: in function `GetTradeSkillData'
    ...lSparkysWorkshop\frameSupport\gnomeworks_support.lua:206: in function `func'
    Interface\AddOns\GnomeWorks\ScrollFrame.lua:339: in function `UpdateData'
    Interface\AddOns\GnomeWorks\ScrollFrame.lua:359: in function `Refresh'
    Interface\AddOns\GnomeWorks\MainWindow.lua:835: in function `ShowSkillList'
    Interface\AddOns\GnomeWorks\MainWindow.lua:853: in function <Interface\AddOns\GnomeWorks\MainWindow.lua:852>
    (tail call): ?
    [C]: ?
    [string "safecall Dispatcher[2]"]:9: in function <[string "safecall Dispatcher[2]"]:5>
    (tail call): ?
    ...ns\Alt-Tab_Toggle\Libs\AceTimer-3.0\AceTimer-3.0.lua:164: in function <...ns\Alt-Tab_Toggle\Libs\AceTimer-3.0\AceTimer(*temporary) = "string expected, got nil"
    
  • Avatar of WMerkens WMerkens May 24, 2010 at 05:24 UTC - 0 likes

    Loaded R13

    Have latest LSW R92

    LSW caching prices indicator, the green bar went past the right edge to edge of screen and hit 600+ % before falling back to 100%

    Recipe list is un populated also

    Pulled LSW R92 and error went away and recipe list populated itself correctly.

    wiped GnomeWorks and LSW and installed clean version, here are the 2 bugs, #2 was repeated 80 times

    With ATSW it work's correctly with LSW R92

    Reported Via Bugsack

    Error #1

    1x LilSparkysWorkshop-r92\lilsparkysworkshop.lua:524: Usage: GetTradeSkillInfo(index) LilSparkysWorkshop-r92\lilsparkysworkshop.lua:524: in function `GetTradeSkillData' ...lSparkysWorkshop\frameSupport\gnomeworks_support.lua:206: in function `func': GnomeWorks-r13\ScrollFrame.lua:339: in function `UpdateData' GnomeWorks-r13\ScrollFrame.lua:359: in function `Refresh' GnomeWorks-r13\MainWindow.lua:835: in function `ShowSkillList' GnomeWorks-r13\MainWindow.lua:853: in function <GnomeWorks\MainWindow.lua:852> (tail call): ?: <in C code>: ? <string>:"safecall Dispatcher[2]":9: in function <[string "safecall Dispatcher[2]"]:5> (tail call): ?: AceTimer-3.0-5 (Ace3):164: in function <Ace3\AceTimer-3.0\AceTimer-3.0.lua:138>

    -

    Error #2 (repeated 80 times)

    80x LilSparkysWorkshop-r92\lilsparkysworkshop.lua:524: Usage: GetTradeSkillInfo(index) LilSparkysWorkshop-r92\lilsparkysworkshop.lua:524: in function `GetTradeSkillData' ...lSparkysWorkshop\frameSupport\gnomeworks_support.lua:206: in function `func': GnomeWorks-r13\ScrollFrame.lua:339: in function `UpdateData' GnomeWorks-r13\ScrollFrame.lua:359: in function `Refresh' ...lSparkysWorkshop\frameSupport\gnomeworks_support.lua:216: in function `RefreshWindow': LilSparkysWorkshop-r92\lilsparkysworkshop.lua:1224: in function `triggerFunction' LilSparkysWorkshop-r92\lilsparkysworkshop.lua:2179: in function <...ace\AddOns\LilSparkysWorkshop\lilsparkysworkshop.lua:2171>

    Locals: self = <table> { auctionCost = <function> @ Auc-Advanced\CoreAPI.lua:122: GetAuctionValue = <function> @ LilSparkysWorkshop\lilsparkysworkshop.lua:207: FlushPriceData = <function> @ LilSparkysWorkshop\lilsparkysworkshop.lua:1276: getDisenchantValue = <function> @ LilSparkysWorkshop\pricingSupport\disenchanting_support.lua:344: GetAlgorithmFunction = <function> @ LilSparkysWorkshop\lilsparkysworkshop.lua:185: pricingInitialized = true FormatMoney = <function> @ LilSparkysWorkshop\lilsparkysworkshop.lua:456: getPigmentSources = <function> @ LilSparkysWorkshop\pricingSupport\milling_support.lua:311: auctionValue = <function> @ Auc-Advanced\CoreAPI.lua:122: recipeCache = <table> {} itemCache = <table> {} getMillingResults = <function> @ LilSparkysWorkshop\pricingSupport\milling_support.lua:291: getMillingValue = <function> @ LilSparkysWorkshop\pricingSupport\milling_support.lua:296: GenerateAlgorithmMenu = <function> @ LilSparkysWorkshop\lilsparkysworkshop.lua:212: getDisenchantResults = <function> @ LilSparkysWorkshop\pricingSupport\disenchanting_support.lua:327: vendorAvailability = <function> @ LilSparkysWorkshop\pricingSupport\informant_support.lua:20: GetTimer = <function> @ LilSparkysWorkshop\lilsparkysworkshop.lua:2127: GetFrameSupportList = <function> @ LilSparkysWorkshop\lilsparkysworkshop.lua:2048: UpdateItemCost = <function> @ LilSparkysWorkshop\lilsparkysworkshop.lua:997: parentFrame = GnomeWorksFrame {} QueryServerInfo = <function> @ LilSparkysWorkshop\lilsparkysworkshop.lua:433: spellCooldown = <table> {} GetAlgorithms = <function> @ LilSparkysWorkshop\lilsparkysworkshop.lua:181: CreateDynamicButtons = <function> @ LilSparkysWorkshop\lilsparkysworkshop.lua:1925: RegisterPricingSupport = <function> @ LilSparkysWorkshop\lilsparkysworkshop.lua:2030: RefreshWindow = <function> @ LilSparkysWorkshop\frameSupport\gnomeworks_support.lua:215: FilterButtonText = <function> @ LilSparkysWorkshop\ButtonTextFilter.lua:62: AddRecipe = <function> @ LilSparkysWorkshop\lilsparkysworkshop.lua:807: buttonScripts = <table> {} playerProspectLevel = 0 initialized = true DeleteTimer = <function> @ LilSparkysWorkshop\lilsparkysworkshop.lua:2121: FindID = <function> @ LilSparkysWorkshop\lilsparkysworkshop.lua:419: vendorValue = <function> @ LilSparkysWorkshop\pricingSupport\getSellValue_support.lua:22: DumpFrames = <function> @ LilSparkysWorkshop\lilsparkysworkshop.lua:2157: UpdateItemValue = <function> @ LilSparkysWorkshop\lilsparkysworkshop.lua:956: scrollData = <table> {} UpdateSingleRecipePrice = <function> @ LilSparkysWorkshop\lilsparkysworkshop.lua:1155: cooldownGroups = <table> {} ErrorMessage = <function> @ LilSparkysWorkshop\lilsparkysworkshop.lua:408: GetSkillValue = <function> @ LilSparkysWorkshop\lilsparkysworkshop.lua:1368: SkillButtonShow = <function> @ LilSparkysWorkshop\lilsparkysworkshop.lua:1418: RegisterMenu = <function> @ LilSparkysWorkshop\lilsparkysworkshop.lua:135: playerMillLevel = 0 UpdateData = <function> @ LilSparkysWorkshop\lilsparkysworkshop.lua:1285: playerDisenchantLevel = 450 GetTradeSkillData = <function> @ LilSparkysWorkshop\lilsparkysworkshop.lua:523: SkillButtonHide = <function> @ LilSparkysWorkshop\lilsparkysworkshop.lua:1556: -

    Last edited May 24, 2010 by WMerkens
  • Avatar of lilsparky lilsparky May 24, 2010 at 00:34 UTC - 0 likes

    since you're clearly eager to help, could you try running without any other mods enabled? i'm just curious why it fails for you all the time while it works for me all the time. another user here has reported the same issue you're getting (the same error messages anyway) and others haven't. not sure what the determining factor is.

    what locale you in?

    edit: do you get your toon's name in the upper right? "toon - tradeskill"? if so, what happens when you click it? it should list your available toons with their tradeskills.

    if it doesn't show your toon name can you tell me if there are any other lua errors?

    Last edited May 24, 2010 by lilsparky
  • Avatar of Highend Highend May 23, 2010 at 23:55 UTC - 0 likes
    [01:53:01] GnomeWorks (r13) Initializing
    [01:53:01] parsing skill list
    [01:53:01] found  [Blacksmithing]
    [01:53:01] found  [Jewelcrafting]
    [01:53:01] found  [Cooking]
    [01:53:01] found  [First Aid]
    [01:53:01] done parsing skill list
    

    Is correct for my warrior but still shows every skill in the upper right pane *g*

  • Avatar of lilsparky lilsparky May 23, 2010 at 23:22 UTC - 0 likes

    so i added some debug spam to help me figure out the problem you guys are having.

    it should report your trade skills in chat when you first log in. something like:

    parsing trade skills
    found [trade]
    found [trade]
    found [cooking]
    found [first aid]
    done parsing
    

    lemme know what it says here.

    Last edited May 23, 2010 by lilsparky
  • Avatar of Sabrejack2 Sabrejack2 May 23, 2010 at 09:47 UTC - 0 likes

    I must say, I really like where this project is headed. The panes are laid out nicely and give a lot of relevant information in a clean looking manner.

  • Avatar of Highend Highend May 23, 2010 at 09:22 UTC - 0 likes

    Recipe filter is fixed :)

    Showing all tradeskills still bugged.

    Message: Interface\AddOns\GnomeWorks\SkillList.lua:633: attempt to index field '?' (a nil value)
    Time: 05/23/10 11:18:31
    Count: 2
    Stack: Interface\AddOns\GnomeWorks\SkillList.lua:633: in function `GetTradeSkillRank'
    Interface\AddOns\GnomeWorks\MainWindow.lua:858: in function `ShowStatus'
    Interface\AddOns\GnomeWorks\MainWindow.lua:870: in function <Interface\AddOns\GnomeWorks\MainWindow.lua:868>
    (tail call): ?
    [C]: ?
    [string "safecall Dispatcher[2]"]:9: in function <[string "safecall Dispatcher[2]"]:5>
    (tail call): ?
    ...ns\Alt-Tab_Toggle\Libs\AceTimer-3.0\AceTimer-3.0.lua:164: in function <...ns\Alt-Tab_Toggle\Libs\AceTimer-3.0\AceTimer-3.0.lua:138>
    
    Locals: self = <table> {
     detailFrame = <unnamed> {
     }
     RecipeGroupPruneList = <function> defined @Interface\AddOns\GnomeWorks\RecipeGroups.lua:595
     ScanTrade = <function> defined @Interface\AddOns\GnomeWorks\SkillList.lua:318
     InitGroupList = <function> defined @Interface\AddOns\GnomeWorks\RecipeGroups.lua:615
     RecipeGroupOpCopy = <function> defined @Interface\AddOns\GnomeWorks\RecipeGroups.lua:963
     ScrollToIndex = <function> defined @Interface\AddOns\GnomeWorks\MainWindow.lua:895
     currentTradeID = 25229
     RecipeGroupDeconstructDBStrings = <function> defined @Interface\AddOns\GnomeWorks\RecipeGroups.lua:637
     currentPlayer = "Detiria"
     player = "Detiria"
     RecipeGroupAddSubGroup = <function> defined @Interface\AddOns\GnomeWorks\RecipeGroups.lua:196
     VendorSellsItem = <function> defined @Interface\AddOns\GnomeWorks\Inventory.lua:16
     GetSkillDifficulty = <function> defined @Interface\AddOns\GnomeWorks\SkillList.lua:659
     TRADE_SKILL_UPDATE = <function> defined @Interface\AddOns\GnomeWorks\MainWindow.lua:875
     RecipeGroupConstructDBString = <function> defined @Interface\AddOns\GnomeWorks\RecipeGroups.lua:562
     ToggleTradeSkillOptionDropDown = <function> defined @Interface\AddOns\GnomeWorks\RecipeGroups.lua:849
     scanInProgress = false
     updateTimer = "table: 38024A60"
     SelectRecipe = <function> defined @Interface\AddOns\GnomeWorks\SkillList.lua:299
     QueueWindow = GnomeWorksQueueFrame {
     }
     MainWindow = GnomeWorksFrame {
     }
     SelectTradeLink = <function> defined @Interface\AddOns\GnomeWorks\MainWindow.lua:986
     RecipeGroupDeleteEntry = <function> defined @Interface\AddOns\GnomeWorks\RecipeGroups.lua:327
     RecipeGroupPasteEntry = <function> defined @Interface\AddOns\GnomeWorks\RecipeGroups.lua:236
     playerNameFrame = <unnamed> {
     }
     OpenTradeLink = <function> defined @Interface\AddOns\GnomeWorks\SkillList.lua:243
     levelStatusBar = <unnamed> {
     }
     ScheduleTimer = <function> defined @Interface\AddOns\Alt-Tab_Toggle\Libs\AceTimer-3.0\AceTimer-3.0.lua:276
     ShowSkillList = <function> defined @Interface\AddOns\GnomeWorks\MainWindow.lua:841
     searchBoxFrame = GnomeWorksSearch {
     }
     GetSpellCooldownGroup = <function> defined @Interface\AddOns\GnomeWorks\RecipeData.lua:101
     controlFrame = <unnamed> {
     }
     skillFrame = <unnamed> {
     }
     RegisterMessage = <function> defined @Interface\AddOns\Alt-Tab_Toggle\Libs\CallbackHandler-1.0\CallbackHandler-1.0.lua:118
     UnregisterMessage = <function> defined @Interface\AddOns\Alt-Tab_Toggle\Libs\CallbackHandler-1.0\CallbackHandler-1.0.lua:181
     data = <table> {
     }
     RecipeGroupSort = <function> defined @Interface\AddOns\GnomeWorks\RecipeGroups.lua:413
     SetFilterText = <function> defined @Interface\AddOns\GnomeWorks\MainWindow.lua:889
     ShowReagents = <function> defined @Interface\AddOns\GnomeWorks\Details.lua:195
     HideReagents = <function> defined @Interface\AddOns\GnomeWorks\Details.lua:191
     GetRecipeTradeID = <function> defined @Interface\AddOns\GnomeWorks\RecipeData.lua:111
     GetSkillListFrame = <function> defined @Interface\AddOns\GnomeWorks\API.lua:49
     UpdateTradeButtons = <function> defined @Interface\AddOns\GnomeWorks\TradeButton.lua:95
     RecipeGroupDeleteGroup = <function> defined @Interface\AddOns\GnomeWorks\RecipeGroups.lua:312
     RecipeGroupOpRename = <function> defined @Interface\AddOns\GnomeWorks\RecipeGroups.lua:1007
     GetTradeLinkList = <function> defined @Interface
    

    player data entries:

    			["playerData"] = {
    				["xxx"] = {
    					["build"] = "11723",
    					["links"] = {
    					},
    				},
    

Facts

Date created
Apr 15, 2010
Categories
Last update
Nov 03, 2014
Development stage
Inactive
Language
  • enUS
License
GNU General Public License version 3 (GPLv3)
Downloads
346,850
Recent files
  • A: r233 for 5.4.8 Nov 03, 2014
  • A: r232 for 5.4.0 Oct 01, 2013
  • A: r231 for 5.4.0 Sep 30, 2013
  • A: r229 for 5.3.0 Jun 01, 2013
  • A: r228 for 5.3.0 May 30, 2013

Authors

Relationships

Embedded library
Ace3
CallbackHandler-1.0
LibStub