Quantcast
Download
(113 Kb)
Download
Updated: 06/22/17 05:43 PM
Pictures
File Info
Compatibility:
Morrowind (3.0)
Updated:06/22/17 05:43 PM
Created:02/12/17 08:54 PM
Monthly downloads:2,492
Total downloads:6,707
Favorites:28
MD5:
3.0
WritWorthy  Updated less than 3 days ago!  Popular! (More than 5000 hits)
Version: 3.0.5
by: ziggr [More]
  • Is a master writ worth doing?
  • Does this character have the skills to do so?
  • Want to craft it automatically? <-- NEW and experimental as of 2017-06-18

Is this master writ worth doing?

Most writs consume less than 1000g worth of materials for each writ voucher they return. But some consume 2000g+ materials per voucher and might not be worth doing.

Shopping guild stores for Master Writs? What is the per-voucher cost of a writ, including both materials and purchase price?

This add-on adds text to each Master Writ's tooltip, showing the total material cost, purchase price (if any), and the cost per writ voucher reward.

It also optionally dumps a complete material list to chat. Surprisingly useful when filling Alchemy writs.

Requires Master Merchant for material prices.

Does this character have the skills to do so?

Not interested in writs that you cannot craft?

This add-on shows big red warnings when writ requires a motif, trait, or recipe that the current character does not yet know.

It also shows orange warnings for missing skills that are not required, but which reduce the cost of expensive writs, such as Temper Expertise.

(No, WritWorthy does not check inventory for required materials, or space to hold the the crafted item. I assume a master crafter can handle their own inventory management.)

Want to craft it automatically?
NEW and experimental for version 3.0.3 2017-06-18

"Experimental" here means that you will lose materials, maybe even gold tempers, if you discover a bug in WritWorthy. Use automatic crafting only if you're willing to take the risk.

  1. Bind a key to "Show/Hide WritWorthy"
  2. Use that key binding to see a list of all Sealed Master Writs in the current character's inventory.
  3. Check the ones you want to craft automatically next time the character visits the appropriate crafting station. Or "Enqueue All" if you want to craft them all.
  4. "Sort by Station" to see which crafting stations you need to visit.
  5. Walk up to a station, 'E' interact, and watch Dolgubon's LibLazyCrafter make your items.
  6. Wait patiently while the automatic crafting occurs. If you cancel interaction while still auto-crafting, you might end up auto-crafting an item twice, wasting materials. There is no indication for "all done". Sorry.
  7. Once you have crafted items for your writs, you can open them, accept their quest, and the quest will automatically advance to "Turn in".

Thanks to Dolgubon's LibLazyCrafting which makes automatic crafting possible.

Automatic crafting requires that the appropriate cost-reduction skills have been maxed out: Temper Expertise, Chef, Brewer, or Chemistry.


Thank You
Huge thank you to Rhyono and Dolgubon for all the programming help.
I pulled some internal glyph and recipe list item_id values from CraftStore Fixed and Improved and ESO Master Recipe List: saved me a couple hours of work.

--Z
3.0.5 2017-06-22
  • Replace hardcoded skill indices with a runtime scan for localized skill name. Turns out those indices change from player to player, are not constants. And there are no "skillId" analogs to "itemId" constants. Oh well. Fall back to string matching. Hopefully this will end the many reports of nil errors on other people's ESO clients. I included the names for EN, DE, and FR. I do not have a JP client, so I lack those names, sorry.

3.0.4 2017-06-20
  • Bugfix: operator < is not supported for nil < nil. Thanks to Tonyleila for the report.

3.0.3 2017-06-18
  • New window with list of all master writs in backpack.
  • Automatic crafting of writs.
  • integrate Dolgubon's LibLazyCrafting 0.4, which is actually Dolgubon's LibLazyCrafting 0.3 but with Zig-added support for alchemy and provisioning. If those don't work, it's Zig's fault not Dolgubons. Thank you Dolgubon for all the help!

3.0.2 2017-05-28
  • Morrowind API: replace temporary workaround numbers with actual constants for new styles. Thank you @Rhyono for the CraftStore Morrowind update which had all the quest IDs I needed for the "which pages do you know?" query.
  • BugFix: never had a quest ID for the "Order of the Hour" motif. Now I do.

