This project is abandoned and its default file will likely not work with the most recent version of World of Warcraft. Whether this project is out of date or its author has marked it as abandoned, this project is no longer maintained.
GnomeWorks TradeSkill Frame -
a complete replacement for the blizzard trade skill frame.
i do intend to have an open system to provide recipe pathway hints. lsw will have an option to organize your queue based on internal prices. (fwiw, lsw and gw both have a misguided notion of milling/prospecting results that needs to be corrected)
the main point of the auction scanner is to provide inventory data so that the queue doesn't tell you to go get 15 herbs that aren't available form anywhere. the goal of the automated queue is to give you a means to craft the item you want. knowing the inventory of the auction house is important from that standpoint. current prices fall out of knowing the inventory.
i know getall is only available once every 15 minutes, but the system doesn't need getall. 99% of the auctionhouse inventory is uninteresting so simply scanning for the reagents in the current build queue is all that's necessary.
and i actually want *do* want to provide multiple pathways if those pathways are optimal. if you need 10 of something and you have 3 in your bag, 2 in you guildbank, and the auction house has 3, plus materials to craft 2 more then i want the queue/shopping list to indicate this.
the workflow would be queue up the items you want, hit the scan button, buy the things it says from the ah, collect the items you need from vendors, banks, alts, etc. do all your crafting. there's no analysis to be done because everything would be based on real numbers (aside from milling and prospecting results which need to be adjusted).
What is it exactly that you want to do with your scanner? The more I think about it, the more I think it might be a bad idea. If you just want to have it estimate the best pathway to craft an item, I think that's something that LSW can already do if you set up the pricing models right. The only thing it doesn't do is tell you if there are actually enough of that item available in the auction house at that price.
Though it could be a useful feature, I'm not sure it will even work that well in practice. Inventory on the WoW auction houses moves pretty fast, and it's not like a stock market where you can expect buyout prices to remain the same once a few items move. You'd literally have to do a full scan within a few minutes for the current-inventory information to be good enough to generate a real crafting plan.
This is extra problematic because you can only do one AH scan every fifteen minutes. Nobody is going to give up their sophisticated auction house scanner just so their trade-skill window can recommend whether to buy mithril ore, mithril bars or mithril filigree.
Do you really want to have to communicate a mixed queue, where you buy 3 filigree and craft 3 filigree? I think this is getting more complicated than you need. A simple way to display the intermediaries on the shopping list accomplishes this quite well.
There's another wrinkle here, which is how you deal with left-over items when you craft. This is something that causes huge distortions in the LSW valuations of items. LSW has a tendency treat certain pigments as free, because milling the herbs provides a small chance to proc a rare pigment that list for very high prices in the auction house. However in reality those never sell, and end up being almost worthless.
This gets to the very problem you're trying to address, which is that current market conditions may not match with the kind of statistical model that LSW provides. Unfortunately, it's just not possible to fully automate intelligent market decisions. There are a lot of factors that go into the real market. The fact that different people use different tools with different approaches makes the markets stronger.
The core feature I see behind this is the ability to intelligently choose which prerequisites are crafted. Personally I would give three options, configurable both as default or per item: always use pathway X, use LSW (which would then expose its various valuation models), or use other plug-in. To me the most valuable thing you can do here is define a general API that allows users to add their own pricing-model libraries that can interact with other add-ons.
At its core, a good trade-skill window is really a list of recipes and a queue that can dynamically process prerequisite items. Analyzing and playing the market is really a totally separate thing, and it should be. Forcing us to use a built-in scanner compromises our ability to do our own market analysis because our ability to run scans is limited.
I have no problem with you providing default implementations for features like this. I have no problem with you writing your own scanner that makes its own database. All I'm asking is that you decouple it so that I can replace it with a library that pulls the data from Auctioneer. If you want to be the standard and best trade-skill window replacement, you need to have this kind of plug-in functionality anyway. There's never going to be one approach to playing the market, and there's never going to be one best way to figure out what to buy and sell.
It's not at all clear to me that you should even try to play the auction house inside your trade-skill window. I don't really think it'll useful enough to warrant the time spent, and I think building in market intelligence rather than opening that up to plug-ins is a step in the wrong direction.
But if you're going down that road, there's also just no reason not to support an Auctioneer back-end for data if it's available. I'm happy to write it and publish it as a separate add-on, or you can incorporate my code. All you'd have to do is write the data store as a black box with a defined api & turn off the scanner if something else is plugged in. I don't think that will be a noticeable additional effort.
keep in mind that while auctioneer retains all the data for the current snapshot, other auction mods don't. i don't think i want to force people to enable auctioneer on every toon they use in order to enable the ability to examine the current contents of the auction house when buying materials.
@Chikchik Actually, Glypher has targeted GnomeWorks since they released Auctioneer 5.9 (right after WoW 4.0 hit the live servers). GlypherPost doesn't technically interact with your trade skills at all: it just goes through your inventory, configures the Auctioneer Appraiser and then does a batch post. (This is the undocumented reason why it doesn't work properly unless you have the Appraiser tab opened up.)
I love glypher, though the pricing logic behind Glypher is actually a lot more simplistic than it seems. It basically assumes a fixed price for one ink (regardless of type or current market conditions), then multiplies that by the number of inks a glyph requires. This is sensible if you have a stable market for northrend herbs and you only ever use the ink trader. If you ever use lower herbs and craft inks directly, or if the herb market is volatile on your server, the cost model isn't too accurate.
However, the valuatoin model and Glypher's integration with BeanCounter in particular, are really compelling. It does a good job adjusting pricing based on the times you actually made sales, and excluding items that have a high listing value but almost never sell. The only thing I really don't like about Auctioneer's statistics (across all modules) is that it has no weighted-decay model to deal with long-term changes in item value by de-weighting old entries. E.g., if you saw hundreds of thousands of Primordial Saronite at 1k or higher over the last year, the smaller listing volumes we'll see in the future may mean that Auctioneer value will stay high and never converge on the more realistic value of 100 g or so (my guess as to the long-term value).
@lilsparky I'm glad to hear that you're not considering your own full-fledged auction house scanner. The Auctioneer database actually also tracks the information you need here to support its searcher. You can ask "based on the last scan, tell me exactly what listings exist for this item". Again, I'm not at all against you having your own code that can scan and store this information. But I truly hope that you'll decouple it so I can write a bridge into Auctioneer's database and disable the built-in scanner. I've provided some patches to the Norganna folks, so I have some familiarity with the Auctioneer code and would be happy to volunteer this bridge code.
I understand that, like with inventory tracking, you may want or need to roll up data into a summary metric so that you don't have to traverse the raw tables over and over. However that behavior can be abstracted over the code that scans and interprets the raw auction house data.
yeah, sarah, i can move the window. it's only there really to explain why you can't access the trade skill api.
i plan on adding ldb support at some point, i think. while there are plenty of good tradeksill ldb modules, i think it would be helpful to have one that is specifically written for gw to take advantage of unique gw aspects.
i'm still torn on just what the ah scanner is going to do. rest assured it's not designed to be a full-fledged ah scanner. the ultimate goal is to help select the optimal recipe path by incorporating item price/availability from the ah as well as a means to say "buy me the cheapest 5 stacks of X herb that are out there". since it's working specifically on what's in the ah right now, statistical models are irrelevant. it won't know or care if the price is a good price.
fwiw, the issue(s) with the inventory tracking wouldn't necessarily be solved by supporting datastore as i'd still need to compute craftability as well as decide just which items i need to pay attention to. these have been the where the bugs have crept in. as for skill tracking, i may just revert to simply recording a table of spells for each toon. probably not a major sin, but it seems wasteful. in the scheme of things, tho, i guess another handful of tables probably isn't so bad.
I understand what you said that despite being very annoying there are other things you want to fix before you deal with the evil on-login alt scanning. I'm just wondering if there's any way we can move or hide the window that pops up? The very middle of the screen guarantees that we can't do anything for those fifteen seconds.
(15–20 seconds is what I seem to wait on my main realm where I have ten characters. That's a really long delay when it's every time you switch characters.)
I'd be happiest with an LDB status indicator or something. (Actually, an LDB interface similar to Ara Broker TradeSkills would be awesome.) Just being able to make it small and show up in a the corner would be a huge help. I don't think that the fact that you're scanning our alts needs our undivided attention every time we log in. :)
You mentioned somewhere that you now want to add your own auction house scanner and tracker? I'm really hoping that you'll tap into Auctioneer's database if it's available. It's not even feasible for someone to have two scanners, as Blizzard limits the frequency with which you can do a GetAll. LSW already accesses Auctioneer's data, and there's no way your scanner can provide better data than Auctioneer's many statistics models.
If you really want to have your own scanner that's fine, just please pleaseplease provide an API so that people can plug in their own pricing database. (I'm still wishing you would have agreed to do this for tracking alts. I wouldn't have to worry about the scanning issue as I would have just written a DataStore bridge, and I would happily bypass the bugs we're seeing with inventory and skill tracking.)
Is there a way to save a queue list you have from before? Like one day I go through all of my glyphs and make a queue and make them, and instead of wasting time another day putting the glyphs back in a queue I could just click a saved option and boom the list is already loaded.
Because right now KTQ is broken and going through each glyph is time consuming.
So, I'm seeing the same inventory problem that Intangir sees. I done a GnomeWorksDB wipe, because I'd just done a clean out of some alts that I no longer play, and GW was stalling when doing the scans of their spells, for obvious reasons.
Anyway, it looks like GW is only making my inventory available to itself after a reload, and then, only for crafted mats. So, for example, I have a bunch of frost orbs. I went and learned the vendor conversion, but GW doesn't show me as having any "craftable". This persists through reloads, even after visiting the bank, doing xfers of mats in and out of the bank. The basic craftables showed up, after a reload, once i'd sent a few events for mat xfer in and out of the bank.
I'm using ArkInventory (new beta, uploaded today). Interesting is that once it figures out I have stuff, it's obviously able to query ark to get all the guild bank contents too..
yeah, sorry about the transparency thing. i thought i had it defaulting to fully opaque. blizzard's naming scheme doesn't fit with their slider controls. i think i got something inverted by mistake.
Litvan, I had the same exact issue. I couldn't see the frame but when I managed to right click on my screen to mousepan I saw a frame color screen lol.
is it just me who's having a crafting window that's almost 100% transparent?
*edit*
nm... by putting my nose within touching distance from the monitor and squiting I managed to see enough of the frame to find the "frame color" option when rightclicking the titlebar
So I've been using the trick you suggested to prefer crafting inks over buying them from the ink trader: /script GnomeWorks.data.pseudoTradeData[100001].priority = .9
I'd love to have more granular control over this, but for now this is good enough. I'm wondering if you have any recommendation for a way to make this change permanent instead of having to enter this every time I log in. I'm certain I can go find this table in the code—or update this table in one of the lifecycle events—but Curse Client hates it when I modify add-on code, and I'd then have to go modify the code after every update.
I don't need a UI or anything, but if you have any thoughts on how to make this setting permanent I'd appreciate it. :-)
Speaking of reserving items, and maybe this is exactly what you're talking about, but I recently had a problem with items not crafting even when I had all the materials. Here's a simplified version of the scenario:
Queue up two glyphs, A and B, in that order.
Glyph A requires 3 celestial ink and one common parchment.
Glyph B requires 3 jadefire ink and one common parchment.
I have 3 jadefire ink and one common parchment. I do not have the mats necessary to craft glyph A.
You would expect GW to craft glyph B as I do not possess the materials for its queue predecessors. However, GW decided I can't craft anything. It seems that with vendor items, it reserves them and refuses to apply them to items later in the queue.
I don't think this is the correct behavior, especially if you're going to treat things like inks and eternals as vendor items. In my opinion, if I have the materials to craft one of my queued items, I should always be able to do so.
I haven't tested this since r65, so if you've changed the behavior, feel free to ignore this. :-)
is this with an empty queue or with other items queued up? keep in mind that gw will "reserve" items for recipes in the queue. how often do you delete you saved vars file? if you do it often (like when getting an update) then gw has to rebuild the list of things it tracks, so it's possible that it's not doing a great job at building this list the first time thru and thus a reload fixes it.
i do intend to have an open system to provide recipe pathway hints. lsw will have an option to organize your queue based on internal prices. (fwiw, lsw and gw both have a misguided notion of milling/prospecting results that needs to be corrected)
the main point of the auction scanner is to provide inventory data so that the queue doesn't tell you to go get 15 herbs that aren't available form anywhere. the goal of the automated queue is to give you a means to craft the item you want. knowing the inventory of the auction house is important from that standpoint. current prices fall out of knowing the inventory.
i know getall is only available once every 15 minutes, but the system doesn't need getall. 99% of the auctionhouse inventory is uninteresting so simply scanning for the reagents in the current build queue is all that's necessary.
and i actually want *do* want to provide multiple pathways if those pathways are optimal. if you need 10 of something and you have 3 in your bag, 2 in you guildbank, and the auction house has 3, plus materials to craft 2 more then i want the queue/shopping list to indicate this.
the workflow would be queue up the items you want, hit the scan button, buy the things it says from the ah, collect the items you need from vendors, banks, alts, etc. do all your crafting. there's no analysis to be done because everything would be based on real numbers (aside from milling and prospecting results which need to be adjusted).
What is it exactly that you want to do with your scanner? The more I think about it, the more I think it might be a bad idea. If you just want to have it estimate the best pathway to craft an item, I think that's something that LSW can already do if you set up the pricing models right. The only thing it doesn't do is tell you if there are actually enough of that item available in the auction house at that price.
Though it could be a useful feature, I'm not sure it will even work that well in practice. Inventory on the WoW auction houses moves pretty fast, and it's not like a stock market where you can expect buyout prices to remain the same once a few items move. You'd literally have to do a full scan within a few minutes for the current-inventory information to be good enough to generate a real crafting plan.
This is extra problematic because you can only do one AH scan every fifteen minutes. Nobody is going to give up their sophisticated auction house scanner just so their trade-skill window can recommend whether to buy mithril ore, mithril bars or mithril filigree.
Do you really want to have to communicate a mixed queue, where you buy 3 filigree and craft 3 filigree? I think this is getting more complicated than you need. A simple way to display the intermediaries on the shopping list accomplishes this quite well.
There's another wrinkle here, which is how you deal with left-over items when you craft. This is something that causes huge distortions in the LSW valuations of items. LSW has a tendency treat certain pigments as free, because milling the herbs provides a small chance to proc a rare pigment that list for very high prices in the auction house. However in reality those never sell, and end up being almost worthless.
This gets to the very problem you're trying to address, which is that current market conditions may not match with the kind of statistical model that LSW provides. Unfortunately, it's just not possible to fully automate intelligent market decisions. There are a lot of factors that go into the real market. The fact that different people use different tools with different approaches makes the markets stronger.
The core feature I see behind this is the ability to intelligently choose which prerequisites are crafted. Personally I would give three options, configurable both as default or per item: always use pathway X, use LSW (which would then expose its various valuation models), or use other plug-in. To me the most valuable thing you can do here is define a general API that allows users to add their own pricing-model libraries that can interact with other add-ons.
At its core, a good trade-skill window is really a list of recipes and a queue that can dynamically process prerequisite items. Analyzing and playing the market is really a totally separate thing, and it should be. Forcing us to use a built-in scanner compromises our ability to do our own market analysis because our ability to run scans is limited.
I have no problem with you providing default implementations for features like this. I have no problem with you writing your own scanner that makes its own database. All I'm asking is that you decouple it so that I can replace it with a library that pulls the data from Auctioneer. If you want to be the standard and best trade-skill window replacement, you need to have this kind of plug-in functionality anyway. There's never going to be one approach to playing the market, and there's never going to be one best way to figure out what to buy and sell.
It's not at all clear to me that you should even try to play the auction house inside your trade-skill window. I don't really think it'll useful enough to warrant the time spent, and I think building in market intelligence rather than opening that up to plug-ins is a step in the wrong direction.
But if you're going down that road, there's also just no reason not to support an Auctioneer back-end for data if it's available. I'm happy to write it and publish it as a separate add-on, or you can incorporate my code. All you'd have to do is write the data store as a black box with a defined api & turn off the scanner if something else is plugged in. I don't think that will be a noticeable additional effort.
keep in mind that while auctioneer retains all the data for the current snapshot, other auction mods don't. i don't think i want to force people to enable auctioneer on every toon they use in order to enable the ability to examine the current contents of the auction house when buying materials.
@Chikchik Actually, Glypher has targeted GnomeWorks since they released Auctioneer 5.9 (right after WoW 4.0 hit the live servers). GlypherPost doesn't technically interact with your trade skills at all: it just goes through your inventory, configures the Auctioneer Appraiser and then does a batch post. (This is the undocumented reason why it doesn't work properly unless you have the Appraiser tab opened up.)
I love glypher, though the pricing logic behind Glypher is actually a lot more simplistic than it seems. It basically assumes a fixed price for one ink (regardless of type or current market conditions), then multiplies that by the number of inks a glyph requires. This is sensible if you have a stable market for northrend herbs and you only ever use the ink trader. If you ever use lower herbs and craft inks directly, or if the herb market is volatile on your server, the cost model isn't too accurate.
However, the valuatoin model and Glypher's integration with BeanCounter in particular, are really compelling. It does a good job adjusting pricing based on the times you actually made sales, and excluding items that have a high listing value but almost never sell. The only thing I really don't like about Auctioneer's statistics (across all modules) is that it has no weighted-decay model to deal with long-term changes in item value by de-weighting old entries. E.g., if you saw hundreds of thousands of Primordial Saronite at 1k or higher over the last year, the smaller listing volumes we'll see in the future may mean that Auctioneer value will stay high and never converge on the more realistic value of 100 g or so (my guess as to the long-term value).
@lilsparky I'm glad to hear that you're not considering your own full-fledged auction house scanner. The Auctioneer database actually also tracks the information you need here to support its searcher. You can ask "based on the last scan, tell me exactly what listings exist for this item". Again, I'm not at all against you having your own code that can scan and store this information. But I truly hope that you'll decouple it so I can write a bridge into Auctioneer's database and disable the built-in scanner. I've provided some patches to the Norganna folks, so I have some familiarity with the Auctioneer code and would be happy to volunteer this bridge code.
I understand that, like with inventory tracking, you may want or need to roll up data into a summary metric so that you don't have to traverse the raw tables over and over. However that behavior can be abstracted over the code that scans and interprets the raw auction house data.
yeah, sarah, i can move the window. it's only there really to explain why you can't access the trade skill api.
i plan on adding ldb support at some point, i think. while there are plenty of good tradeksill ldb modules, i think it would be helpful to have one that is specifically written for gw to take advantage of unique gw aspects.
i'm still torn on just what the ah scanner is going to do. rest assured it's not designed to be a full-fledged ah scanner. the ultimate goal is to help select the optimal recipe path by incorporating item price/availability from the ah as well as a means to say "buy me the cheapest 5 stacks of X herb that are out there". since it's working specifically on what's in the ah right now, statistical models are irrelevant. it won't know or care if the price is a good price.
fwiw, the issue(s) with the inventory tracking wouldn't necessarily be solved by supporting datastore as i'd still need to compute craftability as well as decide just which items i need to pay attention to. these have been the where the bugs have crept in. as for skill tracking, i may just revert to simply recording a table of spells for each toon. probably not a major sin, but it seems wasteful. in the scheme of things, tho, i guess another handful of tables probably isn't so bad.
Just a side note: the folks at Auctioneer were gearing their Glypher and Glypher Post modules to work with GnomeWorks rather than Skillet or ATSW.
Hey LS,
I understand what you said that despite being very annoying there are other things you want to fix before you deal with the evil on-login alt scanning. I'm just wondering if there's any way we can move or hide the window that pops up? The very middle of the screen guarantees that we can't do anything for those fifteen seconds.
(15–20 seconds is what I seem to wait on my main realm where I have ten characters. That's a really long delay when it's every time you switch characters.)
I'd be happiest with an LDB status indicator or something. (Actually, an LDB interface similar to Ara Broker TradeSkills would be awesome.) Just being able to make it small and show up in a the corner would be a huge help. I don't think that the fact that you're scanning our alts needs our undivided attention every time we log in. :)
You mentioned somewhere that you now want to add your own auction house scanner and tracker? I'm really hoping that you'll tap into Auctioneer's database if it's available. It's not even feasible for someone to have two scanners, as Blizzard limits the frequency with which you can do a GetAll. LSW already accesses Auctioneer's data, and there's no way your scanner can provide better data than Auctioneer's many statistics models.
If you really want to have your own scanner that's fine, just please please please provide an API so that people can plug in their own pricing database. (I'm still wishing you would have agreed to do this for tracking alts. I wouldn't have to worry about the scanning issue as I would have just written a DataStore bridge, and I would happily bypass the bugs we're seeing with inventory and skill tracking.)
@animeguru - KTQ has been updated to work with Gnomeworks - working fine for me.
I was asking if there was a way to do that at the moment yuno, but I did put up a ticket. =)
animeguru08: File a ticket requesting the feature?
Is there a way to save a queue list you have from before? Like one day I go through all of my glyphs and make a queue and make them, and instead of wasting time another day putting the glyphs back in a queue I could just click a saved option and boom the list is already loaded.
Because right now KTQ is broken and going through each glyph is time consuming.
So, I'm seeing the same inventory problem that Intangir sees. I done a GnomeWorksDB wipe, because I'd just done a clean out of some alts that I no longer play, and GW was stalling when doing the scans of their spells, for obvious reasons.
Anyway, it looks like GW is only making my inventory available to itself after a reload, and then, only for crafted mats. So, for example, I have a bunch of frost orbs. I went and learned the vendor conversion, but GW doesn't show me as having any "craftable". This persists through reloads, even after visiting the bank, doing xfers of mats in and out of the bank. The basic craftables showed up, after a reload, once i'd sent a few events for mat xfer in and out of the bank.
I'm using ArkInventory (new beta, uploaded today). Interesting is that once it figures out I have stuff, it's obviously able to query ark to get all the guild bank contents too..
Thought you might like to know..
PS. Also got transparent window thing ;)
yeah, sorry about the transparency thing. i thought i had it defaulting to fully opaque. blizzard's naming scheme doesn't fit with their slider controls. i think i got something inverted by mistake.
Litvan, I had the same exact issue. I couldn't see the frame but when I managed to right click on my screen to mousepan I saw a frame color screen lol.
is it just me who's having a crafting window that's almost 100% transparent?
*edit*
nm... by putting my nose within touching distance from the monitor and squiting I managed to see enough of the frame to find the "frame color" option when rightclicking the titlebar
So I've been using the trick you suggested to prefer crafting inks over buying them from the ink trader:
/script GnomeWorks.data.pseudoTradeData[100001].priority = .9
I'd love to have more granular control over this, but for now this is good enough. I'm wondering if you have any recommendation for a way to make this change permanent instead of having to enter this every time I log in. I'm certain I can go find this table in the code—or update this table in one of the lifecycle events—but Curse Client hates it when I modify add-on code, and I'd then have to go modify the code after every update.
I don't need a UI or anything, but if you have any thoughts on how to make this setting permanent I'd appreciate it. :-)
Speaking of reserving items, and maybe this is exactly what you're talking about, but I recently had a problem with items not crafting even when I had all the materials. Here's a simplified version of the scenario:
I don't think this is the correct behavior, especially if you're going to treat things like inks and eternals as vendor items. In my opinion, if I have the materials to craft one of my queued items, I should always be able to do so.
I haven't tested this since r65, so if you've changed the behavior, feel free to ignore this. :-)
is this with an empty queue or with other items queued up? keep in mind that gw will "reserve" items for recipes in the queue. how often do you delete you saved vars file? if you do it often (like when getting an update) then gw has to rebuild the list of things it tracks, so it's possible that it's not doing a great job at building this list the first time thru and thus a reload fixes it.
seems to not be tracking my inventory very well
keeps seeming to not know that i already have items i need to craft
keep having to /reload to get it to notice.. (just now i pulled one out of the mail, earlier i was buying from vendors and pulling from guildbank)
this is crafting mats, not already crafted items.. having it fail on parchments, inks, and gems
@lilsparky...i love you! everything works perfectly from my pov...thanks a ton for everything with GW