Quantcast
Download
(39 Kb)
Download
Updated: 11/25/20 11:12 AM
Pictures
File Info
Compatibility:
Markarth (6.2.5)
Stonethorn (6.1.5)
Greymoor (6.0.5)
Updated:11/25/20 11:12 AM
Created:09/11/18 09:42 AM
Monthly downloads:528
Total downloads:3,739
Favorites:19
MD5:
6.2.5
Rulebased Inventory  Updated this week!
Version: 2.10.3
by: TaxTalis [More]
YOU ARE USING THIS ADDON AT YOUR OWN RISK!
I will not be hold responsible for any damage or inconvenience this addon might cause for any reason.
This said, I have tested this addon on my main account for quite some time and try to do everything I can to make your experience with this addon as good and as safe as possible.

Please see the Wiki for the documentation.
I admit, this is not an addon for everyone. There is no interface defining the rules for you by clicking buttons, you have to insert them by text.
A wrongly defined (but valid) rule may cause severe damage when fencing, destroying or deconstructing as the items will never return after such an action was taken.

Needed libraries
Supported addons and libraries



About Rulebased Inventory
After installing it, it does nothing. It’s simple as that.
You have to define rules for different tasks which then are executed automatically.
Tasks to define rules for are:
  • Move from Backpack to Bank (starts when opening the Bank UI)
  • Move from Bank to Backpack (starts when opening the Bank UI)
  • Sell at Store and Fence (starts when opening the Store or Fence UI)
  • Launder (starts when opening the Fence UI)
  • Junk (is checked continuously (“on update”) for each item on the backpack)
  • Destroy (is checked continuously (“on update”) for each item on the backpack)
  • Deconstruct (starts when opening the deconstruct tab of a crafting station UI)
  • Notification (is checked continuously (“on update”) for each new item)
  • Refinement (starts when opening the refinement tab of a crafting station UI)
Currencies and Homebank are not supported. Please see features in development.



Key Features
  • take actions on specific amounts of an item, not only on a whole stack (e.g. keep only 100 lockpicks in inventory)
  • check if your current character is the first one of a defined list in need of an item for research or a recipe to learn (so you can "hand down" a recipe if your main crafter doesn't need it to your secondary and further) (CraftStore needed)
  • save profiles and load them on multiple characters
  • a notification will include pricing (provided by LibPrice if installed), count of vouchers for masterwrits and the count you have in backpack, bank and craftbag
  • ...


Features and fixes in development (or at least considered)
  • Homebank
  • Guildbank
Needed libraries
Cumulative change log for version 2.10.3
  • corrected unforeseen consequences of quickslotted function as the value needed to be stored in item lookup to be save to interleave tasks
  • excluded ingame-locked items from junking as it isn't possible anyway
  • excluded non-sellable items from selling

Cumulative change log for version 2.10.0
  • added function quickslotted (brilliant idea (and even implementation) by Random!)

Cumulative change log for version 2.9.2
  • for materials level function now returns highest craftable gear level
  • for materials cp function now returns highest craftable gear champion point level
  • for raw materials level and cp functions will refer to the materials refined form
  • added cp and level to context menu output

Cumulative change log for version 2.8.0
  • updated for Markarth API
  • added function freeSlots
  • added function setCollection
  • added function setItemCollected

Cumulative change log for version 2.7.0
Cumulative change log for version 2.6.0
  • needTrait and needLearn functions now support "no input" to check current character only

Cumulative change log for version 2.5.0
  • updated for Stonethorn API
  • added FCOIS marker to context menu output
  • corrected return of "locked"-function now correctly taking FCOIS "lock" into account

Cumulative change log for version 2.4.0
  • updated for Greymore API
  • updated usage of LibCustomMenu (thanks Baertram!)
  • fixed renamed function of LibSets
  • added function skillLineLevel
  • corrected typo in input data (corwnitem -> crownitem, corwnrepair -> crownrepair)
  • fixed file encoding in manifest
  • fixed error in FCOIS dependency

Cumulative change log for version 2.3.0
  • countbackpack/bank/craftbag will now return count when no input is given
  • replaced PreHookHandler with new SetHandler function (thanks sirinsidiator!)

Cumulative change log for version 2.2.1
  • fixed error on opening housebank

Cumulative change log for version 2.2.0
  • added function motifKnown
  • corrected testing of rule now also including items in subscriberbank

Cumulative change log for version 2.1.0
  • added Task CraftToBag which is executed on Bank visit and fetches items from craftbag to backpack
  • added simplification-functions "material" etc. (Wiki: Functions without input)
  • item-functions "name", "setName" and "creator" now support LibTextFilter (optional)
  • added context menu button in inventory to print most of the item's data for reference (requires LibCustomMenu) (optional)
  • fixed erroneous item-functions


Cumulative change log for version 2.0.0
  • Rules and Settings will be lost when updating to 2.0.0
  • Backup settings for reference by copying SavedVariables/RulebasedInventory.lua.
  • Be willing to rewrite your rules and recreate your profiles...
  • OR DO NOT UPDATE TO 2.0.0!
  • Complete rewrite
  • new rule syntax (sorry, for the now mandatory rewrite of rules)
  • added task for refinement
  • deconstruction now uses the game's multi-deconstruct feature
  • introduced RuleSets (two-leveled set of rules)
  • tasks can now have a RuleSet instead of a Rule (so, multiple rules per task instead of one!)
  • added support for LibSets and LibPrice
  • huge performance improvements (at least for me, tested on i7-7700k, GTX1080ti, 16gb DDR4)


Cumulative change log for version 1.6.2
  • Update 2.0.0 is right around the corner
  • Rules and Settings will be lost when updating to 2.0.0
  • Backup settings for reference by copying SavedVariables/RulebasedInventory.lua.
  • Be willing to rewrite your rules and recreate your profiles...
  • OR DO NOT UPDATE TO 2.0.0!


Cumulative change log for version 1.6.1
  • removed libstub (thank's Beartram!)

Cumulative change log for version 1.6.0
  • removed rulestring-colorization for output as it didn't work correctly anyway and furthermore could cause a game crash

Cumulative change log for version 1.5.2
  • Updated for API 100028
  • Source is now available at https://gitlab.com/taxtalis/rulebased-inventory, wiki there might be used in the future

Cumulative change log for version 1.5.1
  • Fixed an error with writworthy integration when ttc was not found

Cumulative change log for version 1.5.0
  • Updated for API 100027
  • renamed 'schematic' (derived from constant's name SPECIALIZED_ITEMTYPE_RECIPE_ENCHANTING_SCHEMATIC_FURNISHING) to 'praxis' (ingame name)
  • added writworthy integration with wwMatCost and wwMatCostPerVoucher (thx to ziggr)
  • added functions itemsetname and itemsetnamematch to filter for setnames

Cumulative change log for version 1.4.2
  • fixed usage of AutoCategory function

Cumulative change log for version 1.4.1
  • added general option for a message when starting a task
  • added support for AutoCategory
  • added function: autocategory("category1",...)
  • fixed multiple bugs which occurred on a full bag
  • fixed test of deconstruct
  • fixed test of notification not using an unsaved rule
  • fixed an issue where in bagCache the count of an item would not be updated

Cumulative change log for version 1.2.2
  • added filters for events to not listen to unnecessary ones
  • rewrite of action- and event-queue
  • rewrite of action execution
  • rewrite of bagCache and generation of actions from task
  • rewrites for integration of LibAsync to reduce runtime per frame for less lag
  • API bump for Murkmire

Cumulative change log for version 0.10.1
  • dropped library because of instability: LibLoadedAddons
  • functions fcoismarker and fcoismarkermatch now support the custom names for fcois markers
  • safe rule switch for deconstruct now has the tooltip it deserves
  • events (junk/notification/destroy) now only are accepted when items were added to the bag to reduce lag
  • fixed notification to try to notify about already again empty slots (like loot containers directly extracted by other addons)
  • optimized events (junk/notification/destroy) to only create a cache of the whole bag if necessary to further reduce lag

Cumulative change log for version 0.8.0
  • tasks are only executed if a rule was defined
  • output now shows intricate and ornate symbols
  • added itemdata: fcoisismarked (replaces fcoislocked)
  • added itemdata: fcoismarker
  • added function: fcoismarker
  • added function: fcoismarkermatch

Cumulative change log for version 0.6.1
  • fixed variables leaking into global namespace (thanks Votan!)
  • added German translation
  • added itemdata: tags
  • added function: itemtag
  • added function: itemtagmatch
  • added itemdata: reagenttraits
  • added function: reagenttrait
  • added function: reagenttraitmatch
  • minimum delay and timeout lowered

-Version 0.4.2 was initial release-
Archived Files (25)
File Name
Version
Size
Uploader
Date
2.10.0
38kB
TaxTalis
11/18/20 04:18 PM
2.9.2
38kB
TaxTalis
11/15/20 06:25 AM
2.8.0
38kB
TaxTalis
11/08/20 07:46 AM
2.7.0
38kB
TaxTalis
10/11/20 11:54 AM
2.6.0
38kB
TaxTalis
09/09/20 06:01 AM
2.5.0
38kB
TaxTalis
08/11/20 10:59 AM
2.4.0
38kB
TaxTalis
05/25/20 02:34 AM
2.3.0
37kB
TaxTalis
02/26/20 12:20 PM
2.2.1
37kB
TaxTalis
01/07/20 01:05 PM
2.2.0
37kB
TaxTalis
12/30/19 02:22 AM
2.1.0
37kB
TaxTalis
12/25/19 12:17 PM
2.0.0
35kB
TaxTalis
12/18/19 05:03 AM
1.6.2
920kB
TaxTalis
11/27/19 01:48 PM
1.6.1
920kB
TaxTalis
09/06/19 08:47 AM
1.6.0
920kB
TaxTalis
08/31/19 04:02 PM
1.5.2
922kB
TaxTalis
08/14/19 09:25 AM
1.5.1
920kB
TaxTalis
05/25/19 02:57 AM
1.5.0
920kB
TaxTalis
05/24/19 10:07 AM
1.4.2
914kB
TaxTalis
10/27/18 09:00 AM
1.4.1
914kB
TaxTalis
10/26/18 02:36 PM
1.2.2
911kB
TaxTalis
10/12/18 01:27 PM
0.10.1
910kB
TaxTalis
09/26/18 12:27 PM
0.8.0
911kB
TaxTalis
09/16/18 01:58 PM
0.6.1
909kB
TaxTalis
09/15/18 07:08 AM
0.4.2
903kB
TaxTalis
09/11/18 10:06 AM


Post A Reply Comment Options
Unread Today, 01:35 AM  
Random

Forum posts: 0
File comments: 21
Uploads: 0
Originally Posted by TaxTalis
That is a lot of stuff, @Random
A man can dream....

And yea, I figured several of these ideas were long shots, just letting you know some of the things I think of, that I'd use if the opportunity arose.

I've used Research Assistant before, when I was working on nine traiting my main crafter. It works amazingly well, as long as you focus on one character at a time. I've since mostly decided I'm not that invested in researching on my alts, so likely won't pursue this much more.

For the container part of "using", I just found the addon Unboxer, which seems to work quite well at having me not think about boxes of things anymore.

I just have reservations of having too many addons operating in a similar space, since they can interfere with each other, and get really nasty to debug. Hence mentioning them here, to see if I could further integrate things.

Originally Posted by TaxTalis
I see the use case of fcois marking, thanks for your example. Sadly as I said currently
there seems no elegant way of implementing this.
Yea, I've thought about it some more within the confines of your model. Selecting the items and having a task would be really easy... right up to the point where you say which mark to apply, especially since there are dynamic markers as well. The "best" idea I've had is completely inelegant, and pure cheese, which would be to read something from the name of the rule to get the mark. So you could have a rule like "Mark Covetous Treasure [Covetous]" which then sees the "[MarkName]", telling you what mark to apply. I warned you it was pure cheese.

Originally Posted by TaxTalis
If you want to keep only a stack soulgems in bank and you know you will put your backpacks soulgems to the bank next so you know how many soulgems would be transferred. 25 soulgems should remain in backpack on BankToBag, there you surely use
Code:
countBackpack("<", 25)
and also deposit all to the bank on BagToBank, as the rules are exclusive. Now, lets do a little math in our rule, which is a bit clumsy to be honest, and I have not tested this very code but you should get the point (the code is only calculation of selling amount, not for selecting the item, also we are using countStackMax() to be item-unrelated, so this should work for every item):
Code:
CountBackpack(">",  countStackMax() + 25 - CountBank())
This will give you the following: It will sell all of this item as long as your backpack holds more items than the total amount you want to keep in both backpack and bank combined (a full stack "countStackMax()" and the 25 of your backpack) reduced by the amount you already have in your bank. Bank: 150, Bag: 100 -> 200 + 25 - 150 = 75, so all items above 75 will be sold, which is 25, as you have 100 in bag.
I played with this some, and kinda got it working, but it was pretty clunky in practice, and was starting to be a solution more painful than the problem, so I stopped caring. I ran into issues with getting the amount to sell be correct (it would at times oversell), and then realized that the rules would get really complicated with some of the potions... like the Essense of Stamina, which my Argonian Tank drinks like breathing air, but nobody else touches.... point being this is a place where I use Quickslotted... which greatly complicates the selling rule when a character only sometimes wants it in inventory. I'll just continue periodically manually selling the overflow stacks in the bank.

Originally Posted by TaxTalis
Checking for the "deconstruction enhancement" passives should be a simple function again, returning a simple number, I will think about it.
Cool. For reference, it's multiple skills, once per line. Metal Extraction, Unraveling, Runestone Extractions, Jewelry Extraction, Wood Extraction. Each of these have three levels. A helper function of "for this station's skill line" would be handy, of course.
I could also see the Refine/Extract/Deconstruct tasks being triggered by a bound key instead of automatic, just so there's more control over it firing.



Originally Posted by TaxTalis
If most of the rules stay the same, how about not editing the profile but the RuleSets then?
Otherwise, sorry, no, this sounds like a hell of work and new UI elements and everything. I am glad the profiles work as they do and between different profiles there should be no additional work needed when changing Rules or Rulesets both profiles use. I hope there is a way you can avoid the extra work you seem to have.
I use a ruleSet for Junking, Selling and then some Rules for StockItems I want to keep on every character on all of my profiles for example. So if I change them on one (correcting a bug or just adding things to the mix), it is changed for all.
I really haven't tried using the stored rulesets yet, because I didn't see a big win of using them over loading one profile, making some changes to mapping, and then saving it as a profile with a different name. Unless there's something I'm missing here.

I know that when I update a Rule, it updates across all profiles and characters who use it.
As things settle in, it shouldn't be too bad.

I'm still debating how best to handle my "destroy cheap stolen stuff when over capacity" issue though. That's an actual problem, as I'll head out and steal all of Wayrest at times, and that can be a lot of loot. I'm unaware of any addons that come close to managing this part of things.


In the end, thanks for all the work. RBI is already solving >90% of my loot management problems, which is way more than I had before.
Report comment to moderator  
Reply With Quote
Unread Yesterday, 05:20 PM  
TaxTalis
AddOn Author - Click to view AddOns

Forum posts: 0
File comments: 142
Uploads: 1
That is a lot of stuff, @Random

Yes, I know you would like a "using" task, I'll maybe take a look at this in the future, maybe starting at specific item types for which one could extend the initial rule which selected the item by if and under what circumstances the item should be used, so that the action can be tailored for the item type.

Researching would kind-of be possible with RbI but not very good. The problem here lies in RbI's rule-system which is inventory-slot-based. RbI just loops over ever item in the bags and checks the task's rules. If it fits, the action is taken otherwise not. Now having to go over items in a specific order or having rules themselves look through the pile of items is a functionality currently not provided by RbI's core and could have immense implications for performance. Please use addons like AutoResearch for this, which are specially designed for this task.

I see the use case of fcois marking, thanks for your example. Sadly as I said currently there seems no elegant way of implementing this.

If you want to keep only a stack soulgems in bank and you know you will put your backpacks soulgems to the bank next so you know how many soulgems would be transferred. 25 soulgems should remain in backpack on BankToBag, there you surely use
Code:
countBackpack("<", 25)
and also deposit all to the bank on BagToBank, as the rules are exclusive. Now, lets do a little math in our rule, which is a bit clumsy to be honest, and I have not tested this very code but you should get the point (the code is only calculation of selling amount, not for selecting the item, also we are using countStackMax() to be item-unrelated, so this should work for every item):
Code:
CountBackpack(">",  countStackMax() + 25 - CountBank())
This will give you the following: It will sell all of this item as long as your backpack holds more items than the total amount you want to keep in both backpack and bank combined (a full stack "countStackMax()" and the 25 of your backpack) reduced by the amount you already have in your bank. Bank: 150, Bag: 100 -> 200 + 25 - 150 = 75, so all items above 75 will be sold, which is 25, as you have 100 in bag.

As stated with the researching, the prioritizing of certain items is not possible with RbI as a rule would need to know more than it can read from the currently tested item.
Therefor it cannot and maybe will never provide a function to "prefer" an item over the other. No prioritizing of crown items over their non-crown counterparts I am afraid.

Sadly this also prevents from fencing more valuable... uhm this one might say "found" items first.

The gear durability however could work, this should be a static function only which checks gearslots, doesn't need to search for items in the normal bags and does result in a simple number. I will think about it. Applying a repairkit however stands on a different card, as you know my struggle with the "using" of items.

Checking for the "deconstruction enhancement" passives should be a simple function again, returning a simple number, I will think about it.

If most of the rules stay the same, how about not editing the profile but the RuleSets then?
Otherwise, sorry, no, this sounds like a hell of work and new UI elements and everything. I am glad the profiles work as they do and between different profiles there should be no additional work needed when changing Rules or Rulesets both profiles use. I hope there is a way you can avoid the extra work you seem to have.
I use a ruleSet for Junking, Selling and then some Rules for StockItems I want to keep on every character on all of my profiles for example. So if I change them on one (correcting a bug or just adding things to the mix), it is changed for all.
Last edited by TaxTalis : 11/28/20 at 05:26 PM.
Report comment to moderator  
Reply With Quote
Unread Yesterday, 01:58 PM  
Random

Forum posts: 0
File comments: 21
Uploads: 0
Originally Posted by TaxTalis
@Random, I took a short look at FcoisMarking and it definitly is possible but not very beautiful, neither in code nor for the user, as I didn't have that in mind when I wrote RbI. Same is partially true for a task "use item" as the actual functionality of "use" depends heavily on the item it is used on.
At the moment, I'm in a pretty good spot on much of the things. With the LUA error gone, and the withdraw/store cycle resolved, most of my previous tasks have been adapted. For many of the remaining interactions with DLWC, I have an FCOIS marker "WritWork" which gets applied, and I have integrated into rules to limit the insanity.

The remaining bits are "nice to haves", but here's a list, so you can think about ways to handle the scenarios:

The auto-reading of recipes and motifs, as mentioned before.
The auto-looting of containers upon receipt, as mentioned before.
The auto-researching of traits, with rules about order of traits to learn, and who needs what (from Craftstore)
[though, since I have my main crafter 9-traited, this is less of a topic]

In Thieve's Guild, there's the Covetous Countess quest, which is a great way to speed level your Thieve's reputation... once you get a starter stockpile of appropriately typed treasure. In the past, I've made use of a task which I could toggle on, and when out looting the planet, (my main character is a complete kleptomaniac), treasures which could be used for that would get a FCOIS marker for the purpose, and be excluded from being fenced, instead getting laundered, etc. But I only do this one in a while, and fence/sell all of it the rest of the time. Having them marked in inventory also added a nice visual indicator of how I was doing.

I have some "commodity" items, where I want to keep a certain number of in character inventory, and then and stockpile in the bank. This currently works fine, with the CountBackpack functionality. However, what I'd like to add is another layer of logic, which is that if the bank has a full stack of the item, then overflow should be sold at a merchant. So let's talk Soul Gems. I want to keep 25 in inventory, and 200 in the bank. If my current character has 100, and there are 150 in the bank, and I then open a merchant, I'd like it to sell 25 of them. (keep 25 in inventory, and have 50 go to the bank, sell the remaining). I haven't figured out how to do that three way math yet.

Related to the above, I'd like to lump crown soul gems in with filled soul gems, and say things like "give my 25 total in inventory, but prefer crown ones when available". Thus, if I had 25 filled gems in bag, and 10 crown ones in bank, then rbi should put 10 filled gems into the bank, and take the 10 crown ones out.

When I'm out thieving, I reallocate to my possession treasures of various qualities, white/green/blue. As any good thief knows, there a daily fence limit, and so if you have lots of reallocated possessions, you can't fence all of them (this saddens Khajiit). Thus, one wants to sell the expensive stuff first. I have a rule auto-fence any blue or better treasure. However, there limits on inventory, and how many whites I can hold in the meantime. How might I make a rule where I auto destroy white treasure, but only if the sum of `Stolen() and Quality("normal", "fine", "superior", "epic") and type("treasure")` would put me over the remaining daily fence cap? Note that this might include such oddities as looting a blue treasure, thus triggering a white treasure getting destroyed.

I typically use Grand Repair Kits, with a different addon which repairs what I'm wearing whenever it gets under 5% (tunable) durability, on exiting combat. This is fine, and RBI now keeps my characters stocked with Repair Kits, without my thinking. However, I also have a small pile of Crown Repair Kits which I leave in my bank account, gathering dust. I'd love to have a threshold of average gear durability, and if when I hit the bank I'm below that level, I withdraw a crown kit and apply it.

Currently, I have a separate profile for my main crafter, since she has the advanced passives to get more out of refining and deconstructing, so I steer all of that work to her. If, instead, I had a function to check for the presence of such passives, I could collapse those profiles.

Alternatively, I'm noticing that I have a "base set" of rules that I use all the time, and form my main profile, but then have have some auxiliary profiles (like the crafter above, but also one for when I'm running surveys, to pull them out of bank, instead of stuff them in) which are just adding a couple extra rule/task mappings over that base profile. However, when I edit the base profile, it seems I have to go edit all the others. Would it be possible to mark a profile as "additive" or "on top of" a different profile? That would remove the need to have the crafter levels in previous idea.

Originally Posted by TaxTalis
Regarding your guide, please share it with me/us when you're done, I would love to see an introduction to RbI written by a user.
Both the Wiki and RbI in general would probably profit highly from this
It likely won't help you as you'd like, since I'm mostly just telling people to add a certain set of rules and task mappings. Many of them are not CS backgrounds, and thus wouldn't figure it out.
Last edited by Random : 11/28/20 at 01:59 PM.
Report comment to moderator  
Reply With Quote
Unread 11/27/20, 02:23 PM  
TaxTalis
AddOn Author - Click to view AddOns

Forum posts: 0
File comments: 142
Uploads: 1
@Random, I took a short look at FcoisMarking and it definitly is possible but not very beautiful, neither in code nor for the user, as I didn't have that in mind when I wrote RbI. Same is partially true for a task "use item" as the actual functionality of "use" depends heavily on the item it is used on. Using a potion is an easy thing but a container needs to be looted too, with checks if space is available and such things. I know you linked code examples for this specific case, but I fear there is more to it than that and other item types as well.

While searching for a way to delay LLC and DLWC I did on the side implement a feature with which one does not anymore need to switch tabs at a crafting station and all tasks for the current station (refine, deconstruct, extract) can be executed immediately on interacting with the station. Thus said, when LLC or any other addon tries to craft or interact with the station there can be a race condition preventing either the other addon or RbI from succeeding, resulting in an output of success on RbI's side, maybe without it ever actually happening (and I don't even know what consequences for the other addon on failure).

Dolgubon (Author of LLC/DLWC) hinted me towards AutoReseach, an addon which delays LLC/DLWC execution till after it is finished, but I merely removes the event listeners of LLC/DLWC and calls their functions after it is finished manually. If I where to implement the same, I would need to check for AutoReasearch and remove it's event listeners to then call it, when RbI is done, or do the same as AutoResearch to LLC/DLWC, if AutoResearch is not around.
That's just too sketchy and who knows which other addons do the same which then would need a chain of these event listeners removals and oh gosh no. just no. ...
So, regarding LLC/DLWC, non of my attempts worked and as long as there is no feature introduced to LLC/ DLWC I would have to really fiddle, which at this point does not seem appropriate in my eyes.
If you have any idea, please let me know.

Regarding your guide, please share it with me/us when you're done, I would love to see an introduction to RbI written by a user.
Both the Wiki and RbI in general would probably profit highly from this
Last edited by TaxTalis : 11/27/20 at 02:32 PM.
Report comment to moderator  
Reply With Quote
Unread 11/26/20, 11:18 PM  
Random

Forum posts: 0
File comments: 21
Uploads: 0
Originally Posted by Akopian Atrebates
How does this addon compare to Item Trig?

So I am just wondering if somebody else who is using this and looked at Item Trig might be able to tell me the advantages of this addon compared to that. It is no small thing to switch iver and recreate all my different rules on a new addon.
I used Item Trig for a while to do some tasks, but RBI has completely deprecated that, and haven't looked back.

The ItemTrig interface looks snazzier... sure, but I found it a complete nightmare to actually work with. Felt like 500 clicks to get anything done, and then there were all types of actions which should have worked, but I never figured out how to make them work, etc. Also, it seems like it's development is mostly dead, not getting any updates. The odd bugs that caused things to silently fail, along with nightmare of keeping rules synced across chars broke me, and lead me to look for an alternate solution, which is how I landed here.

About the only thing you can do in ItemEdit that RBI doesn't support is applying FCOIS Marks. However, there's many a thing you can do with RBI that you just couldn't with ItemEdit, like automatically leave the bank screen with 5 of your favorite food in your bag, regardless how many you had before. You can also steer recipes to your master crafter if needed, or keep local if not, etc.

If you understood the logic in ItemEdit, you can adapt to the logic here, just after an adjustment period.

Originally Posted by TaxTalis
Please report if even with the update you encounter the problem again, maybe even go down with delay again to make it uhm easier to crash. Please also check if RbI in any case touches the items DLWC want's to move, that could lead to a slot beeing empty (because DWLC moved it) and RbI trying to move it too. Thanks!
Last couple days, I've not had any problems, either from the LUA error, or with the withdraw/store loop with the bag interface.
Thanks for looking into it!

PS - Working on a guide to help introduce RBI to my guildies.
Last edited by Random : 11/26/20 at 11:29 PM.
Report comment to moderator  
Reply With Quote
Unread 11/26/20, 04:48 PM  
TaxTalis
AddOn Author - Click to view AddOns

Forum posts: 0
File comments: 142
Uploads: 1
Originally Posted by Akopian Atrebates
How does this addon compare to Item Trig? I used to use inventory manager until it was a little slow to update a problem once, and I went to Item Trig.

What I like in general about Item Trig is the interface. This one looks a bit more difficult as you have to type out full commands, but I imagine that gives a little more flexibility too. Also, I have had a problem here and there with Item Trig.

So I am just wondering if somebody else who is using this and looked at Item Trig might be able to tell me the advantages of this addon compared to that. It is no small thing to switch iver and recreate all my different rules on a new addon.
Hi Akopian, thanks for considering RbI. Until now I have had never heard of ItemTrig before and from what I just read and saw on it's page I might never had developed RbI, if I only knew it was there (EDIT: oh wait, it just wasn't around back then). That said, from the given overview it actually seems more complicated to me than RbI even with RbI not providing an interface helping you to design the rules. This might be due to me having written it and having studied computer science, so I am very familiar with the boolean rule structure RbI uses.