3.0.1 2017-05-21
  • ESO 3.0 Morrowind/API 19
  • Temporary workaround: some item style constants changed in the new API and until I can figure out the new ones, use magic numbers. WritWorthy might report incorrect known/unknown results for these three motifs: Skinchanger, Grim Harlequin, Hollowjack.
  • Provisioning: require 2x crafting attempts, since most Provisioning writs seem to require 8 servings. (I assume any character performing master writs will have Chef/Brewer/Chemistry passive skills maxxed out.)

2.7.10 2017-04-04
  • Option to fall back to hardcoded prices for common style and trait materials.

2.7.9 2017-03-22
  • AHA Found the "Trait not known" bug for medium armor: when a writ required a trait for some medium armor piece (such as belt), WritWorthy erroneously checked the light armor piece (such as sash).

2.7.8 2017-03-22
  • Debug log: records details about the 20 most recent writs. If there's a problem with a writ, send a screenshot of the offending writ (or the UI error), and a screenshot of the writ that caused the problem. This ought to help me figure out what's going wrong.

2.7.7 2017-02-25
  • Stop crashing auf Deutsch. When building recipe ingredient lists out of ZOS-returned data, use item links, not names, as element keys. All WritWorthy text is still in US English. The only change here is that it can run correctly when the ESO client is set to German.

2.7.6 2017-02-25
  • Survive without Master Merchant. If missing, or if its database lacks some required materials, display "?g" for "unknown amount of gold" and don't count materials costs when calculating per-voucher cost.

2.7.5 2017-02-24
  • Add big red text to tooltip if current character cannot craft the required item due to missing motif, traits or recipe.

2.7.4 2017-02-20
  • Add a table of recipes to Provisioning so that the provisioning writs can show a material list even if the current character does not know the required recipe. Fixes "Recipe not found" errors for such writs.

2.7.3 2017-02-16
  • Settings UI: checkbox to enable/disable material list dump to chat. Too much clutter in the chat window.
  • Bugfix: Alchemy materials had poison/potion = Alkahest/Lorkhan's Tears swapped.

2.7.2 2017-02-14
  • Replace string matching with item_link parsing

2.7.1 2017-02-12
  • First release. Uses string matching that worked only for US English clients.
Optional Files (0)


Archived Files (14)
File Name
Version
Size
Author
Date
3.0.4
111kB
ziggr
06/20/17 11:56 AM
3.0.3
111kB
ziggr
06/18/17 10:59 PM
3.0.2
71kB
ziggr
05/28/17 01:18 PM
3.0.1
71kB
ziggr
05/22/17 01:03 PM
2.7.10
71kB
ziggr
04/04/17 05:06 PM
2.7.9
69kB
ziggr
03/23/17 12:40 AM
2.7.8
69kB
ziggr
03/23/17 12:08 AM
2.7.7
67kB
ziggr
02/26/17 05:33 PM
2.7.6
67kB
ziggr
02/25/17 05:01 PM
2.7.5
66kB
ziggr
02/24/17 11:13 PM
2.7.4
68kB
ziggr
02/20/17 02:57 PM
2.7.3
55kB
ziggr
02/16/17 03:44 PM
2.7.2
19kB
ziggr
02/15/17 12:12 AM
2.7.1
17kB
ziggr
02/12/17 08:54 PM


Post A Reply Comment Options
Unread Today, 06:51 PM  
ziggr
AddOn Author - Click to view AddOns

Forum posts: 3
File comments: 49
Uploads: 5
Originally Posted by Rhyono
Hopefully this will end up helping you?
Yeah, I've been watching that thread with eager anticipation.

Assuming that abilityIndex never changes, just skillIndex, then those API changes would really help.

Thanks for the pointer, and for nudging the API along toward ever-increasing levels of usefulness.

--Z
Last edited by ziggr : 06/22/17 at 11:06 PM.
Report comment to moderator  
Reply With Quote
Unread Today, 06:37 PM  
Rhyono
AddOn Author - Click to view AddOns

Forum posts: 236
File comments: 317
Uploads: 15
Hopefully this will end up helping you?
Report comment to moderator  
Reply With Quote
Unread Yesterday, 05:49 PM  
ziggr
AddOn Author - Click to view AddOns

Forum posts: 3
File comments: 49
Uploads: 5
Originally Posted by ban71
Getting this error only on woodworking writs with legendary quality...
Code:
bad argument #3 to 'string.format' (integer expected, got nil)
Yeah, turns out my whole "find the skill by index" code was based on a flawed assumption: skill index 6, ability 5, would be the same for everybody. Nope! So yeah, a lot of people have been getting various "nil" errors in WritWorthy this week.

