LilSparky's Workshop
LilSparky's Workshop adds auction-derived pricing information for trade skills right into the trade skill recipe frame. Each skill is evaluated for material costs and potential value of the item created. These two numbers are listed next to each skill in an easy-to-read format.
Supported Auction Scanners:
- Auctioneer
- AuctionLite
- AuctionMaster
- Auctionator
Optionally Requires:
- Informant (for vendor availability)
LibPeriodicTable (for vendor availability)
Trade Skill Interfaces Supported:
- GnomeWorks
- AdvancedTradeSkillWindow
- Skillet
- Blizzard's Standard UI
- Doublewide Tradeskills
- Tradeskill HD
Auction pricing models can be selected by right-clicking either the value column or the cost column (each can have a different pricing method attached).
The Value column can be left clicked to cycle through the different valuation methods for the resultant item: Auction Value (a), Vendor Value (v), Disenchant Value (d) or the greatest of the three different values (the default). Any instance of an item Value being greater than the Cost to create it will have a highlighted Value entry. Optionally, the Value column can be displayed as a percentage of the Cost column.
The Cost column simply sums up the costs for each reagent and reports the total.
Both columns can be combined into a single "Profit" column which simply reflects the Value minus the Cost.
Tooltips for each column give more details about the price breakdowns LSW is considering.
A note regarding vendor availability:
LSW utilizes supplied item databases to determine when an item is readily available from a vendor. Occasionally this may not be accurate, usually because the item is a trade in for another item and not buyable with gold. I have provided a simple way to over-ride the vendor database:
/script LSWConfig.vendorOverride[item#] = (true/false/nil)
The item# is the item ID for the specific item. It is a single number. For example, 2589 is Linen Cloth.
Setting the value to "true" means the item is available at the vendor.
Setting the value to "false" means the item is not available at the vendor.
Setting the value to "nil" means to use the provided databse.
There is now also a right-click option to override the vendor availability and also to hand enter specific prices for items.
A note about frame/auction support:
LSW utilizes a plug in scheme to handle support to handle pricing and frame support. I am unlikely to add additional plugins directly into LSW. The goal of the plugin system is to provide basic templates that other addon authors could employ to provide LSW support on their end while at the same time providing functionality for a base set of common mods. Addon authors are free to contact me regarding the plugin system if issues arise or the system doens't make sense.
If you want to avoid the crashes, comment (or remove) line 54 in LilSparkysWorkshop\pricingSupport\cachedPrices_support.lua like this
-- SaveCachedPrices()
You won't get cached prices, but I don't think that is an important feature when you get the prices from Auctioneer or Auctionator anyway.
I am seeing multiple copies of each recipe (4-6), although only the first recipe is actually selectable. Disabling this addon prevents this behavior.
I am using this addon with the default trade window, and am also using Ackis Recipe List.
The behavior sometimes occurs on the first opening of the trade window, and then keeps happening.
I noticed someone who was using the ATSW addon also complaining of the same thing; is there a common library or code to both ATSW and LilSpark's workshop?
I'm actually thinking the behavior I was seeing is somehow due to the new cross-realm servers and not addons at all. I see this weird bug even with no tradeskill related addons installed.
I noticed that zoning into cross-realm servers I will sometimes see 'You have gained the cooking skill' messages (or other professions) and these repeat sporadically. Weird stuff.
yea whats up with that wierdness with the 'you have learned...' spamming my chat window when i zone into a cross realm section of my map? does blizzard know about this? ive been having a hrad time googling the problem tho as im not sure what to call it. your the first person ive read mention it, im glad im not alone. :)
I kept getting also this notarious crash of wow client and I also narrowed it down to this addon. By disabling this addon, the game no longer did crash when I swapped toon or exited the game.
My WoW client crashes when I have Auctionator and LilSparky's Workshop loaded at the same time. If I only load Auctionator it does not happen. If I only load LilSparky's Workshop it does not happen. Auctionator has been updated for the latest patch but LilSparky's Workshop has not. :(
==============================================================================
World of WarCraft: Retail Build (build 16016)
Exe: C:\Program Files (x86)\World of Warcraft\Wow-64.exe
Time: Sep 1, 2012 11:35:07.956 AM
User: Dad
Computer: DAD-PC
------------------------------------------------------------------------------
This application has encountered a critical error:
ERROR #134 (0x85100086) Fatal condition!
Program: C:\Program Files (x86)\World of Warcraft\Wow-64.exe
ProcessID: 908
Script out of bounds : 809
I see the same issue as Canthuz. Not sure whats up - it must be a code thing.
Using auctioneer to get pricing data on stuff, but LSW will still only show me vendor prices for all items even after plenty of AH scans. How do i make it use the auctioneer data to tell me those prices rather then vendor prices ?
will this be updated? If not does anyone know of an addon that does something similar?
Is there an option for LSW to display only the CURRENT prices for mats/recipes from the most recent scan -- instead of an average of all scans? It doesn't really do me much good if LSW tells me that if I make X enchanting scroll I'll make 500g profit if there are a bunch of them being undercut right now which means I'd actually lose gold, or if the market price has just gone down over the past few weeks/months so that the average is really skewed.
Just reinstalled LSW and if I right-click in my profession pane (using default, no special profession addons) to bring up the menu, as soon as I hover over "Reagent Cost Overrides" I get the following LUA error, and that option becomes dead until I relog. As soon as I log in again it does the same and becomes dead again. All 4 other options on the menu work properly.
Count: 1 Message: ...ace\AddOns\LilSparkysWorkshop\lilsparkysworkshop.lua line 699: bad argument #1 to 'pairs' (table expected, got nil) Debug: [C]: ? [C]: pairs() ...ace\AddOns\LilSparkysWorkshop\lilsparkysworkshop.lua:699: menuList() ...ace\AddOns\LilSparkysWorkshop\lilsparkysworkshop.lua:31: initFunction() ..\FrameXML\UIDropDownMenu.lua:69: UIDropDownMenu_Initialize() ..\FrameXML\UIDropDownMenu.lua:860: ToggleDropDownMenu() [string "*:OnEnter"]:5: [string "*:OnEnter"]:1
Some more questions. Why does it that in Leatherworking profession, the prices of a piece of gear are calculated using the Action House price of Pristine Hides. It's much cheaper to buy either 250 Savage Leather Scraps, 50 Savage Leather or 10 Heavy Savage Leather. Just because you have to give them to a Vendor and are not crafted, shouldn't make a difference. The same for Eternal Elements, you can buy Frozen Orbs for Justice Points and trade them for any type of Eternal Element in Dalaran. And in the Enchanting profession, I get this crazy 6-8 line cascading list for Lesser Celestial Essence / Greater Celestial Essence.
The residual value, is it something like if you mine for some ore, you will get Gems and Volatile Elements that will make the cost price of crafting something cheaper?
Also, the Allways Craft option, does it take into account it might be cheaper not to craft and buy straight from the Auction House?
I'm sorry if I'm starting to spam this page with trivial questions, but haven't found a comprehensive How To / FAQ to help me.
the pricing philosophy in lsw started out simply as "if i have the materials to make X should is sell X or sell the materials". this is why it normally only looks at the base materials. however, if you switch to the purchase price mode, it will act more like how you seem to want (looking for the cheapest way to make an item).
lsw doesn't know how much justice points are worth, so it's difficult to go down that road. i never implemented a vendor scanner for lsw so being able to convert from frozen orbs to eternals is unknown to lsw.
I have a question reguarding the allways craft option. You can have either craftable by "Personal Craftability Only", or a general option regarding all professions. Is this "Personal Craftability Only" option regarding your character, or any character you may have in the given server? If it only regards the 1 character, it would be great make it consider any recipe you may know in any character from the same server.
Also:
Can someone help me understand the "cost basis: resale value / purchase cost" options?
What is Residual Material value?
Thank you.
i honestly cannot remember whether personal crafting considers alts, but i doubt that it does.
the cost basis toggle swaps the reagent pricing from being how much you can sell the reagents for vs how much you could buy them for. if you're looking to maximize profit, then you would probably be more interested in comparing the resale price of the reagents than the purchase price. if you're trying to level up cheaply, then you would likely want to look at the purchase price.
the residual material value is a factor applied to the extra results from some crafts. when in purchase cost mode (or when always craft is enabled) lsw will look at craftable reagents and compare those prices -- this includes simple transmutes of essences, milling, prospecting, disenchanting and pretty much any skill that converts one item into another. since many of these produce multiple results or even extra items you don't necessarily need for a particular craft, lsw will consider the value of those "left over" items when considering the path to generate the crafted result. these left overs are "residule materials" and the value factor is applied to their cost to keep them from having too much weight in the cost analysis. a value of .5 would mean to only consider them to be worth 50% of what the ah says they are.
Is anyone getting alot of lag while crafting? I was getting a Cashing item everytime I crafted somthing so i switched to this version im still getting the lag but its not cashing now. Any idea on whats causing this?
The most recent
The most recent release seems to trigger a refresh for addons like Skillet everytime something is crafted. I reverted to the previous version to eliminate this.
I get a problem where very frequently, it doesn't pick up the auction prices for enchanting scrolls. It will still work for my other professions, it's just enchanting that it thinks everything is 0 vended and 0 auctioned.
Occasionally, it will fix itself, but I haven't yet stumbled on magic sauce for it.
What am I doing wrong, most likely? What information is needed to diagnose the problem (either on my end, or in the code)?
I get this error everytime I attempt to set a manual price for the reagents (i just have to hover my cursor over the menu item and then it bombs out this error)
Tested whether it was just gnomeworks causing issues since its in alpha, but then tried it with advtradesw and got the same error
Message: ...ace\AddOns\LilSparkysWorkshop\lilsparkysworkshop.lua:699: bad argument #1 to 'pairs' (table expected, got nil)
Time: 04/14/12 18:30:49
Count: 1
Stack: Interface\AddOns\Auctionator\AtrErrorInspector.lua:101: in function <Interface\AddOns\Auctionator\AtrErrorInspector.lua:50>
[C]: ?
[C]: in function `pairs'
...ace\AddOns\LilSparkysWorkshop\lilsparkysworkshop.lua:699: in function `menuList'
...ace\AddOns\LilSparkysWorkshop\lilsparkysworkshop.lua:31: in function `initFunction'
Interface\FrameXML\UIDropDownMenu.lua:69: in function `UIDropDownMenu_Initialize'
Interface\FrameXML\UIDropDownMenu.lua:860: in function `ToggleDropDownMenu'
[string "*:OnEnter"]:5: in function <[string "*:OnEnter"]:1>
Locals: msg = " ...ace\AddOns\LilSparkysWorkshop\lilsparkysworkshop.lua:699: bad argument #1 to 'pairs' (table expected, got nil)"
funcnames = <table> {
1 = "pairs"
2 = "menuList"
3 = "initFunction"
4 = "UIDropDownMenu_Initialize"
5 = "ToggleDropDownMenu"
}
funcstr = "pairs > menuList > initFunction > UIDropDownMenu_Initialize > ToggleDropDownMenu"
looksLikeAuctionatorError = false
inAtrErrorHandler = true
origErrorHandler = <function> defined *:OnLoad:1
zc = <table> {
msg_red = <function> defined @Interface\AddOns\Auctionator\zcUtils.lua:550
msg = <function> defined @Interface\AddOns\Auctionator\zcUtils.lua:675
GetArrayElemOrFirst = <function> defined @Interface\AddOns\Auctionator\zcUtils.lua:149
NumToBool = <function> defined @Interface\AddOns\Auctionator\zcUtils.lua:504
IsEnglishLocale = <function> defined @Interface\AddOns\Auctionator\AuctionatorLocalize.lua:51
ShowHide = <function> defined @Interface\AddOns\Auctionator\zcUtils.lua:35
StringStartsWith = <function> defined @Interface\AddOns\Auctionator\zcUtils.lua:868
printmem = <function> defined @Interface\AddOns\Auctionator\zcUtils.lua:949
round = <function> defined @Interface\AddOns\Auctionator\zcUtils.lua:544
tallyAdd = <function> defined @Interface\AddOns\Auctionator\zcUtils.lua:1039
msg_color = <function> defined @Interface\AddOns\Auctionator\zcUtils.lua:556
CheckDeferredCall = <function> defined @Interface\AddOns\Auctionator\zcUtils.lua:331
priceToMoneyString = <function> defined @Interface\AddOns\Auctionator\zcUtils.lua:779
tallyPrint = <function> defined @Interface\AddOns\Auctionator\zcUtils.lua:1051
StringEndsWith = <function> defined @Interface\AddOns\Auctionator\zcUtils.lua:848
GetArrayElemOrNil = <function> defined @Interface\AddOns\Auctionator\zcUtils.lua:164
BoolToNum = <function> defined @Interface\AddOns\Auctionator\zcUtils.lua:494
If = <function> defined @Interface\AddOns\Auctionator\zcUtils.lua:98
periodic = <function> defined @Interface\AddOns\Auctionator\zcUtils.lua:354
Min = <function> defined @Interface\AddOns\Auctionator\zcUtils.lua:68
msg_pink = <function> defined @Interface\AddOns\Auctionator\zcUtils.lua:551
SetTextIf = <function> defined @Interface\AddOns\Auctionator\zcUtils.lua:46
CopyDeep = <function> defined @Interface\AddOns\Auctionator\zcUtils.lua:921
msg_str = <function> defined @Interface\AddOns\Auctionator\zcUtils.lua:569
priceToString = <function> defined @Interface\AddOns\Auctionator\zcUtils.lua:743
enc64 = <function> defined @Interface\AddOns\Auctionator\zcUtils.lua:214
Val = <function> defined @Interface\AddOns\Auctionator\zcUtils.lua:57
msg_badErr = <function> defined @Interface\AddOns\Auctionator\zcUtils.lua:586
TrimQuotes = <function> defined @Interface\AddOns\Auctionator\zcUtils.lua:892
printableLink = <function> defined @Interface\AddOns\Auctionator\zcUtils.lua:936
PrintTable = <function> defined @Interface\AddOns\Auctionator\zcUtils.lua:384
StringContains = <function> defined @Interface\AddOns\Auctionator\zcUtils.lua:830
StringSame = <function> defined @Interface\AddOns\Auctionator\zcUtils.lua:812
PullItemIntoMemory = <function> defined @Interface\AddOns\Auctionator\zcUtils.lua:462
val2gsc = <function> defined @Interface\AddOns\Auctionator\zcUtils.lua:725
PrintKeysSorted = <function> defined
And this is the error with just auctionator and lil sparky eneabled
-------------------------------------------------------------------------------------------------
Message: ...ace\AddOns\LilSparkysWorkshop\lilsparkysworkshop.lua:699: bad argument #1 to 'pairs' (table expected, got nil)
Time: 04/14/12 18:34:29
Count: 1
Stack: [C]: ?
[C]: in function `pairs'
...ace\AddOns\LilSparkysWorkshop\lilsparkysworkshop.lua:699: in function `menuList'
...ace\AddOns\LilSparkysWorkshop\lilsparkysworkshop.lua:31: in function `initFunction'
Interface\FrameXML\UIDropDownMenu.lua:69: in function `UIDropDownMenu_Initialize'
Interface\FrameXML\UIDropDownMenu.lua:860: in function `ToggleDropDownMenu'
[string "*:OnEnter"]:5: in function <[string "*:OnEnter"]:1>
Locals: