Download
(53 Kb)
Download
Updated: 03/04/24 12:46 AM
Compatibility:
Endless Archive (9.2.5)
Updated:03/04/24 12:46 AM
Created:02/05/17 10:02 PM
Monthly downloads:150,045
Total downloads:4,828,440
Favorites:1,004
MD5:
LibLazyCrafting  Popular! (More than 5000 hits)
Version: 4.006
by: Dolgubon [More]
Addons currently utilizing this Library:

Dolgubon's Lazy Writ Crafter
Dolgubon's Lazy Set Crafter
Writ Worthy
Lazy Alchemy Learner
Leo's Trainer
Aldanga's Lazier Writ Precrafter


If you use one of those addons you MUST download this library!

What does LibLazyCrafting Do?
  • Allows addons to create and upgrade a piece of gear with just one function
  • Allows addons to request items to be crafted anywhere, not just at the relevant crafting station
  • Abstracts away the confusing material index and material amount Smithing parameters
  • Provides functions to determine all the materials required to create a piece of gear
  • Extends CraftSmithingItem to allow the specification of crafting set and quality
  • Extends crafting functions to allow the use of itemIds in consumables
  • Allows addons to queue multiple crafts of the same type with one function call
  • Allows addons to use some crafting related functions anywhere, not just at a crafting station
  • Tells you when an item your addon requested is crafted, and where in the bag it is located
If you want your addon to craft items, LibLazyCrafting can help!If there's a crafting functionality you'd like that isn't in LLC, let me know and I'll see what I can do for it.

Github link: https://github.com/Dolgubon/LibLazyCrafting

Note: The github link now has complete documentation in the readme - check there! (but furniture support not yet in live version)

General Usage

Note: The usage section is incomplete at this time. If you wish to use this library, let me know and I can help you out.
Add the following to your manifest.txt file:
## DependsOn: LibLazyCrafting

Next, register your addon with LibLazyCrafting (LLC) in the addon initialized function:

local interactionTable = LibLazyCrafting:AddRequestingAddon(String addonName, boolean autoCraft, function callbackFunction, string
optionalDebugAuthor, table optionalStyleTable)
String addonName: The name of the requesting addon.
boolean autoCraft: Whether requests from this addon should by default be crafted as soon as possible
function callbackFunction ( String event, integer CraftingType, table requestTable) : The function that should be called when a requested craft is either complete, or failed for some reason. Not all parameters will always be returned

string optionalDebugAuthor: This is optional and if you give it your name, then it'll do debug messages when the character name matches. Not sure how good the debug message coverage is.
table optionalStyleTable: This is used if you do no choice/max style for crafting equippable gear. Basically, these are what styles LLC can use. You can still manually choose to use other styles if you want.
returns: An interaction table with which your addon can call the various functions provided by LLC. This interaction table contains most of the functions LLC provides.

Smithing

Functions available:

CraftSmithingItem( integer patternIndex, integer materialIndex, integer materialQuantity, integer styleIndex, integer traitIndex, boolean useUniversalStyleItem, integer:nilable stationOverride, integer:nilable setIndex, integer:nilable quality, boolean:nilable autocraft, anything:nilable reference)
This is the main function in this module. patternIndex, materialIndex, materialQuantity, styleIndex, traitIndex, and useUniversalStyleItem act in the same way as the ZOS provided CraftSmithingItem's parameters do.
stationOverride: Allows you to set a specific crafting station. Default is the station you are at. If you are not at a station the function will fail.
setIndex: An integer determining the crafted set you wish to create. The default is 1, which signifies no set. A list of set indexes can be found in the Smithing.lua file, or with GetSetIndexes()
quality: One of the ITEM_QUALITY global constants. The default is white quality.
autocraft: Determines if the library will craft the item. If it is false, the library will keep it in queue until the requesting addon tells it to craft the item.
reference: This can be any type of data. It lets your addon to identify the request, to delete it, craft it, and know when it is complete. The default is the empty string.potencyId, essenceId, aspectId: If you want to create equipment with glyphs, use these parameters
quantity: How many to make
returns: The request table, which contains all the information about the craft request.

InteractionTable:isSmithingLevelValid(boolean isCP, integer lvl)
returns boolean isValidSmithingLevel -- This returns true if equipment can be created at that level

CraftSmithingItemByLevel -- The second and third parameters are replaced by boolean isCP, integer level. The materialIndex and materialQuantity conversions are handled internally by LLC, but it is otherwise the same as CraftSmithingItem

ImproveSmithingItem
GetCurrentSetInteractionIndex
GetMatRequirements
compileRequirements
GetSetIndexes

GetSmithingResultLink -- IN PROGRESS

AddExistingGlyphToGear(existingRequestTable, glyphBag, glyphSlot)
- Takes in the bag and glyph slots of an existing piece of gear, and an existing craft request table, and then will apply that glyph to the gear once the gear is created
AddGlyphToExistingGear(existingRequestTable, gearBag, gearSlot)
- Same as the above, but the gear already exists, and you're waiting on the glyph to be made

Provisioning

CraftProvisioningItemByRecipeId


Alchemy

CraftAlchemyPotion


Enchanting

CraftEnchantingGlyph
AddExistingGlyphToGear(existingRequestTable, glyphBag, glyphSlot)
- Takes in the bag and glyph slots of an existing piece of gear, and an existing craft request table, and then will apply that glyph to the gear once the gear is created
AddGlyphToExistingGear(existingRequestTable, gearBag, gearSlot)
- Same as the above, but the gear already exists, and you're waiting on the glyph to be madeEnchantAttributesToGlyphIds(isCP, level, enchantId, quality) returns potencyId, essenseId, aspectId



Examples


Note: LLC_Global is a global queue meant only for testing and exploration.

/script LLC_Global:CraftSmithingItemByLevel(3, true, 150,3 ,1 ,false, CRAFTING_TYPE_CLOTHIER, 0, 3,true) -- crafts a blue CP150 shoes
/script for i= 2, 25 do LLC_Global:CraftSmithingItemByLevel(3, false, i*2,3 ,1 ,false, CRAFTING_TYPE_CLOTHIER, 0, 3,true) end -- Crafts lvl 4,6, 8, 10, etc. up to lvl 50. The items will be blue shoes.

/script LLC_Global:CraftEnchantingItemId(45830, 45838, 45851) -- Crafts a Monumental Glyph of Flame Resist
Version 4.006:

Fixed a bug where the compile mat requirements for provisioning would set times to make to 1 (and then use 1 for calculations)

Version 4.005:

Recipe map is now up to date

Version 4.004:

API Bump
Now calculates material requirements for unknown recipes. This will fix the current known bug in set crafter where unknown recipes do not have material requirements in the materials scroll list.

Version 4.003:

Fixed a bug where attempting to use a request table to calculate the material requirements for provisioning items would fail if it was a returned table from a craft success event. In those, the timesToMake field is a quantity field.

Version 4.002:

Added LibLazyCrafting:AddListeningAddon(addonName, callbackFunction)
Addons can call this function to hear about everything created by LLC.
callBackFunction has the signature (String LLCEvent, String addonRequester, int station, table returnTable)
addonRequester is whatever addon asked for the item to be created. Is nil for some events.

Version 4.001:

Fixed a bug where generating recipe material requirements would not take into account increased quantities

Version 4.0:

Added support for the mat requirements for provisioning
Also increased version number to 4.0 :D

Version 3.0.866:

Fixed a bug when using the CraftProvisioningItemByRecipeId function

Version 3.0.865:

Added support for furniture crafting!
It uses the same functions as provisioning, but now trying to use the functions with furniture arguments will actually work. This new feature required changes to the queuing code of the library
Added some aliases for provisioning/furniture functions. Mainly, instead of saying CraftProvisioningItem you can say CraftFurnishingItem. This is solely for readability and understandability when using the functions; there is no actual difference in behaviour
Added CraftProvisioningItemByResultItemId. This will let you request to make a provisioning/furnishing item by passing the item ID of the item that you want
Added a Read Me with documentation on use and some specific functions, as well as some general useful and related info on the game API. Ideally, if you're interested you'll read it on the github, but it's still included in the zip.
Some minor code cleanup

Version 3.0.864:

Fixed a bug with smithing requirement compilation which caused errors if it was an improvement type job. This will fix a set crafter bug that occurred when a non white item was attempted to be crafted.
Fixed a bug with the consolidated set selection on keyboard that occurred when a search filter had been applied

Version 3.0.863:

Fixed a bug with compiling requirements

Version 3.0.862:

Fixed a bug with the consolidated stations on gamepad
Fixed a bug that could occasionally occur on Keyboard if there was a search string, and possibly under some other conditions
Jewelry upgrade mat requirements are now correct for lower levels of improvement skill
Fixed leaking variable
Now plays crafting sounds even in gamepad mode. Because crafting should be satisfying for the plebs using gamepad too

Version 3.0.861:

Fixed the jewelry mat amount requirements. This probably only affected the UI in set crafter
Added a nil check and to the switching station function. It should fix a rare, somewhat random bug

Version 3.0.86:

API Update
LLC is now compatible with the new consolidated crafting stations! Note that this consolidation makes it incompatible with Necrom, so only update after the maintenance.

Version 3.0.85:

API Bump

Version 3.0.84:

Added the new sets. It should scan for the new item links on the first load.

Version 3.0.83:

API Bump
Does NOT include the new sets, since I don't have PTS. I'll add those in after the patch drops. Also won't scan until that happens
Tightened the check for the improvement skill for jewelry. Will now no longer craft past green if you do not have the maximum improvement skill level

Version 3.0.82:

Fixed a bug where if the smart style was selected in writ crafter you would obtain an error

Version 3.0.81:

API Bump
Added Galen sets
Smart style addition. AKA use lowest count of style stone
Add a 'reverse' material function by request for o7ac0n

Version 3.0.80:

API Bump

Version 3.0.79:

API Bump
A bugfix for newer jewelry sets. (Thanks deinspanjer!)
Note that new set ids haven't been added in bc I don't have PTS anymore. Will do another upload tomorrow to add them in.

Version 3.0.78:

API Bump
Added sets from last patch

Version 3.0.77:

API bump

Version 3.076:

Using correct API Version. Should fix the super long scrape.

Version 3.075:

API Bump

Version 3.074:

Fixed a bug with the home statino marker integration which occurred when making non set items

Version 3.073:

Fixed the issues with HomeStationMarker integration

Version 3.072:

Added new sets

Version 3.071:

Fixed a minor typo in the home station marker integration

Version 3.0.7:

API Bump
Added integration with HomeStationMarker. If your addon uses LibLazyCrafting, it now has automatic integration!
If an addon calls the register function twice, the error message will now say which one did it

Version 3.0.6:

API Version bump

Version 3.0.5:

Added Legacy of Karth, which had accidentally not been added. LLC will need to scan, but there's been improvements made so that it doesn't need to scan nearly as much, and should be much faster

Version 3.0.4:

Added Markarth crafted sets. LLC will need to scan again. Sorry!

Version 3.0.3:

API Bump

Version 3.0.2:

API Bump
Added Indeko glyphs to the enchanting info tables
Fixed a bug where if multiple addons called the craft interact function, the no further craft event would be thrown
Fixed a bug where smithing items would never craft more than 6 at a time
Fixed a bug with crafting requirement compilation where some CP items were said to require the wrong materials
Added a check to inventory space when checking if an item can be crafted
Added a function to compile all non craftable reasons for an addon's queue. Currently only works for smithing
Adapted to a ZOS issue where pattern ids for some sets for jewelry were swapped, causing jewelry queued for those sets to make the wrong item

Version 3.01:

Added code to deal with Stuhn's Favour jewelry pattern indexes being swapped

Version 3.0:

Fixed a bug where choosing an enchanting level for glyphs or to craft would cause errors if it was not a valid enchanting level. Now, it'll just get the level just before (i.e. if you choose lvl 12 it'll give you lvl 10)
Note: Also went to 3.0 to stop having so many 9s

Version 2.999:

Fixed a bug where sometimes New Moon Acolyte gear would not be crafted
Fixed a bug where if LibStub was not running there would be an error
Fixed a bug where if a non auto craft item's base item was crafted it would not improve it automatically

Version 2.998:

Fixed backwards compatability bug

Version 2.997:

Fixed a bug where there would sometimes be a lua error in the get materials

Version 2.996:

API Bump
Added Greymoor sets
Added quantity options to Enchanting (Thanks to Timothy Mclane/Aldanga - not sure any of the code ended up there but it definitely gave me the motivation to finish it!)
Added full support for multicraft for Smithing and created enchanted and improved gear
Removed the override multicraft parameter, as it's no longer needed
Added LLC_FREE_STYLE_CHOICE - You can now specify a table when registering your addon, and the library will use this table to decide which style mat to use (based on which style has the most stones available)
Fix to CancelItem, will now work as expected (Thanks LeandroSilva)
The create link from arguments option will no longer throw errors if the parameters it is given are invalid, and will instead return empty string

Version 2.995: (I'm not sure what happened to 2.994...)

Fixed a bug where the event 'no further items craftable' would not be thrown on craft completion
Added some minor error checking to the smithing get item link function
Fixed some old version numbers

Version 2.993:

Added a function IsItemLinkRobe to tell apart robes and Jerkins
When computing links, no longer returns Jerkins for Robes and vice versa

Version 2.992:

LLC_NO_FURTHER_CRAFT_POSSIBLE is now thrown when there are no further interactions that can be done at a station
Improved some extremely rare error messages
Added LLC_CRAFT_PARTIAL_IMPROVEMENT. This event is thrown when an item has been improved from white but is not yet at the final quality
Fixed a bug where material requirements for improvement requests where the item is at greater than white quality would include materials needed to improve from white to the final quality rather than skipping already used mats.
Fixed a bug where material requirements for dual enchanting and equipment requests would include equipment requirements even if the equipment was complete
Removed station from the internal material requirements function parameters, as it's already listed in the request

Version 2.991:

Removed some extra debug statements

Version 2.99:

Enchanting now sends an INITIAL_CRAFT_SUCCESS event when it's a dual smithing/enchanting request
Fixed a bug where the check for doubly registered addons was not working
Added a function to get the table of a registered addon by name
Moved Smithing's INITAL_CRAFT_SUCCESS event throws to after all associated LLC code has been run
Improvement requests now properly contain the requirements for enchanting
Added GetSmithingResultItemLink (or whatever the function name is)

Version 2.98:

Fixed a bug some people were encountering where there was a lua error after loadscreens

Version 2.97:

Removed debug messages

Version 2.96:

Added support for item links for
Will now scan once per game update to find all crafted set IDs, and save it in your saved variables
Added a hardcoded fix for New Moon Acolyte jewelry (pattern ids were swapped by ZOS)

Version 2.95:

Added Dragonhold sets

Version 2.94:

API Bump
- Note that that is all that has been changed

Version 2.93:

Fixed the error in the last version

Version 2.92:

Fixed a lua error in the last version

Version 2.91:

Fixed an issue where if the nonMulticraftOverride was set to true it wouldn't check if there was enough materials beyond those required for the first item

Version 2.9:

Added an override to make use of the multicraft. Note for add-on authors: It does not work for improving items, nor does it return bag slots of all new items!

Version 2.8:

Fixed the issue where, if creating two or more glyph gear combo items, it would make n-1 extra glyphs
Items in ESO+ subscriber bank are now prioritized over items in the backpack, (Enchanting and Alchemy only. Impossible for other crafts)
Updated for the next patch. It works, however does not currently take advantage of the new multicrafting capabilities

Version 2.71:

Fixed the lua error that was occurring when crafting glyphs

Version 2.7:

Actually fixed the issue where not knowing one or more runes in a requested glyph would result in two glyphs being created

Version 2.6:

Enchanting support added. (might give more detailed later)

Version 2.5:

Added the LibLazyCrafting.INDEX_NO_SET constant

Version 2.4:

API Bump
Did some backend modifications in preparation for adding Furniture support
Gear crafting now uses the set Ids provided by the game
Added the ## isLibrary manifest command
Added Elsweyr sets
Fixed an issue where not knowing one or more runes in a requested glyph would result in two glyphs being created
Fixed a bug where the library was not properly clearing the craftNow fields in request tables
Added the ability to queue an enchanted piece of gear. The API for these are:

CraftSmithingItem(patternIndex, materialIndex, materialQuantity, styleIndex, traitIndex, useUniversalStyleItem, stationOverride, setIndex, quality, autocraft, reference, potencyId, essenceId, aspectId) (Added potencyId, essenceId and aspectId at the end)
CraftSmithingItemByLevel(patternIndex, isCP , level, styleIndex, traitIndex,
useUniversalStyleItem, stationOverride, setIndex, quality, autocraft, reference, potencyId, essenceId, aspectId)
AddExistingGlyphToGear(existingRequestTable, glyphBag, glyphSlot)
- Takes in the bag and glyph slots of an existing piece of gear, and an existing craft request table, and then will apply that glyph to the gear once the gear is created
AddGlyphToExistingGear(existingRequestTable, gearBag, gearSlot)
- Same as the above, but the gear already exists, and you're waiting on the glyph to be made

Version 2.33:

Updated version numbers so that it doesn't conflict with old versions.

Version 2.32:

The library now comes in a standalone library format, similar to many other libraries. If you use an addon which uses this library, you will need to download it (Writ Worthy, Dolgubon's Lazy Set Craft and Dolgubon's Lazy Writ Crafter)
API version 'bump'

Version 2.31:

Fixed a type causing lua errors: CRAFTING_TYPE_JEWELRY -> CRAFTING_TYPE_JEWELRYCRAFTING

Version 2.3:

Added Murkmire sets.
Added a debug option and a throw error function in the addon. Not really used yet, but might add more error throwing to help debugging in the future.

Version 2.21:

Fixed a bug where improving a jewelry item to green would use 2 improvement mats rather than one.
Fixed a bug where the number of improvement mats for jewelry given by the Compile Requirements would use the old amounts (Thanks to @Ziggr)

Version 2.2:

Crown Mimic Stones will now be used even if the style stone is missing.
Old versions of the widgets will no longer be overwritten by a new version.
Will now work on PTS.
Code cleanup: Some unnecessary code has been deleted, and some previously global fields are now local.

Version 2.1:

Improvement level checking now uses textures, which is non language dependent.
Now checks the crafting skill for Blacksmithing, Clothing, and Woodworking to see if the user has a high enough skill to make an item.
Compiling mats now works for Jewelry Crafting.
Jewelry Crafting will no longer fail due to lack of style mats.
Added a new field to the Craft Request tables, craftNow. By default not set (i.e. set to nil) if it is true, the library will craft the item when at a station. It can only be set to true while at a station, and if the user exits the station it will be set back to false automatically. CraftAllItems and CraftItem now change this new field, and their old functionality has been taken over by the new functions SetAllAutoCraft and SetAutoCraft.
Added craftInteract to the function table. This is the function which is called when the player interacts with a crafting station. An addon can call it to force the library to rescan the queue and see if there is something it can craft.
Enchanting file added back in.

Version 2.0: (Jewelry Crafting)

Preliminary support for jewelry crafting. - Ziggr
Refactored checks for style and trait knowledge. - Ziggr
Fixed the check for the improvement skill in languages other than English. - Ziggr
Added checks to determine if the user has enough mats to craft Alchemy and Provisioning items.
Changed to use GetItemLinkItemId instead of the custom version. If not on PTS, it will still use the custom version.

Version 1.9: (Release #2 - Smithing update)

Moved smithing timestamps to a unique identifier. The identifiers are integers, and incremented each time an item is added to the queue.
Fixed issues with backwards compatibility - if an old version was loaded before a newer version, an event handler would not be properly overridden. The old version would then change a local variable in the old version, but not a local variable in the new version which should have been changed.

Version 1.9:

Uses of sortCraftQueue have been removed, in favour of sticking solely with table.remove and table.insert. table.sort is unstable, which caused a rare double crafting issue when multiple items were added at the exact same timestamp while at a crafting station.
Fixed a bug where incorrect material requirements (light materials) would be returned for medium armour.

Version 1.8:

Created a new function to throw events to clean up some code.
Added two new events: LLC_NO_FURTHER_CRAFT_POSSIBLE and LLC_INITIAL_CRAFT_SUCCESS.
LLC_NO_FURTHER_CRAFT_POSSIBLE: Thrown when no more items can be made at the current station
LLC_INITIAL_CRAFT_SUCCESS: Thrown when the white item is created, but must be further improved before being complete.
Fixed a bug where creating multiple items with green or higher quality would cause some white items to be made too many times.
The EndInteraction function was previously removed from the main LLC.lua file, and has been added back in.
Added a check to determine if a CP and level combination is valid.
Added the return of the requestTable to more craft event places.
Fixed a bug where the wrong improvement mat requirements would be given.
Fixed a bug where sometimes the wrong ability would be checked when determining the improvement skill level.

Version 1.7:

Added Material totals for Smithing.
Changed the interaction tables to be slightly more OOP by taking in self.
Removed double crafting bugs. (Pretty confident about this one!)
Fixed an off by one error in smithing
Added a return of the request table to the smithing functions.

Version 1.6:

Possibly fixed a double crafting issue.
Added LibLazyCrafting:IsPerformingCraftProcess()

Version 1.5:

Fixed a bug in provisioning and alchemy whereby the library would fail to recognize an item was crafted if it created a new stack. - fix by ziggr

Version 1.4:

Added the Clockwork City sets.

Version 1.3:

Fixed various typos in the Alchemy file.
Went back to GetTimeStamp() in the smithing file (as it should have been. Sorry!)
Added back timesToMake as an optional parameter in the Alchemy file.
Replaced the body of the crafting complete function with the stackableCraftingComplete function in the alchemy file.
Removed the FindIncreasedSlotIndex from the Alchemy file, as it was already contained in the main LLC file.

Version 1.2:

Fixed a LUA error that would appear when using Provisioning functions.

Version 1.1:

Now supports all types of crafting! (Minus furniture) - Thank you to Ziggr for creating the functions required to support it!
Updating current version. Probably has various bugfixes. The library has been updated over time as needed with various bugfixes and changes, and has just not been updated here on esoui.


Version 1:

Various changes, bugfixes, and improvements, mostly based on what I needed. Not a comprehensive list.
- Added an option reference when you create a craft request
- Added the ability to cancel craft requests based on position in queue or by reference
- Fixed an error where the craft queue was not updating properly
-
Optional Files (0)


Archived Files (83)
File Name
Version
Size
Uploader
Date
4.005
53kB
Dolgubon
02/28/24 07:23 PM
4.004
52kB
Dolgubon
02/27/24 11:05 PM
4.003
45kB
Dolgubon
02/15/24 06:39 PM
4.002
45kB
Dolgubon
02/11/24 10:19 PM
4.001
45kB
Dolgubon
01/19/24 10:02 AM
4.0
45kB
Dolgubon
01/15/24 11:08 AM
3.0866
44kB
Dolgubon
01/13/24 06:12 PM
3.0865
44kB
Dolgubon
01/10/24 05:57 PM
3.0864
39kB
Dolgubon
11/15/23 09:18 PM
3.0863
39kB
Dolgubon
11/04/23 11:03 PM
3.0863
39kB
Dolgubon
11/03/23 09:29 PM
3.0861
39kB
Dolgubon
10/30/23 09:05 PM
3.086
39kB
Dolgubon
10/29/23 10:43 PM
3.085
39kB
Dolgubon
08/20/23 10:26 PM
3.084
39kB
Dolgubon
06/13/23 07:22 PM
3.083
38kB
Dolgubon
06/04/23 09:32 PM
3.082
38kB
Dolgubon
03/13/23 11:19 PM
3.081
38kB
Dolgubon
03/12/23 10:33 PM
3.080
38kB
Dolgubon
08/22/22 04:53 PM
3.079
38kB
Dolgubon
06/05/22 09:25 PM
3.078
38kB
Dolgubon
03/13/22 02:32 PM
3.077
38kB
Dolgubon
11/01/21 12:42 AM
3.076
38kB
Dolgubon
08/23/21 08:48 AM
3.075
38kB
Dolgubon
08/23/21 08:19 AM
3.075
38kB
Dolgubon
08/22/21 11:57 PM
3.074
38kB
Dolgubon
06/19/21 02:53 PM
3.073
38kB
Dolgubon
06/12/21 09:36 AM
3.072
38kB
Dolgubon
06/03/21 09:24 PM
3.071
38kB
Dolgubon
05/31/21 06:31 PM
3.07
38kB
Dolgubon
05/30/21 09:51 PM
3.06
37kB
Dolgubon
03/07/21 06:30 PM
3.05
37kB
Dolgubon
12/19/20 03:04 PM
3.04
37kB
Dolgubon
11/22/20 06:05 AM
3.03
36kB
Dolgubon
11/01/20 08:07 PM
3.02
36kB
Dolgubon
08/23/20 04:16 PM
3.01
35kB
Dolgubon
06/24/20 10:14 PM
3.0
35kB
Dolgubon
06/09/20 06:35 PM
2.999
35kB
Dolgubon
05/16/20 07:34 PM
2.999
35kB
Dolgubon
05/16/20 07:23 PM
2.998
35kB
Dolgubon
05/03/20 05:37 AM
2.997
35kB
Dolgubon
05/03/20 01:03 AM
2.996
35kB
Dolgubon
05/02/20 10:19 PM
2.995
33kB
Dolgubon
04/08/20 06:27 PM
2.995
33kB
Dolgubon
02/23/20 07:30 PM
2.993
33kB
Dolgubon
01/04/20 10:55 PM
2.992
33kB
Dolgubon
01/03/20 09:25 PM
2.991
33kB
Dolgubon
12/29/19 03:30 PM
2.99
33kB
Dolgubon
12/28/19 11:20 PM
2.98
32kB
Dolgubon
11/22/19 08:56 PM
2.97
32kB
Dolgubon
11/17/19 07:24 PM
2.96
32kB
Dolgubon
11/16/19 09:22 PM
2.95
31kB
Dolgubon
10/27/19 01:24 PM
2.94
31kB
Dolgubon
10/20/19 08:34 PM
2.93
31kB
Dolgubon
08/31/19 02:58 PM
2.92
31kB
Dolgubon
08/31/19 02:29 PM
2.91
31kB
Dolgubon
08/31/19 01:13 PM
2.9
31kB
Dolgubon
08/30/19 06:30 PM
2.8
31kB
Dolgubon
08/11/19 09:33 PM
2.71
31kB
Dolgubon
07/06/19 02:33 PM
2.7
31kB
Dolgubon
07/06/19 12:47 PM
2.6
30kB
Dolgubon
06/30/19 07:44 PM
2.5
28kB
Dolgubon
05/27/19 08:26 PM
2.4
28kB
Dolgubon
05/19/19 04:54 PM
2.33
26kB
Dolgubon
02/25/19 10:42 PM
2.32
26kB
Dolgubon
02/21/19 08:46 PM
2.31
25kB
Dolgubon
10/21/18 10:25 PM
2.23
25kB
Dolgubon
10/21/18 08:56 PM
2.21
25kB
Dolgubon
08/19/18 03:57 PM
2.2
22kB
Dolgubon
07/21/18 09:19 PM
2.1
25kB
Dolgubon
05/21/18 02:44 AM
2.0
22kB
Dolgubon
05/01/18 11:58 AM
1.9
22kB
Dolgubon
12/22/17 11:29 AM
1.9
22kB
Dolgubon
12/15/17 10:39 AM
1.8
21kB
Dolgubon
12/14/17 11:54 AM
1.7
21kB
Dolgubon
12/13/17 10:44 AM
1.6
19kB
Dolgubon
12/10/17 10:47 AM
1.5
18kB
Dolgubon
11/04/17 01:13 PM
1.4
18kB
Dolgubon
10/22/17 12:10 AM
1.3
17kB
Dolgubon
08/27/17 07:10 AM
1.2
19kB
Dolgubon
08/24/17 01:53 PM
1.1
16kB
Dolgubon
08/14/17 03:27 AM
1
14kB
Dolgubon
05/20/17 05:24 PM
0.1
12kB
Dolgubon
02/05/17 10:02 PM


Post A Reply Comment Options
Unread 11/04/23, 10:29 AM  
PhnxZ
AddOn Author - Click to view AddOns

Forum posts: 8
File comments: 180
Uploads: 1
Error after todays update

I'm getting the following error after the 3.0862 update:
Code:
user:/AddOns/LibLazyCrafting/Smithing.lua:1463: function expected instead of nil
stack traceback:
user:/AddOns/LibLazyCrafting/Smithing.lua:1463: in function 'compileRequirements'
<Locals> request = [table:1]{smithingQuantity = 1, autocraft = T, reference = 31, useUniversalStyleItem = F, timestamp = 1, Requester = "DolgubonsLazySetCrafter", trait = 19, materialIndex = 8, materialQuantity = 8, style = 4, quality = 4, pattern = 8, setIndex = 583, station = 1, type = "smithing"}, requirements = [table:2]{33253 = 1}, station = 1, matId = 4487, traitLink = "|H0:item:23173:0:1:0:0:0:0:0:0...", improvementLevel = 3, i = 1 </Locals>
(tail call): ?
(tail call): ?
user:/AddOns/DolgubonsLazySetCrafter/Crafter.lua:270: in function 'addRequirements'
<Locals> returnedTable = [table:1], addAmounts = T, parity = 1 </Locals>
user:/AddOns/DolgubonsLazySetCrafter/Crafter.lua:399: in function 'addToQueue'
<Locals> requestTable = [table:3]{EnchantQuality = 1, Station = 1, Enchant = ""}, craftMultiplier = 1, pattern = 8, isCP = F, styleIndex = 4, station = 1, trait = 19, setIndex = 583, quality = 4, level = 16, requestTableCopy = [table:4]{Link = "|H1:item:172932:23:16:0:0:0:0:...", Reference = 31, EnchantQuality = 1, Station = 1, Enchant = ""}, CraftRequestTable = [table:5]{1 = 8}, returnedTable = [table:1] </Locals>
user:/AddOns/DolgubonsLazySetCrafter/Crafter.lua:505: in function 'addPatternToQueue'
<Locals> patternButton = ud, i = 1, shallowTwoItemCopy = user:/AddOns/DolgubonsLazySetCrafter/Crafter.lua:409, comboBoxes = [table:6]{}, requestTable = [table:3], pattern = 8, station = 1, trait = 19, traitTable = ud, enchantTable = ud, level = 16, isCP = F, setIndex = 583, quality = 4, craftMultiplier = 1 </Locals>
user:/AddOns/DolgubonsLazySetCrafter/Crafter.lua:703: in function 'DolgubonSetCrafter.compileMatRequirements'
<Locals> patternButtonSelected = T, i = 1 </Locals>
user:/AddOns/DolgubonsLazySetCrafter/Crafter.lua:714: in function 'DolgubonSetCrafter.craft'
DolgubonSetCrafterWindowLeftAdd_Clicked:4: in function '(main chunk)'
<Locals> self = ud, button = 1, ctrl = F, alt = F, shift = F, command = F </Locals>
I rolled back to 3.0861 and it's working fine
Report comment to moderator  
Reply With Quote
Unread 11/04/23, 01:06 AM  
ApoAlaia

Forum posts: 6
File comments: 138
Uploads: 0
Re: Re: Gamepad UI Error

Originally Posted by Dolgubon
Originally Posted by soundexpression
I'm getting the following error when using writworthy in gamepad mode on the new crafting stations

/EsoUI/Ingame/Crafting/Keyboard/Smithing_Keyboard.lua:613: attempt to index a nil value
stack traceback:
/EsoUI/Ingame/Crafting/Keyboard/Smithing_Keyboard.lua:613: in function 'ZO_Smithing:RefreshSetCategories'
user:/AddOns/LibLazyCrafting/Smithing.lua:838: in function 'setCorrectSetIndex_ConsolidatedStation'
user:/AddOns/LibLazyCrafting/Smithing.lua:870: in function 'LLC_SmithingCraftInteraction'
user:/AddOns/LibLazyCrafting/LibLazyCrafting.lua:747: in function 'CraftInteract'
The bug should be fixed in the new version
Thank you

I only got this issue if 'FCO CraftFilter' was enabled so I reported it in the wrong addon
Report comment to moderator  
Reply With Quote
Unread 11/03/23, 09:30 PM  
Dolgubon
 
Dolgubon's Avatar
AddOn Author - Click to view AddOns

Forum posts: 408
File comments: 885
Uploads: 21
Re: Gamepad UI Error

Originally Posted by soundexpression
I'm getting the following error when using writworthy in gamepad mode on the new crafting stations

/EsoUI/Ingame/Crafting/Keyboard/Smithing_Keyboard.lua:613: attempt to index a nil value
stack traceback:
/EsoUI/Ingame/Crafting/Keyboard/Smithing_Keyboard.lua:613: in function 'ZO_Smithing:RefreshSetCategories'
user:/AddOns/LibLazyCrafting/Smithing.lua:838: in function 'setCorrectSetIndex_ConsolidatedStation'
user:/AddOns/LibLazyCrafting/Smithing.lua:870: in function 'LLC_SmithingCraftInteraction'
user:/AddOns/LibLazyCrafting/LibLazyCrafting.lua:747: in function 'CraftInteract'
The bug should be fixed in the new version
Report comment to moderator  
Reply With Quote
Unread 11/02/23, 10:19 PM  
soundexpression

Forum posts: 0
File comments: 11
Uploads: 0
Re: Re: Re: Re: Gamepad UI Error

Originally Posted by Sharlikran
Originally Posted by soundexpression
I have a keybind to open the writ worthy ui which allows me to use a mouse and keyboard to work with that ui. but when I go to a crafting station it uses gamepad mode since I have that setting to 'always on'. It used to work with individual set stations. no doubt there would be automation limitations in gamepad mode. Thought I'd post the error here to see if someone smarter than me can figure it out though.
I have the same kind of keybind set and I don't have the error but I will try always on and see if that changes anything.

Although once the WW UI is open nothing automatically starts crafting and I don't see any settings under the WritWorthy settings to turn any automated mode on. So I'm still confused as to how the error occurs when I don't have it at all.
I didn't mean the WW UI starts crafting, but that's where I select which ones to auto craft and then I usually close it. I hope you can replicate it so I don't feel insane . I did, however, work out a fix because it was bugging me. This function replacement changes the passed variable name so it more accurately reflects what is being passed, and I'm using the limited public API to find the index within the consolidated station. I tested in Gamepad and Keyboard modes, both appear to work. might not be the most efficient but it's clean and seemingly effective so far.

local function setCorrectSetIndex_ConsolidatedStation(setID)
if not ZO_Smithing_IsConsolidatedStationCraftingMode() then
return
end
if GetActiveConsolidatedSmithingItemSetId() == setID or setID==INDEX_NO_SET then
return
end
-- Loop through all consolidated item sets by index to find the match
for setIndex = 1, GetNumConsolidatedSmithingSets() do
if GetConsolidatedSmithingItemSetIdByIndex(setIndex) == setID then
SetActiveConsolidatedSmithingSetByIndex(setIndex)
break
end
end


-- Original
-- if SMITHING.setNodeLookupData[setIndex] == nil then
-- ZO_Smithing:RefreshSetCategories()
-- end
-- local setIndexToSelect = SMITHING.setNodeLookupData[setIndex].data.dataSource:GetSetIndex()
-- SMITHING.categoryTree:SelectNode( SMITHING.setNodeLookupData[setIndex])
-- SetActiveConsolidatedSmithingSetByIndex(setIndexToSelect)

end
Report comment to moderator  
Reply With Quote
Unread 11/02/23, 06:48 PM  
Sharlikran
 
Sharlikran's Avatar
AddOn Author - Click to view AddOns

Forum posts: 626
File comments: 2002
Uploads: 15
Re: Re: Re: Gamepad UI Error

Originally Posted by soundexpression
I have a keybind to open the writ worthy ui which allows me to use a mouse and keyboard to work with that ui. but when I go to a crafting station it uses gamepad mode since I have that setting to 'always on'. It used to work with individual set stations. no doubt there would be automation limitations in gamepad mode. Thought I'd post the error here to see if someone smarter than me can figure it out though.
I have the same kind of keybind set and I don't have the error but I will try always on and see if that changes anything.

Although once the WW UI is open nothing automatically starts crafting and I don't see any settings under the WritWorthy settings to turn any automated mode on. So I'm still confused as to how the error occurs when I don't have it at all.
Last edited by Sharlikran : 11/02/23 at 06:54 PM.
Report comment to moderator  
Reply With Quote
Unread 11/02/23, 04:43 PM  
soundexpression

Forum posts: 0
File comments: 11
Uploads: 0
Re: Re: Gamepad UI Error

Originally Posted by Sharlikran
Originally Posted by soundexpression
I'm getting the following error when using writworthy in gamepad mode on the new crafting stations

/EsoUI/Ingame/Crafting/Keyboard/Smithing_Keyboard.lua:613: attempt to index a nil value
stack traceback:
/EsoUI/Ingame/Crafting/Keyboard/Smithing_Keyboard.lua:613: in function 'ZO_Smithing:RefreshSetCategories'
user:/AddOns/LibLazyCrafting/Smithing.lua:838: in function 'setCorrectSetIndex_ConsolidatedStation'
user:/AddOns/LibLazyCrafting/Smithing.lua:870: in function 'LLC_SmithingCraftInteraction'
user:/AddOns/LibLazyCrafting/LibLazyCrafting.lua:747: in function 'CraftInteract'
There is no way to explain the limitations of Gamepad mode in depth and the keybindings for it. As the error mentions the vanilla Smithing code can't access what it is looking for from Keyboard mode because that's not available in Gamepad mode. Which is why for the most part there is little support for Gamepad mode. This is a limitation of the Gamepad UI.

I can test with a gamepad and I have no way to use the WW UI in gamepad mode so I don't see how you get it open without opening it first in keyboard mode. In addition to that I don't get that error even if I do use A from gamepad mode first.
I have a keybind to open the writ worthy ui which allows me to use a mouse and keyboard to work with that ui. but when I go to a crafting station it uses gamepad mode since I have that setting to 'always on'. It used to work with individual set stations. no doubt there would be automation limitations in gamepad mode. Thought I'd post the error here to see if someone smarter than me can figure it out though.
Report comment to moderator  
Reply With Quote
Unread 11/02/23, 04:06 PM  
Sharlikran
 
Sharlikran's Avatar
AddOn Author - Click to view AddOns

Forum posts: 626
File comments: 2002
Uploads: 15
Re: Gamepad UI Error

Originally Posted by soundexpression
I'm getting the following error when using writworthy in gamepad mode on the new crafting stations

/EsoUI/Ingame/Crafting/Keyboard/Smithing_Keyboard.lua:613: attempt to index a nil value
stack traceback:
/EsoUI/Ingame/Crafting/Keyboard/Smithing_Keyboard.lua:613: in function 'ZO_Smithing:RefreshSetCategories'
user:/AddOns/LibLazyCrafting/Smithing.lua:838: in function 'setCorrectSetIndex_ConsolidatedStation'
user:/AddOns/LibLazyCrafting/Smithing.lua:870: in function 'LLC_SmithingCraftInteraction'
user:/AddOns/LibLazyCrafting/LibLazyCrafting.lua:747: in function 'CraftInteract'
There is no way to explain the limitations of Gamepad mode in depth and the keybindings for it. As the error mentions the vanilla Smithing code can't access what it is looking for from Keyboard mode because that's not available in Gamepad mode. Which is why for the most part there is little support for Gamepad mode. This is a limitation of the Gamepad UI.

I can test with a gamepad and I have no way to use the WW UI in gamepad mode so I don't see how you get it open without opening it first in keyboard mode. In addition to that I don't get that error even if I do use A from gamepad mode first.
Last edited by Sharlikran : 11/02/23 at 04:07 PM.
Report comment to moderator  
Reply With Quote
Unread 11/01/23, 10:35 PM  
soundexpression

Forum posts: 0
File comments: 11
Uploads: 0
Gamepad UI Error

I'm getting the following error when using writworthy in gamepad mode on the new crafting stations

/EsoUI/Ingame/Crafting/Keyboard/Smithing_Keyboard.lua:613: attempt to index a nil value
stack traceback:
/EsoUI/Ingame/Crafting/Keyboard/Smithing_Keyboard.lua:613: in function 'ZO_Smithing:RefreshSetCategories'
user:/AddOns/LibLazyCrafting/Smithing.lua:838: in function 'setCorrectSetIndex_ConsolidatedStation'
user:/AddOns/LibLazyCrafting/Smithing.lua:870: in function 'LLC_SmithingCraftInteraction'
user:/AddOns/LibLazyCrafting/LibLazyCrafting.lua:747: in function 'CraftInteract'
Report comment to moderator  
Reply With Quote
Unread 10/26/23, 12:47 PM  
Dolgubon
 
Dolgubon's Avatar
AddOn Author - Click to view AddOns

Forum posts: 408
File comments: 885
Uploads: 21
Re: Understanding item IDs in setInfo

Originally Posted by robert.labrie
Can someone explain the item IDs in setinfo? It seems to be the "base" for each type and set (axe, robe, bow, etc) so then do you just keep adding 1 to get to the next item (shoes is robe+1, mace is axe+1)? Is the trait part of the item ID or a unique attribute in the itemLink? If so, how is that added? I'm trying to rifle the code to understand it but if anyone knows off hand I'd be thankful


Nope!
The current main purpose of the Item IDs is to be a 'identifier' for a specific set during scanning. In other words, if I have 46499 as in ID in that table, (Death's wind, Axe, no trait, set ID 2 - probably not actually 2) then the addon knows that any items with a set ID of 2 are part of a crafted set that requires 2 known traits. That's all that it's used for, and realistically I don't think I need the item IDs for robe/bow/necklace anymore.
But they used to have an older use. When the Lib was originally created, there was not a GetItemLinkItemSetInfo function. (Probably) As such, they were used to determine what set the station you were currently interacting is. The addon would ask the crafting station 'give me the item link of an Axe (or robe, or bow etc.) with no trait' and then compare it to the ones hardcoded in the file. Once it found the item ID 46499 it would then be able to say it's at the death's wind blacksmithing crafting station.
This function isn't needed anymore since now we can just ask the game what set any arbitrary item link is from.



Originally Posted by robert.labrie
Can someone explain the item IDs in setinfo? It seems to be the "base" for each type and set (axe, robe, bow, etc) so then do you just keep adding 1 to get to the next item (shoes is robe+1, mace is axe+1)?

So. This +1 thing. While that's not actually what the table is for, a similar idea is used in the library. Ever noticed the scanning from the addon whenever there's a new major game patch? Or that the library has saved variables? (which is rather abnormal for libraries)
Well, the saved variables is where that +1 idea is used.For example, one of the tables from the file:
[386] =
{
[8] = "140212,1",
[1] = "136067,349",
[2] = "138721,7",
[3] = "139762,1",
[4] = "139852,1",
[5] = "139942,1",
[6] = "140032,1",
[7] = "140122,1",

One, this refers to the item set with set ID 386 (whatever that set is)

Two, this gives us information on what item IDs are part of that set. For each string, the first number is the first ID in a sequence of IDs part of that set, and the next number is the length of that sequence - 1.

If it is just one number, then it's just that ID number and it's surrounded by non set item IDs.
This is all done because there are 370 Item IDs (1 for every combination of trait and pattern! Plus a few for intricates or ornates for older sets) that are part of every single crafted set. 77 crafted sets, +1 for non crafted sets means 28.8k different Item Ids. Not really realistic to keep in an addon!
For newer sets the IDs are often all contiguous, but for older ones they're usually split up like the above example. But it's all down to how ZOS orders the IDs.
Report comment to moderator  
Reply With Quote
Unread 10/10/23, 12:54 PM  
robert.labrie
AddOn Author - Click to view AddOns

Forum posts: 15
File comments: 16
Uploads: 1
Understanding item IDs in setInfo

Can someone explain the item IDs in setinfo? It seems to be the "base" for each type and set (axe, robe, bow, etc) so then do you just keep adding 1 to get to the next item (shoes is robe+1, mace is axe+1)? Is the trait part of the item ID or a unique attribute in the itemLink? If so, how is that added? I'm trying to rifle the code to understand it but if anyone knows off hand I'd be thankful
Report comment to moderator  
Reply With Quote
Unread 03/21/22, 07:26 AM  
Schrappe
 
Schrappe's Avatar

Forum posts: 6
File comments: 259
Uploads: 0
Re: Lib updates

Addon updated: 03/13/22 09:32 PM, Lib works correct.

Originally Posted by deinspanjer
I recently made a pull request that fixes a bug in this lib, but I see that there haven't been any updates in a while. Are any of the people with commit access to the repo still active?
@Dulgulbon, @ziggr, @timothymclane, @Lansoweb?
Last edited by Schrappe : 03/21/22 at 07:27 AM.
Report comment to moderator  
Reply With Quote
Unread 03/21/22, 07:00 AM  
deinspanjer

Forum posts: 0
File comments: 7
Uploads: 0
Lib updates

I recently made a pull request that fixes a bug in this lib, but I see that there haven't been any updates in a while. Are any of the people with commit access to the repo still active?
@Dulgulbon, @ziggr, @timothymclane, @Lansoweb?
Report comment to moderator  
Reply With Quote
Unread 02/09/22, 08:40 PM  
MonkeyBoy

Forum posts: 3
File comments: 18
Uploads: 0
Originally Posted by Schrappe
Originally Posted by rustyrimes
Needs an update to include newest craftable set/s if you would please. Thank you for this wonderful add-on
You can use the following link to download the version of the file "Smithing.lua" that I have updated, unzip it and then replace it in the addon folder. This eliminates the problem.
(No need to log in or register on Dropbox.com)
https://www.dropbox.com/s/jslnty9lz8...thing.zip?dl=0
Thank you, Schrappe, for taking the time to update this. Much appreciated.
Report comment to moderator  
Reply With Quote
Unread 02/05/22, 05:12 AM  
Schrappe
 
Schrappe's Avatar

Forum posts: 6
File comments: 259
Uploads: 0
Re: Re: Re: Iron Flask set update needed

Originally Posted by Marcus
Originally Posted by M-ree
Originally Posted by Marcus
The solution is listed in the post JUST prior to yours, as well as 5 posts before.

Yes, because I just love downloading random stuff from some strange Dropbox and let it have access to my game and who knows what else.
The download link from the Dropbox server is not access to the game but only a download of files, here a ZIP archive via a secure connection. Any reasonably set up computer checks the then unzipped text file smithing.lua for viruses. You don't have to use my offer. I explained in my post what it's all about.

PS. It is a replacement solution because the addon author can not take care of it for a long time.
Last edited by Schrappe : 02/05/22 at 05:24 AM.
Report comment to moderator  
Reply With Quote
Unread 02/04/22, 10:08 PM  
Marcus

Forum posts: 11
File comments: 88
Uploads: 0
Re: Re: Iron Flask set update needed

Originally Posted by M-ree
Originally Posted by Marcus
The solution is listed in the post JUST prior to yours, as well as 5 posts before.

Yes, because I just love downloading random stuff from some strange Dropbox and let it have access to my game and who knows what else.
Report comment to moderator  
Reply With Quote
Post A Reply



Category Jump:

Support AddOn Development!

You have just downloaded by the author . If you like this AddOn why not consider supporting the author? This author has set up a donation account. Donations ensure that authors can continue to develop useful tools for everyone.