I just uploaded WritWorthy 3.0.5 2017-06-22 which should no longer have these nil errors. I now search for skills by name (ew), and have supplied EN, DE, and FR skill names. I do not have the JP names, so if somebody with a JP client wants to help, I need some screenshots and a SavedVariables/WritWorthy.lua file.

Sorry about all the nil errors!

--Z
Report comment to moderator  
Reply With Quote
Unread Yesterday, 06:01 AM  
ban71

Forum posts: 0
File comments: 1
Uploads: 0
Getting this error only on woodworking writs with legendary quality...

Code:
bad argument #3 to 'string.format' (integer expected, got nil)
stack traceback:
	[C]: in function 'string.format'
	user:/AddOns/WritWorthy/WritWorthy_RequiredSkill.lua:28: in function 'RequiredSkill:ToKnow'
	user:/AddOns/WritWorthy/WritWorthy_Smithing.lua:890: in function 'Parser:ToKnowList'
	user:/AddOns/WritWorthy/WritWorthy.lua:76: in function 'WritWorthy.ToMatKnowList'
	user:/AddOns/WritWorthy/WritWorthy.lua:170: in function 'WritWorthy.TooltipInsertOurText'
	user:/AddOns/WritWorthy/WritWorthy.lua:291: in function 'SetBagItem'
	EsoUI/Ingame/Inventory/InventorySlot.lua:1864: in function '(anonymous)'
	EsoUI/Ingame/Utility/ZO_SlotUtil.lua:14: in function 'RunHandlers'
	EsoUI/Ingame/Inventory/InventorySlot.lua:2222: in function 'ZO_InventorySlot_OnMouseEnter'
	(tail call): ?
	(tail call): ?
	ZO_StackSplitSource_MouseEnter:3: in function '(main chunk)'
Report comment to moderator  
Reply With Quote
Unread 06/21/17, 11:38 AM  
ziggr
AddOn Author - Click to view AddOns

Forum posts: 3
File comments: 49
Uploads: 5
Re: Suggestion

Originally Posted by bahamin
Hello, just wanted to suggest a few things.

1. Rename lables to "Set", "Type", "Style" and "Trait" instead of "Detail 1 to 4"

2. It would be great if "Detail1" label shows full name of the set

3. Sort by Location and then Station. so different sets at same zone can be done faster

EDIT:
4. A tooltip by mouse rollover on "Detail1" contents which shows location of the set

Thanks for the great update, I love it

Best regards,
Diako @AVES7A (EU)
Thanks for the ideas.

1. The table is heterogeneous, not homogeneous: rows can hold smithing, alchemy, enchanting, and provisioning requests. Column 1 is actually Station, Solvent, Glyph level, and recipe. Column 2 is gear piece, alchemy reagent 1, and glyph name. And so on. "Detail" is about as (im)precise as I can make it without wasting screen space.

2. I originally did show the entire set name. Some of those names are long, and require a really wide column. I choose to abbreviate the long names.

3. Try the "Sort by Station". It does exactly what you want for sorting first by location, then by BS/CL/WW station. Because, like you, I really want a list of "where do I need to go?" and I only want to go to each place once.

4. A tooltip with set locations is interesting. I know that CraftStore has a table with this data. Thinking it over now...

Thank you again for the ideas. #3 in particular was so good that I went back in time and implemented it!

--Z
Last edited by ziggr : 06/21/17 at 11:42 AM.
Report comment to moderator  
Reply With Quote
Unread 06/21/17, 10:01 AM  
bahamin

Forum posts: 0
File comments: 3
Uploads: 0
Suggestion

Hello, just wanted to suggest a few things.

1. Rename lables to "Set", "Type", "Style" and "Trait" instead of "Detail 1 to 4"

2. It would be great if "Detail1" label shows full name of the set

3. Sort by Location and then Station. so different sets at same zone can be done faster

EDIT:
4. A tooltip by mouse rollover on "Detail1" contents which shows location of the set

Thanks for the great update, I love it

Best regards,
Diako @AVES7A (EU)
Last edited by bahamin : 06/21/17 at 10:04 AM.
Report comment to moderator  
Reply With Quote
Unread 06/20/17, 11:59 AM  
ziggr
AddOn Author - Click to view AddOns

Forum posts: 3
File comments: 49
Uploads: 5
Originally Posted by Tonyleila
getting this error