RbI has defined "Entry points" (ItemTrig term) for each "action" (ItemTrig term) which in RbI are called "Tasks". The "rule" (RbI term) you have to write is the "condition" (ItemTrig term).
I am confident that anything possible in ItemTrig, as long as a Tasks exists matching the "entry point" and "action" of ItemTrig, is possible with RbI too, maybe with even more granularity available.

Nothing is stated about multi-character setups other than that you can import a trigger from another character or the gallery, my understanding of this is of cause vague to say the least.

First thing RbI is capable of is a differentiation of characters inside a rule itself. With for example the integration of craftstore (another addon) RbI is capable of checking if the current character is the first in line of a given list of character names who needs to learn a recipe. So one rule can be used for all characters and will evaluate differently on each one!

Second, RbI always execute a Rule on an item, like ItemTrig would do too, to see if it fits, or not.
To make the process of writing easier rules can be combined to RuleSets containing rules in two buckets:
EVERY rule for the first bucket has to be true for the item to be considered,
and ANY of the rules of the second bucket needs to fit the item too.
This allows for easy reusing of rules and allows users to keeps the size of rules small.
Individual rules can be added to tasks (which automatically form an ruleset internally)
or a whole ruleset can be saved of this and later loaded.
Both each rule and each created (not intenal) ruleset are available to all characters.
Editing a rule or ruleset on one will change them for all.

Last, the RuleSets (both created and internal) assigned to all available tasks can be saved to a profile to easily "copy" them to a different character.
Editing a profile on one character changes it for all, so you never have to do the work twice.

Please see the wiki for more information on rules, rulesets, tasks, profiles and what terms/functions to use in your rules.
If you have any further questions or encounter difficulties, feel free to ask.


Originally Posted by Random
Hmm. Yea, I was thinking of a moderately blunt hammer of "don't put stuff back into the bank at all if you're mid writ run". Which would serve my needs, but could easily be a bit too broad.

In other news, I left the task delay at 500, and didn't get a LUA error today.
Yes, sorry this is a too hard solution for me to take.
But don't worry I am still trying to figure it out, only encountering some slight problems with LLC and DLWC interactions. I am trying to delay all RbI execution to AFTER these are done on any interface (station/bank). Or do you think it would be better to delay THEM? Both routes have pros and cons...

Please report if even with the update you encounter the problem again, maybe even go down with delay again to make it uhm easier to crash. Please also check if RbI in any case touches the items DLWC want's to move, that could lead to a slot beeing empty (because DWLC moved it) and RbI trying to move it too. Thanks!
Last edited by TaxTalis : 11/26/20 at 05:01 PM.
Report comment to moderator  
Reply With Quote
Unread 11/26/20, 04:05 PM  
Akopian Atrebates

Forum posts: 6
File comments: 181
Uploads: 0
How does this addon compare to Item Trig? I used to use inventory manager until it was a little slow to update a problem once, and I went to Item Trig.

What I like in general about Item Trig is the interface. This one looks a bit more difficult as you have to type out full commands, but I imagine that gives a little more flexibility too. Also, I have had a problem here and there with Item Trig.

So I am just wondering if somebody else who is using this and looked at Item Trig might be able to tell me the advantages of this addon compared to that. It is no small thing to switch iver and recreate all my different rules on a new addon.
Report comment to moderator  
Reply With Quote
Unread 11/25/20, 04:50 PM  
Random

Forum posts: 0
File comments: 21
Uploads: 0
Hmm. Yea, I was thinking of a moderately blunt hammer of "don't put stuff back into the bank at all if you're mid writ run". Which would serve my needs, but could easily be a bit too broad.

In other news, I left the task delay at 500, and didn't get a LUA error today.
Report comment to moderator  
Reply With Quote
Unread 11/25/20, 04:51 AM  
TaxTalis
AddOn Author - Click to view AddOns

Forum posts: 0
File comments: 142
Uploads: 1
I'll try to push an update this week, hopefully fixing the lua error you're getting, though a bit hard without knowing its origin...

Originally Posted by Random
it looks like the main logic needed for a "is LazyWritCrafter running" function is:
Code:
if WritCreater then
  local _, hasAny = WritCreater.writSearch()
  return hasAny
else
  return false  -- DLWC not loaded
end
No, this will always return true if ANY writquest is active, regardless of if DLWC want's to draw from bank or not. Thus it would delay/prevent bank interaction of RbI indefinitely if one does not turn in a writquest for whatever reasons and is therefor not a considerable solution for me.
For crafting though I think I have found a solution, delaying all processing of RbI for the time LLC is still working at given station.
Last edited by TaxTalis : 11/25/20 at 04:52 AM.
Report comment to moderator  
Reply With Quote
Unread 11/24/20, 04:25 PM  
Random

Forum posts: 0
File comments: 21
Uploads: 0
Originally Posted by TaxTalis
@Random, is by chance this strange move from/to bank because of the quickslotted happening when the error occurs?
Hmm. I can't speak definitively to that. Currently, I do have Quickslotted() in my BankToBag rules. However, it's a 1 in 10 occurrance while doing daily writs... but not at other time when I'm romping around, and taking brief pauses to sort loot automagically.
Report comment to moderator  
Reply With Quote
Unread 11/24/20, 12:42 PM  
TaxTalis
AddOn Author - Click to view AddOns

Forum posts: 0
File comments: 142
Uploads: 1
@Random, is by chance this strange move from/to bank because of the quickslotted happening when the error occurs?
Report comment to moderator  
Reply With Quote
Unread 11/24/20, 09:37 AM  
Random

Forum posts: 0
File comments: 21
Uploads: 0
[quote=TaxTalis]
Originally Posted by Talegas
Does your rule touch the things DLWC is moving? And of cause the fix for quickslotted() isn't there yet (testing in progress). This seems to be a problem tied to one of these, as it appears mainly, in my thinking, when RbI does think there would be an item in a slot when in fact it is not.
I use FCOIS to mark all writ items with a custom marker and those from RbI, this might have always prevent errors.
I also have an FCOIS custom marker for my prebuilt items (had this long before RBI), and have them excluded from the rules. Added the BagToBank filter against these items to keep RBI from putting in what LWC took out.. this was a race condition as to which "won", but it didn't generate a lua error.

In this morning's run, I upped the task delay to 500 from default 200. Still got a lua error on one of my ten chars I do the run with. (again, a diff char each time)

Thanks for all the effort, mate!
Report comment to moderator  
Reply With Quote
Unread 11/24/20, 01:32 AM  
TaxTalis
AddOn Author - Click to view AddOns

Forum posts: 0
File comments: 142
Uploads: 1
Originally Posted by Talegas
Cool man.. I was relying on the "safetyrule" configuration that is enabled by default where no action is taken on any item that either locked, legendary quality, ninrhoned or its value is above 10,000 g .. that is why i did not specify the "not locked()" function.

I truly did not check if my previous rules (before the new functions were incorporated) applied to any of my locked items. .most likely they were not, but now we know
huh there you're saying something I wonder about. How did a locked item go past the safety rule O.o
Need to investigate this asap. thanks!
EDIT: never mind, junk is classified as a non-dangerous task, so safety does not apply here. I updated the wiki to better clarify this distinction. In short, safety is only in place for Sell, Destroy, Fence, Deconstruct and Extract as those changes can't be reverted.

Originally Posted by Random
Had the LUA error happen again.

Circumstances: Had just logged in on character, and picked up the consumable writs off the board in Vivec City, then hopped over to the bank nearby for LazyWritCrafter to pull out some pre-built stuff. Error triggered right as bank opened. Afterwards, none of the junk/bag/bank tasks worked properly on that character. I follow the same writ pattern on 10 different characters, and I get the error roughly once a day, but not on the same character.
Does your rule touch the things DLWC is moving? And of cause the fix for quickslotted() isn't there yet (testing in progress). This seems to be a problem tied to one of these, as it appears mainly, in my thinking, when RbI does think there would be an item in a slot when in fact it is not.
I use FCOIS to mark all writ items with a custom marker and those from RbI, this might have always prevent errors. Again, until I will update this (taking your code into account, thanks, I am also in contact with Dolgubon), please try to increase the delay before a tasks starts a little more.


Thank you both for your feedback, reports and patience!
Last edited by TaxTalis : 11/24/20 at 02:37 AM.
Report comment to moderator  
Reply With Quote
Unread 11/23/20, 06:02 PM  
Random

Forum posts: 0
File comments: 21
Uploads: 0
Had the LUA error happen again. I use an addon that shunts lua errors to notifications, so best I can get of the stack trace is a screen shot:
https://imgur.com/a/4fu3uIL

Circumstances: Had just logged in on character, and picked up the consumable writs off the board in Vivec City, then hopped over to the bank nearby for LazyWritCrafter to pull out some pre-built stuff. Error triggered right as bank opened. Afterwards, none of the junk/bag/bank tasks worked properly on that character. I follow the same writ pattern on 10 different characters, and I get the error roughly once a day, but not on the same character.

----

In other news, it looks like the main logic needed for a "is LazyWritCrafter running" function is:
Code:
if WritCreater then
  local _, hasAny = WritCreater.writSearch()
  return hasAny
else
  return false  -- DLWC not loaded
end

Cheers!
Report comment to moderator  
Reply With Quote
Unread 11/23/20, 05:21 PM  
Talegas

Forum posts: 0
File comments: 12
Uploads: 0
Originally Posted by TaxTalis
@Talegas: I will look into the issue with the collection functions as soon as I can.
EDIT: Found it, you just can't junk ingame locked items, I did not know that and well, FCOIS locks are excluded in generally, so, as your rule does not explicitly say "not locked()" RbI thinks it needs to junk it, while it can't. I will see to exclude ingame locked items generally from junking, I guess. Same for Selling, Fencing, Laundering, Destroying, Refining and Deconstructing.
Cool man.. I was relying on the "safetyrule" configuration that is enabled by default where no action is taken on any item that either locked, legendary quality, ninrhoned or its value is above 10,000 g .. that is why i did not specify the "not locked()" function.

I truly did not check if my previous rules (before the new functions were incorporated) applied to any of my locked items. .most likely they were not, but now we know
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.