Code:
user:/AddOns/WritWorthy/WritWorthy_RequiredSkill.lua:94: operator < is not supported for nil < nil
stack traceback:
	user:/AddOns/WritWorthy/WritWorthy_RequiredSkill.lua:94: in function 'RequiredSkill:FetchUpgradeInfo'
	user:/AddOns/WritWorthy/WritWorthy_RequiredSkill.lua:73: in function 'RequiredSkill:IsMaxxed'
	(tail call): ?
Thank you for the report. Not sure why ZOS' GetSkilAbilityUpgradeInfo() would return nil for a temper expertise skill (perhaps the skill indices are not constant, but can vary from one person to another?). But in the case when GetAbilityUpgradeInfo() DOES return nil, I now skip the requirement check and no longer crash with a nil < nil error.

Bugfix/workaround is in version 3.0.4 2017-06-20, just uploaded.

--Z
Report comment to moderator  
Reply With Quote
Unread 06/20/17, 10:02 AM  
Tonyleila
 
Tonyleila's Avatar
AddOn Author - Click to view AddOns

Forum posts: 252
File comments: 531
Uploads: 6
getting this error

Code:
user:/AddOns/WritWorthy/WritWorthy_RequiredSkill.lua:94: operator < is not supported for nil < nil
stack traceback:
	user:/AddOns/WritWorthy/WritWorthy_RequiredSkill.lua:94: in function 'RequiredSkill:FetchUpgradeInfo'
	user:/AddOns/WritWorthy/WritWorthy_RequiredSkill.lua:73: in function 'RequiredSkill:IsMaxxed'
	(tail call): ?
	user:/AddOns/WritWorthy/WritWorthy_RequiredSkill.lua:27: in function 'RequiredSkill:ToKnow'
	user:/AddOns/WritWorthy/WritWorthy_Smithing.lua:890: in function 'Parser:ToKnowList'
	user:/AddOns/WritWorthy/WritWorthy.lua:76: in function 'WritWorthy.ToMatKnowList'
	user:/AddOns/WritWorthy/WritWorthy.lua:170: in function 'WritWorthy.TooltipInsertOurText'
	user:/AddOns/WritWorthy/WritWorthy.lua:291: in function 'THSetBagItemTooltip'
	user:/AddOns/TrophyHunters/TrophyHunters.lua:368: in function 'origMethod'
	user:/AddOns/CraftedPotions/CraftedPotions.lua:252: in function 'SetBagItem'
	EsoUI/Ingame/Inventory/InventorySlot.lua:1864: in function '(anonymous)'
	EsoUI/Ingame/Utility/ZO_SlotUtil.lua:14: in function 'RunHandlers'
	EsoUI/Ingame/Inventory/InventorySlot.lua:2222: in function 'ZO_InventorySlot_OnMouseEnter'
	(tail call): ?
	(tail call): ?
	ZO_StackSplitSource_MouseEnter:3: in function '(main chunk)'
	(tail call): ?
	(tail call): ?
	(tail call): ?
	(tail call): ?
	(tail call): ?
__________________
My Addons @ WoWInterface
Report comment to moderator  
Reply With Quote
Unread 06/19/17, 08:37 PM  
Mandragorane

Forum posts: 0
File comments: 17
Uploads: 0
What a cool master writ auto function !!
Report comment to moderator  
Reply With Quote
Unread 05/27/17, 02:24 PM  
ziggr
AddOn Author - Click to view AddOns

Forum posts: 3
File comments: 49
Uploads: 5
Originally Posted by Rhyono
If you want the current style strings for those, you can just look in my CS's styles file.
Heh. I was doing that very thing when you wrote. The API wiki just updated to version 19, there's a fresh copy of esoui source up, and I need to grab the new styles' quest IDs from your CraftStore update.

Will be updating this weekend.

Have I mentioned just how much I love all your work? You make my time in ESO so much more fun. Thank you for all your ESO 3.0 updates this week.

--Z
Report comment to moderator  
Reply With Quote
Unread 05/26/17, 10:40 PM  
Rhyono
AddOn Author - Click to view AddOns

Forum posts: 236
File comments: 317
Uploads: 15
If you want the current style strings for those, you can just look in my CS's styles file.
Report comment to moderator  
Reply With Quote
Unread 05/24/17, 10:41 AM  
ziggr
AddOn Author - Click to view AddOns

Forum posts: 3
File comments: 49
Uploads: 5
Re: Item Styles

Originally Posted by Weolo
By defining local variables it gives you a fallback system in case something is changed.
Clever idea. Thank you!
Report comment to moderator  
Reply With Quote
Unread 05/23/17, 10:44 AM  
Weolo
AddOn Author - Click to view AddOns

Forum posts: 46
File comments: 212
Uploads: 2
Item Styles

See if this helps, hopefully it will save you some time.
By defining local variables it gives you a fallback system in case something is changed.
Skinchanger did change

I always defined these ones as ESO never made a useful constant for them
Lua Code:
  1. local ITEMSTYLE_STALHRIM = ITEMSTYLE_STALHRIM or 53
  2. local ITEMSTYLE_SILKEN_RING = ITEMSTYLE_SILKEN_RING or 56
  3. local ITEMSTYLE_MAZZATUN = ITEMSTYLE_MAZZATUN or 57
  4. local ITEMSTYLE_GRIMHARLEQUIN = ITEMSTYLE_GRIMHARLEQUIN or 58
  5. local ITEMSTYLE_HOLLOWJACK = ITEMSTYLE_HOLLOWJACK or 59

These are the new ones and a local workaround for skinchanger. At least until I can example the Morrowind code.
Lua Code:
  1. local ITEMSTYLE_ENEMY_SKINCHANGER = ITEMSTYLE_ENEMY_SKINCHANGER or 42
  2. local ITEMSTYLE_ORDINATOR = ITEMSTYLE_ORDINATOR or 50
  3. local ITEMSTYLE_BUOYANT_ARMIGER = ITEMSTYLE_BUOYANT_ARMIGER or 52
  4. local ITEMSTYLE_ASHLANDER = ITEMSTYLE_ASHLANDER or 54

Morag tong is from ESO ITEMSTYLE_ORG_MORAG_TONG
Last edited by Weolo : 05/23/17 at 10:53 AM.
Report comment to moderator  
Reply With Quote
Unread 05/06/17, 11:00 AM  
Rhyono
AddOn Author - Click to view AddOns

Forum posts: 236
File comments: 317
Uploads: 15
Originally Posted by ziggr
Alchemy writs seem to require 16-20x potions or 80-100x poisons
Did they fix that then? Couple weeks ago I did multiple alchemy writs (max chemistry) and it only required 20 poisons, which I thought was weird because I make them in sets of 16.

Originally Posted by ziggr
The current sticking point for me is how to figure out exactly how many potions/poisons a writ requires, given its itemLink, before actually accepting the quest. I'm sure that's either buried in the itemLink somewhere, or constant (such as provisioning always requiring 8).
I think that it is a constant, because I haven't noticed anything telling in the links I've looked at before.

Originally Posted by ziggr
The only ingredient that seems to even have a meaningful cost is Perfect Roe and even that's cheap enough that a 10-voucher Psijic Ambrosia writ comes in at an affordable 2k/voucher.
That actually makes it the most expensive writ in the game per voucher as far as I know.

Side note: when you first open the writ reward container, if it has a master writ in it, WW will say that it couldn't parse it. This is because the writ is blank until you actually loot it. You might want to disable it in loot or however that container counts.
Last edited by Rhyono : 05/06/17 at 01:13 PM.
Report comment to moderator  
Reply With Quote
Unread 05/05/17, 07:48 PM  
ziggr
AddOn Author - Click to view AddOns

Forum posts: 3
File comments: 49
Uploads: 5
Originally Posted by Rhyono
The 10 voucher provisioning writs actually require 2 sets to be made.
Yeah, I've been meaning to update the Alchemy and Provisioning estimates to factor that in.
  • Alchemy writs seem to require 16-20x potions or 80-100x poisons: 4-5 clicks if you've maxed out the "Chemistry" skill.
  • Provisioning writs seem to require 8x items: 2 clicks if you've maxed out the "Brewer" and "Chef" skill.

So I need to multiply the materials cost, then divide by current Chemistry/Brewer/Chef.

The current sticking point for me is how to figure out exactly how many potions/poisons a writ requires, given its itemLink, before actually accepting the quest. I'm sure that's either buried in the itemLink somewhere, or constant (such as provisioning always requiring 8). But that requires research and work and I just haven't found it worth my effort. The only ingredient that seems to even have a meaningful cost is Perfect Roe and even that's cheap enough that a 10-voucher Psijic Ambrosia writ comes in at an affordable 2k/voucher.

--Z
Report comment to moderator  
Reply With Quote
Post A Reply



Category Jump: